From cccc77e6cedfd376cbcadc84d2a97b08b88f7319 Mon Sep 17 00:00:00 2001 From: Mokhtar Naamani Date: Thu, 2 Mar 2023 09:33:18 +0400 Subject: [PATCH 01/87] v0.9.39 - set dependency --- bin/inspect/Cargo.toml | 14 +- bin/node/Cargo.toml | 138 +++++++++--------- bin/utils/chain-spec-builder/Cargo.toml | 10 +- bin/utils/session-keys/Cargo.toml | 10 +- runtime-modules/bounty/Cargo.toml | 24 +-- runtime-modules/common/Cargo.toml | 14 +- runtime-modules/constitution/Cargo.toml | 16 +- runtime-modules/content/Cargo.toml | 22 +-- runtime-modules/council/Cargo.toml | 20 +-- runtime-modules/forum/Cargo.toml | 22 +-- runtime-modules/membership/Cargo.toml | 20 +-- runtime-modules/project-token/Cargo.toml | 22 +-- runtime-modules/proposals/codex/Cargo.toml | 36 ++--- .../proposals/discussion/Cargo.toml | 18 +-- runtime-modules/proposals/engine/Cargo.toml | 20 +-- runtime-modules/referendum/Cargo.toml | 20 +-- runtime-modules/staking-handler/Cargo.toml | 18 +-- runtime-modules/storage/Cargo.toml | 26 ++-- runtime-modules/utility/Cargo.toml | 20 +-- runtime-modules/working-group/Cargo.toml | 20 +-- runtime/Cargo.toml | 92 ++++++------ 21 files changed, 301 insertions(+), 301 deletions(-) diff --git a/bin/inspect/Cargo.toml b/bin/inspect/Cargo.toml index 67becf669c..2901a4c9a1 100644 --- a/bin/inspect/Cargo.toml +++ b/bin/inspect/Cargo.toml @@ -11,11 +11,11 @@ repository = "https://github.com/paritytech/substrate/" clap = { version = "3.1.6", features = ["derive"] } codec = { package = "parity-scale-codec", version = "3.1.5" } thiserror = "1.0" -sc-cli = { package = 'sc-cli', git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522' } -sc-client-api = { package = 'sc-client-api', git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522' } -sc-executor = { package = 'sc-executor', git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522' } -sc-service = { package = 'sc-service', git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522', default-features = false } -sp-blockchain = { package = 'sp-blockchain', git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522' } -sp-core = { package = 'sp-core', git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522' } -sp-runtime = { package = 'sp-runtime', git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522' } +sc-cli = { package = 'sc-cli', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e' } +sc-client-api = { package = 'sc-client-api', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e' } +sc-executor = { package = 'sc-executor', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e' } +sc-service = { package = 'sc-service', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e', default-features = false } +sp-blockchain = { package = 'sp-blockchain', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e' } +sp-core = { package = 'sp-core', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e' } +sp-runtime = { package = 'sp-runtime', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e' } overrides = { package = "overrides", path = "../overrides" } diff --git a/bin/node/Cargo.toml b/bin/node/Cargo.toml index 1f1c617d88..7dd46dce48 100644 --- a/bin/node/Cargo.toml +++ b/bin/node/Cargo.toml @@ -26,57 +26,57 @@ rand = "0.8" hex = { version = "0.4.2" } # primitives -sp-authority-discovery = { package = 'sp-authority-discovery', git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sp-consensus-babe = { package = 'sp-consensus-babe', git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -grandpa-primitives = { package = "sp-finality-grandpa", git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sp-api = { package = 'sp-api', git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sp-core = { package = 'sp-core', git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sp-runtime = { package = 'sp-runtime', git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sp-timestamp = { package = 'sp-timestamp', git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sp-authorship = { package = 'sp-authorship', git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sp-inherents = { package = 'sp-inherents', git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sp-keyring = { package = 'sp-keyring', git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sp-keystore = { package = 'sp-keystore', git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sp-consensus = { package = 'sp-consensus', git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sp-transaction-pool = { package = 'sp-transaction-pool', git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sp-transaction-storage-proof = { package = 'sp-transaction-storage-proof', git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sp-block-builder = { package = 'sp-block-builder', git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sp-blockchain = { package = 'sp-blockchain', git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} +sp-authority-discovery = { package = 'sp-authority-discovery', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sp-consensus-babe = { package = 'sp-consensus-babe', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +grandpa-primitives = { package = "sp-finality-grandpa", git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sp-api = { package = 'sp-api', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sp-core = { package = 'sp-core', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sp-runtime = { package = 'sp-runtime', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sp-timestamp = { package = 'sp-timestamp', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sp-authorship = { package = 'sp-authorship', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sp-inherents = { package = 'sp-inherents', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sp-keyring = { package = 'sp-keyring', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sp-keystore = { package = 'sp-keystore', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sp-consensus = { package = 'sp-consensus', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sp-transaction-pool = { package = 'sp-transaction-pool', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sp-transaction-storage-proof = { package = 'sp-transaction-storage-proof', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sp-block-builder = { package = 'sp-block-builder', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sp-blockchain = { package = 'sp-blockchain', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} # client dependencies -sc-client-api = { package = 'sc-client-api', git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sc-chain-spec = { package = 'sc-chain-spec', git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sc-consensus = { package = 'sc-consensus', git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sc-transaction-pool = { package = 'sc-transaction-pool', git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sc-transaction-pool-api = { package = 'sc-transaction-pool-api', git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sc-network = { package = 'sc-network', git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sc-consensus-slots = { package = 'sc-consensus-slots', git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sc-consensus-babe = { package = 'sc-consensus-babe', git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sc-consensus-babe-rpc = { package = 'sc-consensus-babe-rpc', git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sc-consensus-epochs = { package = 'sc-consensus-epochs', git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sc-consensus-uncles = { package = 'sc-consensus-uncles', git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sc-finality-grandpa = { package = "sc-finality-grandpa", git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sc-finality-grandpa-rpc = { package = 'sc-finality-grandpa-rpc', git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sc-rpc = { package = 'sc-rpc', git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sc-rpc-api = { package = 'sc-rpc-api', git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sc-basic-authorship = { package = 'sc-basic-authorship', git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sc-service = { package = 'sc-service', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sc-telemetry = { package = 'sc-telemetry', git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sc-executor = { package = 'sc-executor', git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sc-authority-discovery = { package = 'sc-authority-discovery', git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sc-sync-state-rpc = { package = 'sc-sync-state-rpc', git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sc-sysinfo = { package = 'sc-sysinfo', git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -pallet-transaction-payment-rpc = { package = 'pallet-transaction-payment-rpc', git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -substrate-frame-rpc-system = { package = 'substrate-frame-rpc-system', git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -substrate-state-trie-migration-rpc = { package = 'substrate-state-trie-migration-rpc', git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} +sc-client-api = { package = 'sc-client-api', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sc-chain-spec = { package = 'sc-chain-spec', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sc-consensus = { package = 'sc-consensus', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sc-transaction-pool = { package = 'sc-transaction-pool', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sc-transaction-pool-api = { package = 'sc-transaction-pool-api', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sc-network = { package = 'sc-network', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sc-consensus-slots = { package = 'sc-consensus-slots', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sc-consensus-babe = { package = 'sc-consensus-babe', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sc-consensus-babe-rpc = { package = 'sc-consensus-babe-rpc', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sc-consensus-epochs = { package = 'sc-consensus-epochs', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sc-consensus-uncles = { package = 'sc-consensus-uncles', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sc-finality-grandpa = { package = "sc-finality-grandpa", git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sc-finality-grandpa-rpc = { package = 'sc-finality-grandpa-rpc', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sc-rpc = { package = 'sc-rpc', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sc-rpc-api = { package = 'sc-rpc-api', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sc-basic-authorship = { package = 'sc-basic-authorship', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sc-service = { package = 'sc-service', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sc-telemetry = { package = 'sc-telemetry', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sc-executor = { package = 'sc-executor', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sc-authority-discovery = { package = 'sc-authority-discovery', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sc-sync-state-rpc = { package = 'sc-sync-state-rpc', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sc-sysinfo = { package = 'sc-sysinfo', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +pallet-transaction-payment-rpc = { package = 'pallet-transaction-payment-rpc', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +substrate-frame-rpc-system = { package = 'substrate-frame-rpc-system', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +substrate-state-trie-migration-rpc = { package = 'substrate-state-trie-migration-rpc', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} # frame dependencies -frame-system = { package = 'frame-system',git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -frame-system-rpc-runtime-api = { package = 'frame-system-rpc-runtime-api', git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -pallet-transaction-payment = { package = 'pallet-transaction-payment', git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -pallet-im-online = { package = 'pallet-im-online', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -pallet-staking = { package = 'pallet-staking', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -pallet-transaction-storage = { package = 'pallet-transaction-storage', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} +frame-system = { package = 'frame-system',git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +frame-system-rpc-runtime-api = { package = 'frame-system-rpc-runtime-api', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +pallet-transaction-payment = { package = 'pallet-transaction-payment', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +pallet-im-online = { package = 'pallet-im-online', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +pallet-staking = { package = 'pallet-staking', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +pallet-transaction-storage = { package = 'pallet-transaction-storage', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} # node-specific dependencies node-runtime = { package = "joystream-node-runtime", path = "../../runtime" } @@ -85,27 +85,27 @@ node-runtime = { package = "joystream-node-runtime", path = "../../runtime" } overrides = { package = "overrides", path = "../overrides" } # CLI-specific dependencies -sc-cli = { package = 'sc-cli', optional = true, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -frame-benchmarking-cli = { package = 'frame-benchmarking-cli', optional = true, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -frame-benchmarking = { package = 'frame-benchmarking', git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} +sc-cli = { package = 'sc-cli', optional = true, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +frame-benchmarking-cli = { package = 'frame-benchmarking-cli', optional = true, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +frame-benchmarking = { package = 'frame-benchmarking', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} serde_json = "1.0.79" node-inspect = { path = "../inspect", optional = true } [target.'cfg(any(target_arch="x86_64", target_arch="aarch64"))'.dependencies] -sc-cli = { package = 'sc-cli', optional = true, features = ["wasmtime"], git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sc-service = { package = 'sc-service', default-features = false, features = ["wasmtime"], git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sp-trie = { package = 'sp-trie', default-features = false, features = ["memory-tracker"], git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} +sc-cli = { package = 'sc-cli', optional = true, features = ["wasmtime"], git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sc-service = { package = 'sc-service', default-features = false, features = ["wasmtime"], git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sp-trie = { package = 'sp-trie', default-features = false, features = ["memory-tracker"], git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} [dev-dependencies] -sc-keystore = { package = 'sc-keystore', git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sc-client-db = { package = 'sc-client-db', git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sc-consensus = { package = 'sc-consensus', git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sc-consensus-babe = { package = 'sc-consensus-babe', git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sc-consensus-epochs = { package = 'sc-consensus-epochs', git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sc-service-test = { package = 'sc-service-test', git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sc-block-builder = { package = 'sc-block-builder', git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sp-tracing = { package = 'sp-tracing', git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sp-blockchain = { package = 'sp-blockchain', git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} +sc-keystore = { package = 'sc-keystore', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sc-client-db = { package = 'sc-client-db', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sc-consensus = { package = 'sc-consensus', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sc-consensus-babe = { package = 'sc-consensus-babe', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sc-consensus-epochs = { package = 'sc-consensus-epochs', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sc-service-test = { package = 'sc-service-test', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sc-block-builder = { package = 'sc-block-builder', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sp-tracing = { package = 'sp-tracing', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sp-blockchain = { package = 'sp-blockchain', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} futures = "0.3.21" tempfile = "3.1.0" assert_cmd = "2.0.2" @@ -118,17 +118,17 @@ soketto = "0.7.1" criterion = { version = "0.3.5", features = ["async_tokio"] } tokio = { version = "1.17.0", features = ["macros", "time", "parking_lot"] } wait-timeout = "0.2" -remote-externalities = { package = 'remote-externalities', git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -pallet-timestamp = { package = 'pallet-timestamp', git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} +remote-externalities = { package = 'remote-externalities', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +pallet-timestamp = { package = 'pallet-timestamp', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} [build-dependencies] clap = { version = "3.1.18", optional = true } clap_complete = { version = "3.0", optional = true } -frame-benchmarking-cli = { package = 'frame-benchmarking-cli', optional = true, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -substrate-build-script-utils = { package = 'substrate-build-script-utils', optional = true, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -substrate-frame-cli = { package = 'substrate-frame-cli', optional = true, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sc-cli = { package = 'sc-cli', optional = true, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -pallet-balances = { package = 'pallet-balances', git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} +frame-benchmarking-cli = { package = 'frame-benchmarking-cli', optional = true, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +substrate-build-script-utils = { package = 'substrate-build-script-utils', optional = true, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +substrate-frame-cli = { package = 'substrate-frame-cli', optional = true, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sc-cli = { package = 'sc-cli', optional = true, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +pallet-balances = { package = 'pallet-balances', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} node-inspect = { path = "../inspect", optional = true } [features] diff --git a/bin/utils/chain-spec-builder/Cargo.toml b/bin/utils/chain-spec-builder/Cargo.toml index 12358ddfeb..0f1be65060 100644 --- a/bin/utils/chain-spec-builder/Cargo.toml +++ b/bin/utils/chain-spec-builder/Cargo.toml @@ -11,9 +11,9 @@ async-std = {version = "1.9.0", features = ["attributes"]} futures-util = "0.3.15" clap = { version = "3.1.18", features = ["derive"] } rand = "0.8" -sc-keystore = { git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522' } -sc-telemetry = { git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522' } -sc-chain-spec = { git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522' } -sp-core = { git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522' } -sp-keystore = { git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522' } +sc-keystore = { git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e' } +sc-telemetry = { git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e' } +sc-chain-spec = { git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e' } +sp-core = { git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e' } +sp-keystore = { git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e' } joystream-node = { path = "../../node" } diff --git a/bin/utils/session-keys/Cargo.toml b/bin/utils/session-keys/Cargo.toml index dfe68fc44b..e3de51086b 100644 --- a/bin/utils/session-keys/Cargo.toml +++ b/bin/utils/session-keys/Cargo.toml @@ -10,10 +10,10 @@ async-std = {version = "1.9.0", features = ["attributes"]} futures-util = "0.3.15" clap = { version = "3.1.18", features = ["derive"] } rand = "0.8" -sc-keystore = { git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522' } -sc-telemetry = { git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522' } -sc-chain-spec = { git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522' } -sp-core = { git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522' } -sp-keystore = { git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522' } +sc-keystore = { git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e' } +sc-telemetry = { git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e' } +sc-chain-spec = { git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e' } +sp-core = { git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e' } +sp-keystore = { git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e' } joystream-node = { path = "../../node" } serde_json = "1.0.79" \ No newline at end of file diff --git a/runtime-modules/bounty/Cargo.toml b/runtime-modules/bounty/Cargo.toml index 6a255273f9..81205887ec 100644 --- a/runtime-modules/bounty/Cargo.toml +++ b/runtime-modules/bounty/Cargo.toml @@ -8,28 +8,28 @@ edition = '2018' serde = { version = "1.0.101", optional = true, features = ["derive"] } codec = { package = 'parity-scale-codec', version = '3.1.2', default-features = false, features = ['derive'] } scale-info = { version = "2.1.1", default-features = false, features = ["derive"] } -sp-arithmetic = { package = 'sp-arithmetic', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sp-std = { package = 'sp-std', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -frame-support = { package = 'frame-support', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -frame-system = { package = 'frame-system', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -balances = { package = 'pallet-balances', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sp-runtime = { package = 'sp-runtime', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} +sp-arithmetic = { package = 'sp-arithmetic', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sp-std = { package = 'sp-std', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +frame-support = { package = 'frame-support', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +frame-system = { package = 'frame-system', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +balances = { package = 'pallet-balances', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sp-runtime = { package = 'sp-runtime', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} common = { package = 'pallet-common', default-features = false, path = '../common'} staking-handler = { package = 'pallet-staking-handler', default-features = false, path = '../staking-handler'} static_assertions = "1.1.0" # Benchmarking -frame-benchmarking = { package = 'frame-benchmarking', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522', optional = true} +frame-benchmarking = { package = 'frame-benchmarking', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e', optional = true} council = { package = 'pallet-council', default-features = false, path = '../council'} referendum = { package = 'pallet-referendum', default-features = false, path = '../referendum'} membership = { package = 'pallet-membership', default-features = false, path = '../membership'} -sp-core = { package = 'sp-core', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} +sp-core = { package = 'sp-core', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} [dev-dependencies] -pallet-timestamp = { package = 'pallet-timestamp', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sp-io = { package = 'sp-io', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sp-core = { package = 'sp-core', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sp-runtime = { package = 'sp-runtime', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} +pallet-timestamp = { package = 'pallet-timestamp', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sp-io = { package = 'sp-io', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sp-core = { package = 'sp-core', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sp-runtime = { package = 'sp-runtime', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} membership = { package = 'pallet-membership', default-features = false, path = '../membership'} council = { package = 'pallet-council', default-features = false, path = '../council'} staking-handler = { package = 'pallet-staking-handler', default-features = false, path = '../staking-handler'} diff --git a/runtime-modules/common/Cargo.toml b/runtime-modules/common/Cargo.toml index 089b08c436..c26dca7a13 100644 --- a/runtime-modules/common/Cargo.toml +++ b/runtime-modules/common/Cargo.toml @@ -10,13 +10,13 @@ strum = {version = "0.19", optional = true} strum_macros = {version = "0.19", optional = true} codec = { package = 'parity-scale-codec', version = '3.1.2', default-features = false, features = ['derive'] } scale-info = { version = "2.1.1", default-features = false, features = ["derive"] } -sp-runtime = { package = 'sp-runtime', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -frame-support = { package = 'frame-support', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -frame-system = { package = 'frame-system', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -pallet-timestamp = { package = 'pallet-timestamp', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sp-arithmetic = { package = 'sp-arithmetic', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -balances = { package = 'pallet-balances', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sp-std = { package = 'sp-std', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} +sp-runtime = { package = 'sp-runtime', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +frame-support = { package = 'frame-support', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +frame-system = { package = 'frame-system', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +pallet-timestamp = { package = 'pallet-timestamp', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sp-arithmetic = { package = 'sp-arithmetic', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +balances = { package = 'pallet-balances', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sp-std = { package = 'sp-std', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} [features] default = ['std'] diff --git a/runtime-modules/constitution/Cargo.toml b/runtime-modules/constitution/Cargo.toml index 6310cb5500..9a1f1cbfa8 100644 --- a/runtime-modules/constitution/Cargo.toml +++ b/runtime-modules/constitution/Cargo.toml @@ -8,17 +8,17 @@ edition = '2018' serde = { version = "1.0.101", optional = true, features = ["derive"] } codec = { package = 'parity-scale-codec', version = '3.1.2', default-features = false, features = ['derive'] } scale-info = { version = "2.1.2", default-features = false, features = ["derive"] } -sp-std = { package = 'sp-std', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -frame-support = { package = 'frame-support', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -frame_system = { package = 'frame-system', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sp-runtime = { package = 'sp-runtime', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -frame-benchmarking = { package = 'frame-benchmarking', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522', optional = true} -pallet-balances = { package = 'pallet-balances', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522', optional = true } +sp-std = { package = 'sp-std', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +frame-support = { package = 'frame-support', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +frame_system = { package = 'frame-system', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sp-runtime = { package = 'sp-runtime', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +frame-benchmarking = { package = 'frame-benchmarking', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e', optional = true} +pallet-balances = { package = 'pallet-balances', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e', optional = true } common = { package = 'pallet-common', default-features = false, path = '../common'} [dev-dependencies] -sp-io = { package = 'sp-io', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sp-core = { package = 'sp-core', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} +sp-io = { package = 'sp-io', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sp-core = { package = 'sp-core', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} [features] default = ['std'] diff --git a/runtime-modules/content/Cargo.toml b/runtime-modules/content/Cargo.toml index 96db37aaea..a28759636f 100755 --- a/runtime-modules/content/Cargo.toml +++ b/runtime-modules/content/Cargo.toml @@ -5,11 +5,11 @@ authors = ['Joystream contributors'] edition = '2018' [dependencies] -sp-std = { package = 'sp-std', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sp-runtime = { package = 'sp-runtime', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -frame-support = { package = 'frame-support', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -frame-system = { package = 'frame-system', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sp-arithmetic = { package = 'sp-arithmetic', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} +sp-std = { package = 'sp-std', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sp-runtime = { package = 'sp-runtime', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +frame-support = { package = 'frame-support', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +frame-system = { package = 'frame-system', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sp-arithmetic = { package = 'sp-arithmetic', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} codec = { package = 'parity-scale-codec', version = '3.1.2', default-features = false, features = ['derive'] } scale-info = { version = "2.1.2", default-features = false, features = ["derive"] } serde = {version = '1.0.101', features = ['derive'], optional = true} @@ -18,19 +18,19 @@ strum_macros = {version = "0.19", optional = true} common = { package = 'pallet-common', default-features = false, path = '../common'} storage = { package = 'pallet-storage', default-features = false, path = '../storage'} membership = { package = 'pallet-membership', default-features = false, path = '../membership'} -balances = { package = 'pallet-balances', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} +balances = { package = 'pallet-balances', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} project-token = { package = 'pallet-project-token', default-features = false, path = '../project-token'} varaint-count = { version = '1.1.0', package = 'variant_count' } # Benchmarking -frame-benchmarking = { package = 'frame-benchmarking', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522', optional = true} +frame-benchmarking = { package = 'frame-benchmarking', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e', optional = true} working-group = { package = 'pallet-working-group', default-features = false, path = '../working-group', optional = true} -sp-core = { package = 'sp-core', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} +sp-core = { package = 'sp-core', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} [dev-dependencies] -sp-io = { package = 'sp-io', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -pallet-timestamp = { package = 'pallet-timestamp', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -randomness-collective-flip = { package = 'pallet-randomness-collective-flip', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} +sp-io = { package = 'sp-io', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +pallet-timestamp = { package = 'pallet-timestamp', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +randomness-collective-flip = { package = 'pallet-randomness-collective-flip', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} staking-handler = { package = 'pallet-staking-handler', default-features = false, path = '../staking-handler'} working-group = { package = 'pallet-working-group', default-features = false, path = '../working-group'} derive-fixture = { package = 'derive-fixture', default-features = false, path = '../support/derive-fixture'} diff --git a/runtime-modules/council/Cargo.toml b/runtime-modules/council/Cargo.toml index c063018bc6..6fbf8567bf 100644 --- a/runtime-modules/council/Cargo.toml +++ b/runtime-modules/council/Cargo.toml @@ -8,25 +8,25 @@ edition = '2018' codec = { package = 'parity-scale-codec', version = '3.1.2', default-features = false, features = ['derive'] } scale-info = { version = "2.1.1", default-features = false, features = ["derive"] } serde = { version = '1.0.101', optional = true} -sp-runtime = { package = 'sp-runtime', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sp-core = { package = 'sp-core', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sp-arithmetic = { package = 'sp-arithmetic', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -frame-support = { package = 'frame-support', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -frame-system = { package = 'frame-system', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sp-std = { package = 'sp-std', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} +sp-runtime = { package = 'sp-runtime', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sp-core = { package = 'sp-core', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sp-arithmetic = { package = 'sp-arithmetic', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +frame-support = { package = 'frame-support', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +frame-system = { package = 'frame-system', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sp-std = { package = 'sp-std', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} common = { package = 'pallet-common', default-features = false, path = '../common'} referendum = { package = 'pallet-referendum', default-features = false, path = '../referendum'} staking-handler = { package = 'pallet-staking-handler', default-features = false, path = '../staking-handler'} -balances = { package = 'pallet-balances', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} +balances = { package = 'pallet-balances', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} #Benchmark dependencies -frame-benchmarking = { package = 'frame-benchmarking', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522', optional = true} +frame-benchmarking = { package = 'frame-benchmarking', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e', optional = true} membership = { package = 'pallet-membership', default-features = false, path = '../membership', optional = true} [dev-dependencies] -sp-io = { package = 'sp-io', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} +sp-io = { package = 'sp-io', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} rand = "0.7.3" -pallet-timestamp = { package = 'pallet-timestamp', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} +pallet-timestamp = { package = 'pallet-timestamp', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} membership = { package = 'pallet-membership', default-features = false, path = '../membership'} [features] diff --git a/runtime-modules/forum/Cargo.toml b/runtime-modules/forum/Cargo.toml index 25e3bb7d41..ed19dd1557 100755 --- a/runtime-modules/forum/Cargo.toml +++ b/runtime-modules/forum/Cargo.toml @@ -8,25 +8,25 @@ edition = '2018' serde = { version = "1.0.101", optional = true, features = ["derive"] } codec = { package = 'parity-scale-codec', version = '3.1.2', default-features = false, features = ['derive'] } scale-info = { version = "2.1.1", default-features = false, features = ["derive"] } -frame-support = { package = 'frame-support', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -frame-system = { package = 'frame-system', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sp-arithmetic = { package = 'sp-arithmetic', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sp-runtime = { package = 'sp-runtime', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sp-std = { package = 'sp-std', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -pallet-timestamp = { package = 'pallet-timestamp', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} +frame-support = { package = 'frame-support', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +frame-system = { package = 'frame-system', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sp-arithmetic = { package = 'sp-arithmetic', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sp-runtime = { package = 'sp-runtime', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sp-std = { package = 'sp-std', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +pallet-timestamp = { package = 'pallet-timestamp', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} common = { package = 'pallet-common', default-features = false, path = '../common'} -sp-io = { package = 'sp-io', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -balances = { package = 'pallet-balances', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} +sp-io = { package = 'sp-io', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +balances = { package = 'pallet-balances', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} # Benchmarking dependencies -frame-benchmarking = { package = 'frame-benchmarking', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522', optional = true} +frame-benchmarking = { package = 'frame-benchmarking', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e', optional = true} membership = { package = 'pallet-membership', default-features = false, path = '../membership', optional = true} working-group = { package = 'pallet-working-group', default-features = false, path = '../working-group', optional = true} staking-handler = { package = 'pallet-staking-handler', default-features = false, path = '../staking-handler', optional = true} -sp-core = { package = 'sp-core', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522', optional = true} +sp-core = { package = 'sp-core', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e', optional = true} [dev-dependencies] -sp-core = { package = 'sp-core', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} +sp-core = { package = 'sp-core', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} membership = { package = 'pallet-membership', default-features = false, path = '../membership'} working-group = { package = 'pallet-working-group', default-features = false, path = '../working-group'} staking-handler = { package = 'pallet-staking-handler', default-features = false, path = '../staking-handler'} diff --git a/runtime-modules/membership/Cargo.toml b/runtime-modules/membership/Cargo.toml index 12fa05b0ed..89a323de75 100644 --- a/runtime-modules/membership/Cargo.toml +++ b/runtime-modules/membership/Cargo.toml @@ -8,21 +8,21 @@ edition = '2018' serde = { version = "1.0.101", optional = true, features = ["derive"] } codec = { package = 'parity-scale-codec', version = '3.1.2', default-features = false, features = ['derive'] } scale-info = { version = "2.1.1", default-features = false, features = ["derive"] } -sp-std = { package = 'sp-std', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -frame-support = { package = 'frame-support', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -frame-system = { package = 'frame-system', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sp-arithmetic = { package = 'sp-arithmetic', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sp-runtime = { package = 'sp-runtime', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -pallet-timestamp = { package = 'pallet-timestamp', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -balances = { package = 'pallet-balances', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} +sp-std = { package = 'sp-std', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +frame-support = { package = 'frame-support', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +frame-system = { package = 'frame-system', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sp-arithmetic = { package = 'sp-arithmetic', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sp-runtime = { package = 'sp-runtime', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +pallet-timestamp = { package = 'pallet-timestamp', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +balances = { package = 'pallet-balances', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} common = { package = 'pallet-common', default-features = false, path = '../common'} staking-handler = { package = 'pallet-staking-handler', default-features = false, path = '../staking-handler'} # Benchmarking dependencies -frame-benchmarking = { package = 'frame-benchmarking', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522', optional = true} +frame-benchmarking = { package = 'frame-benchmarking', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e', optional = true} [dev-dependencies] -sp-io = { package = 'sp-io', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sp-core = { package = 'sp-core', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} +sp-io = { package = 'sp-io', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sp-core = { package = 'sp-core', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} # working-group = { package = 'pallet-working-group', default-features = false, path = '../working-group'} [features] diff --git a/runtime-modules/project-token/Cargo.toml b/runtime-modules/project-token/Cargo.toml index cce2e2c1cc..b1959c82a3 100644 --- a/runtime-modules/project-token/Cargo.toml +++ b/runtime-modules/project-token/Cargo.toml @@ -5,28 +5,28 @@ authors = ['Joystream contributors'] edition = '2018' [dependencies] -sp-io = { package = 'sp-io', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sp-std = { package = 'sp-std', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sp-runtime = { package = 'sp-runtime', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -frame-support = { package = 'frame-support', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -frame-system = { package = 'frame-system', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sp-arithmetic = { package = 'sp-arithmetic', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} +sp-io = { package = 'sp-io', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sp-std = { package = 'sp-std', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sp-runtime = { package = 'sp-runtime', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +frame-support = { package = 'frame-support', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +frame-system = { package = 'frame-system', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sp-arithmetic = { package = 'sp-arithmetic', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} common = { package = 'pallet-common', default-features = false, path = '../common'} storage = { package = 'pallet-storage', default-features = false, path = '../storage'} -balances = { package = 'pallet-balances', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} +balances = { package = 'pallet-balances', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} membership = { package = 'pallet-membership', default-features = false, path = '../membership'} codec = { package = 'parity-scale-codec', version = '3.1.2', default-features = false, features = ['derive'] } serde = {version = '1.0.101', features = ['derive'], optional = true} scale-info = { version = "2.1.1", default-features = false, features = ["derive"] } # Benchmarking dependencies -frame-benchmarking = { package = 'frame-benchmarking', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522', optional = true} +frame-benchmarking = { package = 'frame-benchmarking', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e', optional = true} [dev-dependencies] -randomness-collective-flip = { package = 'pallet-randomness-collective-flip', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} +randomness-collective-flip = { package = 'pallet-randomness-collective-flip', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} staking-handler = { package = 'pallet-staking-handler', default-features = false, path = '../staking-handler'} -pallet-timestamp = { package = 'pallet-timestamp', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sp-storage = { package = 'sp-storage', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} +pallet-timestamp = { package = 'pallet-timestamp', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sp-storage = { package = 'sp-storage', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} [features] default = ['std'] diff --git a/runtime-modules/proposals/codex/Cargo.toml b/runtime-modules/proposals/codex/Cargo.toml index 710ed2f735..2d0168e404 100644 --- a/runtime-modules/proposals/codex/Cargo.toml +++ b/runtime-modules/proposals/codex/Cargo.toml @@ -8,14 +8,14 @@ edition = '2018' serde = { version = "1.0.101", optional = true, features = ["derive"] } codec = { package = 'parity-scale-codec', version = '3.1.2', default-features = false, features = ['derive'] } scale-info = { version = "2.1.1", default-features = false, features = ["derive"] } -sp-std = { package = 'sp-std', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sp-core = { package = 'sp-core', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -frame-support = { package = 'frame-support', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sp-arithmetic = { package = 'sp-arithmetic', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sp-runtime = { package = 'sp-runtime', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -frame-system = { package = 'frame-system', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -staking = { package = 'pallet-staking', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -pallet-timestamp = { package = 'pallet-timestamp', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} +sp-std = { package = 'sp-std', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sp-core = { package = 'sp-core', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +frame-support = { package = 'frame-support', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sp-arithmetic = { package = 'sp-arithmetic', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sp-runtime = { package = 'sp-runtime', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +frame-system = { package = 'frame-system', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +staking = { package = 'pallet-staking', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +pallet-timestamp = { package = 'pallet-timestamp', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} working-group = { package = 'pallet-working-group', default-features = false, path = '../../working-group'} common = { package = 'pallet-common', default-features = false, path = '../../common'} proposals-engine = { package = 'pallet-proposals-engine', default-features = false, path = '../engine'} @@ -23,25 +23,25 @@ proposals-discussion = { package = 'pallet-proposals-discussion', default-featur constitution = { package = 'pallet-constitution', default-features = false, path = '../../constitution'} membership = { package = 'pallet-membership', default-features = false, path = '../../membership'} content = { package = 'pallet-content', default-features = false, path = '../../content'} -balances = { package = 'pallet-balances', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522', optional = true} +balances = { package = 'pallet-balances', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e', optional = true} # Benchmarking dependencies -frame-benchmarking = { package = 'frame-benchmarking', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522', optional = true} +frame-benchmarking = { package = 'frame-benchmarking', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e', optional = true} council = { package = 'pallet-council', default-features = false, path = '../../council', optional = true} [dev-dependencies] -sp-io = { package = 'sp-io', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sp-core = { package = 'sp-core', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sp-staking = { package = 'sp-staking', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -pallet-staking-reward-curve = { package = 'pallet-staking-reward-curve', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} +sp-io = { package = 'sp-io', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sp-core = { package = 'sp-core', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sp-staking = { package = 'sp-staking', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +pallet-staking-reward-curve = { package = 'pallet-staking-reward-curve', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} strum = {version = "0.19", default-features = false} staking-handler = { package = 'pallet-staking-handler', default-features = false, path = '../../staking-handler'} referendum = { package = 'pallet-referendum', default-features = false, path = '../../referendum'} council = { package = 'pallet-council', default-features = false, path = '../../council'} -balances = { package = 'pallet-balances', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -frame-election-provider-support = { package = 'frame-election-provider-support', git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -pallet-bags-list = { package = 'pallet-bags-list', features = ["runtime-benchmarks"], git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sp-npos-elections = { package = 'sp-npos-elections', git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} +balances = { package = 'pallet-balances', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +frame-election-provider-support = { package = 'frame-election-provider-support', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +pallet-bags-list = { package = 'pallet-bags-list', features = ["runtime-benchmarks"], git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sp-npos-elections = { package = 'sp-npos-elections', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} [features] default = ['std'] diff --git a/runtime-modules/proposals/discussion/Cargo.toml b/runtime-modules/proposals/discussion/Cargo.toml index adab6f0bef..f01ebff7ba 100644 --- a/runtime-modules/proposals/discussion/Cargo.toml +++ b/runtime-modules/proposals/discussion/Cargo.toml @@ -8,23 +8,23 @@ edition = '2018' serde = { version = "1.0.101", optional = true, features = ["derive"] } codec = { package = 'parity-scale-codec', version = '3.1.2', default-features = false, features = ['derive'] } scale-info = { version = "2.1.1", default-features = false, features = ["derive"] } -sp-std = { package = 'sp-std', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -frame-support = { package = 'frame-support', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -frame-system = { package = 'frame-system', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} +sp-std = { package = 'sp-std', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +frame-support = { package = 'frame-support', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +frame-system = { package = 'frame-system', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} common = { package = 'pallet-common', default-features = false, path = '../../common'} -balances = { package = 'pallet-balances', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sp-runtime = { package = 'sp-runtime', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} +balances = { package = 'pallet-balances', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sp-runtime = { package = 'sp-runtime', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} # Benchmarking dependencies -frame-benchmarking = { package = 'frame-benchmarking', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522', optional = true} +frame-benchmarking = { package = 'frame-benchmarking', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e', optional = true} membership = { package = 'pallet-membership', default-features = false, path = '../../membership', optional = true} council = { package = 'pallet-council', default-features = false, path = '../../council', optional = true} referendum = { package = 'pallet-referendum', default-features = false, path = '../../referendum', optional = true} [dev-dependencies] -sp-io = { package = 'sp-io', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sp-core = { package = 'sp-core', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -pallet-timestamp = { package = 'pallet-timestamp', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} +sp-io = { package = 'sp-io', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sp-core = { package = 'sp-core', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +pallet-timestamp = { package = 'pallet-timestamp', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} membership = { package = 'pallet-membership', default-features = false, path = '../../membership'} staking-handler = { package = 'pallet-staking-handler', default-features = false, path = '../../staking-handler'} council = { package = 'pallet-council', default-features = false, path = '../../council'} diff --git a/runtime-modules/proposals/engine/Cargo.toml b/runtime-modules/proposals/engine/Cargo.toml index db3c98bd5d..3884e2195d 100644 --- a/runtime-modules/proposals/engine/Cargo.toml +++ b/runtime-modules/proposals/engine/Cargo.toml @@ -8,25 +8,25 @@ edition = '2018' serde = { version = "1.0.101", optional = true, features = ["derive"] } codec = { package = 'parity-scale-codec', version = '3.1.2', default-features = false, features = ['derive'] } scale-info = { version = "2.1.1", default-features = false, features = ["derive"] } -sp-std = { package = 'sp-std', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -frame-support = { package = 'frame-support', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -frame-system = { package = 'frame-system', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -pallet-timestamp = { package = 'pallet-timestamp', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sp-arithmetic = { package = 'sp-arithmetic', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sp-runtime = { package = 'sp-runtime', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -balances = { package = 'pallet-balances', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} +sp-std = { package = 'sp-std', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +frame-support = { package = 'frame-support', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +frame-system = { package = 'frame-system', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +pallet-timestamp = { package = 'pallet-timestamp', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sp-arithmetic = { package = 'sp-arithmetic', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sp-runtime = { package = 'sp-runtime', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +balances = { package = 'pallet-balances', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} common = { package = 'pallet-common', default-features = false, path = '../../common'} staking-handler = { package = 'pallet-staking-handler', default-features = false, path = '../../staking-handler'} # Benchmark dependencies. -frame-benchmarking = { package = 'frame-benchmarking', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522', optional = true} +frame-benchmarking = { package = 'frame-benchmarking', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e', optional = true} membership = { package = 'pallet-membership', default-features = false, path = '../../membership', optional = true} council = { package = 'pallet-council', default-features = false, path = '../../council', optional = true} referendum = { package = 'pallet-referendum', default-features = false, path = '../../referendum', optional = true} [dev-dependencies] -sp-io = { package = 'sp-io', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sp-core = { package = 'sp-core', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} +sp-io = { package = 'sp-io', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sp-core = { package = 'sp-core', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} council = { package = 'pallet-council', default-features = false, path = '../../council'} membership = { package = 'pallet-membership', default-features = false, path = '../../membership'} referendum = { package = 'pallet-referendum', default-features = false, path = '../../referendum'} diff --git a/runtime-modules/referendum/Cargo.toml b/runtime-modules/referendum/Cargo.toml index 9351a9cedd..dfe69c61b0 100644 --- a/runtime-modules/referendum/Cargo.toml +++ b/runtime-modules/referendum/Cargo.toml @@ -8,24 +8,24 @@ edition = '2018' codec = { package = 'parity-scale-codec', version = '3.1.2', default-features = false, features = ['derive'] } scale-info = { version = "2.1.1", default-features = false, features = ["derive"] } serde = { version = '1.0.101', optional = true} -sp-runtime = { package = 'sp-runtime', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sp-core = { package = 'sp-core', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sp-arithmetic = { package = 'sp-arithmetic', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sp-std = { package = 'sp-std', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -frame-support = { package = 'frame-support', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -frame-system = { package = 'frame-system', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} +sp-runtime = { package = 'sp-runtime', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sp-core = { package = 'sp-core', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sp-arithmetic = { package = 'sp-arithmetic', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sp-std = { package = 'sp-std', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +frame-support = { package = 'frame-support', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +frame-system = { package = 'frame-system', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} common = { package = 'pallet-common', default-features = false, path = '../common'} -balances = { package = 'pallet-balances', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} +balances = { package = 'pallet-balances', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} staking-handler = { package = 'pallet-staking-handler', default-features = false, path = '../staking-handler'} # Benchmark dependencies -frame-benchmarking = { package = 'frame-benchmarking', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522', optional = true } +frame-benchmarking = { package = 'frame-benchmarking', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e', optional = true } membership = { package = 'pallet-membership', default-features = false, path = '../membership', optional = true } [dev-dependencies] -sp-io = { package = 'sp-io', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} +sp-io = { package = 'sp-io', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} rand = "0.7.3" -pallet-timestamp = { package = 'pallet-timestamp', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} +pallet-timestamp = { package = 'pallet-timestamp', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} membership = { package = 'pallet-membership', default-features = false, path = '../membership' } [features] diff --git a/runtime-modules/staking-handler/Cargo.toml b/runtime-modules/staking-handler/Cargo.toml index baf3cedb07..ed01921fec 100644 --- a/runtime-modules/staking-handler/Cargo.toml +++ b/runtime-modules/staking-handler/Cargo.toml @@ -5,20 +5,20 @@ authors = ['Joystream contributors'] edition = '2018' [dependencies] -sp-std = { package = 'sp-std', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -frame-support = { package = 'frame-support', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -frame-system = { package = 'frame-system', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sp-arithmetic = { package = 'sp-arithmetic', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -pallet-balances = { package = 'pallet-balances', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} +sp-std = { package = 'sp-std', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +frame-support = { package = 'frame-support', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +frame-system = { package = 'frame-system', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sp-arithmetic = { package = 'sp-arithmetic', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +pallet-balances = { package = 'pallet-balances', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} common = { package = 'pallet-common', default-features = false, path = '../common'} [dev-dependencies] -sp-io = { package = 'sp-io', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sp-core = { package = 'sp-core', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} +sp-io = { package = 'sp-io', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sp-core = { package = 'sp-core', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} codec = { package = 'parity-scale-codec', version = '3.1.2', default-features = false, features = ['derive'] } scale-info = { version = "2.1.1", default-features = false, features = ["derive"] } -sp-runtime = { package = 'sp-runtime', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -pallet-timestamp = { package = 'pallet-timestamp', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} +sp-runtime = { package = 'sp-runtime', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +pallet-timestamp = { package = 'pallet-timestamp', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} serde = { version = "1.0.101", features = ["derive"] } [features] diff --git a/runtime-modules/storage/Cargo.toml b/runtime-modules/storage/Cargo.toml index edd254b623..3532e7743c 100644 --- a/runtime-modules/storage/Cargo.toml +++ b/runtime-modules/storage/Cargo.toml @@ -8,28 +8,28 @@ edition = '2018' serde = { version = "1.0.101", optional = true, features = ["derive"] } codec = { package = 'parity-scale-codec', version = '3.1.2', default-features = false, features = ['derive'] } scale-info = { version = "2.1.1", default-features = false, features = ["derive"] } -sp-std = { package = 'sp-std', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -frame-support = { package = 'frame-support', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -frame-system = { package = 'frame-system', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sp-arithmetic = { package = 'sp-arithmetic', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sp-runtime = { package = 'sp-runtime', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -pallet-timestamp = { package = 'pallet-timestamp', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} +sp-std = { package = 'sp-std', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +frame-support = { package = 'frame-support', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +frame-system = { package = 'frame-system', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sp-arithmetic = { package = 'sp-arithmetic', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sp-runtime = { package = 'sp-runtime', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +pallet-timestamp = { package = 'pallet-timestamp', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} common = { package = 'pallet-common', default-features = false, path = '../common'} -balances = { package = 'pallet-balances', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} +balances = { package = 'pallet-balances', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} # Benchmarking -frame-benchmarking = { package = 'frame-benchmarking', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522', optional = true} +frame-benchmarking = { package = 'frame-benchmarking', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e', optional = true} working-group = { package = 'pallet-working-group', default-features = false, path = '../working-group', optional = true} -sp-core = { package = 'sp-core', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522', optional = true} +sp-core = { package = 'sp-core', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e', optional = true} membership = { package = 'pallet-membership', default-features = false, optional = true, path = '../membership'} [dev-dependencies] -sp-io = { package = 'sp-io', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sp-core = { package = 'sp-core', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -balances = { package = 'pallet-balances', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} +sp-io = { package = 'sp-io', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sp-core = { package = 'sp-core', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +balances = { package = 'pallet-balances', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} staking-handler = { package = 'pallet-staking-handler', default-features = false, path = '../staking-handler'} membership = { package = 'pallet-membership', default-features = false, path = '../membership'} -randomness-collective-flip = { package = 'pallet-randomness-collective-flip', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} +randomness-collective-flip = { package = 'pallet-randomness-collective-flip', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} derive-fixture = { package = 'derive-fixture', default-features = false, path = '../support/derive-fixture'} derive-new = "0.5" diff --git a/runtime-modules/utility/Cargo.toml b/runtime-modules/utility/Cargo.toml index ff47756e37..d4cf85b73a 100644 --- a/runtime-modules/utility/Cargo.toml +++ b/runtime-modules/utility/Cargo.toml @@ -8,26 +8,26 @@ edition = '2018' serde = { version = "1.0.101", optional = true, features = ["derive"] } codec = { package = 'parity-scale-codec', version = '3.1.2', default-features = false, features = ['derive'] } scale-info = { version = "2.1.1", default-features = false, features = ["derive"] } -sp-std = { package = 'sp-std', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -frame-support = { package = 'frame-support', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -frame_system = { package = 'frame-system', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sp-runtime = { package = 'sp-runtime', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} +sp-std = { package = 'sp-std', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +frame-support = { package = 'frame-support', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +frame_system = { package = 'frame-system', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sp-runtime = { package = 'sp-runtime', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} council = { package = 'pallet-council', default-features = false, path = '../council'} common = { package = 'pallet-common', default-features = false, path = '../common'} -balances = { package = 'pallet-balances', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sp-arithmetic = { package = 'sp-arithmetic', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} +balances = { package = 'pallet-balances', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sp-arithmetic = { package = 'sp-arithmetic', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} # Benchmarking dependencies -frame-benchmarking = { package = 'frame-benchmarking', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522', optional = true} +frame-benchmarking = { package = 'frame-benchmarking', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e', optional = true} [dev-dependencies] -sp-io = { package = 'sp-io', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sp-core = { package = 'sp-core', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} +sp-io = { package = 'sp-io', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sp-core = { package = 'sp-core', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} working-group = { package = 'pallet-working-group', default-features = false, path = '../working-group'} staking-handler = { package = 'pallet-staking-handler', default-features = false, path = '../staking-handler'} referendum = { package = 'pallet-referendum', default-features = false, path = '../referendum'} membership = { package = 'pallet-membership', default-features = false, path = '../membership'} -pallet-timestamp = { package = 'pallet-timestamp', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} +pallet-timestamp = { package = 'pallet-timestamp', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} strum = {version = "0.19", default-features = false} [features] diff --git a/runtime-modules/working-group/Cargo.toml b/runtime-modules/working-group/Cargo.toml index a5bec5eaf8..ea7bbbcadb 100644 --- a/runtime-modules/working-group/Cargo.toml +++ b/runtime-modules/working-group/Cargo.toml @@ -8,23 +8,23 @@ edition = '2018' serde = { version = "1.0.101", optional = true, features = ["derive"] } codec = { package = 'parity-scale-codec', version = '3.1.2', default-features = false, features = ['derive'] } scale-info = { version = "2.1.1", default-features = false, features = ["derive"] } -sp-runtime = { package = 'sp-runtime', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -frame-support = { package = 'frame-support', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -frame-system = { package = 'frame-system', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sp-arithmetic = { package = 'sp-arithmetic', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sp-std = { package = 'sp-std', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} +sp-runtime = { package = 'sp-runtime', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +frame-support = { package = 'frame-support', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +frame-system = { package = 'frame-system', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sp-arithmetic = { package = 'sp-arithmetic', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sp-std = { package = 'sp-std', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} common = { package = 'pallet-common', default-features = false, path = '../common'} -balances = { package = 'pallet-balances', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} +balances = { package = 'pallet-balances', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} staking-handler = { package = 'pallet-staking-handler', default-features = false, path = '../staking-handler'} # Benchmarking -frame-benchmarking = { package = 'frame-benchmarking', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522', optional = true} +frame-benchmarking = { package = 'frame-benchmarking', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e', optional = true} membership = { package = 'pallet-membership', default-features = false, path = '../membership', optional = true} [dev-dependencies] -sp-io = { package = 'sp-io', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sp-core = { package = 'sp-core', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -pallet-timestamp = { package = 'pallet-timestamp', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} +sp-io = { package = 'sp-io', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sp-core = { package = 'sp-core', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +pallet-timestamp = { package = 'pallet-timestamp', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} membership = { package = 'pallet-membership', default-features = false, path = '../membership'} [features] diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index 4528f247ff..9ab32df2b5 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -20,57 +20,57 @@ static_assertions = "1.1.0" impl-serde = { version = "=0.3.1", optional = true } # Substrate primitives -sp-std = { package = 'sp-std', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sp-arithmetic = { package = 'sp-arithmetic', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sp-runtime = { package = 'sp-runtime', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sp-offchain = { package = 'sp-offchain', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sp-core = { package = 'sp-core', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sp-authority-discovery = { package = 'sp-authority-discovery', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sp-consensus-babe = { package = 'sp-consensus-babe', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sp-transaction-pool = { package = 'sp-transaction-pool', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sp-session = { package = 'sp-session', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sp-block-builder = { package = 'sp-block-builder', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sp-api = { package = 'sp-api', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sp-version = { package = 'sp-version', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sp-staking = { package = 'sp-staking', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sp-application-crypto = { package = 'sp-application-crypto', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -sp-io = { package = 'sp-io', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} +sp-std = { package = 'sp-std', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sp-arithmetic = { package = 'sp-arithmetic', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sp-runtime = { package = 'sp-runtime', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sp-offchain = { package = 'sp-offchain', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sp-core = { package = 'sp-core', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sp-authority-discovery = { package = 'sp-authority-discovery', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sp-consensus-babe = { package = 'sp-consensus-babe', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sp-transaction-pool = { package = 'sp-transaction-pool', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sp-session = { package = 'sp-session', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sp-block-builder = { package = 'sp-block-builder', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sp-api = { package = 'sp-api', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sp-version = { package = 'sp-version', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sp-staking = { package = 'sp-staking', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sp-application-crypto = { package = 'sp-application-crypto', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sp-io = { package = 'sp-io', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} # Frame -frame-support = { package = 'frame-support', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -frame-executive = { package = 'frame-executive', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -frame-system-rpc-runtime-api = { package = 'frame-system-rpc-runtime-api', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -frame-system = { package = 'frame-system', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -frame-election-provider-support = { package = 'frame-election-provider-support', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -pallet-election-provider-multi-phase = { package = 'pallet-election-provider-multi-phase', default-features = false, optional = true, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522' } -pallet-bags-list = { package = 'pallet-bags-list', default-features = false, optional = true, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} +frame-support = { package = 'frame-support', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +frame-executive = { package = 'frame-executive', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +frame-system-rpc-runtime-api = { package = 'frame-system-rpc-runtime-api', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +frame-system = { package = 'frame-system', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +frame-election-provider-support = { package = 'frame-election-provider-support', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +pallet-election-provider-multi-phase = { package = 'pallet-election-provider-multi-phase', default-features = false, optional = true, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e' } +pallet-bags-list = { package = 'pallet-bags-list', default-features = false, optional = true, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} # Pallets -pallet-grandpa = { package = 'pallet-grandpa', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -pallet-staking-reward-curve = { package = 'pallet-staking-reward-curve', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -pallet-babe = { package = 'pallet-babe', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -pallet-transaction-payment = { package = 'pallet-transaction-payment', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -pallet-transaction-payment-rpc-runtime-api = { package = 'pallet-transaction-payment-rpc-runtime-api', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -pallet-authorship = { package = 'pallet-authorship', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -pallet-session = { package = 'pallet-session', features = [ "historical" ], default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -pallet-offences = { package = 'pallet-offences', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -pallet-randomness-collective-flip = { package = 'pallet-randomness-collective-flip', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -pallet-authority-discovery = { package = 'pallet-authority-discovery', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -pallet-staking = { package = 'pallet-staking', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -pallet-timestamp = { package = 'pallet-timestamp', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -pallet-balances = { package = 'pallet-balances', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -pallet-im-online = { package = 'pallet-im-online', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -substrate-utility = { package = 'pallet-utility', version = "4.0.0-dev", default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} -pallet-vesting = { package = 'pallet-vesting', default-features = false, git = 'https://github.com/joystream/substrate', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522' } -pallet-multisig = { package = 'pallet-multisig', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} +pallet-grandpa = { package = 'pallet-grandpa', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +pallet-staking-reward-curve = { package = 'pallet-staking-reward-curve', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +pallet-babe = { package = 'pallet-babe', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +pallet-transaction-payment = { package = 'pallet-transaction-payment', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +pallet-transaction-payment-rpc-runtime-api = { package = 'pallet-transaction-payment-rpc-runtime-api', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +pallet-authorship = { package = 'pallet-authorship', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +pallet-session = { package = 'pallet-session', features = [ "historical" ], default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +pallet-offences = { package = 'pallet-offences', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +pallet-randomness-collective-flip = { package = 'pallet-randomness-collective-flip', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +pallet-authority-discovery = { package = 'pallet-authority-discovery', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +pallet-staking = { package = 'pallet-staking', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +pallet-timestamp = { package = 'pallet-timestamp', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +pallet-balances = { package = 'pallet-balances', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +pallet-im-online = { package = 'pallet-im-online', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +substrate-utility = { package = 'pallet-utility', version = "4.0.0-dev", default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +pallet-vesting = { package = 'pallet-vesting', default-features = false, git = 'https://github.com/joystream/substrate', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e' } +pallet-multisig = { package = 'pallet-multisig', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} # Benchmarking -frame-benchmarking = { git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522', default-features = false, optional = true } -frame-system-benchmarking = { git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522', default-features = false, optional = true } -pallet-offences-benchmarking = { git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522', default-features = false, optional = true } -pallet-session-benchmarking = { git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522', default-features = false, optional = true } +frame-benchmarking = { git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e', default-features = false, optional = true } +frame-system-benchmarking = { git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e', default-features = false, optional = true } +pallet-offences-benchmarking = { git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e', default-features = false, optional = true } +pallet-session-benchmarking = { git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e', default-features = false, optional = true } hex-literal = { optional = true, version = '0.3.1' } -pallet-election-provider-support-benchmarking = { package = 'pallet-election-provider-support-benchmarking', default-features = false, optional = true, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522' } +pallet-election-provider-support-benchmarking = { package = 'pallet-election-provider-support-benchmarking', default-features = false, optional = true, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e' } # Joystream common = { package = 'pallet-common', default-features = false, path = '../runtime-modules/common'} @@ -91,11 +91,11 @@ joystream-utility = { package = 'pallet-utility', default-features = false, path project-token = { package = 'pallet-project-token', default-features = false, path = '../runtime-modules/project-token'} [dev-dependencies] -sp-io = { package = 'sp-io', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522'} +sp-io = { package = 'sp-io', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} strum = {version = "0.19", default-features = false} [build-dependencies] -substrate-wasm-builder = { git = "https://github.com/joystream/substrate", rev = 'd29a53b11c3e530d1656eef502cb0f1f8fff3522' } +substrate-wasm-builder = { git = "https://github.com/joystream/substrate", rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e' } [features] default = ['std'] From f74dc18c60ee54efed932e24531f84e515c6d0e4 Mon Sep 17 00:00:00 2001 From: Mokhtar Naamani Date: Thu, 2 Mar 2023 09:55:47 +0400 Subject: [PATCH 02/87] v0.9.39 - pallet-randomness-collective-flip renamed (insecure) --- Cargo.lock | 10 +++++----- runtime-modules/content/Cargo.toml | 2 +- runtime-modules/project-token/Cargo.toml | 2 +- runtime-modules/storage/Cargo.toml | 2 +- runtime/Cargo.toml | 4 ++-- runtime/src/lib.rs | 4 ++-- 6 files changed, 12 insertions(+), 12 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 48577e536d..404d89e044 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2864,7 +2864,7 @@ dependencies = [ "pallet-proposals-codex", "pallet-proposals-discussion", "pallet-proposals-engine", - "pallet-randomness-collective-flip", + "pallet-insecure-randomness-collective-flip", "pallet-referendum", "pallet-session", "pallet-session-benchmarking", @@ -4597,7 +4597,7 @@ dependencies = [ "pallet-common", "pallet-membership", "pallet-project-token", - "pallet-randomness-collective-flip", + "pallet-insecure-randomness-collective-flip", "pallet-staking-handler", "pallet-storage", "pallet-timestamp", @@ -4827,7 +4827,7 @@ dependencies = [ "pallet-balances", "pallet-common", "pallet-membership", - "pallet-randomness-collective-flip", + "pallet-insecure-randomness-collective-flip", "pallet-staking-handler", "pallet-storage", "pallet-timestamp", @@ -4925,7 +4925,7 @@ dependencies = [ ] [[package]] -name = "pallet-randomness-collective-flip" +name = "pallet-insecure-randomness-collective-flip" version = "4.0.0-dev" source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" dependencies = [ @@ -5063,7 +5063,7 @@ dependencies = [ "pallet-balances", "pallet-common", "pallet-membership", - "pallet-randomness-collective-flip", + "pallet-insecure-randomness-collective-flip", "pallet-staking-handler", "pallet-timestamp", "pallet-working-group", diff --git a/runtime-modules/content/Cargo.toml b/runtime-modules/content/Cargo.toml index a28759636f..4198d8f201 100755 --- a/runtime-modules/content/Cargo.toml +++ b/runtime-modules/content/Cargo.toml @@ -30,7 +30,7 @@ sp-core = { package = 'sp-core', default-features = false, git = 'https://github [dev-dependencies] sp-io = { package = 'sp-io', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} pallet-timestamp = { package = 'pallet-timestamp', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} -randomness-collective-flip = { package = 'pallet-randomness-collective-flip', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +randomness-collective-flip = { package = 'pallet-insecure-randomness-collective-flip', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} staking-handler = { package = 'pallet-staking-handler', default-features = false, path = '../staking-handler'} working-group = { package = 'pallet-working-group', default-features = false, path = '../working-group'} derive-fixture = { package = 'derive-fixture', default-features = false, path = '../support/derive-fixture'} diff --git a/runtime-modules/project-token/Cargo.toml b/runtime-modules/project-token/Cargo.toml index b1959c82a3..ce0561e5bc 100644 --- a/runtime-modules/project-token/Cargo.toml +++ b/runtime-modules/project-token/Cargo.toml @@ -23,7 +23,7 @@ scale-info = { version = "2.1.1", default-features = false, features = ["derive" frame-benchmarking = { package = 'frame-benchmarking', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e', optional = true} [dev-dependencies] -randomness-collective-flip = { package = 'pallet-randomness-collective-flip', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +randomness-collective-flip = { package = 'pallet-insecure-randomness-collective-flip', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} staking-handler = { package = 'pallet-staking-handler', default-features = false, path = '../staking-handler'} pallet-timestamp = { package = 'pallet-timestamp', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} sp-storage = { package = 'sp-storage', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} diff --git a/runtime-modules/storage/Cargo.toml b/runtime-modules/storage/Cargo.toml index 3532e7743c..760f36e344 100644 --- a/runtime-modules/storage/Cargo.toml +++ b/runtime-modules/storage/Cargo.toml @@ -29,7 +29,7 @@ sp-core = { package = 'sp-core', default-features = false, git = 'https://github balances = { package = 'pallet-balances', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} staking-handler = { package = 'pallet-staking-handler', default-features = false, path = '../staking-handler'} membership = { package = 'pallet-membership', default-features = false, path = '../membership'} -randomness-collective-flip = { package = 'pallet-randomness-collective-flip', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +randomness-collective-flip = { package = 'pallet-insecure-randomness-collective-flip', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} derive-fixture = { package = 'derive-fixture', default-features = false, path = '../support/derive-fixture'} derive-new = "0.5" diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index 9ab32df2b5..33005210ec 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -54,7 +54,7 @@ pallet-transaction-payment-rpc-runtime-api = { package = 'pallet-transaction-pay pallet-authorship = { package = 'pallet-authorship', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} pallet-session = { package = 'pallet-session', features = [ "historical" ], default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} pallet-offences = { package = 'pallet-offences', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} -pallet-randomness-collective-flip = { package = 'pallet-randomness-collective-flip', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +pallet-insecure-randomness-collective-flip = { package = 'pallet-insecure-randomness-collective-flip', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} pallet-authority-discovery = { package = 'pallet-authority-discovery', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} pallet-staking = { package = 'pallet-staking', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} pallet-timestamp = { package = 'pallet-timestamp', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} @@ -142,7 +142,7 @@ std = [ 'pallet-session/std', 'pallet-authority-discovery/std', 'pallet-authorship/std', - 'pallet-randomness-collective-flip/std', + 'pallet-insecure-randomness-collective-flip/std', 'pallet-staking/std', 'pallet-im-online/std', 'pallet-offences/std', diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs index 10a186bfca..ef37575740 100644 --- a/runtime/src/lib.rs +++ b/runtime/src/lib.rs @@ -292,7 +292,7 @@ impl frame_system::Config for Runtime { type MaxConsumers = ConstU32<16>; } -impl pallet_randomness_collective_flip::Config for Runtime {} +impl pallet_insecure_randomness_collective_flip::Config for Runtime {} impl substrate_utility::Config for Runtime { type Event = Event; @@ -1835,7 +1835,7 @@ construct_runtime!( AuthorityDiscovery: pallet_authority_discovery, ImOnline: pallet_im_online, Offences: pallet_offences, - RandomnessCollectiveFlip: pallet_randomness_collective_flip, + RandomnessCollectiveFlip: pallet_insecure_randomness_collective_flip, BagsList: pallet_bags_list, Vesting: pallet_vesting, Multisig: pallet_multisig, From bb28c30506b49a1ac07983208fcf038426ae6f0e Mon Sep 17 00:00:00 2001 From: Mokhtar Naamani Date: Thu, 2 Mar 2023 10:49:02 +0400 Subject: [PATCH 03/87] v0.9.39 - drop uncles code --- bin/node/Cargo.toml | 2 -- 1 file changed, 2 deletions(-) diff --git a/bin/node/Cargo.toml b/bin/node/Cargo.toml index 7dd46dce48..1e0a0d1b88 100644 --- a/bin/node/Cargo.toml +++ b/bin/node/Cargo.toml @@ -33,7 +33,6 @@ sp-api = { package = 'sp-api', git = 'https://github.com/joystream/substrate.git sp-core = { package = 'sp-core', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} sp-runtime = { package = 'sp-runtime', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} sp-timestamp = { package = 'sp-timestamp', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} -sp-authorship = { package = 'sp-authorship', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} sp-inherents = { package = 'sp-inherents', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} sp-keyring = { package = 'sp-keyring', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} sp-keystore = { package = 'sp-keystore', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} @@ -54,7 +53,6 @@ sc-consensus-slots = { package = 'sc-consensus-slots', git = 'https://github.com sc-consensus-babe = { package = 'sc-consensus-babe', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} sc-consensus-babe-rpc = { package = 'sc-consensus-babe-rpc', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} sc-consensus-epochs = { package = 'sc-consensus-epochs', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} -sc-consensus-uncles = { package = 'sc-consensus-uncles', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} sc-finality-grandpa = { package = "sc-finality-grandpa", git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} sc-finality-grandpa-rpc = { package = 'sc-finality-grandpa-rpc', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} sc-rpc = { package = 'sc-rpc', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} From b770d8139c1e398f36059840142b761a8d9ce817 Mon Sep 17 00:00:00 2001 From: Mokhtar Naamani Date: Thu, 2 Mar 2023 11:28:31 +0400 Subject: [PATCH 04/87] v0.9.39 - adjust for renamed packages and update crates versions compiling now requires at least rustc 1.66.0 --- Cargo.lock | 4919 +++++++++++++++++++++++++++---------------- bin/node/Cargo.toml | 10 +- 2 files changed, 3140 insertions(+), 1789 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 404d89e044..d474262131 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -18,7 +18,16 @@ version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b9ecd88a8c8378ca913a680cd98f0f13ac67383d35993f86c90a70e3f137816b" dependencies = [ - "gimli", + "gimli 0.26.2", +] + +[[package]] +name = "addr2line" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a76fd60b23679b7d19bd066031410fb7e458ccc5e958eb5c325888ce4baedc97" +dependencies = [ + "gimli 0.27.2", ] [[package]] @@ -27,6 +36,15 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" +[[package]] +name = "aead" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fc95d1bdb8e6666b2b217308eeeb09f2d6728d104be3e31916cc74d15420331" +dependencies = [ + "generic-array 0.14.6", +] + [[package]] name = "aead" version = "0.4.3" @@ -34,6 +52,28 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b613b8e1e3cf911a086f53f03bf286f52fd7a7258e4fa606f0ef220d39d8877" dependencies = [ "generic-array 0.14.6", + "rand_core 0.6.4", +] + +[[package]] +name = "aead" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c192eb8f11fc081b0fe4259ba5af04217d4e0faddd02417310a927911abd7c8" +dependencies = [ + "crypto-common", + "generic-array 0.14.6", +] + +[[package]] +name = "aes" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "884391ef1066acaa41e766ba8f596341b96e93ce34f9a43e7d24bf0a0eaf0561" +dependencies = [ + "aes-soft", + "aesni", + "cipher 0.2.5", ] [[package]] @@ -43,41 +83,98 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e8b47f52ea9bae42228d07ec09eb676433d7c4ed1ebdf0f1d1c29ed446f1ab8" dependencies = [ "cfg-if", - "cipher", + "cipher 0.3.0", "cpufeatures", "opaque-debug 0.3.0", ] +[[package]] +name = "aes" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "433cfd6710c9986c576a25ca913c39d66a6474107b406f34f91d4a8923395241" +dependencies = [ + "cfg-if", + "cipher 0.4.3", + "cpufeatures", +] + [[package]] name = "aes-gcm" version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df5f85a83a7d8b0442b6aa7b504b8212c1733da07b98aae43d4bc21b2cb3cdf6" dependencies = [ - "aead", - "aes", - "cipher", - "ctr", - "ghash", + "aead 0.4.3", + "aes 0.7.5", + "cipher 0.3.0", + "ctr 0.8.0", + "ghash 0.4.4", + "subtle", +] + +[[package]] +name = "aes-gcm" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82e1366e0c69c9f927b1fa5ce2c7bf9eafc8f9268c0b9800729e8b267612447c" +dependencies = [ + "aead 0.5.1", + "aes 0.8.2", + "cipher 0.4.3", + "ctr 0.9.2", + "ghash 0.5.0", "subtle", ] +[[package]] +name = "aes-soft" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be14c7498ea50828a38d0e24a765ed2effe92a705885b57d029cd67d45744072" +dependencies = [ + "cipher 0.2.5", + "opaque-debug 0.3.0", +] + +[[package]] +name = "aesni" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea2e11f5e94c2f7d386164cc2aa1f97823fed6f259e486940a71c174dd01b0ce" +dependencies = [ + "cipher 0.2.5", + "opaque-debug 0.3.0", +] + [[package]] name = "ahash" version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47" dependencies = [ - "getrandom 0.2.7", + "getrandom 0.2.8", + "once_cell", + "version_check", +] + +[[package]] +name = "ahash" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c99f64d1e06488f620f932677e24bc6e2897582980441ae90a671415bd7ec2f" +dependencies = [ + "cfg-if", + "getrandom 0.2.8", "once_cell", "version_check", ] [[package]] name = "aho-corasick" -version = "0.7.19" +version = "0.7.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4f55bd91a0978cbfd91c457a164bab8b4001c833b7f323132c0a4e1922dd44e" +checksum = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac" dependencies = [ "memchr", ] @@ -102,9 +199,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.65" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98161a4e3e2184da77bb14f02184cdd111e83bbbcc9979dfee3c44b9a85f5602" +checksum = "224afbd727c3d6e4b90103ece64b8d1b67fbb1973b1046c2281eed3f3803f800" [[package]] name = "approx" @@ -116,19 +213,22 @@ dependencies = [ ] [[package]] -name = "arrayref" -version = "0.3.6" +name = "arc-swap" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544" +checksum = "bddcadddf5e9015d310179a59bb28c4d4b9920ad0f11e8e14dbadf654890c9a6" [[package]] -name = "arrayvec" -version = "0.4.12" +name = "array-bytes" +version = "4.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd9fd44efafa8690358b7408d253adf110036b88f55672a933f01d616ad9b1b9" -dependencies = [ - "nodrop", -] +checksum = "f52f63c5c1316a16a4b35eaac8b76a98248961a533f061684cb2a7cb0eafb6c6" + +[[package]] +name = "arrayref" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544" [[package]] name = "arrayvec" @@ -142,6 +242,73 @@ version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6" +[[package]] +name = "asn1-rs" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30ff05a702273012438132f449575dbc804e27b2f3cbe3069aa237d26c98fa33" +dependencies = [ + "asn1-rs-derive 0.1.0", + "asn1-rs-impl", + "displaydoc", + "nom", + "num-traits", + "rusticata-macros", + "thiserror", + "time 0.3.20", +] + +[[package]] +name = "asn1-rs" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf6690c370453db30743b373a60ba498fc0d6d83b11f4abfd87a84a075db5dd4" +dependencies = [ + "asn1-rs-derive 0.4.0", + "asn1-rs-impl", + "displaydoc", + "nom", + "num-traits", + "rusticata-macros", + "thiserror", + "time 0.3.20", +] + +[[package]] +name = "asn1-rs-derive" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db8b7511298d5b7784b40b092d9e9dcd3a627a5707e4b5e507931ab0d44eeebf" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "synstructure", +] + +[[package]] +name = "asn1-rs-derive" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "726535892e8eae7e70657b4c8ea93d26b8553afb1ce617caee529ef96d7dee6c" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "synstructure", +] + +[[package]] +name = "asn1-rs-impl" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2777730b2039ac0f95f093556e61b6d26cebed5393ca6f152717777cec3a42ed" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "asn1_der" version = "0.7.5" @@ -150,9 +317,9 @@ checksum = "e22d1f4b888c298a027c99dc9048015fac177587de20fc30232a057dfbe24a21" [[package]] name = "assert_cmd" -version = "2.0.4" +version = "2.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93ae1ddd39efd67689deb1979d80bad3bf7f2b09c6e6117c8d1f2443b5e2f83e" +checksum = "9834fcc22e0874394a010230586367d4a3e9f11b560f469262678547e1d2575e" dependencies = [ "bstr", "doc-comment", @@ -174,9 +341,9 @@ dependencies = [ [[package]] name = "async-channel" -version = "1.7.1" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e14485364214912d3b19cc3435dde4df66065127f05fa0d75c712f36f12c2f28" +checksum = "cf46fee83e5ccffc220104713af3292ff9bc7c64c7de289f66dae8e38d826833" dependencies = [ "concurrent-queue", "event-listener", @@ -185,23 +352,23 @@ dependencies = [ [[package]] name = "async-executor" -version = "1.4.1" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "871f9bb5e0a22eeb7e8cf16641feb87c9dc67032ccf8ff49e772eb9941d3a965" +checksum = "17adb73da160dfb475c183343c8cccd80721ea5a605d3eb57125f0a7b7a92d0b" dependencies = [ + "async-lock", "async-task", "concurrent-queue", "fastrand", "futures-lite", - "once_cell", "slab", ] [[package]] name = "async-global-executor" -version = "2.3.0" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0da5b41ee986eed3f524c380e6d64965aea573882a8907682ad100f7859305ca" +checksum = "f1b6f5d7df27bd294849f8eec66ecfc63d11814df7a4f5d74168a2394467b776" dependencies = [ "async-channel", "async-executor", @@ -214,49 +381,32 @@ dependencies = [ [[package]] name = "async-io" -version = "1.9.0" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83e21f3a490c72b3b0cf44962180e60045de2925d8dff97918f7ee43c8f637c7" +checksum = "8c374dda1ed3e7d8f0d9ba58715f924862c63eae6849c92d3a18e7fbde9e2794" dependencies = [ + "async-lock", "autocfg", "concurrent-queue", "futures-lite", "libc", "log", - "once_cell", "parking", "polling", "slab", "socket2", "waker-fn", - "winapi", + "windows-sys 0.42.0", ] [[package]] name = "async-lock" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e97a171d191782fba31bb902b14ad94e24a68145032b7eedf871ab0bc0d077b6" -dependencies = [ - "event-listener", -] - -[[package]] -name = "async-process" -version = "1.5.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02111fd8655a613c25069ea89fc8d9bb89331fa77486eb3bc059ee757cfa481c" +checksum = "c8101efe8695a6c17e02911402145357e718ac92d3ff88ae8419e84b1707b685" dependencies = [ - "async-io", - "autocfg", - "blocking", - "cfg-if", "event-listener", "futures-lite", - "libc", - "once_cell", - "signal-hook", - "winapi", ] [[package]] @@ -270,7 +420,6 @@ dependencies = [ "async-global-executor", "async-io", "async-lock", - "async-process", "crossbeam-utils", "futures-channel", "futures-core", @@ -287,21 +436,6 @@ dependencies = [ "wasm-bindgen-futures", ] -[[package]] -name = "async-std-resolver" -version = "0.21.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f2f8a4a203be3325981310ab243a28e6e4ea55b6519bffce05d41ab60e09ad8" -dependencies = [ - "async-std", - "async-trait", - "futures-io", - "futures-util", - "pin-utils", - "socket2", - "trust-dns-resolver", -] - [[package]] name = "async-task" version = "4.3.0" @@ -310,9 +444,9 @@ checksum = "7a40729d2133846d9ed0ea60a8b9541bccddab49cd30f0715a1da672fe9a2524" [[package]] name = "async-trait" -version = "0.1.57" +version = "0.1.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76464446b8bc32758d7e88ee1a804d9914cd9b1cb264c029899680b0be29826f" +checksum = "1cd7fce9ba8c3c042128ce72d8b2ddbf3a05747efb67ea0313c635e10bda47a2" dependencies = [ "proc-macro2", "quote", @@ -321,9 +455,9 @@ dependencies = [ [[package]] name = "asynchronous-codec" -version = "0.6.0" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0de5164e5edbf51c45fb8c2d9664ae1c095cce1b265ecf7569093c0d66ef690" +checksum = "06a0daa378f5fd10634e44b0a29b2a87b890657658e072a30d6f26e57ddee182" dependencies = [ "bytes", "futures-sink", @@ -334,9 +468,9 @@ dependencies = [ [[package]] name = "atomic-waker" -version = "1.0.0" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "065374052e7df7ee4047b1160cca5e1467a12351a40b3da123c870ba0b8eda2a" +checksum = "debc29dde2e69f9e47506b525f639ed42300fc014a3e007832592448fa8e4599" [[package]] name = "atty" @@ -344,7 +478,7 @@ version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" dependencies = [ - "hermit-abi", + "hermit-abi 0.1.19", "libc", "winapi", ] @@ -357,16 +491,16 @@ checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" [[package]] name = "backtrace" -version = "0.3.66" +version = "0.3.67" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cab84319d616cfb654d03394f38ab7e6f0919e181b1b57e1fd15e7fb4077d9a7" +checksum = "233d376d6d185f2a3093e58f283f60f880315b6c60075b01f36b3b85154564ca" dependencies = [ - "addr2line", + "addr2line 0.19.0", "cc", "cfg-if", "libc", "miniz_oxide", - "object 0.29.0", + "object 0.30.3", "rustc-demangle", ] @@ -390,9 +524,21 @@ checksum = "6107fe1be6682a68940da878d9e9f5e90ca5745b3dec9fd1bb393c8777d4f581" [[package]] name = "base64" -version = "0.13.0" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" + +[[package]] +name = "base64" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4a4ddaa51a5bc52a6948f74c06d20aaaddb71924eab79b8c97a8c556e942d6a" + +[[package]] +name = "base64ct" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" +checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" [[package]] name = "beef" @@ -404,25 +550,14 @@ dependencies = [ ] [[package]] -name = "beefy-primitives" +name = "binary-merkle-tree" version = "4.0.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ - "parity-scale-codec", - "scale-info", - "sp-api", - "sp-application-crypto", - "sp-core", - "sp-runtime", - "sp-std", + "hash-db", + "log", ] -[[package]] -name = "bimap" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc0455254eb5c6964c4545d8bac815e1a1be4f3afe0ae695ea539c12d728d44b" - [[package]] name = "bincode" version = "1.3.3" @@ -434,9 +569,9 @@ dependencies = [ [[package]] name = "bindgen" -version = "0.59.2" +version = "0.64.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bd2a9a458e8f4304c52c43ebb0cfbd520289f8379a52e329a38afda99bf8eb8" +checksum = "c4243e6031260db77ede97ad86c27e501d646a27ab57b59a574f725d98ab1fb4" dependencies = [ "bitflags", "cexpr", @@ -449,6 +584,7 @@ dependencies = [ "regex", "rustc-hash", "shlex", + "syn", ] [[package]] @@ -471,28 +607,18 @@ dependencies = [ [[package]] name = "blake2" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9cf849ee05b2ee5fba5e36f97ff8ec2533916700fc0758d40d92136a42f3388" -dependencies = [ - "digest 0.10.5", -] - -[[package]] -name = "blake2-rfc" -version = "0.2.18" +version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d6d530bdd2d52966a6d03b7a964add7ae1a288d25214066fd4b600f0f796400" +checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe" dependencies = [ - "arrayvec 0.4.12", - "constant_time_eq", + "digest 0.10.6", ] [[package]] name = "blake2b_simd" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72936ee4afc7f8f736d1c38383b56480b5497b4617b4a77bdbf1d2ababc76127" +checksum = "3c2f0dc9a68c6317d884f97cc36cf5a3d20ba14ce404227df55e1af708ab04bc" dependencies = [ "arrayref", "arrayvec 0.7.2", @@ -501,9 +627,9 @@ dependencies = [ [[package]] name = "blake2s_simd" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db539cc2b5f6003621f1cd9ef92d7ded8ea5232c7de0f9faa2de251cd98730d4" +checksum = "6637f448b9e61dfadbdcbae9a885fadee1f3eaffb1f8d3c1965d3ade8bdfd44f" dependencies = [ "arrayref", "arrayvec 0.7.2", @@ -512,9 +638,9 @@ dependencies = [ [[package]] name = "blake3" -version = "1.3.1" +version = "1.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a08e53fc5a564bb15bfe6fae56bd71522205f1f91893f9c0116edad6496c183f" +checksum = "42ae2468a89544a466886840aa467a25b766499f4f04bf7d9fcd10ecee9fccef" dependencies = [ "arrayref", "arrayvec 0.7.2", @@ -541,7 +667,6 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" dependencies = [ - "block-padding 0.2.1", "generic-array 0.14.6", ] @@ -554,6 +679,16 @@ dependencies = [ "generic-array 0.14.6", ] +[[package]] +name = "block-modes" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57a0e8073e8baa88212fb5823574c02ebccb395136ba9a164ab89379ec6072f0" +dependencies = [ + "block-padding 0.2.1", + "cipher 0.2.5", +] + [[package]] name = "block-padding" version = "0.1.5" @@ -571,16 +706,28 @@ checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae" [[package]] name = "blocking" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6ccb65d468978a086b69884437ded69a90faab3bbe6e67f242173ea728acccc" +checksum = "3c67b173a56acffd6d2326fb7ab938ba0b00a71480e14902b2591c87bc5741e8" dependencies = [ "async-channel", + "async-lock", "async-task", "atomic-waker", "fastrand", "futures-lite", - "once_cell", +] + +[[package]] +name = "bounded-collections" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a071c348a5ef6da1d3a87166b408170b46002382b1dda83992b5c2208cefb370" +dependencies = [ + "log", + "parity-scale-codec", + "scale-info", + "serde", ] [[package]] @@ -591,12 +738,12 @@ checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3" [[package]] name = "bstr" -version = "0.2.17" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba3569f383e8f1598449f1a423e72e99569137b47740b1da11ef19af3d5c3223" +checksum = "5ffdb39cb703212f3c11973452c2861b972f757b021158f3516ba10f2fa8b2c1" dependencies = [ - "lazy_static", "memchr", + "once_cell", "regex-automata", "serde", ] @@ -612,15 +759,15 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.11.0" +version = "3.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1ad822118d20d2c234f427000d5acc36eabe1e29a348c89b63dd60b13f28e5d" +checksum = "0d261e256854913907f67ed06efbc3338dfe6179796deefc1ff763fc1aee5535" [[package]] name = "byte-slice-cast" -version = "1.2.1" +version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87c5fdd0166095e1d463fc6cc01aa8ce547ad77a4e84d42eb6762b084e28067e" +checksum = "c3ac9f8b63eca6fd385229b3675f6cc0dc5c8a5c8a54a59d4f52ffd670d87b0c" [[package]] name = "byte-tools" @@ -628,6 +775,12 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7" +[[package]] +name = "bytemuck" +version = "1.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17febce684fd15d89027105661fec94afb475cb995fbc59d2865198446ba2eea" + [[package]] name = "byteorder" version = "1.4.3" @@ -636,9 +789,9 @@ checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" [[package]] name = "bytes" -version = "1.2.1" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec8a7b6a70fde80372154c65702f00a0f56f3e1c36abbc6c440484be248856db" +checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be" [[package]] name = "bzip2-sys" @@ -651,12 +804,6 @@ dependencies = [ "pkg-config", ] -[[package]] -name = "cache-padded" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1db59621ec70f09c5e9b597b220c7a2b43611f4710dc03ceb8748637775692c" - [[package]] name = "call-sizes" version = "1.0.0" @@ -682,9 +829,9 @@ dependencies = [ [[package]] name = "camino" -version = "1.1.1" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88ad0e1e3e88dd237a156ab9f571021b8a158caa0ae44b1968a241efb5144c1e" +checksum = "6031a462f977dd38968b6f23378356512feeace69cef817e1a4475108093cec3" dependencies = [ "serde", ] @@ -700,15 +847,16 @@ dependencies = [ [[package]] name = "cargo_metadata" -version = "0.14.2" +version = "0.15.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4acbb09d9ee8e23699b9634375c72795d095bf268439da88562cf9b501f181fa" +checksum = "08a1ec454bc3eead8719cb56e15dbbfecdbc14e4b3a3ae4936cc6e31f5fc0d07" dependencies = [ "camino", "cargo-platform", - "semver 1.0.14", + "semver 1.0.16", "serde", "serde_json", + "thiserror", ] [[package]] @@ -719,28 +867,54 @@ checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" [[package]] name = "cc" -version = "1.0.73" +version = "1.0.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11" +checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f" dependencies = [ "jobserver", ] [[package]] -name = "cexpr" -version = "0.6.0" +name = "ccm" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5aca1a8fbc20b50ac9673ff014abfb2b5f4085ee1a850d408f14a159c5853ac7" +dependencies = [ + "aead 0.3.2", + "cipher 0.2.5", + "subtle", +] + +[[package]] +name = "cexpr" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" dependencies = [ "nom", ] +[[package]] +name = "cfg-expr" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0aacacf4d96c24b2ad6eb8ee6df040e4f27b0d0b39a5710c30091baa830485db" +dependencies = [ + "smallvec", +] + [[package]] name = "cfg-if" version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +[[package]] +name = "cfg_aliases" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" + [[package]] name = "chacha20" version = "0.8.2" @@ -748,7 +922,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5c80e5460aa66fe3b91d40bcbdab953a597b60053e34d684ac6903f863b680a6" dependencies = [ "cfg-if", - "cipher", + "cipher 0.3.0", "cpufeatures", "zeroize", ] @@ -759,9 +933,9 @@ version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a18446b09be63d457bbec447509e85f662f32952b035ce892290396bc0b0cff5" dependencies = [ - "aead", + "aead 0.4.3", "chacha20", - "cipher", + "cipher 0.3.0", "poly1305", "zeroize", ] @@ -771,7 +945,7 @@ name = "chain-spec-builder" version = "8.3.0" dependencies = [ "async-std", - "clap 3.2.22", + "clap 3.2.23", "enum-utils", "futures-util", "joystream-node", @@ -785,15 +959,15 @@ dependencies = [ [[package]] name = "chrono" -version = "0.4.22" +version = "0.4.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfd4d1b31faaa3a89d7934dbded3111da0d2ef28e3ebccdb4f0179f5929d1ef1" +checksum = "16b0a3d9ed01224b22057780a37bb8c5dbfe1be8ba48678e7bf57ec4b385411f" dependencies = [ "iana-time-zone", "js-sys", "num-integer", "num-traits", - "time", + "time 0.1.45", "wasm-bindgen", "winapi", ] @@ -806,11 +980,20 @@ checksum = "f6ed9c8b2d17acb8110c46f1da5bf4a696d745e1474a16db0cd2b49cd0249bf2" dependencies = [ "core2", "multibase", - "multihash", + "multihash 0.16.3", "serde", "unsigned-varint", ] +[[package]] +name = "cipher" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12f8e7987cbd042a63249497f41aed09f8e65add917ea6566effbc56578d6801" +dependencies = [ + "generic-array 0.14.6", +] + [[package]] name = "cipher" version = "0.3.0" @@ -820,15 +1003,34 @@ dependencies = [ "generic-array 0.14.6", ] +[[package]] +name = "cipher" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1873270f8f7942c191139cb8a40fd228da6c3fd2fc376d7e92d47aa14aeb59e" +dependencies = [ + "crypto-common", + "inout", +] + +[[package]] +name = "ckb-merkle-mountain-range" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56ccb671c5921be8a84686e6212ca184cb1d7c51cadcdbfcbd1cc3f042f5dfb8" +dependencies = [ + "cfg-if", +] + [[package]] name = "clang-sys" -version = "1.4.0" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa2e27ae6ab525c3d369ded447057bca5438d86dc3a68f6faafb8269ba82ebf3" +checksum = "77ed9a53e5d4d9c573ae844bfac6872b159cb1d1585a83b29e7a64b7eef7332a" dependencies = [ "glob", "libc", - "libloading 0.7.3", + "libloading", ] [[package]] @@ -844,19 +1046,34 @@ dependencies = [ [[package]] name = "clap" -version = "3.2.22" +version = "3.2.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86447ad904c7fb335a790c9d7fe3d0d971dc523b8ccd1561a520de9a85302750" +checksum = "71655c45cb9845d3270c9d6df84ebe72b4dad3c2ba3f7023ad47c144e4e473a5" dependencies = [ "atty", "bitflags", - "clap_derive", - "clap_lex", + "clap_derive 3.2.18", + "clap_lex 0.2.4", "indexmap", "once_cell", "strsim", "termcolor", - "textwrap 0.15.1", + "textwrap 0.16.0", +] + +[[package]] +name = "clap" +version = "4.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3d7ae14b20b94cb02149ed21a86c423859cbe18dc7ed69845cace50e52b40a5" +dependencies = [ + "bitflags", + "clap_derive 4.1.8", + "clap_lex 0.3.2", + "is-terminal", + "once_cell", + "strsim", + "termcolor", ] [[package]] @@ -865,7 +1082,7 @@ version = "3.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f7a2e0a962c45ce25afce14220bc24f9dade0a1787f185cecf96bfba7847cd8" dependencies = [ - "clap 3.2.22", + "clap 3.2.23", ] [[package]] @@ -874,7 +1091,20 @@ version = "3.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ea0c8bce528c4be4da13ea6fead8965e95b6073585a2f05204bd8f4119f82a65" dependencies = [ - "heck 0.4.0", + "heck 0.4.1", + "proc-macro-error", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "clap_derive" +version = "4.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44bec8e5c9d09e439c4335b1af0abaab56dcf3b94999a936e1bb47b9134288f0" +dependencies = [ + "heck 0.4.1", "proc-macro-error", "proc-macro2", "quote", @@ -891,12 +1121,12 @@ dependencies = [ ] [[package]] -name = "cmake" -version = "0.1.48" +name = "clap_lex" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8ad8cef104ac57b68b89df3208164d228503abbdce70f6880ffa3d970e7443a" +checksum = "350b9cf31731f9957399229e9b2adc51eeabdfbe9d71d9a0552275fd12710d09" dependencies = [ - "cc", + "os_str_bytes", ] [[package]] @@ -911,35 +1141,35 @@ dependencies = [ [[package]] name = "comfy-table" -version = "5.0.1" +version = "6.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b103d85ca6e209388771bfb7aa6b68a7aeec4afbf6f0a0264bfbf50360e5212e" +checksum = "6e7b787b0dc42e8111badfdbe4c3059158ccb2db8780352fa1b01e8ccf45cc4d" dependencies = [ - "strum 0.23.0", - "strum_macros 0.23.1", + "strum 0.24.1", + "strum_macros 0.24.3", "unicode-width", ] [[package]] name = "concurrent-queue" -version = "1.2.4" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af4780a44ab5696ea9e28294517f1fffb421a83a25af521333c838635509db9c" +checksum = "c278839b831783b70278b14df4d45e1beb1aad306c07bb796637de9a0e323e8e" dependencies = [ - "cache-padded", + "crossbeam-utils", ] [[package]] name = "const-oid" -version = "0.7.1" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4c78c047431fee22c1a7bb92e00ad095a02a983affe4d8a72e2a2c62c1b94f3" +checksum = "520fbf3c07483f94e3e3ca9d0cfd913d7718ef2483d2cfd91c0d9e91474ab913" [[package]] name = "constant_time_eq" -version = "0.1.5" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" +checksum = "f3ad85c1f65dc7b37604eb0e89748faf0b9653065f2a8ef69f96a687ec1e9279" [[package]] name = "core-foundation" @@ -986,59 +1216,63 @@ dependencies = [ [[package]] name = "cranelift-bforest" -version = "0.82.3" +version = "0.93.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38faa2a16616c8e78a18d37b4726b98bfd2de192f2fdc8a39ddf568a408a0f75" +checksum = "91b18cf92869a6ae85cde3af4bc4beb6154efa8adef03b18db2ad413d5bce3a2" dependencies = [ "cranelift-entity", ] [[package]] name = "cranelift-codegen" -version = "0.82.3" +version = "0.93.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26f192472a3ba23860afd07d2b0217dc628f21fcc72617aa1336d98e1671f33b" +checksum = "567d9f6e919bac076f39b902a072686eaf9e6d015baa34d10a61b85105b7af59" dependencies = [ + "arrayvec 0.7.2", + "bumpalo", "cranelift-bforest", "cranelift-codegen-meta", "cranelift-codegen-shared", "cranelift-entity", - "gimli", + "cranelift-isle", + "gimli 0.26.2", + "hashbrown 0.12.3", "log", - "regalloc", + "regalloc2", "smallvec", "target-lexicon", ] [[package]] name = "cranelift-codegen-meta" -version = "0.82.3" +version = "0.93.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f32ddb89e9b89d3d9b36a5b7d7ea3261c98235a76ac95ba46826b8ec40b1a24" +checksum = "1e72b2d5ec8917b2971fe83850187373d0a186db4748a7c23a5f48691b8d92bb" dependencies = [ "cranelift-codegen-shared", ] [[package]] name = "cranelift-codegen-shared" -version = "0.82.3" +version = "0.93.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01fd0d9f288cc1b42d9333b7a776b17e278fc888c28e6a0f09b5573d45a150bc" +checksum = "3461c0e0c2ebbeb92533aacb27e219289f60dc84134ef34fbf2d77c9eddf07ef" [[package]] name = "cranelift-entity" -version = "0.82.3" +version = "0.93.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e3bfe172b83167604601faf9dc60453e0d0a93415b57a9c4d1a7ae6849185cf" +checksum = "af684f7f7b01427b1942c7102673322a51b9d6f261e9663dc5e5595786775531" dependencies = [ "serde", ] [[package]] name = "cranelift-frontend" -version = "0.82.3" +version = "0.93.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a006e3e32d80ce0e4ba7f1f9ddf66066d052a8c884a110b91d05404d6ce26dce" +checksum = "7d361ed0373cf5f086b49c499aa72227b646a64f899f32e34312f97c0fadff75" dependencies = [ "cranelift-codegen", "log", @@ -1046,11 +1280,17 @@ dependencies = [ "target-lexicon", ] +[[package]] +name = "cranelift-isle" +version = "0.93.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cef4f8f3984d772c199a48896d2fb766f96301bf71b371e03a2b99f4f3b7b931" + [[package]] name = "cranelift-native" -version = "0.82.3" +version = "0.93.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "501241b0cdf903412ec9075385ac9f2b1eb18a89044d1538e97fab603231f70c" +checksum = "f98e4e99a353703475d5acb402b9c13482d41d8a4008b352559bd560afb90363" dependencies = [ "cranelift-codegen", "libc", @@ -1059,9 +1299,9 @@ dependencies = [ [[package]] name = "cranelift-wasm" -version = "0.82.3" +version = "0.93.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16d9e4211bbc3268042a96dd4de5bd979cda22434991d035f5f8eacba987fad2" +checksum = "a1e3f4f0779a1b0f286a6ef19835d8665f88326e656a6d7d84fa9a39fa38ca32" dependencies = [ "cranelift-codegen", "cranelift-entity", @@ -1073,6 +1313,21 @@ dependencies = [ "wasmtime-types", ] +[[package]] +name = "crc" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86ec7a15cbe22e59248fc7eadb1907dab5ba09372595da4d73dd805ed4417dfe" +dependencies = [ + "crc-catalog", +] + +[[package]] +name = "crc-catalog" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cace84e55f07e7301bae1c519df89cdad8cc3cd868413d3fdbdeca9ff3db484" + [[package]] name = "crc32fast" version = "1.3.2" @@ -1122,9 +1377,9 @@ dependencies = [ [[package]] name = "crossbeam-channel" -version = "0.5.6" +version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2dd04ddaf88237dc3b8d8f9a3c1004b506b54b3313403944054d23c0870c521" +checksum = "cf2b3e8478797446514c91ef04bafcb59faba183e621ad488df88983cc14128c" dependencies = [ "cfg-if", "crossbeam-utils", @@ -1132,9 +1387,9 @@ dependencies = [ [[package]] name = "crossbeam-deque" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "715e8152b692bba2d374b53d4875445368fdf21a94751410af607a5ac677d1fc" +checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef" dependencies = [ "cfg-if", "crossbeam-epoch", @@ -1143,22 +1398,22 @@ dependencies = [ [[package]] name = "crossbeam-epoch" -version = "0.9.11" +version = "0.9.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f916dfc5d356b0ed9dae65f1db9fc9770aa2851d2662b988ccf4fe3516e86348" +checksum = "46bd5f3f85273295a9d14aedfb86f6aadbff6d8f5295c4a9edb08e819dcf5695" dependencies = [ "autocfg", "cfg-if", "crossbeam-utils", - "memoffset", + "memoffset 0.8.0", "scopeguard", ] [[package]] name = "crossbeam-utils" -version = "0.8.12" +version = "0.8.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edbafec5fa1f196ca66527c1b12c2ec4745ca14b50f1ad8f9f6f720b55d11fac" +checksum = "3c063cd8cc95f5c377ed0d4b49a4b21f632396ff690e8470c29b3359b346984b" dependencies = [ "cfg-if", ] @@ -1171,9 +1426,9 @@ checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" [[package]] name = "crypto-bigint" -version = "0.3.2" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03c6a1d5fa1de37e071642dfa44ec552ca5b299adb128fab16138e24b548fd21" +checksum = "ef2b4b23cddf68b89b8f8069890e8c270d54e2d5fe1b143820234805e4cb17ef" dependencies = [ "generic-array 0.14.6", "rand_core 0.6.4", @@ -1188,6 +1443,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" dependencies = [ "generic-array 0.14.6", + "rand_core 0.6.4", "typenum", ] @@ -1213,13 +1469,12 @@ dependencies = [ [[package]] name = "csv" -version = "1.1.6" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22813a6dc45b335f9bade10bf7271dc477e81113e89eb251a0bc2a8a81c536e1" +checksum = "af91f40b7355f82b0a891f50e70399475945bb0b0da4f1700ce60761c9d3e359" dependencies = [ - "bstr", "csv-core", - "itoa 0.4.8", + "itoa", "ryu", "serde", ] @@ -1235,9 +1490,9 @@ dependencies = [ [[package]] name = "ctor" -version = "0.1.23" +version = "0.1.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdffe87e1d521a10f9696f833fe502293ea446d7f256c06128293a4119bdf4cb" +checksum = "6d2301688392eb071b0bf1a37be05c469d3cc4dbbd95df672fe28ab021e6a096" dependencies = [ "quote", "syn", @@ -1249,18 +1504,16 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "049bb91fb4aaf0e3c7efa6cd5ef877dbbbd15b39dad06d9948de4ec8a75761ea" dependencies = [ - "cipher", + "cipher 0.3.0", ] [[package]] -name = "cuckoofilter" -version = "0.5.0" +name = "ctr" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b810a8449931679f64cd7eef1bbd0fa315801b6d5d9cdc1ace2804d6529eee18" +checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" dependencies = [ - "byteorder", - "fnv", - "rand 0.7.3", + "cipher 0.4.3", ] [[package]] @@ -1291,22 +1544,23 @@ dependencies = [ [[package]] name = "curve25519-dalek" -version = "4.0.0-pre.1" +version = "4.0.0-rc.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4033478fbf70d6acf2655ac70da91ee65852d69daf7a67bf7a2f518fb47aafcf" +checksum = "8da00a7a9a4eb92a0a0f8e75660926d48f0d0f3c537e455c457bcdaa1e16b1ac" dependencies = [ - "byteorder", - "digest 0.9.0", - "rand_core 0.6.4", + "cfg-if", + "fiat-crypto", + "packed_simd_2", + "platforms 3.0.2", "subtle", "zeroize", ] [[package]] name = "cxx" -version = "1.0.78" +version = "1.0.91" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19f39818dcfc97d45b03953c1292efc4e80954e1583c4aa770bac1383e2310a4" +checksum = "86d3488e7665a7a483b57e25bdd90d0aeb2bc7608c8d0346acf2ad3f1caf1d62" dependencies = [ "cc", "cxxbridge-flags", @@ -1316,9 +1570,9 @@ dependencies = [ [[package]] name = "cxx-build" -version = "1.0.78" +version = "1.0.91" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e580d70777c116df50c390d1211993f62d40302881e54d4b79727acb83d0199" +checksum = "48fcaf066a053a41a81dfb14d57d99738b767febb8b735c3016e469fac5da690" dependencies = [ "cc", "codespan-reporting", @@ -1331,26 +1585,61 @@ dependencies = [ [[package]] name = "cxxbridge-flags" -version = "1.0.78" +version = "1.0.91" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56a46460b88d1cec95112c8c363f0e2c39afdb237f60583b0b36343bf627ea9c" +checksum = "a2ef98b8b717a829ca5603af80e1f9e2e48013ab227b68ef37872ef84ee479bf" [[package]] name = "cxxbridge-macro" -version = "1.0.78" +version = "1.0.91" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "086c685979a698443656e5cf7856c95c642295a38599f12fb1ff76fb28d19892" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "darling" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0808e1bd8671fb44a113a14e13497557533369847788fa2ae912b6ebfce9fa8" +dependencies = [ + "darling_core", + "darling_macro", +] + +[[package]] +name = "darling_core" +version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "747b608fecf06b0d72d440f27acc99288207324b793be2c17991839f3d4995ea" +checksum = "001d80444f28e193f30c2f293455da62dcf9a6b29918a4253152ae2b1de592cb" dependencies = [ + "fnv", + "ident_case", "proc-macro2", "quote", + "strsim", + "syn", +] + +[[package]] +name = "darling_macro" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b36230598a2d5de7ec1c6f51f72d8a99a9208daff41de2084d06e3fd3ea56685" +dependencies = [ + "darling_core", + "quote", "syn", ] [[package]] name = "data-encoding" -version = "2.3.2" +version = "2.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ee2393c4a91429dffb4bedf19f4d6abf27d8a732c8ce4980305d782e5426d57" +checksum = "23d8666cb01533c39dde32bcbab8e227b4ed6679b2c925eba05feabea39508fb" [[package]] name = "data-encoding-macro" @@ -1374,11 +1663,41 @@ dependencies = [ [[package]] name = "der" -version = "0.5.1" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6919815d73839e7ad218de758883aae3a257ba6759ce7a9992501efbb53d705c" +checksum = "f1a467a65c5e759bce6e65eaf91cc29f466cdc57cb65777bd646872a8a1fd4de" dependencies = [ "const-oid", + "pem-rfc7468", + "zeroize", +] + +[[package]] +name = "der-parser" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe398ac75057914d7d07307bf67dc7f3f574a26783b4fc7805a20ffa9f506e82" +dependencies = [ + "asn1-rs 0.3.1", + "displaydoc", + "nom", + "num-bigint", + "num-traits", + "rusticata-macros", +] + +[[package]] +name = "der-parser" +version = "8.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42d4bc9b0db0a0df9ae64634ac5bdefb7afcb534e182275ca0beadbe486701c1" +dependencies = [ + "asn1-rs 0.5.1", + "displaydoc", + "nom", + "num-bigint", + "num-traits", + "rusticata-macros", ] [[package]] @@ -1401,6 +1720,48 @@ dependencies = [ "syn", ] +[[package]] +name = "derive-syn-parse" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e79116f119dd1dba1abf1f3405f03b9b0e79a27a3883864bfebded8a3dc768cd" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "derive_builder" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d07adf7be193b71cc36b193d0f5fe60b918a3a9db4dad0449f57bcfd519704a3" +dependencies = [ + "derive_builder_macro", +] + +[[package]] +name = "derive_builder_core" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f91d4cfa921f1c05904dc3c57b4a32c38aed3340cce209f3a6fd1478babafc4" +dependencies = [ + "darling", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "derive_builder_macro" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f0314b72bed045f3a68671b3c86328386762c93f82d98c65c3cb5e5f573dd68" +dependencies = [ + "derive_builder_core", + "syn", +] + [[package]] name = "derive_more" version = "0.99.17" @@ -1438,9 +1799,9 @@ dependencies = [ [[package]] name = "digest" -version = "0.10.5" +version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adfbc57365a37acbd2ebf2b64d7e69bb766e2fea813521ed536f5d0520dcf86c" +checksum = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f" dependencies = [ "block-buffer 0.10.3", "crypto-common", @@ -1489,13 +1850,14 @@ dependencies = [ ] [[package]] -name = "dns-parser" -version = "0.8.0" +name = "displaydoc" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4d33be9473d06f75f58220f71f7a9317aca647dc061dbd3c361b0bef505fbea" +checksum = "3bf95dc3f046b9da4f2d51833c0d3547d8564ef6910f5c1ed130306a75b92886" dependencies = [ - "byteorder", - "quick-error", + "proc-macro2", + "quote", + "syn", ] [[package]] @@ -1504,6 +1866,12 @@ version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10" +[[package]] +name = "downcast" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1435fa1053d8b2fbbe9be7e97eca7f33d37b28409959813daefc1446a14247f1" + [[package]] name = "downcast-rs" version = "1.2.0" @@ -1512,9 +1880,9 @@ checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650" [[package]] name = "dtoa" -version = "1.0.4" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8a6eee2d5d0d113f015688310da018bd1d864d86bd567c8fca9c266889e1bfa" +checksum = "c00704156a7de8df8da0911424e30c2049957b0a714542a44e05fe693dd85313" [[package]] name = "dyn-clonable" @@ -1539,15 +1907,15 @@ dependencies = [ [[package]] name = "dyn-clone" -version = "1.0.9" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f94fa09c2aeea5b8839e414b7b841bf429fd25b9c522116ac97ee87856d88b2" +checksum = "68b0cf012f1230e43cd00ebb729c6bb58707ecfa8ad08b52ef3a4ccd2697fc30" [[package]] name = "ecdsa" -version = "0.13.4" +version = "0.14.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0d69ae62e0ce582d56380743515fefaf1a8c70cec685d9677636d7e30ae9dc9" +checksum = "413301934810f597c1d19ca71c8710e99a3f1ba28a0d2ebc01551a2daeea3c5c" dependencies = [ "der", "elliptic-curve", @@ -1557,9 +1925,9 @@ dependencies = [ [[package]] name = "ed25519" -version = "1.5.2" +version = "1.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e9c280362032ea4203659fc489832d0204ef09f247a0506f170dafcac08c369" +checksum = "91cff35c70bba8a626e3185d8cd48cc11b5437e1a5bcd15b9b5fa3c64b6dfee7" dependencies = [ "signature", ] @@ -1578,24 +1946,42 @@ dependencies = [ "zeroize", ] +[[package]] +name = "ed25519-zebra" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c24f403d068ad0b359e577a77f92392118be3f3c927538f2bb544a5ecd828c6" +dependencies = [ + "curve25519-dalek 3.2.0", + "hashbrown 0.12.3", + "hex", + "rand_core 0.6.4", + "sha2 0.9.9", + "zeroize", +] + [[package]] name = "either" -version = "1.8.0" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90e5c1c8368803113bf0c9584fc495a58b86dc8a29edbf8fe877d21d9507e797" +checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91" [[package]] name = "elliptic-curve" -version = "0.11.12" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25b477563c2bfed38a3b7a60964c49e058b2510ad3f12ba3483fd8f62c2306d6" +checksum = "e7bb888ab5300a19b8e5bceef25ac745ad065f3c9f7efc6de1b91958110891d3" dependencies = [ "base16ct", "crypto-bigint", "der", + "digest 0.10.6", "ff", "generic-array 0.14.6", "group", + "hkdf", + "pem-rfc7468", + "pkcs8", "rand_core 0.6.4", "sec1", "subtle", @@ -1604,11 +1990,11 @@ dependencies = [ [[package]] name = "enum-as-inner" -version = "0.4.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21cdad81446a7f7dc43f6a77409efeb9733d2fa65553efef6018ef257c959b73" +checksum = "c9720bba047d567ffc8a3cba48bf19126600e249ab7f128e9233e6376976a116" dependencies = [ - "heck 0.4.0", + "heck 0.4.1", "proc-macro2", "quote", "syn", @@ -1640,12 +2026,12 @@ dependencies = [ [[package]] name = "env_logger" -version = "0.9.1" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c90bf5f19754d10198ccb95b70664fc925bd1fc090a0fd9a6ebc54acc8cd6272" +checksum = "85cdab6a89accf66733ad5a1693a4dcced6aeff64602b634530dd73c1f3ee9f0" dependencies = [ - "atty", "humantime", + "is-terminal", "log", "regex", "termcolor", @@ -1653,9 +2039,9 @@ dependencies = [ [[package]] name = "environmental" -version = "1.1.3" +version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68b91989ae21441195d7d9b9993a2f9295c7e1a8c96255d8b729accddc124797" +checksum = "e48c92028aaa870e83d51c64e5d4e0b6981b360c522198c23959f219a4e1b15b" [[package]] name = "errno" @@ -1716,9 +2102,9 @@ checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" [[package]] name = "fastrand" -version = "1.8.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499" +checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" dependencies = [ "instant", ] @@ -1734,29 +2120,47 @@ dependencies = [ [[package]] name = "ff" -version = "0.11.1" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "131655483be284720a17d74ff97592b8e76576dc25563148601df2d7c9080924" +checksum = "d013fc25338cc558c5c2cfbad646908fb23591e2404481826742b651c9af7160" dependencies = [ "rand_core 0.6.4", "subtle", ] +[[package]] +name = "fiat-crypto" +version = "0.1.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a214f5bb88731d436478f3ae1f8a277b62124089ba9fb67f4f93fb100ef73c90" + [[package]] name = "file-per-thread-logger" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21e16290574b39ee41c71aeb90ae960c504ebaf1e2a1c87bd52aa56ed6e1a02f" +checksum = "84f2e425d9790201ba4af4630191feac6dcc98765b118d4d18e91d23c2353866" dependencies = [ "env_logger", "log", ] +[[package]] +name = "filetime" +version = "0.2.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a3de6e8d11b22ff9edc6d916f890800597d60f8b2da1caf2955c274638d6412" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall", + "windows-sys 0.45.0", +] + [[package]] name = "finality-grandpa" -version = "0.15.0" +version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9def033d8505edf199f6a5d07aa7e6d2d6185b164293b77f0efd108f4f3e11d" +checksum = "e24e6c429951433ccb7c87fd528c60084834dcd14763182c1f83291bcde24c34" dependencies = [ "either", "futures", @@ -1764,15 +2168,15 @@ dependencies = [ "log", "num-traits", "parity-scale-codec", - "parking_lot 0.11.2", + "parking_lot 0.12.1", "scale-info", ] [[package]] name = "fixed-hash" -version = "0.7.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfcf0ed7fe52a17a03854ec54a9f76d6d84508d1c0e66bc1793301c73fc8493c" +checksum = "835c052cb0c08c1acf6ffd71c022172e18723949c8282f2b9f27efbc51e64534" dependencies = [ "byteorder", "rand 0.8.5", @@ -1788,15 +2192,24 @@ checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" [[package]] name = "flate2" -version = "1.0.24" +version = "1.0.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f82b0f4c27ad9f8bfd1f3208d882da2b09c301bc1c828fd3a00d0216d2fbbff6" +checksum = "a8a2db397cb1c8772f31494cb8917e48cd1e64f0fa7efac59fbd741a0a8ce841" dependencies = [ "crc32fast", "libz-sys", "miniz_oxide", ] +[[package]] +name = "float-cmp" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "98de4bbd547a563b716d8dfa9aad1cb19bfab00f4fa09a6a4ed21dbcf44ce9c4" +dependencies = [ + "num-traits", +] + [[package]] name = "fnv" version = "1.0.7" @@ -1806,7 +2219,7 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "fork-tree" version = "3.0.0" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "parity-scale-codec", ] @@ -1820,52 +2233,59 @@ dependencies = [ "percent-encoding", ] +[[package]] +name = "fragile" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa" + [[package]] name = "frame-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "frame-support", + "frame-support-procedural", "frame-system", "linregress", "log", "parity-scale-codec", - "paste 1.0.9", + "paste 1.0.11", "scale-info", "serde", "sp-api", "sp-application-crypto", + "sp-core", "sp-io", "sp-runtime", "sp-runtime-interface", "sp-std", "sp-storage", + "static_assertions", ] [[package]] name = "frame-benchmarking-cli" version = "4.0.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "Inflector", + "array-bytes", "chrono", - "clap 3.2.22", + "clap 4.1.8", "comfy-table", "frame-benchmarking", "frame-support", "frame-system", + "gethostname", "handlebars", - "hash-db", - "hex", "itertools", - "kvdb", "lazy_static", "linked-hash-map", "log", - "memory-db", "parity-scale-codec", "rand 0.8.5", - "rand_pcg 0.3.1", + "rand_pcg", "sc-block-builder", "sc-cli", "sc-client-api", @@ -1875,7 +2295,6 @@ dependencies = [ "sc-sysinfo", "serde", "serde_json", - "serde_nanos", "sp-api", "sp-blockchain", "sp-core", @@ -1885,9 +2304,9 @@ dependencies = [ "sp-keystore", "sp-runtime", "sp-state-machine", + "sp-std", "sp-storage", "sp-trie", - "tempfile", "thiserror", "thousands", ] @@ -1895,7 +2314,7 @@ dependencies = [ [[package]] name = "frame-election-provider-solution-type" version = "4.0.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -1906,7 +2325,7 @@ dependencies = [ [[package]] name = "frame-election-provider-support" version = "4.0.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "frame-election-provider-solution-type", "frame-support", @@ -1914,6 +2333,7 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-arithmetic", + "sp-core", "sp-npos-elections", "sp-runtime", "sp-std", @@ -1922,7 +2342,7 @@ dependencies = [ [[package]] name = "frame-executive" version = "4.0.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "frame-support", "frame-system", @@ -1947,10 +2367,26 @@ dependencies = [ "serde", ] +[[package]] +name = "frame-remote-externalities" +version = "0.10.0-dev" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" +dependencies = [ + "futures", + "log", + "parity-scale-codec", + "serde", + "sp-core", + "sp-io", + "sp-runtime", + "substrate-rpc-client", + "tokio", +] + [[package]] name = "frame-support" version = "4.0.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "bitflags", "frame-metadata", @@ -1960,10 +2396,11 @@ dependencies = [ "log", "once_cell", "parity-scale-codec", - "paste 1.0.9", + "paste 1.0.11", "scale-info", "serde", "smallvec", + "sp-api", "sp-arithmetic", "sp-core", "sp-core-hashing-proc-macro", @@ -1974,16 +2411,20 @@ dependencies = [ "sp-state-machine", "sp-std", "sp-tracing", + "sp-weights", "tt-call", ] [[package]] name = "frame-support-procedural" version = "4.0.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "Inflector", + "cfg-expr", + "derive-syn-parse", "frame-support-procedural-tools", + "itertools", "proc-macro2", "quote", "syn", @@ -1992,7 +2433,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools" version = "4.0.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "frame-support-procedural-tools-derive", "proc-macro-crate", @@ -2004,7 +2445,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools-derive" version = "3.0.0" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "proc-macro2", "quote", @@ -2014,7 +2455,7 @@ dependencies = [ [[package]] name = "frame-system" version = "4.0.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "frame-support", "log", @@ -2026,12 +2467,13 @@ dependencies = [ "sp-runtime", "sp-std", "sp-version", + "sp-weights", ] [[package]] name = "frame-system-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "frame-benchmarking", "frame-support", @@ -2046,24 +2488,12 @@ dependencies = [ [[package]] name = "frame-system-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "parity-scale-codec", "sp-api", ] -[[package]] -name = "fs-swap" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03d47dad3685eceed8488986cad3d5027165ea5edb164331770e2059555f10a5" -dependencies = [ - "lazy_static", - "libc", - "libloading 0.5.2", - "winapi", -] - [[package]] name = "fs2" version = "0.4.3" @@ -2074,12 +2504,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "fs_extra" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2022715d62ab30faffd124d40b76f4134a550a87792276512b18d63272333394" - [[package]] name = "funty" version = "2.0.0" @@ -2088,9 +2512,9 @@ checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" [[package]] name = "futures" -version = "0.3.24" +version = "0.3.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f21eda599937fba36daeb58a22e8f5cee2d14c4a17b5b7739c7c8e5e3b8230c" +checksum = "13e2792b0ff0340399d58445b88fd9770e3489eff258a4cbc1523418f12abf84" dependencies = [ "futures-channel", "futures-core", @@ -2103,9 +2527,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.24" +version = "0.3.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30bdd20c28fadd505d0fd6712cdfcb0d4b5648baf45faef7f852afb2399bb050" +checksum = "2e5317663a9089767a1ec00a487df42e0ca174b61b4483213ac24448e4664df5" dependencies = [ "futures-core", "futures-sink", @@ -2113,15 +2537,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.24" +version = "0.3.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e5aa3de05362c3fb88de6531e6296e85cde7739cccad4b9dfeeb7f6ebce56bf" +checksum = "ec90ff4d0fe1f57d600049061dc6bb68ed03c7d2fbd697274c41805dcb3f8608" [[package]] name = "futures-executor" -version = "0.3.24" +version = "0.3.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ff63c23854bee61b6e9cd331d523909f238fc7636290b96826e9cfa5faa00ab" +checksum = "e8de0a35a6ab97ec8869e32a2473f4b1324459e14c29275d14b10cb1fd19b50e" dependencies = [ "futures-core", "futures-task", @@ -2131,9 +2555,9 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.24" +version = "0.3.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbf4d2a7a308fd4578637c0b17c7e1c7ba127b8f6ba00b29f717e9655d85eb68" +checksum = "bfb8371b6fb2aeb2d280374607aeabfc99d95c72edfe51692e42d3d7f0d08531" [[package]] name = "futures-lite" @@ -2152,9 +2576,9 @@ dependencies = [ [[package]] name = "futures-macro" -version = "0.3.24" +version = "0.3.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42cd15d1c7456c04dbdf7e88bcd69760d74f3a798d6444e16974b505b0e62f17" +checksum = "95a73af87da33b5acf53acfebdc339fe592ecf5357ac7c0a7734ab9d8c876a70" dependencies = [ "proc-macro2", "quote", @@ -2168,21 +2592,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d2411eed028cdf8c8034eaf21f9915f956b6c3abec4d4c7949ee67f0721127bd" dependencies = [ "futures-io", - "rustls", - "webpki", + "rustls 0.20.8", + "webpki 0.22.0", ] [[package]] name = "futures-sink" -version = "0.3.24" +version = "0.3.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21b20ba5a92e727ba30e72834706623d94ac93a725410b6a6b6fbc1b07f7ba56" +checksum = "f310820bb3e8cfd46c80db4d7fb8353e15dfff853a127158425f31e0be6c8364" [[package]] name = "futures-task" -version = "0.3.24" +version = "0.3.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6508c467c73851293f390476d4491cf4d227dbabcd4170f3bb6044959b294f1" +checksum = "dcf79a1bf610b10f42aea489289c5a2c478a786509693b80cd39c44ccd936366" [[package]] name = "futures-timer" @@ -2192,9 +2616,9 @@ checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c" [[package]] name = "futures-util" -version = "0.3.24" +version = "0.3.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44fb6cb1be61cc1d2e43b262516aafcf63b241cffdb1d3fa115f91d9c7b09c90" +checksum = "9c1d6de3acfef38d2be4b1f543f553131788603495be83da675e180c8d6b7bd1" dependencies = [ "futures-channel", "futures-core", @@ -2208,6 +2632,15 @@ dependencies = [ "slab", ] +[[package]] +name = "fxhash" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" +dependencies = [ + "byteorder", +] + [[package]] name = "generic-array" version = "0.12.4" @@ -2227,6 +2660,16 @@ dependencies = [ "version_check", ] +[[package]] +name = "gethostname" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1ebd34e35c46e00bb73e81363248d627782724609fe1b6396f553f68fe3862e" +dependencies = [ + "libc", + "winapi", +] + [[package]] name = "getrandom" version = "0.1.16" @@ -2234,17 +2677,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" dependencies = [ "cfg-if", - "js-sys", "libc", "wasi 0.9.0+wasi-snapshot-preview1", - "wasm-bindgen", ] [[package]] name = "getrandom" -version = "0.2.7" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4eb1a864a501629691edf6c15a593b7a51eebaa1e8468e9ddc623de7c9b58ec6" +checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31" dependencies = [ "cfg-if", "js-sys", @@ -2260,7 +2701,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1583cc1656d7839fd3732b80cf4f38850336cdb9b8ded1cd399ca62958de3c99" dependencies = [ "opaque-debug 0.3.0", - "polyval", + "polyval 0.5.3", +] + +[[package]] +name = "ghash" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d930750de5717d2dd0b8c0d42c076c0e884c81a73e6cab859bbd2339c71e3e40" +dependencies = [ + "opaque-debug 0.3.0", + "polyval 0.6.0", ] [[package]] @@ -2274,17 +2725,23 @@ dependencies = [ "stable_deref_trait", ] +[[package]] +name = "gimli" +version = "0.27.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad0a93d233ebf96623465aad4046a8d3aa4da22d4f4beba5388838c8a434bbb4" + [[package]] name = "glob" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574" +checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" [[package]] name = "globset" -version = "0.4.9" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a1e17342619edbc21a964c2afbeb6c820c6a2560032872f397bb97ea127bd0a" +checksum = "029d74589adefde59de1a0c4f4732695c32805624aec7b68d91503d4dba79afc" dependencies = [ "aho-corasick", "bstr", @@ -2295,9 +2752,9 @@ dependencies = [ [[package]] name = "gloo-timers" -version = "0.2.4" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fb7d06c1c8cc2a29bee7ec961009a0b2caa0793ee4900c2ffb348734ba1c8f9" +checksum = "9b995a66bb87bebce9a0f4a95aed01daca4872c050bfcb21653361c03bc35e5c" dependencies = [ "futures-channel", "futures-core", @@ -2307,9 +2764,9 @@ dependencies = [ [[package]] name = "group" -version = "0.11.0" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc5ac374b108929de78460075f3dc439fa66df9d8fc77e8f12caa5165fcf0c89" +checksum = "5dfbfb3a6cfbd390d5c9564ab283a0349b9b9fcd46a706c1eb10e0db70bfbac7" dependencies = [ "ff", "rand_core 0.6.4", @@ -2318,9 +2775,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.3.14" +version = "0.3.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ca32592cf21ac7ccab1825cd87f6c9b3d9022c44d086172ed0966bec8af30be" +checksum = "5be7b54589b581f624f566bf5d8eb2bab1db736c51528720b6bd36b96b55924d" dependencies = [ "bytes", "fnv", @@ -2343,9 +2800,9 @@ checksum = "eabb4a44450da02c90444cf74558da904edde8fb4e9035a9a6a4e15445af0bd7" [[package]] name = "handlebars" -version = "4.3.5" +version = "4.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "433e4ab33f1213cdc25b5fa45c76881240cfe79284cf2b395e8b9e312a30a2fd" +checksum = "035ef95d03713f2c347a72547b7cd38cbc9af7cd51e6099fb62d586d4a6dee3a" dependencies = [ "log", "pest", @@ -2376,7 +2833,16 @@ version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" dependencies = [ - "ahash", + "ahash 0.7.6", +] + +[[package]] +name = "hashbrown" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" +dependencies = [ + "ahash 0.8.3", ] [[package]] @@ -2390,9 +2856,9 @@ dependencies = [ [[package]] name = "heck" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" [[package]] name = "hermit-abi" @@ -2403,6 +2869,21 @@ dependencies = [ "libc", ] +[[package]] +name = "hermit-abi" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7" +dependencies = [ + "libc", +] + +[[package]] +name = "hermit-abi" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286" + [[package]] name = "hex" version = "0.4.3" @@ -2416,10 +2897,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ebdb29d2ea9ed0083cd8cece49bbd968021bd99b0849edb4a9a7ee0fdf6a4e0" [[package]] -name = "hex_fmt" -version = "0.3.0" +name = "hkdf" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b07f60793ff0a4d9cef0f18e63b5357e06209987153a64648c972c1e5aff336f" +checksum = "791a029f6b9fc27657f6f188ec6e5e43f6911f6f878e0dc5501396e09809d437" +dependencies = [ + "hmac 0.12.1", +] [[package]] name = "hmac" @@ -2441,6 +2925,15 @@ dependencies = [ "digest 0.9.0", ] +[[package]] +name = "hmac" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" +dependencies = [ + "digest 0.10.6", +] + [[package]] name = "hmac-drbg" version = "0.3.0" @@ -2465,13 +2958,13 @@ dependencies = [ [[package]] name = "http" -version = "0.2.8" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75f43d41e26995c17e71ee126451dd3941010b0514a81a9d11f3b341debc2399" +checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482" dependencies = [ "bytes", "fnv", - "itoa 1.0.4", + "itoa", ] [[package]] @@ -2485,6 +2978,12 @@ dependencies = [ "pin-project-lite 0.2.9", ] +[[package]] +name = "http-range-header" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bfe8eed0a9285ef776bb792479ea3834e8b94e13d615c2f66d03dd50a435a29" + [[package]] name = "httparse" version = "1.8.0" @@ -2505,9 +3004,9 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "hyper" -version = "0.14.20" +version = "0.14.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02c929dc5c39e335a03c405292728118860721b10190d98c2a0f0efd5baafbac" +checksum = "5e011372fa0b68db8350aa7a248930ecc7839bf46d8485577d69f117a75f164c" dependencies = [ "bytes", "futures-channel", @@ -2518,7 +3017,7 @@ dependencies = [ "http-body", "httparse", "httpdate", - "itoa 1.0.4", + "itoa", "pin-project-lite 0.2.9", "socket2", "tokio", @@ -2529,14 +3028,14 @@ dependencies = [ [[package]] name = "hyper-rustls" -version = "0.23.0" +version = "0.23.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d87c48c02e0dc5e3b849a2041db3029fd066650f8f717c07bf8ed78ccb895cac" +checksum = "1788965e61b367cd03a62950836d5cd41560c3577d90e40e0819373194d1661c" dependencies = [ "http", "hyper", "log", - "rustls", + "rustls 0.20.8", "rustls-native-certs", "tokio", "tokio-rustls", @@ -2544,9 +3043,9 @@ dependencies = [ [[package]] name = "iana-time-zone" -version = "0.1.51" +version = "0.1.53" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5a6ef98976b22b3b7f2f3a806f858cb862044cfa66805aa3ad84cb3d3b785ed" +checksum = "64c122667b287044802d6ce17ee2ddf13207ed924c712de9a66a5814d5b64765" dependencies = [ "android_system_properties", "core-foundation-sys", @@ -2558,14 +3057,20 @@ dependencies = [ [[package]] name = "iana-time-zone-haiku" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fde6edd6cef363e9359ed3c98ba64590ba9eecba2293eb5a723ab32aee8926aa" +checksum = "0703ae284fc167426161c2e3f1da3ea71d94b21bedbcc9494e92b28e334e3dca" dependencies = [ "cxx", "cxx-build", ] +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + [[package]] name = "idna" version = "0.2.3" @@ -2599,9 +3104,9 @@ dependencies = [ [[package]] name = "if-watch" -version = "1.1.1" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "015a7df1eb6dda30df37f34b63ada9b7b352984b0e84de2a20ed526345000791" +checksum = "ba7abdbb86e485125dad06c2691e1e393bf3b08c7b743b43aa162a00fd39062e" dependencies = [ "async-io", "core-foundation", @@ -2612,6 +3117,7 @@ dependencies = [ "log", "rtnetlink", "system-configuration", + "tokio", "windows", ] @@ -2633,6 +3139,15 @@ dependencies = [ "serde", ] +[[package]] +name = "impl-serde" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc88fc67028ae3db0c853baa36269d398d5f45b6982f95549ff5def78c935cd" +dependencies = [ + "serde", +] + [[package]] name = "impl-trait-for-tuples" version = "0.2.2" @@ -2646,15 +3161,24 @@ dependencies = [ [[package]] name = "indexmap" -version = "1.9.1" +version = "1.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10a35a97730320ffe8e2d410b5d3b69279b98d2c14bdb8b70ea89ecf7888d41e" +checksum = "1885e79c1fc4b10f0e172c475f458b7f7b93061064d98c3293e98c5ba0c8b399" dependencies = [ "autocfg", - "hashbrown", + "hashbrown 0.12.3", "serde", ] +[[package]] +name = "inout" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" +dependencies = [ + "generic-array 0.14.6", +] + [[package]] name = "instant" version = "0.1.12" @@ -2673,11 +3197,34 @@ dependencies = [ "num-traits", ] +[[package]] +name = "interceptor" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e8a11ae2da61704edada656798b61c94b35ecac2c58eb955156987d5e6be90b" +dependencies = [ + "async-trait", + "bytes", + "log", + "rand 0.8.5", + "rtcp", + "rtp", + "thiserror", + "tokio", + "waitgroup", + "webrtc-srtp", + "webrtc-util", +] + [[package]] name = "io-lifetimes" -version = "0.5.3" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec58677acfea8a15352d42fc87d11d63596ade9239e0a7c9352914417515dbe6" +checksum = "1abeb7a0dd0f8181267ff8adc397075586500b81b28a73e8a0208b00fc170fb3" +dependencies = [ + "libc", + "windows-sys 0.45.0", +] [[package]] name = "ip_network" @@ -2687,9 +3234,9 @@ checksum = "aa2f047c0a98b2f299aa5d6d7088443570faae494e9ae1305e48be000c9e0eb1" [[package]] name = "ipconfig" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "723519edce41262b05d4143ceb95050e4c614f483e78e9fd9e39a8275a84ad98" +checksum = "bd302af1b90f2463a98fa5ad469fc212c8e3175a41c3068601bfa2727591c5be" dependencies = [ "socket2", "widestring", @@ -2699,9 +3246,21 @@ dependencies = [ [[package]] name = "ipnet" -version = "2.5.0" +version = "2.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30e22bd8629359895450b59ea7a776c850561b96a3b1d31321c1949d9e6c9146" + +[[package]] +name = "is-terminal" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "879d54834c8c76457ef4293a689b2a8c59b076067ad77b15efafbb05f92a592b" +checksum = "21b6b32576413a8e69b90e952e4a026476040d81017b80445deda5f2d3921857" +dependencies = [ + "hermit-abi 0.3.1", + "io-lifetimes", + "rustix", + "windows-sys 0.45.0", +] [[package]] name = "itertools" @@ -2714,21 +3273,15 @@ dependencies = [ [[package]] name = "itoa" -version = "0.4.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4" - -[[package]] -name = "itoa" -version = "1.0.4" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4217ad341ebadf8d8e724e264f13e593e0648f5b3e94b3896a5df283be015ecc" +checksum = "fad582f4b9e86b6caa621cabeb0963332d92eea04729ab12892c2533951e6440" [[package]] name = "jobserver" -version = "0.1.25" +version = "0.1.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "068b1ee6743e4d11fb9c6a1e6064b3693a1b600e7f5f5988047d98b3dc9fb90b" +checksum = "936cfd212a0155903bcbc060e316fb6cc7cbf2e1907329391ebadc1fe0ce77c2" dependencies = [ "libc", ] @@ -2739,20 +3292,21 @@ version = "8.3.0" dependencies = [ "assert_cmd", "async-std", - "clap 3.2.22", + "clap 3.2.23", "clap_complete", "criterion", "frame-benchmarking", "frame-benchmarking-cli", + "frame-remote-externalities", "frame-system", "frame-system-rpc-runtime-api", "futures", "hex", "hex-literal", "joystream-node-runtime", - "jsonrpsee", + "jsonrpsee 0.13.1", "log", - "nix 0.23.1", + "nix 0.23.2", "node-inspect", "overrides", "pallet-balances", @@ -2763,10 +3317,9 @@ dependencies = [ "pallet-transaction-payment-rpc", "pallet-transaction-storage", "parity-scale-codec", - "platforms", + "platforms 2.0.0", "rand 0.8.5", "regex", - "remote-externalities", "sc-authority-discovery", "sc-basic-authorship", "sc-block-builder", @@ -2779,7 +3332,6 @@ dependencies = [ "sc-consensus-babe-rpc", "sc-consensus-epochs", "sc-consensus-slots", - "sc-consensus-uncles", "sc-executor", "sc-finality-grandpa", "sc-finality-grandpa-rpc", @@ -2799,7 +3351,6 @@ dependencies = [ "soketto", "sp-api", "sp-authority-discovery", - "sp-authorship", "sp-block-builder", "sp-blockchain", "sp-consensus", @@ -2835,9 +3386,9 @@ dependencies = [ "frame-system", "frame-system-benchmarking", "frame-system-rpc-runtime-api", - "getrandom 0.2.7", + "getrandom 0.2.8", "hex-literal", - "impl-serde", + "impl-serde 0.3.1", "lazy_static", "lite-json", "log", @@ -2856,6 +3407,7 @@ dependencies = [ "pallet-forum", "pallet-grandpa", "pallet-im-online", + "pallet-insecure-randomness-collective-flip", "pallet-membership", "pallet-multisig", "pallet-offences", @@ -2864,7 +3416,6 @@ dependencies = [ "pallet-proposals-codex", "pallet-proposals-discussion", "pallet-proposals-engine", - "pallet-insecure-randomness-collective-flip", "pallet-referendum", "pallet-session", "pallet-session-benchmarking", @@ -2905,9 +3456,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.60" +version = "0.3.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49409df3e3bf0856b916e2ceaca09ee28e6871cf7d9ce97a692cacfdb2a25a47" +checksum = "445dde2150c55e483f3d8416706b97ec8e8237c307e5b7b4b8dd15e6af2a0730" dependencies = [ "wasm-bindgen", ] @@ -2918,26 +3469,37 @@ version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1f2ab5a60e558e74ea93bcf5164ebc47939a7fff8938fa9b5233bbc63e16061" dependencies = [ - "jsonrpsee-core", + "jsonrpsee-core 0.13.1", "jsonrpsee-http-server", + "jsonrpsee-types 0.13.1", + "jsonrpsee-ws-server", +] + +[[package]] +name = "jsonrpsee" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d291e3a5818a2384645fd9756362e6d89cf0541b0b916fa7702ea4a9833608e" +dependencies = [ + "jsonrpsee-core 0.16.2", "jsonrpsee-proc-macros", - "jsonrpsee-types", + "jsonrpsee-server", + "jsonrpsee-types 0.16.2", "jsonrpsee-ws-client", - "jsonrpsee-ws-server", "tracing", ] [[package]] name = "jsonrpsee-client-transport" -version = "0.13.1" +version = "0.16.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26d682f4a55081a2be3e639280c640523070e4aeb8ee2fd8dd9168fdae57a9db" +checksum = "965de52763f2004bc91ac5bcec504192440f0b568a5d621c59d9dbd6f886c3fb" dependencies = [ "futures-util", "http", - "jsonrpsee-core", - "jsonrpsee-types", - "pin-project 1.0.12", + "jsonrpsee-core 0.16.2", + "jsonrpsee-types 0.16.2", + "pin-project", "rustls-native-certs", "soketto", "thiserror", @@ -2953,6 +3515,31 @@ name = "jsonrpsee-core" version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6e27462b21279edf9a6a91f46ffbe125e9cdc58b901d2e08bf59b31a47d7d0ab" +dependencies = [ + "anyhow", + "arrayvec 0.7.2", + "async-trait", + "beef", + "futures-channel", + "futures-util", + "hyper", + "jsonrpsee-types 0.13.1", + "parking_lot 0.12.1", + "rand 0.8.5", + "rustc-hash", + "serde", + "serde_json", + "soketto", + "thiserror", + "tokio", + "tracing", +] + +[[package]] +name = "jsonrpsee-core" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4e70b4439a751a5de7dd5ed55eacff78ebf4ffe0fc009cb1ebb11417f5b536b" dependencies = [ "anyhow", "arrayvec 0.7.2", @@ -2962,8 +3549,9 @@ dependencies = [ "futures-channel", "futures-timer", "futures-util", + "globset", "hyper", - "jsonrpsee-types", + "jsonrpsee-types 0.16.2", "parking_lot 0.12.1", "rand 0.8.5", "rustc-hash", @@ -2985,8 +3573,8 @@ dependencies = [ "futures-util", "globset", "hyper", - "jsonrpsee-core", - "jsonrpsee-types", + "jsonrpsee-core 0.13.1", + "jsonrpsee-types 0.13.1", "lazy_static", "serde_json", "tokio", @@ -2996,16 +3584,39 @@ dependencies = [ [[package]] name = "jsonrpsee-proc-macros" -version = "0.13.1" +version = "0.16.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b8d7f449cab3b747f12c3efc27f5cad537f3b597c6a3838b0fac628f4bf730a" +checksum = "baa6da1e4199c10d7b1d0a6e5e8bd8e55f351163b6f4b3cbb044672a69bd4c1c" dependencies = [ + "heck 0.4.1", "proc-macro-crate", "proc-macro2", "quote", "syn", ] +[[package]] +name = "jsonrpsee-server" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fb69dad85df79527c019659a992498d03f8495390496da2f07e6c24c2b356fc" +dependencies = [ + "futures-channel", + "futures-util", + "http", + "hyper", + "jsonrpsee-core 0.16.2", + "jsonrpsee-types 0.16.2", + "serde", + "serde_json", + "soketto", + "tokio", + "tokio-stream", + "tokio-util", + "tower", + "tracing", +] + [[package]] name = "jsonrpsee-types" version = "0.13.1" @@ -3020,15 +3631,30 @@ dependencies = [ "tracing", ] +[[package]] +name = "jsonrpsee-types" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5bd522fe1ce3702fd94812965d7bb7a3364b1c9aba743944c5a00529aae80f8c" +dependencies = [ + "anyhow", + "beef", + "serde", + "serde_json", + "thiserror", + "tracing", +] + [[package]] name = "jsonrpsee-ws-client" -version = "0.13.1" +version = "0.16.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76f15180afb3761c7a3a32c0a8b680788176dcfdfe725b24c1758c90b1d1595b" +checksum = "0b83daeecfc6517cfe210df24e570fb06213533dfb990318fae781f4c7119dd9" dependencies = [ + "http", "jsonrpsee-client-transport", - "jsonrpsee-core", - "jsonrpsee-types", + "jsonrpsee-core 0.16.2", + "jsonrpsee-types 0.16.2", ] [[package]] @@ -3039,8 +3665,8 @@ checksum = "dfb6c21556c551582b56e4e8e6e6249b0bbdb69bb7fa39efe9b9a6b54af9f206" dependencies = [ "futures-channel", "futures-util", - "jsonrpsee-core", - "jsonrpsee-types", + "jsonrpsee-core 0.13.1", + "jsonrpsee-types 0.13.1", "serde_json", "soketto", "tokio", @@ -3050,21 +3676,24 @@ dependencies = [ [[package]] name = "k256" -version = "0.10.4" +version = "0.11.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19c3a5e0a0b8450278feda242592512e09f61c72e018b8cd5c859482802daf2d" +checksum = "72c1e0b51e7ec0a97369623508396067a486bd0cbed95a2659a4b863d28cfc8b" dependencies = [ "cfg-if", "ecdsa", "elliptic-curve", - "sec1", + "sha2 0.10.6", ] [[package]] name = "keccak" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9b7d56ba4a8344d6be9729995e6b06f928af29998cdf79fe390cbf6b1fee838" +checksum = "3afef3b6eff9ce9d8ff9b3601125eec7f0c8cbac7abd14f355d053fa56c98768" +dependencies = [ + "cpufeatures", +] [[package]] name = "kv-log-macro" @@ -3077,37 +3706,31 @@ dependencies = [ [[package]] name = "kvdb" -version = "0.11.0" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a301d8ecb7989d4a6e2c57a49baca77d353bdbf879909debe3f375fe25d61f86" +checksum = "e7d770dcb02bf6835887c3a979b5107a04ff4bbde97a5f0928d27404a155add9" dependencies = [ - "parity-util-mem", "smallvec", ] [[package]] name = "kvdb-memorydb" -version = "0.11.0" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ece7e668abd21387aeb6628130a6f4c802787f014fa46bc83221448322250357" +checksum = "bf7a85fe66f9ff9cd74e169fdd2c94c6e1e74c412c99a73b4df3200b5d3760b2" dependencies = [ "kvdb", - "parity-util-mem", "parking_lot 0.12.1", ] [[package]] name = "kvdb-rocksdb" -version = "0.15.2" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca7fbdfd71cd663dceb0faf3367a99f8cf724514933e9867cec4995b6027cbc1" +checksum = "2182b8219fee6bd83aacaab7344e840179ae079d5216aa4e249b4d704646a844" dependencies = [ - "fs-swap", "kvdb", - "log", "num_cpus", - "owning_ref", - "parity-util-mem", "parking_lot 0.12.1", "regex", "rocksdb", @@ -3131,104 +3754,71 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.135" +version = "0.2.139" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68783febc7782c6c5cb401fbda4de5a9898be1762314da0bb2c10ced61f18b0c" +checksum = "201de327520df007757c1f0adce6e827fe8562fbc28bfd9c15571c66ca1f5f79" [[package]] name = "libloading" -version = "0.5.2" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2b111a074963af1d37a139918ac6d49ad1d0d5e47f72fd55388619691a7d753" +checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f" dependencies = [ - "cc", + "cfg-if", "winapi", ] [[package]] -name = "libloading" -version = "0.7.3" +name = "libm" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efbc0f03f9a775e9f6aed295c6a1ba2253c5757a9e03d55c6caa46a681abcddd" -dependencies = [ - "cfg-if", - "winapi", -] +checksum = "7fc7aa29613bd6a620df431842069224d8bc9011086b1db4c0e0cd47fa03ec9a" [[package]] name = "libm" -version = "0.2.5" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "292a948cd991e376cf75541fe5b97a1081d713c618b4f1b9500f8844e49eb565" +checksum = "348108ab3fba42ec82ff6e9564fc4ca0247bdccdc68dd8af9764bbc79c3c8ffb" [[package]] name = "libp2p" -version = "0.45.1" +version = "0.50.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41726ee8f662563fafba2d2d484b14037cc8ecb8c953fbfc8439d4ce3a0a9029" +checksum = "2e0a0d2f693675f49ded13c5d510c48b78069e23cbd9108d7ccd59f6dc568819" dependencies = [ "bytes", "futures", "futures-timer", - "getrandom 0.2.7", + "getrandom 0.2.8", "instant", - "lazy_static", - "libp2p-autonat", - "libp2p-core 0.33.0", - "libp2p-deflate", + "libp2p-core 0.38.0", "libp2p-dns", - "libp2p-floodsub", - "libp2p-gossipsub", "libp2p-identify", "libp2p-kad", "libp2p-mdns", "libp2p-metrics", "libp2p-mplex", - "libp2p-noise", + "libp2p-noise 0.41.0", "libp2p-ping", - "libp2p-plaintext", - "libp2p-pnet", - "libp2p-relay", - "libp2p-rendezvous", + "libp2p-quic", "libp2p-request-response", "libp2p-swarm", - "libp2p-swarm-derive", "libp2p-tcp", - "libp2p-uds", "libp2p-wasm-ext", + "libp2p-webrtc", "libp2p-websocket", "libp2p-yamux", - "multiaddr", + "multiaddr 0.16.0", "parking_lot 0.12.1", - "pin-project 1.0.12", - "rand 0.7.3", + "pin-project", "smallvec", ] -[[package]] -name = "libp2p-autonat" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d45945fd2f96c4b133c23d5c28a8b7fc8d7138e6dd8d5a8cd492dd384f888e3" -dependencies = [ - "async-trait", - "futures", - "futures-timer", - "instant", - "libp2p-core 0.33.0", - "libp2p-request-response", - "libp2p-swarm", - "log", - "prost 0.10.4", - "prost-build 0.10.4", - "rand 0.8.5", -] - [[package]] name = "libp2p-core" -version = "0.32.1" +version = "0.38.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db5b02602099fb75cb2d16f9ea860a320d6eb82ce41e95ab680912c454805cd5" +checksum = "b6a8fcd392ff67af6cc3f03b1426c41f7f26b6b9aff2dc632c1c56dd649e571f" dependencies = [ "asn1_der", "bs58", @@ -3238,18 +3828,18 @@ dependencies = [ "futures", "futures-timer", "instant", - "lazy_static", "log", - "multiaddr", - "multihash", + "multiaddr 0.16.0", + "multihash 0.16.3", "multistream-select", + "once_cell", "parking_lot 0.12.1", - "pin-project 1.0.12", - "prost 0.9.0", - "prost-build 0.9.0", + "pin-project", + "prost", + "prost-build", "rand 0.8.5", - "ring", - "rw-stream-sink 0.2.1", + "rw-stream-sink", + "sec1", "sha2 0.10.6", "smallvec", "thiserror", @@ -3260,9 +3850,9 @@ dependencies = [ [[package]] name = "libp2p-core" -version = "0.33.0" +version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42d46fca305dee6757022e2f5a4f6c023315084d0ed7441c3ab244e76666d979" +checksum = "881d9a54e97d97cdaa4125d48269d97ca8c40e5fefec6b85b30440dc60cc551f" dependencies = [ "asn1_der", "bs58", @@ -3272,19 +3862,18 @@ dependencies = [ "futures", "futures-timer", "instant", - "lazy_static", - "libsecp256k1", "log", - "multiaddr", - "multihash", + "multiaddr 0.17.0", + "multihash 0.17.0", "multistream-select", + "once_cell", "parking_lot 0.12.1", - "pin-project 1.0.12", - "prost 0.10.4", - "prost-build 0.10.4", + "pin-project", + "prost", + "prost-build", "rand 0.8.5", - "ring", - "rw-stream-sink 0.3.0", + "rw-stream-sink", + "sec1", "sha2 0.10.6", "smallvec", "thiserror", @@ -3293,93 +3882,35 @@ dependencies = [ "zeroize", ] -[[package]] -name = "libp2p-deflate" -version = "0.33.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86adefc55ea4ed8201149f052fb441210727481dff1fb0b8318460206a79f5fb" -dependencies = [ - "flate2", - "futures", - "libp2p-core 0.33.0", -] - [[package]] name = "libp2p-dns" -version = "0.33.0" +version = "0.38.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbb462ec3a51fab457b4b44ac295e8b0a4b04dc175127e615cf996b1f0f1a268" +checksum = "8e42a271c1b49f789b92f7fc87749fa79ce5c7bdc88cbdfacb818a4bca47fec5" dependencies = [ - "async-std-resolver", "futures", - "libp2p-core 0.33.0", + "libp2p-core 0.38.0", "log", "parking_lot 0.12.1", "smallvec", "trust-dns-resolver", ] -[[package]] -name = "libp2p-floodsub" -version = "0.36.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a505d0c6f851cbf2919535150198e530825def8bd3757477f13dc3a57f46cbcc" -dependencies = [ - "cuckoofilter", - "fnv", - "futures", - "libp2p-core 0.33.0", - "libp2p-swarm", - "log", - "prost 0.10.4", - "prost-build 0.10.4", - "rand 0.7.3", - "smallvec", -] - -[[package]] -name = "libp2p-gossipsub" -version = "0.38.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43e064ba4d7832e01c738626c6b274ae100baba05f5ffcc7b265c2a3ed398108" -dependencies = [ - "asynchronous-codec", - "base64", - "byteorder", - "bytes", - "fnv", - "futures", - "hex_fmt", - "instant", - "libp2p-core 0.33.0", - "libp2p-swarm", - "log", - "prometheus-client", - "prost 0.10.4", - "prost-build 0.10.4", - "rand 0.7.3", - "regex", - "sha2 0.10.6", - "smallvec", - "unsigned-varint", - "wasm-timer", -] - [[package]] name = "libp2p-identify" -version = "0.36.1" +version = "0.41.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b84b53490442d086db1fa5375670c9666e79143dccadef3f7c74a4346899a984" +checksum = "c052d0026f4817b44869bfb6810f4e1112f43aec8553f2cb38881c524b563abf" dependencies = [ "asynchronous-codec", "futures", "futures-timer", - "libp2p-core 0.33.0", + "libp2p-core 0.38.0", "libp2p-swarm", "log", "lru", - "prost 0.10.4", - "prost-build 0.10.4", + "prost", + "prost-build", "prost-codec", "smallvec", "thiserror", @@ -3388,9 +3919,9 @@ dependencies = [ [[package]] name = "libp2p-kad" -version = "0.37.1" +version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f6b5d4de90fcd35feb65ea6223fd78f3b747a64ca4b65e0813fbe66a27d56aa" +checksum = "2766dcd2be8c87d5e1f35487deb22d765f49c6ae1251b3633efe3b25698bd3d2" dependencies = [ "arrayvec 0.7.2", "asynchronous-codec", @@ -3400,12 +3931,12 @@ dependencies = [ "futures", "futures-timer", "instant", - "libp2p-core 0.33.0", + "libp2p-core 0.38.0", "libp2p-swarm", "log", - "prost 0.10.4", - "prost-build 0.10.4", - "rand 0.7.3", + "prost", + "prost-build", + "rand 0.8.5", "sha2 0.10.6", "smallvec", "thiserror", @@ -3416,282 +3947,283 @@ dependencies = [ [[package]] name = "libp2p-mdns" -version = "0.37.0" +version = "0.42.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4783f8cf00c7b6c1ff0f1870b4fcf50b042b45533d2e13b6fb464caf447a6951" +checksum = "04f378264aade9872d6ccd315c0accc18be3a35d15fc1b9c36e5b6f983b62b5b" dependencies = [ - "async-io", "data-encoding", - "dns-parser", "futures", "if-watch", - "lazy_static", - "libp2p-core 0.33.0", + "libp2p-core 0.38.0", "libp2p-swarm", "log", "rand 0.8.5", "smallvec", "socket2", + "tokio", + "trust-dns-proto", "void", ] [[package]] name = "libp2p-metrics" -version = "0.6.1" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "564a7e5284d7d9b3140fdfc3cb6567bc32555e86a21de5604c2ec85da05cf384" +checksum = "5ad8a64f29da86005c86a4d2728b8a0719e9b192f4092b609fd8790acb9dec55" dependencies = [ - "libp2p-core 0.33.0", - "libp2p-gossipsub", + "libp2p-core 0.38.0", "libp2p-identify", "libp2p-kad", "libp2p-ping", - "libp2p-relay", "libp2p-swarm", "prometheus-client", ] [[package]] name = "libp2p-mplex" -version = "0.33.0" +version = "0.38.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ff9c893f2367631a711301d703c47432af898c9bb8253bea0e2c051a13f7640" +checksum = "03805b44107aa013e7cbbfa5627b31c36cbedfdfb00603c0311998882bc4bace" dependencies = [ "asynchronous-codec", "bytes", "futures", - "libp2p-core 0.33.0", + "libp2p-core 0.38.0", "log", "nohash-hasher", "parking_lot 0.12.1", - "rand 0.7.3", + "rand 0.8.5", "smallvec", "unsigned-varint", ] [[package]] name = "libp2p-noise" -version = "0.36.0" +version = "0.41.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf2cee1dad1c83325bbd182a8e94555778699cec8a9da00086efb7522c4c15ad" +checksum = "a978cb57efe82e892ec6f348a536bfbd9fee677adbe5689d7a93ad3a9bffbf2e" dependencies = [ "bytes", "curve25519-dalek 3.2.0", "futures", - "lazy_static", - "libp2p-core 0.33.0", + "libp2p-core 0.38.0", "log", - "prost 0.10.4", - "prost-build 0.10.4", + "once_cell", + "prost", + "prost-build", "rand 0.8.5", "sha2 0.10.6", "snow", "static_assertions", - "x25519-dalek", + "thiserror", + "x25519-dalek 1.1.1", "zeroize", ] [[package]] -name = "libp2p-ping" -version = "0.36.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d41516c82fe8dd148ec925eead0c5ec08a0628f7913597e93e126e4dfb4e0787" -dependencies = [ - "futures", - "futures-timer", - "instant", - "libp2p-core 0.33.0", - "libp2p-swarm", - "log", - "rand 0.7.3", - "void", -] - -[[package]] -name = "libp2p-plaintext" -version = "0.33.0" +name = "libp2p-noise" +version = "0.42.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db007e737adc5d28b2e03223b0210164928ad742591127130796a72aa8eaf54f" +checksum = "1216f9ec823ac7a2289b954674c54cbce81c9e45920b4fcf173018ede4295246" dependencies = [ - "asynchronous-codec", "bytes", + "curve25519-dalek 3.2.0", "futures", - "libp2p-core 0.33.0", - "log", - "prost 0.10.4", - "prost-build 0.10.4", - "unsigned-varint", - "void", -] - -[[package]] -name = "libp2p-pnet" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f1a458bbda880107b5b36fcb9b5a1ef0c329685da0e203ed692a8ebe64cc92c" -dependencies = [ - "futures", + "libp2p-core 0.39.0", "log", - "pin-project 1.0.12", - "rand 0.7.3", - "salsa20", - "sha3 0.9.1", + "once_cell", + "prost", + "prost-build", + "rand 0.8.5", + "sha2 0.10.6", + "snow", + "static_assertions", + "thiserror", + "x25519-dalek 1.1.1", + "zeroize", ] [[package]] -name = "libp2p-relay" -version = "0.9.1" +name = "libp2p-ping" +version = "0.41.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "624ead3406f64437a0d4567c31bd128a9a0b8226d5f16c074038f5d0fc32f650" +checksum = "929fcace45a112536e22b3dcfd4db538723ef9c3cb79f672b98be2cc8e25f37f" dependencies = [ - "asynchronous-codec", - "bytes", - "either", "futures", "futures-timer", "instant", - "libp2p-core 0.33.0", + "libp2p-core 0.38.0", "libp2p-swarm", "log", - "pin-project 1.0.12", - "prost 0.10.4", - "prost-build 0.10.4", - "prost-codec", "rand 0.8.5", - "smallvec", - "static_assertions", - "thiserror", "void", ] [[package]] -name = "libp2p-rendezvous" -version = "0.6.0" +name = "libp2p-quic" +version = "0.7.0-alpha.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c59967ea2db2c7560f641aa58ac05982d42131863fcd3dd6dcf0dd1daf81c60c" +checksum = "5971f629ff7519f4d4889a7c981f0dc09c6ad493423cd8a13ee442de241bc8c8" dependencies = [ - "asynchronous-codec", - "bimap", + "bytes", "futures", "futures-timer", - "instant", - "libp2p-core 0.33.0", - "libp2p-swarm", + "if-watch", + "libp2p-core 0.39.0", + "libp2p-tls", "log", - "prost 0.10.4", - "prost-build 0.10.4", + "parking_lot 0.12.1", + "quinn-proto", "rand 0.8.5", - "sha2 0.10.6", + "rustls 0.20.8", "thiserror", - "unsigned-varint", - "void", + "tokio", ] [[package]] name = "libp2p-request-response" -version = "0.18.0" +version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b02e0acb725e5a757d77c96b95298fd73a7394fe82ba7b8bbeea510719cbe441" +checksum = "3236168796727bfcf4927f766393415361e2c644b08bedb6a6b13d957c9a4884" dependencies = [ "async-trait", "bytes", "futures", "instant", - "libp2p-core 0.33.0", + "libp2p-core 0.38.0", "libp2p-swarm", "log", - "rand 0.7.3", + "rand 0.8.5", "smallvec", "unsigned-varint", ] [[package]] name = "libp2p-swarm" -version = "0.36.1" +version = "0.41.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f4bb21c5abadbf00360c734f16bf87f1712ed4f23cd46148f625d2ddb867346" +checksum = "b2a35472fe3276b3855c00f1c032ea8413615e030256429ad5349cdf67c6e1a0" dependencies = [ "either", "fnv", "futures", "futures-timer", "instant", - "libp2p-core 0.33.0", + "libp2p-core 0.38.0", + "libp2p-swarm-derive", "log", - "pin-project 1.0.12", - "rand 0.7.3", + "pin-project", + "rand 0.8.5", "smallvec", "thiserror", + "tokio", "void", ] [[package]] name = "libp2p-swarm-derive" -version = "0.27.2" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f693c8c68213034d472cbb93a379c63f4f307d97c06f1c41e4985de481687a5" +checksum = "9d527d5827582abd44a6d80c07ff8b50b4ee238a8979e05998474179e79dc400" dependencies = [ + "heck 0.4.1", "quote", "syn", ] [[package]] name = "libp2p-tcp" -version = "0.33.0" +version = "0.38.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f4933e38ef21b50698aefc87799c24f2a365c9d3f6cf50471f3f6a0bc410892" +checksum = "b4b257baf6df8f2df39678b86c578961d48cc8b68642a12f0f763f56c8e5858d" dependencies = [ - "async-io", "futures", "futures-timer", "if-watch", - "ipnet", "libc", - "libp2p-core 0.33.0", + "libp2p-core 0.38.0", "log", "socket2", + "tokio", ] [[package]] -name = "libp2p-uds" -version = "0.32.0" +name = "libp2p-tls" +version = "0.1.0-alpha.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24bdab114f7f2701757d6541266e1131b429bbae382008f207f2114ee4222dcb" +checksum = "e9baf6f6292149e124ee737d9a79dbee783f29473fc368c7faad9d157841078a" dependencies = [ - "async-std", "futures", - "libp2p-core 0.32.1", - "log", + "futures-rustls", + "libp2p-core 0.39.0", + "rcgen 0.10.0", + "ring", + "rustls 0.20.8", + "thiserror", + "webpki 0.22.0", + "x509-parser 0.14.0", + "yasna", ] [[package]] name = "libp2p-wasm-ext" -version = "0.33.0" +version = "0.38.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f066f2b8b1a1d64793f05da2256e6842ecd0293d6735ca2e9bda89831a1bdc06" +checksum = "1bb1a35299860e0d4b3c02a3e74e3b293ad35ae0cee8a056363b0c862d082069" dependencies = [ "futures", "js-sys", - "libp2p-core 0.33.0", + "libp2p-core 0.38.0", "parity-send-wrapper", "wasm-bindgen", "wasm-bindgen-futures", ] +[[package]] +name = "libp2p-webrtc" +version = "0.4.0-alpha.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db4401ec550d36f413310ba5d4bf564bb21f89fb1601cadb32b2300f8bc1eb5b" +dependencies = [ + "async-trait", + "asynchronous-codec", + "bytes", + "futures", + "futures-timer", + "hex", + "if-watch", + "libp2p-core 0.39.0", + "libp2p-noise 0.42.0", + "log", + "multihash 0.17.0", + "prost", + "prost-build", + "prost-codec", + "rand 0.8.5", + "rcgen 0.9.3", + "serde", + "stun", + "thiserror", + "tinytemplate", + "tokio", + "tokio-util", + "webrtc", +] + [[package]] name = "libp2p-websocket" -version = "0.35.0" +version = "0.40.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39d398fbb29f432c4128fabdaac2ed155c3bcaf1b9bd40eeeb10a471eefacbf5" +checksum = "1d705506030d5c0aaf2882437c70dab437605f21c5f9811978f694e6917a3b54" dependencies = [ "either", "futures", "futures-rustls", - "libp2p-core 0.33.0", + "libp2p-core 0.38.0", "log", "parking_lot 0.12.1", "quicksink", - "rw-stream-sink 0.3.0", + "rw-stream-sink", "soketto", "url", "webpki-roots", @@ -3699,12 +4231,13 @@ dependencies = [ [[package]] name = "libp2p-yamux" -version = "0.37.0" +version = "0.42.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fe653639ad74877c759720febb0cbcbf4caa221adde4eed2d3126ce5c6f381f" +checksum = "4f63594a0aa818642d9d4915c791945053877253f08a3626f13416b5cd928a29" dependencies = [ "futures", - "libp2p-core 0.33.0", + "libp2p-core 0.38.0", + "log", "parking_lot 0.12.1", "thiserror", "yamux", @@ -3712,9 +4245,9 @@ dependencies = [ [[package]] name = "librocksdb-sys" -version = "0.6.1+6.28.2" +version = "0.8.3+7.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81bc587013734dadb7cf23468e531aa120788b87243648be42e2d3a072186291" +checksum = "557b255ff04123fcc176162f56ed0c9cd42d8f357cf55b3fabeb60f7413741b3" dependencies = [ "bindgen", "bzip2-sys", @@ -3732,7 +4265,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "95b09eff1b35ed3b33b877ced3a691fc7a481919c7e29c53c906226fcf55e2a1" dependencies = [ "arrayref", - "base64", + "base64 0.13.1", "digest 0.9.0", "hmac-drbg", "libsecp256k1-core", @@ -3786,9 +4319,9 @@ dependencies = [ [[package]] name = "link-cplusplus" -version = "1.0.7" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9272ab7b96c9046fbc5bc56c06c117cb639fe2d509df0c421cad82d2915cf369" +checksum = "ecd207c9c713c34f95a097a5b029ac2ce6010530c7b49d7fea24d977dede04f5" dependencies = [ "cc", ] @@ -3810,19 +4343,18 @@ dependencies = [ [[package]] name = "linregress" -version = "0.4.4" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6c601a85f5ecd1aba625247bca0031585fb1c446461b142878a16f8245ddeb8" +checksum = "475015a7f8f017edb28d2e69813be23500ad4b32cfe3421c4148efc97324ee52" dependencies = [ "nalgebra", - "statrs", ] [[package]] name = "linux-raw-sys" -version = "0.0.42" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5284f00d480e1c39af34e72f8ad60b94f47007e3481cd3b731c1d67190ddc7b7" +checksum = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4" [[package]] name = "lite-json" @@ -3864,11 +4396,11 @@ dependencies = [ [[package]] name = "lru" -version = "0.7.8" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e999beba7b6e8345721bd280141ed958096a2e4abdf74f67ff4ce49b4b54e47a" +checksum = "b6e8aaa3f231bb4bd57b84b2d5dc3ae7f350265df8aa96492e0bc394a1571909" dependencies = [ - "hashbrown", + "hashbrown 0.12.3", ] [[package]] @@ -3926,9 +4458,9 @@ dependencies = [ [[package]] name = "matches" -version = "0.1.9" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f" +checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5" [[package]] name = "matrixmultiply" @@ -3939,6 +4471,15 @@ dependencies = [ "rawpointer", ] +[[package]] +name = "md-5" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6365506850d44bff6e2fbcb5176cf63650e48bd45ef2fe2665ae1570e0f4b9ca" +dependencies = [ + "digest 0.10.6", +] + [[package]] name = "memchr" version = "2.5.0" @@ -3947,18 +4488,18 @@ checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" [[package]] name = "memfd" -version = "0.4.1" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6627dc657574b49d6ad27105ed671822be56e0d2547d413bfbf3e8d8fa92e7a" +checksum = "b20a59d985586e4a5aef64564ac77299f8586d8be6cf9106a5a40207e8908efb" dependencies = [ - "libc", + "rustix", ] [[package]] name = "memmap2" -version = "0.5.7" +version = "0.5.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95af15f345b17af2efc8ead6080fb8bc376f8cec1b35277b935637595fe77498" +checksum = "83faa42c0a078c393f6b29d5db232d8be22776a891f8f56e5284faee4a20b327" dependencies = [ "libc", ] @@ -3972,22 +4513,39 @@ dependencies = [ "autocfg", ] +[[package]] +name = "memoffset" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4" +dependencies = [ + "autocfg", +] + +[[package]] +name = "memoffset" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d61c719bcfbcf5d62b3a09efa6088de8c54bc0bfcd3ea7ae39fcc186108b8de1" +dependencies = [ + "autocfg", +] + [[package]] name = "memory-db" -version = "0.29.0" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6566c70c1016f525ced45d7b7f97730a2bafb037c788211d0c186ef5b2189f0a" +checksum = "5e0c7cba9ce19ac7ffd2053ac9f49843bbd3f4318feedfd74e85c19d5fb0ba66" dependencies = [ "hash-db", - "hashbrown", - "parity-util-mem", + "hashbrown 0.12.3", ] [[package]] name = "memory_units" -version = "0.3.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71d96e3f3c0b6325d8ccd83c33b28acb183edcb6c67938ba104ec546854b0882" +checksum = "8452105ba047068f40ff7093dd1d9da90898e63dd61736462e9cdda6a90ad3c3" [[package]] name = "merlin" @@ -4009,42 +4567,81 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "miniz_oxide" -version = "0.5.4" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96590ba8f175222643a85693f33d26e9c8a015f599c216509b1a6894af675d34" +checksum = "b275950c28b37e794e8c55d88aeb5e139d0ce23fdbbeda68f8d7174abdf9e8fa" dependencies = [ "adler", ] [[package]] name = "mio" -version = "0.8.4" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57ee1c23c7c63b0c9250c339ffdc69255f110b298b901b9f6c82547b7b87caaf" +checksum = "5b9d9a46eff5b4ff64b45a9e316a6d1e0bc719ef429cbec4dc630684212bfdf9" dependencies = [ "libc", "log", "wasi 0.11.0+wasi-snapshot-preview1", - "windows-sys", + "windows-sys 0.45.0", ] [[package]] -name = "more-asserts" -version = "0.2.2" +name = "mockall" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50e4a1c770583dac7ab5e2f6c139153b783a53a1bbee9729613f193e59828326" +dependencies = [ + "cfg-if", + "downcast", + "fragile", + "lazy_static", + "mockall_derive", + "predicates", + "predicates-tree", +] + +[[package]] +name = "mockall_derive" +version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7843ec2de400bcbc6a6328c958dc38e5359da6e93e72e37bc5246bf1ae776389" +checksum = "832663583d5fa284ca8810bf7015e46c9fff9622d3cf34bd1eea5003fec06dd0" +dependencies = [ + "cfg-if", + "proc-macro2", + "quote", + "syn", +] [[package]] name = "multiaddr" -version = "0.14.0" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c580bfdd8803cce319b047d239559a22f809094aaea4ac13902a1fdcfcd4261" +checksum = "a4aebdb21e90f81d13ed01dc84123320838e53963c2ca94b60b305d3fa64f31e" +dependencies = [ + "arrayref", + "byteorder", + "data-encoding", + "multibase", + "multihash 0.16.3", + "percent-encoding", + "serde", + "static_assertions", + "unsigned-varint", + "url", +] + +[[package]] +name = "multiaddr" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b53e0cc5907a5c216ba6584bf74be8ab47d6d6289f72793b2dddbf15dc3bf8c" dependencies = [ "arrayref", - "bs58", "byteorder", "data-encoding", - "multihash", + "multibase", + "multihash 0.17.0", "percent-encoding", "serde", "static_assertions", @@ -4073,21 +4670,34 @@ dependencies = [ "blake2s_simd", "blake3", "core2", - "digest 0.10.5", + "digest 0.10.6", "multihash-derive", "sha2 0.10.6", - "sha3 0.10.5", + "sha3", "unsigned-varint", ] [[package]] -name = "multihash-derive" -version = "0.8.0" +name = "multihash" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc076939022111618a5026d3be019fd8b366e76314538ff9a1b59ffbcbf98bcd" +checksum = "835d6ff01d610179fbce3de1694d007e500bf33a7f29689838941d6bf783ae40" dependencies = [ - "proc-macro-crate", - "proc-macro-error", + "core2", + "digest 0.10.6", + "multihash-derive", + "sha2 0.10.6", + "unsigned-varint", +] + +[[package]] +name = "multihash-derive" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d6d4752e6230d8ef7adf7bd5d8c4b1f6561c1014c5ba9a37445ccefe18aa1db" +dependencies = [ + "proc-macro-crate", + "proc-macro-error", "proc-macro2", "quote", "syn", @@ -4102,41 +4712,39 @@ checksum = "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a" [[package]] name = "multistream-select" -version = "0.11.0" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "363a84be6453a70e63513660f4894ef815daf88e3356bffcda9ca27d810ce83b" +checksum = "c8552ab875c1313b97b8d20cb857b9fd63e2d1d6a0a1b53ce9821e575405f27a" dependencies = [ "bytes", "futures", "log", - "pin-project 1.0.12", + "pin-project", "smallvec", "unsigned-varint", ] [[package]] name = "nalgebra" -version = "0.27.1" +version = "0.32.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "462fffe4002f4f2e1f6a9dcf12cc1a6fc0e15989014efc02a941d3e0f5dc2120" +checksum = "f6515c882ebfddccaa73ead7320ca28036c4bc84c9bcca3cc0cbba8efe89223a" dependencies = [ "approx", "matrixmultiply", "nalgebra-macros", "num-complex", - "num-rational 0.4.1", + "num-rational", "num-traits", - "rand 0.8.5", - "rand_distr", "simba", "typenum", ] [[package]] name = "nalgebra-macros" -version = "0.1.0" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01fcc0b8149b4632adc89ac3b7b31a12fb6099a0317a4eb2ebff574ef7de7218" +checksum = "d232c68884c0c99810a5a4d333ef7e47689cfd0edc85efc9e54e1e6bf5212766" dependencies = [ "proc-macro2", "quote", @@ -4180,13 +4788,13 @@ dependencies = [ [[package]] name = "netlink-packet-utils" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25af9cf0dc55498b7bd94a1508af7a78706aa0ab715a73c5169273e03c84845e" +checksum = "0ede8a08c71ad5a95cdd0e4e52facd37190977039a4704eb82a283f713747d34" dependencies = [ "anyhow", "byteorder", - "paste 1.0.9", + "paste 1.0.11", "thiserror", ] @@ -4207,46 +4815,61 @@ dependencies = [ [[package]] name = "netlink-sys" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92b654097027250401127914afb37cb1f311df6610a9891ff07a757e94199027" +checksum = "260e21fbb6f3d253a14df90eb0000a6066780a15dd901a7519ce02d77a94985b" dependencies = [ - "async-io", "bytes", "futures", "libc", "log", + "tokio", ] [[package]] name = "nix" -version = "0.23.1" +version = "0.23.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f866317acbd3a240710c63f065ffb1e4fd466259045ccb504130b7f668f35c6" +checksum = "8f3790c00a0150112de0f4cd161e3d7fc4b2d8a5542ffc35f099a2562aecb35c" dependencies = [ "bitflags", "cc", "cfg-if", "libc", - "memoffset", + "memoffset 0.6.5", +] + +[[package]] +name = "nix" +version = "0.24.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa52e972a9a719cecb6864fb88568781eb706bac2cd1d4f04a648542dbf78069" +dependencies = [ + "bitflags", + "cfg-if", + "libc", + "memoffset 0.6.5", ] [[package]] name = "nix" -version = "0.24.2" +version = "0.26.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "195cdbc1741b8134346d515b3a56a1c94b0912758009cfd53f99ea0f57b065fc" +checksum = "bfdda3d196821d6af13126e40375cdf7da646a96114af134d5f417a9a1dc8e1a" dependencies = [ "bitflags", "cfg-if", "libc", + "memoffset 0.7.1", + "pin-utils", + "static_assertions", ] [[package]] name = "node-inspect" version = "0.9.0-dev" dependencies = [ - "clap 3.2.22", + "clap 3.2.23", "overrides", "parity-scale-codec", "sc-cli", @@ -4259,12 +4882,6 @@ dependencies = [ "thiserror", ] -[[package]] -name = "nodrop" -version = "0.1.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb" - [[package]] name = "nohash-hasher" version = "0.2.0" @@ -4273,19 +4890,25 @@ checksum = "2bf50223579dc7cdcfb3bfcacf7069ff68243f8c363f62ffa99cf000a6b9c451" [[package]] name = "nom" -version = "7.1.1" +version = "7.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8903e5a29a317527874d0402f867152a3d21c908bb0b933e416c65e301d4c36" +checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" dependencies = [ "memchr", "minimal-lexical", ] +[[package]] +name = "normalize-line-endings" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be" + [[package]] name = "num-bigint" -version = "0.2.6" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "090c7f9998ee0ff65aa5b723e4009f7b217707f1fb5ea551329cc4d6231fb304" +checksum = "f93ab6289c7b344a8a9f60f88d80aa20032336fe78da341afc91c8a2341fc75f" dependencies = [ "autocfg", "num-integer", @@ -4294,21 +4917,21 @@ dependencies = [ [[package]] name = "num-complex" -version = "0.4.2" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ae39348c8bc5fbd7f40c727a9925f03517afd2ab27d46702108b6a7e5414c19" +checksum = "02e0d21255c828d6f128a1e41534206671e8c3ea0c62f32291e808dc82cff17d" dependencies = [ "num-traits", ] [[package]] name = "num-format" -version = "0.4.3" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54b862ff8df690cf089058c98b183676a7ed0f974cc08b426800093227cbff3b" +checksum = "a652d9771a63711fd3c3deb670acfbe5c30a4072e664d7a3bf5a9e1056ac72c3" dependencies = [ "arrayvec 0.7.2", - "itoa 1.0.4", + "itoa", ] [[package]] @@ -4321,18 +4944,6 @@ dependencies = [ "num-traits", ] -[[package]] -name = "num-rational" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c000134b5dbf44adc5cb772486d335293351644b801551abe8f75c84cfa4aef" -dependencies = [ - "autocfg", - "num-bigint", - "num-integer", - "num-traits", -] - [[package]] name = "num-rational" version = "0.4.1" @@ -4340,6 +4951,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0" dependencies = [ "autocfg", + "num-bigint", "num-integer", "num-traits", ] @@ -4351,44 +4963,62 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" dependencies = [ "autocfg", - "libm", ] [[package]] name = "num_cpus" -version = "1.13.1" +version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1" +checksum = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b" dependencies = [ - "hermit-abi", + "hermit-abi 0.2.6", "libc", ] [[package]] name = "object" -version = "0.27.1" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67ac1d3f9a1d3616fd9a60c8d74296f22406a238b6a72f5cc1e6f314df4ffbf9" +checksum = "21158b2c33aa6d4561f1c0a6ea283ca92bc54802a93b263e910746d679a7eb53" dependencies = [ "crc32fast", + "hashbrown 0.12.3", "indexmap", "memchr", ] [[package]] name = "object" -version = "0.29.0" +version = "0.30.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21158b2c33aa6d4561f1c0a6ea283ca92bc54802a93b263e910746d679a7eb53" +checksum = "ea86265d3d3dcb6a27fc51bd29a4bf387fae9d2986b823079d4986af253eb439" dependencies = [ "memchr", ] +[[package]] +name = "oid-registry" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38e20717fa0541f39bd146692035c37bedfa532b3e5071b35761082407546b2a" +dependencies = [ + "asn1-rs 0.3.1", +] + +[[package]] +name = "oid-registry" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9bedf36ffb6ba96c2eb7144ef6270557b52e54b20c0a8e1eb2ff99a6c6959bff" +dependencies = [ + "asn1-rs 0.5.1", +] + [[package]] name = "once_cell" -version = "1.15.0" +version = "1.17.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e82dad04139b71a90c080c8463fe0dc7902db5192d939bd0950f074d014339e1" +checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3" [[package]] name = "oorandom" @@ -4416,27 +5046,50 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "os_str_bytes" -version = "6.3.0" +version = "6.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ff7415e9ae3fff1225851df9e0d9e4e5479f947619774677a63572e55e80eff" +checksum = "9b7820b9daea5457c9f21c69448905d723fbd21136ccf521748f23fd49e723ee" [[package]] name = "overrides" version = "0.1.0" [[package]] -name = "owning_ref" -version = "0.4.1" +name = "p256" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ff55baddef9e4ad00f88b6c743a2a8062d4c6ade126c2a528644b8e444d52ce" +checksum = "51f44edd08f51e2ade572f141051021c5af22677e42b7dd28a88155151c33594" dependencies = [ - "stable_deref_trait", + "ecdsa", + "elliptic-curve", + "sha2 0.10.6", +] + +[[package]] +name = "p384" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfc8c5bf642dde52bb9e87c0ecd8ca5a76faac2eeed98dedb7c717997e1080aa" +dependencies = [ + "ecdsa", + "elliptic-curve", + "sha2 0.10.6", +] + +[[package]] +name = "packed_simd_2" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1914cd452d8fccd6f9db48147b29fd4ae05bea9dc5d9ad578509f72415de282" +dependencies = [ + "cfg-if", + "libm 0.1.4", ] [[package]] name = "pallet-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "frame-support", "frame-system", @@ -4452,14 +5105,13 @@ dependencies = [ [[package]] name = "pallet-authorship" version = "4.0.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "frame-support", "frame-system", "impl-trait-for-tuples", "parity-scale-codec", "scale-info", - "sp-authorship", "sp-runtime", "sp-std", ] @@ -4467,7 +5119,7 @@ dependencies = [ [[package]] name = "pallet-babe" version = "4.0.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "frame-benchmarking", "frame-support", @@ -4491,7 +5143,7 @@ dependencies = [ [[package]] name = "pallet-bags-list" version = "4.0.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -4511,7 +5163,7 @@ dependencies = [ [[package]] name = "pallet-balances" version = "4.0.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "frame-benchmarking", "frame-support", @@ -4523,6 +5175,49 @@ dependencies = [ "sp-std", ] +[[package]] +name = "pallet-beefy" +version = "4.0.0-dev" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" +dependencies = [ + "frame-support", + "frame-system", + "pallet-authorship", + "pallet-session", + "parity-scale-codec", + "scale-info", + "serde", + "sp-beefy", + "sp-runtime", + "sp-session", + "sp-staking", + "sp-std", +] + +[[package]] +name = "pallet-beefy-mmr" +version = "4.0.0-dev" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" +dependencies = [ + "array-bytes", + "binary-merkle-tree", + "frame-support", + "frame-system", + "log", + "pallet-beefy", + "pallet-mmr", + "pallet-session", + "parity-scale-codec", + "scale-info", + "serde", + "sp-api", + "sp-beefy", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", +] + [[package]] name = "pallet-bounty" version = "2.0.0" @@ -4595,9 +5290,9 @@ dependencies = [ "frame-system", "pallet-balances", "pallet-common", + "pallet-insecure-randomness-collective-flip", "pallet-membership", "pallet-project-token", - "pallet-insecure-randomness-collective-flip", "pallet-staking-handler", "pallet-storage", "pallet-timestamp", @@ -4642,15 +5337,16 @@ dependencies = [ [[package]] name = "pallet-election-provider-multi-phase" version = "4.0.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "frame-benchmarking", "frame-election-provider-support", "frame-support", "frame-system", "log", + "pallet-election-provider-support-benchmarking", "parity-scale-codec", - "rand 0.7.3", + "rand 0.8.5", "scale-info", "sp-arithmetic", "sp-core", @@ -4658,14 +5354,13 @@ dependencies = [ "sp-npos-elections", "sp-runtime", "sp-std", - "static_assertions", - "strum 0.23.0", + "strum 0.24.1", ] [[package]] name = "pallet-election-provider-support-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -4701,7 +5396,7 @@ dependencies = [ [[package]] name = "pallet-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "frame-benchmarking", "frame-support", @@ -4724,7 +5419,7 @@ dependencies = [ [[package]] name = "pallet-im-online" version = "4.0.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "frame-benchmarking", "frame-support", @@ -4741,6 +5436,20 @@ dependencies = [ "sp-std", ] +[[package]] +name = "pallet-insecure-randomness-collective-flip" +version = "4.0.0-dev" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" +dependencies = [ + "frame-support", + "frame-system", + "parity-scale-codec", + "safe-mix", + "scale-info", + "sp-runtime", + "sp-std", +] + [[package]] name = "pallet-membership" version = "6.0.0" @@ -4762,14 +5471,32 @@ dependencies = [ "sp-std", ] +[[package]] +name = "pallet-mmr" +version = "4.0.0-dev" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "parity-scale-codec", + "scale-info", + "sp-core", + "sp-io", + "sp-mmr-primitives", + "sp-runtime", + "sp-std", +] + [[package]] name = "pallet-multisig" version = "4.0.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", + "log", "parity-scale-codec", "scale-info", "sp-io", @@ -4780,7 +5507,7 @@ dependencies = [ [[package]] name = "pallet-offences" version = "4.0.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "frame-support", "frame-system", @@ -4797,12 +5524,13 @@ dependencies = [ [[package]] name = "pallet-offences-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "frame-benchmarking", "frame-election-provider-support", "frame-support", "frame-system", + "log", "pallet-babe", "pallet-balances", "pallet-grandpa", @@ -4826,8 +5554,8 @@ dependencies = [ "frame-system", "pallet-balances", "pallet-common", - "pallet-membership", "pallet-insecure-randomness-collective-flip", + "pallet-membership", "pallet-staking-handler", "pallet-storage", "pallet-timestamp", @@ -4924,20 +5652,6 @@ dependencies = [ "sp-std", ] -[[package]] -name = "pallet-insecure-randomness-collective-flip" -version = "4.0.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" -dependencies = [ - "frame-support", - "frame-system", - "parity-scale-codec", - "safe-mix", - "scale-info", - "sp-runtime", - "sp-std", -] - [[package]] name = "pallet-referendum" version = "6.0.0" @@ -4964,7 +5678,7 @@ dependencies = [ [[package]] name = "pallet-session" version = "4.0.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "frame-support", "frame-system", @@ -4985,14 +5699,14 @@ dependencies = [ [[package]] name = "pallet-session-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", "pallet-session", "pallet-staking", - "rand 0.7.3", + "rand 0.8.5", "sp-runtime", "sp-session", "sp-std", @@ -5001,7 +5715,7 @@ dependencies = [ [[package]] name = "pallet-staking" version = "4.0.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5043,7 +5757,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-curve" version = "4.0.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -5062,8 +5776,8 @@ dependencies = [ "frame-system", "pallet-balances", "pallet-common", - "pallet-membership", "pallet-insecure-randomness-collective-flip", + "pallet-membership", "pallet-staking-handler", "pallet-timestamp", "pallet-working-group", @@ -5080,7 +5794,7 @@ dependencies = [ [[package]] name = "pallet-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "frame-benchmarking", "frame-support", @@ -5098,7 +5812,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment" version = "4.0.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "frame-support", "frame-system", @@ -5114,9 +5828,9 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc" version = "4.0.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ - "jsonrpsee", + "jsonrpsee 0.16.2", "pallet-transaction-payment-rpc-runtime-api", "parity-scale-codec", "sp-api", @@ -5124,26 +5838,29 @@ dependencies = [ "sp-core", "sp-rpc", "sp-runtime", + "sp-weights", ] [[package]] name = "pallet-transaction-payment-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", "sp-api", "sp-runtime", + "sp-weights", ] [[package]] name = "pallet-transaction-storage" version = "4.0.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "frame-support", "frame-system", + "log", "pallet-balances", "parity-scale-codec", "scale-info", @@ -5183,7 +5900,7 @@ dependencies = [ [[package]] name = "pallet-utility" version = "4.0.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "frame-benchmarking", "frame-support", @@ -5199,7 +5916,7 @@ dependencies = [ [[package]] name = "pallet-vesting" version = "4.0.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "frame-benchmarking", "frame-support", @@ -5235,11 +5952,11 @@ dependencies = [ [[package]] name = "parity-db" -version = "0.3.17" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c8fdb726a43661fa54b43e7114e6b88b2289cae388eb3ad766d9d1754d83fce" +checksum = "dd684a725651d9588ef21f140a328b6b4f64e646b2e931f3e6f14f75eedf9980" dependencies = [ - "blake2-rfc", + "blake2", "crc32fast", "fs2", "hex", @@ -5254,13 +5971,14 @@ dependencies = [ [[package]] name = "parity-scale-codec" -version = "3.2.1" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "366e44391a8af4cfd6002ef6ba072bae071a96aafca98d7d448a34c5dca38b6a" +checksum = "637935964ff85a605d114591d4d2c13c5d1ba2806dae97cea6bf180238a749ac" dependencies = [ "arrayvec 0.7.2", "bitvec", "byte-slice-cast", + "bytes", "impl-trait-for-tuples", "parity-scale-codec-derive", "serde", @@ -5268,9 +5986,9 @@ dependencies = [ [[package]] name = "parity-scale-codec-derive" -version = "3.1.3" +version = "3.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9299338969a3d2f491d65f140b00ddec470858402f888af98e8642fb5e8965cd" +checksum = "86b26a931f824dd4eca30b3e43bb4f31cd5f0d3a403c5f5ff27106b805bfde7b" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -5284,47 +6002,11 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aa9777aa91b8ad9dd5aaa04a9b6bcb02c7f1deb952fca5a66034d5e63afc5c6f" -[[package]] -name = "parity-util-mem" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c32561d248d352148124f036cac253a644685a21dc9fea383eb4907d7bd35a8f" -dependencies = [ - "cfg-if", - "hashbrown", - "impl-trait-for-tuples", - "parity-util-mem-derive", - "parking_lot 0.12.1", - "primitive-types", - "smallvec", - "winapi", -] - -[[package]] -name = "parity-util-mem-derive" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f557c32c6d268a07c921471619c0295f5efad3a0e76d4f97a05c091a51d110b2" -dependencies = [ - "proc-macro2", - "syn", - "synstructure", -] - -[[package]] -name = "parity-wasm" -version = "0.32.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16ad52817c4d343339b3bc2e26861bd21478eda0b7509acf83505727000512ac" -dependencies = [ - "byteorder", -] - [[package]] name = "parity-wasm" -version = "0.42.2" +version = "0.45.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be5e13c266502aadf83426d87d81a0f5d1ef45b8027f5a471c360abfe4bfae92" +checksum = "e1ad0aff30c1da14b1254fcb2af73e1fa9a28670e584a626f53a369d0e157304" [[package]] name = "parking" @@ -5340,7 +6022,7 @@ checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" dependencies = [ "instant", "lock_api", - "parking_lot_core 0.8.5", + "parking_lot_core 0.8.6", ] [[package]] @@ -5350,14 +6032,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" dependencies = [ "lock_api", - "parking_lot_core 0.9.3", + "parking_lot_core 0.9.7", ] [[package]] name = "parking_lot_core" -version = "0.8.5" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d76e8e1493bcac0d2766c42737f34458f1c8c50c0d23bcb24ea953affb273216" +checksum = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc" dependencies = [ "cfg-if", "instant", @@ -5369,15 +6051,15 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.3" +version = "0.9.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09a279cbf25cb0757810394fbc1e359949b59e348145c643a939a525692e6929" +checksum = "9069cbb9f99e3a5083476ccb29ceb1de18b9118cafa53e90c9551235de2b9521" dependencies = [ "cfg-if", "libc", "redox_syscall", "smallvec", - "windows-sys", + "windows-sys 0.45.0", ] [[package]] @@ -5392,9 +6074,9 @@ dependencies = [ [[package]] name = "paste" -version = "1.0.9" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1de2e551fb905ac83f73f7aedf2f0cb4a0da7e35efa24a202a936269f1f18e1" +checksum = "d01a5bd0424d00070b0098dd17ebca6f961a959dead1dbcbbbc1d1cd8d3deeba" [[package]] name = "paste-impl" @@ -5407,20 +6089,20 @@ dependencies = [ [[package]] name = "pbkdf2" -version = "0.4.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "216eaa586a190f0a738f2f918511eecfa90f13295abec0e457cdebcceda80cbd" +checksum = "d95f5254224e617595d2cc3cc73ff0a5eaf2637519e25f03388154e9378b6ffa" dependencies = [ - "crypto-mac 0.8.0", + "crypto-mac 0.11.1", ] [[package]] name = "pbkdf2" -version = "0.8.0" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d95f5254224e617595d2cc3cc73ff0a5eaf2637519e25f03388154e9378b6ffa" +checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" dependencies = [ - "crypto-mac 0.11.1", + "digest 0.10.6", ] [[package]] @@ -5429,6 +6111,24 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099" +[[package]] +name = "pem" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8835c273a76a90455d7344889b0964598e3316e2a79ede8e36f16bdcf2228b8" +dependencies = [ + "base64 0.13.1", +] + +[[package]] +name = "pem-rfc7468" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d159833a9105500e0398934e205e0773f0b27529557134ecfc51c27646adac" +dependencies = [ + "base64ct", +] + [[package]] name = "percent-encoding" version = "2.2.0" @@ -5437,9 +6137,9 @@ checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" [[package]] name = "pest" -version = "2.4.0" +version = "2.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbc7bc69c062e492337d74d59b120c274fd3d261b6bf6d3207d499b4b379c41a" +checksum = "028accff104c4e513bad663bbcd2ad7cfd5304144404c31ed0a77ac103d00660" dependencies = [ "thiserror", "ucd-trie", @@ -5447,9 +6147,9 @@ dependencies = [ [[package]] name = "pest_derive" -version = "2.4.0" +version = "2.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60b75706b9642ebcb34dab3bc7750f811609a0eb1dd8b88c2d15bf628c1c65b2" +checksum = "2ac3922aac69a40733080f53c1ce7f91dcf57e1a5f6c52f421fadec7fbdc4b69" dependencies = [ "pest", "pest_generator", @@ -5457,9 +6157,9 @@ dependencies = [ [[package]] name = "pest_generator" -version = "2.4.0" +version = "2.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4f9272122f5979a6511a749af9db9bfc810393f63119970d7085fed1c4ea0db" +checksum = "d06646e185566b5961b4058dd107e0a7f56e77c3f484549fb119867773c0f202" dependencies = [ "pest", "pest_meta", @@ -5470,20 +6170,20 @@ dependencies = [ [[package]] name = "pest_meta" -version = "2.4.0" +version = "2.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c8717927f9b79515e565a64fe46c38b8cd0427e64c40680b14a7365ab09ac8d" +checksum = "e6f60b2ba541577e2a0c307c8f39d1439108120eb7903adeb6497fa880c59616" dependencies = [ "once_cell", "pest", - "sha1", + "sha2 0.10.6", ] [[package]] name = "petgraph" -version = "0.6.2" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6d5014253a1331579ce62aa67443b4a658c5e7dd03d4bc6d302b94474888143" +checksum = "4dd7d28ee937e54fe3080c91faa1c3a46c06de6252988a7f4592ba2310ef22a4" dependencies = [ "fixedbitset", "indexmap", @@ -5491,35 +6191,15 @@ dependencies = [ [[package]] name = "pin-project" -version = "0.4.30" +version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ef0f924a5ee7ea9cbcea77529dba45f8a9ba9f622419fe3386ca581a3ae9d5a" +checksum = "ad29a609b6bcd67fee905812e544992d216af9d755757c05ed2d0e15a74c6ecc" dependencies = [ - "pin-project-internal 0.4.30", + "pin-project-internal", ] [[package]] -name = "pin-project" -version = "1.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad29a609b6bcd67fee905812e544992d216af9d755757c05ed2d0e15a74c6ecc" -dependencies = [ - "pin-project-internal 1.0.12", -] - -[[package]] -name = "pin-project-internal" -version = "0.4.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "851c8d0ce9bebe43790dedfc86614c23494ac9f423dd618d3a61fc693eafe61e" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "pin-project-internal" +name = "pin-project-internal" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "069bdb1e05adc7a8990dce9cc75370895fbe4e3d58b9b73bf1aee56359344a55" @@ -5547,11 +6227,21 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" +[[package]] +name = "pkcs8" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9eca2c590a5f85da82668fa685c09ce2888b9430e83299debf1f34b65fd4a4ba" +dependencies = [ + "der", + "spki", +] + [[package]] name = "pkg-config" -version = "0.3.25" +version = "0.3.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1df8c4ec4b0627e53bdf214615ad287367e482558cf84b109250b37464dc03ae" +checksum = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160" [[package]] name = "platforms" @@ -5559,6 +6249,12 @@ version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e8d0eef3571242013a0d5dc84861c3ae4a652e56e12adf8bdc26ff5f8cb34c94" +[[package]] +name = "platforms" +version = "3.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3d7ddaed09e0eb771a79ab0fd64609ba0afb0a8366421957936ad14cbd13630" + [[package]] name = "plotters" version = "0.3.4" @@ -5589,16 +6285,16 @@ dependencies = [ [[package]] name = "polling" -version = "2.3.0" +version = "2.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "899b00b9c8ab553c743b3e11e87c5c7d423b2a2de229ba95b24a756344748011" +checksum = "22122d5ec4f9fe1b3916419b76be1e80bcb93f618d071d2edf841b137b2a2bd6" dependencies = [ "autocfg", "cfg-if", "libc", "log", "wepoll-ffi", - "winapi", + "windows-sys 0.42.0", ] [[package]] @@ -5609,7 +6305,7 @@ checksum = "048aeb476be11a4b6ca432ca569e375810de9294ae78f4774e78ea98a9246ede" dependencies = [ "cpufeatures", "opaque-debug 0.3.0", - "universal-hash", + "universal-hash 0.4.1", ] [[package]] @@ -5621,62 +6317,86 @@ dependencies = [ "cfg-if", "cpufeatures", "opaque-debug 0.3.0", - "universal-hash", + "universal-hash 0.4.1", +] + +[[package]] +name = "polyval" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ef234e08c11dfcb2e56f79fd70f6f2eb7f025c0ce2333e82f4f0518ecad30c6" +dependencies = [ + "cfg-if", + "cpufeatures", + "opaque-debug 0.3.0", + "universal-hash 0.5.0", ] [[package]] name = "ppv-lite86" -version = "0.2.16" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872" +checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" [[package]] name = "predicates" -version = "2.1.1" +version = "2.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5aab5be6e4732b473071984b3164dbbfb7a3674d30ea5ff44410b6bcd960c3c" +checksum = "59230a63c37f3e18569bdb90e4a89cbf5bf8b06fea0b84e65ea10cc4df47addd" dependencies = [ "difflib", + "float-cmp", "itertools", + "normalize-line-endings", "predicates-core", + "regex", ] [[package]] name = "predicates-core" -version = "1.0.3" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da1c2388b1513e1b605fcec39a95e0a9e8ef088f71443ef37099fa9ae6673fcb" +checksum = "72f883590242d3c6fc5bf50299011695fa6590c2c70eac95ee1bdb9a733ad1a2" [[package]] name = "predicates-tree" -version = "1.0.5" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d86de6de25020a36c6d3643a86d9a6a9f552107c0559c60ea03551b5e16c032" +checksum = "54ff541861505aabf6ea722d2131ee980b8276e10a1297b94e896dd8b621850d" dependencies = [ "predicates-core", "termtree", ] +[[package]] +name = "prettyplease" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e97e3215779627f01ee256d2fad52f3d95e8e1c11e9fc6fd08f7cd455d5d5c78" +dependencies = [ + "proc-macro2", + "syn", +] + [[package]] name = "primitive-types" -version = "0.11.1" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e28720988bff275df1f51b171e1b2a18c30d194c4d2b61defdacecd625a5d94a" +checksum = "9f3486ccba82358b11a77516035647c34ba167dfa53312630de83b12bd4f3d66" dependencies = [ "fixed-hash", "impl-codec", - "impl-serde", + "impl-serde 0.4.0", "scale-info", "uint", ] [[package]] name = "proc-macro-crate" -version = "1.2.1" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eda0fc3b0fb7c975631757e14d9049da17374063edb6ebbcbc54d880d4fe94e9" +checksum = "e17d47ce914bf4de440332250b0edd23ce48c005f59fab39d3335866b114f11a" dependencies = [ - "once_cell", "thiserror", "toml", ] @@ -5707,24 +6427,24 @@ dependencies = [ [[package]] name = "proc-macro-hack" -version = "0.5.19" +version = "0.5.20+deprecated" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5" +checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068" [[package]] name = "proc-macro2" -version = "1.0.46" +version = "1.0.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94e2ef8dbfc347b10c094890f778ee2e36ca9bb4262e86dc99cd217e35f3470b" +checksum = "5d727cae5b39d21da60fa540906919ad737832fe0b1c165da3a34d6548c849d6" dependencies = [ "unicode-ident", ] [[package]] name = "prometheus" -version = "0.13.2" +version = "0.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45c8babc29389186697fe5a2a4859d697825496b83db5d0b65271cdc0488e88c" +checksum = "449811d15fbdf5ceb5c1144416066429cf82316e2ec8ce0c1f6f8a02e7bbcf8c" dependencies = [ "cfg-if", "fnv", @@ -5736,21 +6456,21 @@ dependencies = [ [[package]] name = "prometheus-client" -version = "0.16.0" +version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac1abe0255c04d15f571427a2d1e00099016506cf3297b53853acd2b7eb87825" +checksum = "83cd1b99916654a69008fd66b4f9397fbe08e6e51dfe23d4417acf5d3b8cb87c" dependencies = [ "dtoa", - "itoa 1.0.4", - "owning_ref", + "itoa", + "parking_lot 0.12.1", "prometheus-client-derive-text-encode", ] [[package]] name = "prometheus-client-derive-text-encode" -version = "0.2.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8e12d01b9d66ad9eb4529c57666b6263fc1993cb30261d83ead658fdd932652" +checksum = "66a455fbcb954c1a7decf3c586e860fd7889cddf4b8e164be736dbac95a953cd" dependencies = [ "proc-macro2", "quote", @@ -5759,97 +6479,54 @@ dependencies = [ [[package]] name = "prost" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "444879275cb4fd84958b1a1d5420d15e6fcf7c235fe47f053c9c2a80aceb6001" -dependencies = [ - "bytes", - "prost-derive 0.9.0", -] - -[[package]] -name = "prost" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71adf41db68aa0daaefc69bb30bcd68ded9b9abaad5d1fbb6304c4fb390e083e" -dependencies = [ - "bytes", - "prost-derive 0.10.1", -] - -[[package]] -name = "prost-build" -version = "0.9.0" +version = "0.11.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62941722fb675d463659e49c4f3fe1fe792ff24fe5bbaa9c08cd3b98a1c354f5" +checksum = "e48e50df39172a3e7eb17e14642445da64996989bc212b583015435d39a58537" dependencies = [ "bytes", - "heck 0.3.3", - "itertools", - "lazy_static", - "log", - "multimap", - "petgraph", - "prost 0.9.0", - "prost-types 0.9.0", - "regex", - "tempfile", - "which", + "prost-derive", ] [[package]] name = "prost-build" -version = "0.10.4" +version = "0.11.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ae5a4388762d5815a9fc0dea33c56b021cdc8dde0c55e0c9ca57197254b0cab" +checksum = "2c828f93f5ca4826f97fedcbd3f9a536c16b12cff3dbbb4a007f932bbad95b12" dependencies = [ "bytes", - "cfg-if", - "cmake", - "heck 0.4.0", + "heck 0.4.1", "itertools", "lazy_static", "log", "multimap", "petgraph", - "prost 0.10.4", - "prost-types 0.10.1", + "prettyplease", + "prost", + "prost-types", "regex", + "syn", "tempfile", "which", ] [[package]] name = "prost-codec" -version = "0.1.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00af1e92c33b4813cc79fda3f2dbf56af5169709be0202df730e9ebc3e4cd007" +checksum = "0dc34979ff898b6e141106178981ce2596c387ea6e62533facfc61a37fc879c0" dependencies = [ "asynchronous-codec", "bytes", - "prost 0.10.4", + "prost", "thiserror", "unsigned-varint", ] [[package]] name = "prost-derive" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9cc1a3263e07e0bf68e96268f37665207b49560d98739662cdfaae215c720fe" -dependencies = [ - "anyhow", - "itertools", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "prost-derive" -version = "0.10.1" +version = "0.11.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b670f45da57fb8542ebdbb6105a925fe571b67f9e7ed9f47a06a84e72b4e7cc" +checksum = "4ea9b0f8cbe5e15a8a042d030bd96668db28ecb567ec37d691971ff5731d2b1b" dependencies = [ "anyhow", "itertools", @@ -5860,22 +6537,11 @@ dependencies = [ [[package]] name = "prost-types" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "534b7a0e836e3c482d2693070f982e39e7611da9695d4d1f5a4b186b51faef0a" -dependencies = [ - "bytes", - "prost 0.9.0", -] - -[[package]] -name = "prost-types" -version = "0.10.1" +version = "0.11.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d0a014229361011dc8e69c8a1ec6c2e8d0f2af7c91e3ea3f5b2170298461e68" +checksum = "379119666929a1afd7a043aa6cf96fa67a6dce9af60c88095a4686dbce4c9c88" dependencies = [ - "bytes", - "prost 0.10.4", + "prost", ] [[package]] @@ -5904,11 +6570,29 @@ dependencies = [ "pin-project-lite 0.1.12", ] +[[package]] +name = "quinn-proto" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72ef4ced82a24bb281af338b9e8f94429b6eca01b4e66d899f40031f074e74c9" +dependencies = [ + "bytes", + "rand 0.8.5", + "ring", + "rustc-hash", + "rustls 0.20.8", + "slab", + "thiserror", + "tinyvec", + "tracing", + "webpki 0.22.0", +] + [[package]] name = "quote" -version = "1.0.21" +version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbe448f377a7d6961e30f5955f9b8d106c3f5e449d493ee1b125c1d43c2b5179" +checksum = "8856d8364d252a14d474036ea1358d63c9e6965c8e5c1885c18f73d70bff9c7b" dependencies = [ "proc-macro2", ] @@ -5930,7 +6614,6 @@ dependencies = [ "rand_chacha 0.2.2", "rand_core 0.5.1", "rand_hc", - "rand_pcg 0.2.1", ] [[package]] @@ -5979,17 +6662,7 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom 0.2.7", -] - -[[package]] -name = "rand_distr" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32cb0b9bc82b0a0876c2dd994a7e7a2683d3e7390ca40e6886785ef0c7e3ee31" -dependencies = [ - "num-traits", - "rand 0.8.5", + "getrandom 0.2.8", ] [[package]] @@ -6001,15 +6674,6 @@ dependencies = [ "rand_core 0.5.1", ] -[[package]] -name = "rand_pcg" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16abd0c1b639e9eb4d7c50c0b8100b0d0f849be2349829c740fe8e6eb4816429" -dependencies = [ - "rand_core 0.5.1", -] - [[package]] name = "rand_pcg" version = "0.3.1" @@ -6027,21 +6691,19 @@ checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3" [[package]] name = "rayon" -version = "1.5.3" +version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd99e5772ead8baa5215278c9b15bf92087709e9c1b2d1f97cdb5a183c933a7d" +checksum = "6db3a213adf02b3bcfd2d3846bb41cb22857d131789e01df434fb7e7bc0759b7" dependencies = [ - "autocfg", - "crossbeam-deque", "either", "rayon-core", ] [[package]] name = "rayon-core" -version = "1.9.3" +version = "1.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "258bcdb5ac6dad48491bb2992db6b7cf74878b0384908af124823d118c99683f" +checksum = "356a0625f1954f730c0201cdab48611198dc6ce21f4acff55089b5a78e6e835b" dependencies = [ "crossbeam-channel", "crossbeam-deque", @@ -6049,6 +6711,31 @@ dependencies = [ "num_cpus", ] +[[package]] +name = "rcgen" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6413f3de1edee53342e6138e75b56d32e7bc6e332b3bd62d497b1929d4cfbcdd" +dependencies = [ + "pem", + "ring", + "time 0.3.20", + "x509-parser 0.13.2", + "yasna", +] + +[[package]] +name = "rcgen" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffbe84efe2f38dea12e9bfc1f65377fdf03e53a18cb3b995faedf7934c7e785b" +dependencies = [ + "pem", + "ring", + "time 0.3.20", + "yasna", +] + [[package]] name = "redox_syscall" version = "0.2.16" @@ -6064,25 +6751,25 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b" dependencies = [ - "getrandom 0.2.7", + "getrandom 0.2.8", "redox_syscall", "thiserror", ] [[package]] name = "ref-cast" -version = "1.0.10" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8ebf632f3e32bf35133f620cf481f29c99ae0fb01450fd3d85eee0225274ec1" +checksum = "8c78fb8c9293bcd48ef6fce7b4ca950ceaf21210de6e105a883ee280c0f7b9ed" dependencies = [ "ref-cast-impl", ] [[package]] name = "ref-cast-impl" -version = "1.0.10" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "caab98faa75ce294d40512ce514a46b15eafe78d72c9397a68ea45b3a88201b6" +checksum = "9f9c0c92af03644e4806106281fe2e068ac5bc0ae74a707266d06ea27bccee5f" dependencies = [ "proc-macro2", "quote", @@ -6090,21 +6777,22 @@ dependencies = [ ] [[package]] -name = "regalloc" -version = "0.0.34" +name = "regalloc2" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62446b1d3ebf980bdc68837700af1d77b37bc430e524bf95319c6eada2a4cc02" +checksum = "300d4fbfb40c1c66a78ba3ddd41c1110247cf52f97b87d0f2fc9209bd49b030c" dependencies = [ + "fxhash", "log", - "rustc-hash", + "slice-group-by", "smallvec", ] [[package]] name = "regex" -version = "1.6.0" +version = "1.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c4eb3267174b8c6c2f654116623910a0fef09c4753f8dd83db29c48a0df988b" +checksum = "48aaa5748ba571fb95cd2c85c09f629215d3a6ece942baa100950af03a34f733" dependencies = [ "aho-corasick", "memchr", @@ -6122,15 +6810,15 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.6.27" +version = "0.6.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3f87b73ce11b1619a3c6332f45341e0047173771e8b8b73f87bfeefb7b56244" +checksum = "456c603be3e8d448b072f410900c09faf164fbce2d480456f50eea6e25f9c848" [[package]] name = "region" -version = "2.2.0" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "877e54ea2adcd70d80e9179344c97f93ef0dffd6b03e1f4529e6e83ab2fa9ae0" +checksum = "76e189c2369884dce920945e2ddf79b3dff49e071a167dd1817fa9c4c00d512e" dependencies = [ "bitflags", "libc", @@ -6138,32 +6826,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "remote-externalities" -version = "0.10.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" -dependencies = [ - "env_logger", - "jsonrpsee", - "log", - "parity-scale-codec", - "serde", - "serde_json", - "sp-core", - "sp-io", - "sp-runtime", - "sp-version", -] - -[[package]] -name = "remove_dir_all" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7" -dependencies = [ - "winapi", -] - [[package]] name = "resolv-conf" version = "0.7.0" @@ -6174,20 +6836,14 @@ dependencies = [ "quick-error", ] -[[package]] -name = "retain_mut" -version = "0.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4389f1d5789befaf6029ebd9f7dac4af7f7e3d61b69d4f30e2ac02b57e7712b0" - [[package]] name = "rfc6979" -version = "0.1.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96ef608575f6392792f9ecf7890c00086591d29a83910939d430753f7c050525" +checksum = "7743f17af12fa0b03b803ba12cd6a8d9483a587e89c69445e3909655c0b9fabb" dependencies = [ "crypto-bigint", - "hmac 0.11.0", + "hmac 0.12.1", "zeroize", ] @@ -6208,9 +6864,9 @@ dependencies = [ [[package]] name = "rocksdb" -version = "0.18.0" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "620f4129485ff1a7128d184bc687470c21c7951b64779ebc9cfdad3dcd920290" +checksum = "7e9562ea1d70c0cc63a34a22d977753b50cca91cc6b6527750463bd5dd8697bc" dependencies = [ "libc", "librocksdb-sys", @@ -6218,27 +6874,63 @@ dependencies = [ [[package]] name = "rpassword" -version = "5.0.1" +version = "7.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffc936cf8a7ea60c58f030fd36a612a48f440610214dc54bc36431f9ea0c3efb" +checksum = "6678cf63ab3491898c0d021b493c94c9b221d91295294a2a5746eacbe5928322" dependencies = [ "libc", + "rtoolbox", "winapi", ] +[[package]] +name = "rtcp" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1919efd6d4a6a85d13388f9487549bb8e359f17198cc03ffd72f79b553873691" +dependencies = [ + "bytes", + "thiserror", + "webrtc-util", +] + [[package]] name = "rtnetlink" version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "322c53fd76a18698f1c27381d58091de3a043d356aa5bd0d510608b565f469a0" dependencies = [ - "async-global-executor", "futures", "log", "netlink-packet-route", "netlink-proto", - "nix 0.24.2", + "nix 0.24.3", + "thiserror", + "tokio", +] + +[[package]] +name = "rtoolbox" +version = "0.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "034e22c514f5c0cb8a10ff341b9b048b5ceb21591f31c8f44c43b960f9b3524a" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "rtp" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2a095411ff00eed7b12e4c6a118ba984d113e1079582570d56a5ee723f11f80" +dependencies = [ + "async-trait", + "bytes", + "rand 0.8.5", + "serde", "thiserror", + "webrtc-util", ] [[package]] @@ -6274,33 +6966,55 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" dependencies = [ - "semver 1.0.14", + "semver 1.0.16", +] + +[[package]] +name = "rusticata-macros" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "faf0c4a6ece9950b9abdb62b1cfcf2a68b3b67a10ba445b3bb85be2a293d0632" +dependencies = [ + "nom", ] [[package]] name = "rustix" -version = "0.33.7" +version = "0.36.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "938a344304321a9da4973b9ff4f9f8db9caf4597dfd9dda6a60b523340a0fff0" +checksum = "f43abb88211988493c1abb44a70efa56ff0ce98f233b7b276146f1f3f7ba9644" dependencies = [ "bitflags", "errno", "io-lifetimes", "libc", "linux-raw-sys", - "winapi", + "windows-sys 0.45.0", +] + +[[package]] +name = "rustls" +version = "0.19.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35edb675feee39aec9c99fa5ff985081995a06d594114ae14cbe797ad7b7a6d7" +dependencies = [ + "base64 0.13.1", + "log", + "ring", + "sct 0.6.1", + "webpki 0.21.4", ] [[package]] name = "rustls" -version = "0.20.6" +version = "0.20.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aab8ee6c7097ed6057f43c187a62418d0c05a4bd5f18b3571db50ee0f9ce033" +checksum = "fff78fc74d175294f4e83b28343315ffcfb114b156f0185e9741cb5570f50e2f" dependencies = [ "log", "ring", - "sct", - "webpki", + "sct 0.7.0", + "webpki 0.22.0", ] [[package]] @@ -6317,29 +7031,18 @@ dependencies = [ [[package]] name = "rustls-pemfile" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0864aeff53f8c05aa08d86e5ef839d3dfcf07aeba2db32f12db0ef716e87bd55" +checksum = "d194b56d58803a43635bdc398cd17e383d6f71f9182b9a192c127ca42494a59b" dependencies = [ - "base64", + "base64 0.21.0", ] [[package]] name = "rustversion" -version = "1.0.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97477e48b4cf8603ad5f7aaf897467cf42ab4218a38ef76fb14c2d6773a6d6a8" - -[[package]] -name = "rw-stream-sink" -version = "0.2.1" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4da5fcb054c46f5a5dff833b129285a93d3f0179531735e6c866e8cc307d2020" -dependencies = [ - "futures", - "pin-project 0.4.30", - "static_assertions", -] +checksum = "5583e89e108996506031660fe09baa5011b9dd0341b89029313006d1fb508d70" [[package]] name = "rw-stream-sink" @@ -6348,15 +7051,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "26338f5e09bb721b85b135ea05af7767c90b52f6de4f087d4f4a3a9d64e7dc04" dependencies = [ "futures", - "pin-project 1.0.12", + "pin-project", "static_assertions", ] [[package]] name = "ryu" -version = "1.0.11" +version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4501abdff3ae82a1c1b477a17252eb69cee9e66eb915c1abaa4f44d873df9f09" +checksum = "7b4b9743ed687d4b4bcedf9ff5eaa7398495ae14e61cba0a295704edbc7decde" [[package]] name = "safe-mix" @@ -6368,12 +7071,12 @@ dependencies = [ ] [[package]] -name = "salsa20" -version = "0.9.0" +name = "safe_arch" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c0fbb5f676da676c260ba276a8f43a8dc67cf02d1438423aeb1c677a7212686" +checksum = "794821e4ccb0d9f979512f9c1973480123f9bd62a90d74ab0f9426fcf8f4a529" dependencies = [ - "cipher", + "bytemuck", ] [[package]] @@ -6388,7 +7091,7 @@ dependencies = [ [[package]] name = "sc-allocator" version = "4.1.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "log", "sp-core", @@ -6399,7 +7102,7 @@ dependencies = [ [[package]] name = "sc-authority-discovery" version = "0.10.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "async-trait", "futures", @@ -6408,11 +7111,11 @@ dependencies = [ "libp2p", "log", "parity-scale-codec", - "prost 0.10.4", - "prost-build 0.9.0", - "rand 0.7.3", + "prost", + "prost-build", + "rand 0.8.5", "sc-client-api", - "sc-network", + "sc-network-common", "sp-api", "sp-authority-discovery", "sp-blockchain", @@ -6426,7 +7129,7 @@ dependencies = [ [[package]] name = "sc-basic-authorship" version = "0.10.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "futures", "futures-timer", @@ -6449,7 +7152,7 @@ dependencies = [ [[package]] name = "sc-block-builder" version = "0.10.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "parity-scale-codec", "sc-client-api", @@ -6465,13 +7168,11 @@ dependencies = [ [[package]] name = "sc-chain-spec" version = "4.0.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ - "impl-trait-for-tuples", "memmap2", - "parity-scale-codec", "sc-chain-spec-derive", - "sc-network", + "sc-network-common", "sc-telemetry", "serde", "serde_json", @@ -6482,7 +7183,7 @@ dependencies = [ [[package]] name = "sc-chain-spec-derive" version = "4.0.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -6493,24 +7194,25 @@ dependencies = [ [[package]] name = "sc-cli" version = "0.10.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ + "array-bytes", "chrono", - "clap 3.2.22", + "clap 4.1.8", "fdlimit", "futures", - "hex", "libp2p", "log", "names", "parity-scale-codec", - "rand 0.7.3", + "rand 0.8.5", "regex", "rpassword", "sc-client-api", "sc-client-db", "sc-keystore", "sc-network", + "sc-network-common", "sc-service", "sc-telemetry", "sc-tracing", @@ -6532,11 +7234,10 @@ dependencies = [ [[package]] name = "sc-client-api" version = "4.0.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "fnv", "futures", - "hash-db", "log", "parity-scale-codec", "parking_lot 0.12.1", @@ -6553,14 +7254,13 @@ dependencies = [ "sp-runtime", "sp-state-machine", "sp-storage", - "sp-trie", "substrate-prometheus-endpoint", ] [[package]] name = "sc-client-db" version = "0.10.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "hash-db", "kvdb", @@ -6573,6 +7273,7 @@ dependencies = [ "parking_lot 0.12.1", "sc-client-api", "sc-state-db", + "schnellru", "sp-arithmetic", "sp-blockchain", "sp-core", @@ -6585,13 +7286,14 @@ dependencies = [ [[package]] name = "sc-consensus" version = "0.10.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "async-trait", "futures", "futures-timer", "libp2p", "log", + "mockall", "parking_lot 0.12.1", "sc-client-api", "sc-utils", @@ -6609,7 +7311,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "async-trait", "fork-tree", @@ -6617,20 +7319,18 @@ dependencies = [ "log", "merlin", "num-bigint", - "num-rational 0.2.4", + "num-rational", "num-traits", "parity-scale-codec", "parking_lot 0.12.1", - "rand 0.7.3", - "retain_mut", "sc-client-api", "sc-consensus", "sc-consensus-epochs", "sc-consensus-slots", "sc-keystore", "sc-telemetry", + "scale-info", "schnorrkel", - "serde", "sp-api", "sp-application-crypto", "sp-block-builder", @@ -6641,10 +7341,8 @@ dependencies = [ "sp-consensus-vrf", "sp-core", "sp-inherents", - "sp-io", "sp-keystore", "sp-runtime", - "sp-version", "substrate-prometheus-endpoint", "thiserror", ] @@ -6652,10 +7350,10 @@ dependencies = [ [[package]] name = "sc-consensus-babe-rpc" version = "0.10.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "futures", - "jsonrpsee", + "jsonrpsee 0.16.2", "sc-consensus-babe", "sc-consensus-epochs", "sc-rpc-api", @@ -6674,7 +7372,7 @@ dependencies = [ [[package]] name = "sc-consensus-epochs" version = "0.10.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "fork-tree", "parity-scale-codec", @@ -6687,7 +7385,7 @@ dependencies = [ [[package]] name = "sc-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "async-trait", "futures", @@ -6705,27 +7403,13 @@ dependencies = [ "sp-inherents", "sp-runtime", "sp-state-machine", - "sp-timestamp", - "thiserror", -] - -[[package]] -name = "sc-consensus-uncles" -version = "0.10.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" -dependencies = [ - "sc-client-api", - "sp-authorship", - "sp-runtime", - "thiserror", ] [[package]] name = "sc-executor" version = "0.10.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ - "lazy_static", "lru", "parity-scale-codec", "parking_lot 0.12.1", @@ -6734,12 +7418,10 @@ dependencies = [ "sc-executor-wasmtime", "sp-api", "sp-core", - "sp-core-hashing-proc-macro", "sp-externalities", "sp-io", "sp-panic-handler", "sp-runtime-interface", - "sp-tasks", "sp-trie", "sp-version", "sp-wasm-interface", @@ -6750,14 +7432,10 @@ dependencies = [ [[package]] name = "sc-executor-common" version = "0.10.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ - "environmental", - "parity-scale-codec", "sc-allocator", "sp-maybe-compressed-blob", - "sp-sandbox", - "sp-serializer", "sp-wasm-interface", "thiserror", "wasm-instrument", @@ -6767,14 +7445,12 @@ dependencies = [ [[package]] name = "sc-executor-wasmi" version = "0.10.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "log", - "parity-scale-codec", "sc-allocator", "sc-executor-common", "sp-runtime-interface", - "sp-sandbox", "sp-wasm-interface", "wasmi", ] @@ -6782,17 +7458,17 @@ dependencies = [ [[package]] name = "sc-executor-wasmtime" version = "0.10.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ + "anyhow", "cfg-if", "libc", "log", - "parity-scale-codec", - "parity-wasm 0.42.2", + "once_cell", + "rustix", "sc-allocator", "sc-executor-common", "sp-runtime-interface", - "sp-sandbox", "sp-wasm-interface", "wasmtime", ] @@ -6800,16 +7476,16 @@ dependencies = [ [[package]] name = "sc-finality-grandpa" version = "0.10.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ - "ahash", + "ahash 0.8.3", + "array-bytes", "async-trait", "dyn-clone", "finality-grandpa", "fork-tree", "futures", "futures-timer", - "hex", "log", "parity-scale-codec", "parking_lot 0.12.1", @@ -6818,8 +7494,8 @@ dependencies = [ "sc-chain-spec", "sc-client-api", "sc-consensus", - "sc-keystore", "sc-network", + "sc-network-common", "sc-network-gossip", "sc-telemetry", "sc-utils", @@ -6840,18 +7516,17 @@ dependencies = [ [[package]] name = "sc-finality-grandpa-rpc" version = "0.10.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "finality-grandpa", "futures", - "jsonrpsee", + "jsonrpsee 0.16.2", "log", "parity-scale-codec", "sc-client-api", "sc-finality-grandpa", "sc-rpc", "serde", - "serde_json", "sp-blockchain", "sp-core", "sp-runtime", @@ -6861,16 +7536,14 @@ dependencies = [ [[package]] name = "sc-informant" version = "0.10.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "ansi_term", "futures", "futures-timer", "log", - "parity-util-mem", "sc-client-api", - "sc-network", - "sc-transaction-pool-api", + "sc-network-common", "sp-blockchain", "sp-runtime", ] @@ -6878,10 +7551,10 @@ dependencies = [ [[package]] name = "sc-keystore" version = "4.0.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ + "array-bytes", "async-trait", - "hex", "parking_lot 0.12.1", "serde_json", "sp-application-crypto", @@ -6893,37 +7566,30 @@ dependencies = [ [[package]] name = "sc-network" version = "0.10.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ + "array-bytes", "async-trait", "asynchronous-codec", - "bitflags", + "backtrace", "bytes", - "cid", "either", "fnv", - "fork-tree", "futures", "futures-timer", - "hex", "ip_network", "libp2p", - "linked-hash-map", - "linked_hash_set", "log", "lru", + "mockall", "parity-scale-codec", "parking_lot 0.12.1", - "pin-project 1.0.12", - "prost 0.10.4", - "prost-build 0.9.0", - "rand 0.7.3", + "pin-project", + "rand 0.8.5", "sc-block-builder", "sc-client-api", "sc-consensus", "sc-network-common", - "sc-network-light", - "sc-network-sync", "sc-peerset", "sc-utils", "serde", @@ -6933,40 +7599,71 @@ dependencies = [ "sp-blockchain", "sp-consensus", "sp-core", - "sp-finality-grandpa", "sp-runtime", "substrate-prometheus-endpoint", "thiserror", "unsigned-varint", - "void", "zeroize", ] +[[package]] +name = "sc-network-bitswap" +version = "0.10.0-dev" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" +dependencies = [ + "cid", + "futures", + "libp2p", + "log", + "prost", + "prost-build", + "sc-client-api", + "sc-network-common", + "sp-blockchain", + "sp-runtime", + "thiserror", + "unsigned-varint", +] + [[package]] name = "sc-network-common" version = "0.10.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ + "async-trait", + "bitflags", + "bytes", "futures", + "futures-timer", "libp2p", + "linked_hash_set", "parity-scale-codec", - "prost-build 0.9.0", + "prost-build", + "sc-consensus", "sc-peerset", + "serde", "smallvec", + "sp-blockchain", + "sp-consensus", + "sp-finality-grandpa", + "sp-runtime", + "substrate-prometheus-endpoint", + "thiserror", ] [[package]] name = "sc-network-gossip" version = "0.10.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ - "ahash", + "ahash 0.8.3", "futures", "futures-timer", "libp2p", "log", "lru", - "sc-network", + "sc-network-common", + "sc-peerset", "sp-runtime", "substrate-prometheus-endpoint", "tracing", @@ -6975,14 +7672,15 @@ dependencies = [ [[package]] name = "sc-network-light" version = "0.10.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ + "array-bytes", "futures", "libp2p", "log", "parity-scale-codec", - "prost 0.10.4", - "prost-build 0.9.0", + "prost", + "prost-build", "sc-client-api", "sc-network-common", "sc-peerset", @@ -6995,22 +7693,24 @@ dependencies = [ [[package]] name = "sc-network-sync" version = "0.10.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ - "bitflags", - "either", + "array-bytes", + "async-trait", "fork-tree", "futures", "libp2p", "log", "lru", + "mockall", "parity-scale-codec", - "prost 0.10.4", - "prost-build 0.9.0", + "prost", + "prost-build", "sc-client-api", "sc-consensus", "sc-network-common", "sc-peerset", + "sc-utils", "smallvec", "sp-arithmetic", "sp-blockchain", @@ -7018,28 +7718,50 @@ dependencies = [ "sp-core", "sp-finality-grandpa", "sp-runtime", + "substrate-prometheus-endpoint", "thiserror", ] +[[package]] +name = "sc-network-transactions" +version = "0.10.0-dev" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" +dependencies = [ + "array-bytes", + "futures", + "libp2p", + "log", + "parity-scale-codec", + "pin-project", + "sc-network-common", + "sc-peerset", + "sc-utils", + "sp-consensus", + "sp-runtime", + "substrate-prometheus-endpoint", +] + [[package]] name = "sc-offchain" version = "4.0.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ + "array-bytes", "bytes", "fnv", "futures", "futures-timer", - "hex", "hyper", "hyper-rustls", + "libp2p", "num_cpus", "once_cell", "parity-scale-codec", "parking_lot 0.12.1", - "rand 0.7.3", + "rand 0.8.5", "sc-client-api", - "sc-network", + "sc-network-common", + "sc-peerset", "sc-utils", "sp-api", "sp-core", @@ -7052,7 +7774,7 @@ dependencies = [ [[package]] name = "sc-peerset" version = "4.0.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "futures", "libp2p", @@ -7065,7 +7787,7 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" version = "0.10.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -7074,11 +7796,10 @@ dependencies = [ [[package]] name = "sc-rpc" version = "4.0.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "futures", - "hash-db", - "jsonrpsee", + "jsonrpsee 0.16.2", "log", "parity-scale-codec", "parking_lot 0.12.1", @@ -7099,18 +7820,16 @@ dependencies = [ "sp-runtime", "sp-session", "sp-version", + "tokio", ] [[package]] name = "sc-rpc-api" version = "0.10.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ - "futures", - "jsonrpsee", - "log", + "jsonrpsee 0.16.2", "parity-scale-codec", - "parking_lot 0.12.1", "sc-chain-spec", "sc-transaction-pool-api", "scale-info", @@ -7119,7 +7838,6 @@ dependencies = [ "sp-core", "sp-rpc", "sp-runtime", - "sp-tracing", "sp-version", "thiserror", ] @@ -7127,34 +7845,60 @@ dependencies = [ [[package]] name = "sc-rpc-server" version = "4.0.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ - "futures", - "jsonrpsee", + "http", + "jsonrpsee 0.16.2", "log", "serde_json", "substrate-prometheus-endpoint", "tokio", + "tower", + "tower-http", +] + +[[package]] +name = "sc-rpc-spec-v2" +version = "0.10.0-dev" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" +dependencies = [ + "array-bytes", + "futures", + "futures-util", + "hex", + "jsonrpsee 0.16.2", + "log", + "parity-scale-codec", + "parking_lot 0.12.1", + "sc-chain-spec", + "sc-client-api", + "sc-transaction-pool-api", + "serde", + "sp-api", + "sp-blockchain", + "sp-core", + "sp-runtime", + "sp-version", + "thiserror", + "tokio-stream", ] [[package]] name = "sc-service" version = "0.10.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "async-trait", "directories", "exit-future", "futures", "futures-timer", - "hash-db", - "jsonrpsee", + "jsonrpsee 0.16.2", "log", "parity-scale-codec", - "parity-util-mem", "parking_lot 0.12.1", - "pin-project 1.0.12", - "rand 0.7.3", + "pin-project", + "rand 0.8.5", "sc-block-builder", "sc-chain-spec", "sc-client-api", @@ -7164,10 +7908,16 @@ dependencies = [ "sc-informant", "sc-keystore", "sc-network", + "sc-network-bitswap", "sc-network-common", + "sc-network-light", + "sc-network-sync", + "sc-network-transactions", "sc-offchain", "sc-rpc", "sc-rpc-server", + "sc-rpc-spec-v2", + "sc-storage-monitor", "sc-sysinfo", "sc-telemetry", "sc-tracing", @@ -7177,23 +7927,20 @@ dependencies = [ "serde", "serde_json", "sp-api", - "sp-application-crypto", - "sp-block-builder", "sp-blockchain", "sp-consensus", "sp-core", "sp-externalities", - "sp-inherents", "sp-keystore", "sp-runtime", "sp-session", "sp-state-machine", "sp-storage", - "sp-tracing", "sp-transaction-pool", "sp-transaction-storage-proof", "sp-trie", "sp-version", + "static_init", "substrate-prometheus-endpoint", "tempfile", "thiserror", @@ -7205,12 +7952,11 @@ dependencies = [ [[package]] name = "sc-service-test" version = "2.0.0" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ + "array-bytes", "fdlimit", "futures", - "hex", - "hex-literal", "log", "parity-scale-codec", "parking_lot 0.12.1", @@ -7220,14 +7966,14 @@ dependencies = [ "sc-consensus", "sc-executor", "sc-network", + "sc-network-common", "sc-service", "sc-transaction-pool-api", "sp-api", "sp-blockchain", "sp-consensus", "sp-core", - "sp-externalities", - "sp-panic-handler", + "sp-io", "sp-runtime", "sp-state-machine", "sp-storage", @@ -7242,23 +7988,36 @@ dependencies = [ [[package]] name = "sc-state-db" version = "0.10.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "log", "parity-scale-codec", - "parity-util-mem", - "parity-util-mem-derive", "parking_lot 0.12.1", - "sc-client-api", "sp-core", ] +[[package]] +name = "sc-storage-monitor" +version = "0.1.0" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" +dependencies = [ + "clap 4.1.8", + "futures", + "log", + "nix 0.26.2", + "sc-client-db", + "sc-utils", + "sp-core", + "thiserror", + "tokio", +] + [[package]] name = "sc-sync-state-rpc" version = "0.10.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ - "jsonrpsee", + "jsonrpsee 0.16.2", "parity-scale-codec", "sc-chain-spec", "sc-client-api", @@ -7275,13 +8034,13 @@ dependencies = [ [[package]] name = "sc-sysinfo" version = "6.0.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "futures", "libc", "log", - "rand 0.7.3", - "rand_pcg 0.2.1", + "rand 0.8.5", + "rand_pcg", "regex", "sc-telemetry", "serde", @@ -7294,15 +8053,16 @@ dependencies = [ [[package]] name = "sc-telemetry" version = "4.0.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "chrono", "futures", "libp2p", "log", "parking_lot 0.12.1", - "pin-project 1.0.12", - "rand 0.7.3", + "pin-project", + "rand 0.8.5", + "sc-utils", "serde", "serde_json", "thiserror", @@ -7312,7 +8072,7 @@ dependencies = [ [[package]] name = "sc-tracing" version = "4.0.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "ansi_term", "atty", @@ -7343,7 +8103,7 @@ dependencies = [ [[package]] name = "sc-tracing-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -7354,16 +8114,16 @@ dependencies = [ [[package]] name = "sc-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ + "async-trait", "futures", "futures-timer", "linked-hash-map", "log", + "num-traits", "parity-scale-codec", - "parity-util-mem", "parking_lot 0.12.1", - "retain_mut", "sc-client-api", "sc-transaction-pool-api", "sc-utils", @@ -7381,8 +8141,9 @@ dependencies = [ [[package]] name = "sc-transaction-pool-api" version = "4.0.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ + "async-trait", "futures", "log", "serde", @@ -7394,8 +8155,9 @@ dependencies = [ [[package]] name = "sc-utils" version = "4.0.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ + "backtrace", "futures", "futures-timer", "lazy_static", @@ -7406,9 +8168,9 @@ dependencies = [ [[package]] name = "scale-info" -version = "2.2.0" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "333af15b02563b8182cd863f925bd31ef8fa86a0e095d30c091956057d436153" +checksum = "001cf62ece89779fd16105b5f515ad0e5cedcd5440d3dd806bb067978e7c3608" dependencies = [ "bitvec", "cfg-if", @@ -7420,9 +8182,9 @@ dependencies = [ [[package]] name = "scale-info-derive" -version = "2.2.0" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53f56acbd0743d29ffa08f911ab5397def774ad01bab3786804cf6ee057fb5e1" +checksum = "303959cf613a6f6efd19ed4b4ad5bf79966a13352716299ad532cfb115f4205c" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -7432,12 +8194,22 @@ dependencies = [ [[package]] name = "schannel" -version = "0.1.20" +version = "0.1.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88d6731146462ea25d9244b2ed5fd1d716d25c52e4d54aa4fb0f3c4e9854dbe2" +checksum = "713cfb06c7059f3588fb8044c0fad1d09e3c01d225e25b9220dbfdcf16dbb1b3" dependencies = [ - "lazy_static", - "windows-sys", + "windows-sys 0.42.0", +] + +[[package]] +name = "schnellru" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "772575a524feeb803e5b0fcbc6dd9f367e579488197c94c6e4023aad2305774d" +dependencies = [ + "ahash 0.8.3", + "cfg-if", + "hashbrown 0.13.2", ] [[package]] @@ -7466,9 +8238,19 @@ checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" [[package]] name = "scratch" -version = "1.0.2" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ddccb15bcce173023b3fedd9436f882a0739b8dfb45e4f6b6002bee5929f61b2" + +[[package]] +name = "sct" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8132065adcfd6e02db789d9285a0deb2f3fcb04002865ab67d5fb103533898" +checksum = "b362b83898e0e69f38515b82ee15aa80636befe47c3b6d3d89a911e78fc228ce" +dependencies = [ + "ring", + "untrusted", +] [[package]] name = "sct" @@ -7480,32 +8262,46 @@ dependencies = [ "untrusted", ] +[[package]] +name = "sdp" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d22a5ef407871893fd72b4562ee15e4742269b173959db4b8df6f538c414e13" +dependencies = [ + "rand 0.8.5", + "substring", + "thiserror", + "url", +] + [[package]] name = "sec1" -version = "0.2.1" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08da66b8b0965a5555b6bd6639e68ccba85e1e2506f5fbb089e93f8a04e1a2d1" +checksum = "3be24c1842290c45df0a7bf069e0c268a747ad05a192f2fd7dcfdbc1cba40928" dependencies = [ + "base16ct", "der", "generic-array 0.14.6", + "pkcs8", "subtle", "zeroize", ] [[package]] name = "secp256k1" -version = "0.21.3" +version = "0.24.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c42e6f1735c5f00f51e43e28d6634141f2bcad10931b2609ddd74a86d751260" +checksum = "6b1629c9c557ef9b293568b338dddfc8208c98a18c59d722a9d53f859d9c9b62" dependencies = [ "secp256k1-sys", ] [[package]] name = "secp256k1-sys" -version = "0.4.2" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "957da2573cde917463ece3570eab4a0b3f19de6f1646cde62e6fd3868f566036" +checksum = "83080e2c2fc1006e625be82e5d1eb6a43b7fd9578b617fcc55814daf286bba4b" dependencies = [ "cc", ] @@ -7521,9 +8317,9 @@ dependencies = [ [[package]] name = "security-framework" -version = "2.7.0" +version = "2.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bc1bb97804af6631813c55739f771071e0f2ed33ee20b68c86ec505d906356c" +checksum = "a332be01508d814fed64bf28f798a146d73792121129962fdf335bb3c49a4254" dependencies = [ "bitflags", "core-foundation", @@ -7534,9 +8330,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.6.1" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0160a13a177a45bfb43ce71c01580998474f556ad854dcbca936dd2841a5c556" +checksum = "31c9bb296072e961fcbd8853511dd39c2d8be2deb1e17c6860b1d30732b323b4" dependencies = [ "core-foundation-sys", "libc", @@ -7562,9 +8358,9 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.14" +version = "1.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e25dfac463d778e353db5be2449d1cce89bd6fd23c9f1ea21310ce6e5a1b29c4" +checksum = "58bc9567378fc7690d6b2addae4e60ac2eeea07becb2c64b9f218b53865cba2a" dependencies = [ "serde", ] @@ -7577,9 +8373,9 @@ checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" [[package]] name = "serde" -version = "1.0.145" +version = "1.0.152" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "728eb6351430bccb993660dfffc5a72f91ccc1295abaa8ce19b27ebe4f75568b" +checksum = "bb7d1f0d3021d347a83e556fc4683dea2ea09d87bccdf88ff5c12545d89d5efb" dependencies = [ "serde_derive", ] @@ -7596,9 +8392,9 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.145" +version = "1.0.152" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81fa1584d3d1bcacd84c277a0dfe21f5b0f6accf4a23d04d4c6d61f1af522b4c" +checksum = "af487d118eecd09402d70a5d72551860e788df87b464af30e5ea6a38c75c541e" dependencies = [ "proc-macro2", "quote", @@ -7618,30 +8414,21 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.86" +version = "1.0.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41feea4228a6f1cd09ec7a3593a682276702cd67b5273544757dae23c096f074" +checksum = "cad406b69c91885b5107daf2c29572f6c8cdb3c66826821e286c533490c0bc76" dependencies = [ - "itoa 1.0.4", + "itoa", "ryu", "serde", ] -[[package]] -name = "serde_nanos" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e44969a61f5d316be20a42ff97816efb3b407a924d06824c3d8a49fa8450de0e" -dependencies = [ - "serde", -] - [[package]] name = "session-keys" version = "1.0.0" dependencies = [ "async-std", - "clap 3.2.22", + "clap 3.2.23", "enum-utils", "futures-util", "joystream-node", @@ -7675,7 +8462,7 @@ checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3" dependencies = [ "cfg-if", "cpufeatures", - "digest 0.10.5", + "digest 0.10.6", ] [[package]] @@ -7711,28 +8498,16 @@ checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0" dependencies = [ "cfg-if", "cpufeatures", - "digest 0.10.5", -] - -[[package]] -name = "sha3" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f81199417d4e5de3f04b1e871023acea7389672c4135918f05aa9cbf2f2fa809" -dependencies = [ - "block-buffer 0.9.0", - "digest 0.9.0", - "keccak", - "opaque-debug 0.3.0", + "digest 0.10.6", ] [[package]] name = "sha3" -version = "0.10.5" +version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2904bea16a1ae962b483322a1c7b81d976029203aea1f461e51cd7705db7ba9" +checksum = "bdf0c33fae925bdc080598b84bc15c55e7b9a4a43b3c704da051f977469691c9" dependencies = [ - "digest 0.10.5", + "digest 0.10.6", "keccak", ] @@ -7751,56 +8526,53 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "43b2853a4d09f215c24cc5489c992ce46052d359b5109343cbafbf26bc62f8a3" -[[package]] -name = "signal-hook" -version = "0.3.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a253b5e89e2698464fc26b545c9edceb338e18a89effeeecfea192c3025be29d" -dependencies = [ - "libc", - "signal-hook-registry", -] - [[package]] name = "signal-hook-registry" -version = "1.4.0" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e51e73328dc4ac0c7ccbda3a494dfa03df1de2f46018127f60c693f2648455b0" +checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" dependencies = [ "libc", ] [[package]] name = "signature" -version = "1.4.0" +version = "1.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02658e48d89f2bec991f9a78e69cfa4c316f8d6a6c4ec12fae1aeb263d486788" +checksum = "74233d3b3b2f6d4b006dc19dee745e73e2a6bfb6f93607cd3b02bd5b00797d7c" dependencies = [ - "digest 0.9.0", + "digest 0.10.6", "rand_core 0.6.4", ] [[package]] name = "simba" -version = "0.5.1" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e82063457853d00243beda9952e910b82593e4b07ae9f721b9278a99a0d3d5c" +checksum = "50582927ed6f77e4ac020c057f37a268fc6aebc29225050365aacbb9deeeddc4" dependencies = [ "approx", "num-complex", "num-traits", - "paste 1.0.9", + "paste 1.0.11", + "wide", ] [[package]] name = "slab" -version = "0.4.7" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef" +checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d" dependencies = [ "autocfg", ] +[[package]] +name = "slice-group-by" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03b634d87b960ab1a38c4fe143b508576f075e7c978bfad18217645ebfdfa2ec" + [[package]] name = "smallvec" version = "1.10.0" @@ -7809,20 +8581,20 @@ checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" [[package]] name = "snap" -version = "1.0.5" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45456094d1983e2ee2a18fdfebce3189fa451699d0502cb8e3b49dba5ba41451" +checksum = "5e9f0ab6ef7eb7353d9119c170a436d1bf248eea575ac42d19d12f4e34130831" [[package]] name = "snow" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "774d05a3edae07ce6d68ea6984f3c05e9bba8927e3dd591e3b479e5b03213d0d" +checksum = "12ba5f4d4ff12bdb6a169ed51b7c48c0e0ac4b0b4b31012b2571e97d78d3201d" dependencies = [ - "aes-gcm", + "aes-gcm 0.9.4", "blake2", "chacha20poly1305", - "curve25519-dalek 4.0.0-pre.1", + "curve25519-dalek 4.0.0-rc.0", "rand_core 0.6.4", "ring", "rustc_version 0.4.0", @@ -7846,10 +8618,11 @@ version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "41d1c5305e39e09653383c2c7244f2f78b3bcae37cf50c64cb4789c9f5096ec2" dependencies = [ - "base64", + "base64 0.13.1", "bytes", "flate2", "futures", + "http", "httparse", "log", "rand 0.8.5", @@ -7859,7 +8632,7 @@ dependencies = [ [[package]] name = "sp-api" version = "4.0.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "hash-db", "log", @@ -7869,6 +8642,7 @@ dependencies = [ "sp-runtime", "sp-state-machine", "sp-std", + "sp-trie", "sp-version", "thiserror", ] @@ -7876,7 +8650,7 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "blake2", "proc-macro-crate", @@ -7887,8 +8661,8 @@ dependencies = [ [[package]] name = "sp-application-crypto" -version = "6.0.0" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +version = "7.0.0" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "parity-scale-codec", "scale-info", @@ -7900,15 +8674,14 @@ dependencies = [ [[package]] name = "sp-arithmetic" -version = "5.0.0" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +version = "6.0.0" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "integer-sqrt", "num-traits", "parity-scale-codec", "scale-info", "serde", - "sp-debug-derive", "sp-std", "static_assertions", ] @@ -7916,7 +8689,7 @@ dependencies = [ [[package]] name = "sp-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "parity-scale-codec", "scale-info", @@ -7927,21 +8700,28 @@ dependencies = [ ] [[package]] -name = "sp-authorship" +name = "sp-beefy" version = "4.0.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ - "async-trait", + "lazy_static", "parity-scale-codec", - "sp-inherents", + "scale-info", + "serde", + "sp-api", + "sp-application-crypto", + "sp-core", + "sp-io", + "sp-mmr-primitives", "sp-runtime", "sp-std", + "strum 0.24.1", ] [[package]] name = "sp-block-builder" version = "4.0.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "parity-scale-codec", "sp-api", @@ -7953,7 +8733,7 @@ dependencies = [ [[package]] name = "sp-blockchain" version = "4.0.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "futures", "log", @@ -7971,11 +8751,10 @@ dependencies = [ [[package]] name = "sp-consensus" version = "0.10.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "async-trait", "futures", - "futures-timer", "log", "parity-scale-codec", "sp-core", @@ -7990,7 +8769,7 @@ dependencies = [ [[package]] name = "sp-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "async-trait", "parity-scale-codec", @@ -8008,7 +8787,7 @@ dependencies = [ [[package]] name = "sp-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "async-trait", "merlin", @@ -8031,13 +8810,11 @@ dependencies = [ [[package]] name = "sp-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-arithmetic", - "sp-runtime", "sp-std", "sp-timestamp", ] @@ -8045,7 +8822,7 @@ dependencies = [ [[package]] name = "sp-consensus-vrf" version = "0.10.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "parity-scale-codec", "scale-info", @@ -8057,30 +8834,28 @@ dependencies = [ [[package]] name = "sp-core" -version = "6.0.0" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +version = "7.0.0" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ + "array-bytes", "base58", "bitflags", - "blake2-rfc", - "byteorder", + "blake2", + "bounded-collections", "dyn-clonable", - "ed25519-dalek", + "ed25519-zebra", "futures", "hash-db", "hash256-std-hasher", - "hex", - "impl-serde", + "impl-serde 0.4.0", "lazy_static", "libsecp256k1", "log", "merlin", - "num-traits", "parity-scale-codec", - "parity-util-mem", "parking_lot 0.12.1", "primitive-types", - "rand 0.7.3", + "rand 0.8.5", "regex", "scale-info", "schnorrkel", @@ -8097,20 +8872,19 @@ dependencies = [ "substrate-bip39", "thiserror", "tiny-bip39", - "wasmi", "zeroize", ] [[package]] name = "sp-core-hashing" -version = "4.0.0" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +version = "5.0.0" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "blake2", "byteorder", - "digest 0.10.5", + "digest 0.10.6", "sha2 0.10.6", - "sha3 0.10.5", + "sha3", "sp-std", "twox-hash", ] @@ -8118,7 +8892,7 @@ dependencies = [ [[package]] name = "sp-core-hashing-proc-macro" version = "5.0.0" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "proc-macro2", "quote", @@ -8129,7 +8903,7 @@ dependencies = [ [[package]] name = "sp-database" version = "4.0.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "kvdb", "parking_lot 0.12.1", @@ -8137,8 +8911,8 @@ dependencies = [ [[package]] name = "sp-debug-derive" -version = "4.0.0" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +version = "5.0.0" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "proc-macro2", "quote", @@ -8147,8 +8921,8 @@ dependencies = [ [[package]] name = "sp-externalities" -version = "0.12.0" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +version = "0.13.0" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "environmental", "parity-scale-codec", @@ -8159,7 +8933,7 @@ dependencies = [ [[package]] name = "sp-finality-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "finality-grandpa", "log", @@ -8177,11 +8951,12 @@ dependencies = [ [[package]] name = "sp-inherents" version = "4.0.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "async-trait", "impl-trait-for-tuples", "parity-scale-codec", + "scale-info", "sp-core", "sp-runtime", "sp-std", @@ -8190,15 +8965,16 @@ dependencies = [ [[package]] name = "sp-io" -version = "6.0.0" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +version = "7.0.0" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ + "bytes", + "ed25519", + "ed25519-dalek", "futures", - "hash-db", "libsecp256k1", "log", "parity-scale-codec", - "parking_lot 0.12.1", "secp256k1", "sp-core", "sp-externalities", @@ -8208,26 +8984,25 @@ dependencies = [ "sp-std", "sp-tracing", "sp-trie", - "sp-wasm-interface", "tracing", "tracing-core", ] [[package]] name = "sp-keyring" -version = "6.0.0" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +version = "7.0.0" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "lazy_static", "sp-core", "sp-runtime", - "strum 0.23.0", + "strum 0.24.1", ] [[package]] name = "sp-keystore" -version = "0.12.0" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +version = "0.13.0" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "async-trait", "futures", @@ -8244,16 +9019,34 @@ dependencies = [ [[package]] name = "sp-maybe-compressed-blob" version = "4.1.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "thiserror", "zstd", ] +[[package]] +name = "sp-mmr-primitives" +version = "4.0.0-dev" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" +dependencies = [ + "ckb-merkle-mountain-range", + "log", + "parity-scale-codec", + "scale-info", + "serde", + "sp-api", + "sp-core", + "sp-debug-derive", + "sp-runtime", + "sp-std", + "thiserror", +] + [[package]] name = "sp-npos-elections" version = "4.0.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "parity-scale-codec", "scale-info", @@ -8267,7 +9060,7 @@ dependencies = [ [[package]] name = "sp-offchain" version = "4.0.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "sp-api", "sp-core", @@ -8276,8 +9069,8 @@ dependencies = [ [[package]] name = "sp-panic-handler" -version = "4.0.0" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +version = "5.0.0" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "backtrace", "lazy_static", @@ -8287,7 +9080,7 @@ dependencies = [ [[package]] name = "sp-rpc" version = "6.0.0" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "rustc-hash", "serde", @@ -8296,17 +9089,16 @@ dependencies = [ [[package]] name = "sp-runtime" -version = "6.0.0" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +version = "7.0.0" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "either", "hash256-std-hasher", "impl-trait-for-tuples", "log", "parity-scale-codec", - "parity-util-mem", - "paste 1.0.9", - "rand 0.7.3", + "paste 1.0.11", + "rand 0.8.5", "scale-info", "serde", "sp-application-crypto", @@ -8314,13 +9106,15 @@ dependencies = [ "sp-core", "sp-io", "sp-std", + "sp-weights", ] [[package]] name = "sp-runtime-interface" -version = "6.0.0" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +version = "7.0.0" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ + "bytes", "impl-trait-for-tuples", "parity-scale-codec", "primitive-types", @@ -8335,8 +9129,8 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" -version = "5.0.0" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +version = "6.0.0" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "Inflector", "proc-macro-crate", @@ -8345,33 +9139,10 @@ dependencies = [ "syn", ] -[[package]] -name = "sp-sandbox" -version = "0.10.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" -dependencies = [ - "log", - "parity-scale-codec", - "sp-core", - "sp-io", - "sp-std", - "sp-wasm-interface", - "wasmi", -] - -[[package]] -name = "sp-serializer" -version = "4.0.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" -dependencies = [ - "serde", - "serde_json", -] - [[package]] name = "sp-session" version = "4.0.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "parity-scale-codec", "scale-info", @@ -8385,25 +9156,25 @@ dependencies = [ [[package]] name = "sp-staking" version = "4.0.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "parity-scale-codec", "scale-info", + "sp-core", "sp-runtime", "sp-std", ] [[package]] name = "sp-state-machine" -version = "0.12.0" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +version = "0.13.0" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "hash-db", "log", - "num-traits", "parity-scale-codec", "parking_lot 0.12.1", - "rand 0.7.3", + "rand 0.8.5", "smallvec", "sp-core", "sp-externalities", @@ -8412,20 +9183,19 @@ dependencies = [ "sp-trie", "thiserror", "tracing", - "trie-root", ] [[package]] name = "sp-std" -version = "4.0.0" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +version = "5.0.0" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" [[package]] name = "sp-storage" -version = "6.0.0" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +version = "7.0.0" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ - "impl-serde", + "impl-serde 0.4.0", "parity-scale-codec", "ref-cast", "serde", @@ -8433,29 +9203,15 @@ dependencies = [ "sp-std", ] -[[package]] -name = "sp-tasks" -version = "4.0.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" -dependencies = [ - "log", - "sp-core", - "sp-externalities", - "sp-io", - "sp-runtime-interface", - "sp-std", -] - [[package]] name = "sp-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "async-trait", "futures-timer", "log", "parity-scale-codec", - "sp-api", "sp-inherents", "sp-runtime", "sp-std", @@ -8464,8 +9220,8 @@ dependencies = [ [[package]] name = "sp-tracing" -version = "5.0.0" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +version = "6.0.0" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "parity-scale-codec", "sp-std", @@ -8477,7 +9233,7 @@ dependencies = [ [[package]] name = "sp-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "sp-api", "sp-runtime", @@ -8486,7 +9242,7 @@ dependencies = [ [[package]] name = "sp-transaction-storage-proof" version = "4.0.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "async-trait", "log", @@ -8501,16 +9257,23 @@ dependencies = [ [[package]] name = "sp-trie" -version = "6.0.0" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +version = "7.0.0" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ + "ahash 0.8.3", "hash-db", + "hashbrown 0.12.3", + "lazy_static", "memory-db", + "nohash-hasher", "parity-scale-codec", + "parking_lot 0.12.1", "scale-info", + "schnellru", "sp-core", "sp-std", "thiserror", + "tracing", "trie-db", "trie-root", ] @@ -8518,11 +9281,11 @@ dependencies = [ [[package]] name = "sp-version" version = "5.0.0" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ - "impl-serde", + "impl-serde 0.4.0", "parity-scale-codec", - "parity-wasm 0.42.2", + "parity-wasm", "scale-info", "serde", "sp-core-hashing-proc-macro", @@ -8535,7 +9298,7 @@ dependencies = [ [[package]] name = "sp-version-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "parity-scale-codec", "proc-macro2", @@ -8545,9 +9308,10 @@ dependencies = [ [[package]] name = "sp-wasm-interface" -version = "6.0.0" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +version = "7.0.0" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ + "anyhow", "impl-trait-for-tuples", "log", "parity-scale-codec", @@ -8556,16 +9320,42 @@ dependencies = [ "wasmtime", ] +[[package]] +name = "sp-weights" +version = "4.0.0" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" +dependencies = [ + "parity-scale-codec", + "scale-info", + "serde", + "smallvec", + "sp-arithmetic", + "sp-core", + "sp-debug-derive", + "sp-std", +] + [[package]] name = "spin" version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" +[[package]] +name = "spki" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67cf02bbac7a337dc36e4f5a693db6c21e7863f45070f7064577eb4367a3212b" +dependencies = [ + "base64ct", + "der", +] + [[package]] name = "ss58-registry" -version = "1.23.0" -source = "git+https://github.com/bwhm/ss58-registry?rev=a70121e7bbb56f983f6f17771cc79d8f19b481a0#a70121e7bbb56f983f6f17771cc79d8f19b481a0" +version = "1.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecf0bd63593ef78eca595a7fc25e9a443ca46fe69fd472f8f09f5245cdcd769d" dependencies = [ "Inflector", "num-format", @@ -8589,16 +9379,31 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" [[package]] -name = "statrs" -version = "0.15.0" +name = "static_init" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05bdbb8e4e78216a85785a85d3ec3183144f98d0097b9281802c019bb07a6f05" +checksum = "8a2a1c578e98c1c16fc3b8ec1328f7659a500737d7a0c6d625e73e830ff9c1f6" dependencies = [ - "approx", - "lazy_static", - "nalgebra", - "num-traits", - "rand 0.8.5", + "bitflags", + "cfg_aliases", + "libc", + "parking_lot 0.11.2", + "parking_lot_core 0.8.6", + "static_init_macro", + "winapi", +] + +[[package]] +name = "static_init_macro" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70a2595fc3aa78f2d0e45dd425b22282dd863273761cc77780914b2cf3003acf" +dependencies = [ + "cfg_aliases", + "memchr", + "proc-macro2", + "quote", + "syn", ] [[package]] @@ -8615,11 +9420,11 @@ checksum = "b89a286a7e3b5720b9a477b23253bc50debac207c8d21505f8e70b36792f11b5" [[package]] name = "strum" -version = "0.23.0" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cae14b91c7d11c9a851d3fbc80a963198998c2a64eec840477fa92d8ce9b70bb" +checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f" dependencies = [ - "strum_macros 0.23.1", + "strum_macros 0.24.3", ] [[package]] @@ -8636,17 +9441,36 @@ dependencies = [ [[package]] name = "strum_macros" -version = "0.23.1" +version = "0.24.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bb0dc7ee9c15cea6199cde9a127fa16a4c5819af85395457ad72d68edc85a38" +checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" dependencies = [ - "heck 0.3.3", + "heck 0.4.1", "proc-macro2", "quote", "rustversion", "syn", ] +[[package]] +name = "stun" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7e94b1ec00bad60e6410e058b52f1c66de3dc5fe4d62d09b3e52bb7d3b73e25" +dependencies = [ + "base64 0.13.1", + "crc", + "lazy_static", + "md-5", + "rand 0.8.5", + "ring", + "subtle", + "thiserror", + "tokio", + "url", + "webrtc-util", +] + [[package]] name = "substrate-bip39" version = "0.4.4" @@ -8663,17 +9487,17 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" version = "3.0.0" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ - "platforms", + "platforms 2.0.0", ] [[package]] name = "substrate-frame-cli" version = "4.0.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ - "clap 3.2.22", + "clap 4.1.8", "frame-support", "frame-system", "sc-cli", @@ -8684,17 +9508,15 @@ dependencies = [ [[package]] name = "substrate-frame-rpc-system" version = "4.0.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "frame-system-rpc-runtime-api", "futures", - "jsonrpsee", + "jsonrpsee 0.16.2", "log", "parity-scale-codec", - "sc-client-api", "sc-rpc-api", "sc-transaction-pool-api", - "serde_json", "sp-api", "sp-block-builder", "sp-blockchain", @@ -8705,9 +9527,8 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" version = "0.10.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ - "futures-util", "hyper", "log", "prometheus", @@ -8715,12 +9536,25 @@ dependencies = [ "tokio", ] +[[package]] +name = "substrate-rpc-client" +version = "0.10.0-dev" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" +dependencies = [ + "async-trait", + "jsonrpsee 0.16.2", + "log", + "sc-rpc-api", + "serde", + "sp-runtime", +] + [[package]] name = "substrate-state-trie-migration-rpc" version = "4.0.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ - "jsonrpsee", + "jsonrpsee 0.16.2", "log", "parity-scale-codec", "sc-client-api", @@ -8728,10 +9562,8 @@ dependencies = [ "scale-info", "serde", "sp-core", - "sp-io", "sp-runtime", "sp-state-machine", - "sp-std", "sp-trie", "trie-db", ] @@ -8739,11 +9571,11 @@ dependencies = [ [[package]] name = "substrate-test-client" version = "2.0.1" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ + "array-bytes", "async-trait", "futures", - "hex", "parity-scale-codec", "sc-client-api", "sc-client-db", @@ -8765,9 +9597,8 @@ dependencies = [ [[package]] name = "substrate-test-runtime" version = "2.0.0" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ - "beefy-primitives", "cfg-if", "frame-support", "frame-system", @@ -8775,14 +9606,15 @@ dependencies = [ "log", "memory-db", "pallet-babe", + "pallet-beefy-mmr", "pallet-timestamp", "parity-scale-codec", - "parity-util-mem", "sc-service", "scale-info", "serde", "sp-api", "sp-application-crypto", + "sp-beefy", "sp-block-builder", "sp-consensus-aura", "sp-consensus-babe", @@ -8808,7 +9640,7 @@ dependencies = [ [[package]] name = "substrate-test-runtime-client" version = "2.0.0" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "futures", "parity-scale-codec", @@ -8827,17 +9659,27 @@ dependencies = [ [[package]] name = "substrate-wasm-builder" version = "5.0.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=d29a53b11c3e530d1656eef502cb0f1f8fff3522#d29a53b11c3e530d1656eef502cb0f1f8fff3522" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "ansi_term", "build-helper", "cargo_metadata", + "filetime", "sp-maybe-compressed-blob", - "strum 0.23.0", + "strum 0.24.1", "tempfile", "toml", "walkdir", - "wasm-gc-api", + "wasm-opt", +] + +[[package]] +name = "substring" +version = "1.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42ee6433ecef213b2e72f587ef64a2f5943e7cd16fbd82dbe8bc07486c534c86" +dependencies = [ + "autocfg", ] [[package]] @@ -8848,9 +9690,9 @@ checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" [[package]] name = "syn" -version = "1.0.102" +version = "1.0.109" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fcd952facd492f9be3ef0d0b7032a6e442ee9b361d4acc2b1d0c4aaa5f613a1" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" dependencies = [ "proc-macro2", "quote", @@ -8898,38 +9740,37 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "target-lexicon" -version = "0.12.4" +version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c02424087780c9b71cc96799eaeddff35af2bc513278cda5c99fc1f5d026d3c1" +checksum = "8ae9980cab1db3fceee2f6c6f643d5d8de2997c58ee8d25fb0cc8a9e9e7348e5" [[package]] name = "tempfile" -version = "3.3.0" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4" +checksum = "af18f7ae1acd354b992402e9ec5864359d693cd8a79dcbef59f76891701c1e95" dependencies = [ "cfg-if", "fastrand", - "libc", "redox_syscall", - "remove_dir_all", - "winapi", + "rustix", + "windows-sys 0.42.0", ] [[package]] name = "termcolor" -version = "1.1.3" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755" +checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6" dependencies = [ "winapi-util", ] [[package]] name = "termtree" -version = "0.2.4" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "507e9898683b6c43a9aa55b64259b721b52ba226e0f3779137e50ad114a4c90b" +checksum = "95059e91184749cb66be6dc994f67f182b6d897cb3df74a5bf66b5e709295fd8" [[package]] name = "textwrap" @@ -8942,24 +9783,24 @@ dependencies = [ [[package]] name = "textwrap" -version = "0.15.1" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "949517c0cf1bf4ee812e2e07e08ab448e3ae0d23472aee8a06c985f0c8815b16" +checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d" [[package]] name = "thiserror" -version = "1.0.37" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10deb33631e3c9018b9baf9dcbbc4f737320d2b576bac10f6aefa048fa407e3e" +checksum = "6a9cd18aa97d5c45c6603caea1da6628790b37f7a34b6ca89522331c5180fed0" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.37" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "982d17546b47146b28f7c22e3d08465f6b8903d0ea13c1660d9d84a6e7adcdbb" +checksum = "1fb327af4685e4d03fa8cbcf1716380da910eeb2bb8be417e7f9fd3fb164f36f" dependencies = [ "proc-macro2", "quote", @@ -8974,10 +9815,11 @@ checksum = "3bf63baf9f5039dadc247375c29eb13706706cfde997d0330d05aa63a77d8820" [[package]] name = "thread_local" -version = "1.1.4" +version = "1.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5516c27b78311c50bf42c071425c560ac799b11c30b31f87e3081965fe5e0180" +checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" dependencies = [ + "cfg-if", "once_cell", ] @@ -8992,39 +9834,65 @@ dependencies = [ [[package]] name = "tikv-jemalloc-sys" -version = "0.4.3+5.2.1-patched.2" +version = "0.5.3+5.3.0-patched" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1792ccb507d955b46af42c123ea8863668fae24d03721e40cad6a41773dbb49" +checksum = "a678df20055b43e57ef8cddde41cdfda9a3c1a060b67f4c5836dfb1d78543ba8" dependencies = [ "cc", - "fs_extra", "libc", ] [[package]] name = "time" -version = "0.1.44" +version = "0.1.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6db9e6914ab8b1ae1c260a4ae7a49b6c5611b40328a735b21862567685e73255" +checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a" dependencies = [ "libc", "wasi 0.10.0+wasi-snapshot-preview1", "winapi", ] +[[package]] +name = "time" +version = "0.3.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd0cbfecb4d19b5ea75bb31ad904eb5b9fa13f21079c3b92017ebdf4999a5890" +dependencies = [ + "itoa", + "serde", + "time-core", + "time-macros", +] + +[[package]] +name = "time-core" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e153e1f1acaef8acc537e68b44906d2db6436e2b35ac2c6b42640fff91f00fd" + +[[package]] +name = "time-macros" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd80a657e71da814b8e5d60d3374fc6d35045062245d80224748ae522dd76f36" +dependencies = [ + "time-core", +] + [[package]] name = "tiny-bip39" -version = "0.8.2" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffc59cb9dfc85bb312c3a78fd6aa8a8582e310b0fa885d5bb877f6dcc601839d" +checksum = "62cc94d358b5a1e84a5cb9109f559aa3c4d634d2b1b4de3d0fa4adc7c78e2861" dependencies = [ "anyhow", - "hmac 0.8.1", + "hmac 0.12.1", "once_cell", - "pbkdf2 0.4.0", - "rand 0.7.3", + "pbkdf2 0.11.0", + "rand 0.8.5", "rustc-hash", - "sha2 0.9.9", + "sha2 0.10.6", "thiserror", "unicode-normalization", "wasm-bindgen", @@ -9052,15 +9920,15 @@ dependencies = [ [[package]] name = "tinyvec_macros" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.21.2" +version = "1.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9e03c497dc955702ba729190dc4aac6f2a0ce97f913e5b1b5912fc5039d9099" +checksum = "03201d01c3c27a29c8a5cee5b55a93ddae1ccf6f08f65365c2c918f8c1b76f64" dependencies = [ "autocfg", "bytes", @@ -9073,14 +9941,14 @@ dependencies = [ "signal-hook-registry", "socket2", "tokio-macros", - "winapi", + "windows-sys 0.45.0", ] [[package]] name = "tokio-macros" -version = "1.8.0" +version = "1.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9724f9a975fb987ef7a3cd9be0350edcbe130698af5b8f7a631e23d42d052484" +checksum = "d266c00fde287f55d3f1c3e96c500c362a2b8c695076ec180f27918820bc6df8" dependencies = [ "proc-macro2", "quote", @@ -9093,21 +9961,33 @@ version = "0.23.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c43ee83903113e03984cb9e5cebe6c04a5116269e900e3ddba8f068a62adda59" dependencies = [ - "rustls", + "rustls 0.20.8", "tokio", - "webpki", + "webpki 0.22.0", ] [[package]] -name = "tokio-util" -version = "0.7.4" +name = "tokio-stream" +version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bb2e075f03b3d66d8d8785356224ba688d2906a371015e225beeb65ca92c740" +checksum = "8fb52b74f05dbf495a8fba459fdc331812b96aa086d9eb78101fa0d4569c3313" dependencies = [ - "bytes", "futures-core", - "futures-io", - "futures-sink", + "pin-project-lite 0.2.9", + "tokio", + "tokio-util", +] + +[[package]] +name = "tokio-util" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5427d89453009325de0d8f342c9490009f76e999cb7672d77e46267448f7e6b2" +dependencies = [ + "bytes", + "futures-core", + "futures-io", + "futures-sink", "pin-project-lite 0.2.9", "tokio", "tracing", @@ -9115,13 +9995,48 @@ dependencies = [ [[package]] name = "toml" -version = "0.5.9" +version = "0.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d82e1a7758622a465f8cee077614c73484dac5b836c02ff6a40d5d1010324d7" +checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" dependencies = [ "serde", ] +[[package]] +name = "tower" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" +dependencies = [ + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tower-http" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f873044bf02dd1e8239e9c1293ea39dad76dc594ec16185d0a1bf31d8dc8d858" +dependencies = [ + "bitflags", + "bytes", + "futures-core", + "futures-util", + "http", + "http-body", + "http-range-header", + "pin-project-lite 0.2.9", + "tower-layer", + "tower-service", +] + +[[package]] +name = "tower-layer" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" + [[package]] name = "tower-service" version = "0.3.2" @@ -9135,6 +10050,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" dependencies = [ "cfg-if", + "log", "pin-project-lite 0.2.9", "tracing-attributes", "tracing-core", @@ -9167,7 +10083,7 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" dependencies = [ - "pin-project 1.0.12", + "pin-project", "tracing", ] @@ -9177,10 +10093,8 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922" dependencies = [ - "ahash", "lazy_static", "log", - "lru", "tracing-core", ] @@ -9219,12 +10133,12 @@ dependencies = [ [[package]] name = "trie-db" -version = "0.23.1" +version = "0.25.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d32d034c0d3db64b43c31de38e945f15b40cd4ca6d2dcfc26d4798ce8de4ab83" +checksum = "3390c0409daaa6027d6681393316f4ccd3ff82e1590a1e4725014e3ae2bf1920" dependencies = [ "hash-db", - "hashbrown", + "hashbrown 0.13.2", "log", "rustc-hex", "smallvec", @@ -9241,9 +10155,9 @@ dependencies = [ [[package]] name = "trust-dns-proto" -version = "0.21.2" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c31f240f59877c3d4bb3b3ea0ec5a6a0cff07323580ff8c7a605cd7d08b255d" +checksum = "4f7f83d1e4a0e4358ac54c5c3681e5d7da5efc5a7a632c90bb6d6669ddd9bc26" dependencies = [ "async-trait", "cfg-if", @@ -9255,44 +10169,66 @@ dependencies = [ "idna 0.2.3", "ipnet", "lazy_static", - "log", "rand 0.8.5", "smallvec", + "socket2", "thiserror", "tinyvec", + "tokio", + "tracing", "url", ] [[package]] name = "trust-dns-resolver" -version = "0.21.2" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4ba72c2ea84515690c9fcef4c6c660bb9df3036ed1051686de84605b74fd558" +checksum = "aff21aa4dcefb0a1afbfac26deb0adc93888c7d295fb63ab273ef276ba2b7cfe" dependencies = [ "cfg-if", "futures-util", "ipconfig", "lazy_static", - "log", "lru-cache", "parking_lot 0.12.1", "resolv-conf", "smallvec", "thiserror", + "tokio", + "tracing", "trust-dns-proto", ] [[package]] name = "try-lock" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" +checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" [[package]] name = "tt-call" -version = "1.0.8" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e66dcbec4290c69dd03c57e76c2469ea5c7ce109c6dd4351c13055cf71ea055" +checksum = "f4f195fd851901624eee5a58c4bb2b4f06399148fcd0ed336e6f1cb60a9881df" + +[[package]] +name = "turn" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4712ee30d123ec7ae26d1e1b218395a16c87cdbaf4b3925d170d684af62ea5e8" +dependencies = [ + "async-trait", + "base64 0.13.1", + "futures", + "log", + "md-5", + "rand 0.8.5", + "ring", + "stun", + "thiserror", + "tokio", + "webrtc-util", +] [[package]] name = "twox-hash" @@ -9301,16 +10237,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675" dependencies = [ "cfg-if", - "digest 0.10.5", + "digest 0.10.6", "rand 0.8.5", "static_assertions", ] [[package]] name = "typenum" -version = "1.15.0" +version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987" +checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba" [[package]] name = "ucd-trie" @@ -9320,9 +10256,9 @@ checksum = "9e79c4d996edb816c91e4308506774452e55e95c3c9de07b6729e17e15a5ef81" [[package]] name = "uint" -version = "0.9.4" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a45526d29728d135c2900b0d30573fe3ee79fceb12ef534c7bb30e810a91b601" +checksum = "76f64bba2c53b04fcab63c01a7d7427eadc821e3bc48c34dc9ba29c501164b52" dependencies = [ "byteorder", "crunchy", @@ -9341,15 +10277,15 @@ dependencies = [ [[package]] name = "unicode-bidi" -version = "0.3.8" +version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992" +checksum = "d54675592c1dbefd78cbd98db9bacd89886e1ca50692a0692baefffdeb92dd58" [[package]] name = "unicode-ident" -version = "1.0.5" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ceab39d59e4c9499d4e5a8ee0e2735b891bb7308ac83dfb4e80cad195c9f6f3" +checksum = "84a22b9f218b40614adcb3f4ff08b703773ad44fa9423e4e0d346d5db86e4ebc" [[package]] name = "unicode-normalization" @@ -9362,9 +10298,9 @@ dependencies = [ [[package]] name = "unicode-segmentation" -version = "1.10.0" +version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fdbf052a0783de01e944a6ce7a8cb939e295b1e7be835a1112c3b9a7f047a5a" +checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36" [[package]] name = "unicode-width" @@ -9388,6 +10324,16 @@ dependencies = [ "subtle", ] +[[package]] +name = "universal-hash" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d3160b73c9a19f7e2939a2fdad446c57c1bbbbf4d919d3213ff1267a580d8b5" +dependencies = [ + "crypto-common", + "subtle", +] + [[package]] name = "unsigned-varint" version = "0.7.1" @@ -9417,6 +10363,15 @@ dependencies = [ "percent-encoding", ] +[[package]] +name = "uuid" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1674845326ee10d37ca60470760d4288a6f80f304007d92e5c53bab78c9cfd79" +dependencies = [ + "getrandom 0.2.8", +] + [[package]] name = "valuable" version = "0.1.0" @@ -9470,6 +10425,15 @@ dependencies = [ "libc", ] +[[package]] +name = "waitgroup" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1f50000a783467e6c0200f9d10642f4bc424e39efc1b770203e88b488f79292" +dependencies = [ + "atomic-waker", +] + [[package]] name = "waker-fn" version = "1.1.0" @@ -9517,9 +10481,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.83" +version = "0.2.84" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eaf9f5aceeec8be17c128b2e93e031fb8a4d469bb9c4ae2d7dc1888b26887268" +checksum = "31f8dcbc21f30d9b8f2ea926ecb58f6b91192c17e9d33594b3df58b2007ca53b" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -9527,9 +10491,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.83" +version = "0.2.84" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c8ffb332579b0557b52d268b91feab8df3615f265d5270fec2a8c95b17c1142" +checksum = "95ce90fd5bcc06af55a641a86428ee4229e44e07033963a2290a8e241607ccb9" dependencies = [ "bumpalo", "log", @@ -9542,9 +10506,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.33" +version = "0.4.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23639446165ca5a5de86ae1d8896b737ae80319560fbaa4c2887b7da6e7ebd7d" +checksum = "f219e0d211ba40266969f6dbdd90636da12f75bee4fc9d6c23d1260dadb51454" dependencies = [ "cfg-if", "js-sys", @@ -9554,9 +10518,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.83" +version = "0.2.84" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "052be0f94026e6cbc75cdefc9bae13fd6052cdcaf532fa6c45e7ae33a1e6c810" +checksum = "4c21f77c0bedc37fd5dc21f897894a5ca01e7bb159884559461862ae90c0b4c5" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -9564,9 +10528,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.83" +version = "0.2.84" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07bc0c051dc5f23e307b13285f9d75df86bfdf816c5721e573dec1f9b8aa193c" +checksum = "2aff81306fcac3c7515ad4e177f521b5c9a15f2b08f4e32d823066102f35a5f6" dependencies = [ "proc-macro2", "quote", @@ -9577,28 +10541,58 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.83" +version = "0.2.84" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c38c045535d93ec4f0b4defec448e4291638ee608530863b1e2ba115d4fff7f" +checksum = "0046fef7e28c3804e5e38bfa31ea2a0f73905319b677e57ebe37e49358989b5d" [[package]] -name = "wasm-gc-api" -version = "0.1.11" +name = "wasm-instrument" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0c32691b6c7e6c14e7f8fd55361a9088b507aa49620fcd06c09b3a1082186b9" +checksum = "aa1dafb3e60065305741e83db35c6c2584bb3725b692b5b66148a38d72ace6cd" dependencies = [ - "log", - "parity-wasm 0.32.0", - "rustc-demangle", + "parity-wasm", ] [[package]] -name = "wasm-instrument" -version = "0.1.1" +name = "wasm-opt" +version = "0.111.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "962e5b0401bbb6c887f54e69b8c496ea36f704df65db73e81fd5ff8dc3e63a9f" +checksum = "84a303793cbc01fb96551badfc7367db6007396bba6bac97936b3c8b6f7fdb41" dependencies = [ - "parity-wasm 0.42.2", + "anyhow", + "libc", + "strum 0.24.1", + "strum_macros 0.24.3", + "tempfile", + "thiserror", + "wasm-opt-cxx-sys", + "wasm-opt-sys", +] + +[[package]] +name = "wasm-opt-cxx-sys" +version = "0.111.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9c9deb56f8a9f2ec177b3bd642a8205621835944ed5da55f2388ef216aca5a4" +dependencies = [ + "anyhow", + "cxx", + "cxx-build", + "wasm-opt-sys", +] + +[[package]] +name = "wasm-opt-sys" +version = "0.111.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4432e28b542738a9776cedf92e8a99d8991c7b4667ee2c7ccddfb479dd2856a7" +dependencies = [ + "anyhow", + "cc", + "cxx", + "cxx-build", + "regex", ] [[package]] @@ -9618,55 +10612,65 @@ dependencies = [ [[package]] name = "wasmi" -version = "0.9.1" +version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca00c5147c319a8ec91ec1a0edbec31e566ce2c9cc93b3f9bb86a9efd0eb795d" +checksum = "06c326c93fbf86419608361a2c925a31754cf109da1b8b55737070b4d6669422" dependencies = [ - "downcast-rs", - "libc", - "libm", - "memory_units", - "num-rational 0.2.4", - "num-traits", - "parity-wasm 0.42.2", + "parity-wasm", "wasmi-validation", + "wasmi_core", ] [[package]] name = "wasmi-validation" -version = "0.4.1" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "165343ecd6c018fc09ebcae280752702c9a2ef3e6f8d02f1cfcbdb53ef6d7937" +checksum = "91ff416ad1ff0c42e5a926ed5d5fab74c0f098749aa0ad8b2a34b982ce0e867b" dependencies = [ - "parity-wasm 0.42.2", + "parity-wasm", +] + +[[package]] +name = "wasmi_core" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57d20cb3c59b788653d99541c646c561c9dd26506f25c0cebfe810659c54c6d7" +dependencies = [ + "downcast-rs", + "libm 0.2.6", + "memory_units", + "num-rational", + "num-traits", + "region", ] [[package]] name = "wasmparser" -version = "0.83.0" +version = "0.100.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "718ed7c55c2add6548cca3ddd6383d738cd73b892df400e96b9aa876f0141d7a" +checksum = "64b20236ab624147dfbb62cf12a19aaf66af0e41b8398838b66e997d07d269d4" +dependencies = [ + "indexmap", + "url", +] [[package]] name = "wasmtime" -version = "0.35.3" +version = "6.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21ffb4705016d5ca91e18a72ed6822dab50e6d5ddd7045461b17ef19071cdef1" +checksum = "9010891d0b8e367c3be94ca35d7bc25c1de3240463bb1d61bcfc8c2233c4e0d0" dependencies = [ "anyhow", - "backtrace", "bincode", "cfg-if", "indexmap", - "lazy_static", "libc", "log", - "object 0.27.1", + "object 0.29.0", "once_cell", - "paste 1.0.9", + "paste 1.0.11", "psm", "rayon", - "region", "serde", "target-lexicon", "wasmparser", @@ -9675,34 +10679,43 @@ dependencies = [ "wasmtime-environ", "wasmtime-jit", "wasmtime-runtime", - "winapi", + "windows-sys 0.42.0", +] + +[[package]] +name = "wasmtime-asm-macros" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "65805c663eaa8257b910666f6d4b056b5c7329750da754ba5df54f3af7dbf35c" +dependencies = [ + "cfg-if", ] [[package]] name = "wasmtime-cache" -version = "0.35.3" +version = "6.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85c6ab24291fa7cb3a181f5669f6c72599b7ef781669759b45c7828c5999d0c0" +checksum = "2049ddfc1b10efc3c5591d0e84b9570ca50478f8818f3bfabb1a467918f53fb4" dependencies = [ "anyhow", - "base64", + "base64 0.13.1", "bincode", "directories-next", "file-per-thread-logger", "log", "rustix", "serde", - "sha2 0.9.9", + "sha2 0.10.6", "toml", - "winapi", + "windows-sys 0.42.0", "zstd", ] [[package]] name = "wasmtime-cranelift" -version = "0.35.3" +version = "6.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f04c810078a491b7bc4866ebe045f714d2b95e6b539e1f64009a4a7606be11de" +checksum = "3f9065cad6a724fa838ec8497567e0b23acc26417bb2449f8d9d2021925c72f2" dependencies = [ "anyhow", "cranelift-codegen", @@ -9710,10 +10723,9 @@ dependencies = [ "cranelift-frontend", "cranelift-native", "cranelift-wasm", - "gimli", + "gimli 0.26.2", "log", - "more-asserts", - "object 0.27.1", + "object 0.29.0", "target-lexicon", "thiserror", "wasmparser", @@ -9722,17 +10734,16 @@ dependencies = [ [[package]] name = "wasmtime-environ" -version = "0.35.3" +version = "6.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61448266ea164b1ac406363cdcfac81c7c44db4d94c7a81c8620ac6c5c6cdf59" +checksum = "4f964bb0b91fa021b8d1b488c62cc77b346c1dae6e3ebd010050b57c1f2ca657" dependencies = [ "anyhow", "cranelift-entity", - "gimli", + "gimli 0.26.2", "indexmap", "log", - "more-asserts", - "object 0.27.1", + "object 0.29.0", "serde", "target-lexicon", "thiserror", @@ -9742,49 +10753,57 @@ dependencies = [ [[package]] name = "wasmtime-jit" -version = "0.35.3" +version = "6.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "156b4623c6b0d4b8c24afb846c20525922f538ef464cc024abab7ea8de2109a2" +checksum = "b7a1d06f5d109539e0168fc74fa65e3948ac8dac3bb8cdbd08b62b36a0ae27b8" dependencies = [ - "addr2line", + "addr2line 0.17.0", "anyhow", "bincode", "cfg-if", "cpp_demangle", - "gimli", + "gimli 0.26.2", "log", - "object 0.27.1", - "region", + "object 0.29.0", "rustc-demangle", - "rustix", "serde", "target-lexicon", - "thiserror", "wasmtime-environ", "wasmtime-jit-debug", + "wasmtime-jit-icache-coherence", "wasmtime-runtime", - "winapi", + "windows-sys 0.42.0", ] [[package]] name = "wasmtime-jit-debug" -version = "0.35.3" +version = "6.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5dc31f811760a6c76b2672c404866fd19b75e5fb3b0075a3e377a6846490654" +checksum = "f76ef2e410329aaf8555ac6571d6fe07711be0646dcdf7ff3ab750a42ed2e583" dependencies = [ - "lazy_static", - "object 0.27.1", + "object 0.29.0", + "once_cell", "rustix", ] +[[package]] +name = "wasmtime-jit-icache-coherence" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec1fd0f0dd79e7cc0f55b102e320d7c77ab76cd272008a8fd98e25b5777e2636" +dependencies = [ + "cfg-if", + "libc", + "windows-sys 0.42.0", +] + [[package]] name = "wasmtime-runtime" -version = "0.35.3" +version = "6.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f907beaff69d4d920fa4688411ee4cc75c0f01859e424677f9e426e2ef749864" +checksum = "271aef9b4ca2e953a866293683f2db33cda46f6933c5e431e68d8373723d4ab6" dependencies = [ "anyhow", - "backtrace", "cc", "cfg-if", "indexmap", @@ -9792,22 +10811,21 @@ dependencies = [ "log", "mach", "memfd", - "memoffset", - "more-asserts", + "memoffset 0.6.5", + "paste 1.0.11", "rand 0.8.5", - "region", "rustix", - "thiserror", + "wasmtime-asm-macros", "wasmtime-environ", "wasmtime-jit-debug", - "winapi", + "windows-sys 0.42.0", ] [[package]] name = "wasmtime-types" -version = "0.35.3" +version = "6.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "514ef0e5fd197b9609dc9eb74beba0c84d5a12b2417cbae55534633329ba4852" +checksum = "b18144b0e45479a830ac9fcebfc71a16d90dc72d8ebd5679700eb3bfe974d7df" dependencies = [ "cranelift-entity", "serde", @@ -9817,14 +10835,24 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.60" +version = "0.3.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcda906d8be16e728fd5adc5b729afad4e444e106ab28cd1c7256e54fa61510f" +checksum = "e33b99f4b23ba3eec1a53ac264e35a755f00e966e0065077d6027c0f575b0b97" dependencies = [ "js-sys", "wasm-bindgen", ] +[[package]] +name = "webpki" +version = "0.21.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8e38c0608262c46d4a56202ebabdeb094cef7e560ca7a226c6bf055188aa4ea" +dependencies = [ + "ring", + "untrusted", +] + [[package]] name = "webpki" version = "0.22.0" @@ -9837,11 +10865,223 @@ dependencies = [ [[package]] name = "webpki-roots" -version = "0.22.5" +version = "0.22.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "368bfe657969fb01238bb756d351dcade285e0f6fcbd36dcb23359a5169975be" +checksum = "b6c71e40d7d2c34a5106301fb632274ca37242cd0c9d3e64dbece371a40a2d87" dependencies = [ - "webpki", + "webpki 0.22.0", +] + +[[package]] +name = "webrtc" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d3bc9049bdb2cea52f5fd4f6f728184225bdb867ed0dc2410eab6df5bdd67bb" +dependencies = [ + "arc-swap", + "async-trait", + "bytes", + "hex", + "interceptor", + "lazy_static", + "log", + "rand 0.8.5", + "rcgen 0.9.3", + "regex", + "ring", + "rtcp", + "rtp", + "rustls 0.19.1", + "sdp", + "serde", + "serde_json", + "sha2 0.10.6", + "stun", + "thiserror", + "time 0.3.20", + "tokio", + "turn", + "url", + "waitgroup", + "webrtc-data", + "webrtc-dtls", + "webrtc-ice", + "webrtc-mdns", + "webrtc-media", + "webrtc-sctp", + "webrtc-srtp", + "webrtc-util", +] + +[[package]] +name = "webrtc-data" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ef36a4d12baa6e842582fe9ec16a57184ba35e1a09308307b67d43ec8883100" +dependencies = [ + "bytes", + "derive_builder", + "log", + "thiserror", + "tokio", + "webrtc-sctp", + "webrtc-util", +] + +[[package]] +name = "webrtc-dtls" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "942be5bd85f072c3128396f6e5a9bfb93ca8c1939ded735d177b7bcba9a13d05" +dependencies = [ + "aes 0.6.0", + "aes-gcm 0.10.1", + "async-trait", + "bincode", + "block-modes", + "byteorder", + "ccm", + "curve25519-dalek 3.2.0", + "der-parser 8.1.0", + "elliptic-curve", + "hkdf", + "hmac 0.12.1", + "log", + "oid-registry 0.6.1", + "p256", + "p384", + "rand 0.8.5", + "rand_core 0.6.4", + "rcgen 0.9.3", + "ring", + "rustls 0.19.1", + "sec1", + "serde", + "sha1", + "sha2 0.10.6", + "signature", + "subtle", + "thiserror", + "tokio", + "webpki 0.21.4", + "webrtc-util", + "x25519-dalek 2.0.0-pre.1", + "x509-parser 0.13.2", +] + +[[package]] +name = "webrtc-ice" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "465a03cc11e9a7d7b4f9f99870558fe37a102b65b93f8045392fef7c67b39e80" +dependencies = [ + "arc-swap", + "async-trait", + "crc", + "log", + "rand 0.8.5", + "serde", + "serde_json", + "stun", + "thiserror", + "tokio", + "turn", + "url", + "uuid", + "waitgroup", + "webrtc-mdns", + "webrtc-util", +] + +[[package]] +name = "webrtc-mdns" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f08dfd7a6e3987e255c4dbe710dde5d94d0f0574f8a21afa95d171376c143106" +dependencies = [ + "log", + "socket2", + "thiserror", + "tokio", + "webrtc-util", +] + +[[package]] +name = "webrtc-media" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee2a3c157a040324e5049bcbd644ffc9079e6738fa2cfab2bcff64e5cc4c00d7" +dependencies = [ + "byteorder", + "bytes", + "derive_builder", + "displaydoc", + "rand 0.8.5", + "rtp", + "thiserror", + "webrtc-util", +] + +[[package]] +name = "webrtc-sctp" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d47adcd9427eb3ede33d5a7f3424038f63c965491beafcc20bc650a2f6679c0" +dependencies = [ + "arc-swap", + "async-trait", + "bytes", + "crc", + "log", + "rand 0.8.5", + "thiserror", + "tokio", + "webrtc-util", +] + +[[package]] +name = "webrtc-srtp" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6183edc4c1c6c0175f8812eefdce84dfa0aea9c3ece71c2bf6ddd3c964de3da5" +dependencies = [ + "aead 0.4.3", + "aes 0.7.5", + "aes-gcm 0.9.4", + "async-trait", + "byteorder", + "bytes", + "ctr 0.8.0", + "hmac 0.11.0", + "log", + "rtcp", + "rtp", + "sha-1", + "subtle", + "thiserror", + "tokio", + "webrtc-util", +] + +[[package]] +name = "webrtc-util" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93f1db1727772c05cf7a2cfece52c3aca8045ca1e176cd517d323489aa3c6d87" +dependencies = [ + "async-trait", + "bitflags", + "bytes", + "cc", + "ipnet", + "lazy_static", + "libc", + "log", + "nix 0.24.3", + "rand 0.8.5", + "thiserror", + "tokio", + "winapi", ] [[package]] @@ -9855,15 +11095,25 @@ dependencies = [ [[package]] name = "which" -version = "4.3.0" +version = "4.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c831fbbee9e129a8cf93e7747a82da9d95ba8e16621cae60ec2cdc849bacb7b" +checksum = "2441c784c52b289a054b7201fc93253e288f094e2f4be9058343127c4226a269" dependencies = [ "either", "libc", "once_cell", ] +[[package]] +name = "wide" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b689b6c49d6549434bf944e6b0f39238cf63693cb7a147e9d887507fffa3b223" +dependencies = [ + "bytemuck", + "safe_arch", +] + [[package]] name = "widestring" version = "0.5.1" @@ -9916,17 +11166,49 @@ dependencies = [ [[package]] name = "windows-sys" -version = "0.36.1" +version = "0.42.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2" +checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" dependencies = [ - "windows_aarch64_msvc 0.36.1", - "windows_i686_gnu 0.36.1", - "windows_i686_msvc 0.36.1", - "windows_x86_64_gnu 0.36.1", - "windows_x86_64_msvc 0.36.1", + "windows_aarch64_gnullvm", + "windows_aarch64_msvc 0.42.1", + "windows_i686_gnu 0.42.1", + "windows_i686_msvc 0.42.1", + "windows_x86_64_gnu 0.42.1", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc 0.42.1", ] +[[package]] +name = "windows-sys" +version = "0.45.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" +dependencies = [ + "windows-targets", +] + +[[package]] +name = "windows-targets" +version = "0.42.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e2522491fbfcd58cc84d47aeb2958948c4b8982e9a2d8a2a35bbaed431390e7" +dependencies = [ + "windows_aarch64_gnullvm", + "windows_aarch64_msvc 0.42.1", + "windows_i686_gnu 0.42.1", + "windows_i686_msvc 0.42.1", + "windows_x86_64_gnu 0.42.1", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc 0.42.1", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.42.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c9864e83243fdec7fc9c5444389dcbbfd258f745e7853198f365e3c4968a608" + [[package]] name = "windows_aarch64_msvc" version = "0.34.0" @@ -9935,9 +11217,9 @@ checksum = "17cffbe740121affb56fad0fc0e421804adf0ae00891205213b5cecd30db881d" [[package]] name = "windows_aarch64_msvc" -version = "0.36.1" +version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47" +checksum = "4c8b1b673ffc16c47a9ff48570a9d85e25d265735c503681332589af6253c6c7" [[package]] name = "windows_i686_gnu" @@ -9947,9 +11229,9 @@ checksum = "2564fde759adb79129d9b4f54be42b32c89970c18ebf93124ca8870a498688ed" [[package]] name = "windows_i686_gnu" -version = "0.36.1" +version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6" +checksum = "de3887528ad530ba7bdbb1faa8275ec7a1155a45ffa57c37993960277145d640" [[package]] name = "windows_i686_msvc" @@ -9959,9 +11241,9 @@ checksum = "9cd9d32ba70453522332c14d38814bceeb747d80b3958676007acadd7e166956" [[package]] name = "windows_i686_msvc" -version = "0.36.1" +version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024" +checksum = "bf4d1122317eddd6ff351aa852118a2418ad4214e6613a50e0191f7004372605" [[package]] name = "windows_x86_64_gnu" @@ -9971,9 +11253,15 @@ checksum = "cfce6deae227ee8d356d19effc141a509cc503dfd1f850622ec4b0f84428e1f4" [[package]] name = "windows_x86_64_gnu" -version = "0.36.1" +version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1" +checksum = "c1040f221285e17ebccbc2591ffdc2d44ee1f9186324dd3e84e99ac68d699c45" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.42.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "628bfdf232daa22b0d64fdb62b09fcc36bb01f05a3939e20ab73aaf9470d0463" [[package]] name = "windows_x86_64_msvc" @@ -9983,24 +11271,24 @@ checksum = "d19538ccc21819d01deaf88d6a17eae6596a12e9aafdbb97916fb49896d89de9" [[package]] name = "windows_x86_64_msvc" -version = "0.36.1" +version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680" +checksum = "447660ad36a13288b1db4d4248e857b510e8c3a225c822ba4fb748c0aafecffd" [[package]] name = "winreg" -version = "0.7.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0120db82e8a1e0b9fb3345a539c478767c0048d842860994d96113d5b667bd69" +checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d" dependencies = [ "winapi", ] [[package]] name = "wyz" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30b31594f29d27036c383b53b59ed3476874d518f0efb151b27a4c275141390e" +checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" dependencies = [ "tap", ] @@ -10016,6 +11304,54 @@ dependencies = [ "zeroize", ] +[[package]] +name = "x25519-dalek" +version = "2.0.0-pre.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5da623d8af10a62342bcbbb230e33e58a63255a58012f8653c578e54bab48df" +dependencies = [ + "curve25519-dalek 3.2.0", + "rand_core 0.6.4", + "zeroize", +] + +[[package]] +name = "x509-parser" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fb9bace5b5589ffead1afb76e43e34cff39cd0f3ce7e170ae0c29e53b88eb1c" +dependencies = [ + "asn1-rs 0.3.1", + "base64 0.13.1", + "data-encoding", + "der-parser 7.0.0", + "lazy_static", + "nom", + "oid-registry 0.4.0", + "ring", + "rusticata-macros", + "thiserror", + "time 0.3.20", +] + +[[package]] +name = "x509-parser" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0ecbeb7b67ce215e40e3cc7f2ff902f94a223acf44995934763467e7b1febc8" +dependencies = [ + "asn1-rs 0.5.1", + "base64 0.13.1", + "data-encoding", + "der-parser 8.1.0", + "lazy_static", + "nom", + "oid-registry 0.6.1", + "rusticata-macros", + "thiserror", + "time 0.3.20", +] + [[package]] name = "yamux" version = "0.10.2" @@ -10030,6 +11366,15 @@ dependencies = [ "static_assertions", ] +[[package]] +name = "yasna" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aed2e7a52e3744ab4d0c05c20aa065258e84c49fd4226f5191b2ed29712710b4" +dependencies = [ + "time 0.3.20", +] + [[package]] name = "zeroize" version = "1.5.7" @@ -10041,9 +11386,9 @@ dependencies = [ [[package]] name = "zeroize_derive" -version = "1.3.2" +version = "1.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f8f187641dad4f680d25c4bfc4225b418165984179f26ca76ec4fb6441d3a17" +checksum = "44bf07cb3e50ea2003396695d58bf46bc9887a1f362260446fad6bc4e79bd36c" dependencies = [ "proc-macro2", "quote", @@ -10053,18 +11398,18 @@ dependencies = [ [[package]] name = "zstd" -version = "0.10.2+zstd.1.5.2" +version = "0.11.2+zstd.1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f4a6bd64f22b5e3e94b4e238669ff9f10815c27a5180108b849d24174a83847" +checksum = "20cc960326ece64f010d2d2107537f26dc589a6573a316bd5b1dba685fa5fde4" dependencies = [ "zstd-safe", ] [[package]] name = "zstd-safe" -version = "4.1.6+zstd.1.5.2" +version = "5.0.2+zstd.1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94b61c51bb270702d6167b8ce67340d2754b088d0c091b06e593aa772c3ee9bb" +checksum = "1d2a5585e04f9eea4b2a3d1eca508c4dee9592a89ef6f450c11719da0726f4db" dependencies = [ "libc", "zstd-sys", @@ -10072,10 +11417,16 @@ dependencies = [ [[package]] name = "zstd-sys" -version = "1.6.3+zstd.1.5.2" +version = "2.0.7+zstd.1.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc49afa5c8d634e75761feda8c592051e7eeb4683ba827211eb0d731d3402ea8" +checksum = "94509c3ba2fe55294d752b79842c530ccfab760192521df74a081a78d2b3c7f5" dependencies = [ "cc", "libc", + "pkg-config", ] + +[[patch.unused]] +name = "ss58-registry" +version = "1.23.0" +source = "git+https://github.com/bwhm/ss58-registry?rev=a70121e7bbb56f983f6f17771cc79d8f19b481a0#a70121e7bbb56f983f6f17771cc79d8f19b481a0" diff --git a/bin/node/Cargo.toml b/bin/node/Cargo.toml index 1e0a0d1b88..be146b9925 100644 --- a/bin/node/Cargo.toml +++ b/bin/node/Cargo.toml @@ -90,9 +90,9 @@ serde_json = "1.0.79" node-inspect = { path = "../inspect", optional = true } [target.'cfg(any(target_arch="x86_64", target_arch="aarch64"))'.dependencies] -sc-cli = { package = 'sc-cli', optional = true, features = ["wasmtime"], git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} -sc-service = { package = 'sc-service', default-features = false, features = ["wasmtime"], git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} -sp-trie = { package = 'sp-trie', default-features = false, features = ["memory-tracker"], git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sc-cli = { package = 'sc-cli', optional = true, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sc-service = { package = 'sc-service', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sp-trie = { package = 'sp-trie', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} [dev-dependencies] sc-keystore = { package = 'sc-keystore', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} @@ -116,7 +116,7 @@ soketto = "0.7.1" criterion = { version = "0.3.5", features = ["async_tokio"] } tokio = { version = "1.17.0", features = ["macros", "time", "parking_lot"] } wait-timeout = "0.2" -remote-externalities = { package = 'remote-externalities', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +remote-externalities = { package = 'frame-remote-externalities', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} pallet-timestamp = { package = 'pallet-timestamp', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} [build-dependencies] @@ -135,7 +135,7 @@ cli = [ "sc-cli", "frame-benchmarking-cli", "substrate-frame-cli", - "sc-service/db", + "sc-service/rocksdb", "clap", "clap_complete", "substrate-build-script-utils", From ab2d5c97419835c996fc7fa3773387fcd148dde0 Mon Sep 17 00:00:00 2001 From: Mokhtar Naamani Date: Thu, 2 Mar 2023 12:24:38 +0400 Subject: [PATCH 05/87] v0.9.39 - Origin rename to RuntimeOrigin --- runtime-modules/bounty/src/actors.rs | 2 +- runtime-modules/bounty/src/lib.rs | 4 +-- runtime-modules/common/src/origin.rs | 28 ++++++++-------- runtime-modules/common/src/working_group.rs | 4 +-- runtime-modules/constitution/src/lib.rs | 2 +- runtime-modules/content/src/benchmarks/mod.rs | 30 +++++++++-------- runtime-modules/content/src/lib.rs | 4 +-- .../content/src/permissions/mod.rs | 32 +++++++++---------- runtime-modules/council/src/lib.rs | 24 +++++++------- runtime-modules/council/src/mock.rs | 12 +++---- runtime-modules/forum/src/benchmarking.rs | 6 ++-- runtime-modules/forum/src/lib.rs | 2 +- runtime-modules/membership/src/lib.rs | 8 ++--- runtime-modules/project-token/src/lib.rs | 2 +- runtime-modules/proposals/codex/src/lib.rs | 2 +- .../proposals/discussion/src/lib.rs | 6 ++-- runtime-modules/proposals/engine/src/lib.rs | 6 ++-- .../engine/src/tests/mock/proposals.rs | 2 +- runtime-modules/referendum/src/lib.rs | 22 +++++++------ runtime-modules/referendum/src/mock.rs | 4 +-- runtime-modules/storage/src/benchmarking.rs | 8 ++--- runtime-modules/storage/src/lib.rs | 2 +- runtime-modules/utility/src/lib.rs | 2 +- .../working-group/src/benchmarking.rs | 22 ++++++------- runtime-modules/working-group/src/checks.rs | 10 +++--- runtime-modules/working-group/src/lib.rs | 6 ++-- 26 files changed, 128 insertions(+), 124 deletions(-) diff --git a/runtime-modules/bounty/src/actors.rs b/runtime-modules/bounty/src/actors.rs index b914fc6253..c58fbe0af2 100644 --- a/runtime-modules/bounty/src/actors.rs +++ b/runtime-modules/bounty/src/actors.rs @@ -27,7 +27,7 @@ pub(crate) enum BountyActorManager { impl BountyActorManager { // Construct BountyActor by extrinsic origin and optional member_id. pub(crate) fn ensure_bounty_actor_manager( - origin: T::Origin, + origin: T::RuntimeOrigin, actor: BountyActor>, ) -> Result, DispatchError> { match actor { diff --git a/runtime-modules/bounty/src/lib.rs b/runtime-modules/bounty/src/lib.rs index 05d407da38..44d4480895 100644 --- a/runtime-modules/bounty/src/lib.rs +++ b/runtime-modules/bounty/src/lib.rs @@ -912,7 +912,7 @@ decl_error! { decl_module! { /// Bounty pallet Substrate Module - pub struct Module for enum Call where origin: T::Origin { + pub struct Module for enum Call where origin: T::RuntimeOrigin { /// Predefined errors type Error = Error; @@ -1930,7 +1930,7 @@ impl Module { } fn ensure_switch_oracle_actors( - origin: T::Origin, + origin: T::RuntimeOrigin, current_oracle: BountyActor>, new_oracle: BountyActor>, ) -> Result>, DispatchError> { diff --git a/runtime-modules/common/src/origin.rs b/runtime-modules/common/src/origin.rs index 5d1e296490..aeaa16b642 100644 --- a/runtime-modules/common/src/origin.rs +++ b/runtime-modules/common/src/origin.rs @@ -6,21 +6,21 @@ pub trait ActorOriginValidator { fn ensure_actor_origin(origin: Origin, actor_id: ActorId) -> Result; } -// TODO: delete when T::Origin will support the clone() -/// Multiplies the T::Origin. +// TODO: delete when T::RuntimeOrigin will support the clone() +/// Multiplies the T::RuntimeOrigin. /// In our current substrate version frame_system::Origin doesn't support clone(), /// but it will be supported in latest up-to-date substrate version. -pub fn double_origin(origin: T::Origin) -> (T::Origin, T::Origin) { - let coerced_origin = origin.into().ok().unwrap_or(RawOrigin::None); +// pub fn double_origin(origin: T::RuntimeOrigin) -> (T::RuntimeOrigin, T::RuntimeOrigin) { +// let coerced_origin = origin.into().ok().unwrap_or(RawOrigin::None); - let (cloned_origin1, cloned_origin2) = match coerced_origin { - RawOrigin::None => (RawOrigin::None, RawOrigin::None), - RawOrigin::Root => (RawOrigin::Root, RawOrigin::Root), - RawOrigin::Signed(account_id) => ( - RawOrigin::Signed(account_id.clone()), - RawOrigin::Signed(account_id), - ), - }; +// let (cloned_origin1, cloned_origin2) = match coerced_origin { +// RawOrigin::None => (RawOrigin::None, RawOrigin::None), +// RawOrigin::Root => (RawOrigin::Root, RawOrigin::Root), +// RawOrigin::Signed(account_id) => ( +// RawOrigin::Signed(account_id.clone()), +// RawOrigin::Signed(account_id), +// ), +// }; - (cloned_origin1.into(), cloned_origin2.into()) -} +// (cloned_origin1.into(), cloned_origin2.into()) +// } diff --git a/runtime-modules/common/src/working_group.rs b/runtime-modules/common/src/working_group.rs index f4ab702aab..ca94fa801b 100644 --- a/runtime-modules/common/src/working_group.rs +++ b/runtime-modules/common/src/working_group.rs @@ -50,10 +50,10 @@ pub use iterable_enums::WorkingGroup; /// Working group interface to work with its members - workers and leaders. pub trait WorkingGroupAuthenticator { /// Validate origin for the worker. - fn ensure_worker_origin(origin: T::Origin, worker_id: &T::ActorId) -> DispatchResult; + fn ensure_worker_origin(origin: T::RuntimeOrigin, worker_id: &T::ActorId) -> DispatchResult; /// Validate origin for the active leader. - fn ensure_leader_origin(origin: T::Origin) -> DispatchResult; + fn ensure_leader_origin(origin: T::RuntimeOrigin) -> DispatchResult; /// Get member ID of the current leader. fn get_leader_member_id() -> Option; diff --git a/runtime-modules/constitution/src/lib.rs b/runtime-modules/constitution/src/lib.rs index bec977ca3c..5dcba79da7 100644 --- a/runtime-modules/constitution/src/lib.rs +++ b/runtime-modules/constitution/src/lib.rs @@ -74,7 +74,7 @@ decl_event! { } decl_module! { - pub struct Module for enum Call where origin: T::Origin { + pub struct Module for enum Call where origin: T::RuntimeOrigin { fn deposit_event() = default; /// Sets the current constitution hash. Requires root origin. diff --git a/runtime-modules/content/src/benchmarks/mod.rs b/runtime-modules/content/src/benchmarks/mod.rs index b34475d392..a8a7de33c1 100644 --- a/runtime-modules/content/src/benchmarks/mod.rs +++ b/runtime-modules/content/src/benchmarks/mod.rs @@ -198,7 +198,7 @@ impl RuntimeConfig for T where { } -fn get_signed_account_id(account_id: u64) -> T::Origin +fn get_signed_account_id(account_id: u64) -> T::RuntimeOrigin where T::AccountId: CreateAccountId, T: Config, @@ -274,7 +274,7 @@ fn apply_on_opening_helper, I: Instance>( } fn add_and_apply_opening, I: Instance>( - add_opening_origin: &T::Origin, + add_opening_origin: &T::RuntimeOrigin, applicant_account_id: &T::AccountId, applicant_member_id: &T::MemberId, job_opening_type: &OpeningType, @@ -288,7 +288,7 @@ fn add_and_apply_opening, I: Instance>( } fn add_opening_helper, I: Instance>( - add_opening_origin: &T::Origin, + add_opening_origin: &T::RuntimeOrigin, job_opening_type: &OpeningType, ) -> OpeningId { working_group::Module::::add_opening( @@ -327,7 +327,7 @@ where let worker_id = working_group::NextWorkerId::::get(); let (opening_id, application_id) = add_and_apply_opening::( - &T::Origin::from(RawOrigin::Signed(leader_acc.clone())), + &T::RuntimeOrigin::from(RawOrigin::Signed(leader_acc.clone())), &account_id, &member_id, &OpeningType::Regular, @@ -367,7 +367,7 @@ where let account_id = change_member_account::(member_id, acc_id); let (opening_id, application_id) = add_and_apply_opening::( - &T::Origin::from(RawOrigin::Root), + &T::RuntimeOrigin::from(RawOrigin::Root), &account_id, &member_id, &OpeningType::Leader, @@ -510,7 +510,7 @@ fn set_dyn_bag_creation_storage_bucket_numbers( { let storage_wg_leader_signed = RawOrigin::Signed(lead_account_id); Storage::::update_number_of_storage_buckets_in_dynamic_bag_creation_policy( - T::Origin::from(storage_wg_leader_signed), + T::RuntimeOrigin::from(storage_wg_leader_signed), bag_type, storage_bucket_number, ) @@ -526,7 +526,7 @@ fn update_families_in_dynamic_bag_creation_policy( { let storage_wg_leader_signed = RawOrigin::Signed(lead_account_id); Storage::::update_families_in_dynamic_bag_creation_policy( - T::Origin::from(storage_wg_leader_signed), + T::RuntimeOrigin::from(storage_wg_leader_signed), bag_type, families, ) @@ -542,7 +542,7 @@ fn set_storage_buckets_voucher_max_limits( { let storage_wg_leader_signed = RawOrigin::Signed(lead_account_id); Storage::::update_storage_buckets_voucher_max_limits( - T::Origin::from(storage_wg_leader_signed), + T::RuntimeOrigin::from(storage_wg_leader_signed), voucher_objects_size_limit, voucher_objs_number_limit, ) @@ -556,7 +556,7 @@ where // Set storage bucket in the dynamic bag creation policy to zero. let storage_wg_leader_signed = RawOrigin::Signed(lead_account_id); Storage::::create_storage_bucket( - T::Origin::from(storage_wg_leader_signed), + T::RuntimeOrigin::from(storage_wg_leader_signed), None, accepting_bags, storage_bucket_objs_size_limit::(), @@ -581,7 +581,7 @@ where .next_distribution_bucket_index; Storage::::create_distribution_bucket( - T::Origin::from(storage_wg_leader_signed.clone()), + T::RuntimeOrigin::from(storage_wg_leader_signed.clone()), distribution_bucket_family_id, true, ) @@ -609,8 +609,10 @@ where let db_family_id = Storage::::next_distribution_bucket_family_id(); - Storage::::create_distribution_bucket_family(T::Origin::from(distribution_wg_leader_signed)) - .unwrap(); + Storage::::create_distribution_bucket_family(T::RuntimeOrigin::from( + distribution_wg_leader_signed, + )) + .unwrap(); ( db_family_id, @@ -1654,7 +1656,7 @@ fn add_english_auction_bid( video_id: T::VideoId, ) -> BalanceOf { let bid_amount = nft_buy_now_price::() - Pallet::::min_bid_step(); - let origin: T::Origin = RawOrigin::Signed(sender).into(); + let origin: T::RuntimeOrigin = RawOrigin::Signed(sender).into(); Pallet::::make_english_auction_bid(origin, participant_id, video_id, bid_amount).unwrap(); bid_amount } @@ -1665,7 +1667,7 @@ fn add_open_auction_bid( video_id: T::VideoId, ) -> OpenAuctionBid { let bid_amount = nft_buy_now_price::() - 1u32.into(); - let origin: T::Origin = RawOrigin::Signed(sender).into(); + let origin: T::RuntimeOrigin = RawOrigin::Signed(sender).into(); Pallet::::make_open_auction_bid(origin, participant_id, video_id, bid_amount).unwrap(); Pallet::::open_auction_bid_by_video_and_member(video_id, participant_id) } diff --git a/runtime-modules/content/src/lib.rs b/runtime-modules/content/src/lib.rs index 5f9544e6bb..b9a80f517c 100644 --- a/runtime-modules/content/src/lib.rs +++ b/runtime-modules/content/src/lib.rs @@ -310,7 +310,7 @@ decl_storage! { generate_storage_info } decl_module! { - pub struct Module for enum Call where origin: T::Origin { + pub struct Module for enum Call where origin: T::RuntimeOrigin { /// Predefined errors type Error = Error; @@ -4321,7 +4321,7 @@ impl Module { } fn ensure_can_claim_channel_reward( - origin: &T::Origin, + origin: &T::RuntimeOrigin, actor: &ContentActor, item: &PullPayment, proof: &[ProofElement], diff --git a/runtime-modules/content/src/permissions/mod.rs b/runtime-modules/content/src/permissions/mod.rs index e41ba60b75..1db649fe3f 100644 --- a/runtime-modules/content/src/permissions/mod.rs +++ b/runtime-modules/content/src/permissions/mod.rs @@ -414,7 +414,7 @@ fn ensure_agent_has_required_permissions( /// Ensure actor can manage nft pub fn ensure_actor_authorized_to_manage_nft( - origin: T::Origin, + origin: T::RuntimeOrigin, actor: &ContentActor, nft_owner: &NftOwner, in_channel: T::ChannelId, @@ -436,7 +436,7 @@ pub fn ensure_actor_authorized_to_manage_nft( // Ensure actor can manage categories pub fn ensure_actor_authorized_to_manage_categories( - origin: T::Origin, + origin: T::RuntimeOrigin, actor: &ContentActor, ) -> DispatchResult { // Only lead and curators can manage categories @@ -465,7 +465,7 @@ pub fn actor_to_channel_owner( // authorize actor and claim payment pub fn ensure_actor_authorized_to_claim_payment( - origin: T::Origin, + origin: T::RuntimeOrigin, actor: &ContentActor, channel: &Channel, ) -> Result, DispatchError> { @@ -479,7 +479,7 @@ pub fn ensure_actor_authorized_to_claim_payment( } pub fn ensure_actor_authorized_to_withdraw_from_channel( - origin: T::Origin, + origin: T::RuntimeOrigin, actor: &ContentActor, channel: &Channel, ) -> Result, DispatchError> { @@ -545,7 +545,7 @@ pub fn ensure_actor_authorized_to_perform_moderation_actions( // start Transfer channel check. pub fn ensure_actor_authorized_to_transfer_channel( - origin: T::Origin, + origin: T::RuntimeOrigin, actor: &ContentActor, channel: &Channel, ) -> Result, DispatchError> { @@ -560,7 +560,7 @@ pub fn ensure_actor_authorized_to_transfer_channel( // cancel Transfer channel check. pub fn ensure_actor_authorized_to_cancel_channel_transfer( - origin: T::Origin, + origin: T::RuntimeOrigin, actor: &ContentActor, channel: &Channel, ) -> Result, DispatchError> { @@ -575,7 +575,7 @@ pub fn ensure_actor_authorized_to_cancel_channel_transfer( // Council reward pub fn ensure_actor_authorized_to_claim_council_reward( - origin: T::Origin, + origin: T::RuntimeOrigin, owner: &ChannelOwner, ) -> DispatchResult { let sender = ensure_signed(origin)?; @@ -600,7 +600,7 @@ pub fn ensure_no_channel_transfers(channel: &Channel) -> DispatchR // Nft limits pub fn ensure_actor_authorized_to_update_channel_nft_limits( - origin: T::Origin, + origin: T::RuntimeOrigin, actor: &ContentActor, channel: &Channel, ) -> DispatchResult { @@ -626,7 +626,7 @@ pub fn get_member_id_of_actor( } pub fn ensure_actor_authorized_to_issue_creator_token( - origin: T::Origin, + origin: T::RuntimeOrigin, actor: &ContentActor, channel: &Channel, ) -> Result { @@ -637,7 +637,7 @@ pub fn ensure_actor_authorized_to_issue_creator_token( } pub fn ensure_actor_authorized_to_claim_creator_token_patronage( - origin: T::Origin, + origin: T::RuntimeOrigin, actor: &ContentActor, channel: &Channel, ) -> Result { @@ -648,7 +648,7 @@ pub fn ensure_actor_authorized_to_claim_creator_token_patronage( } pub fn ensure_actor_authorized_to_init_and_manage_creator_token_sale( - origin: T::Origin, + origin: T::RuntimeOrigin, actor: &ContentActor, channel: &Channel, ) -> Result<(T::AccountId, Option), DispatchError> { @@ -660,7 +660,7 @@ pub fn ensure_actor_authorized_to_init_and_manage_creator_token_sale( } pub fn ensure_actor_authorized_to_perform_creator_token_issuer_transfer( - origin: T::Origin, + origin: T::RuntimeOrigin, actor: &ContentActor, channel: &Channel, ) -> Result { @@ -671,7 +671,7 @@ pub fn ensure_actor_authorized_to_perform_creator_token_issuer_transfer( - origin: T::Origin, + origin: T::RuntimeOrigin, actor: &ContentActor, channel: &Channel, ) -> Result { @@ -682,7 +682,7 @@ pub fn ensure_actor_authorized_to_make_creator_token_permissionless( } pub fn ensure_actor_authorized_to_reduce_creator_token_patronage_rate( - origin: T::Origin, + origin: T::RuntimeOrigin, actor: &ContentActor, channel: &Channel, ) -> Result { @@ -693,7 +693,7 @@ pub fn ensure_actor_authorized_to_reduce_creator_token_patronage_rate } pub fn ensure_actor_authorized_to_manage_revenue_splits( - origin: T::Origin, + origin: T::RuntimeOrigin, actor: &ContentActor, channel: &Channel, ) -> Result { @@ -704,7 +704,7 @@ pub fn ensure_actor_authorized_to_manage_revenue_splits( } pub fn ensure_actor_authorized_to_deissue_creator_token( - origin: T::Origin, + origin: T::RuntimeOrigin, actor: &ContentActor, channel: &Channel, ) -> Result { diff --git a/runtime-modules/council/src/lib.rs b/runtime-modules/council/src/lib.rs index b73da9bcc7..c7ce71e09d 100644 --- a/runtime-modules/council/src/lib.rs +++ b/runtime-modules/council/src/lib.rs @@ -525,7 +525,7 @@ impl From for Error { /////////////////// Module definition and implementation /////////////////////// decl_module! { - pub struct Module for enum Call where origin: T::Origin { + pub struct Module for enum Call where origin: T::RuntimeOrigin { /// Predefined errors type Error = Error; @@ -1614,7 +1614,7 @@ impl EnsureChecks { /////////////////// Common checks ////////////////////////////////////////// fn ensure_user_membership( - origin: T::Origin, + origin: T::RuntimeOrigin, membership_id: &T::MemberId, ) -> Result> { let account_id = T::MemberOriginValidator::ensure_member_controller_account_origin( @@ -1630,7 +1630,7 @@ impl EnsureChecks { // Ensures there is no problem in announcing candidacy. fn can_announce_candidacy( - origin: T::Origin, + origin: T::RuntimeOrigin, membership_id: &T::MemberId, staking_account_id: &T::AccountId, stake: &Balance, @@ -1683,7 +1683,7 @@ impl EnsureChecks { // Ensures there is no problem in releasing old candidacy stake. fn can_release_candidacy_stake( - origin: T::Origin, + origin: T::RuntimeOrigin, membership_id: &T::MemberId, ) -> Result> { // ensure user's membership @@ -1703,7 +1703,7 @@ impl EnsureChecks { // Ensures there is no problem in withdrawing already announced candidacy. fn can_withdraw_candidacy( - origin: T::Origin, + origin: T::RuntimeOrigin, membership_id: &T::MemberId, ) -> Result<(CouncilStageAnnouncing, CandidateOf), Error> { // ensure user's membership @@ -1729,7 +1729,7 @@ impl EnsureChecks { // Ensures there is no problem in setting new note for the candidacy. fn can_set_candidacy_note( - origin: T::Origin, + origin: T::RuntimeOrigin, membership_id: &T::MemberId, ) -> Result<(), Error> { // ensure user's membership @@ -1751,28 +1751,28 @@ impl EnsureChecks { } // Ensures there is no problem in setting the budget balance. - fn can_set_budget(origin: T::Origin) -> Result<(), Error> { + fn can_set_budget(origin: T::RuntimeOrigin) -> Result<(), Error> { ensure_root(origin)?; Ok(()) } // Ensures there is no problem in planning next budget refill. - fn can_plan_budget_refill(origin: T::Origin) -> Result<(), Error> { + fn can_plan_budget_refill(origin: T::RuntimeOrigin) -> Result<(), Error> { ensure_root(origin)?; Ok(()) } // Ensures there is no problem in setting the budget increment. - fn can_set_budget_increment(origin: T::Origin) -> Result<(), Error> { + fn can_set_budget_increment(origin: T::RuntimeOrigin) -> Result<(), Error> { ensure_root(origin)?; Ok(()) } // Ensures there is no problem in setting the councilor reward. - fn can_set_councilor_reward(origin: T::Origin) -> Result<(), Error> { + fn can_set_councilor_reward(origin: T::RuntimeOrigin) -> Result<(), Error> { ensure_root(origin)?; Ok(()) @@ -1780,9 +1780,9 @@ impl EnsureChecks { } impl - CouncilOriginValidator for Module + CouncilOriginValidator for Module { - fn ensure_member_consulate(origin: T::Origin, member_id: T::MemberId) -> DispatchResult { + fn ensure_member_consulate(origin: T::RuntimeOrigin, member_id: T::MemberId) -> DispatchResult { EnsureChecks::::ensure_user_membership(origin, &member_id)?; let is_councilor = Self::council_members() diff --git a/runtime-modules/council/src/mock.rs b/runtime-modules/council/src/mock.rs index 6e249adaa4..7db790ea5c 100644 --- a/runtime-modules/council/src/mock.rs +++ b/runtime-modules/council/src/mock.rs @@ -567,9 +567,9 @@ where T::BlockNumber: From + Into, Balance: From + Into, { - pub fn mock_origin(origin: OriginType) -> T::Origin { + pub fn mock_origin(origin: OriginType) -> T::RuntimeOrigin { match origin { - OriginType::Signed(account_id) => T::Origin::from(RawOrigin::Signed(account_id)), + OriginType::Signed(account_id) => T::RuntimeOrigin::from(RawOrigin::Signed(account_id)), OriginType::Root => RawOrigin::Root.into(), //_ => panic!("not implemented"), } @@ -682,9 +682,9 @@ where T::Hash: From<::Hash> + Into<::Hash>, - T::Origin: From<::Origin> + T::RuntimeOrigin: From<::Origin> + Into<::Origin>, - >::VotePower: + >::VotePower: From + Into, T::MemberId: Into, { @@ -740,7 +740,7 @@ where OptionResult< T::MemberId, , intermediate_results: BTreeMap< u64, - >::VotePower, + >::VotePower, >, expected_update_block_number: T::BlockNumber, ) { diff --git a/runtime-modules/forum/src/benchmarking.rs b/runtime-modules/forum/src/benchmarking.rs index 7a5a149c06..4c758d2068 100644 --- a/runtime-modules/forum/src/benchmarking.rs +++ b/runtime-modules/forum/src/benchmarking.rs @@ -134,7 +134,7 @@ where let (caller_id, member_id) = member_funded_account::(id as u32); let (opening_id, application_id) = add_and_apply_opening::( - &T::Origin::from(RawOrigin::Root), + &T::RuntimeOrigin::from(RawOrigin::Root), &caller_id, &member_id, &OpeningType::Leader, @@ -159,7 +159,7 @@ where } fn add_and_apply_opening>( - add_opening_origin: &T::Origin, + add_opening_origin: &T::RuntimeOrigin, applicant_account_id: &T::AccountId, applicant_member_id: &T::MemberId, job_opening_type: &OpeningType, @@ -173,7 +173,7 @@ fn add_and_apply_opening>( - add_opening_origin: &T::Origin, + add_opening_origin: &T::RuntimeOrigin, job_opening_type: &OpeningType, ) -> OpeningId { ForumGroup::::add_opening( diff --git a/runtime-modules/forum/src/lib.rs b/runtime-modules/forum/src/lib.rs index 20f37e15ac..113df1b845 100755 --- a/runtime-modules/forum/src/lib.rs +++ b/runtime-modules/forum/src/lib.rs @@ -483,7 +483,7 @@ decl_event!( ); decl_module! { - pub struct Module for enum Call where origin: T::Origin { + pub struct Module for enum Call where origin: T::RuntimeOrigin { /// Predefined errors type Error = Error; diff --git a/runtime-modules/membership/src/lib.rs b/runtime-modules/membership/src/lib.rs index 8d65a8512e..005cb2de92 100644 --- a/runtime-modules/membership/src/lib.rs +++ b/runtime-modules/membership/src/lib.rs @@ -430,7 +430,7 @@ decl_event! { } decl_module! { - pub struct Module for enum Call where origin: T::Origin { + pub struct Module for enum Call where origin: T::RuntimeOrigin { /// Predefined errors type Error = Error; @@ -1375,7 +1375,7 @@ impl Module { // Ensure origin corresponds to the controller account of the member. fn ensure_member_controller_account_origin_signed( - origin: T::Origin, + origin: T::RuntimeOrigin, member_id: &T::MemberId, ) -> Result, Error> { // Ensure transaction is signed. @@ -1453,9 +1453,9 @@ impl common::StakingAccountValidator for Module { } } -impl MemberOriginValidator for Module { +impl MemberOriginValidator for Module { fn ensure_member_controller_account_origin( - origin: T::Origin, + origin: T::RuntimeOrigin, actor_id: T::MemberId, ) -> Result { let signer_account_id = ensure_signed(origin).map_err(|_| Error::::UnsignedOrigin)?; diff --git a/runtime-modules/project-token/src/lib.rs b/runtime-modules/project-token/src/lib.rs index 689e2486de..dc1a603d11 100644 --- a/runtime-modules/project-token/src/lib.rs +++ b/runtime-modules/project-token/src/lib.rs @@ -201,7 +201,7 @@ decl_storage! { generate_storage_info decl_module! { pub struct Module for enum Call where - origin: T::Origin + origin: T::RuntimeOrigin { /// Default deposit_event() handler diff --git a/runtime-modules/proposals/codex/src/lib.rs b/runtime-modules/proposals/codex/src/lib.rs index 58973c45f0..4d68a0799e 100644 --- a/runtime-modules/proposals/codex/src/lib.rs +++ b/runtime-modules/proposals/codex/src/lib.rs @@ -393,7 +393,7 @@ decl_storage! { generate_storage_info decl_module! { /// Proposal codex substrate module Call - pub struct Module for enum Call where origin: T::Origin { + pub struct Module for enum Call where origin: T::RuntimeOrigin { /// Predefined errors type Error = Error; diff --git a/runtime-modules/proposals/discussion/src/lib.rs b/runtime-modules/proposals/discussion/src/lib.rs index a72f8bd765..ccabd3918f 100644 --- a/runtime-modules/proposals/discussion/src/lib.rs +++ b/runtime-modules/proposals/discussion/src/lib.rs @@ -30,7 +30,7 @@ //! pub trait Config: discussions::Config + common::membership::MembershipTypes {} //! //! decl_module! { -//! pub struct Module for enum Call where origin: T::Origin { +//! pub struct Module for enum Call where origin: T::RuntimeOrigin { //! #[weight = 10_000_000] //! pub fn create_discussion(origin, title: Vec, author_id : T::MemberId) { //! ensure_root(origin)?; @@ -241,7 +241,7 @@ decl_storage! { generate_storage_info decl_module! { /// 'Proposal discussion' substrate module - pub struct Module for enum Call where origin: T::Origin { + pub struct Module for enum Call where origin: T::RuntimeOrigin { /// Predefined errors type Error = Error; @@ -541,7 +541,7 @@ impl Module { } fn ensure_thread_mode( - origin: T::Origin, + origin: T::RuntimeOrigin, thread_author_id: MemberId, thread_id: T::ThreadId, ) -> DispatchResult { diff --git a/runtime-modules/proposals/engine/src/lib.rs b/runtime-modules/proposals/engine/src/lib.rs index f330a21296..9f6821c041 100644 --- a/runtime-modules/proposals/engine/src/lib.rs +++ b/runtime-modules/proposals/engine/src/lib.rs @@ -78,7 +78,7 @@ //! pub trait Config: engine::Config + common::membership::MembershipTypes {} //! //! decl_module! { -//! pub struct Module for enum Call where origin: T::Origin { +//! pub struct Module for enum Call where origin: T::RuntimeOrigin { //! #[weight = 10_000_000] //! fn executable_proposal(origin) { //! print("executed!"); @@ -414,7 +414,7 @@ decl_storage! { generate_storage_info decl_module! { /// 'Proposal engine' substrate module - pub struct Module for enum Call where origin: T::Origin { + pub struct Module for enum Call where origin: T::RuntimeOrigin { /// Predefined errors type Error = Error; @@ -887,7 +887,7 @@ impl Module { execution_code_weight = proposal_code.get_dispatch_info().weight; if let Err(dispatch_error) = - proposal_code.dispatch_bypass_filter(T::Origin::from(RawOrigin::Root)) + proposal_code.dispatch_bypass_filter(T::RuntimeOrigin::from(RawOrigin::Root)) { ExecutionStatus::failed_execution(Self::parse_dispatch_error( dispatch_error.error, diff --git a/runtime-modules/proposals/engine/src/tests/mock/proposals.rs b/runtime-modules/proposals/engine/src/tests/mock/proposals.rs index d0c60781df..f2b6cc3738 100644 --- a/runtime-modules/proposals/engine/src/tests/mock/proposals.rs +++ b/runtime-modules/proposals/engine/src/tests/mock/proposals.rs @@ -5,7 +5,7 @@ use sp_std::vec::Vec; pub trait Config: frame_system::Config {} decl_module! { - pub struct Module for enum Call where origin: T::Origin { + pub struct Module for enum Call where origin: T::RuntimeOrigin { /// Working extrinsic test #[weight = 10_000_000] pub fn dummy_proposal(_origin, _title: Vec, _description: Vec) {} diff --git a/runtime-modules/referendum/src/lib.rs b/runtime-modules/referendum/src/lib.rs index cd27bc9321..58dcc49ce4 100644 --- a/runtime-modules/referendum/src/lib.rs +++ b/runtime-modules/referendum/src/lib.rs @@ -414,7 +414,7 @@ impl, I: Instance> From for Error { decl_module! { pub struct Module, I: Instance = DefaultInstance> for enum Call - where origin: T::Origin { + where origin: T::RuntimeOrigin { /// Predefined errors type Error = Error; @@ -632,14 +632,14 @@ impl, I: Instance> Module { /////////////////// ReferendumManager ////////////////////////////////////////// -impl, I: Instance> ReferendumManager - for Module +impl, I: Instance> + ReferendumManager for Module { type VotePower = T::VotePower; // Start new referendum run. fn start_referendum( - origin: T::Origin, + origin: T::RuntimeOrigin, extra_winning_target_count: u32, cycle_id: u64, ) -> Result<(), ()> { @@ -959,7 +959,7 @@ struct EnsureChecks, I: Instance> { impl, I: Instance> EnsureChecks { /////////////////// Common checks ////////////////////////////////////////// - fn ensure_regular_user(origin: T::Origin) -> Result> { + fn ensure_regular_user(origin: T::RuntimeOrigin) -> Result> { let account_id = ensure_signed(origin)?; Ok(account_id) @@ -967,7 +967,7 @@ impl, I: Instance> EnsureChecks { /////////////////// Action checks ////////////////////////////////////////// - fn can_start_referendum(origin: T::Origin) -> Result<(), ()> { + fn can_start_referendum(origin: T::RuntimeOrigin) -> Result<(), ()> { T::ManagerOrigin::ensure_origin(origin).map_err(|_| ())?; // ensure referendum is not already running @@ -980,7 +980,7 @@ impl, I: Instance> EnsureChecks { } fn can_vote( - origin: T::Origin, + origin: T::RuntimeOrigin, stake: &BalanceOf, ) -> Result<(u64, T::AccountId), Error> { fn prevent_repeated_vote, I: Instance>( @@ -1036,8 +1036,10 @@ impl, I: Instance> EnsureChecks { Ok((current_cycle_id, account_id)) } - fn can_reveal_vote>( - origin: T::Origin, + fn can_reveal_vote< + R: ReferendumManager, + >( + origin: T::RuntimeOrigin, salt: &[u8], vote_option_id: &::MemberId, ) -> Result, Error> { @@ -1086,7 +1088,7 @@ impl, I: Instance> EnsureChecks { Ok((stage_data, account_id, cast_vote)) } - fn can_release_vote_stake(origin: T::Origin) -> Result> { + fn can_release_vote_stake(origin: T::RuntimeOrigin) -> Result> { // ensure superuser requested action let account_id = Self::ensure_regular_user(origin)?; diff --git a/runtime-modules/referendum/src/mock.rs b/runtime-modules/referendum/src/mock.rs index c5e789d9d5..bed967123f 100644 --- a/runtime-modules/referendum/src/mock.rs +++ b/runtime-modules/referendum/src/mock.rs @@ -372,9 +372,9 @@ impl, I: Instance> InstanceMockUtils where T::BlockNumber: From + Into, { - pub fn mock_origin(origin: OriginType) -> T::Origin { + pub fn mock_origin(origin: OriginType) -> T::RuntimeOrigin { match origin { - OriginType::Signed(account_id) => T::Origin::from(RawOrigin::Signed(account_id)), + OriginType::Signed(account_id) => T::RuntimeOrigin::from(RawOrigin::Signed(account_id)), OriginType::Root => RawOrigin::Root.into(), OriginType::None => RawOrigin::None.into(), //_ => panic!("not implemented"), diff --git a/runtime-modules/storage/src/benchmarking.rs b/runtime-modules/storage/src/benchmarking.rs index 8a3ffd55d8..db51d1b49f 100644 --- a/runtime-modules/storage/src/benchmarking.rs +++ b/runtime-modules/storage/src/benchmarking.rs @@ -175,7 +175,7 @@ where let (caller_id, member_id) = member_funded_account::(id.saturated_into()); let (opening_id, application_id) = add_and_apply_opening::( - &T::Origin::from(RawOrigin::Root), + &T::RuntimeOrigin::from(RawOrigin::Root), &caller_id, &member_id, &OpeningType::Leader, @@ -211,7 +211,7 @@ where let leader_origin = RawOrigin::Signed(leader_account_id); let (opening_id, application_id) = add_and_apply_opening::( - &T::Origin::from(leader_origin.clone()), + &T::RuntimeOrigin::from(leader_origin.clone()), &caller_id, &member_id, &OpeningType::Regular, @@ -262,7 +262,7 @@ where } fn add_and_apply_opening, I: Instance>( - add_opening_origin: &T::Origin, + add_opening_origin: &T::RuntimeOrigin, applicant_account_id: &T::AccountId, applicant_member_id: &T::MemberId, job_opening_type: &OpeningType, @@ -276,7 +276,7 @@ fn add_and_apply_opening, I: Instance>( } fn add_opening_helper, I: Instance>( - add_opening_origin: &T::Origin, + add_opening_origin: &T::RuntimeOrigin, job_opening_type: &OpeningType, ) -> OpeningId { working_group::Module::::add_opening( diff --git a/runtime-modules/storage/src/lib.rs b/runtime-modules/storage/src/lib.rs index 848648ac78..616599d404 100644 --- a/runtime-modules/storage/src/lib.rs +++ b/runtime-modules/storage/src/lib.rs @@ -1705,7 +1705,7 @@ decl_error! { decl_module! { /// _Storage_ substrate module. - pub struct Module for enum Call where origin: T::Origin { + pub struct Module for enum Call where origin: T::RuntimeOrigin { /// Default deposit_event() handler fn deposit_event() = default; diff --git a/runtime-modules/utility/src/lib.rs b/runtime-modules/utility/src/lib.rs index de7294a2d4..d6f99b491f 100644 --- a/runtime-modules/utility/src/lib.rs +++ b/runtime-modules/utility/src/lib.rs @@ -127,7 +127,7 @@ decl_storage! { generate_storage_info } decl_module! { - pub struct Module for enum Call where origin: T::Origin { + pub struct Module for enum Call where origin: T::RuntimeOrigin { fn deposit_event() = default; /// Predefined errors diff --git a/runtime-modules/working-group/src/benchmarking.rs b/runtime-modules/working-group/src/benchmarking.rs index 70543bd8ec..4d2b058180 100644 --- a/runtime-modules/working-group/src/benchmarking.rs +++ b/runtime-modules/working-group/src/benchmarking.rs @@ -32,7 +32,7 @@ fn get_byte(num: u32, byte_number: u8) -> u8 { fn add_opening_helper, I: Instance>( id: u32, - add_opening_origin: &T::Origin, + add_opening_origin: &T::RuntimeOrigin, job_opening_type: &OpeningType, ) -> OpeningId { let staking_policy = StakePolicy { @@ -96,7 +96,7 @@ fn apply_on_opening_helper, I: Instance>( fn add_opening_and_apply_with_multiple_ids + membership::Config, I: Instance>( ids: &[u32], - add_opening_origin: &T::Origin, + add_opening_origin: &T::RuntimeOrigin, job_opening_type: &OpeningType, ) -> (OpeningId, BTreeSet, Vec) { let opening_id = add_opening_helper::(1, add_opening_origin, job_opening_type); @@ -123,7 +123,7 @@ fn add_opening_and_apply_with_multiple_ids + membership::Config, I: fn add_and_apply_opening, I: Instance>( id: u32, - add_opening_origin: &T::Origin, + add_opening_origin: &T::RuntimeOrigin, applicant_id: &T::AccountId, member_id: &T::MemberId, job_opening_type: &OpeningType, @@ -227,7 +227,7 @@ pub fn complete_opening + membership::Config, I: Instance>( let (opening_id, application_id) = add_and_apply_opening::( id, - &T::Origin::from(add_worker_origin.clone()), + &T::RuntimeOrigin::from(add_worker_origin.clone()), caller_id, &member_id, &job_opening_type, @@ -270,7 +270,7 @@ benchmarks_instance! { let (opening_id, successful_application_ids, application_account_id) = add_opening_and_apply_with_multiple_ids::( &(1..i).collect::>(), - &T::Origin::from(RawOrigin::Signed(lead_id.clone())), + &T::RuntimeOrigin::from(RawOrigin::Signed(lead_id.clone())), &OpeningType::Regular ); @@ -355,7 +355,7 @@ benchmarks_instance! { let (opening_id, successful_application_ids, _) = add_opening_and_apply_with_multiple_ids::( &(1..i).collect::>(), - &T::Origin::from(RawOrigin::Signed(lead_id.clone())), + &T::RuntimeOrigin::from(RawOrigin::Signed(lead_id.clone())), &OpeningType::Regular ); @@ -415,7 +415,7 @@ benchmarks_instance! { let (opening_id, successful_application_ids, _) = add_opening_and_apply_with_multiple_ids::( &(1..i).collect::>(), - &T::Origin::from(RawOrigin::Signed(lead_id.clone())), + &T::RuntimeOrigin::from(RawOrigin::Signed(lead_id.clone())), &OpeningType::Regular ); @@ -464,7 +464,7 @@ benchmarks_instance! { let (opening_id, successful_application_ids, _) = add_opening_and_apply_with_multiple_ids::( &(1..i).collect::>(), - &T::Origin::from(RawOrigin::Signed(lead_id.clone())), + &T::RuntimeOrigin::from(RawOrigin::Signed(lead_id.clone())), &OpeningType::Regular ); @@ -511,7 +511,7 @@ benchmarks_instance! { let (lead_account_id, lead_member_id) = member_funded_account::("lead", 0); let opening_id = add_opening_helper::( 0, - &T::Origin::from(RawOrigin::Root), + &T::RuntimeOrigin::from(RawOrigin::Root), &OpeningType::Leader ); @@ -586,7 +586,7 @@ benchmarks_instance! { let (opening_id, successful_application_ids, _) = add_opening_and_apply_with_multiple_ids::( &(1..i).collect::>(), - &T::Origin::from(RawOrigin::Signed(lead_id.clone())), + &T::RuntimeOrigin::from(RawOrigin::Signed(lead_id.clone())), &OpeningType::Regular ); }: fill_opening( @@ -637,7 +637,7 @@ benchmarks_instance! { insert_a_worker::(OpeningType::Leader, 0, None); let opening_id = add_opening_helper::( 1, - &T::Origin::from(RawOrigin::Signed(lead_id.clone())), + &T::RuntimeOrigin::from(RawOrigin::Signed(lead_id.clone())), &OpeningType::Regular ); diff --git a/runtime-modules/working-group/src/checks.rs b/runtime-modules/working-group/src/checks.rs index cacac554c6..ecc7c901fd 100644 --- a/runtime-modules/working-group/src/checks.rs +++ b/runtime-modules/working-group/src/checks.rs @@ -18,7 +18,7 @@ use crate::types::{ApplicationInfo, StakeParameters}; // Check opening: verifies origin and opening type compatibility. pub(crate) fn ensure_origin_for_opening_type, I: Instance>( - origin: T::Origin, + origin: T::RuntimeOrigin, opening_type: OpeningType, ) -> DispatchResult { match opening_type { @@ -34,7 +34,7 @@ pub(crate) fn ensure_origin_for_opening_type, I: Instance>( } pub(crate) fn ensure_stake_for_opening_type, I: Instance>( - origin: T::Origin, + origin: T::RuntimeOrigin, opening_type: OpeningType, ) -> DispatchResult { // Lead needs stake to generate opening @@ -149,7 +149,7 @@ pub(crate) fn ensure_is_lead_account, I: Instance>( // Check leader: ensures origin is signed by the leader. pub(crate) fn ensure_origin_is_active_leader, I: Instance>( - origin: T::Origin, + origin: T::RuntimeOrigin, ) -> DispatchResult { // Ensure is signed let signer = ensure_signed(origin)?; @@ -166,7 +166,7 @@ pub(crate) fn ensure_worker_exists, I: Instance>( // Check worker: ensures the origin contains signed account that belongs to existing worker. pub(crate) fn ensure_worker_signed, I: Instance>( - origin: T::Origin, + origin: T::RuntimeOrigin, worker_id: &WorkerId, ) -> Result, DispatchError> { // Ensure that it is signed @@ -186,7 +186,7 @@ pub(crate) fn ensure_worker_signed, I: Instance>( // Check worker: verifies proper origin for the worker operation. Returns whether the origin is sudo. pub(crate) fn ensure_origin_for_worker_operation, I: Instance>( - origin: T::Origin, + origin: T::RuntimeOrigin, worker_id: WorkerId, ) -> Result { let leader_worker_id = ensure_lead_is_set::()?; diff --git a/runtime-modules/working-group/src/lib.rs b/runtime-modules/working-group/src/lib.rs index 9af7897908..d29de4c3dd 100644 --- a/runtime-modules/working-group/src/lib.rs +++ b/runtime-modules/working-group/src/lib.rs @@ -338,7 +338,7 @@ decl_storage! { generate_storage_info decl_module! { /// _Working group_ substrate module. - pub struct Module, I: Instance=DefaultInstance> for enum Call where origin: T::Origin { + pub struct Module, I: Instance=DefaultInstance> for enum Call where origin: T::RuntimeOrigin { /// Default deposit_event() handler fn deposit_event() = default; @@ -1627,11 +1627,11 @@ impl, I: Instance> Module { impl, I: Instance> common::working_group::WorkingGroupAuthenticator for Module { - fn ensure_worker_origin(origin: T::Origin, worker_id: &WorkerId) -> DispatchResult { + fn ensure_worker_origin(origin: T::RuntimeOrigin, worker_id: &WorkerId) -> DispatchResult { checks::ensure_worker_signed::(origin, worker_id).map(|_| ()) } - fn ensure_leader_origin(origin: T::Origin) -> DispatchResult { + fn ensure_leader_origin(origin: T::RuntimeOrigin) -> DispatchResult { checks::ensure_origin_is_active_leader::(origin) } From eac15496fddd845a07d411f30cf46f1dd1febb0d Mon Sep 17 00:00:00 2001 From: Mokhtar Naamani Date: Fri, 3 Mar 2023 11:24:49 +0400 Subject: [PATCH 06/87] v0.9.39 - rename Event to RuntimeEvent --- runtime-modules/bounty/src/benchmarking.rs | 8 +- runtime-modules/bounty/src/lib.rs | 2 +- runtime-modules/bounty/src/tests/mocks.rs | 12 +- .../constitution/src/benchmarking.rs | 4 +- runtime-modules/constitution/src/lib.rs | 2 +- .../constitution/src/tests/mocks.rs | 4 +- runtime-modules/constitution/src/tests/mod.rs | 4 +- .../content/src/benchmarks/benchmarking.rs | 114 +++++++++--------- runtime-modules/content/src/benchmarks/mod.rs | 4 +- runtime-modules/content/src/lib.rs | 2 +- runtime-modules/content/src/tests/fixtures.rs | 2 +- runtime-modules/content/src/tests/mock.rs | 18 +-- runtime-modules/council/src/benchmarking.rs | 10 +- runtime-modules/council/src/lib.rs | 2 +- runtime-modules/council/src/mock.rs | 10 +- runtime-modules/forum/src/benchmarking.rs | 4 +- runtime-modules/forum/src/lib.rs | 2 +- runtime-modules/forum/src/mock.rs | 10 +- .../membership/src/benchmarking.rs | 4 +- runtime-modules/membership/src/lib.rs | 2 +- .../membership/src/tests/fixtures.rs | 4 +- runtime-modules/membership/src/tests/mock.rs | 6 +- .../project-token/src/benchmarking.rs | 6 +- runtime-modules/project-token/src/lib.rs | 2 +- .../project-token/src/tests/mock.rs | 10 +- .../proposals/codex/src/benchmarking.rs | 6 +- runtime-modules/proposals/codex/src/lib.rs | 2 +- .../proposals/codex/src/tests/mock.rs | 38 +++--- .../proposals/codex/src/tests/mod.rs | 4 +- .../proposals/discussion/src/benchmarking.rs | 6 +- .../proposals/discussion/src/lib.rs | 2 +- .../proposals/discussion/src/tests/mock.rs | 12 +- .../proposals/discussion/src/tests/mod.rs | 4 +- .../proposals/engine/src/benchmarking.rs | 10 +- runtime-modules/proposals/engine/src/lib.rs | 2 +- .../proposals/engine/src/tests/mock/mod.rs | 12 +- .../proposals/engine/src/tests/mod.rs | 10 +- .../referendum/src/benchmarking.rs | 6 +- runtime-modules/referendum/src/lib.rs | 2 +- runtime-modules/referendum/src/mock.rs | 8 +- runtime-modules/staking-handler/src/mock.rs | 4 +- runtime-modules/storage/src/benchmarking.rs | 4 +- runtime-modules/storage/src/lib.rs | 2 +- runtime-modules/storage/src/tests/mocks.rs | 12 +- runtime-modules/utility/src/benchmarking.rs | 4 +- runtime-modules/utility/src/lib.rs | 2 +- runtime-modules/utility/src/tests/mocks.rs | 34 +++--- .../working-group/src/benchmarking.rs | 6 +- runtime-modules/working-group/src/lib.rs | 2 +- .../working-group/src/tests/mock.rs | 8 +- runtime/src/lib.rs | 68 +++++------ 51 files changed, 259 insertions(+), 259 deletions(-) diff --git a/runtime-modules/bounty/src/benchmarking.rs b/runtime-modules/bounty/src/benchmarking.rs index 784956bf9f..4b5c7f5d02 100644 --- a/runtime-modules/bounty/src/benchmarking.rs +++ b/runtime-modules/bounty/src/benchmarking.rs @@ -36,17 +36,17 @@ pub fn run_to_block(target_block: T::BlockNumber) { } } -fn assert_last_event(generic_event: ::Event) { +fn assert_last_event(generic_event: ::RuntimeEvent) { let events = System::::events(); - let system_event: ::Event = generic_event.into(); + let system_event: ::RuntimeEvent = generic_event.into(); // compare to the last event record let EventRecord { event, .. } = &events[events.len() - 1]; assert_eq!(event, &system_event); } -fn assert_was_fired(generic_event: ::Event) { +fn assert_was_fired(generic_event: ::RuntimeEvent) { let events = System::::events(); - let system_event: ::Event = generic_event.into(); + let system_event: ::RuntimeEvent = generic_event.into(); assert!(events.iter().any(|ev| ev.event == system_event)); } diff --git a/runtime-modules/bounty/src/lib.rs b/runtime-modules/bounty/src/lib.rs index 44d4480895..cf59937422 100644 --- a/runtime-modules/bounty/src/lib.rs +++ b/runtime-modules/bounty/src/lib.rs @@ -129,7 +129,7 @@ pub trait Config: frame_system::Config + balances::Config + common::membership::MembershipTypes { /// Events - type Event: From> + Into<::Event>; + type RuntimeEvent: From> + Into<::RuntimeEvent>; /// The bounty's module id, used for deriving its sovereign account ID. type ModuleId: Get; diff --git a/runtime-modules/bounty/src/tests/mocks.rs b/runtime-modules/bounty/src/tests/mocks.rs index 13dc144106..2b6400a3d4 100644 --- a/runtime-modules/bounty/src/tests/mocks.rs +++ b/runtime-modules/bounty/src/tests/mocks.rs @@ -60,7 +60,7 @@ impl frame_system::Config for Test { type AccountId = u128; type Lookup = IdentityLookup; type Header = Header; - type Event = Event; + type RuntimeEvent = RuntimeEvent; type BlockHashCount = BlockHashCount; type DbWeight = (); type Version = (); @@ -75,7 +75,7 @@ impl frame_system::Config for Test { } impl Config for Test { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type ModuleId = BountyModuleId; type BountyId = u64; type Membership = (); @@ -184,7 +184,7 @@ impl pallet_timestamp::Config for Test { } impl membership::Config for Test { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type DefaultMembershipPrice = DefaultMembershipPrice; type ReferralCutMaximumPercent = ReferralCutMaximumPercent; type WorkingGroup = Wg; @@ -274,7 +274,7 @@ parameter_types! { impl balances::Config for Test { type Balance = u64; type DustRemoval = (); - type Event = Event; + type RuntimeEvent = RuntimeEvent; type ExistentialDeposit = ExistentialDeposit; type AccountStore = System; type MaxReserves = ConstU32<2>; @@ -300,7 +300,7 @@ parameter_types! { pub type ReferendumInstance = referendum::Instance1; impl council::Config for Test { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type Referendum = referendum::Pallet; type MinNumberOfExtraCandidates = MinNumberOfExtraCandidates; type CouncilSize = CouncilSize; @@ -328,7 +328,7 @@ parameter_types! { } impl referendum::Config for Test { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type MaxSaltLength = MaxSaltLength; type StakingHandler = staking_handler::StakingManager; type ManagerOrigin = EnsureOneOf, EnsureRoot>; diff --git a/runtime-modules/constitution/src/benchmarking.rs b/runtime-modules/constitution/src/benchmarking.rs index 0ffb0c969b..d170ecb10c 100644 --- a/runtime-modules/constitution/src/benchmarking.rs +++ b/runtime-modules/constitution/src/benchmarking.rs @@ -7,9 +7,9 @@ use frame_system::{EventRecord, RawOrigin}; use sp_runtime::traits::Hash; use sp_std::vec; -fn assert_last_event(generic_event: ::Event) { +fn assert_last_event(generic_event: ::RuntimeEvent) { let events = System::::events(); - let system_event: ::Event = generic_event.into(); + let system_event: ::RuntimeEvent = generic_event.into(); // compare to the last event record let EventRecord { event, .. } = &events[events.len() - 1]; assert_eq!(event, &system_event); diff --git a/runtime-modules/constitution/src/lib.rs b/runtime-modules/constitution/src/lib.rs index 5dcba79da7..efb6fc9b07 100644 --- a/runtime-modules/constitution/src/lib.rs +++ b/runtime-modules/constitution/src/lib.rs @@ -43,7 +43,7 @@ use sp_std::vec::Vec; type WeightInfoConstitution = ::WeightInfo; pub trait Config: frame_system::Config { - type Event: From> + Into<::Event>; + type RuntimeEvent: From> + Into<::RuntimeEvent>; /// Weight information for extrinsics in this pallet. type WeightInfo: WeightInfo; diff --git a/runtime-modules/constitution/src/tests/mocks.rs b/runtime-modules/constitution/src/tests/mocks.rs index 59608d0a27..1a2fe660d0 100644 --- a/runtime-modules/constitution/src/tests/mocks.rs +++ b/runtime-modules/constitution/src/tests/mocks.rs @@ -45,7 +45,7 @@ impl frame_system::Config for Test { type AccountId = u64; type Lookup = IdentityLookup; type Header = Header; - type Event = Event; + type RuntimeEvent = RuntimeEvent; type BlockHashCount = ConstU64<250>; type Version = (); type PalletInfo = PalletInfo; @@ -59,7 +59,7 @@ impl frame_system::Config for Test { } impl Config for Test { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type WeightInfo = (); } diff --git a/runtime-modules/constitution/src/tests/mod.rs b/runtime-modules/constitution/src/tests/mod.rs index 18c2c98562..59a5302f1f 100644 --- a/runtime-modules/constitution/src/tests/mod.rs +++ b/runtime-modules/constitution/src/tests/mod.rs @@ -25,12 +25,12 @@ fn run_to_block(n: u64) { pub struct EventFixture; impl EventFixture { pub fn assert_last_crate_event(expected_raw_event: Event) { - let converted_event = mocks::Event::Constitution(expected_raw_event); + let converted_event = mocks::RuntimeEvent::Constitution(expected_raw_event); Self::assert_last_global_event(converted_event) } - pub fn assert_last_global_event(expected_event: mocks::Event) { + pub fn assert_last_global_event(expected_event: mocks::RuntimeEvent) { let expected_event = EventRecord { phase: Phase::Initialization, event: expected_event, diff --git a/runtime-modules/content/src/benchmarks/benchmarking.rs b/runtime-modules/content/src/benchmarks/benchmarking.rs index bd414d29ab..a3898e01f1 100644 --- a/runtime-modules/content/src/benchmarks/benchmarking.rs +++ b/runtime-modules/content/src/benchmarks/benchmarking.rs @@ -90,7 +90,7 @@ benchmarks! { let channel_acc = ContentTreasury::::account_for_channel(channel_id); assert_last_event::( - ::Event::from( + ::RuntimeEvent::from( Event::::ChannelCreated( channel_id, channel, @@ -181,7 +181,7 @@ benchmarks! { assert!(ChannelById::::contains_key(&channel_id)); assert_last_event::( - ::Event::from( + ::RuntimeEvent::from( Event::::ChannelUpdated( actor, channel_id, @@ -251,7 +251,7 @@ benchmarks! { assert!(ChannelById::::contains_key(&channel_id)); assert_last_event::( - ::Event::from( + ::RuntimeEvent::from( Event::::ChannelUpdated( actor, channel_id, @@ -288,7 +288,7 @@ benchmarks! { verify { assert_last_event::( - ::Event::from( + ::RuntimeEvent::from( Event::::ChannelDeleted( actor, channel_id @@ -325,7 +325,7 @@ benchmarks! { verify { assert_last_event::( - ::Event::from( + ::RuntimeEvent::from( Event::::ChannelPrivilegeLevelUpdated( channel_id, privilege_level, @@ -363,7 +363,7 @@ benchmarks! { verify { assert_last_event::( - ::Event::from( + ::RuntimeEvent::from( Event::::ChannelPausedFeaturesUpdatedByModerator( actor, channel_id, @@ -414,7 +414,7 @@ benchmarks! { rationale.clone()) verify { assert_last_event::( - ::Event::from( + ::RuntimeEvent::from( Event::::ChannelAssetsDeletedByModerator( actor, channel_id, @@ -458,7 +458,7 @@ benchmarks! { verify { assert_last_event::( - ::Event::from( + ::RuntimeEvent::from( Event::::ChannelDeletedByModerator( actor, channel_id, @@ -495,7 +495,7 @@ benchmarks! { verify { assert_last_event::( - ::Event::from( + ::RuntimeEvent::from( Event::::ChannelVisibilitySetByModerator( actor, channel_id, @@ -542,7 +542,7 @@ benchmarks! { verify { assert_last_event::( - ::Event::from( + ::RuntimeEvent::from( Event::::VideoAssetsDeletedByModerator( actor, video_id, @@ -576,7 +576,7 @@ benchmarks! { verify { assert_last_event::( - ::Event::from( + ::RuntimeEvent::from( Event::::VideoDeletedByModerator( actor, video_id, @@ -607,7 +607,7 @@ benchmarks! { verify { assert_last_event::( - ::Event::from( + ::RuntimeEvent::from( Event::::VideoDeletedByModerator( actor, video_id, @@ -640,7 +640,7 @@ benchmarks! { verify { assert_last_event::( - ::Event::from( + ::RuntimeEvent::from( Event::::VideoVisibilitySetByModerator( actor, video_id, @@ -673,7 +673,7 @@ benchmarks! { let group = Pallet::::curator_group_by_id(group_id); assert!(group == CuratorGroupRecord::try_create::(true, &permissions_by_level).unwrap()); assert_last_event::( - ::Event::from( + ::RuntimeEvent::from( Event::::CuratorGroupCreated(group_id) ).into() ); @@ -698,7 +698,7 @@ benchmarks! { let group = Pallet::::curator_group_by_id(group_id); assert_eq!(group.get_permissions_by_level(), permissions_by_level); assert_last_event::( - ::Event::from( + ::RuntimeEvent::from( Event::::CuratorGroupPermissionsUpdated( group_id, permissions_by_level @@ -723,7 +723,7 @@ benchmarks! { let group = Pallet::::curator_group_by_id(group_id); assert!(!group.is_active()); assert_last_event::( - ::Event::from( + ::RuntimeEvent::from( Event::::CuratorGroupStatusSet(group_id, false) ).into() ); @@ -751,7 +751,7 @@ benchmarks! { Some(permissions.clone()) ); assert_last_event::( - ::Event::from( + ::RuntimeEvent::from( Event::::CuratorAdded(group_id, curator_id, permissions) ).into() ); @@ -773,7 +773,7 @@ benchmarks! { let group = Pallet::::curator_group_by_id(group_id); assert!(group.get_curators().get(&curator_id).is_none()); assert_last_event::( - ::Event::from( + ::RuntimeEvent::from( Event::::CuratorRemoved(group_id, curator_id) ).into() ); @@ -818,7 +818,7 @@ benchmarks! { assert_eq!(BTreeSet::from(video.data_objects), expected_asset_ids); assert_eq!(video.video_state_bloat_bond.amount, Pallet::::video_state_bloat_bond_value()); assert_last_event::( - ::Event::from( + ::RuntimeEvent::from( Event::::VideoCreated( actor, channel_id, @@ -879,7 +879,7 @@ benchmarks! { assert_eq!(BTreeSet::from(video.data_objects), expected_asset_ids); assert_eq!(video.video_state_bloat_bond.amount, Pallet::::video_state_bloat_bond_value()); assert_last_event::( - ::Event::from( + ::RuntimeEvent::from( Event::::VideoCreated( actor, channel_id, @@ -930,7 +930,7 @@ benchmarks! { assert_eq!(BTreeSet::from(video.data_objects), existing_asset_ids); assert!(video.nft_status.is_none()); assert_last_event::( - ::Event::from( + ::RuntimeEvent::from( Event::::VideoUpdated( actor, video_id, @@ -997,7 +997,7 @@ benchmarks! { assert!(video.nft_status.is_none()); assert_eq!(BTreeSet::from(video.data_objects), expected_asset_ids); assert_last_event::( - ::Event::from( + ::RuntimeEvent::from( Event::::VideoUpdated( actor, video_id, @@ -1061,7 +1061,7 @@ benchmarks! { _ => panic!("Unexpected video nft transactional status") } assert_last_event::( - ::Event::from( + ::RuntimeEvent::from( Event::::VideoUpdated( actor, video_id, @@ -1141,7 +1141,7 @@ benchmarks! { _ => panic!("Unexpected video nft transactional status") } assert_last_event::( - ::Event::from( + ::RuntimeEvent::from( Event::::VideoUpdated( actor, video_id, @@ -1171,7 +1171,7 @@ benchmarks! { ) verify { assert!(Pallet::::ensure_video_exists(&video_id).is_err()); assert_last_event::( - ::Event::from( + ::RuntimeEvent::from( Event::::VideoDeleted( actor, video_id @@ -1199,7 +1199,7 @@ benchmarks! { ) verify { assert!(Pallet::::ensure_video_exists(&video_id).is_err()); assert_last_event::( - ::Event::from( + ::RuntimeEvent::from( Event::::VideoDeleted( actor, video_id @@ -1253,7 +1253,7 @@ benchmarks! { ChannelTransferStatus::PendingTransfer(pending_transfer.clone()) ); assert_last_event::( - ::Event::from( + ::RuntimeEvent::from( Event::::InitializedChannelTransfer( channel_id, actor, @@ -1277,7 +1277,7 @@ benchmarks! { let channel = Pallet::::channel_by_id(channel_id); assert!(channel.transfer_status == ChannelTransferStatus::NoActiveTransfer); assert_last_event::( - ::Event::from( + ::RuntimeEvent::from( Event::::CancelChannelTransfer( channel_id, actor, @@ -1329,7 +1329,7 @@ benchmarks! { assert!(channel.transfer_status == ChannelTransferStatus::NoActiveTransfer); assert_eq!(channel.owner, new_owner); assert_last_event::( - ::Event::from( + ::RuntimeEvent::from( Event::::ChannelTransferAccepted( channel_id, witness @@ -1382,7 +1382,7 @@ benchmarks! { assert!(channel.transfer_status == ChannelTransferStatus::NoActiveTransfer); assert_eq!(channel.owner, new_owner); assert_last_event::( - ::Event::from( + ::RuntimeEvent::from( Event::::ChannelTransferAccepted( channel_id, witness @@ -1430,7 +1430,7 @@ benchmarks! { assert!(channel.transfer_status == ChannelTransferStatus::NoActiveTransfer); assert_eq!(channel.owner, new_owner); assert_last_event::( - ::Event::from( + ::RuntimeEvent::from( Event::::ChannelTransferAccepted( channel_id, witness @@ -1484,7 +1484,7 @@ benchmarks! { next_revenue_split_id: 0 }); assert_last_event::( - ::Event::from( + ::RuntimeEvent::from( Event::::CreatorTokenIssued( actor, channel_id, @@ -1543,8 +1543,8 @@ benchmarks! { } // Check event emitted assert_last_event::( - ::Event::from( - project_token::Event::::TokenAmountTransferredByIssuer( + ::RuntimeEvent::from( + project_token::RuntimeEvent::::TokenAmountTransferredByIssuer( token_id, curator_member_id, Transfers(outputs.0 @@ -1583,8 +1583,8 @@ benchmarks! { assert_eq!(token.transfer_policy, TransferPolicy::Permissionless); // Check event emitted assert_last_event::( - ::Event::from( - project_token::Event::::TransferPolicyChangedToPermissionless( + ::RuntimeEvent::from( + project_token::RuntimeEvent::::TransferPolicyChangedToPermissionless( token_id ) ).into() @@ -1611,8 +1611,8 @@ benchmarks! { assert_eq!(channel.creator_token_id, None); // Check event emitted assert_last_event::( - ::Event::from( - project_token::Event::::TokenDeissued(token_id) + ::RuntimeEvent::from( + project_token::RuntimeEvent::::TokenDeissued(token_id) ).into() ); } @@ -1663,8 +1663,8 @@ benchmarks! { assert!(owner_acc_data.split_staking_status.is_some()); // Check event emitted assert_last_event::( - ::Event::from( - project_token::Event::::TokenSaleInitialized( + ::RuntimeEvent::from( + project_token::RuntimeEvent::::TokenSaleInitialized( token_id, token.next_sale_id - 1, token.sale.unwrap(), @@ -1708,8 +1708,8 @@ benchmarks! { assert_eq!(token.sale.as_ref().unwrap().duration, new_duration.unwrap()); // Check event emitted assert_last_event::( - ::Event::from( - project_token::Event::::UpcomingTokenSaleUpdated( + ::RuntimeEvent::from( + project_token::RuntimeEvent::::UpcomingTokenSaleUpdated( token_id, sale_id, new_start_block, @@ -1764,8 +1764,8 @@ benchmarks! { assert_eq!(council_budget_post, council_budget_pre + funds_collected); // Check event emitted assert_last_event::( - ::Event::from( - project_token::Event::::TokenSaleFinalized( + ::RuntimeEvent::from( + project_token::RuntimeEvent::::TokenSaleFinalized( token_id, sale_id, TokenBalanceOf::::from(DEFAULT_CRT_SALE_UPPER_BOUND) - tokens_sold, @@ -1813,8 +1813,8 @@ benchmarks! { assert_eq!(council_budget_post, council_budget_pre + withdrawn); // Check event emitted assert_past_event::( - ::Event::from( - project_token::Event::::RevenueSplitIssued( + ::RuntimeEvent::from( + project_token::RuntimeEvent::::RevenueSplitIssued( token_id, start, duration, @@ -1867,8 +1867,8 @@ benchmarks! { assert_eq!(owner_acc_balance_post, owner_acc_balance_pre + withdrawn); // Check event emitted assert_past_event::( - ::Event::from( - project_token::Event::::RevenueSplitIssued( + ::RuntimeEvent::from( + project_token::RuntimeEvent::::RevenueSplitIssued( token_id, start, duration, @@ -1947,8 +1947,8 @@ benchmarks! { assert_eq!(channel_balance_post, channel_balance_pre + leftovers); // Check event emitted assert_last_event::( - ::Event::from( - project_token::Event::::RevenueSplitFinalized( + ::RuntimeEvent::from( + project_token::RuntimeEvent::::RevenueSplitFinalized( token_id, channel_acc, leftovers @@ -1991,8 +1991,8 @@ benchmarks! { ); // Check event emitted assert_last_event::( - ::Event::from( - project_token::Event::::PatronageRateDecreasedTo( + ::RuntimeEvent::from( + project_token::RuntimeEvent::::PatronageRateDecreasedTo( token_id, new_block_rate.to_yearly_rate_representation(T::BlocksPerYear::get()) ), @@ -2037,8 +2037,8 @@ benchmarks! { assert_lt!(expected_claim - actually_claimed, deficiency_margin); // Check event emitted assert_last_event::( - ::Event::from( - project_token::Event::::PatronageCreditClaimed( + ::RuntimeEvent::from( + project_token::RuntimeEvent::::PatronageCreditClaimed( token_id, actually_claimed, collaborator_member_id @@ -3291,7 +3291,7 @@ benchmarks! { }: _(origin, channel_id, msg.clone()) verify { assert_last_event::( - ::Event::from( + ::RuntimeEvent::from( Event::::ChannelOwnerRemarked( channel_id, msg @@ -3324,7 +3324,7 @@ benchmarks! { }: _(origin, actor, channel_id, msg.clone()) verify { assert_last_event::( - ::Event::from( + ::RuntimeEvent::from( Event::::ChannelAgentRemarked( actor, channel_id, @@ -3373,7 +3373,7 @@ benchmarks! { }: _(origin, nft_owner_actor, video_id, msg.clone()) verify { assert_last_event::( - ::Event::from( + ::RuntimeEvent::from( Event::::NftOwnerRemarked( nft_owner_actor, video_id, diff --git a/runtime-modules/content/src/benchmarks/mod.rs b/runtime-modules/content/src/benchmarks/mod.rs index a8a7de33c1..6a6c422d00 100644 --- a/runtime-modules/content/src/benchmarks/mod.rs +++ b/runtime-modules/content/src/benchmarks/mod.rs @@ -206,12 +206,12 @@ where RawOrigin::Signed(T::AccountId::create_account_id(account_id)).into() } -fn assert_last_event(expected_event: ::Event) { +fn assert_last_event(expected_event: ::RuntimeEvent) { assert_past_event::(expected_event, 0); } fn assert_past_event( - expected_event: ::Event, + expected_event: ::RuntimeEvent, index_from_last: u32, ) { let events = System::::events(); diff --git a/runtime-modules/content/src/lib.rs b/runtime-modules/content/src/lib.rs index b9a80f517c..b5e39a9882 100644 --- a/runtime-modules/content/src/lib.rs +++ b/runtime-modules/content/src/lib.rs @@ -104,7 +104,7 @@ pub trait Config: type WeightInfo: WeightInfo; /// The overarching event type. - type Event: From> + Into<::Event>; + type RuntimeEvent: From> + Into<::RuntimeEvent>; /// Type of identifier for Videos type VideoId: NumericIdentifier; diff --git a/runtime-modules/content/src/tests/fixtures.rs b/runtime-modules/content/src/tests/fixtures.rs index 1cef0b734c..9d12d96c29 100644 --- a/runtime-modules/content/src/tests/fixtures.rs +++ b/runtime-modules/content/src/tests/fixtures.rs @@ -4,7 +4,7 @@ use derive_new::new; use super::curators; // Importing mock event as MetaEvent to avoid name clash with Event from crate::* glob import -pub use super::mock::Event as MetaEvent; +pub use super::mock::RuntimeEvent as MetaEvent; use super::mock::*; use crate::*; use common::{ diff --git a/runtime-modules/content/src/tests/mock.rs b/runtime-modules/content/src/tests/mock.rs index 89c1503019..74dbd6a5fd 100644 --- a/runtime-modules/content/src/tests/mock.rs +++ b/runtime-modules/content/src/tests/mock.rs @@ -179,7 +179,7 @@ impl frame_system::Config for Test { type AccountId = U256; type Lookup = IdentityLookup; type Header = Header; - type Event = Event; + type RuntimeEvent = RuntimeEvent; type BlockHashCount = ConstU64<250>; type Version = (); type PalletInfo = PalletInfo; @@ -202,7 +202,7 @@ impl pallet_timestamp::Config for Test { impl balances::Config for Test { type Balance = u64; type DustRemoval = (); - type Event = Event; + type RuntimeEvent = RuntimeEvent; type ExistentialDeposit = ExistentialDeposit; type AccountStore = System; type MaxLocks = (); @@ -316,7 +316,7 @@ pub const DEFAULT_DISTRIBUTION_PROVIDER_ID: u64 = 12; pub const ANOTHER_DISTRIBUTION_PROVIDER_ID: u64 = 13; impl storage::Config for Test { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type DataObjectId = u64; type StorageBucketId = u64; type DistributionBucketIndex = u64; @@ -380,7 +380,7 @@ impl Config for Test { type WeightInfo = (); /// The overarching event type. - type Event = Event; + type RuntimeEvent = RuntimeEvent; /// Type of identifier for Videos type VideoId = u64; @@ -485,7 +485,7 @@ impl common::council::CouncilBudgetManager for CouncilBudgetManager { pub type StorageWorkingGroupInstance = working_group::Instance2; impl working_group::Config for Test { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type MaxWorkerNumberLimit = MaxWorkerNumberLimit; type StakingAccountValidator = membership::Module; type StakingHandler = staking_handler::StakingManager; @@ -500,7 +500,7 @@ impl working_group::Config for Test { pub type DistributionWorkingGroupInstance = working_group::Instance9; impl working_group::Config for Test { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type MaxWorkerNumberLimit = MaxWorkerNumberLimit; type StakingAccountValidator = membership::Module; type StakingHandler = staking_handler::StakingManager; @@ -516,7 +516,7 @@ impl working_group::Config for Test { pub type ContentWorkingGroupInstance = working_group::Instance3; impl working_group::Config for Test { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type MaxWorkerNumberLimit = MaxWorkerNumberLimit; type StakingAccountValidator = membership::Module; type StakingHandler = staking_handler::StakingManager; @@ -758,7 +758,7 @@ parameter_types! { } impl membership::Config for Test { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type DefaultMembershipPrice = DefaultMembershipPrice; type ReferralCutMaximumPercent = ReferralCutMaximumPercent; type WorkingGroup = Wg; @@ -1067,7 +1067,7 @@ parameter_types! { } impl project_token::Config for Test { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type Balance = u64; type TokenId = u64; type BlockNumberToBalance = Block2Balance; diff --git a/runtime-modules/council/src/benchmarking.rs b/runtime-modules/council/src/benchmarking.rs index a6999d6d5e..2da6668e88 100644 --- a/runtime-modules/council/src/benchmarking.rs +++ b/runtime-modules/council/src/benchmarking.rs @@ -3,7 +3,7 @@ use super::*; use balances::Pallet as Balances; use frame_benchmarking::{account, benchmarks, Zero}; use frame_support::traits::{Currency, OnFinalize, OnInitialize}; -use frame_system::EventRecord; +use frame_system::RuntimeEventRecord; use frame_system::Pallet as System; use frame_system::RawOrigin; use membership::Module as Membership; @@ -40,9 +40,9 @@ impl CreateAccountId for sp_core::crypto::AccountId32 { } } -fn assert_last_event(generic_event: ::Event) { +fn assert_last_event(generic_event: ::RuntimeEvent) { let events = System::::events(); - let system_event: ::Event = generic_event.into(); + let system_event: ::RuntimeEvent = generic_event.into(); assert!(!events.is_empty(), "There are no events in event queue"); @@ -51,9 +51,9 @@ fn assert_last_event(generic_event: ::Event) { assert_eq!(event, &system_event); } -fn assert_in_events(generic_event: ::Event) { +fn assert_in_events(generic_event: ::RuntimeEvent) { let events = System::::events(); - let system_event: ::Event = generic_event.into(); + let system_event: ::RuntimeEvent = generic_event.into(); assert!(!events.is_empty(), "There are no events in event queue"); diff --git a/runtime-modules/council/src/lib.rs b/runtime-modules/council/src/lib.rs index c7ce71e09d..99e2ff82b4 100644 --- a/runtime-modules/council/src/lib.rs +++ b/runtime-modules/council/src/lib.rs @@ -245,7 +245,7 @@ pub trait Config: frame_system::Config + common::membership::MembershipTypes + balances::Config { /// The overarching event type. - type Event: From> + Into<::Event>; + type RuntimeEvent: From> + Into<::RuntimeEvent>; /// Referendum used for council elections. type Referendum: ReferendumManager; diff --git a/runtime-modules/council/src/mock.rs b/runtime-modules/council/src/mock.rs index 7db790ea5c..10a90da206 100644 --- a/runtime-modules/council/src/mock.rs +++ b/runtime-modules/council/src/mock.rs @@ -71,7 +71,7 @@ impl common::membership::MembershipTypes for Runtime { } impl Config for Runtime { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type Referendum = referendum::Module; @@ -166,7 +166,7 @@ impl frame_system::Config for Runtime { type AccountId = u64; type Lookup = IdentityLookup; type Header = Header; - type Event = Event; + type RuntimeEvent = RuntimeEvent; type BlockHashCount = ConstU64<250>; type Version = (); type PalletInfo = PalletInfo; @@ -209,7 +209,7 @@ parameter_types! { } impl referendum::Config for Runtime { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type MaxSaltLength = MaxSaltLength; @@ -282,7 +282,7 @@ impl referendum::Config for Runtime { impl balances::Config for Runtime { type Balance = u64; type DustRemoval = (); - type Event = Event; + type RuntimeEvent = RuntimeEvent; type ExistentialDeposit = ExistentialDeposit; type AccountStore = System; type MaxLocks = (); @@ -292,7 +292,7 @@ impl balances::Config for Runtime { } impl membership::Config for Runtime { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type DefaultMembershipPrice = DefaultMembershipPrice; type WorkingGroup = Wg; type WeightInfo = (); diff --git a/runtime-modules/forum/src/benchmarking.rs b/runtime-modules/forum/src/benchmarking.rs index 4c758d2068..56a07421fa 100644 --- a/runtime-modules/forum/src/benchmarking.rs +++ b/runtime-modules/forum/src/benchmarking.rs @@ -55,9 +55,9 @@ fn get_byte(num: u32, byte_number: u8) -> u8 { ((num & (0xff << (8 * byte_number))) >> (8 * byte_number)) as u8 } -fn assert_last_event(generic_event: ::Event) { +fn assert_last_event(generic_event: ::RuntimeEvent) { let events = System::::events(); - let system_event: ::Event = generic_event.into(); + let system_event: ::RuntimeEvent = generic_event.into(); // compare to the last event record let EventRecord { event, .. } = &events[events.len() - 1]; assert_eq!(event, &system_event); diff --git a/runtime-modules/forum/src/lib.rs b/runtime-modules/forum/src/lib.rs index 113df1b845..3a291d92dc 100755 --- a/runtime-modules/forum/src/lib.rs +++ b/runtime-modules/forum/src/lib.rs @@ -107,7 +107,7 @@ pub trait Config: + common::membership::MembershipTypes + balances::Config { - type Event: From> + Into<::Event>; + type RuntimeEvent: From> + Into<::RuntimeEvent>; type CategoryId: Parameter + Member diff --git a/runtime-modules/forum/src/mock.rs b/runtime-modules/forum/src/mock.rs index 36045e377a..d3a914d07c 100644 --- a/runtime-modules/forum/src/mock.rs +++ b/runtime-modules/forum/src/mock.rs @@ -64,7 +64,7 @@ impl frame_system::Config for Runtime { type AccountId = u128; type Lookup = IdentityLookup; type Header = Header; - type Event = Event; + type RuntimeEvent = RuntimeEvent; type BlockHashCount = ConstU64<250>; type Version = (); type PalletInfo = PalletInfo; @@ -87,7 +87,7 @@ impl pallet_timestamp::Config for Runtime { impl balances::Config for Runtime { type Balance = u64; type DustRemoval = (); - type Event = Event; + type RuntimeEvent = RuntimeEvent; type ExistentialDeposit = ExistentialDeposit; type AccountStore = System; type MaxLocks = (); @@ -112,7 +112,7 @@ parameter_types! { pub type ForumWorkingGroupInstance = working_group::Instance1; impl working_group::Config for Runtime { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type MaxWorkerNumberLimit = MaxWorkerNumberLimit; type StakingAccountValidator = membership::Module; type StakingHandler = staking_handler::StakingManager; @@ -157,7 +157,7 @@ impl common::working_group::WorkingGroupBudgetHandler for Wg { } impl membership::Config for Runtime { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type DefaultMembershipPrice = DefaultMembershipPrice; type DefaultInitialInvitationBalance = DefaultInitialInvitationBalance; type WorkingGroup = Wg; @@ -192,7 +192,7 @@ impl StorageLimits for MapLimits { } impl Config for Runtime { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type CategoryId = u64; type ThreadId = u64; type PostId = u64; diff --git a/runtime-modules/membership/src/benchmarking.rs b/runtime-modules/membership/src/benchmarking.rs index 59d5f0b237..300b075d24 100644 --- a/runtime-modules/membership/src/benchmarking.rs +++ b/runtime-modules/membership/src/benchmarking.rs @@ -32,9 +32,9 @@ fn get_byte(num: u32, byte_number: u8) -> u8 { ((num & (0xff << (8 * byte_number))) >> (8 * byte_number)) as u8 } -fn assert_last_event(generic_event: ::Event) { +fn assert_last_event(generic_event: ::RuntimeEvent) { let events = System::::events(); - let system_event: ::Event = generic_event.into(); + let system_event: ::RuntimeEvent = generic_event.into(); // compare to the last event record let EventRecord { event, .. } = &events[events.len() - 1]; assert_eq!(event, &system_event); diff --git a/runtime-modules/membership/src/lib.rs b/runtime-modules/membership/src/lib.rs index 005cb2de92..77714d586f 100644 --- a/runtime-modules/membership/src/lib.rs +++ b/runtime-modules/membership/src/lib.rs @@ -106,7 +106,7 @@ pub trait Config: + common::membership::MembershipTypes { /// Membership module event type. - type Event: From> + Into<::Event>; + type RuntimeEvent: From> + Into<::RuntimeEvent>; /// Defines the default membership fee. type DefaultMembershipPrice: Get>; diff --git a/runtime-modules/membership/src/tests/fixtures.rs b/runtime-modules/membership/src/tests/fixtures.rs index 536bda899a..49ce19868b 100644 --- a/runtime-modules/membership/src/tests/fixtures.rs +++ b/runtime-modules/membership/src/tests/fixtures.rs @@ -1,5 +1,5 @@ use super::mock::*; -use crate::Event as MembershipEvent; +use crate::RuntimeEvent as MembershipEvent; use crate::{ BalanceOf, BuyMembershipParameters, CreateMemberParameters, GiftMembershipParameters, InviteMembershipParameters, MembershipObject, @@ -36,7 +36,7 @@ pub fn set_invitation_lock( pub struct EventFixture; impl EventFixture { - pub fn assert_last_crate_event(expected_raw_event: crate::Event) { + pub fn assert_last_crate_event(expected_raw_event: crate::RuntimeEvent) { let converted_event = Event::Membership(expected_raw_event); Self::assert_last_global_event(converted_event) diff --git a/runtime-modules/membership/src/tests/mock.rs b/runtime-modules/membership/src/tests/mock.rs index d18ce44ea5..7f9e1d2f97 100644 --- a/runtime-modules/membership/src/tests/mock.rs +++ b/runtime-modules/membership/src/tests/mock.rs @@ -57,7 +57,7 @@ impl frame_system::Config for Test { type AccountId = u64; type Lookup = IdentityLookup; type Header = Header; - type Event = Event; + type RuntimeEvent = RuntimeEvent; type BlockHashCount = ConstU64<250>; type Version = (); type PalletInfo = PalletInfo; @@ -88,7 +88,7 @@ parameter_types! { impl balances::Config for Test { type Balance = u64; type DustRemoval = (); - type Event = Event; + type RuntimeEvent = RuntimeEvent; type ExistentialDeposit = ExistentialDeposit; type AccountStore = System; type MaxLocks = (); @@ -139,7 +139,7 @@ impl common::membership::MemberOriginValidator for () { } impl Config for Test { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type DefaultMembershipPrice = DefaultMembershipPrice; type ReferralCutMaximumPercent = ReferralCutMaximumPercent; type WorkingGroup = Wg; diff --git a/runtime-modules/project-token/src/benchmarking.rs b/runtime-modules/project-token/src/benchmarking.rs index d883c2d3a0..f46fc307ff 100644 --- a/runtime-modules/project-token/src/benchmarking.rs +++ b/runtime-modules/project-token/src/benchmarking.rs @@ -6,7 +6,7 @@ use crate::Module as Token; use balances::Pallet as Balances; use common::membership::MembershipTypes; use frame_benchmarking::{account, benchmarks, Zero}; -use frame_system::EventRecord; +use frame_system::RuntimeEventRecord; use frame_system::Pallet as System; use frame_system::RawOrigin; use membership::{BuyMembershipParameters, Module as Members}; @@ -213,9 +213,9 @@ fn setup_account_with_max_number_of_locks( }); } -fn assert_last_event(generic_event: ::Event) { +fn assert_last_event(generic_event: ::RuntimeEvent) { let events = frame_system::Pallet::::events(); - let system_event: ::Event = generic_event.into(); + let system_event: ::RuntimeEvent = generic_event.into(); assert!( !events.is_empty(), "If you are checking for last event there must be at least 1 event" diff --git a/runtime-modules/project-token/src/lib.rs b/runtime-modules/project-token/src/lib.rs index dc1a603d11..607761794b 100644 --- a/runtime-modules/project-token/src/lib.rs +++ b/runtime-modules/project-token/src/lib.rs @@ -75,7 +75,7 @@ pub trait Config: frame_system::Config + balances::Config + storage::Config + membership::Config { /// Events - type Event: From> + Into<::Event>; + type RuntimeEvent: From> + Into<::RuntimeEvent>; /// the Balance type used type Balance: AtLeast32BitUnsigned diff --git a/runtime-modules/project-token/src/tests/mock.rs b/runtime-modules/project-token/src/tests/mock.rs index d0a11b6547..b01b8f69ef 100644 --- a/runtime-modules/project-token/src/tests/mock.rs +++ b/runtime-modules/project-token/src/tests/mock.rs @@ -125,7 +125,7 @@ frame_support::construct_runtime!( ); impl storage::Config for Test { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type DataObjectId = u64; type StorageBucketId = u64; type DistributionBucketIndex = u64; @@ -160,7 +160,7 @@ impl common::MembershipTypes for Test { } impl Config for Test { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type Balance = u128; type TokenId = u64; type BlockNumberToBalance = Block2Balance; @@ -338,7 +338,7 @@ impl frame_system::Config for Test { type AccountId = u64; type Lookup = IdentityLookup; type Header = Header; - type Event = Event; + type RuntimeEvent = RuntimeEvent; type BlockHashCount = ConstU64<250>; type Version = (); type PalletInfo = PalletInfo; @@ -361,7 +361,7 @@ impl pallet_timestamp::Config for Test { impl balances::Config for Test { type Balance = u128; type DustRemoval = (); - type Event = Event; + type RuntimeEvent = RuntimeEvent; type ExistentialDeposit = ExistentialDeposit; type AccountStore = System; type MaxLocks = (); @@ -372,7 +372,7 @@ impl balances::Config for Test { /// Implement membership trait for Test impl membership::Config for Test { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type DefaultMembershipPrice = DefaultMembershipPrice; type ReferralCutMaximumPercent = ReferralCutMaximumPercent; type WorkingGroup = Wg; diff --git a/runtime-modules/proposals/codex/src/benchmarking.rs b/runtime-modules/proposals/codex/src/benchmarking.rs index d3f7f704e6..dd3ca0dd40 100644 --- a/runtime-modules/proposals/codex/src/benchmarking.rs +++ b/runtime-modules/proposals/codex/src/benchmarking.rs @@ -13,7 +13,7 @@ use content::NftLimitPeriod; use frame_benchmarking::{account, benchmarks, Zero}; use frame_support::sp_runtime::traits::Bounded; use frame_support::traits::Currency; -use frame_system::EventRecord; +use frame_system::RuntimeEventRecord; use frame_system::Pallet as System; use frame_system::RawOrigin; use membership::Module as Membership; @@ -31,9 +31,9 @@ use working_group::{ const SEED: u32 = 0; const MAX_KILOBYTES_METADATA: u32 = 100; -fn assert_last_event(generic_event: ::Event) { +fn assert_last_event(generic_event: ::RuntimeEvent) { let events = System::::events(); - let system_event: ::Event = generic_event.into(); + let system_event: ::RuntimeEvent = generic_event.into(); assert!( !events.is_empty(), "If you are checking for last event there must be at least 1 event" diff --git a/runtime-modules/proposals/codex/src/lib.rs b/runtime-modules/proposals/codex/src/lib.rs index 4d68a0799e..f4beb3d500 100644 --- a/runtime-modules/proposals/codex/src/lib.rs +++ b/runtime-modules/proposals/codex/src/lib.rs @@ -139,7 +139,7 @@ pub trait Config: + working_group::Config { /// Proposal Codex module event type. - type Event: From> + Into<::Event>; + type RuntimeEvent: From> + Into<::RuntimeEvent>; /// Validates member id and origin combination. type MembershipOriginValidator: MemberOriginValidator< diff --git a/runtime-modules/proposals/codex/src/tests/mock.rs b/runtime-modules/proposals/codex/src/tests/mock.rs index 82829d7fdb..cf577ff507 100644 --- a/runtime-modules/proposals/codex/src/tests/mock.rs +++ b/runtime-modules/proposals/codex/src/tests/mock.rs @@ -134,7 +134,7 @@ impl frame_system::Config for Test { type AccountId = AccountId; type Lookup = IdentityLookup; type Header = Header; - type Event = Event; + type RuntimeEvent = RuntimeEvent; type BlockHashCount = frame_support::traits::ConstU64<250>; type Version = (); type PalletInfo = PalletInfo; @@ -151,7 +151,7 @@ impl balances::Config for Test { type MaxReserves = (); type ReserveIdentifier = [u8; 8]; type Balance = Balance; - type Event = Event; + type RuntimeEvent = RuntimeEvent; type DustRemoval = (); type ExistentialDeposit = ExistentialDeposit; type AccountStore = System; @@ -207,7 +207,7 @@ parameter_types! { } impl pallet_bags_list::Config for Test { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type WeightInfo = (); type ScoreProvider = Staking; type BagThresholds = BagThresholds; @@ -253,7 +253,7 @@ impl staking::Config for Test { type UnixTime = Timestamp; type CurrencyToVote = frame_support::traits::SaturatingCurrencyToVote; type RewardRemainder = RewardRemainderMock; - type Event = Event; + type RuntimeEvent = RuntimeEvent; type Slash = (); type Reward = MockReward; type SessionsPerEra = SessionsPerEra; @@ -300,7 +300,7 @@ impl common::membership::MembershipTypes for Test { } impl membership::Config for Test { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type DefaultMembershipPrice = DefaultMembershipPrice; type WorkingGroup = Wg; type WeightInfo = (); @@ -391,7 +391,7 @@ parameter_types! { } impl proposals_engine::Config for Test { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type ProposerOriginValidator = (); type CouncilOriginValidator = (); type TotalVotersCounter = MockVotersParameters; @@ -462,7 +462,7 @@ parameter_types! { } impl proposals_discussion::Config for Test { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type AuthorOriginValidator = (); type MembershipInfoProvider = (); type CouncilOriginValidator = (); @@ -498,7 +498,7 @@ parameter_types! { } impl working_group::Config for Test { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type MaxWorkerNumberLimit = MaxWorkerNumberLimit; type StakingHandler = StakingManager; type StakingAccountValidator = (); @@ -511,7 +511,7 @@ impl working_group::Config for Test { } impl working_group::Config for Test { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type MaxWorkerNumberLimit = MaxWorkerNumberLimit; type StakingHandler = StakingManager; type StakingAccountValidator = (); @@ -524,7 +524,7 @@ impl working_group::Config for Test { } impl working_group::Config for Test { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type MaxWorkerNumberLimit = MaxWorkerNumberLimit; type StakingHandler = StakingManager; type StakingAccountValidator = (); @@ -537,7 +537,7 @@ impl working_group::Config for Test { } impl working_group::Config for Test { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type MaxWorkerNumberLimit = MaxWorkerNumberLimit; type StakingHandler = StakingManager; type StakingAccountValidator = (); @@ -550,7 +550,7 @@ impl working_group::Config for Test { } impl working_group::Config for Test { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type MaxWorkerNumberLimit = MaxWorkerNumberLimit; type StakingHandler = StakingManager; type StakingAccountValidator = (); @@ -563,7 +563,7 @@ impl working_group::Config for Test { } impl working_group::Config for Test { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type MaxWorkerNumberLimit = MaxWorkerNumberLimit; type StakingHandler = StakingManager; type StakingAccountValidator = (); @@ -576,7 +576,7 @@ impl working_group::Config for Test { } impl working_group::Config for Test { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type MaxWorkerNumberLimit = MaxWorkerNumberLimit; type StakingHandler = StakingManager; type StakingAccountValidator = (); @@ -589,7 +589,7 @@ impl working_group::Config for Test { } impl working_group::Config for Test { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type MaxWorkerNumberLimit = MaxWorkerNumberLimit; type StakingHandler = StakingManager; type StakingAccountValidator = (); @@ -602,7 +602,7 @@ impl working_group::Config for Test { } impl working_group::Config for Test { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type MaxWorkerNumberLimit = MaxWorkerNumberLimit; type StakingHandler = StakingManager; type StakingAccountValidator = (); @@ -632,7 +632,7 @@ pub(crate) fn default_proposal_parameters() -> ProposalParameters { } impl crate::Config for Test { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type MembershipOriginValidator = (); type ProposalEncoder = (); type WeightInfo = (); @@ -684,7 +684,7 @@ parameter_types! { pub type ReferendumInstance = referendum::Instance1; impl council::Config for Test { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type Referendum = referendum::Module; @@ -719,7 +719,7 @@ parameter_types! { } impl referendum::Config for Test { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type MaxSaltLength = MaxSaltLength; diff --git a/runtime-modules/proposals/codex/src/tests/mod.rs b/runtime-modules/proposals/codex/src/tests/mod.rs index 42a55129b8..e80e502fad 100644 --- a/runtime-modules/proposals/codex/src/tests/mod.rs +++ b/runtime-modules/proposals/codex/src/tests/mod.rs @@ -174,9 +174,9 @@ fn setup_lead(working_group: WorkingGroup) -> WorkerId { } } -fn assert_last_event(generic_event: ::Event) { +fn assert_last_event(generic_event: ::RuntimeEvent) { let events = System::events(); - let system_event: ::Event = generic_event; + let system_event: ::RuntimeEvent = generic_event; assert!( !events.is_empty(), "If you are checking for last event there must be at least 1 event" diff --git a/runtime-modules/proposals/discussion/src/benchmarking.rs b/runtime-modules/proposals/discussion/src/benchmarking.rs index 58de22e4c1..73fbf9674c 100644 --- a/runtime-modules/proposals/discussion/src/benchmarking.rs +++ b/runtime-modules/proposals/discussion/src/benchmarking.rs @@ -7,7 +7,7 @@ use council::Module as Council; use frame_benchmarking::{account, benchmarks}; use frame_support::sp_runtime::traits::Bounded; use frame_support::traits::{Currency, OnFinalize, OnInitialize}; -use frame_system::EventRecord; +use frame_system::RuntimeEventRecord; use frame_system::Pallet as System; use frame_system::RawOrigin; use membership::Module as Membership; @@ -65,9 +65,9 @@ fn run_to_block(generic_event: ::Event) { +fn assert_last_event(generic_event: ::RuntimeEvent) { let events = System::::events(); - let system_event: ::Event = generic_event.into(); + let system_event: ::RuntimeEvent = generic_event.into(); // compare to the last event record let EventRecord { event, .. } = &events[events.len() - 1]; assert_eq!(event, &system_event); diff --git a/runtime-modules/proposals/discussion/src/lib.rs b/runtime-modules/proposals/discussion/src/lib.rs index ccabd3918f..2aee44974d 100644 --- a/runtime-modules/proposals/discussion/src/lib.rs +++ b/runtime-modules/proposals/discussion/src/lib.rs @@ -138,7 +138,7 @@ pub trait Config: frame_system::Config + balances::Config + common::membership::MembershipTypes { /// Discussion event type. - type Event: From> + Into<::Event>; + type RuntimeEvent: From> + Into<::RuntimeEvent>; /// Validates post author id and origin combination type AuthorOriginValidator: MemberOriginValidator, Self::AccountId>; diff --git a/runtime-modules/proposals/discussion/src/tests/mock.rs b/runtime-modules/proposals/discussion/src/tests/mock.rs index 4484b965c8..accbe10595 100644 --- a/runtime-modules/proposals/discussion/src/tests/mock.rs +++ b/runtime-modules/proposals/discussion/src/tests/mock.rs @@ -86,7 +86,7 @@ impl frame_system::Config for Test { type AccountId = u128; type Lookup = IdentityLookup; type Header = Header; - type Event = Event; + type RuntimeEvent = RuntimeEvent; type BlockHashCount = ConstU64<250>; type Version = (); type PalletInfo = PalletInfo; @@ -109,7 +109,7 @@ impl pallet_timestamp::Config for Test { impl balances::Config for Test { type Balance = u64; type DustRemoval = (); - type Event = Event; + type RuntimeEvent = RuntimeEvent; type ExistentialDeposit = ExistentialDeposit; type AccountStore = System; type MaxLocks = (); @@ -128,7 +128,7 @@ parameter_types! { } impl membership::Config for Test { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type DefaultMembershipPrice = DefaultMembershipPrice; type WorkingGroup = Wg; type WeightInfo = (); @@ -210,7 +210,7 @@ impl common::working_group::WorkingGroupAuthenticator for Wg { } impl crate::Config for Test { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type AuthorOriginValidator = (); type MembershipInfoProvider = (); type CouncilOriginValidator = CouncilMock; @@ -277,7 +277,7 @@ parameter_types! { type ReferendumInstance = referendum::Instance1; impl council::Config for Test { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type Referendum = referendum::Module; @@ -322,7 +322,7 @@ parameter_types! { } impl referendum::Config for Test { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type MaxSaltLength = MaxSaltLength; diff --git a/runtime-modules/proposals/discussion/src/tests/mod.rs b/runtime-modules/proposals/discussion/src/tests/mod.rs index 2edce5c3cf..5f8c74ae6a 100644 --- a/runtime-modules/proposals/discussion/src/tests/mod.rs +++ b/runtime-modules/proposals/discussion/src/tests/mod.rs @@ -18,7 +18,7 @@ impl EventFixture { .iter() .map(|ev| EventRecord { phase: Phase::Initialization, - event: mock::Event::Discussions(ev.clone()), + event: mock::RuntimeEvent::Discussions(ev.clone()), topics: vec![], }) .collect::>>(); @@ -26,7 +26,7 @@ impl EventFixture { let actual_events: Vec<_> = System::events() .into_iter() .filter(|e| match e.event { - mock::Event::Discussions(..) => true, + mock::RuntimeEvent::Discussions(..) => true, _ => false, }) .collect(); diff --git a/runtime-modules/proposals/engine/src/benchmarking.rs b/runtime-modules/proposals/engine/src/benchmarking.rs index c7a6674bdb..617a122548 100644 --- a/runtime-modules/proposals/engine/src/benchmarking.rs +++ b/runtime-modules/proposals/engine/src/benchmarking.rs @@ -7,7 +7,7 @@ use core::convert::TryInto; use council::Module as Council; use frame_benchmarking::{account, benchmarks}; use frame_support::traits::{Currency, OnFinalize, OnInitialize}; -use frame_system::EventRecord; +use frame_system::RuntimeEventRecord; use frame_system::Pallet as System; use frame_system::RawOrigin; use membership::Module as Membership; @@ -43,9 +43,9 @@ fn handle_from_id(id: u32) -> Vec { handle } -fn assert_last_event(generic_event: ::Event) { +fn assert_last_event(generic_event: ::RuntimeEvent) { let events = System::::events(); - let system_event: ::Event = generic_event.into(); + let system_event: ::RuntimeEvent = generic_event.into(); assert!( !events.is_empty(), "If you are checking for last event there must be at least 1 event" @@ -54,9 +54,9 @@ fn assert_last_event(generic_event: ::Event) { assert_eq!(event, &system_event); } -fn assert_in_events(generic_event: ::Event) { +fn assert_in_events(generic_event: ::RuntimeEvent) { let events = System::::events(); - let system_event: ::Event = generic_event.into(); + let system_event: ::RuntimeEvent = generic_event.into(); assert!( !events.is_empty(), diff --git a/runtime-modules/proposals/engine/src/lib.rs b/runtime-modules/proposals/engine/src/lib.rs index 9f6821c041..b4fc014e42 100644 --- a/runtime-modules/proposals/engine/src/lib.rs +++ b/runtime-modules/proposals/engine/src/lib.rs @@ -189,7 +189,7 @@ pub trait Config: + balances::Config { /// Engine event type. - type Event: From> + Into<::Event>; + type RuntimeEvent: From> + Into<::RuntimeEvent>; /// Validates proposer id and origin combination type ProposerOriginValidator: MemberOriginValidator< diff --git a/runtime-modules/proposals/engine/src/tests/mock/mod.rs b/runtime-modules/proposals/engine/src/tests/mock/mod.rs index 87349332ed..2a63ca6dd2 100644 --- a/runtime-modules/proposals/engine/src/tests/mock/mod.rs +++ b/runtime-modules/proposals/engine/src/tests/mock/mod.rs @@ -58,7 +58,7 @@ parameter_types! { } impl referendum::Config for Test { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type MaxSaltLength = MaxSaltLength; @@ -137,7 +137,7 @@ impl common::membership::MembershipTypes for Test { } impl membership::Config for Test { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type DefaultMembershipPrice = DefaultMembershipPrice; type WorkingGroup = Wg; type WeightInfo = (); @@ -214,7 +214,7 @@ parameter_types! { } impl crate::Config for Test { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type ProposerOriginValidator = (); type CouncilOriginValidator = (); type TotalVotersCounter = (); @@ -300,7 +300,7 @@ impl frame_system::Config for Test { type AccountId = u64; type Lookup = IdentityLookup; type Header = Header; - type Event = Event; + type RuntimeEvent = RuntimeEvent; type BlockHashCount = ConstU64<250>; type Version = (); type PalletInfo = PalletInfo; @@ -323,7 +323,7 @@ impl pallet_timestamp::Config for Test { impl balances::Config for Test { type Balance = u64; type DustRemoval = (); - type Event = Event; + type RuntimeEvent = RuntimeEvent; type ExistentialDeposit = ExistentialDeposit; type AccountStore = System; type MaxLocks = (); @@ -349,7 +349,7 @@ parameter_types! { type ReferendumInstance = referendum::Instance1; impl council::Config for Test { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type Referendum = referendum::Module; diff --git a/runtime-modules/proposals/engine/src/tests/mod.rs b/runtime-modules/proposals/engine/src/tests/mod.rs index 441beb2a77..b152956cf1 100644 --- a/runtime-modules/proposals/engine/src/tests/mod.rs +++ b/runtime-modules/proposals/engine/src/tests/mod.rs @@ -1447,7 +1447,7 @@ fn finalize_expired_proposal_and_check_stake_removing_with_balance_checks_succee EventFixture::assert_global_events(vec![ RawEvent::ProposalDecisionMade(proposal_id, ProposalDecision::Expired).into(), - TestEvent::Balances(balances::Event::Slashed { + TestEvent::Balances(balances::RuntimeEvent::Slashed { who: account_id, amount: rejection_fee, }), @@ -1580,7 +1580,7 @@ fn proposal_slashing_succeeds() { EventFixture::assert_global_events(vec![ RawEvent::ProposalDecisionMade(proposal_id, ProposalDecision::Slashed).into(), - TestEvent::Balances(balances::Event::Slashed { + TestEvent::Balances(balances::RuntimeEvent::Slashed { who: account_id, amount: stake_amount, }), @@ -2018,12 +2018,12 @@ fn proposal_with_pending_constitutionality_execution_succeeds() { // first chain of event from the creation to the approval EventFixture::assert_global_events(vec![ - TestEvent::Balances(balances::Event::Deposit { + TestEvent::Balances(balances::RuntimeEvent::Deposit { who: 1, amount: total_balance, }), - TestEvent::System(frame_system::Event::NewAccount { account: 1 }), // because of token transfer - TestEvent::Balances(balances::Event::Endowed { + TestEvent::System(frame_system::RuntimeEvent::NewAccount { account: 1 }), // because of token transfer + TestEvent::Balances(balances::RuntimeEvent::Endowed { account: 1, free_balance: total_balance, }), // because of token transfer diff --git a/runtime-modules/referendum/src/benchmarking.rs b/runtime-modules/referendum/src/benchmarking.rs index b67aa46f43..2c3334a62c 100644 --- a/runtime-modules/referendum/src/benchmarking.rs +++ b/runtime-modules/referendum/src/benchmarking.rs @@ -3,7 +3,7 @@ use super::*; use frame_benchmarking::{account, benchmarks_instance, Zero}; use frame_support::traits::{Currency, OnFinalize, OnInitialize}; -use frame_system::EventRecord; +use frame_system::RuntimeEventRecord; use frame_system::Pallet as System; use frame_system::RawOrigin; use membership::Module as Membership; @@ -22,9 +22,9 @@ pub trait OptionCreator { fn create_option(account_id: AccountId, member_id: MemberId); } -fn assert_last_event, I: Instance>(generic_event: >::Event) { +fn assert_last_event, I: Instance>(generic_event: >::RuntimeEvent) { let events = System::::events(); - let system_event: ::Event = generic_event.into(); + let system_event: ::RuntimeEvent = generic_event.into(); // compare to the last event record let EventRecord { event, .. } = &events[events.len() - 1]; assert_eq!(event, &system_event); diff --git a/runtime-modules/referendum/src/lib.rs b/runtime-modules/referendum/src/lib.rs index 58dcc49ce4..849eb6b947 100644 --- a/runtime-modules/referendum/src/lib.rs +++ b/runtime-modules/referendum/src/lib.rs @@ -233,7 +233,7 @@ pub trait Config: frame_system::Config + common::membership::MembershipTypes + balances::Config { /// The overarching event type. - type Event: From> + Into<::Event>; + type RuntimeEvent: From> + Into<::RuntimeEvent>; /// Maximum length of vote commitment salt. Use length that ensures uniqueness for hashing /// e.g. std::u64::MAX. diff --git a/runtime-modules/referendum/src/mock.rs b/runtime-modules/referendum/src/mock.rs index bed967123f..d2e453fa97 100644 --- a/runtime-modules/referendum/src/mock.rs +++ b/runtime-modules/referendum/src/mock.rs @@ -72,7 +72,7 @@ impl LockComparator for Runtime { } impl Config for Runtime { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type MaxSaltLength = MaxSaltLength; @@ -151,7 +151,7 @@ parameter_types! { } impl membership::Config for Runtime { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type DefaultMembershipPrice = DefaultMembershipPrice; type WorkingGroup = Wg; type WeightInfo = (); @@ -246,7 +246,7 @@ parameter_types! { impl balances::Config for Runtime { type Balance = u64; type DustRemoval = (); - type Event = Event; + type RuntimeEvent = RuntimeEvent; type ExistentialDeposit = ExistentialDeposit; type AccountStore = System; type MaxLocks = (); @@ -307,7 +307,7 @@ impl frame_system::Config for Runtime { type AccountId = u64; type Lookup = IdentityLookup; type Header = Header; - type Event = Event; + type RuntimeEvent = RuntimeEvent; type BlockHashCount = BlockHashCount; // ConstU64<250>; type Version = (); type PalletInfo = PalletInfo; diff --git a/runtime-modules/staking-handler/src/mock.rs b/runtime-modules/staking-handler/src/mock.rs index 5e9ba25c74..90c574a1b8 100644 --- a/runtime-modules/staking-handler/src/mock.rs +++ b/runtime-modules/staking-handler/src/mock.rs @@ -51,7 +51,7 @@ impl frame_system::Config for Test { type AccountId = u64; type Lookup = IdentityLookup; type Header = Header; - type Event = Event; + type RuntimeEvent = RuntimeEvent; type BlockHashCount = ConstU64<250>; type Version = (); type PalletInfo = PalletInfo; @@ -67,7 +67,7 @@ impl frame_system::Config for Test { impl pallet_balances::Config for Test { type Balance = u64; type DustRemoval = (); - type Event = Event; + type RuntimeEvent = RuntimeEvent; type ExistentialDeposit = ExistentialDeposit; type AccountStore = System; type MaxLocks = (); diff --git a/runtime-modules/storage/src/benchmarking.rs b/runtime-modules/storage/src/benchmarking.rs index db51d1b49f..17bda254d2 100644 --- a/runtime-modules/storage/src/benchmarking.rs +++ b/runtime-modules/storage/src/benchmarking.rs @@ -44,9 +44,9 @@ pub const DEFAULT_STORAGE_WORKER_ACCOUNT_ID: u64 = 100002; pub const DEFAULT_DISTRIBUTION_WORKER_ACCOUNT_ID: u64 = 100003; pub const SECOND_WORKER_ACCOUNT_ID: u64 = 1; -fn assert_last_event(generic_event: ::Event) { +fn assert_last_event(generic_event: ::RuntimeEvent) { let events = System::::events(); - let system_event: ::Event = generic_event.into(); + let system_event: ::RuntimeEvent = generic_event.into(); // compare to the last event record let EventRecord { event, .. } = &events[events.len() - 1]; assert_eq!(event, &system_event); diff --git a/runtime-modules/storage/src/lib.rs b/runtime-modules/storage/src/lib.rs index 616599d404..2371fce79d 100644 --- a/runtime-modules/storage/src/lib.rs +++ b/runtime-modules/storage/src/lib.rs @@ -328,7 +328,7 @@ pub trait DataObjectStorage { /// Storage trait. pub trait Config: frame_system::Config + balances::Config + common::MembershipTypes { /// Storage event type. - type Event: From> + Into<::Event>; + type RuntimeEvent: From> + Into<::RuntimeEvent>; /// Content id representation. type ContentId: Parameter + Member + Codec + Default + Copy + MaybeSerialize + Ord + PartialEq; diff --git a/runtime-modules/storage/src/tests/mocks.rs b/runtime-modules/storage/src/tests/mocks.rs index 68be5354e9..1f615356c1 100644 --- a/runtime-modules/storage/src/tests/mocks.rs +++ b/runtime-modules/storage/src/tests/mocks.rs @@ -74,7 +74,7 @@ impl frame_system::Config for Test { type AccountId = u64; type Lookup = IdentityLookup; type Header = Header; - type Event = Event; + type RuntimeEvent = RuntimeEvent; type BlockHashCount = ConstU64<250>; type Version = (); type PalletInfo = PalletInfo; @@ -97,7 +97,7 @@ impl pallet_timestamp::Config for Test { impl balances::Config for Test { type Balance = u64; type DustRemoval = (); - type Event = Event; + type RuntimeEvent = RuntimeEvent; type ExistentialDeposit = ExistentialDeposit; type AccountStore = System; type MaxLocks = (); @@ -149,7 +149,7 @@ pub const DEFAULT_STORAGE_BUCKETS_NUMBER: u32 = 3; pub const ONE_MB: u64 = 1_048_576; impl crate::Config for Test { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type DataObjectId = u64; type StorageBucketId = u64; type DistributionBucketIndex = u64; @@ -198,7 +198,7 @@ parameter_types! { // implemented for benchmarks features to work impl working_group::Config for Test { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type MaxWorkerNumberLimit = MaxWorkerNumberLimit; type StakingAccountValidator = membership::Module; type StakingHandler = staking_handler::StakingManager; @@ -212,7 +212,7 @@ impl working_group::Config for Test { // implemented for benchmarks only impl working_group::Config for Test { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type MaxWorkerNumberLimit = MaxWorkerNumberLimit; type StakingAccountValidator = membership::Module; type StakingHandler = staking_handler::StakingManager; @@ -319,7 +319,7 @@ impl LockComparator<::Balance> for Test { } impl membership::Config for Test { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type DefaultMembershipPrice = DefaultMembershipPrice; type DefaultInitialInvitationBalance = DefaultInitialInvitationBalance; type WorkingGroup = MembershipWG; diff --git a/runtime-modules/utility/src/benchmarking.rs b/runtime-modules/utility/src/benchmarking.rs index 55a80891ad..90371d3f2d 100644 --- a/runtime-modules/utility/src/benchmarking.rs +++ b/runtime-modules/utility/src/benchmarking.rs @@ -8,9 +8,9 @@ use sp_runtime::traits::One; use sp_std::convert::TryInto; use sp_std::vec; -fn assert_last_event(generic_event: ::Event) { +fn assert_last_event(generic_event: ::RuntimeEvent) { let events = System::::events(); - let system_event: ::Event = generic_event.into(); + let system_event: ::RuntimeEvent = generic_event.into(); // compare to the last event record let EventRecord { event, .. } = &events[events.len() - 1]; assert_eq!(event, &system_event); diff --git a/runtime-modules/utility/src/lib.rs b/runtime-modules/utility/src/lib.rs index d6f99b491f..caf92f59f8 100644 --- a/runtime-modules/utility/src/lib.rs +++ b/runtime-modules/utility/src/lib.rs @@ -62,7 +62,7 @@ type BalanceOf = ::Balance; type Balances = balances::Pallet; pub trait Config: frame_system::Config + balances::Config + council::Config { - type Event: From> + Into<::Event>; + type RuntimeEvent: From> + Into<::RuntimeEvent>; /// Gets the budget of the given WorkingGroup fn get_working_group_budget(working_group: WorkingGroup) -> BalanceOf; diff --git a/runtime-modules/utility/src/tests/mocks.rs b/runtime-modules/utility/src/tests/mocks.rs index 079862924f..f1af7aea0d 100644 --- a/runtime-modules/utility/src/tests/mocks.rs +++ b/runtime-modules/utility/src/tests/mocks.rs @@ -20,9 +20,9 @@ use sp_std::convert::{TryFrom, TryInto}; use staking_handler::{LockComparator, StakingManager}; -pub(crate) fn assert_last_event(generic_event: ::Event) { +pub(crate) fn assert_last_event(generic_event: ::RuntimeEvent) { let events = System::events(); - let system_event: ::Event = generic_event; + let system_event: ::RuntimeEvent = generic_event; assert!( !events.is_empty(), "If you are checking for last event there must be at least 1 event" @@ -141,7 +141,7 @@ impl frame_system::Config for Test { type AccountId = u64; type Lookup = IdentityLookup; type Header = Header; - type Event = Event; + type RuntimeEvent = RuntimeEvent; type BlockHashCount = ConstU64<250>; type Version = (); type PalletInfo = PalletInfo; @@ -164,7 +164,7 @@ impl pallet_timestamp::Config for Test { impl balances::Config for Test { type Balance = u64; type DustRemoval = (); - type Event = Event; + type RuntimeEvent = RuntimeEvent; type ExistentialDeposit = ExistentialDeposit; type AccountStore = System; type MaxLocks = (); @@ -174,7 +174,7 @@ impl balances::Config for Test { } impl Config for Test { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type WeightInfo = (); @@ -197,7 +197,7 @@ parameter_types! { } impl membership::Config for Test { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type DefaultMembershipPrice = DefaultMembershipPrice; type WorkingGroup = Wg; type WeightInfo = (); @@ -278,7 +278,7 @@ parameter_types! { } impl working_group::Config for Test { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type MaxWorkerNumberLimit = MaxWorkerNumberLimit; type StakingHandler = StakingManager; type StakingAccountValidator = membership::Module; @@ -291,7 +291,7 @@ impl working_group::Config for Test { } impl working_group::Config for Test { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type MaxWorkerNumberLimit = MaxWorkerNumberLimit; type StakingHandler = StakingManager; type StakingAccountValidator = membership::Module; @@ -304,7 +304,7 @@ impl working_group::Config for Test { } impl working_group::Config for Test { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type MaxWorkerNumberLimit = MaxWorkerNumberLimit; type StakingHandler = staking_handler::StakingManager; type StakingAccountValidator = membership::Module; @@ -317,7 +317,7 @@ impl working_group::Config for Test { } impl working_group::Config for Test { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type MaxWorkerNumberLimit = MaxWorkerNumberLimit; type StakingHandler = StakingManager; type StakingAccountValidator = membership::Module; @@ -330,7 +330,7 @@ impl working_group::Config for Test { } impl working_group::Config for Test { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type MaxWorkerNumberLimit = MaxWorkerNumberLimit; type StakingHandler = StakingManager; type StakingAccountValidator = membership::Module; @@ -343,7 +343,7 @@ impl working_group::Config for Test { } impl working_group::Config for Test { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type MaxWorkerNumberLimit = MaxWorkerNumberLimit; type StakingHandler = StakingManager; type StakingAccountValidator = membership::Module; @@ -356,7 +356,7 @@ impl working_group::Config for Test { } impl working_group::Config for Test { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type MaxWorkerNumberLimit = MaxWorkerNumberLimit; type StakingHandler = StakingManager; type StakingAccountValidator = membership::Module; @@ -369,7 +369,7 @@ impl working_group::Config for Test { } impl working_group::Config for Test { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type MaxWorkerNumberLimit = MaxWorkerNumberLimit; type StakingHandler = StakingManager; type StakingAccountValidator = membership::Module; @@ -382,7 +382,7 @@ impl working_group::Config for Test { } impl working_group::Config for Test { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type MaxWorkerNumberLimit = MaxWorkerNumberLimit; type StakingHandler = StakingManager; type StakingAccountValidator = membership::Module; @@ -420,7 +420,7 @@ parameter_types! { } impl referendum::Config for Test { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type MaxSaltLength = MaxSaltLength; type StakingHandler = staking_handler::StakingManager; type ManagerOrigin = EnsureOneOf, EnsureRoot>; @@ -544,7 +544,7 @@ impl BurnTokensFixture { } impl council::Config for Test { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type Referendum = referendum::Module; type MinNumberOfExtraCandidates = MinNumberOfExtraCandidates; type CouncilSize = CouncilSize; diff --git a/runtime-modules/working-group/src/benchmarking.rs b/runtime-modules/working-group/src/benchmarking.rs index 4d2b058180..fca37c00bd 100644 --- a/runtime-modules/working-group/src/benchmarking.rs +++ b/runtime-modules/working-group/src/benchmarking.rs @@ -3,7 +3,7 @@ use super::*; use core::convert::TryInto; use frame_benchmarking::{account, benchmarks_instance, Zero}; use frame_support::traits::OnInitialize; -use frame_system::EventRecord; +use frame_system::RuntimeEventRecord; use frame_system::Pallet as System; use frame_system::RawOrigin; use sp_runtime::traits::Bounded; @@ -18,9 +18,9 @@ use membership::Module as Membership; const SEED: u32 = 0; const MAX_KILOBYTES_METADATA: u32 = 100; -fn assert_last_event, I: Instance>(generic_event: >::Event) { +fn assert_last_event, I: Instance>(generic_event: >::RuntimeEvent) { let events = System::::events(); - let system_event: ::Event = generic_event.into(); + let system_event: ::RuntimeEvent = generic_event.into(); // compare to the last event record let EventRecord { event, .. } = &events[events.len() - 1]; assert_eq!(event, &system_event); diff --git a/runtime-modules/working-group/src/lib.rs b/runtime-modules/working-group/src/lib.rs index d29de4c3dd..5ed6240bd7 100644 --- a/runtime-modules/working-group/src/lib.rs +++ b/runtime-modules/working-group/src/lib.rs @@ -92,7 +92,7 @@ pub trait Config: frame_system::Config + balances::Config + common::membership::MembershipTypes { /// _Administration_ event type. - type Event: From> + Into<::Event>; + type RuntimeEvent: From> + Into<::RuntimeEvent>; /// Defines max workers number in the group. type MaxWorkerNumberLimit: Get; diff --git a/runtime-modules/working-group/src/tests/mock.rs b/runtime-modules/working-group/src/tests/mock.rs index 7c354df645..0f8a84799e 100644 --- a/runtime-modules/working-group/src/tests/mock.rs +++ b/runtime-modules/working-group/src/tests/mock.rs @@ -58,7 +58,7 @@ impl frame_system::Config for Test { type AccountId = u64; type Lookup = IdentityLookup; type Header = Header; - type Event = Event; + type RuntimeEvent = RuntimeEvent; type BlockHashCount = ConstU64<250>; type Version = (); type PalletInfo = PalletInfo; @@ -81,7 +81,7 @@ impl pallet_timestamp::Config for Test { impl balances::Config for Test { type Balance = u64; type DustRemoval = (); - type Event = Event; + type RuntimeEvent = RuntimeEvent; type ExistentialDeposit = ExistentialDeposit; type AccountStore = System; type MaxLocks = (); @@ -96,7 +96,7 @@ impl common::membership::MembershipTypes for Test { } impl membership::Config for Test { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type DefaultMembershipPrice = DefaultMembershipPrice; type WorkingGroup = Module; type WeightInfo = (); @@ -125,7 +125,7 @@ parameter_types! { } impl Config for Test { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type MaxWorkerNumberLimit = MaxWorkerNumberLimit; type StakingHandler = staking_handler::StakingManager; type StakingAccountValidator = (); diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs index ef37575740..f6c5c29bf7 100644 --- a/runtime/src/lib.rs +++ b/runtime/src/lib.rs @@ -279,7 +279,7 @@ impl frame_system::Config for Runtime { type AccountId = AccountId; type Lookup = IdentityLookup; type Header = generic::Header; - type Event = Event; + type RuntimeEvent = RuntimeEvent; type BlockHashCount = BlockHashCount; type Version = Version; type PalletInfo = PalletInfo; @@ -295,7 +295,7 @@ impl frame_system::Config for Runtime { impl pallet_insecure_randomness_collective_flip::Config for Runtime {} impl substrate_utility::Config for Runtime { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type Call = Call; type PalletsOrigin = OriginCaller; type WeightInfo = weights::substrate_utility::SubstrateWeight; @@ -336,7 +336,7 @@ impl pallet_babe::Config for Runtime { } impl pallet_grandpa::Config for Runtime { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type Call = Call; type KeyOwnerProofSystem = Historical; @@ -424,7 +424,7 @@ impl pallet_balances::Config for Runtime { type ReserveIdentifier = [u8; 8]; type Balance = Balance; type DustRemoval = (); - type Event = Event; + type RuntimeEvent = RuntimeEvent; type ExistentialDeposit = ExistentialDeposit; type AccountStore = System; type WeightInfo = weights::pallet_balances::SubstrateWeight; @@ -496,7 +496,7 @@ impl_opaque_keys! { } impl pallet_session::Config for Runtime { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type ValidatorId = ::AccountId; type ValidatorIdOf = pallet_staking::StashOf; type ShouldEndSession = Babe; @@ -569,7 +569,7 @@ impl pallet_staking::Config for Runtime { type UnixTime = Timestamp; type CurrencyToVote = frame_support::traits::SaturatingCurrencyToVote; // U128CurrencyToVote; type RewardRemainder = (); - type Event = Event; + type RuntimeEvent = RuntimeEvent; type Slash = (); type Reward = (); // rewards are minted from the void type SessionsPerEra = SessionsPerEra; @@ -711,7 +711,7 @@ impl pallet_election_provider_multi_phase::MinerConfig for Runtime { } impl pallet_election_provider_multi_phase::Config for Runtime { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type Currency = Balances; type EstimateCallFee = TransactionPayment; type SignedPhase = SignedPhase; @@ -750,7 +750,7 @@ parameter_types! { } impl pallet_bags_list::Config for Runtime { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type ScoreProvider = Staking; type WeightInfo = weights::pallet_bags_list::SubstrateWeight; type BagThresholds = BagThresholds; @@ -769,7 +769,7 @@ parameter_types! { impl pallet_im_online::Config for Runtime { type AuthorityId = ImOnlineId; - type Event = Event; + type RuntimeEvent = RuntimeEvent; type NextSessionRotation = Babe; type ValidatorSet = Historical; type ReportUnresponsiveness = Offences; @@ -781,7 +781,7 @@ impl pallet_im_online::Config for Runtime { } impl pallet_offences::Config for Runtime { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type IdentificationTuple = pallet_session::historical::IdentificationTuple; type OnOffenceHandler = Staking; } @@ -856,7 +856,7 @@ parameter_types! { } impl content::Config for Runtime { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type VideoId = VideoId; type OpenAuctionId = OpenAuctionId; type MaxNumberOfCuratorsPerGroup = MaxNumberOfCuratorsPerGroup; @@ -903,7 +903,7 @@ parameter_types! { } impl project_token::Config for Runtime { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type Balance = Balance; type TokenId = TokenId; type BlockNumberToBalance = BlockNumberToBalance; @@ -1020,7 +1020,7 @@ parameter_types! { } impl referendum::Config for Runtime { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type MaxSaltLength = MaxSaltLength; type StakingHandler = VotingStakingManager; type ManagerOrigin = EnsureOneOf, EnsureRoot>; @@ -1069,7 +1069,7 @@ impl referendum::Config for Runtime { } impl council::Config for Runtime { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type Referendum = ReferendumModule; type MinNumberOfExtraCandidates = MinNumberOfExtraCandidates; type CouncilSize = CouncilSize; @@ -1160,7 +1160,7 @@ const_assert!(MinDistributionBucketsPerBag::get() > 0); const_assert!(MaxDistributionBucketsPerBag::get() >= MinDistributionBucketsPerBag::get()); impl storage::Config for Runtime { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type DataObjectId = DataObjectId; type StorageBucketId = StorageBucketId; type DistributionBucketIndex = DistributionBucketIndex; @@ -1210,7 +1210,7 @@ parameter_types! { } impl membership::Config for Runtime { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type DefaultMembershipPrice = DefaultMembershipPrice; type DefaultInitialInvitationBalance = DefaultInitialInvitationBalance; type InvitedMemberStakingHandler = InvitedMemberStakingManager; @@ -1274,7 +1274,7 @@ impl forum::StorageLimits for MapLimits { } impl forum::Config for Runtime { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type ThreadId = ThreadId; type PostId = PostId; type CategoryId = u64; @@ -1399,7 +1399,7 @@ pub type OperationsWorkingGroupInstanceGamma = working_group::Instance8; pub type DistributionWorkingGroupInstance = working_group::Instance9; impl working_group::Config for Runtime { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type MaxWorkerNumberLimit = MaxWorkerNumberLimit; type StakingHandler = ForumWorkingGroupStakingManager; type StakingAccountValidator = Members; @@ -1412,7 +1412,7 @@ impl working_group::Config for Runtime { } impl working_group::Config for Runtime { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type MaxWorkerNumberLimit = MaxWorkerNumberLimit; type StakingHandler = StorageWorkingGroupStakingManager; type StakingAccountValidator = Members; @@ -1425,7 +1425,7 @@ impl working_group::Config for Runtime { } impl working_group::Config for Runtime { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type MaxWorkerNumberLimit = MaxWorkerNumberLimit; type StakingHandler = ContentWorkingGroupStakingManager; type StakingAccountValidator = Members; @@ -1438,7 +1438,7 @@ impl working_group::Config for Runtime { } impl working_group::Config for Runtime { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type MaxWorkerNumberLimit = MaxWorkerNumberLimit; type StakingHandler = MembershipWorkingGroupStakingManager; type StakingAccountValidator = Members; @@ -1451,7 +1451,7 @@ impl working_group::Config for Runtime { } impl working_group::Config for Runtime { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type MaxWorkerNumberLimit = MaxWorkerNumberLimit; type StakingHandler = OperationsWorkingGroupAlphaStakingManager; type StakingAccountValidator = Members; @@ -1464,7 +1464,7 @@ impl working_group::Config for Runtime { } impl working_group::Config for Runtime { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type MaxWorkerNumberLimit = MaxWorkerNumberLimit; type StakingHandler = AppWorkingGroupStakingManager; type StakingAccountValidator = Members; @@ -1477,7 +1477,7 @@ impl working_group::Config for Runtime { } impl working_group::Config for Runtime { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type MaxWorkerNumberLimit = MaxWorkerNumberLimit; type StakingHandler = OperationsWorkingGroupBetaStakingManager; type StakingAccountValidator = Members; @@ -1490,7 +1490,7 @@ impl working_group::Config for Runtime { } impl working_group::Config for Runtime { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type MaxWorkerNumberLimit = MaxWorkerNumberLimit; type StakingHandler = OperationsWorkingGroupGammaStakingManager; type StakingAccountValidator = Members; @@ -1503,7 +1503,7 @@ impl working_group::Config for Runtime { } impl working_group::Config for Runtime { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type MaxWorkerNumberLimit = MaxWorkerNumberLimit; type StakingHandler = DistributionWorkingGroupStakingManager; type StakingAccountValidator = Members; @@ -1536,7 +1536,7 @@ parameter_types! { } impl proposals_engine::Config for Runtime { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type ProposerOriginValidator = Members; type CouncilOriginValidator = Council; type TotalVotersCounter = CouncilManager; @@ -1601,7 +1601,7 @@ macro_rules! call_wg { } impl proposals_discussion::Config for Runtime { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type AuthorOriginValidator = Members; type MembershipInfoProvider = Members; type CouncilOriginValidator = Council; @@ -1615,7 +1615,7 @@ impl proposals_discussion::Config for Runtime { } impl joystream_utility::Config for Runtime { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type WeightInfo = joystream_utility::weights::SubstrateWeight; @@ -1643,7 +1643,7 @@ const_assert!( ); impl proposals_codex::Config for Runtime { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type MembershipOriginValidator = Members; type ProposalEncoder = ExtrinsicProposalEncoder; type SetMaxValidatorCountProposalParameters = SetMaxValidatorCountProposalParameters; @@ -1682,7 +1682,7 @@ impl proposals_codex::Config for Runtime { } impl pallet_constitution::Config for Runtime { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type WeightInfo = pallet_constitution::weights::SubstrateWeight; } @@ -1735,7 +1735,7 @@ parameter_types! { } impl bounty::Config for Runtime { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type ModuleId = BountyModuleId; type BountyId = u64; type Membership = Members; @@ -1755,7 +1755,7 @@ parameter_types! { } impl pallet_vesting::Config for Runtime { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type Currency = Balances; type BlockNumberToBalance = ConvertInto; type MinVestedTransfer = MinVestedTransfer; @@ -1785,7 +1785,7 @@ parameter_types! { } impl pallet_multisig::Config for Runtime { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type Call = Call; type Currency = Balances; type DepositBase = DepositBase; From 547cbf89a061fb99854c3a2184f007d52ed0f18c Mon Sep 17 00:00:00 2001 From: Mokhtar Naamani Date: Wed, 8 Mar 2023 19:05:17 +0400 Subject: [PATCH 07/87] v0.9.39 - workaround weights v2 --- devops/frame-weight-template.hbs | 12 +- devops/joystream-pallet-weight-template.hbs | 14 +- runtime-modules/bounty/src/weights.rs | 306 +++--- runtime-modules/constitution/src/weights.rs | 8 +- runtime-modules/content/src/weights.rs | 876 +++++++++--------- runtime-modules/council/src/weights.rs | 134 +-- runtime-modules/forum/src/weights.rs | 336 +++---- runtime-modules/membership/src/weights.rs | 186 ++-- runtime-modules/project-token/src/weights.rs | 66 +- .../proposals/codex/src/weights.rs | 286 +++--- .../proposals/discussion/src/weights.rs | 40 +- .../proposals/engine/src/weights.rs | 114 +-- runtime-modules/referendum/src/weights.rs | 82 +- runtime-modules/storage/src/weights.rs | 322 +++---- runtime-modules/utility/src/weights.rs | 30 +- runtime-modules/working-group/src/weights.rs | 240 ++--- 16 files changed, 1526 insertions(+), 1526 deletions(-) diff --git a/devops/frame-weight-template.hbs b/devops/frame-weight-template.hbs index 207ff21fb1..b70ff70e65 100644 --- a/devops/frame-weight-template.hbs +++ b/devops/frame-weight-template.hbs @@ -48,22 +48,22 @@ impl WeightInfo for SubstrateWeight { {{~#each benchmark.components as |c| ~}} {{~#if (not c.is_used)}}_{{/if}}{{c.name}}: u32, {{/each~}} ) -> Weight { - ({{underscore benchmark.base_weight}} as Weight) + Weight::from_ref_time({{underscore benchmark.base_weight}}) {{#each benchmark.component_weight as |cw|}} // Standard Error: {{underscore cw.error}} - .saturating_add(({{underscore cw.slope}} as Weight).saturating_mul({{cw.name}} as Weight)) + .saturating_add(Weight::from_all({{underscore cw.slope}}).saturating_mul({{cw.name}}.into())) {{/each}} {{#if (ne benchmark.base_reads "0")}} - .saturating_add(T::DbWeight::get().reads({{benchmark.base_reads}} as Weight)) + .saturating_add(T::DbWeight::get().reads({{benchmark.base_reads}}_u64)) {{/if}} {{#each benchmark.component_reads as |cr|}} - .saturating_add(T::DbWeight::get().reads(({{cr.slope}} as Weight).saturating_mul({{cr.name}} as Weight))) + .saturating_add(T::DbWeight::get().reads(({{cr.slope}}_u64).saturating_mul({{cr.name}}.into()))) {{/each}} {{#if (ne benchmark.base_writes "0")}} - .saturating_add(T::DbWeight::get().writes({{benchmark.base_writes}} as Weight)) + .saturating_add(T::DbWeight::get().writes({{benchmark.base_writes}}_u64)) {{/if}} {{#each benchmark.component_writes as |cw|}} - .saturating_add(T::DbWeight::get().writes(({{cw.slope}} as Weight).saturating_mul({{cw.name}} as Weight))) + .saturating_add(T::DbWeight::get().writes(({{cw.slope}}_u64).saturating_mul({{cw.name}}.into()))) {{/each}} } {{/each}} diff --git a/devops/joystream-pallet-weight-template.hbs b/devops/joystream-pallet-weight-template.hbs index 1fdd5ac53b..fef1045894 100644 --- a/devops/joystream-pallet-weight-template.hbs +++ b/devops/joystream-pallet-weight-template.hbs @@ -57,22 +57,22 @@ impl WeightInfo for SubstrateWeight { {{~#each benchmark.components as |c| ~}} {{~#if (not c.is_used)}}_{{/if}}{{c.name}}: u32, {{/each~}} ) -> Weight { - ({{underscore benchmark.base_weight}} as Weight) + Weight::from_ref_time({{underscore benchmark.base_weight}}) {{#each benchmark.component_weight as |cw|}} // Standard Error: {{underscore cw.error}} - .saturating_add(({{underscore cw.slope}} as Weight).saturating_mul({{cw.name}} as Weight)) + .saturating_add(Weight::from_all({{underscore cw.slope}}).saturating_mul({{cw.name}}.into())) {{/each}} {{#if (ne benchmark.base_reads "0")}} - .saturating_add(T::DbWeight::get().reads({{benchmark.base_reads}} as Weight)) + .saturating_add(T::DbWeight::get().reads({{benchmark.base_reads}}_u64)) {{/if}} {{#each benchmark.component_reads as |cr|}} - .saturating_add(T::DbWeight::get().reads(({{cr.slope}} as Weight).saturating_mul({{cr.name}} as Weight))) + .saturating_add(T::DbWeight::get().reads(({{cr.slope}}_u64).saturating_mul({{cr.name}}.into()))) {{/each}} {{#if (ne benchmark.base_writes "0")}} - .saturating_add(T::DbWeight::get().writes({{benchmark.base_writes}} as Weight)) + .saturating_add(T::DbWeight::get().writes({{benchmark.base_writes}}_u64)) {{/if}} {{#each benchmark.component_writes as |cw|}} - .saturating_add(T::DbWeight::get().writes(({{cw.slope}} as Weight).saturating_mul({{cw.name}} as Weight))) + .saturating_add(T::DbWeight::get().writes(({{cw.slope}}_u64).saturating_mul({{cw.name}}.into()))) {{/each}} } {{/each}} @@ -86,7 +86,7 @@ impl WeightInfo for () { {{~#each benchmark.components as |c| ~}} {{~#if (not c.is_used)}}_{{/if}}{{c.name}}: u32, {{/each~}} ) -> Weight { - 0 + Weight::from_ref_time(0).into() } {{/each}} } diff --git a/runtime-modules/bounty/src/weights.rs b/runtime-modules/bounty/src/weights.rs index 8a7af6c603..6f5e608320 100644 --- a/runtime-modules/bounty/src/weights.rs +++ b/runtime-modules/bounty/src/weights.rs @@ -88,121 +88,121 @@ impl WeightInfo for SubstrateWeight { // Storage: System Account (r:1 w:1) // Storage: Bounty Bounties (r:0 w:1) fn create_bounty_by_council(i: u32, j: u32, ) -> Weight { - (66_826_000 as Weight) + Weight::from_ref_time(66_826_000) // Standard Error: 3_000 - .saturating_add((594_000 as Weight).saturating_mul(i as Weight)) + .saturating_add(Weight::from_ref_time(594_000).saturating_mul(i.into())) // Standard Error: 8_000 - .saturating_add((5_110_000 as Weight).saturating_mul(j as Weight)) - .saturating_add(T::DbWeight::get().reads(3 as Weight)) - .saturating_add(T::DbWeight::get().reads((1 as Weight).saturating_mul(j as Weight))) - .saturating_add(T::DbWeight::get().writes(4 as Weight)) + .saturating_add(Weight::from_ref_time(5_110_000).saturating_mul(j.into())) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(j.into()))) + .saturating_add(T::DbWeight::get().writes(4_u64)) } // Storage: Membership MembershipById (r:51 w:0) // Storage: System Account (r:2 w:2) // Storage: Bounty BountyCount (r:1 w:1) // Storage: Bounty Bounties (r:0 w:1) fn create_bounty_by_member(i: u32, j: u32, ) -> Weight { - (67_970_000 as Weight) + Weight::from_ref_time(67_970_000) // Standard Error: 4_000 - .saturating_add((671_000 as Weight).saturating_mul(i as Weight)) + .saturating_add(Weight::from_ref_time(671_000).saturating_mul(i.into())) // Standard Error: 10_000 - .saturating_add((5_173_000 as Weight).saturating_mul(j as Weight)) - .saturating_add(T::DbWeight::get().reads(4 as Weight)) - .saturating_add(T::DbWeight::get().reads((1 as Weight).saturating_mul(j as Weight))) - .saturating_add(T::DbWeight::get().writes(4 as Weight)) + .saturating_add(Weight::from_ref_time(5_173_000).saturating_mul(j.into())) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(j.into()))) + .saturating_add(T::DbWeight::get().writes(4_u64)) } // Storage: Bounty Bounties (r:1 w:1) // Storage: Bounty BountyContributions (r:1 w:0) // Storage: System Account (r:1 w:1) // Storage: Council Budget (r:1 w:1) fn terminate_bounty_w_oracle_reward_funding_expired() -> Weight { - (56_590_000 as Weight) - .saturating_add(T::DbWeight::get().reads(4 as Weight)) - .saturating_add(T::DbWeight::get().writes(3 as Weight)) + Weight::from_ref_time(56_590_000) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) } // Storage: Bounty Bounties (r:1 w:1) // Storage: Bounty BountyContributions (r:1 w:0) // Storage: System Account (r:1 w:1) // Storage: Council Budget (r:1 w:1) fn terminate_bounty_wo_oracle_reward_funding_expired() -> Weight { - (83_450_000 as Weight) - .saturating_add(T::DbWeight::get().reads(4 as Weight)) - .saturating_add(T::DbWeight::get().writes(3 as Weight)) + Weight::from_ref_time(83_450_000) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) } // Storage: Bounty Bounties (r:1 w:1) // Storage: Bounty BountyContributions (r:1 w:0) // Storage: System Account (r:1 w:1) // Storage: Council Budget (r:1 w:1) fn terminate_bounty_w_oracle_reward_wo_funds_funding() -> Weight { - (56_290_000 as Weight) - .saturating_add(T::DbWeight::get().reads(4 as Weight)) - .saturating_add(T::DbWeight::get().writes(3 as Weight)) + Weight::from_ref_time(56_290_000) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) } // Storage: Bounty Bounties (r:1 w:1) // Storage: Bounty BountyContributions (r:1 w:0) // Storage: System Account (r:1 w:1) // Storage: Council Budget (r:1 w:1) fn terminate_bounty_wo_oracle_reward_wo_funds_funding() -> Weight { - (83_020_000 as Weight) - .saturating_add(T::DbWeight::get().reads(4 as Weight)) - .saturating_add(T::DbWeight::get().writes(3 as Weight)) + Weight::from_ref_time(83_020_000) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) } // Storage: Bounty Bounties (r:1 w:1) // Storage: Bounty BountyContributions (r:2 w:0) fn terminate_bounty_w_oracle_reward_w_funds_funding() -> Weight { - (31_990_000 as Weight) - .saturating_add(T::DbWeight::get().reads(3 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + Weight::from_ref_time(31_990_000) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Bounty Bounties (r:1 w:1) // Storage: Bounty BountyContributions (r:2 w:0) fn terminate_bounty_wo_oracle_reward_w_funds_funding() -> Weight { - (38_500_000 as Weight) - .saturating_add(T::DbWeight::get().reads(3 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + Weight::from_ref_time(38_500_000) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Bounty Bounties (r:1 w:1) // Storage: Bounty BountyContributions (r:2 w:0) fn terminate_bounty_work_or_judging_period() -> Weight { - (31_911_000 as Weight) - .saturating_add(T::DbWeight::get().reads(3 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + Weight::from_ref_time(31_911_000) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Membership MembershipById (r:1 w:0) // Storage: Bounty Bounties (r:1 w:1) // Storage: Bounty BountyContributions (r:1 w:1) // Storage: System Account (r:2 w:2) fn fund_bounty_by_member() -> Weight { - (69_380_000 as Weight) - .saturating_add(T::DbWeight::get().reads(5 as Weight)) - .saturating_add(T::DbWeight::get().writes(4 as Weight)) + Weight::from_ref_time(69_380_000) + .saturating_add(T::DbWeight::get().reads(5_u64)) + .saturating_add(T::DbWeight::get().writes(4_u64)) } // Storage: Bounty Bounties (r:1 w:1) // Storage: Bounty BountyContributions (r:1 w:1) // Storage: Council Budget (r:1 w:1) // Storage: System Account (r:1 w:1) fn fund_bounty_by_council() -> Weight { - (58_100_000 as Weight) - .saturating_add(T::DbWeight::get().reads(4 as Weight)) - .saturating_add(T::DbWeight::get().writes(4 as Weight)) + Weight::from_ref_time(58_100_000) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(4_u64)) } // Storage: Membership MembershipById (r:1 w:0) // Storage: Bounty Bounties (r:1 w:0) // Storage: Bounty BountyContributions (r:1 w:1) // Storage: System Account (r:2 w:2) fn withdraw_funding_by_member() -> Weight { - (65_930_000 as Weight) - .saturating_add(T::DbWeight::get().reads(5 as Weight)) - .saturating_add(T::DbWeight::get().writes(3 as Weight)) + Weight::from_ref_time(65_930_000) + .saturating_add(T::DbWeight::get().reads(5_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) } // Storage: Bounty Bounties (r:1 w:0) // Storage: Bounty BountyContributions (r:1 w:1) // Storage: System Account (r:1 w:1) // Storage: Council Budget (r:1 w:1) fn withdraw_funding_by_council() -> Weight { - (57_700_000 as Weight) - .saturating_add(T::DbWeight::get().reads(4 as Weight)) - .saturating_add(T::DbWeight::get().writes(3 as Weight)) + Weight::from_ref_time(57_700_000) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) } // Storage: Membership MembershipById (r:1 w:0) // Storage: Bounty Bounties (r:1 w:1) @@ -212,23 +212,23 @@ impl WeightInfo for SubstrateWeight { // Storage: Bounty EntryCount (r:1 w:1) // Storage: Bounty Entries (r:0 w:1) fn announce_work_entry(i: u32, j: u32, ) -> Weight { - (64_714_000 as Weight) + Weight::from_ref_time(64_714_000) // Standard Error: 4_000 - .saturating_add((791_000 as Weight).saturating_mul(i as Weight)) + .saturating_add(Weight::from_ref_time(791_000).saturating_mul(i.into())) // Standard Error: 10_000 - .saturating_add((350_000 as Weight).saturating_mul(j as Weight)) - .saturating_add(T::DbWeight::get().reads(6 as Weight)) - .saturating_add(T::DbWeight::get().writes(5 as Weight)) + .saturating_add(Weight::from_ref_time(350_000).saturating_mul(j.into())) + .saturating_add(T::DbWeight::get().reads(6_u64)) + .saturating_add(T::DbWeight::get().writes(5_u64)) } // Storage: Membership MembershipById (r:1 w:0) // Storage: Bounty Bounties (r:1 w:0) // Storage: Bounty Entries (r:1 w:1) fn submit_work(i: u32, ) -> Weight { - (35_985_000 as Weight) + Weight::from_ref_time(35_985_000) // Standard Error: 1_000 - .saturating_add((722_000 as Weight).saturating_mul(i as Weight)) - .saturating_add(T::DbWeight::get().reads(3 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + .saturating_add(Weight::from_ref_time(722_000).saturating_mul(i.into())) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Bounty Bounties (r:1 w:1) // Storage: Bounty Entries (r:40 w:40) @@ -237,21 +237,21 @@ impl WeightInfo for SubstrateWeight { // Storage: Council Budget (r:1 w:1) // Storage: Balances Locks (r:40 w:40) fn submit_oracle_judgment_by_council(j: u32, k: u32, w: u32, r: u32, ) -> Weight { - (0 as Weight) + Weight::from_ref_time(0) // Standard Error: 13_000 - .saturating_add((886_000 as Weight).saturating_mul(j as Weight)) + .saturating_add(Weight::from_ref_time(886_000).saturating_mul(j.into())) // Standard Error: 13_000 - .saturating_add((824_000 as Weight).saturating_mul(k as Weight)) + .saturating_add(Weight::from_ref_time(824_000).saturating_mul(k.into())) // Standard Error: 95_000 - .saturating_add((60_240_000 as Weight).saturating_mul(w as Weight)) + .saturating_add(Weight::from_ref_time(60_240_000).saturating_mul(w.into())) // Standard Error: 95_000 - .saturating_add((76_631_000 as Weight).saturating_mul(r as Weight)) - .saturating_add(T::DbWeight::get().reads(3 as Weight)) - .saturating_add(T::DbWeight::get().reads((4 as Weight).saturating_mul(w as Weight))) - .saturating_add(T::DbWeight::get().reads((4 as Weight).saturating_mul(r as Weight))) - .saturating_add(T::DbWeight::get().writes(3 as Weight)) - .saturating_add(T::DbWeight::get().writes((3 as Weight).saturating_mul(w as Weight))) - .saturating_add(T::DbWeight::get().writes((3 as Weight).saturating_mul(r as Weight))) + .saturating_add(Weight::from_ref_time(76_631_000).saturating_mul(r.into())) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().reads((4_u64).saturating_mul(w.into()))) + .saturating_add(T::DbWeight::get().reads((4_u64).saturating_mul(r.into()))) + .saturating_add(T::DbWeight::get().writes(3_u64)) + .saturating_add(T::DbWeight::get().writes((3_u64).saturating_mul(w.into()))) + .saturating_add(T::DbWeight::get().writes((3_u64).saturating_mul(r.into()))) } // Storage: Bounty Bounties (r:1 w:1) // Storage: Membership MembershipById (r:40 w:0) @@ -260,62 +260,62 @@ impl WeightInfo for SubstrateWeight { // Storage: Council Budget (r:1 w:1) // Storage: Balances Locks (r:39 w:39) fn submit_oracle_judgment_by_member(j: u32, k: u32, w: u32, r: u32, ) -> Weight { - (0 as Weight) + Weight::from_ref_time(0) // Standard Error: 25_000 - .saturating_add((970_000 as Weight).saturating_mul(j as Weight)) + .saturating_add(Weight::from_ref_time(970_000).saturating_mul(j.into())) // Standard Error: 25_000 - .saturating_add((1_037_000 as Weight).saturating_mul(k as Weight)) + .saturating_add(Weight::from_ref_time(1_037_000).saturating_mul(k.into())) // Standard Error: 176_000 - .saturating_add((60_734_000 as Weight).saturating_mul(w as Weight)) + .saturating_add(Weight::from_ref_time(60_734_000).saturating_mul(w.into())) // Standard Error: 189_000 - .saturating_add((75_651_000 as Weight).saturating_mul(r as Weight)) - .saturating_add(T::DbWeight::get().reads(4 as Weight)) - .saturating_add(T::DbWeight::get().reads((4 as Weight).saturating_mul(w as Weight))) - .saturating_add(T::DbWeight::get().reads((4 as Weight).saturating_mul(r as Weight))) - .saturating_add(T::DbWeight::get().writes(3 as Weight)) - .saturating_add(T::DbWeight::get().writes((3 as Weight).saturating_mul(w as Weight))) - .saturating_add(T::DbWeight::get().writes((3 as Weight).saturating_mul(r as Weight))) + .saturating_add(Weight::from_ref_time(75_651_000).saturating_mul(r.into())) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().reads((4_u64).saturating_mul(w.into()))) + .saturating_add(T::DbWeight::get().reads((4_u64).saturating_mul(r.into()))) + .saturating_add(T::DbWeight::get().writes(3_u64)) + .saturating_add(T::DbWeight::get().writes((3_u64).saturating_mul(w.into()))) + .saturating_add(T::DbWeight::get().writes((3_u64).saturating_mul(r.into()))) } // Storage: Bounty Bounties (r:1 w:1) fn switch_oracle_to_council_by_council_successful() -> Weight { - (25_029_000 as Weight) - .saturating_add(T::DbWeight::get().reads(1 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + Weight::from_ref_time(25_029_000) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Bounty Bounties (r:1 w:1) // Storage: Membership MembershipById (r:1 w:0) fn switch_oracle_to_member_by_oracle_council() -> Weight { - (29_030_000 as Weight) - .saturating_add(T::DbWeight::get().reads(2 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + Weight::from_ref_time(29_030_000) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Bounty Bounties (r:1 w:1) // Storage: Membership MembershipById (r:1 w:0) fn switch_oracle_to_member_by_council() -> Weight { - (30_520_000 as Weight) - .saturating_add(T::DbWeight::get().reads(2 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + Weight::from_ref_time(30_520_000) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Bounty Bounties (r:1 w:1) // Storage: Membership MembershipById (r:2 w:0) fn switch_oracle_to_member_by_oracle_member() -> Weight { - (34_780_000 as Weight) - .saturating_add(T::DbWeight::get().reads(3 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + Weight::from_ref_time(34_780_000) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Bounty Bounties (r:1 w:1) // Storage: Membership MembershipById (r:1 w:0) fn switch_oracle_to_council_by_oracle_member() -> Weight { - (29_320_000 as Weight) - .saturating_add(T::DbWeight::get().reads(2 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + Weight::from_ref_time(29_320_000) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Bounty Bounties (r:1 w:1) // Storage: Membership MembershipById (r:1 w:0) fn end_working_period() -> Weight { - (30_200_000 as Weight) - .saturating_add(T::DbWeight::get().reads(2 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + Weight::from_ref_time(30_200_000) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Membership MembershipById (r:1 w:0) // Storage: Bounty Bounties (r:1 w:1) @@ -323,36 +323,36 @@ impl WeightInfo for SubstrateWeight { // Storage: Balances Locks (r:1 w:1) // Storage: System Account (r:1 w:1) fn withdraw_entrant_stake() -> Weight { - (52_629_000 as Weight) - .saturating_add(T::DbWeight::get().reads(5 as Weight)) - .saturating_add(T::DbWeight::get().writes(4 as Weight)) + Weight::from_ref_time(52_629_000) + .saturating_add(T::DbWeight::get().reads(5_u64)) + .saturating_add(T::DbWeight::get().writes(4_u64)) } // Storage: Bounty Bounties (r:1 w:0) // Storage: Bounty BountyContributions (r:1 w:1) // Storage: System Account (r:1 w:1) // Storage: Council Budget (r:1 w:1) fn withdraw_funding_state_bloat_bond_by_council() -> Weight { - (56_640_000 as Weight) - .saturating_add(T::DbWeight::get().reads(4 as Weight)) - .saturating_add(T::DbWeight::get().writes(3 as Weight)) + Weight::from_ref_time(56_640_000) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) } // Storage: Membership MembershipById (r:1 w:0) // Storage: Bounty Bounties (r:1 w:0) // Storage: Bounty BountyContributions (r:1 w:1) // Storage: System Account (r:2 w:2) fn withdraw_funding_state_bloat_bond_by_member() -> Weight { - (65_190_000 as Weight) - .saturating_add(T::DbWeight::get().reads(5 as Weight)) - .saturating_add(T::DbWeight::get().writes(3 as Weight)) + Weight::from_ref_time(65_190_000) + .saturating_add(T::DbWeight::get().reads(5_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) } // Storage: Bounty Bounties (r:1 w:1) // Storage: System Account (r:1 w:1) // Storage: Council Budget (r:1 w:1) // Storage: Bounty BountyContributions (r:1 w:0) fn withdraw_oracle_reward_by_oracle_council() -> Weight { - (85_380_000 as Weight) - .saturating_add(T::DbWeight::get().reads(4 as Weight)) - .saturating_add(T::DbWeight::get().writes(3 as Weight)) + Weight::from_ref_time(85_380_000) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) } // Storage: Bounty Bounties (r:1 w:1) // Storage: Membership MembershipById (r:1 w:0) @@ -360,138 +360,138 @@ impl WeightInfo for SubstrateWeight { // Storage: Bounty BountyContributions (r:1 w:0) // Storage: Council Budget (r:1 w:1) fn withdraw_oracle_reward_by_oracle_member() -> Weight { - (99_320_000 as Weight) - .saturating_add(T::DbWeight::get().reads(6 as Weight)) - .saturating_add(T::DbWeight::get().writes(4 as Weight)) + Weight::from_ref_time(99_320_000) + .saturating_add(T::DbWeight::get().reads(6_u64)) + .saturating_add(T::DbWeight::get().writes(4_u64)) } // Storage: Membership MembershipById (r:1 w:0) // Storage: Bounty Entries (r:1 w:0) fn entrant_remark(i: u32, ) -> Weight { - (24_192_000 as Weight) + Weight::from_ref_time(24_192_000) // Standard Error: 1_000 - .saturating_add((735_000 as Weight).saturating_mul(i as Weight)) - .saturating_add(T::DbWeight::get().reads(2 as Weight)) + .saturating_add(Weight::from_ref_time(735_000).saturating_mul(i.into())) + .saturating_add(T::DbWeight::get().reads(2_u64)) } // Storage: Membership MembershipById (r:1 w:0) // Storage: Bounty BountyContributions (r:1 w:0) fn contributor_remark(i: u32, ) -> Weight { - (23_858_000 as Weight) + Weight::from_ref_time(23_858_000) // Standard Error: 0 - .saturating_add((664_000 as Weight).saturating_mul(i as Weight)) - .saturating_add(T::DbWeight::get().reads(2 as Weight)) + .saturating_add(Weight::from_ref_time(664_000).saturating_mul(i.into())) + .saturating_add(T::DbWeight::get().reads(2_u64)) } // Storage: Bounty Bounties (r:1 w:0) fn oracle_remark(i: u32, ) -> Weight { - (19_514_000 as Weight) + Weight::from_ref_time(19_514_000) // Standard Error: 5_000 - .saturating_add((672_000 as Weight).saturating_mul(i as Weight)) - .saturating_add(T::DbWeight::get().reads(1 as Weight)) + .saturating_add(Weight::from_ref_time(672_000).saturating_mul(i.into())) + .saturating_add(T::DbWeight::get().reads(1_u64)) } // Storage: Bounty Bounties (r:1 w:0) fn creator_remark(i: u32, ) -> Weight { - (19_577_000 as Weight) + Weight::from_ref_time(19_577_000) // Standard Error: 5_000 - .saturating_add((671_000 as Weight).saturating_mul(i as Weight)) - .saturating_add(T::DbWeight::get().reads(1 as Weight)) + .saturating_add(Weight::from_ref_time(671_000).saturating_mul(i.into())) + .saturating_add(T::DbWeight::get().reads(1_u64)) } } // Default implementation for tests impl WeightInfo for () { fn create_bounty_by_council(i: u32, j: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn create_bounty_by_member(i: u32, j: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn terminate_bounty_w_oracle_reward_funding_expired() -> Weight { - 0 + Weight::from_ref_time(0) } fn terminate_bounty_wo_oracle_reward_funding_expired() -> Weight { - 0 + Weight::from_ref_time(0) } fn terminate_bounty_w_oracle_reward_wo_funds_funding() -> Weight { - 0 + Weight::from_ref_time(0) } fn terminate_bounty_wo_oracle_reward_wo_funds_funding() -> Weight { - 0 + Weight::from_ref_time(0) } fn terminate_bounty_w_oracle_reward_w_funds_funding() -> Weight { - 0 + Weight::from_ref_time(0) } fn terminate_bounty_wo_oracle_reward_w_funds_funding() -> Weight { - 0 + Weight::from_ref_time(0) } fn terminate_bounty_work_or_judging_period() -> Weight { - 0 + Weight::from_ref_time(0) } fn fund_bounty_by_member() -> Weight { - 0 + Weight::from_ref_time(0) } fn fund_bounty_by_council() -> Weight { - 0 + Weight::from_ref_time(0) } fn withdraw_funding_by_member() -> Weight { - 0 + Weight::from_ref_time(0) } fn withdraw_funding_by_council() -> Weight { - 0 + Weight::from_ref_time(0) } fn announce_work_entry(i: u32, j: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn submit_work(i: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn submit_oracle_judgment_by_council(j: u32, k: u32, w: u32, r: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn submit_oracle_judgment_by_member(j: u32, k: u32, w: u32, r: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn switch_oracle_to_council_by_council_successful() -> Weight { - 0 + Weight::from_ref_time(0) } fn switch_oracle_to_member_by_oracle_council() -> Weight { - 0 + Weight::from_ref_time(0) } fn switch_oracle_to_member_by_council() -> Weight { - 0 + Weight::from_ref_time(0) } fn switch_oracle_to_member_by_oracle_member() -> Weight { - 0 + Weight::from_ref_time(0) } fn switch_oracle_to_council_by_oracle_member() -> Weight { - 0 + Weight::from_ref_time(0) } fn end_working_period() -> Weight { - 0 + Weight::from_ref_time(0) } fn withdraw_entrant_stake() -> Weight { - 0 + Weight::from_ref_time(0) } fn withdraw_funding_state_bloat_bond_by_council() -> Weight { - 0 + Weight::from_ref_time(0) } fn withdraw_funding_state_bloat_bond_by_member() -> Weight { - 0 + Weight::from_ref_time(0) } fn withdraw_oracle_reward_by_oracle_council() -> Weight { - 0 + Weight::from_ref_time(0) } fn withdraw_oracle_reward_by_oracle_member() -> Weight { - 0 + Weight::from_ref_time(0) } fn entrant_remark(i: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn contributor_remark(i: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn oracle_remark(i: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn creator_remark(i: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } } diff --git a/runtime-modules/constitution/src/weights.rs b/runtime-modules/constitution/src/weights.rs index 4ee8681b0a..7fc4cc1f00 100644 --- a/runtime-modules/constitution/src/weights.rs +++ b/runtime-modules/constitution/src/weights.rs @@ -53,16 +53,16 @@ pub struct SubstrateWeight(PhantomData); impl WeightInfo for SubstrateWeight { // Storage: Constitution Constitution (r:0 w:1) fn amend_constitution(i: u32, ) -> Weight { - (31_909_000 as Weight) + Weight::from_ref_time(31_909_000) // Standard Error: 0 - .saturating_add((2_000 as Weight).saturating_mul(i as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + .saturating_add(Weight::from_ref_time(2_000).saturating_mul(i.into())) + .saturating_add(T::DbWeight::get().writes(1_u64)) } } // Default implementation for tests impl WeightInfo for () { fn amend_constitution(i: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } } diff --git a/runtime-modules/content/src/weights.rs b/runtime-modules/content/src/weights.rs index 14274298b4..216550f377 100644 --- a/runtime-modules/content/src/weights.rs +++ b/runtime-modules/content/src/weights.rs @@ -145,25 +145,25 @@ impl WeightInfo for SubstrateWeight { // Storage: Storage DataObjectsById (r:0 w:10) // Storage: Content ChannelById (r:0 w:1) fn create_channel(a: u32, b: u32, c: u32, d: u32, e: u32, ) -> Weight { - (463_947_000 as Weight) + Weight::from_ref_time(463_947_000) // Standard Error: 262_000 - .saturating_add((18_010_000 as Weight).saturating_mul(a as Weight)) + .saturating_add(Weight::from_ref_time(18_010_000).saturating_mul(a.into())) // Standard Error: 227_000 - .saturating_add((31_794_000 as Weight).saturating_mul(b as Weight)) + .saturating_add(Weight::from_ref_time(31_794_000).saturating_mul(b.into())) // Standard Error: 26_000 - .saturating_add((30_073_000 as Weight).saturating_mul(c as Weight)) + .saturating_add(Weight::from_ref_time(30_073_000).saturating_mul(c.into())) // Standard Error: 262_000 - .saturating_add((15_433_000 as Weight).saturating_mul(d as Weight)) + .saturating_add(Weight::from_ref_time(15_433_000).saturating_mul(d.into())) // Standard Error: 11_000 - .saturating_add((634_000 as Weight).saturating_mul(e as Weight)) - .saturating_add(T::DbWeight::get().reads(15 as Weight)) - .saturating_add(T::DbWeight::get().reads((1 as Weight).saturating_mul(a as Weight))) - .saturating_add(T::DbWeight::get().reads((1 as Weight).saturating_mul(b as Weight))) - .saturating_add(T::DbWeight::get().reads((1 as Weight).saturating_mul(c as Weight))) - .saturating_add(T::DbWeight::get().writes(7 as Weight)) - .saturating_add(T::DbWeight::get().writes((1 as Weight).saturating_mul(b as Weight))) - .saturating_add(T::DbWeight::get().writes((1 as Weight).saturating_mul(c as Weight))) - .saturating_add(T::DbWeight::get().writes((1 as Weight).saturating_mul(d as Weight))) + .saturating_add(Weight::from_ref_time(634_000).saturating_mul(e.into())) + .saturating_add(T::DbWeight::get().reads(15_u64)) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(a.into()))) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(b.into()))) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(c.into()))) + .saturating_add(T::DbWeight::get().writes(7_u64)) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(b.into()))) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(c.into()))) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(d.into()))) } // Storage: Content ChannelById (r:1 w:1) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) @@ -179,39 +179,39 @@ impl WeightInfo for SubstrateWeight { // Storage: System Account (r:12 w:12) // Storage: Storage NextDataObjectId (r:1 w:1) fn channel_update_with_assets(a: u32, b: u32, c: u32, d: u32, e: u32, ) -> Weight { - (604_768_000 as Weight) + Weight::from_ref_time(604_768_000) // Standard Error: 191_000 - .saturating_add((18_531_000 as Weight).saturating_mul(a as Weight)) + .saturating_add(Weight::from_ref_time(18_531_000).saturating_mul(a.into())) // Standard Error: 191_000 - .saturating_add((18_335_000 as Weight).saturating_mul(b as Weight)) + .saturating_add(Weight::from_ref_time(18_335_000).saturating_mul(b.into())) // Standard Error: 191_000 - .saturating_add((70_468_000 as Weight).saturating_mul(c as Weight)) + .saturating_add(Weight::from_ref_time(70_468_000).saturating_mul(c.into())) // Standard Error: 8_000 - .saturating_add((786_000 as Weight).saturating_mul(d as Weight)) + .saturating_add(Weight::from_ref_time(786_000).saturating_mul(d.into())) // Standard Error: 166_000 - .saturating_add((28_887_000 as Weight).saturating_mul(e as Weight)) - .saturating_add(T::DbWeight::get().reads(11 as Weight)) - .saturating_add(T::DbWeight::get().reads((1 as Weight).saturating_mul(a as Weight))) - .saturating_add(T::DbWeight::get().reads((2 as Weight).saturating_mul(c as Weight))) - .saturating_add(T::DbWeight::get().reads((1 as Weight).saturating_mul(e as Weight))) - .saturating_add(T::DbWeight::get().writes(5 as Weight)) - .saturating_add(T::DbWeight::get().writes((1 as Weight).saturating_mul(b as Weight))) - .saturating_add(T::DbWeight::get().writes((2 as Weight).saturating_mul(c as Weight))) - .saturating_add(T::DbWeight::get().writes((1 as Weight).saturating_mul(e as Weight))) + .saturating_add(Weight::from_ref_time(28_887_000).saturating_mul(e.into())) + .saturating_add(T::DbWeight::get().reads(11_u64)) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(a.into()))) + .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(c.into()))) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(e.into()))) + .saturating_add(T::DbWeight::get().writes(5_u64)) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(b.into()))) + .saturating_add(T::DbWeight::get().writes((2_u64).saturating_mul(c.into()))) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(e.into()))) } // Storage: Content ChannelById (r:1 w:1) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) // Storage: Content CuratorGroupById (r:1 w:0) // Storage: Membership MembershipById (r:1 w:0) fn channel_update_without_assets(a: u32, b: u32, ) -> Weight { - (370_489_000 as Weight) + Weight::from_ref_time(370_489_000) // Standard Error: 85_000 - .saturating_add((18_862_000 as Weight).saturating_mul(a as Weight)) + .saturating_add(Weight::from_ref_time(18_862_000).saturating_mul(a.into())) // Standard Error: 4_000 - .saturating_add((706_000 as Weight).saturating_mul(b as Weight)) - .saturating_add(T::DbWeight::get().reads(3 as Weight)) - .saturating_add(T::DbWeight::get().reads((1 as Weight).saturating_mul(a as Weight))) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + .saturating_add(Weight::from_ref_time(706_000).saturating_mul(b.into())) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(a.into()))) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Content ChannelById (r:1 w:1) // Storage: Storage Bags (r:1 w:1) @@ -222,39 +222,39 @@ impl WeightInfo for SubstrateWeight { // Storage: Storage DistributionBucketByFamilyIdById (r:51 w:51) // Storage: System Account (r:4 w:4) fn delete_channel(a: u32, b: u32, c: u32, ) -> Weight { - (504_219_000 as Weight) + Weight::from_ref_time(504_219_000) // Standard Error: 377_000 - .saturating_add((70_080_000 as Weight).saturating_mul(a as Weight)) + .saturating_add((70_080_000).saturating_mul(a.into())) // Standard Error: 329_000 - .saturating_add((26_378_000 as Weight).saturating_mul(b as Weight)) + .saturating_add((26_378_000).saturating_mul(b.into())) // Standard Error: 45_000 - .saturating_add((21_866_000 as Weight).saturating_mul(c as Weight)) - .saturating_add(T::DbWeight::get().reads(8 as Weight)) - .saturating_add(T::DbWeight::get().reads((2 as Weight).saturating_mul(a as Weight))) - .saturating_add(T::DbWeight::get().reads((1 as Weight).saturating_mul(b as Weight))) - .saturating_add(T::DbWeight::get().reads((1 as Weight).saturating_mul(c as Weight))) - .saturating_add(T::DbWeight::get().writes(5 as Weight)) - .saturating_add(T::DbWeight::get().writes((2 as Weight).saturating_mul(a as Weight))) - .saturating_add(T::DbWeight::get().writes((1 as Weight).saturating_mul(b as Weight))) - .saturating_add(T::DbWeight::get().writes((1 as Weight).saturating_mul(c as Weight))) + .saturating_add((21_866_000).saturating_mul(c.into())) + .saturating_add(T::DbWeight::get().reads(8_u64)) + .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(a.into()))) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(b.into()))) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(c.into()))) + .saturating_add(T::DbWeight::get().writes(5_u64)) + .saturating_add(T::DbWeight::get().writes((2_u64).saturating_mul(a.into()))) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(b.into()))) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(c.into()))) } // Storage: Instance3WorkingGroup CurrentLead (r:1 w:0) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) // Storage: Content ChannelById (r:1 w:1) fn update_channel_privilege_level() -> Weight { - (226_269_000 as Weight) - .saturating_add(T::DbWeight::get().reads(3 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + Weight::from_ref_time(226_269_000) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Content ChannelById (r:1 w:1) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) // Storage: Content CuratorGroupById (r:1 w:0) fn set_channel_paused_features_as_moderator(a: u32, ) -> Weight { - (417_835_000 as Weight) + Weight::from_ref_time(417_835_000) // Standard Error: 6_000 - .saturating_add((690_000 as Weight).saturating_mul(a as Weight)) - .saturating_add(T::DbWeight::get().reads(3 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + .saturating_add(Weight::from_ref_time(690_000).saturating_mul(a.into())) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Content ChannelById (r:1 w:1) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) @@ -266,19 +266,19 @@ impl WeightInfo for SubstrateWeight { // Storage: Storage StorageBucketById (r:13 w:13) // Storage: System Account (r:2 w:2) fn delete_channel_assets_as_moderator(a: u32, b: u32, c: u32, ) -> Weight { - (510_662_000 as Weight) + Weight::from_ref_time(510_662_000) // Standard Error: 157_000 - .saturating_add((68_791_000 as Weight).saturating_mul(a as Weight)) + .saturating_add(Weight::from_ref_time(68_791_000).saturating_mul(a.into())) // Standard Error: 137_000 - .saturating_add((27_409_000 as Weight).saturating_mul(b as Weight)) + .saturating_add(Weight::from_ref_time(27_409_000).saturating_mul(b.into())) // Standard Error: 7_000 - .saturating_add((698_000 as Weight).saturating_mul(c as Weight)) - .saturating_add(T::DbWeight::get().reads(7 as Weight)) - .saturating_add(T::DbWeight::get().reads((2 as Weight).saturating_mul(a as Weight))) - .saturating_add(T::DbWeight::get().reads((1 as Weight).saturating_mul(b as Weight))) - .saturating_add(T::DbWeight::get().writes(3 as Weight)) - .saturating_add(T::DbWeight::get().writes((2 as Weight).saturating_mul(a as Weight))) - .saturating_add(T::DbWeight::get().writes((1 as Weight).saturating_mul(b as Weight))) + .saturating_add(Weight::from_ref_time(698_000).saturating_mul(c.into())) + .saturating_add(T::DbWeight::get().reads(7_u64)) + .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(a.into()))) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(b.into()))) + .saturating_add(T::DbWeight::get().writes(3_u64)) + .saturating_add(T::DbWeight::get().writes((2_u64).saturating_mul(a.into()))) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(b.into()))) } // Storage: Content ChannelById (r:1 w:1) // Storage: Storage Bags (r:1 w:1) @@ -289,32 +289,32 @@ impl WeightInfo for SubstrateWeight { // Storage: Storage DistributionBucketByFamilyIdById (r:51 w:51) // Storage: System Account (r:3 w:3) fn delete_channel_as_moderator(a: u32, b: u32, c: u32, d: u32, ) -> Weight { - (430_842_000 as Weight) + Weight::from_ref_time(430_842_000) // Standard Error: 337_000 - .saturating_add((73_406_000 as Weight).saturating_mul(a as Weight)) + .saturating_add(Weight::from_ref_time(73_406_000).saturating_mul(a.into())) // Standard Error: 292_000 - .saturating_add((29_563_000 as Weight).saturating_mul(b as Weight)) + .saturating_add(Weight::from_ref_time(29_563_000).saturating_mul(b.into())) // Standard Error: 34_000 - .saturating_add((22_069_000 as Weight).saturating_mul(c as Weight)) + .saturating_add(Weight::from_ref_time(22_069_000).saturating_mul(c.into())) // Standard Error: 15_000 - .saturating_add((474_000 as Weight).saturating_mul(d as Weight)) - .saturating_add(T::DbWeight::get().reads(7 as Weight)) - .saturating_add(T::DbWeight::get().reads((2 as Weight).saturating_mul(a as Weight))) - .saturating_add(T::DbWeight::get().reads((1 as Weight).saturating_mul(b as Weight))) - .saturating_add(T::DbWeight::get().reads((1 as Weight).saturating_mul(c as Weight))) - .saturating_add(T::DbWeight::get().writes(4 as Weight)) - .saturating_add(T::DbWeight::get().writes((2 as Weight).saturating_mul(a as Weight))) - .saturating_add(T::DbWeight::get().writes((1 as Weight).saturating_mul(b as Weight))) - .saturating_add(T::DbWeight::get().writes((1 as Weight).saturating_mul(c as Weight))) + .saturating_add(Weight::from_ref_time(474_000).saturating_mul(d.into())) + .saturating_add(T::DbWeight::get().reads(7_u64)) + .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(a.into()))) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(b.into()))) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(c.into()))) + .saturating_add(T::DbWeight::get().writes(4_u64)) + .saturating_add(T::DbWeight::get().writes((2_u64).saturating_mul(a.into()))) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(b.into()))) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(c.into()))) } // Storage: Content ChannelById (r:1 w:0) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) // Storage: Content CuratorGroupById (r:1 w:0) fn set_channel_visibility_as_moderator(a: u32, ) -> Weight { - (342_786_000 as Weight) + Weight::from_ref_time(342_786_000) // Standard Error: 6_000 - .saturating_add((771_000 as Weight).saturating_mul(a as Weight)) - .saturating_add(T::DbWeight::get().reads(3 as Weight)) + .saturating_add(Weight::from_ref_time(771_000).saturating_mul(a.into())) + .saturating_add(T::DbWeight::get().reads(3_u64)) } // Storage: Content VideoById (r:1 w:1) // Storage: Content ChannelById (r:1 w:0) @@ -327,19 +327,19 @@ impl WeightInfo for SubstrateWeight { // Storage: Storage StorageBucketById (r:13 w:13) // Storage: System Account (r:2 w:2) fn delete_video_assets_as_moderator(a: u32, b: u32, c: u32, ) -> Weight { - (413_599_000 as Weight) + Weight::from_ref_time(413_599_000_u64) // Standard Error: 79_000 - .saturating_add((69_041_000 as Weight).saturating_mul(a as Weight)) + .saturating_add(Weight::from_ref_time(69_041_000).saturating_mul(a.into())) // Standard Error: 187_000 - .saturating_add((29_597_000 as Weight).saturating_mul(b as Weight)) + .saturating_add(Weight::from_ref_time(29_597_000).saturating_mul(b.into())) // Standard Error: 10_000 - .saturating_add((738_000 as Weight).saturating_mul(c as Weight)) - .saturating_add(T::DbWeight::get().reads(8 as Weight)) - .saturating_add(T::DbWeight::get().reads((2 as Weight).saturating_mul(a as Weight))) - .saturating_add(T::DbWeight::get().reads((1 as Weight).saturating_mul(b as Weight))) - .saturating_add(T::DbWeight::get().writes(3 as Weight)) - .saturating_add(T::DbWeight::get().writes((2 as Weight).saturating_mul(a as Weight))) - .saturating_add(T::DbWeight::get().writes((1 as Weight).saturating_mul(b as Weight))) + .saturating_add(Weight::from_ref_time(738_000).saturating_mul(c.into())) + .saturating_add(T::DbWeight::get().reads(8_u64)) + .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(a.into()))) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(b.into()))) + .saturating_add(T::DbWeight::get().writes(3_u64)) + .saturating_add(T::DbWeight::get().writes((2_u64).saturating_mul(a.into()))) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(b.into()))) } // Storage: Content VideoById (r:1 w:1) // Storage: Content ChannelById (r:1 w:1) @@ -352,19 +352,19 @@ impl WeightInfo for SubstrateWeight { // Storage: Storage StorageBucketById (r:13 w:13) // Storage: System Account (r:3 w:3) fn delete_video_as_moderator_with_assets(a: u32, b: u32, c: u32, ) -> Weight { - (505_700_000 as Weight) + Weight::from_ref_time(505_700_000) // Standard Error: 77_000 - .saturating_add((67_678_000 as Weight).saturating_mul(a as Weight)) + .saturating_add(Weight::from_ref_time(67_678_000).saturating_mul(a.into())) // Standard Error: 182_000 - .saturating_add((27_205_000 as Weight).saturating_mul(b as Weight)) + .saturating_add(Weight::from_ref_time(27_205_000).saturating_mul(b.into())) // Standard Error: 10_000 - .saturating_add((703_000 as Weight).saturating_mul(c as Weight)) - .saturating_add(T::DbWeight::get().reads(9 as Weight)) - .saturating_add(T::DbWeight::get().reads((2 as Weight).saturating_mul(a as Weight))) - .saturating_add(T::DbWeight::get().reads((1 as Weight).saturating_mul(b as Weight))) - .saturating_add(T::DbWeight::get().writes(5 as Weight)) - .saturating_add(T::DbWeight::get().writes((2 as Weight).saturating_mul(a as Weight))) - .saturating_add(T::DbWeight::get().writes((1 as Weight).saturating_mul(b as Weight))) + .saturating_add(Weight::from_ref_time(703_000).saturating_mul(c.into())) + .saturating_add(T::DbWeight::get().reads(9_u64)) + .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(a.into()))) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(b.into()))) + .saturating_add(T::DbWeight::get().writes(5_u64)) + .saturating_add(T::DbWeight::get().writes((2_u64).saturating_mul(a.into()))) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(b.into()))) } // Storage: Content VideoById (r:1 w:1) // Storage: Content ChannelById (r:1 w:1) @@ -372,66 +372,66 @@ impl WeightInfo for SubstrateWeight { // Storage: Content CuratorGroupById (r:1 w:0) // Storage: System Account (r:1 w:1) fn delete_video_as_moderator_without_assets(a: u32, ) -> Weight { - (407_427_000 as Weight) + Weight::from_ref_time(407_427_000) // Standard Error: 4_000 - .saturating_add((658_000 as Weight).saturating_mul(a as Weight)) - .saturating_add(T::DbWeight::get().reads(5 as Weight)) - .saturating_add(T::DbWeight::get().writes(3 as Weight)) + .saturating_add(Weight::from_ref_time(658_000).saturating_mul(a.into())) + .saturating_add(T::DbWeight::get().reads(5_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) } // Storage: Content VideoById (r:1 w:0) // Storage: Content ChannelById (r:1 w:0) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) // Storage: Content CuratorGroupById (r:1 w:0) fn set_video_visibility_as_moderator(a: u32, ) -> Weight { - (319_990_000 as Weight) + Weight::from_ref_time(319_990_000) // Standard Error: 4_000 - .saturating_add((743_000 as Weight).saturating_mul(a as Weight)) - .saturating_add(T::DbWeight::get().reads(4 as Weight)) + .saturating_add(Weight::from_ref_time(743_000).saturating_mul(a.into())) + .saturating_add(T::DbWeight::get().reads(4_u64)) } // Storage: Instance3WorkingGroup CurrentLead (r:1 w:0) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) // Storage: Content NextCuratorGroupId (r:1 w:1) // Storage: Content CuratorGroupById (r:0 w:1) fn create_curator_group(a: u32, ) -> Weight { - (63_682_000 as Weight) + Weight::from_ref_time(63_682_000) // Standard Error: 12_000 - .saturating_add((4_949_000 as Weight).saturating_mul(a as Weight)) - .saturating_add(T::DbWeight::get().reads(3 as Weight)) - .saturating_add(T::DbWeight::get().writes(2 as Weight)) + .saturating_add(Weight::from_ref_time(4_949_000).saturating_mul(a.into())) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) } // Storage: Instance3WorkingGroup CurrentLead (r:1 w:0) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) // Storage: Content CuratorGroupById (r:1 w:1) fn update_curator_group_permissions(a: u32, ) -> Weight { - (167_913_000 as Weight) + Weight::from_ref_time(167_913_000) // Standard Error: 19_000 - .saturating_add((5_370_000 as Weight).saturating_mul(a as Weight)) - .saturating_add(T::DbWeight::get().reads(3 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + .saturating_add(Weight::from_ref_time(5_370_000).saturating_mul(a.into())) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Instance3WorkingGroup CurrentLead (r:1 w:0) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) // Storage: Content CuratorGroupById (r:1 w:1) fn set_curator_group_status() -> Weight { - (172_570_000 as Weight) - .saturating_add(T::DbWeight::get().reads(3 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + Weight::from_ref_time(172_570_000) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Instance3WorkingGroup CurrentLead (r:1 w:0) // Storage: Instance3WorkingGroup WorkerById (r:2 w:0) // Storage: Content CuratorGroupById (r:1 w:1) fn add_curator_to_group() -> Weight { - (278_010_000 as Weight) - .saturating_add(T::DbWeight::get().reads(4 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + Weight::from_ref_time(278_010_000) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Instance3WorkingGroup CurrentLead (r:1 w:0) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) // Storage: Content CuratorGroupById (r:1 w:1) fn remove_curator_from_group() -> Weight { - (268_000_000 as Weight) - .saturating_add(T::DbWeight::get().reads(3 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + Weight::from_ref_time(268_000_000) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Content ChannelById (r:1 w:1) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) @@ -449,18 +449,18 @@ impl WeightInfo for SubstrateWeight { // Storage: Storage DataObjectsById (r:0 w:1) // Storage: Content VideoById (r:0 w:1) fn create_video_without_nft(a: u32, b: u32, c: u32, ) -> Weight { - (689_869_000 as Weight) + Weight::from_ref_time(689_869_000) // Standard Error: 49_000 - .saturating_add((17_798_000 as Weight).saturating_mul(a as Weight)) + .saturating_add(Weight::from_ref_time(17_798_000).saturating_mul(a.into())) // Standard Error: 115_000 - .saturating_add((27_864_000 as Weight).saturating_mul(b as Weight)) + .saturating_add(Weight::from_ref_time(27_864_000).saturating_mul(b.into())) // Standard Error: 6_000 - .saturating_add((732_000 as Weight).saturating_mul(c as Weight)) - .saturating_add(T::DbWeight::get().reads(14 as Weight)) - .saturating_add(T::DbWeight::get().reads((1 as Weight).saturating_mul(b as Weight))) - .saturating_add(T::DbWeight::get().writes(8 as Weight)) - .saturating_add(T::DbWeight::get().writes((1 as Weight).saturating_mul(a as Weight))) - .saturating_add(T::DbWeight::get().writes((1 as Weight).saturating_mul(b as Weight))) + .saturating_add(Weight::from_ref_time(732_000).saturating_mul(c.into())) + .saturating_add(T::DbWeight::get().reads(14_u64)) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(b.into()))) + .saturating_add(T::DbWeight::get().writes(8_u64)) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(a.into()))) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(b.into()))) } // Storage: Content ChannelById (r:1 w:1) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) @@ -495,31 +495,31 @@ impl WeightInfo for SubstrateWeight { // Storage: Storage DataObjectsById (r:0 w:1) // Storage: Content VideoById (r:0 w:1) fn create_video_with_nft(a: u32, b: u32, c: u32, d: u32, ) -> Weight { - (872_659_000 as Weight) + Weight::from_ref_time(872_659_000) // Standard Error: 94_000 - .saturating_add((17_826_000 as Weight).saturating_mul(a as Weight)) + .saturating_add(Weight::from_ref_time(17_826_000).saturating_mul(a.into())) // Standard Error: 222_000 - .saturating_add((27_054_000 as Weight).saturating_mul(b as Weight)) + .saturating_add(Weight::from_ref_time(27_054_000).saturating_mul(b.into())) // Standard Error: 101_000 - .saturating_add((11_019_000 as Weight).saturating_mul(c as Weight)) + .saturating_add(Weight::from_ref_time(11_019_000).saturating_mul(c.into())) // Standard Error: 11_000 - .saturating_add((725_000 as Weight).saturating_mul(d as Weight)) - .saturating_add(T::DbWeight::get().reads(31 as Weight)) - .saturating_add(T::DbWeight::get().reads((1 as Weight).saturating_mul(b as Weight))) - .saturating_add(T::DbWeight::get().reads((1 as Weight).saturating_mul(c as Weight))) - .saturating_add(T::DbWeight::get().writes(10 as Weight)) - .saturating_add(T::DbWeight::get().writes((1 as Weight).saturating_mul(a as Weight))) - .saturating_add(T::DbWeight::get().writes((1 as Weight).saturating_mul(b as Weight))) + .saturating_add(Weight::from_ref_time(725_000).saturating_mul(d.into())) + .saturating_add(T::DbWeight::get().reads(31_u64)) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(b.into()))) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(c.into()))) + .saturating_add(T::DbWeight::get().writes(10_u64)) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(a.into()))) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(b.into()))) } // Storage: Content VideoById (r:1 w:0) // Storage: Content ChannelById (r:1 w:0) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) // Storage: Content CuratorGroupById (r:1 w:0) fn update_video_without_assets_without_nft(a: u32, ) -> Weight { - (326_441_000 as Weight) + Weight::from_ref_time(326_441_000) // Standard Error: 5_000 - .saturating_add((724_000 as Weight).saturating_mul(a as Weight)) - .saturating_add(T::DbWeight::get().reads(4 as Weight)) + .saturating_add(Weight::from_ref_time(724_000).saturating_mul(a.into())) + .saturating_add(T::DbWeight::get().reads(4_u64)) } // Storage: Content VideoById (r:1 w:1) // Storage: Content ChannelById (r:1 w:0) @@ -535,22 +535,22 @@ impl WeightInfo for SubstrateWeight { // Storage: System Account (r:22 w:22) // Storage: Storage NextDataObjectId (r:1 w:1) fn update_video_with_assets_without_nft(a: u32, b: u32, c: u32, d: u32, ) -> Weight { - (578_286_000 as Weight) + Weight::from_ref_time(578_286_000) // Standard Error: 90_000 - .saturating_add((17_922_000 as Weight).saturating_mul(a as Weight)) + .saturating_add(Weight::from_ref_time(17_922_000).saturating_mul(a.into())) // Standard Error: 90_000 - .saturating_add((68_366_000 as Weight).saturating_mul(b as Weight)) + .saturating_add(Weight::from_ref_time(68_366_000).saturating_mul(b.into())) // Standard Error: 214_000 - .saturating_add((26_273_000 as Weight).saturating_mul(c as Weight)) + .saturating_add(Weight::from_ref_time(26_273_000).saturating_mul(c.into())) // Standard Error: 11_000 - .saturating_add((801_000 as Weight).saturating_mul(d as Weight)) - .saturating_add(T::DbWeight::get().reads(12 as Weight)) - .saturating_add(T::DbWeight::get().reads((2 as Weight).saturating_mul(b as Weight))) - .saturating_add(T::DbWeight::get().reads((1 as Weight).saturating_mul(c as Weight))) - .saturating_add(T::DbWeight::get().writes(5 as Weight)) - .saturating_add(T::DbWeight::get().writes((1 as Weight).saturating_mul(a as Weight))) - .saturating_add(T::DbWeight::get().writes((2 as Weight).saturating_mul(b as Weight))) - .saturating_add(T::DbWeight::get().writes((1 as Weight).saturating_mul(c as Weight))) + .saturating_add(Weight::from_ref_time(801_000).saturating_mul(d.into())) + .saturating_add(T::DbWeight::get().reads(12_u64)) + .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(b.into()))) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(c.into()))) + .saturating_add(T::DbWeight::get().writes(5_u64)) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(a.into()))) + .saturating_add(T::DbWeight::get().writes((2_u64).saturating_mul(b.into()))) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(c.into()))) } // Storage: Content VideoById (r:1 w:1) // Storage: Content ChannelById (r:1 w:1) @@ -574,14 +574,14 @@ impl WeightInfo for SubstrateWeight { // Storage: Content GlobalWeeklyNftLimit (r:1 w:0) // Storage: Content GlobalWeeklyNftCounter (r:1 w:1) fn update_video_without_assets_with_nft(a: u32, b: u32, ) -> Weight { - (554_456_000 as Weight) + Weight::from_ref_time(554_456_000) // Standard Error: 59_000 - .saturating_add((10_494_000 as Weight).saturating_mul(a as Weight)) + .saturating_add(Weight::from_ref_time(10_494_000).saturating_mul(a.into())) // Standard Error: 7_000 - .saturating_add((697_000 as Weight).saturating_mul(b as Weight)) - .saturating_add(T::DbWeight::get().reads(21 as Weight)) - .saturating_add(T::DbWeight::get().reads((1 as Weight).saturating_mul(a as Weight))) - .saturating_add(T::DbWeight::get().writes(4 as Weight)) + .saturating_add(Weight::from_ref_time(697_000).saturating_mul(b.into())) + .saturating_add(T::DbWeight::get().reads(21_u64)) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(a.into()))) + .saturating_add(T::DbWeight::get().writes(4_u64)) } // Storage: Content VideoById (r:1 w:1) // Storage: Content ChannelById (r:1 w:1) @@ -614,25 +614,25 @@ impl WeightInfo for SubstrateWeight { // Storage: System Account (r:22 w:22) // Storage: Storage NextDataObjectId (r:1 w:1) fn update_video_with_assets_with_nft(a: u32, b: u32, c: u32, d: u32, e: u32, ) -> Weight { - (811_555_000 as Weight) + Weight::from_ref_time(811_555_000) // Standard Error: 93_000 - .saturating_add((18_513_000 as Weight).saturating_mul(a as Weight)) + .saturating_add(Weight::from_ref_time(18_513_000).saturating_mul(a.into())) // Standard Error: 93_000 - .saturating_add((68_356_000 as Weight).saturating_mul(b as Weight)) + .saturating_add(Weight::from_ref_time(68_356_000).saturating_mul(b.into())) // Standard Error: 223_000 - .saturating_add((24_790_000 as Weight).saturating_mul(c as Weight)) + .saturating_add(Weight::from_ref_time(24_790_000).saturating_mul(c.into())) // Standard Error: 100_000 - .saturating_add((10_167_000 as Weight).saturating_mul(d as Weight)) + .saturating_add(Weight::from_ref_time(10_167_000).saturating_mul(d.into())) // Standard Error: 11_000 - .saturating_add((870_000 as Weight).saturating_mul(e as Weight)) - .saturating_add(T::DbWeight::get().reads(29 as Weight)) - .saturating_add(T::DbWeight::get().reads((2 as Weight).saturating_mul(b as Weight))) - .saturating_add(T::DbWeight::get().reads((1 as Weight).saturating_mul(c as Weight))) - .saturating_add(T::DbWeight::get().reads((1 as Weight).saturating_mul(d as Weight))) - .saturating_add(T::DbWeight::get().writes(8 as Weight)) - .saturating_add(T::DbWeight::get().writes((1 as Weight).saturating_mul(a as Weight))) - .saturating_add(T::DbWeight::get().writes((2 as Weight).saturating_mul(b as Weight))) - .saturating_add(T::DbWeight::get().writes((1 as Weight).saturating_mul(c as Weight))) + .saturating_add(Weight::from_ref_time(870_000).saturating_mul(e.into())) + .saturating_add(T::DbWeight::get().reads(29_u64)) + .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(b.into()))) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(c.into()))) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(d.into()))) + .saturating_add(T::DbWeight::get().writes(8_u64)) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(a.into()))) + .saturating_add(T::DbWeight::get().writes((2_u64).saturating_mul(b.into()))) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(c.into()))) } // Storage: Content VideoById (r:1 w:1) // Storage: Content ChannelById (r:1 w:1) @@ -640,9 +640,9 @@ impl WeightInfo for SubstrateWeight { // Storage: Content CuratorGroupById (r:1 w:0) // Storage: System Account (r:2 w:2) fn delete_video_without_assets() -> Weight { - (429_170_000 as Weight) - .saturating_add(T::DbWeight::get().reads(6 as Weight)) - .saturating_add(T::DbWeight::get().writes(4 as Weight)) + Weight::from_ref_time(429_170_000) + .saturating_add(T::DbWeight::get().reads(6_u64)) + .saturating_add(T::DbWeight::get().writes(4_u64)) } // Storage: Content VideoById (r:1 w:1) // Storage: Content ChannelById (r:1 w:1) @@ -655,17 +655,17 @@ impl WeightInfo for SubstrateWeight { // Storage: Storage StorageBucketById (r:13 w:13) // Storage: System Account (r:4 w:4) fn delete_video_with_assets(a: u32, b: u32, ) -> Weight { - (519_265_000 as Weight) + Weight::from_ref_time(519_265_000) // Standard Error: 78_000 - .saturating_add((68_055_000 as Weight).saturating_mul(a as Weight)) + .saturating_add(Weight::from_ref_time(68_055_000).saturating_mul(a.into())) // Standard Error: 166_000 - .saturating_add((27_069_000 as Weight).saturating_mul(b as Weight)) - .saturating_add(T::DbWeight::get().reads(10 as Weight)) - .saturating_add(T::DbWeight::get().reads((2 as Weight).saturating_mul(a as Weight))) - .saturating_add(T::DbWeight::get().reads((1 as Weight).saturating_mul(b as Weight))) - .saturating_add(T::DbWeight::get().writes(6 as Weight)) - .saturating_add(T::DbWeight::get().writes((2 as Weight).saturating_mul(a as Weight))) - .saturating_add(T::DbWeight::get().writes((1 as Weight).saturating_mul(b as Weight))) + .saturating_add(Weight::from_ref_time(27_069_000).saturating_mul(b.into())) + .saturating_add(T::DbWeight::get().reads(10_u64)) + .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(a.into()))) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(b.into()))) + .saturating_add(T::DbWeight::get().writes(6_u64)) + .saturating_add(T::DbWeight::get().writes((2_u64).saturating_mul(a.into()))) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(b.into()))) } // Storage: Content ChannelById (r:1 w:1) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) @@ -673,31 +673,31 @@ impl WeightInfo for SubstrateWeight { // Storage: Membership MembershipById (r:1 w:0) // Storage: Content NextTransferId (r:1 w:1) fn initialize_channel_transfer(a: u32, ) -> Weight { - (380_990_000 as Weight) + Weight::from_ref_time(380_990_000) // Standard Error: 163_000 - .saturating_add((19_090_000 as Weight).saturating_mul(a as Weight)) - .saturating_add(T::DbWeight::get().reads(5 as Weight)) - .saturating_add(T::DbWeight::get().reads((1 as Weight).saturating_mul(a as Weight))) - .saturating_add(T::DbWeight::get().writes(2 as Weight)) + .saturating_add(Weight::from_ref_time(19_090_000).saturating_mul(a.into())) + .saturating_add(T::DbWeight::get().reads(5_u64)) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(a.into()))) + .saturating_add(T::DbWeight::get().writes(2_u64)) } // Storage: Content ChannelById (r:1 w:1) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) // Storage: Content CuratorGroupById (r:1 w:0) fn cancel_channel_transfer() -> Weight { - (407_910_000 as Weight) - .saturating_add(T::DbWeight::get().reads(3 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + Weight::from_ref_time(407_910_000) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Content ChannelById (r:1 w:1) // Storage: Instance3WorkingGroup CurrentLead (r:1 w:0) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) // Storage: Instance3WorkingGroup Budget (r:1 w:0) fn accept_channel_transfer_curator_to_curator(a: u32, ) -> Weight { - (166_319_000 as Weight) + Weight::from_ref_time(166_319_000) // Standard Error: 122_000 - .saturating_add((12_662_000 as Weight).saturating_mul(a as Weight)) - .saturating_add(T::DbWeight::get().reads(4 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + .saturating_add(Weight::from_ref_time(12_662_000).saturating_mul(a.into())) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Content ChannelById (r:1 w:1) // Storage: Instance3WorkingGroup CurrentLead (r:1 w:0) @@ -706,21 +706,21 @@ impl WeightInfo for SubstrateWeight { // Storage: Membership MembershipById (r:1 w:0) // Storage: System Account (r:1 w:1) fn accept_channel_transfer_member_to_curator(a: u32, ) -> Weight { - (219_045_000 as Weight) + Weight::from_ref_time(219_045_000) // Standard Error: 83_000 - .saturating_add((13_216_000 as Weight).saturating_mul(a as Weight)) - .saturating_add(T::DbWeight::get().reads(6 as Weight)) - .saturating_add(T::DbWeight::get().writes(3 as Weight)) + .saturating_add(Weight::from_ref_time(13_216_000).saturating_mul(a.into())) + .saturating_add(T::DbWeight::get().reads(6_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) } // Storage: Content ChannelById (r:1 w:1) // Storage: Membership MembershipById (r:2 w:0) // Storage: System Account (r:2 w:2) fn accept_channel_transfer_member_to_member(a: u32, ) -> Weight { - (229_376_000 as Weight) + Weight::from_ref_time(229_376_000) // Standard Error: 135_000 - .saturating_add((14_048_000 as Weight).saturating_mul(a as Weight)) - .saturating_add(T::DbWeight::get().reads(5 as Weight)) - .saturating_add(T::DbWeight::get().writes(3 as Weight)) + .saturating_add(Weight::from_ref_time(14_048_000).saturating_mul(a.into())) + .saturating_add(T::DbWeight::get().reads(5_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) } // Storage: Content ChannelById (r:1 w:1) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) @@ -733,13 +733,13 @@ impl WeightInfo for SubstrateWeight { // Storage: Token AccountInfoByTokenAndMember (r:0 w:1) // Storage: Token TokenInfoById (r:0 w:1) fn issue_creator_token(a: u32, ) -> Weight { - (181_375_000 as Weight) + Weight::from_ref_time(181_375_000) // Standard Error: 27_000 - .saturating_add((27_453_000 as Weight).saturating_mul(a as Weight)) - .saturating_add(T::DbWeight::get().reads(8 as Weight)) - .saturating_add(T::DbWeight::get().reads((1 as Weight).saturating_mul(a as Weight))) - .saturating_add(T::DbWeight::get().writes(6 as Weight)) - .saturating_add(T::DbWeight::get().writes((1 as Weight).saturating_mul(a as Weight))) + .saturating_add(Weight::from_ref_time(27_453_000).saturating_mul(a.into())) + .saturating_add(T::DbWeight::get().reads(8_u64)) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(a.into()))) + .saturating_add(T::DbWeight::get().writes(6_u64)) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(a.into()))) } // Storage: Content ChannelById (r:1 w:0) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) @@ -750,22 +750,22 @@ impl WeightInfo for SubstrateWeight { // Storage: Token BloatBond (r:1 w:0) // Storage: System Account (r:2 w:2) fn creator_token_issuer_transfer(a: u32, _b: u32, ) -> Weight { - (104_522_000 as Weight) + Weight::from_ref_time(104_522_000) // Standard Error: 25_000 - .saturating_add((38_487_000 as Weight).saturating_mul(a as Weight)) - .saturating_add(T::DbWeight::get().reads(8 as Weight)) - .saturating_add(T::DbWeight::get().reads((2 as Weight).saturating_mul(a as Weight))) - .saturating_add(T::DbWeight::get().writes(4 as Weight)) - .saturating_add(T::DbWeight::get().writes((1 as Weight).saturating_mul(a as Weight))) + .saturating_add(Weight::from_ref_time(38_487_000).saturating_mul(a.into())) + .saturating_add(T::DbWeight::get().reads(8_u64)) + .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(a.into()))) + .saturating_add(T::DbWeight::get().writes(4_u64)) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(a.into()))) } // Storage: Content ChannelById (r:1 w:0) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) // Storage: Content CuratorGroupById (r:1 w:0) // Storage: Token TokenInfoById (r:1 w:1) fn make_creator_token_permissionless() -> Weight { - (335_571_000 as Weight) - .saturating_add(T::DbWeight::get().reads(4 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + Weight::from_ref_time(335_571_000) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Content ChannelById (r:1 w:1) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) @@ -773,9 +773,9 @@ impl WeightInfo for SubstrateWeight { // Storage: Token TokenInfoById (r:1 w:1) // Storage: Token SymbolsUsed (r:0 w:1) fn deissue_creator_token() -> Weight { - (390_060_000 as Weight) - .saturating_add(T::DbWeight::get().reads(4 as Weight)) - .saturating_add(T::DbWeight::get().writes(3 as Weight)) + Weight::from_ref_time(390_060_000) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) } // Storage: Content ChannelById (r:1 w:0) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) @@ -784,11 +784,11 @@ impl WeightInfo for SubstrateWeight { // Storage: Token MinSaleDuration (r:1 w:0) // Storage: Token AccountInfoByTokenAndMember (r:1 w:1) fn init_creator_token_sale(a: u32, ) -> Weight { - (387_903_000 as Weight) + Weight::from_ref_time(387_903_000) // Standard Error: 3_000 - .saturating_add((807_000 as Weight).saturating_mul(a as Weight)) - .saturating_add(T::DbWeight::get().reads(6 as Weight)) - .saturating_add(T::DbWeight::get().writes(2 as Weight)) + .saturating_add(Weight::from_ref_time(807_000).saturating_mul(a.into())) + .saturating_add(T::DbWeight::get().reads(6_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) } // Storage: Content ChannelById (r:1 w:0) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) @@ -796,9 +796,9 @@ impl WeightInfo for SubstrateWeight { // Storage: Token TokenInfoById (r:1 w:1) // Storage: Token MinSaleDuration (r:1 w:0) fn update_upcoming_creator_token_sale() -> Weight { - (362_009_000 as Weight) - .saturating_add(T::DbWeight::get().reads(5 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + Weight::from_ref_time(362_009_000) + .saturating_add(T::DbWeight::get().reads(5_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Content ChannelById (r:1 w:0) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) @@ -807,9 +807,9 @@ impl WeightInfo for SubstrateWeight { // Storage: Token AccountInfoByTokenAndMember (r:1 w:1) // Storage: Council Budget (r:1 w:1) fn finalize_creator_token_sale() -> Weight { - (382_379_000 as Weight) - .saturating_add(T::DbWeight::get().reads(6 as Weight)) - .saturating_add(T::DbWeight::get().writes(3 as Weight)) + Weight::from_ref_time(382_379_000) + .saturating_add(T::DbWeight::get().reads(6_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) } // Storage: Content ChannelById (r:1 w:0) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) @@ -820,9 +820,9 @@ impl WeightInfo for SubstrateWeight { // Storage: Token MinRevenueSplitTimeToStart (r:1 w:0) // Storage: Council Budget (r:1 w:1) fn issue_revenue_split() -> Weight { - (471_740_000 as Weight) - .saturating_add(T::DbWeight::get().reads(9 as Weight)) - .saturating_add(T::DbWeight::get().writes(4 as Weight)) + Weight::from_ref_time(471_740_000) + .saturating_add(T::DbWeight::get().reads(9_u64)) + .saturating_add(T::DbWeight::get().writes(4_u64)) } // Storage: Content ChannelById (r:1 w:0) // Storage: Membership MembershipById (r:2 w:0) @@ -831,9 +831,9 @@ impl WeightInfo for SubstrateWeight { // Storage: Token MinRevenueSplitDuration (r:1 w:0) // Storage: Token MinRevenueSplitTimeToStart (r:1 w:0) fn issue_revenue_split_as_collaborator() -> Weight { - (286_690_000 as Weight) - .saturating_add(T::DbWeight::get().reads(9 as Weight)) - .saturating_add(T::DbWeight::get().writes(4 as Weight)) + Weight::from_ref_time(286_690_000) + .saturating_add(T::DbWeight::get().reads(9_u64)) + .saturating_add(T::DbWeight::get().writes(4_u64)) } // Storage: Content ChannelById (r:1 w:0) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) @@ -841,27 +841,27 @@ impl WeightInfo for SubstrateWeight { // Storage: Token TokenInfoById (r:1 w:1) // Storage: System Account (r:2 w:2) fn finalize_revenue_split() -> Weight { - (401_180_000 as Weight) - .saturating_add(T::DbWeight::get().reads(6 as Weight)) - .saturating_add(T::DbWeight::get().writes(3 as Weight)) + Weight::from_ref_time(401_180_000) + .saturating_add(T::DbWeight::get().reads(6_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) } // Storage: Content ChannelById (r:1 w:0) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) // Storage: Content CuratorGroupById (r:1 w:0) // Storage: Token TokenInfoById (r:1 w:1) fn reduce_creator_token_patronage_rate_to() -> Weight { - (370_090_000 as Weight) - .saturating_add(T::DbWeight::get().reads(4 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + Weight::from_ref_time(370_090_000) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Content ChannelById (r:1 w:0) // Storage: Membership MembershipById (r:1 w:0) // Storage: Token TokenInfoById (r:1 w:1) // Storage: Token AccountInfoByTokenAndMember (r:1 w:1) fn claim_creator_token_patronage_credit() -> Weight { - (190_920_000 as Weight) - .saturating_add(T::DbWeight::get().reads(4 as Weight)) - .saturating_add(T::DbWeight::get().writes(2 as Weight)) + Weight::from_ref_time(190_920_000) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) } // Storage: Storage NextDataObjectId (r:1 w:1) // Storage: Storage DataObjectPerMegabyteFee (r:1 w:0) @@ -876,9 +876,9 @@ impl WeightInfo for SubstrateWeight { // Storage: Content MinCashoutAllowed (r:0 w:1) // Storage: Content Commitment (r:0 w:1) fn update_channel_payouts() -> Weight { - (138_756_000 as Weight) - .saturating_add(T::DbWeight::get().reads(8 as Weight)) - .saturating_add(T::DbWeight::get().writes(9 as Weight)) + Weight::from_ref_time(138_756_000) + .saturating_add(T::DbWeight::get().reads(8_u64)) + .saturating_add(T::DbWeight::get().writes(9_u64)) } // Storage: Content ChannelById (r:1 w:0) // Storage: Instance3WorkingGroup CurrentLead (r:1 w:0) @@ -886,17 +886,17 @@ impl WeightInfo for SubstrateWeight { // Storage: System Account (r:1 w:1) // Storage: Council Budget (r:1 w:1) fn withdraw_from_curator_channel_balance() -> Weight { - (188_400_000 as Weight) - .saturating_add(T::DbWeight::get().reads(5 as Weight)) - .saturating_add(T::DbWeight::get().writes(2 as Weight)) + Weight::from_ref_time(188_400_000) + .saturating_add(T::DbWeight::get().reads(5_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) } // Storage: Content ChannelById (r:1 w:0) // Storage: Membership MembershipById (r:1 w:0) // Storage: System Account (r:2 w:2) fn withdraw_from_member_channel_balance() -> Weight { - (178_320_000 as Weight) - .saturating_add(T::DbWeight::get().reads(4 as Weight)) - .saturating_add(T::DbWeight::get().writes(2 as Weight)) + Weight::from_ref_time(178_320_000) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) } // Storage: Content ChannelById (r:1 w:1) // Storage: Instance3WorkingGroup CurrentLead (r:1 w:0) @@ -908,11 +908,11 @@ impl WeightInfo for SubstrateWeight { // Storage: Content Commitment (r:1 w:0) // Storage: System Account (r:1 w:1) fn claim_channel_reward(h: u32, ) -> Weight { - (156_101_000 as Weight) + Weight::from_ref_time(156_101_000) // Standard Error: 56_000 - .saturating_add((951_000 as Weight).saturating_mul(h as Weight)) - .saturating_add(T::DbWeight::get().reads(9 as Weight)) - .saturating_add(T::DbWeight::get().writes(3 as Weight)) + .saturating_add(Weight::from_ref_time(951_000).saturating_mul(h.into())) + .saturating_add(T::DbWeight::get().reads(9_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) } // Storage: Content ChannelById (r:1 w:1) // Storage: Membership MembershipById (r:1 w:0) @@ -923,11 +923,11 @@ impl WeightInfo for SubstrateWeight { // Storage: Content Commitment (r:1 w:0) // Storage: System Account (r:2 w:2) fn claim_and_withdraw_member_channel_reward(h: u32, ) -> Weight { - (300_227_000 as Weight) + Weight::from_ref_time(300_227_000) // Standard Error: 100_000 - .saturating_add((1_850_000 as Weight).saturating_mul(h as Weight)) - .saturating_add(T::DbWeight::get().reads(9 as Weight)) - .saturating_add(T::DbWeight::get().writes(4 as Weight)) + .saturating_add(Weight::from_ref_time(1_850_000).saturating_mul(h.into())) + .saturating_add(T::DbWeight::get().reads(9_u64)) + .saturating_add(T::DbWeight::get().writes(4_u64)) } // Storage: Content ChannelById (r:1 w:1) // Storage: Instance3WorkingGroup CurrentLead (r:1 w:0) @@ -939,11 +939,11 @@ impl WeightInfo for SubstrateWeight { // Storage: Content Commitment (r:1 w:0) // Storage: System Account (r:1 w:1) fn claim_and_withdraw_curator_channel_reward(h: u32, ) -> Weight { - (298_738_000 as Weight) + Weight::from_ref_time(298_738_000) // Standard Error: 75_000 - .saturating_add((1_759_000 as Weight).saturating_mul(h as Weight)) - .saturating_add(T::DbWeight::get().reads(9 as Weight)) - .saturating_add(T::DbWeight::get().writes(3 as Weight)) + .saturating_add(Weight::from_ref_time(1_759_000).saturating_mul(h.into())) + .saturating_add(T::DbWeight::get().reads(9_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) } // Storage: Content VideoById (r:1 w:1) // Storage: Content ChannelById (r:1 w:1) @@ -967,31 +967,31 @@ impl WeightInfo for SubstrateWeight { // Storage: Content GlobalWeeklyNftLimit (r:1 w:0) // Storage: Content GlobalWeeklyNftCounter (r:1 w:1) fn issue_nft(w: u32, b: u32, ) -> Weight { - (585_229_000 as Weight) + Weight::from_ref_time(585_229_000) // Standard Error: 71_000 - .saturating_add((9_833_000 as Weight).saturating_mul(w as Weight)) + .saturating_add(Weight::from_ref_time(9_833_000).saturating_mul(w.into())) // Standard Error: 8_000 - .saturating_add((491_000 as Weight).saturating_mul(b as Weight)) - .saturating_add(T::DbWeight::get().reads(20 as Weight)) - .saturating_add(T::DbWeight::get().reads((1 as Weight).saturating_mul(w as Weight))) - .saturating_add(T::DbWeight::get().writes(4 as Weight)) + .saturating_add(Weight::from_ref_time(491_000).saturating_mul(b.into())) + .saturating_add(T::DbWeight::get().reads(20_u64)) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(w.into()))) + .saturating_add(T::DbWeight::get().writes(4_u64)) } // Storage: Content VideoById (r:1 w:1) // Storage: Content ChannelById (r:1 w:0) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) // Storage: Content CuratorGroupById (r:1 w:0) fn destroy_nft() -> Weight { - (469_109_000 as Weight) - .saturating_add(T::DbWeight::get().reads(4 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + Weight::from_ref_time(469_109_000) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Content VideoById (r:1 w:1) // Storage: Content ChannelById (r:1 w:0) // Storage: Membership MembershipById (r:1 w:0) fn sling_nft_back() -> Weight { - (126_850_000 as Weight) - .saturating_add(T::DbWeight::get().reads(3 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + Weight::from_ref_time(126_850_000) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Content VideoById (r:1 w:1) // Storage: Content ChannelById (r:1 w:0) @@ -999,18 +999,18 @@ impl WeightInfo for SubstrateWeight { // Storage: Content CuratorGroupById (r:1 w:0) // Storage: Membership MembershipById (r:1 w:0) fn offer_nft() -> Weight { - (481_389_000 as Weight) - .saturating_add(T::DbWeight::get().reads(5 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + Weight::from_ref_time(481_389_000) + .saturating_add(T::DbWeight::get().reads(5_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Content VideoById (r:1 w:1) // Storage: Content ChannelById (r:1 w:0) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) // Storage: Content CuratorGroupById (r:1 w:0) fn cancel_offer() -> Weight { - (470_080_000 as Weight) - .saturating_add(T::DbWeight::get().reads(4 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + Weight::from_ref_time(470_080_000) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Content VideoById (r:1 w:1) // Storage: Content ChannelById (r:1 w:0) @@ -1018,36 +1018,36 @@ impl WeightInfo for SubstrateWeight { // Storage: System Account (r:3 w:3) // Storage: Content PlatfromFeePercentage (r:1 w:0) fn accept_incoming_offer() -> Weight { - (268_660_000 as Weight) - .saturating_add(T::DbWeight::get().reads(8 as Weight)) - .saturating_add(T::DbWeight::get().writes(4 as Weight)) + Weight::from_ref_time(268_660_000) + .saturating_add(T::DbWeight::get().reads(8_u64)) + .saturating_add(T::DbWeight::get().writes(4_u64)) } // Storage: Content VideoById (r:1 w:1) // Storage: Content ChannelById (r:1 w:0) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) // Storage: Content CuratorGroupById (r:1 w:0) fn sell_nft() -> Weight { - (468_940_000 as Weight) - .saturating_add(T::DbWeight::get().reads(4 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + Weight::from_ref_time(468_940_000) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Content VideoById (r:1 w:1) // Storage: Content ChannelById (r:1 w:0) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) // Storage: Content CuratorGroupById (r:1 w:0) fn cancel_buy_now() -> Weight { - (477_060_000 as Weight) - .saturating_add(T::DbWeight::get().reads(4 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + Weight::from_ref_time(477_060_000) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Content VideoById (r:1 w:1) // Storage: Content ChannelById (r:1 w:0) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) // Storage: Content CuratorGroupById (r:1 w:0) fn update_buy_now_price() -> Weight { - (469_370_000 as Weight) - .saturating_add(T::DbWeight::get().reads(4 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + Weight::from_ref_time(469_370_000) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Membership MembershipById (r:2 w:0) // Storage: Content VideoById (r:1 w:1) @@ -1055,29 +1055,29 @@ impl WeightInfo for SubstrateWeight { // Storage: System Account (r:3 w:3) // Storage: Content PlatfromFeePercentage (r:1 w:0) fn buy_nft() -> Weight { - (269_391_000 as Weight) - .saturating_add(T::DbWeight::get().reads(8 as Weight)) - .saturating_add(T::DbWeight::get().writes(4 as Weight)) + Weight::from_ref_time(269_391_000) + .saturating_add(T::DbWeight::get().reads(8_u64)) + .saturating_add(T::DbWeight::get().writes(4_u64)) } // Storage: Content NftLimitsEnabled (r:1 w:1) fn toggle_nft_limits() -> Weight { - (37_130_000 as Weight) - .saturating_add(T::DbWeight::get().reads(1 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + Weight::from_ref_time(37_130_000) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Content GlobalDailyNftLimit (r:1 w:1) fn update_global_nft_limit() -> Weight { - (38_129_000 as Weight) - .saturating_add(T::DbWeight::get().reads(1 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + Weight::from_ref_time(38_129_000) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Content ChannelById (r:1 w:1) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) // Storage: Content CuratorGroupById (r:1 w:0) fn update_channel_nft_limit() -> Weight { - (342_840_000 as Weight) - .saturating_add(T::DbWeight::get().reads(3 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + Weight::from_ref_time(342_840_000) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Content VideoById (r:1 w:1) // Storage: Content ChannelById (r:1 w:0) @@ -1094,21 +1094,21 @@ impl WeightInfo for SubstrateWeight { // Storage: Content MaxStartingPrice (r:1 w:0) // Storage: Membership MembershipById (r:2 w:0) fn start_english_auction(w: u32, ) -> Weight { - (548_144_000 as Weight) + Weight::from_ref_time(548_144_000) // Standard Error: 55_000 - .saturating_add((11_411_000 as Weight).saturating_mul(w as Weight)) - .saturating_add(T::DbWeight::get().reads(13 as Weight)) - .saturating_add(T::DbWeight::get().reads((1 as Weight).saturating_mul(w as Weight))) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + .saturating_add(Weight::from_ref_time(11_411_000).saturating_mul(w.into())) + .saturating_add(T::DbWeight::get().reads(13_u64)) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(w.into()))) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Content VideoById (r:1 w:1) // Storage: Content ChannelById (r:1 w:0) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) // Storage: Content CuratorGroupById (r:1 w:0) fn cancel_english_auction() -> Weight { - (483_320_000 as Weight) - .saturating_add(T::DbWeight::get().reads(4 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + Weight::from_ref_time(483_320_000) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Membership MembershipById (r:3 w:0) // Storage: Content VideoById (r:1 w:1) @@ -1116,9 +1116,9 @@ impl WeightInfo for SubstrateWeight { // Storage: System Account (r:5 w:5) // Storage: Content PlatfromFeePercentage (r:1 w:0) fn make_english_auction_bid() -> Weight { - (392_440_000 as Weight) - .saturating_add(T::DbWeight::get().reads(11 as Weight)) - .saturating_add(T::DbWeight::get().writes(6 as Weight)) + Weight::from_ref_time(392_440_000) + .saturating_add(T::DbWeight::get().reads(11_u64)) + .saturating_add(T::DbWeight::get().writes(6_u64)) } // Storage: Content VideoById (r:1 w:1) // Storage: Content ChannelById (r:1 w:0) @@ -1126,9 +1126,9 @@ impl WeightInfo for SubstrateWeight { // Storage: System Account (r:3 w:3) // Storage: Content PlatfromFeePercentage (r:1 w:0) fn settle_english_auction() -> Weight { - (265_260_000 as Weight) - .saturating_add(T::DbWeight::get().reads(7 as Weight)) - .saturating_add(T::DbWeight::get().writes(4 as Weight)) + Weight::from_ref_time(265_260_000) + .saturating_add(T::DbWeight::get().reads(7_u64)) + .saturating_add(T::DbWeight::get().writes(4_u64)) } // Storage: Content VideoById (r:1 w:1) // Storage: Content ChannelById (r:1 w:0) @@ -1141,21 +1141,21 @@ impl WeightInfo for SubstrateWeight { // Storage: Membership MembershipById (r:2 w:0) // Storage: Content AuctionStartsAtMaxDelta (r:1 w:0) fn start_open_auction(w: u32, ) -> Weight { - (519_399_000 as Weight) + Weight::from_ref_time(519_399_000) // Standard Error: 53_000 - .saturating_add((11_276_000 as Weight).saturating_mul(w as Weight)) - .saturating_add(T::DbWeight::get().reads(9 as Weight)) - .saturating_add(T::DbWeight::get().reads((1 as Weight).saturating_mul(w as Weight))) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + .saturating_add(Weight::from_ref_time(11_276_000).saturating_mul(w.into())) + .saturating_add(T::DbWeight::get().reads(9_u64)) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(w.into()))) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Content VideoById (r:1 w:1) // Storage: Content ChannelById (r:1 w:0) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) // Storage: Content CuratorGroupById (r:1 w:0) fn cancel_open_auction() -> Weight { - (479_989_000 as Weight) - .saturating_add(T::DbWeight::get().reads(4 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + Weight::from_ref_time(479_989_000) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Membership MembershipById (r:1 w:0) // Storage: Content VideoById (r:1 w:0) @@ -1163,9 +1163,9 @@ impl WeightInfo for SubstrateWeight { // Storage: Content OpenAuctionBidByVideoAndMember (r:1 w:1) // Storage: System Account (r:2 w:2) fn cancel_open_auction_bid() -> Weight { - (215_480_000 as Weight) - .saturating_add(T::DbWeight::get().reads(6 as Weight)) - .saturating_add(T::DbWeight::get().writes(3 as Weight)) + Weight::from_ref_time(215_480_000) + .saturating_add(T::DbWeight::get().reads(6_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) } // Storage: Membership MembershipById (r:2 w:0) // Storage: Content VideoById (r:1 w:1) @@ -1174,9 +1174,9 @@ impl WeightInfo for SubstrateWeight { // Storage: System Account (r:3 w:3) // Storage: Content PlatfromFeePercentage (r:1 w:0) fn pick_open_auction_winner() -> Weight { - (294_170_000 as Weight) - .saturating_add(T::DbWeight::get().reads(9 as Weight)) - .saturating_add(T::DbWeight::get().writes(5 as Weight)) + Weight::from_ref_time(294_170_000) + .saturating_add(T::DbWeight::get().reads(9_u64)) + .saturating_add(T::DbWeight::get().writes(5_u64)) } // Storage: Membership MembershipById (r:2 w:0) // Storage: Content OpenAuctionBidByVideoAndMember (r:1 w:0) @@ -1185,284 +1185,284 @@ impl WeightInfo for SubstrateWeight { // Storage: Content ChannelById (r:1 w:0) // Storage: Content PlatfromFeePercentage (r:1 w:0) fn make_open_auction_bid() -> Weight { - (353_009_000 as Weight) - .saturating_add(T::DbWeight::get().reads(10 as Weight)) - .saturating_add(T::DbWeight::get().writes(5 as Weight)) + Weight::from_ref_time(353_009_000) + .saturating_add(T::DbWeight::get().reads(10_u64)) + .saturating_add(T::DbWeight::get().writes(5_u64)) } // Storage: Content ChannelById (r:1 w:0) // Storage: Instance3WorkingGroup CurrentLead (r:1 w:0) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) fn channel_owner_remark(b: u32, ) -> Weight { - (113_465_000 as Weight) + Weight::from_ref_time(113_465_000) // Standard Error: 4_000 - .saturating_add((726_000 as Weight).saturating_mul(b as Weight)) - .saturating_add(T::DbWeight::get().reads(3 as Weight)) + .saturating_add(Weight::from_ref_time(726_000_u64).saturating_mul(b.into())) + .saturating_add(T::DbWeight::get().reads(3_u64)) } // Storage: Content ChannelById (r:1 w:0) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) // Storage: Content CuratorGroupById (r:1 w:0) fn channel_agent_remark(b: u32, ) -> Weight { - (309_636_000 as Weight) + Weight::from_ref_time(309_636_000) // Standard Error: 5_000 - .saturating_add((690_000 as Weight).saturating_mul(b as Weight)) - .saturating_add(T::DbWeight::get().reads(3 as Weight)) + .saturating_add(Weight::from_ref_time(690_000).saturating_mul(b.into())) + .saturating_add(T::DbWeight::get().reads(3_u64)) } // Storage: Content VideoById (r:1 w:0) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) // Storage: Content CuratorGroupById (r:1 w:0) // Storage: Content ChannelById (r:1 w:0) fn nft_owner_remark(b: u32, ) -> Weight { - (433_008_000 as Weight) + Weight::from_ref_time(433_008_000) // Standard Error: 5_000 - .saturating_add((712_000 as Weight).saturating_mul(b as Weight)) - .saturating_add(T::DbWeight::get().reads(4 as Weight)) + .saturating_add(Weight::from_ref_time(712_000).saturating_mul(b.into())) + .saturating_add(T::DbWeight::get().reads(4_u64)) } // Storage: Instance3WorkingGroup CurrentLead (r:1 w:0) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) // Storage: Content ChannelStateBloatBondValue (r:0 w:1) fn update_channel_state_bloat_bond() -> Weight { - (48_800_000 as Weight) - .saturating_add(T::DbWeight::get().reads(2 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + Weight::from_ref_time(48_800_000) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Instance3WorkingGroup CurrentLead (r:1 w:0) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) // Storage: Content VideoStateBloatBondValue (r:0 w:1) fn update_video_state_bloat_bond() -> Weight { - (47_290_000 as Weight) - .saturating_add(T::DbWeight::get().reads(2 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + Weight::from_ref_time(47_290_000) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } } // Default implementation for tests impl WeightInfo for () { fn create_channel(a: u32, b: u32, c: u32, d: u32, e: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn channel_update_with_assets(a: u32, b: u32, c: u32, d: u32, e: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn channel_update_without_assets(a: u32, b: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn delete_channel(a: u32, b: u32, c: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn update_channel_privilege_level() -> Weight { - 0 + Weight::from_ref_time(0) } fn set_channel_paused_features_as_moderator(a: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn delete_channel_assets_as_moderator(a: u32, b: u32, c: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn delete_channel_as_moderator(a: u32, b: u32, c: u32, d: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn set_channel_visibility_as_moderator(a: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn delete_video_assets_as_moderator(a: u32, b: u32, c: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn delete_video_as_moderator_with_assets(a: u32, b: u32, c: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn delete_video_as_moderator_without_assets(a: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn set_video_visibility_as_moderator(a: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn create_curator_group(a: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn update_curator_group_permissions(a: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn set_curator_group_status() -> Weight { - 0 + Weight::from_ref_time(0) } fn add_curator_to_group() -> Weight { - 0 + Weight::from_ref_time(0) } fn remove_curator_from_group() -> Weight { - 0 + Weight::from_ref_time(0) } fn create_video_without_nft(a: u32, b: u32, c: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn create_video_with_nft(a: u32, b: u32, c: u32, d: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn update_video_without_assets_without_nft(a: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn update_video_with_assets_without_nft(a: u32, b: u32, c: u32, d: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn update_video_without_assets_with_nft(a: u32, b: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn update_video_with_assets_with_nft(a: u32, b: u32, c: u32, d: u32, e: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn delete_video_without_assets() -> Weight { - 0 + Weight::from_ref_time(0) } fn delete_video_with_assets(a: u32, b: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn initialize_channel_transfer(a: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn cancel_channel_transfer() -> Weight { - 0 + Weight::from_ref_time(0) } fn accept_channel_transfer_curator_to_curator(a: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn accept_channel_transfer_member_to_curator(a: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn accept_channel_transfer_member_to_member(a: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn issue_creator_token(a: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn creator_token_issuer_transfer(a: u32, _b: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn make_creator_token_permissionless() -> Weight { - 0 + Weight::from_ref_time(0) } fn deissue_creator_token() -> Weight { - 0 + Weight::from_ref_time(0) } fn init_creator_token_sale(a: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn update_upcoming_creator_token_sale() -> Weight { - 0 + Weight::from_ref_time(0) } fn finalize_creator_token_sale() -> Weight { - 0 + Weight::from_ref_time(0) } fn issue_revenue_split() -> Weight { - 0 + Weight::from_ref_time(0) } fn issue_revenue_split_as_collaborator() -> Weight { - 0 + Weight::from_ref_time(0) } fn finalize_revenue_split() -> Weight { - 0 + Weight::from_ref_time(0) } fn reduce_creator_token_patronage_rate_to() -> Weight { - 0 + Weight::from_ref_time(0) } fn claim_creator_token_patronage_credit() -> Weight { - 0 + Weight::from_ref_time(0) } fn update_channel_payouts() -> Weight { - 0 + Weight::from_ref_time(0) } fn withdraw_from_curator_channel_balance() -> Weight { - 0 + Weight::from_ref_time(0) } fn withdraw_from_member_channel_balance() -> Weight { - 0 + Weight::from_ref_time(0) } fn claim_channel_reward(h: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn claim_and_withdraw_member_channel_reward(h: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn claim_and_withdraw_curator_channel_reward(h: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn issue_nft(w: u32, b: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn destroy_nft() -> Weight { - 0 + Weight::from_ref_time(0) } fn sling_nft_back() -> Weight { - 0 + Weight::from_ref_time(0) } fn offer_nft() -> Weight { - 0 + Weight::from_ref_time(0) } fn cancel_offer() -> Weight { - 0 + Weight::from_ref_time(0) } fn accept_incoming_offer() -> Weight { - 0 + Weight::from_ref_time(0) } fn sell_nft() -> Weight { - 0 + Weight::from_ref_time(0) } fn cancel_buy_now() -> Weight { - 0 + Weight::from_ref_time(0) } fn update_buy_now_price() -> Weight { - 0 + Weight::from_ref_time(0) } fn buy_nft() -> Weight { - 0 + Weight::from_ref_time(0) } fn toggle_nft_limits() -> Weight { - 0 + Weight::from_ref_time(0) } fn update_global_nft_limit() -> Weight { - 0 + Weight::from_ref_time(0) } fn update_channel_nft_limit() -> Weight { - 0 + Weight::from_ref_time(0) } fn start_english_auction(w: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn cancel_english_auction() -> Weight { - 0 + Weight::from_ref_time(0) } fn make_english_auction_bid() -> Weight { - 0 + Weight::from_ref_time(0) } fn settle_english_auction() -> Weight { - 0 + Weight::from_ref_time(0) } fn start_open_auction(w: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn cancel_open_auction() -> Weight { - 0 + Weight::from_ref_time(0) } fn cancel_open_auction_bid() -> Weight { - 0 + Weight::from_ref_time(0) } fn pick_open_auction_winner() -> Weight { - 0 + Weight::from_ref_time(0) } fn make_open_auction_bid() -> Weight { - 0 + Weight::from_ref_time(0) } fn channel_owner_remark(b: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn channel_agent_remark(b: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn nft_owner_remark(b: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn update_channel_state_bloat_bond() -> Weight { - 0 + Weight::from_ref_time(0) } fn update_video_state_bloat_bond() -> Weight { - 0 + Weight::from_ref_time(0) } } diff --git a/runtime-modules/council/src/weights.rs b/runtime-modules/council/src/weights.rs index 3ca1dd8f73..2b205ce750 100644 --- a/runtime-modules/council/src/weights.rs +++ b/runtime-modules/council/src/weights.rs @@ -69,32 +69,32 @@ pub struct SubstrateWeight(PhantomData); impl WeightInfo for SubstrateWeight { // Storage: Council BudgetIncrement (r:0 w:1) fn set_budget_increment() -> Weight { - (29_210_000 as Weight) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + Weight::from_ref_time(29_210_000) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Council CouncilorReward (r:0 w:1) fn set_councilor_reward() -> Weight { - (29_330_000 as Weight) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + Weight::from_ref_time(29_330_000) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Council Budget (r:1 w:1) // Storage: System Account (r:1 w:1) fn funding_request(i: u32, ) -> Weight { - (18_104_000 as Weight) + Weight::from_ref_time(18_104_000) // Standard Error: 13_000 - .saturating_add((69_917_000 as Weight).saturating_mul(i as Weight)) - .saturating_add(T::DbWeight::get().reads(1 as Weight)) - .saturating_add(T::DbWeight::get().reads((1 as Weight).saturating_mul(i as Weight))) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) - .saturating_add(T::DbWeight::get().writes((1 as Weight).saturating_mul(i as Weight))) + .saturating_add(Weight::from_ref_time(69_917_000).saturating_mul(i.into())) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) + .saturating_add(T::DbWeight::get().writes(1_u64)) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) } // Storage: Council BudgetIncrement (r:1 w:0) // Storage: Council Budget (r:1 w:1) // Storage: Council NextBudgetRefill (r:0 w:1) fn try_process_budget_refill_budget_only() -> Weight { - (52_040_000 as Weight) - .saturating_add(T::DbWeight::get().reads(2 as Weight)) - .saturating_add(T::DbWeight::get().writes(2 as Weight)) + Weight::from_ref_time(52_040_000) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) } // Storage: Council CouncilorReward (r:1 w:0) // Storage: Council Budget (r:1 w:1) @@ -102,33 +102,33 @@ impl WeightInfo for SubstrateWeight { // Storage: System Account (r:3 w:3) // Storage: Council NextRewardPayments (r:0 w:1) fn try_process_budget_payout_council_members_only() -> Weight { - (169_890_000 as Weight) - .saturating_add(T::DbWeight::get().reads(6 as Weight)) - .saturating_add(T::DbWeight::get().writes(6 as Weight)) + Weight::from_ref_time(169_890_000) + .saturating_add(T::DbWeight::get().reads(6_u64)) + .saturating_add(T::DbWeight::get().writes(6_u64)) } // Storage: Council Stage (r:1 w:1) // Storage: Council AnnouncementPeriodNr (r:1 w:1) fn try_progress_stage_idle() -> Weight { - (47_270_000 as Weight) - .saturating_add(T::DbWeight::get().reads(2 as Weight)) - .saturating_add(T::DbWeight::get().writes(2 as Weight)) + Weight::from_ref_time(47_270_000) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) } // Storage: Council Stage (r:1 w:1) // Storage: Council AnnouncementPeriodNr (r:1 w:0) // Storage: Instance1Referendum Stage (r:1 w:1) fn try_progress_stage_announcing_start_election(i: u32, ) -> Weight { - (75_045_000 as Weight) + Weight::from_ref_time(75_045_000) // Standard Error: 9_000 - .saturating_add((195_000 as Weight).saturating_mul(i as Weight)) - .saturating_add(T::DbWeight::get().reads(3 as Weight)) - .saturating_add(T::DbWeight::get().writes(2 as Weight)) + .saturating_add(Weight::from_ref_time(195_000).saturating_mul(i.into())) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) } // Storage: Council Stage (r:1 w:1) // Storage: Council AnnouncementPeriodNr (r:1 w:1) fn try_progress_stage_announcing_restart() -> Weight { - (53_390_000 as Weight) - .saturating_add(T::DbWeight::get().reads(2 as Weight)) - .saturating_add(T::DbWeight::get().writes(2 as Weight)) + Weight::from_ref_time(53_390_000) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) } // Storage: Membership MembershipById (r:1 w:0) // Storage: Membership StakingAccountIdMemberStatus (r:1 w:0) @@ -138,9 +138,9 @@ impl WeightInfo for SubstrateWeight { // Storage: System Account (r:1 w:1) // Storage: Council AnnouncementPeriodNr (r:1 w:0) fn announce_candidacy() -> Weight { - (128_770_000 as Weight) - .saturating_add(T::DbWeight::get().reads(7 as Weight)) - .saturating_add(T::DbWeight::get().writes(4 as Weight)) + Weight::from_ref_time(128_770_000) + .saturating_add(T::DbWeight::get().reads(7_u64)) + .saturating_add(T::DbWeight::get().writes(4_u64)) } // Storage: Membership MembershipById (r:1 w:0) // Storage: Council Candidates (r:1 w:1) @@ -148,20 +148,20 @@ impl WeightInfo for SubstrateWeight { // Storage: Balances Locks (r:1 w:1) // Storage: System Account (r:1 w:1) fn release_candidacy_stake() -> Weight { - (91_360_000 as Weight) - .saturating_add(T::DbWeight::get().reads(5 as Weight)) - .saturating_add(T::DbWeight::get().writes(3 as Weight)) + Weight::from_ref_time(91_360_000) + .saturating_add(T::DbWeight::get().reads(5_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) } // Storage: Membership MembershipById (r:1 w:0) // Storage: Council Candidates (r:1 w:1) // Storage: Council AnnouncementPeriodNr (r:1 w:0) // Storage: Council Stage (r:1 w:0) fn set_candidacy_note(i: u32, ) -> Weight { - (68_023_000 as Weight) + Weight::from_ref_time(68_023_000) // Standard Error: 2_000 - .saturating_add((1_744_000 as Weight).saturating_mul(i as Weight)) - .saturating_add(T::DbWeight::get().reads(4 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + .saturating_add(Weight::from_ref_time(1_744_000).saturating_mul(i.into())) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Membership MembershipById (r:1 w:0) // Storage: Council Candidates (r:1 w:1) @@ -170,94 +170,94 @@ impl WeightInfo for SubstrateWeight { // Storage: Balances Locks (r:1 w:1) // Storage: System Account (r:1 w:1) fn withdraw_candidacy() -> Weight { - (99_240_000 as Weight) - .saturating_add(T::DbWeight::get().reads(6 as Weight)) - .saturating_add(T::DbWeight::get().writes(4 as Weight)) + Weight::from_ref_time(99_240_000) + .saturating_add(T::DbWeight::get().reads(6_u64)) + .saturating_add(T::DbWeight::get().writes(4_u64)) } // Storage: Council Budget (r:0 w:1) fn set_budget() -> Weight { - (29_330_000 as Weight) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + Weight::from_ref_time(29_330_000) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Council NextBudgetRefill (r:0 w:1) fn plan_budget_refill() -> Weight { - (28_589_000 as Weight) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + Weight::from_ref_time(28_589_000) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Membership MembershipById (r:1 w:0) // Storage: System Account (r:1 w:1) // Storage: Council Budget (r:1 w:1) fn fund_council_budget() -> Weight { - (89_760_000 as Weight) - .saturating_add(T::DbWeight::get().reads(3 as Weight)) - .saturating_add(T::DbWeight::get().writes(2 as Weight)) + Weight::from_ref_time(89_760_000) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) } // Storage: Membership MembershipById (r:1 w:0) // Storage: Council Candidates (r:1 w:0) // Storage: Council AnnouncementPeriodNr (r:1 w:0) fn candidate_remark() -> Weight { - (51_040_000 as Weight) - .saturating_add(T::DbWeight::get().reads(3 as Weight)) + Weight::from_ref_time(51_040_000) + .saturating_add(T::DbWeight::get().reads(3_u64)) } // Storage: Membership MembershipById (r:1 w:0) // Storage: Council CouncilMembers (r:1 w:0) fn councilor_remark() -> Weight { - (49_349_000 as Weight) - .saturating_add(T::DbWeight::get().reads(2 as Weight)) + Weight::from_ref_time(49_349_000) + .saturating_add(T::DbWeight::get().reads(2_u64)) } } // Default implementation for tests impl WeightInfo for () { fn set_budget_increment() -> Weight { - 0 + Weight::from_ref_time(0) } fn set_councilor_reward() -> Weight { - 0 + Weight::from_ref_time(0) } fn funding_request(i: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn try_process_budget_refill_budget_only() -> Weight { - 0 + Weight::from_ref_time(0) } fn try_process_budget_payout_council_members_only() -> Weight { - 0 + Weight::from_ref_time(0) } fn try_progress_stage_idle() -> Weight { - 0 + Weight::from_ref_time(0) } fn try_progress_stage_announcing_start_election(i: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn try_progress_stage_announcing_restart() -> Weight { - 0 + Weight::from_ref_time(0) } fn announce_candidacy() -> Weight { - 0 + Weight::from_ref_time(0) } fn release_candidacy_stake() -> Weight { - 0 + Weight::from_ref_time(0) } fn set_candidacy_note(i: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn withdraw_candidacy() -> Weight { - 0 + Weight::from_ref_time(0) } fn set_budget() -> Weight { - 0 + Weight::from_ref_time(0) } fn plan_budget_refill() -> Weight { - 0 + Weight::from_ref_time(0) } fn fund_council_budget() -> Weight { - 0 + Weight::from_ref_time(0) } fn candidate_remark() -> Weight { - 0 + Weight::from_ref_time(0) } fn councilor_remark() -> Weight { - 0 + Weight::from_ref_time(0) } } diff --git a/runtime-modules/forum/src/weights.rs b/runtime-modules/forum/src/weights.rs index 2c883407f6..860bb10c9d 100644 --- a/runtime-modules/forum/src/weights.rs +++ b/runtime-modules/forum/src/weights.rs @@ -81,132 +81,132 @@ impl WeightInfo for SubstrateWeight { // Storage: Forum_1_1 NextCategoryId (r:1 w:1) // Storage: Forum_1_1 CategoryById (r:1 w:1) fn create_category(i: u32, j: u32, k: u32, ) -> Weight { - (22_133_000 as Weight) + Weight::from_ref_time(22_133_000) // Standard Error: 344_000 - .saturating_add((8_641_000 as Weight).saturating_mul(i as Weight)) + .saturating_add(Weight::from_ref_time(8_641_000).saturating_mul(i.into())) // Standard Error: 8_000 - .saturating_add((1_503_000 as Weight).saturating_mul(j as Weight)) + .saturating_add(Weight::from_ref_time(1_503_000).saturating_mul(j.into())) // Standard Error: 8_000 - .saturating_add((1_636_000 as Weight).saturating_mul(k as Weight)) - .saturating_add(T::DbWeight::get().reads(4 as Weight)) - .saturating_add(T::DbWeight::get().reads((1 as Weight).saturating_mul(i as Weight))) - .saturating_add(T::DbWeight::get().writes(3 as Weight)) + .saturating_add(Weight::from_ref_time(1_636_000).saturating_mul(k.into())) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) + .saturating_add(T::DbWeight::get().writes(3_u64)) } // Storage: Instance1WorkingGroup CurrentLead (r:1 w:0) // Storage: Instance1WorkingGroup WorkerById (r:1 w:0) // Storage: Forum_1_1 CategoryById (r:1 w:1) // Storage: Forum_1_1 CategoryByModerator (r:0 w:1) fn update_category_membership_of_moderator_new() -> Weight { - (39_850_000 as Weight) - .saturating_add(T::DbWeight::get().reads(3 as Weight)) - .saturating_add(T::DbWeight::get().writes(2 as Weight)) + Weight::from_ref_time(39_850_000) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) } // Storage: Instance1WorkingGroup CurrentLead (r:1 w:0) // Storage: Instance1WorkingGroup WorkerById (r:1 w:0) // Storage: Forum_1_1 CategoryById (r:1 w:1) // Storage: Forum_1_1 CategoryByModerator (r:1 w:1) fn update_category_membership_of_moderator_old() -> Weight { - (41_130_000 as Weight) - .saturating_add(T::DbWeight::get().reads(4 as Weight)) - .saturating_add(T::DbWeight::get().writes(2 as Weight)) + Weight::from_ref_time(41_130_000) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) } // Storage: Instance1WorkingGroup CurrentLead (r:1 w:0) // Storage: Instance1WorkingGroup WorkerById (r:1 w:0) // Storage: Forum_1_1 CategoryById (r:1 w:1) fn update_category_archival_status_lead(i: u32, ) -> Weight { - (29_526_000 as Weight) + Weight::from_ref_time(29_526_000) // Standard Error: 31_000 - .saturating_add((4_275_000 as Weight).saturating_mul(i as Weight)) - .saturating_add(T::DbWeight::get().reads(2 as Weight)) - .saturating_add(T::DbWeight::get().reads((1 as Weight).saturating_mul(i as Weight))) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + .saturating_add(Weight::from_ref_time(4_275_000).saturating_mul(i.into())) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Instance1WorkingGroup WorkerById (r:1 w:0) // Storage: Forum_1_1 CategoryById (r:1 w:1) // Storage: Forum_1_1 CategoryByModerator (r:1 w:0) fn update_category_archival_status_moderator(i: u32, ) -> Weight { - (27_321_000 as Weight) + Weight::from_ref_time(27_321_000) // Standard Error: 42_000 - .saturating_add((7_882_000 as Weight).saturating_mul(i as Weight)) - .saturating_add(T::DbWeight::get().reads(1 as Weight)) - .saturating_add(T::DbWeight::get().reads((2 as Weight).saturating_mul(i as Weight))) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + .saturating_add(Weight::from_ref_time(7_882_000).saturating_mul(i.into())) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(i.into()))) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Instance1WorkingGroup CurrentLead (r:1 w:0) // Storage: Instance1WorkingGroup WorkerById (r:1 w:0) // Storage: Forum_1_1 CategoryById (r:1 w:1) fn update_category_title_lead(i: u32, j: u32, ) -> Weight { - (28_858_000 as Weight) + Weight::from_ref_time(28_858_000) // Standard Error: 110_000 - .saturating_add((4_526_000 as Weight).saturating_mul(i as Weight)) + .saturating_add(Weight::from_ref_time(4_526_000).saturating_mul(i.into())) // Standard Error: 2_000 - .saturating_add((1_260_000 as Weight).saturating_mul(j as Weight)) - .saturating_add(T::DbWeight::get().reads(2 as Weight)) - .saturating_add(T::DbWeight::get().reads((1 as Weight).saturating_mul(i as Weight))) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + .saturating_add(Weight::from_ref_time(1_260_000).saturating_mul(j.into())) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Instance1WorkingGroup WorkerById (r:1 w:0) // Storage: Forum_1_1 CategoryById (r:1 w:1) // Storage: Forum_1_1 CategoryByModerator (r:1 w:0) fn update_category_title_moderator(i: u32, j: u32, ) -> Weight { - (28_478_000 as Weight) + Weight::from_ref_time(28_478_000) // Standard Error: 85_000 - .saturating_add((7_917_000 as Weight).saturating_mul(i as Weight)) + .saturating_add(Weight::from_ref_time(7_917_000).saturating_mul(i.into())) // Standard Error: 1_000 - .saturating_add((1_247_000 as Weight).saturating_mul(j as Weight)) - .saturating_add(T::DbWeight::get().reads(1 as Weight)) - .saturating_add(T::DbWeight::get().reads((2 as Weight).saturating_mul(i as Weight))) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + .saturating_add(Weight::from_ref_time(1_247_000).saturating_mul(j.into())) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(i.into()))) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Instance1WorkingGroup CurrentLead (r:1 w:0) // Storage: Instance1WorkingGroup WorkerById (r:1 w:0) // Storage: Forum_1_1 CategoryById (r:1 w:1) fn update_category_description_lead(i: u32, j: u32, ) -> Weight { - (29_028_000 as Weight) + Weight::from_ref_time(29_028_000) // Standard Error: 77_000 - .saturating_add((4_510_000 as Weight).saturating_mul(i as Weight)) + .saturating_add(Weight::from_ref_time(4_510_000).saturating_mul(i.into())) // Standard Error: 1_000 - .saturating_add((1_259_000 as Weight).saturating_mul(j as Weight)) - .saturating_add(T::DbWeight::get().reads(2 as Weight)) - .saturating_add(T::DbWeight::get().reads((1 as Weight).saturating_mul(i as Weight))) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + .saturating_add(Weight::from_ref_time(1_259_000).saturating_mul(j.into())) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Instance1WorkingGroup WorkerById (r:1 w:0) // Storage: Forum_1_1 CategoryById (r:1 w:1) // Storage: Forum_1_1 CategoryByModerator (r:1 w:0) fn update_category_description_moderator(i: u32, j: u32, ) -> Weight { - (28_376_000 as Weight) + Weight::from_ref_time(28_376_000) // Standard Error: 63_000 - .saturating_add((7_871_000 as Weight).saturating_mul(i as Weight)) + .saturating_add(Weight::from_ref_time(7_871_000).saturating_mul(i.into())) // Standard Error: 1_000 - .saturating_add((1_251_000 as Weight).saturating_mul(j as Weight)) - .saturating_add(T::DbWeight::get().reads(1 as Weight)) - .saturating_add(T::DbWeight::get().reads((2 as Weight).saturating_mul(i as Weight))) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + .saturating_add(Weight::from_ref_time(1_251_000).saturating_mul(j.into())) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(i.into()))) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Instance1WorkingGroup CurrentLead (r:1 w:0) // Storage: Instance1WorkingGroup WorkerById (r:1 w:0) // Storage: Forum_1_1 CategoryById (r:1 w:1) // Storage: Forum_1_1 CategoryCounter (r:1 w:1) fn delete_category_lead(i: u32, ) -> Weight { - (31_586_000 as Weight) + Weight::from_ref_time(31_586_000) // Standard Error: 160_000 - .saturating_add((5_142_000 as Weight).saturating_mul(i as Weight)) - .saturating_add(T::DbWeight::get().reads(3 as Weight)) - .saturating_add(T::DbWeight::get().reads((1 as Weight).saturating_mul(i as Weight))) - .saturating_add(T::DbWeight::get().writes(2 as Weight)) + .saturating_add(Weight::from_ref_time(5_142_000).saturating_mul(i.into())) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) + .saturating_add(T::DbWeight::get().writes(2_u64)) } // Storage: Instance1WorkingGroup WorkerById (r:1 w:0) // Storage: Forum_1_1 CategoryById (r:3 w:2) // Storage: Forum_1_1 CategoryByModerator (r:2 w:0) // Storage: Forum_1_1 CategoryCounter (r:1 w:1) fn delete_category_moderator(i: u32, ) -> Weight { - (29_291_000 as Weight) + Weight::from_ref_time(29_291_000) // Standard Error: 42_000 - .saturating_add((8_080_000 as Weight).saturating_mul(i as Weight)) - .saturating_add(T::DbWeight::get().reads(1 as Weight)) - .saturating_add(T::DbWeight::get().reads((2 as Weight).saturating_mul(i as Weight))) - .saturating_add(T::DbWeight::get().writes(3 as Weight)) + .saturating_add(Weight::from_ref_time(8_080_000).saturating_mul(i.into())) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(i.into()))) + .saturating_add(T::DbWeight::get().writes(3_u64)) } // Storage: Membership MembershipById (r:1 w:0) // Storage: Forum_1_1 CategoryById (r:1 w:1) @@ -216,64 +216,64 @@ impl WeightInfo for SubstrateWeight { // Storage: Forum_1_1 NextPostId (r:1 w:1) // Storage: Forum_1_1 PostById (r:0 w:1) fn create_thread(i: u32, j: u32, k: u32, ) -> Weight { - (96_321_000 as Weight) + Weight::from_ref_time(96_321_000) // Standard Error: 345_000 - .saturating_add((7_680_000 as Weight).saturating_mul(i as Weight)) + .saturating_add(Weight::from_ref_time(7_680_000).saturating_mul(i.into())) // Standard Error: 8_000 - .saturating_add((610_000 as Weight).saturating_mul(j as Weight)) + .saturating_add(Weight::from_ref_time(610_000).saturating_mul(j.into())) // Standard Error: 8_000 - .saturating_add((1_693_000 as Weight).saturating_mul(k as Weight)) - .saturating_add(T::DbWeight::get().reads(6 as Weight)) - .saturating_add(T::DbWeight::get().reads((1 as Weight).saturating_mul(i as Weight))) - .saturating_add(T::DbWeight::get().writes(7 as Weight)) + .saturating_add(Weight::from_ref_time(1_693_000).saturating_mul(k.into())) + .saturating_add(T::DbWeight::get().reads(6_u64)) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) + .saturating_add(T::DbWeight::get().writes(7_u64)) } // Storage: Membership MembershipById (r:1 w:0) // Storage: Forum_1_1 ThreadById (r:1 w:0) // Storage: Forum_1_1 CategoryById (r:1 w:0) fn edit_thread_metadata(i: u32, j: u32, ) -> Weight { - (29_622_000 as Weight) + Weight::from_ref_time(29_622_000) // Standard Error: 55_000 - .saturating_add((4_635_000 as Weight).saturating_mul(i as Weight)) + .saturating_add(Weight::from_ref_time(4_635_000).saturating_mul(i.into())) // Standard Error: 1_000 - .saturating_add((733_000 as Weight).saturating_mul(j as Weight)) - .saturating_add(T::DbWeight::get().reads(2 as Weight)) - .saturating_add(T::DbWeight::get().reads((1 as Weight).saturating_mul(i as Weight))) + .saturating_add(Weight::from_ref_time(733_000).saturating_mul(j.into())) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) } // Storage: Forum_1_1 ThreadById (r:1 w:1) // Storage: Forum_1_1 CategoryById (r:1 w:1) // Storage: Membership MembershipById (r:1 w:0) // Storage: System Account (r:2 w:2) fn delete_thread(i: u32, ) -> Weight { - (66_086_000 as Weight) + Weight::from_ref_time(66_086_000) // Standard Error: 57_000 - .saturating_add((4_377_000 as Weight).saturating_mul(i as Weight)) - .saturating_add(T::DbWeight::get().reads(4 as Weight)) - .saturating_add(T::DbWeight::get().reads((1 as Weight).saturating_mul(i as Weight))) - .saturating_add(T::DbWeight::get().writes(4 as Weight)) + .saturating_add(Weight::from_ref_time(4_377_000).saturating_mul(i.into())) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) + .saturating_add(T::DbWeight::get().writes(4_u64)) } // Storage: Instance1WorkingGroup CurrentLead (r:1 w:0) // Storage: Instance1WorkingGroup WorkerById (r:1 w:0) // Storage: Forum_1_1 CategoryById (r:2 w:2) // Storage: Forum_1_1 ThreadById (r:1 w:2) fn move_thread_to_category_lead(i: u32, ) -> Weight { - (48_374_000 as Weight) + Weight::from_ref_time(48_374_000) // Standard Error: 138_000 - .saturating_add((5_455_000 as Weight).saturating_mul(i as Weight)) - .saturating_add(T::DbWeight::get().reads(4 as Weight)) - .saturating_add(T::DbWeight::get().reads((1 as Weight).saturating_mul(i as Weight))) - .saturating_add(T::DbWeight::get().writes(4 as Weight)) + .saturating_add(Weight::from_ref_time(5_455_000).saturating_mul(i.into())) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) + .saturating_add(T::DbWeight::get().writes(4_u64)) } // Storage: Instance1WorkingGroup WorkerById (r:1 w:0) // Storage: Forum_1_1 CategoryById (r:2 w:2) // Storage: Forum_1_1 CategoryByModerator (r:2 w:0) // Storage: Forum_1_1 ThreadById (r:1 w:2) fn move_thread_to_category_moderator(i: u32, ) -> Weight { - (50_636_000 as Weight) + Weight::from_ref_time(50_636_000) // Standard Error: 74_000 - .saturating_add((12_010_000 as Weight).saturating_mul(i as Weight)) - .saturating_add(T::DbWeight::get().reads(4 as Weight)) - .saturating_add(T::DbWeight::get().reads((2 as Weight).saturating_mul(i as Weight))) - .saturating_add(T::DbWeight::get().writes(4 as Weight)) + .saturating_add(Weight::from_ref_time(12_010_000).saturating_mul(i.into())) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(i.into()))) + .saturating_add(T::DbWeight::get().writes(4_u64)) } // Storage: Instance1WorkingGroup CurrentLead (r:1 w:0) // Storage: Instance1WorkingGroup WorkerById (r:1 w:0) @@ -281,14 +281,14 @@ impl WeightInfo for SubstrateWeight { // Storage: Forum_1_1 ThreadById (r:1 w:1) // Storage: System Account (r:1 w:1) fn moderate_thread_lead(i: u32, k: u32, ) -> Weight { - (60_089_000 as Weight) + Weight::from_ref_time(60_089_000) // Standard Error: 184_000 - .saturating_add((5_115_000 as Weight).saturating_mul(i as Weight)) + .saturating_add(Weight::from_ref_time(5_115_000).saturating_mul(i.into())) // Standard Error: 5_000 - .saturating_add((743_000 as Weight).saturating_mul(k as Weight)) - .saturating_add(T::DbWeight::get().reads(4 as Weight)) - .saturating_add(T::DbWeight::get().reads((1 as Weight).saturating_mul(i as Weight))) - .saturating_add(T::DbWeight::get().writes(3 as Weight)) + .saturating_add(Weight::from_ref_time(743_000).saturating_mul(k.into())) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) + .saturating_add(T::DbWeight::get().writes(3_u64)) } // Storage: Instance1WorkingGroup WorkerById (r:1 w:0) // Storage: Forum_1_1 CategoryById (r:1 w:1) @@ -296,14 +296,14 @@ impl WeightInfo for SubstrateWeight { // Storage: Forum_1_1 ThreadById (r:1 w:1) // Storage: System Account (r:1 w:1) fn moderate_thread_moderator(i: u32, k: u32, ) -> Weight { - (59_169_000 as Weight) + Weight::from_ref_time(59_169_000) // Standard Error: 181_000 - .saturating_add((8_646_000 as Weight).saturating_mul(i as Weight)) + .saturating_add(Weight::from_ref_time(8_646_000).saturating_mul(i.into())) // Standard Error: 5_000 - .saturating_add((740_000 as Weight).saturating_mul(k as Weight)) - .saturating_add(T::DbWeight::get().reads(3 as Weight)) - .saturating_add(T::DbWeight::get().reads((2 as Weight).saturating_mul(i as Weight))) - .saturating_add(T::DbWeight::get().writes(3 as Weight)) + .saturating_add(Weight::from_ref_time(740_000).saturating_mul(k.into())) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(i.into()))) + .saturating_add(T::DbWeight::get().writes(3_u64)) } // Storage: Membership MembershipById (r:1 w:0) // Storage: Forum_1_1 ThreadById (r:1 w:1) @@ -312,28 +312,28 @@ impl WeightInfo for SubstrateWeight { // Storage: Forum_1_1 NextPostId (r:1 w:1) // Storage: Forum_1_1 PostById (r:0 w:1) fn add_post(i: u32, j: u32, ) -> Weight { - (85_914_000 as Weight) + Weight::from_ref_time(85_914_000) // Standard Error: 109_000 - .saturating_add((4_693_000 as Weight).saturating_mul(i as Weight)) + .saturating_add(Weight::from_ref_time(4_693_000).saturating_mul(i.into())) // Standard Error: 3_000 - .saturating_add((1_679_000 as Weight).saturating_mul(j as Weight)) - .saturating_add(T::DbWeight::get().reads(5 as Weight)) - .saturating_add(T::DbWeight::get().reads((1 as Weight).saturating_mul(i as Weight))) - .saturating_add(T::DbWeight::get().writes(5 as Weight)) + .saturating_add(Weight::from_ref_time(1_679_000).saturating_mul(j.into())) + .saturating_add(T::DbWeight::get().reads(5_u64)) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) + .saturating_add(T::DbWeight::get().writes(5_u64)) } // Storage: Membership MembershipById (r:1 w:0) // Storage: Forum_1_1 ThreadById (r:1 w:0) // Storage: Forum_1_1 PostById (r:1 w:1) // Storage: Forum_1_1 CategoryById (r:1 w:0) fn edit_post_text(i: u32, j: u32, ) -> Weight { - (42_885_000 as Weight) + Weight::from_ref_time(42_885_000) // Standard Error: 150_000 - .saturating_add((4_682_000 as Weight).saturating_mul(i as Weight)) + .saturating_add(Weight::from_ref_time(4_682_000).saturating_mul(i.into())) // Standard Error: 4_000 - .saturating_add((1_674_000 as Weight).saturating_mul(j as Weight)) - .saturating_add(T::DbWeight::get().reads(3 as Weight)) - .saturating_add(T::DbWeight::get().reads((1 as Weight).saturating_mul(i as Weight))) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + .saturating_add(Weight::from_ref_time(1_674_000).saturating_mul(j.into())) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Instance1WorkingGroup CurrentLead (r:1 w:0) // Storage: Instance1WorkingGroup WorkerById (r:1 w:0) @@ -342,14 +342,14 @@ impl WeightInfo for SubstrateWeight { // Storage: Forum_1_1 PostById (r:1 w:1) // Storage: System Account (r:1 w:1) fn moderate_post_lead(i: u32, j: u32, ) -> Weight { - (72_664_000 as Weight) + Weight::from_ref_time(72_664_000) // Standard Error: 63_000 - .saturating_add((6_328_000 as Weight).saturating_mul(i as Weight)) + .saturating_add(Weight::from_ref_time(6_328_000).saturating_mul(i.into())) // Standard Error: 1_000 - .saturating_add((727_000 as Weight).saturating_mul(j as Weight)) - .saturating_add(T::DbWeight::get().reads(5 as Weight)) - .saturating_add(T::DbWeight::get().reads((1 as Weight).saturating_mul(i as Weight))) - .saturating_add(T::DbWeight::get().writes(3 as Weight)) + .saturating_add(Weight::from_ref_time(727_000).saturating_mul(j.into())) + .saturating_add(T::DbWeight::get().reads(5_u64)) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) + .saturating_add(T::DbWeight::get().writes(3_u64)) } // Storage: Instance1WorkingGroup WorkerById (r:1 w:0) // Storage: Forum_1_1 CategoryById (r:1 w:0) @@ -358,14 +358,14 @@ impl WeightInfo for SubstrateWeight { // Storage: Forum_1_1 PostById (r:1 w:1) // Storage: System Account (r:1 w:1) fn moderate_post_moderator(i: u32, j: u32, ) -> Weight { - (76_596_000 as Weight) + Weight::from_ref_time(76_596_000) // Standard Error: 122_000 - .saturating_add((9_194_000 as Weight).saturating_mul(i as Weight)) + .saturating_add(Weight::from_ref_time(9_194_000).saturating_mul(i.into())) // Standard Error: 3_000 - .saturating_add((726_000 as Weight).saturating_mul(j as Weight)) - .saturating_add(T::DbWeight::get().reads(4 as Weight)) - .saturating_add(T::DbWeight::get().reads((2 as Weight).saturating_mul(i as Weight))) - .saturating_add(T::DbWeight::get().writes(3 as Weight)) + .saturating_add(Weight::from_ref_time(726_000).saturating_mul(j.into())) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(i.into()))) + .saturating_add(T::DbWeight::get().writes(3_u64)) } // Storage: Forum_1_1 ThreadById (r:1 w:1) // Storage: Forum_1_1 PostById (r:20 w:20) @@ -373,126 +373,126 @@ impl WeightInfo for SubstrateWeight { // Storage: Membership MembershipById (r:1 w:0) // Storage: System Account (r:2 w:2) fn delete_posts(i: u32, j: u32, k: u32, ) -> Weight { - (0 as Weight) + Weight::from_ref_time(0) // Standard Error: 316_000 - .saturating_add((36_264_000 as Weight).saturating_mul(i as Weight)) + .saturating_add(Weight::from_ref_time(36_264_000).saturating_mul(i.into())) // Standard Error: 8_000 - .saturating_add((739_000 as Weight).saturating_mul(j as Weight)) + .saturating_add(Weight::from_ref_time(739_000).saturating_mul(j.into())) // Standard Error: 56_000 - .saturating_add((49_827_000 as Weight).saturating_mul(k as Weight)) - .saturating_add(T::DbWeight::get().reads(4 as Weight)) - .saturating_add(T::DbWeight::get().reads((1 as Weight).saturating_mul(i as Weight))) - .saturating_add(T::DbWeight::get().reads((1 as Weight).saturating_mul(k as Weight))) - .saturating_add(T::DbWeight::get().writes(3 as Weight)) - .saturating_add(T::DbWeight::get().writes((1 as Weight).saturating_mul(k as Weight))) + .saturating_add(Weight::from_ref_time(49_827_000).saturating_mul(k.into())) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(k.into()))) + .saturating_add(T::DbWeight::get().writes(3_u64)) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(k.into()))) } // Storage: Instance1WorkingGroup CurrentLead (r:1 w:0) // Storage: Instance1WorkingGroup WorkerById (r:1 w:0) // Storage: Forum_1_1 CategoryById (r:1 w:1) // Storage: Forum_1_1 ThreadById (r:20 w:0) fn set_stickied_threads_lead(i: u32, j: u32, ) -> Weight { - (28_495_000 as Weight) + Weight::from_ref_time(28_495_000) // Standard Error: 66_000 - .saturating_add((4_694_000 as Weight).saturating_mul(i as Weight)) + .saturating_add(Weight::from_ref_time(4_694_000).saturating_mul(i.into())) // Standard Error: 12_000 - .saturating_add((6_976_000 as Weight).saturating_mul(j as Weight)) - .saturating_add(T::DbWeight::get().reads(2 as Weight)) - .saturating_add(T::DbWeight::get().reads((1 as Weight).saturating_mul(i as Weight))) - .saturating_add(T::DbWeight::get().reads((1 as Weight).saturating_mul(j as Weight))) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + .saturating_add(Weight::from_ref_time(6_976_000).saturating_mul(j.into())) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(j.into()))) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Instance1WorkingGroup WorkerById (r:1 w:0) // Storage: Forum_1_1 CategoryById (r:1 w:1) // Storage: Forum_1_1 CategoryByModerator (r:1 w:0) // Storage: Forum_1_1 ThreadById (r:20 w:0) fn set_stickied_threads_moderator(i: u32, j: u32, ) -> Weight { - (26_618_000 as Weight) + Weight::from_ref_time(26_618_000) // Standard Error: 74_000 - .saturating_add((8_377_000 as Weight).saturating_mul(i as Weight)) + .saturating_add(Weight::from_ref_time(8_377_000).saturating_mul(i.into())) // Standard Error: 14_000 - .saturating_add((7_274_000 as Weight).saturating_mul(j as Weight)) - .saturating_add(T::DbWeight::get().reads(1 as Weight)) - .saturating_add(T::DbWeight::get().reads((2 as Weight).saturating_mul(i as Weight))) - .saturating_add(T::DbWeight::get().reads((1 as Weight).saturating_mul(j as Weight))) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + .saturating_add(Weight::from_ref_time(7_274_000).saturating_mul(j.into())) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(i.into()))) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(j.into()))) + .saturating_add(T::DbWeight::get().writes(1_u64)) } } // Default implementation for tests impl WeightInfo for () { fn create_category(i: u32, j: u32, k: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn update_category_membership_of_moderator_new() -> Weight { - 0 + Weight::from_ref_time(0) } fn update_category_membership_of_moderator_old() -> Weight { - 0 + Weight::from_ref_time(0) } fn update_category_archival_status_lead(i: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn update_category_archival_status_moderator(i: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn update_category_title_lead(i: u32, j: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn update_category_title_moderator(i: u32, j: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn update_category_description_lead(i: u32, j: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn update_category_description_moderator(i: u32, j: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn delete_category_lead(i: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn delete_category_moderator(i: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn create_thread(i: u32, j: u32, k: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn edit_thread_metadata(i: u32, j: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn delete_thread(i: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn move_thread_to_category_lead(i: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn move_thread_to_category_moderator(i: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn moderate_thread_lead(i: u32, k: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn moderate_thread_moderator(i: u32, k: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn add_post(i: u32, j: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn edit_post_text(i: u32, j: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn moderate_post_lead(i: u32, j: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn moderate_post_moderator(i: u32, j: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn delete_posts(i: u32, j: u32, k: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn set_stickied_threads_lead(i: u32, j: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn set_stickied_threads_moderator(i: u32, j: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } } diff --git a/runtime-modules/membership/src/weights.rs b/runtime-modules/membership/src/weights.rs index 6078964ffd..d3c49f6d6f 100644 --- a/runtime-modules/membership/src/weights.rs +++ b/runtime-modules/membership/src/weights.rs @@ -79,13 +79,13 @@ impl WeightInfo for SubstrateWeight { // Storage: Membership NextMemberId (r:1 w:1) // Storage: Membership MembershipById (r:0 w:1) fn buy_membership_without_referrer(i: u32, j: u32, ) -> Weight { - (142_226_000 as Weight) + Weight::from_ref_time(142_226_000) // Standard Error: 9_000 - .saturating_add((1_724_000 as Weight).saturating_mul(i as Weight)) + .saturating_add(Weight::from_ref_time(1_724_000).saturating_mul(i.into())) // Standard Error: 9_000 - .saturating_add((397_000 as Weight).saturating_mul(j as Weight)) - .saturating_add(T::DbWeight::get().reads(5 as Weight)) - .saturating_add(T::DbWeight::get().writes(4 as Weight)) + .saturating_add(Weight::from_ref_time(397_000).saturating_mul(j.into())) + .saturating_add(T::DbWeight::get().reads(5_u64)) + .saturating_add(T::DbWeight::get().writes(4_u64)) } // Storage: Membership MembershipPrice (r:1 w:0) // Storage: System Account (r:1 w:1) @@ -95,56 +95,56 @@ impl WeightInfo for SubstrateWeight { // Storage: Membership NextMemberId (r:1 w:1) // Storage: Membership ReferralCut (r:1 w:0) fn buy_membership_with_referrer(i: u32, j: u32, ) -> Weight { - (160_318_000 as Weight) + Weight::from_ref_time(160_318_000) // Standard Error: 10_000 - .saturating_add((1_563_000 as Weight).saturating_mul(i as Weight)) + .saturating_add(Weight::from_ref_time(1_563_000).saturating_mul(i.into())) // Standard Error: 10_000 - .saturating_add((784_000 as Weight).saturating_mul(j as Weight)) - .saturating_add(T::DbWeight::get().reads(7 as Weight)) - .saturating_add(T::DbWeight::get().writes(4 as Weight)) + .saturating_add(Weight::from_ref_time(784_000).saturating_mul(j.into())) + .saturating_add(T::DbWeight::get().reads(7_u64)) + .saturating_add(T::DbWeight::get().writes(4_u64)) } // Storage: Membership MembershipById (r:1 w:1) // Storage: Membership MemberIdByHandleHash (r:1 w:2) fn update_profile(i: u32, j: u32, ) -> Weight { - (71_164_000 as Weight) + Weight::from_ref_time(71_164_000) // Standard Error: 9_000 - .saturating_add((1_690_000 as Weight).saturating_mul(i as Weight)) + .saturating_add(Weight::from_ref_time(1_690_000).saturating_mul(i.into())) // Standard Error: 9_000 - .saturating_add((683_000 as Weight).saturating_mul(j as Weight)) - .saturating_add(T::DbWeight::get().reads(2 as Weight)) - .saturating_add(T::DbWeight::get().writes(3 as Weight)) + .saturating_add(Weight::from_ref_time(683_000).saturating_mul(j.into())) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) } fn update_accounts_none() -> Weight { - (1_640_000 as Weight) + Weight::from_ref_time(1_640_000) } // Storage: Membership MembershipById (r:1 w:1) fn update_accounts_root() -> Weight { - (42_330_000 as Weight) - .saturating_add(T::DbWeight::get().reads(1 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + Weight::from_ref_time(42_330_000) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Membership MembershipById (r:1 w:1) fn update_accounts_controller() -> Weight { - (42_100_000 as Weight) - .saturating_add(T::DbWeight::get().reads(1 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + Weight::from_ref_time(42_100_000) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Membership MembershipById (r:1 w:1) fn update_accounts_both() -> Weight { - (41_829_000 as Weight) - .saturating_add(T::DbWeight::get().reads(1 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + Weight::from_ref_time(41_829_000) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Membership ReferralCut (r:0 w:1) fn set_referral_cut() -> Weight { - (28_990_000 as Weight) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + Weight::from_ref_time(28_990_000) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Membership MembershipById (r:2 w:2) fn transfer_invites() -> Weight { - (59_190_000 as Weight) - .saturating_add(T::DbWeight::get().reads(2 as Weight)) - .saturating_add(T::DbWeight::get().writes(2 as Weight)) + Weight::from_ref_time(59_190_000) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) } // Storage: Membership MembershipById (r:1 w:2) // Storage: Membership MemberIdByHandleHash (r:1 w:1) @@ -154,13 +154,13 @@ impl WeightInfo for SubstrateWeight { // Storage: Membership NextMemberId (r:1 w:1) // Storage: System Account (r:1 w:1) fn invite_member(i: u32, j: u32, ) -> Weight { - (151_032_000 as Weight) + Weight::from_ref_time(151_032_000) // Standard Error: 7_000 - .saturating_add((1_599_000 as Weight).saturating_mul(i as Weight)) + .saturating_add(Weight::from_ref_time(1_599_000).saturating_mul(i.into())) // Standard Error: 8_000 - .saturating_add((743_000 as Weight).saturating_mul(j as Weight)) - .saturating_add(T::DbWeight::get().reads(7 as Weight)) - .saturating_add(T::DbWeight::get().writes(7 as Weight)) + .saturating_add(Weight::from_ref_time(743_000).saturating_mul(j.into())) + .saturating_add(T::DbWeight::get().reads(7_u64)) + .saturating_add(T::DbWeight::get().writes(7_u64)) } // Storage: Membership MemberIdByHandleHash (r:1 w:1) // Storage: Membership MembershipPrice (r:1 w:0) @@ -169,162 +169,162 @@ impl WeightInfo for SubstrateWeight { // Storage: Membership NextMemberId (r:1 w:1) // Storage: Membership MembershipById (r:0 w:1) fn gift_membership(i: u32, j: u32, ) -> Weight { - (310_496_000 as Weight) + Weight::from_ref_time(310_496_000) // Standard Error: 7_000 - .saturating_add((1_590_000 as Weight).saturating_mul(i as Weight)) + .saturating_add(Weight::from_ref_time(1_590_000).saturating_mul(i.into())) // Standard Error: 8_000 - .saturating_add((743_000 as Weight).saturating_mul(j as Weight)) - .saturating_add(T::DbWeight::get().reads(8 as Weight)) - .saturating_add(T::DbWeight::get().writes(8 as Weight)) + .saturating_add(Weight::from_ref_time(743_000).saturating_mul(j.into())) + .saturating_add(T::DbWeight::get().reads(8_u64)) + .saturating_add(T::DbWeight::get().writes(8_u64)) } // Storage: Membership MembershipPrice (r:0 w:1) fn set_membership_price() -> Weight { - (29_270_000 as Weight) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + Weight::from_ref_time(29_270_000) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Instance6WorkingGroup WorkerById (r:1 w:0) // Storage: Membership MembershipById (r:1 w:1) fn update_profile_verification() -> Weight { - (56_340_000 as Weight) - .saturating_add(T::DbWeight::get().reads(2 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + Weight::from_ref_time(56_340_000) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Instance6WorkingGroup CurrentLead (r:1 w:0) // Storage: Instance6WorkingGroup WorkerById (r:1 w:0) // Storage: Membership MembershipById (r:1 w:1) fn set_leader_invitation_quota() -> Weight { - (60_390_000 as Weight) - .saturating_add(T::DbWeight::get().reads(3 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + Weight::from_ref_time(60_390_000) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Membership InitialInvitationBalance (r:0 w:1) fn set_initial_invitation_balance() -> Weight { - (29_310_000 as Weight) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + Weight::from_ref_time(29_310_000) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Membership InitialInvitationCount (r:0 w:1) fn set_initial_invitation_count() -> Weight { - (28_950_000 as Weight) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + Weight::from_ref_time(28_950_000) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Membership StakingAccountIdMemberStatus (r:1 w:1) // Storage: Membership MembershipById (r:1 w:0) // Storage: Balances Locks (r:1 w:1) // Storage: System Account (r:1 w:1) fn add_staking_account_candidate() -> Weight { - (95_410_000 as Weight) - .saturating_add(T::DbWeight::get().reads(4 as Weight)) - .saturating_add(T::DbWeight::get().writes(3 as Weight)) + Weight::from_ref_time(95_410_000) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) } // Storage: Membership MembershipById (r:1 w:0) // Storage: Membership StakingAccountIdMemberStatus (r:1 w:1) fn confirm_staking_account() -> Weight { - (63_590_000 as Weight) - .saturating_add(T::DbWeight::get().reads(2 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + Weight::from_ref_time(63_590_000) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Membership MembershipById (r:1 w:0) // Storage: Membership StakingAccountIdMemberStatus (r:1 w:1) // Storage: Balances Locks (r:1 w:1) // Storage: System Account (r:1 w:1) fn remove_staking_account() -> Weight { - (93_130_000 as Weight) - .saturating_add(T::DbWeight::get().reads(4 as Weight)) - .saturating_add(T::DbWeight::get().writes(3 as Weight)) + Weight::from_ref_time(93_130_000) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) } // Storage: Membership MembershipById (r:1 w:0) fn member_remark_without_payment() -> Weight { - (22_917_000 as Weight) - .saturating_add(T::DbWeight::get().reads(1 as Weight)) + Weight::from_ref_time(22_917_000) + .saturating_add(T::DbWeight::get().reads(1_u64)) } // Storage: Membership MembershipById (r:1 w:0) // Storage: System Account (r:2 w:2) fn member_remark_with_payment() -> Weight { - (69_370_000 as Weight) - .saturating_add(T::DbWeight::get().reads(3 as Weight)) - .saturating_add(T::DbWeight::get().writes(2 as Weight)) + Weight::from_ref_time(69_370_000) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) } // Storage: Membership MemberIdByHandleHash (r:1 w:1) // Storage: Membership InitialInvitationCount (r:1 w:0) // Storage: Membership NextMemberId (r:1 w:1) // Storage: Membership MembershipById (r:0 w:1) fn create_member(i: u32, j: u32, ) -> Weight { - (57_677_000 as Weight) + Weight::from_ref_time(57_677_000) // Standard Error: 7_000 - .saturating_add((1_831_000 as Weight).saturating_mul(i as Weight)) + .saturating_add(Weight::from_ref_time(1_831_000).saturating_mul(i.into())) // Standard Error: 8_000 - .saturating_add((813_000 as Weight).saturating_mul(j as Weight)) - .saturating_add(T::DbWeight::get().reads(3 as Weight)) - .saturating_add(T::DbWeight::get().writes(3 as Weight)) + .saturating_add(Weight::from_ref_time(813_000).saturating_mul(j.into())) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) } } // Default implementation for tests impl WeightInfo for () { fn buy_membership_without_referrer(i: u32, j: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn buy_membership_with_referrer(i: u32, j: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn update_profile(i: u32, j: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn update_accounts_none() -> Weight { - 0 + Weight::from_ref_time(0) } fn update_accounts_root() -> Weight { - 0 + Weight::from_ref_time(0) } fn update_accounts_controller() -> Weight { - 0 + Weight::from_ref_time(0) } fn update_accounts_both() -> Weight { - 0 + Weight::from_ref_time(0) } fn set_referral_cut() -> Weight { - 0 + Weight::from_ref_time(0) } fn transfer_invites() -> Weight { - 0 + Weight::from_ref_time(0) } fn invite_member(i: u32, j: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn gift_membership(i: u32, j: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn set_membership_price() -> Weight { - 0 + Weight::from_ref_time(0) } fn update_profile_verification() -> Weight { - 0 + Weight::from_ref_time(0) } fn set_leader_invitation_quota() -> Weight { - 0 + Weight::from_ref_time(0) } fn set_initial_invitation_balance() -> Weight { - 0 + Weight::from_ref_time(0) } fn set_initial_invitation_count() -> Weight { - 0 + Weight::from_ref_time(0) } fn add_staking_account_candidate() -> Weight { - 0 + Weight::from_ref_time(0) } fn confirm_staking_account() -> Weight { - 0 + Weight::from_ref_time(0) } fn remove_staking_account() -> Weight { - 0 + Weight::from_ref_time(0) } fn member_remark_with_payment() -> Weight { - 0 + Weight::from_ref_time(0) } fn member_remark_without_payment() -> Weight { - 0 + Weight::from_ref_time(0) } fn create_member(i: u32, j: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } } diff --git a/runtime-modules/project-token/src/weights.rs b/runtime-modules/project-token/src/weights.rs index f135fcd0b1..cdab62dc96 100644 --- a/runtime-modules/project-token/src/weights.rs +++ b/runtime-modules/project-token/src/weights.rs @@ -63,24 +63,24 @@ impl WeightInfo for SubstrateWeight { // Storage: Token BloatBond (r:1 w:0) // Storage: System Account (r:2 w:2) fn transfer(o: u32, m: u32, ) -> Weight { - (0 as Weight) + Weight::from_ref_time(0) // Standard Error: 7_000 - .saturating_add((16_066_000 as Weight).saturating_mul(o as Weight)) + .saturating_add(Weight::from_ref_time(16_066_000).saturating_mul(o.into())) // Standard Error: 68_000 - .saturating_add((449_000 as Weight).saturating_mul(m as Weight)) - .saturating_add(T::DbWeight::get().reads(6 as Weight)) - .saturating_add(T::DbWeight::get().reads((2 as Weight).saturating_mul(o as Weight))) - .saturating_add(T::DbWeight::get().writes(4 as Weight)) - .saturating_add(T::DbWeight::get().writes((1 as Weight).saturating_mul(o as Weight))) + .saturating_add(Weight::from_ref_time(449_000).saturating_mul(m.into())) + .saturating_add(T::DbWeight::get().reads(6_u64)) + .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(o.into()))) + .saturating_add(T::DbWeight::get().writes(4_u64)) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(o.into()))) } // Storage: Token TokenInfoById (r:1 w:1) // Storage: Token AccountInfoByTokenAndMember (r:1 w:1) // Storage: Membership MembershipById (r:1 w:0) // Storage: System Account (r:2 w:2) fn dust_account() -> Weight { - (63_410_000 as Weight) - .saturating_add(T::DbWeight::get().reads(5 as Weight)) - .saturating_add(T::DbWeight::get().writes(4 as Weight)) + Weight::from_ref_time(63_410_000) + .saturating_add(T::DbWeight::get().reads(5_u64)) + .saturating_add(T::DbWeight::get().writes(4_u64)) } // Storage: Membership MembershipById (r:1 w:0) // Storage: Token TokenInfoById (r:1 w:1) @@ -88,11 +88,11 @@ impl WeightInfo for SubstrateWeight { // Storage: Token BloatBond (r:1 w:0) // Storage: System Account (r:2 w:2) fn join_whitelist(h: u32, ) -> Weight { - (81_601_000 as Weight) + Weight::from_ref_time(81_601_000) // Standard Error: 23_000 - .saturating_add((1_010_000 as Weight).saturating_mul(h as Weight)) - .saturating_add(T::DbWeight::get().reads(6 as Weight)) - .saturating_add(T::DbWeight::get().writes(4 as Weight)) + .saturating_add(Weight::from_ref_time(1_010_000).saturating_mul(h.into())) + .saturating_add(T::DbWeight::get().reads(6_u64)) + .saturating_add(T::DbWeight::get().writes(4_u64)) } // Storage: Membership MembershipById (r:1 w:0) // Storage: Token TokenInfoById (r:1 w:1) @@ -101,58 +101,58 @@ impl WeightInfo for SubstrateWeight { // Storage: Token BloatBond (r:1 w:0) // Storage: System Account (r:3 w:3) fn purchase_tokens_on_sale() -> Weight { - (112_750_000 as Weight) - .saturating_add(T::DbWeight::get().reads(8 as Weight)) - .saturating_add(T::DbWeight::get().writes(5 as Weight)) + Weight::from_ref_time(112_750_000) + .saturating_add(T::DbWeight::get().reads(8_u64)) + .saturating_add(T::DbWeight::get().writes(5_u64)) } // Storage: Membership MembershipById (r:1 w:0) // Storage: Token TokenInfoById (r:1 w:1) // Storage: Token AccountInfoByTokenAndMember (r:1 w:1) // Storage: System Account (r:2 w:2) fn participate_in_split() -> Weight { - (76_310_000 as Weight) - .saturating_add(T::DbWeight::get().reads(5 as Weight)) - .saturating_add(T::DbWeight::get().writes(4 as Weight)) + Weight::from_ref_time(76_310_000) + .saturating_add(T::DbWeight::get().reads(5_u64)) + .saturating_add(T::DbWeight::get().writes(4_u64)) } // Storage: Membership MembershipById (r:1 w:0) // Storage: Token TokenInfoById (r:1 w:0) // Storage: Token AccountInfoByTokenAndMember (r:1 w:1) fn exit_revenue_split() -> Weight { - (42_400_000 as Weight) - .saturating_add(T::DbWeight::get().reads(3 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + Weight::from_ref_time(42_400_000) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Membership MembershipById (r:1 w:0) // Storage: Token TokenInfoById (r:1 w:1) // Storage: Token AccountInfoByTokenAndMember (r:1 w:1) fn burn() -> Weight { - (43_910_000 as Weight) - .saturating_add(T::DbWeight::get().reads(3 as Weight)) - .saturating_add(T::DbWeight::get().writes(2 as Weight)) + Weight::from_ref_time(43_910_000) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) } } // Default implementation for tests impl WeightInfo for () { fn transfer(o: u32, m: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn dust_account() -> Weight { - 0 + Weight::from_ref_time(0) } fn join_whitelist(h: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn purchase_tokens_on_sale() -> Weight { - 0 + Weight::from_ref_time(0) } fn participate_in_split() -> Weight { - 0 + Weight::from_ref_time(0) } fn exit_revenue_split() -> Weight { - 0 + Weight::from_ref_time(0) } fn burn() -> Weight { - 0 + Weight::from_ref_time(0) } } diff --git a/runtime-modules/proposals/codex/src/weights.rs b/runtime-modules/proposals/codex/src/weights.rs index f19e784d37..3fb2b344bd 100644 --- a/runtime-modules/proposals/codex/src/weights.rs +++ b/runtime-modules/proposals/codex/src/weights.rs @@ -84,15 +84,15 @@ impl WeightInfo for SubstrateWeight { // Storage: ProposalEngine Proposals (r:0 w:1) // Storage: ProposalEngine DispatchableCallCode (r:0 w:1) fn create_proposal_signal(i: u32, t: u32, d: u32, ) -> Weight { - (119_338_000 as Weight) + Weight::from_ref_time(119_338_000) // Standard Error: 8_000 - .saturating_add((1_874_000 as Weight).saturating_mul(i as Weight)) + .saturating_add(Weight::from_ref_time(1_874_000).saturating_mul(i.into())) // Standard Error: 66_000 - .saturating_add((832_000 as Weight).saturating_mul(t as Weight)) + .saturating_add(Weight::from_ref_time(832_000).saturating_mul(t_u64)) // Standard Error: 66_000 - .saturating_add((1_020_000 as Weight).saturating_mul(d as Weight)) - .saturating_add(T::DbWeight::get().reads(7 as Weight)) - .saturating_add(T::DbWeight::get().writes(9 as Weight)) + .saturating_add(Weight::from_ref_time(1_020_000).saturating_mul(d.into())) + .saturating_add(T::DbWeight::get().reads(7_u64)) + .saturating_add(T::DbWeight::get().writes(9_u64)) } // Storage: Membership MembershipById (r:1 w:0) // Storage: ProposalEngine ActiveProposalCount (r:1 w:1) @@ -106,15 +106,15 @@ impl WeightInfo for SubstrateWeight { // Storage: ProposalEngine Proposals (r:0 w:1) // Storage: ProposalEngine DispatchableCallCode (r:0 w:1) fn create_proposal_runtime_upgrade(i: u32, t: u32, d: u32, ) -> Weight { - (114_863_000 as Weight) + Weight::from_ref_time(114_863_000) // Standard Error: 5_000 - .saturating_add((1_891_000 as Weight).saturating_mul(i as Weight)) + .saturating_add(Weight::from_ref_time(1_891_000).saturating_mul(i.into())) // Standard Error: 46_000 - .saturating_add((855_000 as Weight).saturating_mul(t as Weight)) + .saturating_add(Weight::from_ref_time(855_000).saturating_mul(t_u64)) // Standard Error: 46_000 - .saturating_add((1_089_000 as Weight).saturating_mul(d as Weight)) - .saturating_add(T::DbWeight::get().reads(7 as Weight)) - .saturating_add(T::DbWeight::get().writes(9 as Weight)) + .saturating_add(Weight::from_ref_time(1_089_000).saturating_mul(d.into())) + .saturating_add(T::DbWeight::get().reads(7_u64)) + .saturating_add(T::DbWeight::get().writes(9_u64)) } // Storage: Membership MembershipById (r:1 w:0) // Storage: ProposalEngine ActiveProposalCount (r:1 w:1) @@ -128,13 +128,13 @@ impl WeightInfo for SubstrateWeight { // Storage: ProposalEngine Proposals (r:0 w:1) // Storage: ProposalEngine DispatchableCallCode (r:0 w:1) fn create_proposal_funding_request(_i: u32, t: u32, d: u32, ) -> Weight { - (106_889_000 as Weight) + Weight::from_ref_time(106_889_000) // Standard Error: 25_000 - .saturating_add((1_318_000 as Weight).saturating_mul(t as Weight)) + .saturating_add(Weight::from_ref_time(1_318_000).saturating_mul(t_u64)) // Standard Error: 25_000 - .saturating_add((1_443_000 as Weight).saturating_mul(d as Weight)) - .saturating_add(T::DbWeight::get().reads(7 as Weight)) - .saturating_add(T::DbWeight::get().writes(9 as Weight)) + .saturating_add(Weight::from_ref_time(1_443_000).saturating_mul(d.into())) + .saturating_add(T::DbWeight::get().reads(7_u64)) + .saturating_add(T::DbWeight::get().writes(9_u64)) } // Storage: Staking MinimumValidatorCount (r:1 w:0) // Storage: Membership MembershipById (r:1 w:0) @@ -149,13 +149,13 @@ impl WeightInfo for SubstrateWeight { // Storage: ProposalEngine Proposals (r:0 w:1) // Storage: ProposalEngine DispatchableCallCode (r:0 w:1) fn create_proposal_set_max_validator_count(t: u32, d: u32, ) -> Weight { - (100_376_000 as Weight) + Weight::from_ref_time(100_376_000) // Standard Error: 21_000 - .saturating_add((1_312_000 as Weight).saturating_mul(t as Weight)) + .saturating_add(Weight::from_ref_time(1_312_000).saturating_mul(t_u64)) // Standard Error: 21_000 - .saturating_add((1_472_000 as Weight).saturating_mul(d as Weight)) - .saturating_add(T::DbWeight::get().reads(8 as Weight)) - .saturating_add(T::DbWeight::get().writes(9 as Weight)) + .saturating_add(Weight::from_ref_time(1_472_000).saturating_mul(d.into())) + .saturating_add(T::DbWeight::get().reads(8_u64)) + .saturating_add(T::DbWeight::get().writes(9_u64)) } // Storage: ProposalEngine Proposals (r:1 w:1) // Storage: Membership MembershipById (r:1 w:0) @@ -169,13 +169,13 @@ impl WeightInfo for SubstrateWeight { // Storage: ProposalDiscussion ThreadById (r:0 w:1) // Storage: ProposalEngine DispatchableCallCode (r:0 w:1) fn create_proposal_veto_proposal(t: u32, d: u32, ) -> Weight { - (115_318_000 as Weight) + Weight::from_ref_time(115_318_000) // Standard Error: 47_000 - .saturating_add((1_112_000 as Weight).saturating_mul(t as Weight)) + .saturating_add(Weight::from_ref_time(1_112_000).saturating_mul(t_u64)) // Standard Error: 47_000 - .saturating_add((1_334_000 as Weight).saturating_mul(d as Weight)) - .saturating_add(T::DbWeight::get().reads(8 as Weight)) - .saturating_add(T::DbWeight::get().writes(9 as Weight)) + .saturating_add(Weight::from_ref_time(1_334_000).saturating_mul(d.into())) + .saturating_add(T::DbWeight::get().reads(8_u64)) + .saturating_add(T::DbWeight::get().writes(9_u64)) } // Storage: Membership MembershipById (r:1 w:0) // Storage: ProposalEngine ActiveProposalCount (r:1 w:1) @@ -189,15 +189,15 @@ impl WeightInfo for SubstrateWeight { // Storage: ProposalEngine Proposals (r:0 w:1) // Storage: ProposalEngine DispatchableCallCode (r:0 w:1) fn create_proposal_create_working_group_lead_opening(i: u32, t: u32, d: u32, ) -> Weight { - (117_180_000 as Weight) + Weight::from_ref_time(117_180_000) // Standard Error: 5_000 - .saturating_add((2_020_000 as Weight).saturating_mul(i as Weight)) + .saturating_add(Weight::from_ref_time(2_020_000).saturating_mul(i.into())) // Standard Error: 42_000 - .saturating_add((810_000 as Weight).saturating_mul(t as Weight)) + .saturating_add(Weight::from_ref_time(810_000).saturating_mul(t_u64)) // Standard Error: 42_000 - .saturating_add((1_044_000 as Weight).saturating_mul(d as Weight)) - .saturating_add(T::DbWeight::get().reads(7 as Weight)) - .saturating_add(T::DbWeight::get().writes(9 as Weight)) + .saturating_add(Weight::from_ref_time(1_044_000).saturating_mul(d.into())) + .saturating_add(T::DbWeight::get().reads(7_u64)) + .saturating_add(T::DbWeight::get().writes(9_u64)) } // Storage: Instance1WorkingGroup OpeningById (r:1 w:0) // Storage: Instance1WorkingGroup ApplicationById (r:1 w:0) @@ -213,13 +213,13 @@ impl WeightInfo for SubstrateWeight { // Storage: ProposalEngine Proposals (r:0 w:1) // Storage: ProposalEngine DispatchableCallCode (r:0 w:1) fn create_proposal_fill_working_group_lead_opening(t: u32, d: u32, ) -> Weight { - (118_975_000 as Weight) + Weight::from_ref_time(118_975_000) // Standard Error: 38_000 - .saturating_add((1_264_000 as Weight).saturating_mul(t as Weight)) + .saturating_add(Weight::from_ref_time(1_264_000).saturating_mul(t_u64)) // Standard Error: 38_000 - .saturating_add((1_302_000 as Weight).saturating_mul(d as Weight)) - .saturating_add(T::DbWeight::get().reads(9 as Weight)) - .saturating_add(T::DbWeight::get().writes(9 as Weight)) + .saturating_add(Weight::from_ref_time(1_302_000).saturating_mul(d.into())) + .saturating_add(T::DbWeight::get().reads(9_u64)) + .saturating_add(T::DbWeight::get().writes(9_u64)) } // Storage: Membership MembershipById (r:1 w:0) // Storage: ProposalEngine ActiveProposalCount (r:1 w:1) @@ -233,13 +233,13 @@ impl WeightInfo for SubstrateWeight { // Storage: ProposalEngine Proposals (r:0 w:1) // Storage: ProposalEngine DispatchableCallCode (r:0 w:1) fn create_proposal_update_working_group_budget(t: u32, d: u32, ) -> Weight { - (99_672_000 as Weight) + Weight::from_ref_time(99_672_000) // Standard Error: 26_000 - .saturating_add((1_222_000 as Weight).saturating_mul(t as Weight)) + .saturating_add(Weight::from_ref_time(1_222_000).saturating_mul(t_u64)) // Standard Error: 26_000 - .saturating_add((1_351_000 as Weight).saturating_mul(d as Weight)) - .saturating_add(T::DbWeight::get().reads(7 as Weight)) - .saturating_add(T::DbWeight::get().writes(9 as Weight)) + .saturating_add(Weight::from_ref_time(1_351_000).saturating_mul(d.into())) + .saturating_add(T::DbWeight::get().reads(7_u64)) + .saturating_add(T::DbWeight::get().writes(9_u64)) } // Storage: Instance1WorkingGroup CurrentLead (r:1 w:0) // Storage: Membership MembershipById (r:1 w:0) @@ -254,13 +254,13 @@ impl WeightInfo for SubstrateWeight { // Storage: ProposalEngine Proposals (r:0 w:1) // Storage: ProposalEngine DispatchableCallCode (r:0 w:1) fn create_proposal_decrease_working_group_lead_stake(t: u32, d: u32, ) -> Weight { - (103_629_000 as Weight) + Weight::from_ref_time(103_629_000) // Standard Error: 19_000 - .saturating_add((1_255_000 as Weight).saturating_mul(t as Weight)) + .saturating_add(Weight::from_ref_time(1_255_000).saturating_mul(t_u64)) // Standard Error: 19_000 - .saturating_add((1_435_000 as Weight).saturating_mul(d as Weight)) - .saturating_add(T::DbWeight::get().reads(8 as Weight)) - .saturating_add(T::DbWeight::get().writes(9 as Weight)) + .saturating_add(Weight::from_ref_time(1_435_000).saturating_mul(d.into())) + .saturating_add(T::DbWeight::get().reads(8_u64)) + .saturating_add(T::DbWeight::get().writes(9_u64)) } // Storage: Instance1WorkingGroup CurrentLead (r:1 w:0) // Storage: Membership MembershipById (r:1 w:0) @@ -275,13 +275,13 @@ impl WeightInfo for SubstrateWeight { // Storage: ProposalEngine Proposals (r:0 w:1) // Storage: ProposalEngine DispatchableCallCode (r:0 w:1) fn create_proposal_slash_working_group_lead(t: u32, d: u32, ) -> Weight { - (103_453_000 as Weight) + Weight::from_ref_time(103_453_000) // Standard Error: 26_000 - .saturating_add((1_326_000 as Weight).saturating_mul(t as Weight)) + .saturating_add(Weight::from_ref_time(1_326_000).saturating_mul(t_u64)) // Standard Error: 26_000 - .saturating_add((1_418_000 as Weight).saturating_mul(d as Weight)) - .saturating_add(T::DbWeight::get().reads(8 as Weight)) - .saturating_add(T::DbWeight::get().writes(9 as Weight)) + .saturating_add(Weight::from_ref_time(1_418_000).saturating_mul(d.into())) + .saturating_add(T::DbWeight::get().reads(8_u64)) + .saturating_add(T::DbWeight::get().writes(9_u64)) } // Storage: Instance1WorkingGroup CurrentLead (r:1 w:0) // Storage: Membership MembershipById (r:1 w:0) @@ -296,13 +296,13 @@ impl WeightInfo for SubstrateWeight { // Storage: ProposalEngine Proposals (r:0 w:1) // Storage: ProposalEngine DispatchableCallCode (r:0 w:1) fn create_proposal_set_working_group_lead_reward(t: u32, d: u32, ) -> Weight { - (99_679_000 as Weight) + Weight::from_ref_time(99_679_000) // Standard Error: 37_000 - .saturating_add((1_417_000 as Weight).saturating_mul(t as Weight)) + .saturating_add(Weight::from_ref_time(1_417_000).saturating_mul(t_u64)) // Standard Error: 37_000 - .saturating_add((1_621_000 as Weight).saturating_mul(d as Weight)) - .saturating_add(T::DbWeight::get().reads(8 as Weight)) - .saturating_add(T::DbWeight::get().writes(9 as Weight)) + .saturating_add(Weight::from_ref_time(1_621_000).saturating_mul(d.into())) + .saturating_add(T::DbWeight::get().reads(8_u64)) + .saturating_add(T::DbWeight::get().writes(9_u64)) } // Storage: Instance1WorkingGroup CurrentLead (r:1 w:0) // Storage: Membership MembershipById (r:1 w:0) @@ -317,13 +317,13 @@ impl WeightInfo for SubstrateWeight { // Storage: ProposalEngine Proposals (r:0 w:1) // Storage: ProposalEngine DispatchableCallCode (r:0 w:1) fn create_proposal_terminate_working_group_lead(t: u32, d: u32, ) -> Weight { - (102_435_000 as Weight) + Weight::from_ref_time(102_435_000) // Standard Error: 23_000 - .saturating_add((1_320_000 as Weight).saturating_mul(t as Weight)) + .saturating_add(Weight::from_ref_time(1_320_000).saturating_mul(t_u64)) // Standard Error: 23_000 - .saturating_add((1_501_000 as Weight).saturating_mul(d as Weight)) - .saturating_add(T::DbWeight::get().reads(8 as Weight)) - .saturating_add(T::DbWeight::get().writes(9 as Weight)) + .saturating_add(Weight::from_ref_time(1_501_000).saturating_mul(d.into())) + .saturating_add(T::DbWeight::get().reads(8_u64)) + .saturating_add(T::DbWeight::get().writes(9_u64)) } // Storage: Membership MembershipById (r:1 w:0) // Storage: ProposalEngine ActiveProposalCount (r:1 w:1) @@ -337,15 +337,15 @@ impl WeightInfo for SubstrateWeight { // Storage: ProposalEngine Proposals (r:0 w:1) // Storage: ProposalEngine DispatchableCallCode (r:0 w:1) fn create_proposal_amend_constitution(i: u32, t: u32, d: u32, ) -> Weight { - (118_339_000 as Weight) + Weight::from_ref_time(118_339_000) // Standard Error: 5_000 - .saturating_add((1_853_000 as Weight).saturating_mul(i as Weight)) + .saturating_add(Weight::from_ref_time(1_853_000).saturating_mul(i.into())) // Standard Error: 45_000 - .saturating_add((837_000 as Weight).saturating_mul(t as Weight)) + .saturating_add(Weight::from_ref_time(837_000).saturating_mul(t_u64)) // Standard Error: 45_000 - .saturating_add((974_000 as Weight).saturating_mul(d as Weight)) - .saturating_add(T::DbWeight::get().reads(7 as Weight)) - .saturating_add(T::DbWeight::get().writes(9 as Weight)) + .saturating_add(Weight::from_ref_time(974_000).saturating_mul(d.into())) + .saturating_add(T::DbWeight::get().reads(7_u64)) + .saturating_add(T::DbWeight::get().writes(9_u64)) } // Storage: Instance1WorkingGroup OpeningById (r:1 w:0) // Storage: Membership MembershipById (r:1 w:0) @@ -360,13 +360,13 @@ impl WeightInfo for SubstrateWeight { // Storage: ProposalEngine Proposals (r:0 w:1) // Storage: ProposalEngine DispatchableCallCode (r:0 w:1) fn create_proposal_cancel_working_group_lead_opening(t: u32, d: u32, ) -> Weight { - (109_349_000 as Weight) + Weight::from_ref_time(109_349_000) // Standard Error: 38_000 - .saturating_add((1_247_000 as Weight).saturating_mul(t as Weight)) + .saturating_add(Weight::from_ref_time(1_247_000).saturating_mul(t_u64)) // Standard Error: 38_000 - .saturating_add((1_240_000 as Weight).saturating_mul(d as Weight)) - .saturating_add(T::DbWeight::get().reads(8 as Weight)) - .saturating_add(T::DbWeight::get().writes(9 as Weight)) + .saturating_add(Weight::from_ref_time(1_240_000).saturating_mul(d.into())) + .saturating_add(T::DbWeight::get().reads(8_u64)) + .saturating_add(T::DbWeight::get().writes(9_u64)) } // Storage: Membership MembershipById (r:1 w:0) // Storage: ProposalEngine ActiveProposalCount (r:1 w:1) @@ -380,13 +380,13 @@ impl WeightInfo for SubstrateWeight { // Storage: ProposalEngine Proposals (r:0 w:1) // Storage: ProposalEngine DispatchableCallCode (r:0 w:1) fn create_proposal_set_membership_price(t: u32, d: u32, ) -> Weight { - (95_468_000 as Weight) + Weight::from_ref_time(95_468_000) // Standard Error: 34_000 - .saturating_add((1_383_000 as Weight).saturating_mul(t as Weight)) + .saturating_add(Weight::from_ref_time(1_383_000).saturating_mul(t_u64)) // Standard Error: 34_000 - .saturating_add((1_501_000 as Weight).saturating_mul(d as Weight)) - .saturating_add(T::DbWeight::get().reads(7 as Weight)) - .saturating_add(T::DbWeight::get().writes(9 as Weight)) + .saturating_add(Weight::from_ref_time(1_501_000).saturating_mul(d.into())) + .saturating_add(T::DbWeight::get().reads(7_u64)) + .saturating_add(T::DbWeight::get().writes(9_u64)) } // Storage: Membership MembershipById (r:1 w:0) // Storage: ProposalEngine ActiveProposalCount (r:1 w:1) @@ -400,13 +400,13 @@ impl WeightInfo for SubstrateWeight { // Storage: ProposalEngine Proposals (r:0 w:1) // Storage: ProposalEngine DispatchableCallCode (r:0 w:1) fn create_proposal_set_council_budget_increment(t: u32, d: u32, ) -> Weight { - (97_264_000 as Weight) + Weight::from_ref_time(97_264_000) // Standard Error: 19_000 - .saturating_add((1_261_000 as Weight).saturating_mul(t as Weight)) + .saturating_add(Weight::from_ref_time(1_261_000).saturating_mul(t_u64)) // Standard Error: 19_000 - .saturating_add((1_439_000 as Weight).saturating_mul(d as Weight)) - .saturating_add(T::DbWeight::get().reads(7 as Weight)) - .saturating_add(T::DbWeight::get().writes(9 as Weight)) + .saturating_add(Weight::from_ref_time(1_439_000).saturating_mul(d.into())) + .saturating_add(T::DbWeight::get().reads(7_u64)) + .saturating_add(T::DbWeight::get().writes(9_u64)) } // Storage: Membership MembershipById (r:1 w:0) // Storage: ProposalEngine ActiveProposalCount (r:1 w:1) @@ -420,13 +420,13 @@ impl WeightInfo for SubstrateWeight { // Storage: ProposalEngine Proposals (r:0 w:1) // Storage: ProposalEngine DispatchableCallCode (r:0 w:1) fn create_proposal_set_councilor_reward(t: u32, d: u32, ) -> Weight { - (97_564_000 as Weight) + Weight::from_ref_time(97_564_000) // Standard Error: 18_000 - .saturating_add((1_259_000 as Weight).saturating_mul(t as Weight)) + .saturating_add(Weight::from_ref_time(1_259_000).saturating_mul(t_u64)) // Standard Error: 18_000 - .saturating_add((1_422_000 as Weight).saturating_mul(d as Weight)) - .saturating_add(T::DbWeight::get().reads(7 as Weight)) - .saturating_add(T::DbWeight::get().writes(9 as Weight)) + .saturating_add(Weight::from_ref_time(1_422_000).saturating_mul(d.into())) + .saturating_add(T::DbWeight::get().reads(7_u64)) + .saturating_add(T::DbWeight::get().writes(9_u64)) } // Storage: Membership MembershipById (r:1 w:0) // Storage: ProposalEngine ActiveProposalCount (r:1 w:1) @@ -440,13 +440,13 @@ impl WeightInfo for SubstrateWeight { // Storage: ProposalEngine Proposals (r:0 w:1) // Storage: ProposalEngine DispatchableCallCode (r:0 w:1) fn create_proposal_set_initial_invitation_balance(t: u32, d: u32, ) -> Weight { - (98_633_000 as Weight) + Weight::from_ref_time(98_633_000) // Standard Error: 25_000 - .saturating_add((1_198_000 as Weight).saturating_mul(t as Weight)) + .saturating_add(Weight::from_ref_time(1_198_000).saturating_mul(t_u64)) // Standard Error: 25_000 - .saturating_add((1_442_000 as Weight).saturating_mul(d as Weight)) - .saturating_add(T::DbWeight::get().reads(7 as Weight)) - .saturating_add(T::DbWeight::get().writes(9 as Weight)) + .saturating_add(Weight::from_ref_time(1_442_000).saturating_mul(d.into())) + .saturating_add(T::DbWeight::get().reads(7_u64)) + .saturating_add(T::DbWeight::get().writes(9_u64)) } // Storage: Membership MembershipById (r:1 w:0) // Storage: ProposalEngine ActiveProposalCount (r:1 w:1) @@ -460,13 +460,13 @@ impl WeightInfo for SubstrateWeight { // Storage: ProposalEngine Proposals (r:0 w:1) // Storage: ProposalEngine DispatchableCallCode (r:0 w:1) fn create_proposal_set_initial_invitation_count(t: u32, d: u32, ) -> Weight { - (96_739_000 as Weight) + Weight::from_ref_time(96_739_000) // Standard Error: 30_000 - .saturating_add((1_310_000 as Weight).saturating_mul(t as Weight)) + .saturating_add(Weight::from_ref_time(1_310_000).saturating_mul(t_u64)) // Standard Error: 30_000 - .saturating_add((1_446_000 as Weight).saturating_mul(d as Weight)) - .saturating_add(T::DbWeight::get().reads(7 as Weight)) - .saturating_add(T::DbWeight::get().writes(9 as Weight)) + .saturating_add(Weight::from_ref_time(1_446_000).saturating_mul(d.into())) + .saturating_add(T::DbWeight::get().reads(7_u64)) + .saturating_add(T::DbWeight::get().writes(9_u64)) } // Storage: Membership MembershipById (r:1 w:0) // Storage: ProposalEngine ActiveProposalCount (r:1 w:1) @@ -480,13 +480,13 @@ impl WeightInfo for SubstrateWeight { // Storage: ProposalEngine Proposals (r:0 w:1) // Storage: ProposalEngine DispatchableCallCode (r:0 w:1) fn create_proposal_set_membership_lead_invitation_quota(t: u32, d: u32, ) -> Weight { - (100_502_000 as Weight) + Weight::from_ref_time(100_502_000) // Standard Error: 24_000 - .saturating_add((1_194_000 as Weight).saturating_mul(t as Weight)) + .saturating_add(Weight::from_ref_time(1_194_000).saturating_mul(t_u64)) // Standard Error: 24_000 - .saturating_add((1_306_000 as Weight).saturating_mul(d as Weight)) - .saturating_add(T::DbWeight::get().reads(7 as Weight)) - .saturating_add(T::DbWeight::get().writes(9 as Weight)) + .saturating_add(Weight::from_ref_time(1_306_000).saturating_mul(d.into())) + .saturating_add(T::DbWeight::get().reads(7_u64)) + .saturating_add(T::DbWeight::get().writes(9_u64)) } // Storage: Membership MembershipById (r:1 w:0) // Storage: ProposalEngine ActiveProposalCount (r:1 w:1) @@ -500,13 +500,13 @@ impl WeightInfo for SubstrateWeight { // Storage: ProposalEngine Proposals (r:0 w:1) // Storage: ProposalEngine DispatchableCallCode (r:0 w:1) fn create_proposal_set_referral_cut(t: u32, d: u32, ) -> Weight { - (97_395_000 as Weight) + Weight::from_ref_time(97_395_000) // Standard Error: 22_000 - .saturating_add((1_255_000 as Weight).saturating_mul(t as Weight)) + .saturating_add(Weight::from_ref_time(1_255_000).saturating_mul(t_u64)) // Standard Error: 22_000 - .saturating_add((1_448_000 as Weight).saturating_mul(d as Weight)) - .saturating_add(T::DbWeight::get().reads(7 as Weight)) - .saturating_add(T::DbWeight::get().writes(9 as Weight)) + .saturating_add(Weight::from_ref_time(1_448_000).saturating_mul(d.into())) + .saturating_add(T::DbWeight::get().reads(7_u64)) + .saturating_add(T::DbWeight::get().writes(9_u64)) } // Storage: Membership MembershipById (r:1 w:0) // Storage: ProposalEngine ActiveProposalCount (r:1 w:1) @@ -520,13 +520,13 @@ impl WeightInfo for SubstrateWeight { // Storage: ProposalEngine Proposals (r:0 w:1) // Storage: ProposalEngine DispatchableCallCode (r:0 w:1) fn create_proposal_update_global_nft_limit(t: u32, d: u32, ) -> Weight { - (95_855_000 as Weight) + Weight::from_ref_time(95_855_000) // Standard Error: 23_000 - .saturating_add((1_340_000 as Weight).saturating_mul(t as Weight)) + .saturating_add(Weight::from_ref_time(1_340_000).saturating_mul(t_u64)) // Standard Error: 23_000 - .saturating_add((1_517_000 as Weight).saturating_mul(d as Weight)) - .saturating_add(T::DbWeight::get().reads(7 as Weight)) - .saturating_add(T::DbWeight::get().writes(9 as Weight)) + .saturating_add(Weight::from_ref_time(1_517_000).saturating_mul(d.into())) + .saturating_add(T::DbWeight::get().reads(7_u64)) + .saturating_add(T::DbWeight::get().writes(9_u64)) } // Storage: Membership MembershipById (r:1 w:0) // Storage: ProposalEngine ActiveProposalCount (r:1 w:1) @@ -540,87 +540,87 @@ impl WeightInfo for SubstrateWeight { // Storage: ProposalEngine Proposals (r:0 w:1) // Storage: ProposalEngine DispatchableCallCode (r:0 w:1) fn create_proposal_update_channel_payouts(t: u32, d: u32, i: u32, ) -> Weight { - (121_494_000 as Weight) + Weight::from_ref_time(121_494_000) // Standard Error: 43_000 - .saturating_add((801_000 as Weight).saturating_mul(t as Weight)) + .saturating_add(Weight::from_ref_time(801_000).saturating_mul(t_u64)) // Standard Error: 43_000 - .saturating_add((1_010_000 as Weight).saturating_mul(d as Weight)) + .saturating_add(Weight::from_ref_time(1_010_000).saturating_mul(d.into())) // Standard Error: 6_000 - .saturating_add((1_809_000 as Weight).saturating_mul(i as Weight)) - .saturating_add(T::DbWeight::get().reads(7 as Weight)) - .saturating_add(T::DbWeight::get().writes(9 as Weight)) + .saturating_add(Weight::from_ref_time(1_809_000).saturating_mul(i.into())) + .saturating_add(T::DbWeight::get().reads(7_u64)) + .saturating_add(T::DbWeight::get().writes(9_u64)) } } // Default implementation for tests impl WeightInfo for () { fn create_proposal_signal(i: u32, t: u32, d: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn create_proposal_runtime_upgrade(i: u32, t: u32, d: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn create_proposal_funding_request(_i: u32, t: u32, d: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn create_proposal_set_max_validator_count(t: u32, d: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn create_proposal_veto_proposal(t: u32, d: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn create_proposal_create_working_group_lead_opening(i: u32, t: u32, d: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn create_proposal_fill_working_group_lead_opening(t: u32, d: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn create_proposal_update_working_group_budget(t: u32, d: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn create_proposal_decrease_working_group_lead_stake(t: u32, d: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn create_proposal_slash_working_group_lead(t: u32, d: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn create_proposal_set_working_group_lead_reward(t: u32, d: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn create_proposal_terminate_working_group_lead(t: u32, d: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn create_proposal_amend_constitution(i: u32, t: u32, d: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn create_proposal_cancel_working_group_lead_opening(t: u32, d: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn create_proposal_set_membership_price(t: u32, d: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn create_proposal_set_council_budget_increment(t: u32, d: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn create_proposal_set_councilor_reward(t: u32, d: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn create_proposal_set_initial_invitation_balance(t: u32, d: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn create_proposal_set_initial_invitation_count(t: u32, d: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn create_proposal_set_membership_lead_invitation_quota(t: u32, d: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn create_proposal_set_referral_cut(t: u32, d: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn create_proposal_update_global_nft_limit(t: u32, d: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn create_proposal_update_channel_payouts(t: u32, d: u32, i: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } } diff --git a/runtime-modules/proposals/discussion/src/weights.rs b/runtime-modules/proposals/discussion/src/weights.rs index 066786bf8a..61b8c10b04 100644 --- a/runtime-modules/proposals/discussion/src/weights.rs +++ b/runtime-modules/proposals/discussion/src/weights.rs @@ -61,56 +61,56 @@ impl WeightInfo for SubstrateWeight { // Storage: System Account (r:2 w:2) // Storage: ProposalDiscussion PostThreadIdByPostId (r:0 w:1) fn add_post(j: u32, ) -> Weight { - (197_279_000 as Weight) + Weight::from_ref_time(197_279_000) // Standard Error: 3_000 - .saturating_add((765_000 as Weight).saturating_mul(j as Weight)) - .saturating_add(T::DbWeight::get().reads(6 as Weight)) - .saturating_add(T::DbWeight::get().writes(4 as Weight)) + .saturating_add(Weight::from_ref_time(765_000).saturating_mul(j.into())) + .saturating_add(T::DbWeight::get().reads(6_u64)) + .saturating_add(T::DbWeight::get().writes(4_u64)) } // Storage: ProposalDiscussion ThreadById (r:1 w:0) // Storage: ProposalDiscussion PostThreadIdByPostId (r:1 w:1) // Storage: Membership MembershipById (r:1 w:0) fn update_post(j: u32, ) -> Weight { - (68_938_000 as Weight) + Weight::from_ref_time(68_938_000) // Standard Error: 2_000 - .saturating_add((735_000 as Weight).saturating_mul(j as Weight)) - .saturating_add(T::DbWeight::get().reads(3 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + .saturating_add(Weight::from_ref_time(735_000).saturating_mul(j.into())) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Membership MembershipById (r:1 w:0) // Storage: ProposalDiscussion PostThreadIdByPostId (r:1 w:1) // Storage: ProposalDiscussion ThreadById (r:1 w:0) // Storage: System Account (r:2 w:2) fn delete_post() -> Weight { - (122_960_000 as Weight) - .saturating_add(T::DbWeight::get().reads(5 as Weight)) - .saturating_add(T::DbWeight::get().writes(3 as Weight)) + Weight::from_ref_time(122_960_000) + .saturating_add(T::DbWeight::get().reads(5_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) } // Storage: Membership MembershipById (r:1 w:0) // Storage: ProposalDiscussion ThreadById (r:1 w:1) // Storage: Council CouncilMembers (r:1 w:0) fn change_thread_mode(i: u32, ) -> Weight { - (72_501_000 as Weight) + Weight::from_ref_time(72_501_000) // Standard Error: 34_000 - .saturating_add((10_896_000 as Weight).saturating_mul(i as Weight)) - .saturating_add(T::DbWeight::get().reads(2 as Weight)) - .saturating_add(T::DbWeight::get().reads((1 as Weight).saturating_mul(i as Weight))) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + .saturating_add(Weight::from_ref_time(10_896_000).saturating_mul(i.into())) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) + .saturating_add(T::DbWeight::get().writes(1_u64)) } } // Default implementation for tests impl WeightInfo for () { fn add_post(j: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn update_post(j: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn delete_post() -> Weight { - 0 + Weight::from_ref_time(0) } fn change_thread_mode(i: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } } diff --git a/runtime-modules/proposals/engine/src/weights.rs b/runtime-modules/proposals/engine/src/weights.rs index 76f33cde3c..1e3021d106 100644 --- a/runtime-modules/proposals/engine/src/weights.rs +++ b/runtime-modules/proposals/engine/src/weights.rs @@ -65,11 +65,11 @@ impl WeightInfo for SubstrateWeight { // Storage: ProposalEngine Proposals (r:1 w:1) // Storage: ProposalEngine VoteExistsByProposalByVoter (r:1 w:1) fn vote(i: u32, ) -> Weight { - (47_888_000 as Weight) + Weight::from_ref_time(47_888_000) // Standard Error: 1_000 - .saturating_add((675_000 as Weight).saturating_mul(i as Weight)) - .saturating_add(T::DbWeight::get().reads(4 as Weight)) - .saturating_add(T::DbWeight::get().writes(2 as Weight)) + .saturating_add(Weight::from_ref_time(675_000).saturating_mul(i.into())) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) } // Storage: Membership MembershipById (r:1 w:0) // Storage: ProposalEngine Proposals (r:1 w:1) @@ -80,9 +80,9 @@ impl WeightInfo for SubstrateWeight { // Storage: ProposalDiscussion ThreadById (r:0 w:1) // Storage: ProposalEngine DispatchableCallCode (r:0 w:1) fn cancel_proposal() -> Weight { - (98_790_000 as Weight) - .saturating_add(T::DbWeight::get().reads(5 as Weight)) - .saturating_add(T::DbWeight::get().writes(7 as Weight)) + Weight::from_ref_time(98_790_000) + .saturating_add(T::DbWeight::get().reads(5_u64)) + .saturating_add(T::DbWeight::get().writes(7_u64)) } // Storage: ProposalEngine Proposals (r:1 w:1) // Storage: Balances Locks (r:1 w:1) @@ -92,15 +92,15 @@ impl WeightInfo for SubstrateWeight { // Storage: ProposalDiscussion ThreadById (r:0 w:1) // Storage: ProposalEngine DispatchableCallCode (r:0 w:1) fn veto_proposal() -> Weight { - (53_520_000 as Weight) - .saturating_add(T::DbWeight::get().reads(4 as Weight)) - .saturating_add(T::DbWeight::get().writes(7 as Weight)) + Weight::from_ref_time(53_520_000) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(7_u64)) } // Storage: Membership MembershipById (r:1 w:0) // Storage: ProposalEngine Proposals (r:1 w:0) fn proposer_remark() -> Weight { - (24_591_000 as Weight) - .saturating_add(T::DbWeight::get().reads(2 as Weight)) + Weight::from_ref_time(24_591_000) + .saturating_add(T::DbWeight::get().reads(2_u64)) } // Storage: ProposalEngine Proposals (r:2 w:1) // Storage: Council CouncilMembers (r:1 w:0) @@ -112,13 +112,13 @@ impl WeightInfo for SubstrateWeight { // Storage: ProposalDiscussion ThreadById (r:0 w:1) // Storage: ProposalEngine VoteExistsByProposalByVoter (r:0 w:1) fn on_initialize_immediate_execution_decode_fails(i: u32, ) -> Weight { - (26_040_000 as Weight) + Weight::from_ref_time(26_040_000) // Standard Error: 64_000 - .saturating_add((61_934_000 as Weight).saturating_mul(i as Weight)) - .saturating_add(T::DbWeight::get().reads(3 as Weight)) - .saturating_add(T::DbWeight::get().reads((4 as Weight).saturating_mul(i as Weight))) - .saturating_add(T::DbWeight::get().writes(2 as Weight)) - .saturating_add(T::DbWeight::get().writes((6 as Weight).saturating_mul(i as Weight))) + .saturating_add(Weight::from_ref_time(61_934_000).saturating_mul(i.into())) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().reads((4_u64).saturating_mul(i.into()))) + .saturating_add(T::DbWeight::get().writes(2_u64)) + .saturating_add(T::DbWeight::get().writes((6_u64).saturating_mul(i.into()))) } // Storage: ProposalEngine Proposals (r:2 w:1) // Storage: ProposalEngine DispatchableCallCode (r:1 w:1) @@ -127,23 +127,23 @@ impl WeightInfo for SubstrateWeight { // Storage: ProposalDiscussion ThreadById (r:0 w:1) // Storage: ProposalEngine VoteExistsByProposalByVoter (r:0 w:1) fn on_initialize_pending_execution_decode_fails(i: u32, ) -> Weight { - (21_694_000 as Weight) + Weight::from_ref_time(21_694_000) // Standard Error: 56_000 - .saturating_add((32_464_000 as Weight).saturating_mul(i as Weight)) - .saturating_add(T::DbWeight::get().reads(2 as Weight)) - .saturating_add(T::DbWeight::get().reads((2 as Weight).saturating_mul(i as Weight))) - .saturating_add(T::DbWeight::get().writes(2 as Weight)) - .saturating_add(T::DbWeight::get().writes((4 as Weight).saturating_mul(i as Weight))) + .saturating_add(Weight::from_ref_time(32_464_000).saturating_mul(i.into())) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(i.into()))) + .saturating_add(T::DbWeight::get().writes(2_u64)) + .saturating_add(T::DbWeight::get().writes((4_u64).saturating_mul(i.into()))) } // Storage: ProposalEngine Proposals (r:2 w:1) // Storage: Council CouncilMembers (r:1 w:0) fn on_initialize_approved_pending_constitutionality(i: u32, ) -> Weight { - (28_472_000 as Weight) + Weight::from_ref_time(28_472_000_u64) // Standard Error: 31_000 - .saturating_add((21_495_000 as Weight).saturating_mul(i as Weight)) - .saturating_add(T::DbWeight::get().reads(2 as Weight)) - .saturating_add(T::DbWeight::get().reads((1 as Weight).saturating_mul(i as Weight))) - .saturating_add(T::DbWeight::get().writes((1 as Weight).saturating_mul(i as Weight))) + .saturating_add(Weight::from_ref_time(21_495_000).saturating_mul(i.into())) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) } // Storage: ProposalEngine Proposals (r:2 w:1) // Storage: Council CouncilMembers (r:1 w:0) @@ -155,13 +155,13 @@ impl WeightInfo for SubstrateWeight { // Storage: ProposalEngine VoteExistsByProposalByVoter (r:0 w:3) // Storage: ProposalEngine DispatchableCallCode (r:0 w:1) fn on_initialize_rejected(i: u32, ) -> Weight { - (26_645_000 as Weight) + Weight::from_ref_time(26_645_000) // Standard Error: 81_000 - .saturating_add((84_339_000 as Weight).saturating_mul(i as Weight)) - .saturating_add(T::DbWeight::get().reads(3 as Weight)) - .saturating_add(T::DbWeight::get().reads((3 as Weight).saturating_mul(i as Weight))) - .saturating_add(T::DbWeight::get().writes(2 as Weight)) - .saturating_add(T::DbWeight::get().writes((8 as Weight).saturating_mul(i as Weight))) + .saturating_add(Weight::from_ref_time(84_339_000).saturating_mul(i.into())) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(i.into()))) + .saturating_add(T::DbWeight::get().writes(2_u64)) + .saturating_add(T::DbWeight::get().writes((8_u64).saturating_mul(i.into()))) } // Storage: ProposalEngine Proposals (r:2 w:1) // Storage: Council CouncilMembers (r:1 w:0) @@ -173,13 +173,13 @@ impl WeightInfo for SubstrateWeight { // Storage: ProposalEngine VoteExistsByProposalByVoter (r:0 w:3) // Storage: ProposalEngine DispatchableCallCode (r:0 w:1) fn on_initialize_slashed(i: u32, ) -> Weight { - (30_142_000 as Weight) + Weight::from_ref_time(30_142_000) // Standard Error: 66_000 - .saturating_add((74_001_000 as Weight).saturating_mul(i as Weight)) - .saturating_add(T::DbWeight::get().reads(3 as Weight)) - .saturating_add(T::DbWeight::get().reads((3 as Weight).saturating_mul(i as Weight))) - .saturating_add(T::DbWeight::get().writes(2 as Weight)) - .saturating_add(T::DbWeight::get().writes((8 as Weight).saturating_mul(i as Weight))) + .saturating_add(Weight::from_ref_time(74_001_000).saturating_mul(i.into())) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(i.into()))) + .saturating_add(T::DbWeight::get().writes(2_u64)) + .saturating_add(T::DbWeight::get().writes((8_u64).saturating_mul(i.into()))) } // Storage: ProposalEngine ActiveProposalCount (r:1 w:1) // Storage: ProposalEngine Proposals (r:2 w:1) @@ -190,46 +190,46 @@ impl WeightInfo for SubstrateWeight { // Storage: ProposalEngine VoteExistsByProposalByVoter (r:0 w:3) // Storage: ProposalEngine DispatchableCallCode (r:0 w:1) fn cancel_active_and_pending_proposals(i: u32, ) -> Weight { - (20_266_000 as Weight) + Weight::from_ref_time(20_266_000) // Standard Error: 83_000 - .saturating_add((49_225_000 as Weight).saturating_mul(i as Weight)) - .saturating_add(T::DbWeight::get().reads(2 as Weight)) - .saturating_add(T::DbWeight::get().reads((3 as Weight).saturating_mul(i as Weight))) - .saturating_add(T::DbWeight::get().writes(2 as Weight)) - .saturating_add(T::DbWeight::get().writes((8 as Weight).saturating_mul(i as Weight))) + .saturating_add(Weight::from_ref_time(49_225_000).saturating_mul(i.into())) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(i.into()))) + .saturating_add(T::DbWeight::get().writes(2_u64)) + .saturating_add(T::DbWeight::get().writes((8_u64).saturating_mul(i.into()))) } } // Default implementation for tests impl WeightInfo for () { fn vote(i: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn cancel_proposal() -> Weight { - 0 + Weight::from_ref_time(0) } fn veto_proposal() -> Weight { - 0 + Weight::from_ref_time(0) } fn proposer_remark() -> Weight { - 0 + Weight::from_ref_time(0) } fn on_initialize_immediate_execution_decode_fails(i: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn on_initialize_pending_execution_decode_fails(i: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn on_initialize_approved_pending_constitutionality(i: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn on_initialize_rejected(i: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn on_initialize_slashed(i: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn cancel_active_and_pending_proposals(i: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } } diff --git a/runtime-modules/referendum/src/weights.rs b/runtime-modules/referendum/src/weights.rs index bf0092acd4..69816657f2 100644 --- a/runtime-modules/referendum/src/weights.rs +++ b/runtime-modules/referendum/src/weights.rs @@ -63,17 +63,17 @@ impl WeightInfo for SubstrateWeight { // Storage: Council AnnouncementPeriodNr (r:1 w:1) // Storage: Council Stage (r:0 w:1) fn on_initialize_revealing(i: u32, ) -> Weight { - (32_918_000 as Weight) + Weight::from_ref_time(32_918_000) // Standard Error: 86_000 - .saturating_add((1_424_000 as Weight).saturating_mul(i as Weight)) - .saturating_add(T::DbWeight::get().reads(2 as Weight)) - .saturating_add(T::DbWeight::get().writes(3 as Weight)) + .saturating_add(Weight::from_ref_time(1_424_000).saturating_mul(i.into())) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) } // Storage: Instance1Referendum Stage (r:1 w:1) fn on_initialize_voting() -> Weight { - (18_880_000 as Weight) - .saturating_add(T::DbWeight::get().reads(1 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + Weight::from_ref_time(18_880_000) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Instance1Referendum AccountsOptedOut (r:1 w:0) // Storage: Instance1Referendum Stage (r:1 w:0) @@ -81,98 +81,98 @@ impl WeightInfo for SubstrateWeight { // Storage: Balances Locks (r:1 w:1) // Storage: System Account (r:1 w:1) fn vote() -> Weight { - (57_013_000 as Weight) - .saturating_add(T::DbWeight::get().reads(5 as Weight)) - .saturating_add(T::DbWeight::get().writes(3 as Weight)) + Weight::from_ref_time(57_013_000) + .saturating_add(T::DbWeight::get().reads(5_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) } // Storage: Instance1Referendum Stage (r:1 w:1) // Storage: Instance1Referendum Votes (r:1 w:1) // Storage: Council Candidates (r:1 w:1) // Storage: Council AnnouncementPeriodNr (r:1 w:0) fn reveal_vote_space_for_new_winner(i: u32, ) -> Weight { - (45_258_000 as Weight) + Weight::from_ref_time(45_258_000) // Standard Error: 144_000 - .saturating_add((2_127_000 as Weight).saturating_mul(i as Weight)) - .saturating_add(T::DbWeight::get().reads(4 as Weight)) - .saturating_add(T::DbWeight::get().writes(3 as Weight)) + .saturating_add(Weight::from_ref_time(2_127_000).saturating_mul(i.into())) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) } // Storage: Instance1Referendum Stage (r:1 w:1) // Storage: Instance1Referendum Votes (r:1 w:1) // Storage: Council Candidates (r:1 w:1) // Storage: Council AnnouncementPeriodNr (r:1 w:0) fn reveal_vote_space_not_in_winners(i: u32, ) -> Weight { - (47_590_000 as Weight) + Weight::from_ref_time(47_590_000) // Standard Error: 58_000 - .saturating_add((1_263_000 as Weight).saturating_mul(i as Weight)) - .saturating_add(T::DbWeight::get().reads(4 as Weight)) - .saturating_add(T::DbWeight::get().writes(3 as Weight)) + .saturating_add(Weight::from_ref_time(1_263_000).saturating_mul(i.into())) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) } // Storage: Instance1Referendum Stage (r:1 w:1) // Storage: Instance1Referendum Votes (r:1 w:1) // Storage: Council Candidates (r:1 w:1) // Storage: Council AnnouncementPeriodNr (r:1 w:0) fn reveal_vote_space_replace_last_winner(i: u32, ) -> Weight { - (47_356_000 as Weight) + Weight::from_ref_time(47_356_000) // Standard Error: 72_000 - .saturating_add((1_157_000 as Weight).saturating_mul(i as Weight)) - .saturating_add(T::DbWeight::get().reads(4 as Weight)) - .saturating_add(T::DbWeight::get().writes(3 as Weight)) + .saturating_add(Weight::from_ref_time(1_157_000).saturating_mul(i.into())) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) } // Storage: Instance1Referendum Stage (r:1 w:1) // Storage: Instance1Referendum Votes (r:1 w:1) // Storage: Council Candidates (r:1 w:1) // Storage: Council AnnouncementPeriodNr (r:1 w:0) fn reveal_vote_already_existing(i: u32, ) -> Weight { - (46_890_000 as Weight) + Weight::from_ref_time(46_890_000) // Standard Error: 74_000 - .saturating_add((1_400_000 as Weight).saturating_mul(i as Weight)) - .saturating_add(T::DbWeight::get().reads(4 as Weight)) - .saturating_add(T::DbWeight::get().writes(3 as Weight)) + .saturating_add(Weight::from_ref_time(1_400_000).saturating_mul(i.into())) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) } // Storage: Instance1Referendum Votes (r:1 w:1) // Storage: Council AnnouncementPeriodNr (r:1 w:0) // Storage: Balances Locks (r:1 w:1) // Storage: System Account (r:1 w:1) fn release_vote_stake() -> Weight { - (46_810_000 as Weight) - .saturating_add(T::DbWeight::get().reads(4 as Weight)) - .saturating_add(T::DbWeight::get().writes(3 as Weight)) + Weight::from_ref_time(46_810_000) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) } // Storage: Instance1Referendum AccountsOptedOut (r:0 w:1) fn opt_out_of_voting() -> Weight { - (22_013_000 as Weight) - .saturating_add(T::DbWeight::get().reads(1 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + Weight::from_ref_time(22_013_000) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } } // Default implementation for tests impl WeightInfo for () { fn on_initialize_revealing(i: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn on_initialize_voting() -> Weight { - 0 + Weight::from_ref_time(0) } fn vote() -> Weight { - 0 + Weight::from_ref_time(0) } fn reveal_vote_space_for_new_winner(i: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn reveal_vote_space_not_in_winners(i: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn reveal_vote_space_replace_last_winner(i: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn reveal_vote_already_existing(i: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn release_vote_stake() -> Weight { - 0 + Weight::from_ref_time(0) } fn opt_out_of_voting() -> Weight { - 0 + Weight::from_ref_time(0) } } diff --git a/runtime-modules/storage/src/weights.rs b/runtime-modules/storage/src/weights.rs index a70ba609a5..89d140ccbd 100644 --- a/runtime-modules/storage/src/weights.rs +++ b/runtime-modules/storage/src/weights.rs @@ -89,74 +89,74 @@ impl WeightInfo for SubstrateWeight { // Storage: Instance2WorkingGroup WorkerById (r:1 w:0) // Storage: Storage StorageBucketById (r:1 w:1) fn delete_storage_bucket() -> Weight { - (59_190_000 as Weight) - .saturating_add(T::DbWeight::get().reads(3 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + Weight::from_ref_time(59_190_000) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Instance2WorkingGroup CurrentLead (r:1 w:0) // Storage: Instance2WorkingGroup WorkerById (r:1 w:0) // Storage: Storage UploadingBlocked (r:0 w:1) fn update_uploading_blocked_status() -> Weight { - (47_190_000 as Weight) - .saturating_add(T::DbWeight::get().reads(2 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + Weight::from_ref_time(47_190_000) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Instance2WorkingGroup CurrentLead (r:1 w:0) // Storage: Instance2WorkingGroup WorkerById (r:1 w:0) // Storage: Storage DataObjectPerMegabyteFee (r:0 w:1) fn update_data_size_fee() -> Weight { - (47_700_000 as Weight) - .saturating_add(T::DbWeight::get().reads(2 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + Weight::from_ref_time(47_700_000) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Instance2WorkingGroup CurrentLead (r:1 w:0) // Storage: Instance2WorkingGroup WorkerById (r:1 w:0) // Storage: Storage StorageBucketsPerBagLimit (r:0 w:1) fn update_storage_buckets_per_bag_limit() -> Weight { - (46_990_000 as Weight) - .saturating_add(T::DbWeight::get().reads(2 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + Weight::from_ref_time(46_990_000) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Instance2WorkingGroup CurrentLead (r:1 w:0) // Storage: Instance2WorkingGroup WorkerById (r:1 w:0) // Storage: Storage VoucherMaxObjectsSizeLimit (r:0 w:1) // Storage: Storage VoucherMaxObjectsNumberLimit (r:0 w:1) fn update_storage_buckets_voucher_max_limits() -> Weight { - (49_580_000 as Weight) - .saturating_add(T::DbWeight::get().reads(2 as Weight)) - .saturating_add(T::DbWeight::get().writes(2 as Weight)) + Weight::from_ref_time(49_580_000) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) } // Storage: Instance2WorkingGroup CurrentLead (r:1 w:0) // Storage: Instance2WorkingGroup WorkerById (r:1 w:0) // Storage: Storage DataObjectStateBloatBondValue (r:0 w:1) fn update_data_object_state_bloat_bond() -> Weight { - (48_090_000 as Weight) - .saturating_add(T::DbWeight::get().reads(2 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + Weight::from_ref_time(48_090_000) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Instance2WorkingGroup CurrentLead (r:1 w:0) // Storage: Instance2WorkingGroup WorkerById (r:1 w:0) // Storage: Storage DynamicBagCreationPolicies (r:1 w:1) fn update_number_of_storage_buckets_in_dynamic_bag_creation_policy() -> Weight { - (56_830_000 as Weight) - .saturating_add(T::DbWeight::get().reads(3 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + Weight::from_ref_time(56_830_000) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Instance2WorkingGroup CurrentLead (r:1 w:0) // Storage: Instance2WorkingGroup WorkerById (r:1 w:0) // Storage: Storage Blacklist (r:1000 w:0) // Storage: Storage CurrentBlacklistSize (r:1 w:1) fn update_blacklist(i: u32, j: u32, ) -> Weight { - (0 as Weight) + Weight::from_ref_time(0) // Standard Error: 16_000 - .saturating_add((12_736_000 as Weight).saturating_mul(i as Weight)) + .saturating_add(Weight::from_ref_time(12_736_000).saturating_mul(i.into())) // Standard Error: 16_000 - .saturating_add((7_903_000 as Weight).saturating_mul(j as Weight)) - .saturating_add(T::DbWeight::get().reads(3 as Weight)) - .saturating_add(T::DbWeight::get().reads((1 as Weight).saturating_mul(i as Weight))) - .saturating_add(T::DbWeight::get().reads((1 as Weight).saturating_mul(j as Weight))) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) - .saturating_add(T::DbWeight::get().writes((1 as Weight).saturating_mul(i as Weight))) + .saturating_add(Weight::from_ref_time(7_903_000).saturating_mul(j.into())) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(j.into()))) + .saturating_add(T::DbWeight::get().writes(1_u64)) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) } // Storage: Instance2WorkingGroup CurrentLead (r:1 w:0) // Storage: Instance2WorkingGroup WorkerById (r:1 w:0) @@ -165,9 +165,9 @@ impl WeightInfo for SubstrateWeight { // Storage: Storage NextStorageBucketId (r:1 w:1) // Storage: Storage StorageBucketById (r:0 w:1) fn create_storage_bucket() -> Weight { - (68_680_000 as Weight) - .saturating_add(T::DbWeight::get().reads(5 as Weight)) - .saturating_add(T::DbWeight::get().writes(2 as Weight)) + Weight::from_ref_time(68_680_000) + .saturating_add(T::DbWeight::get().reads(5_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) } // Storage: Instance2WorkingGroup CurrentLead (r:1 w:0) // Storage: Instance2WorkingGroup WorkerById (r:1 w:0) @@ -175,49 +175,49 @@ impl WeightInfo for SubstrateWeight { // Storage: Storage StorageBucketsPerBagLimit (r:1 w:0) // Storage: Storage StorageBucketById (r:14 w:14) fn update_storage_buckets_for_bag(i: u32, j: u32, ) -> Weight { - (51_139_000 as Weight) + Weight::from_ref_time(51_139_000) // Standard Error: 147_000 - .saturating_add((42_184_000 as Weight).saturating_mul(i as Weight)) + .saturating_add(Weight::from_ref_time(42_184_000).saturating_mul(i.into())) // Standard Error: 147_000 - .saturating_add((38_449_000 as Weight).saturating_mul(j as Weight)) - .saturating_add(T::DbWeight::get().reads(4 as Weight)) - .saturating_add(T::DbWeight::get().reads((1 as Weight).saturating_mul(i as Weight))) - .saturating_add(T::DbWeight::get().reads((1 as Weight).saturating_mul(j as Weight))) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) - .saturating_add(T::DbWeight::get().writes((1 as Weight).saturating_mul(i as Weight))) - .saturating_add(T::DbWeight::get().writes((1 as Weight).saturating_mul(j as Weight))) + .saturating_add(Weight::from_ref_time(38_449_000).saturating_mul(j.into())) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(j.into()))) + .saturating_add(T::DbWeight::get().writes(1_u64)) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(j.into()))) } // Storage: Instance2WorkingGroup CurrentLead (r:1 w:0) // Storage: Instance2WorkingGroup WorkerById (r:1 w:0) // Storage: Storage StorageBucketById (r:1 w:1) fn cancel_storage_bucket_operator_invite() -> Weight { - (60_720_000 as Weight) - .saturating_add(T::DbWeight::get().reads(3 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + Weight::from_ref_time(60_720_000) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Instance2WorkingGroup CurrentLead (r:1 w:0) // Storage: Instance2WorkingGroup WorkerById (r:2 w:0) // Storage: Storage StorageBucketById (r:1 w:1) fn invite_storage_bucket_operator() -> Weight { - (72_611_000 as Weight) - .saturating_add(T::DbWeight::get().reads(4 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + Weight::from_ref_time(72_611_000) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Instance2WorkingGroup CurrentLead (r:1 w:0) // Storage: Instance2WorkingGroup WorkerById (r:1 w:0) // Storage: Storage StorageBucketById (r:1 w:1) fn remove_storage_bucket_operator() -> Weight { - (60_850_000 as Weight) - .saturating_add(T::DbWeight::get().reads(3 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + Weight::from_ref_time(60_850_000) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Instance2WorkingGroup CurrentLead (r:1 w:0) // Storage: Instance2WorkingGroup WorkerById (r:1 w:0) // Storage: Storage StorageBucketById (r:1 w:1) fn update_storage_bucket_status() -> Weight { - (61_129_000 as Weight) - .saturating_add(T::DbWeight::get().reads(3 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + Weight::from_ref_time(61_129_000) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Instance2WorkingGroup CurrentLead (r:1 w:0) // Storage: Instance2WorkingGroup WorkerById (r:1 w:0) @@ -225,35 +225,35 @@ impl WeightInfo for SubstrateWeight { // Storage: Storage VoucherMaxObjectsSizeLimit (r:1 w:0) // Storage: Storage VoucherMaxObjectsNumberLimit (r:1 w:0) fn set_storage_bucket_voucher_limits() -> Weight { - (72_710_000 as Weight) - .saturating_add(T::DbWeight::get().reads(5 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + Weight::from_ref_time(72_710_000) + .saturating_add(T::DbWeight::get().reads(5_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Instance2WorkingGroup WorkerById (r:1 w:0) // Storage: Storage StorageBucketById (r:1 w:1) fn accept_storage_bucket_invitation() -> Weight { - (56_020_000 as Weight) - .saturating_add(T::DbWeight::get().reads(2 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + Weight::from_ref_time(56_020_000) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Instance2WorkingGroup WorkerById (r:1 w:0) // Storage: Storage StorageBucketById (r:1 w:0) fn set_storage_operator_metadata(i: u32, ) -> Weight { - (10_257_000 as Weight) + Weight::from_ref_time(10_257_000) // Standard Error: 15_000 - .saturating_add((936_000 as Weight).saturating_mul(i as Weight)) - .saturating_add(T::DbWeight::get().reads(2 as Weight)) + .saturating_add(Weight::from_ref_time(936_000).saturating_mul(i.into())) + .saturating_add(T::DbWeight::get().reads(2_u64)) } // Storage: Storage StorageBucketById (r:1 w:0) // Storage: Storage Bags (r:1 w:0) // Storage: Storage DataObjectsById (r:1 w:1) fn accept_pending_data_objects(i: u32, ) -> Weight { - (0 as Weight) + Weight::from_ref_time(0) // Standard Error: 19_000 - .saturating_add((25_470_000 as Weight).saturating_mul(i as Weight)) - .saturating_add(T::DbWeight::get().reads(2 as Weight)) - .saturating_add(T::DbWeight::get().reads((1 as Weight).saturating_mul(i as Weight))) - .saturating_add(T::DbWeight::get().writes((1 as Weight).saturating_mul(i as Weight))) + .saturating_add(Weight::from_ref_time(25_470_000).saturating_mul(i.into())) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) } // Storage: Instance9WorkingGroup CurrentLead (r:1 w:0) // Storage: Instance9WorkingGroup WorkerById (r:1 w:0) @@ -261,9 +261,9 @@ impl WeightInfo for SubstrateWeight { // Storage: Storage NextDistributionBucketFamilyId (r:1 w:1) // Storage: Storage DistributionBucketFamilyById (r:0 w:1) fn create_distribution_bucket_family() -> Weight { - (65_340_000 as Weight) - .saturating_add(T::DbWeight::get().reads(4 as Weight)) - .saturating_add(T::DbWeight::get().writes(3 as Weight)) + Weight::from_ref_time(65_340_000) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) } // Storage: Instance9WorkingGroup CurrentLead (r:1 w:0) // Storage: Instance9WorkingGroup WorkerById (r:1 w:0) @@ -272,34 +272,34 @@ impl WeightInfo for SubstrateWeight { // Storage: Storage DynamicBagCreationPolicies (r:2 w:0) // Storage: Storage DistributionBucketFamilyNumber (r:1 w:1) fn delete_distribution_bucket_family() -> Weight { - (93_540_000 as Weight) - .saturating_add(T::DbWeight::get().reads(7 as Weight)) - .saturating_add(T::DbWeight::get().writes(2 as Weight)) + Weight::from_ref_time(93_540_000) + .saturating_add(T::DbWeight::get().reads(7_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) } // Storage: Instance9WorkingGroup CurrentLead (r:1 w:0) // Storage: Instance9WorkingGroup WorkerById (r:1 w:0) // Storage: Storage DistributionBucketFamilyById (r:1 w:1) // Storage: Storage DistributionBucketByFamilyIdById (r:0 w:1) fn create_distribution_bucket() -> Weight { - (66_100_000 as Weight) - .saturating_add(T::DbWeight::get().reads(3 as Weight)) - .saturating_add(T::DbWeight::get().writes(2 as Weight)) + Weight::from_ref_time(66_100_000) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) } // Storage: Instance9WorkingGroup CurrentLead (r:1 w:0) // Storage: Instance9WorkingGroup WorkerById (r:1 w:0) // Storage: Storage DistributionBucketByFamilyIdById (r:1 w:1) fn update_distribution_bucket_status() -> Weight { - (65_691_000 as Weight) - .saturating_add(T::DbWeight::get().reads(3 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + Weight::from_ref_time(65_691_000) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Instance9WorkingGroup CurrentLead (r:1 w:0) // Storage: Instance9WorkingGroup WorkerById (r:1 w:0) // Storage: Storage DistributionBucketByFamilyIdById (r:1 w:1) fn delete_distribution_bucket() -> Weight { - (63_160_000 as Weight) - .saturating_add(T::DbWeight::get().reads(3 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + Weight::from_ref_time(63_160_000) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Instance9WorkingGroup CurrentLead (r:1 w:0) // Storage: Instance9WorkingGroup WorkerById (r:1 w:0) @@ -308,217 +308,217 @@ impl WeightInfo for SubstrateWeight { // Storage: Storage DistributionBucketsPerBagLimit (r:1 w:0) // Storage: Storage DistributionBucketByFamilyIdById (r:52 w:52) fn update_distribution_buckets_for_bag(i: u32, j: u32, ) -> Weight { - (53_507_000 as Weight) + Weight::from_ref_time(53_507_000) // Standard Error: 33_000 - .saturating_add((26_207_000 as Weight).saturating_mul(i as Weight)) + .saturating_add(Weight::from_ref_time(26_207_000).saturating_mul(i.into())) // Standard Error: 33_000 - .saturating_add((26_515_000 as Weight).saturating_mul(j as Weight)) - .saturating_add(T::DbWeight::get().reads(5 as Weight)) - .saturating_add(T::DbWeight::get().reads((1 as Weight).saturating_mul(i as Weight))) - .saturating_add(T::DbWeight::get().reads((1 as Weight).saturating_mul(j as Weight))) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) - .saturating_add(T::DbWeight::get().writes((1 as Weight).saturating_mul(i as Weight))) - .saturating_add(T::DbWeight::get().writes((1 as Weight).saturating_mul(j as Weight))) + .saturating_add(Weight::from_ref_time(26_515_000).saturating_mul(j.into())) + .saturating_add(T::DbWeight::get().reads(5_u64)) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(j.into()))) + .saturating_add(T::DbWeight::get().writes(1_u64)) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(j.into()))) } // Storage: Instance9WorkingGroup CurrentLead (r:1 w:0) // Storage: Instance9WorkingGroup WorkerById (r:1 w:0) // Storage: Storage DistributionBucketsPerBagLimit (r:0 w:1) fn update_distribution_buckets_per_bag_limit() -> Weight { - (47_520_000 as Weight) - .saturating_add(T::DbWeight::get().reads(2 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + Weight::from_ref_time(47_520_000) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Instance9WorkingGroup CurrentLead (r:1 w:0) // Storage: Instance9WorkingGroup WorkerById (r:1 w:0) // Storage: Storage DistributionBucketByFamilyIdById (r:1 w:1) fn update_distribution_bucket_mode() -> Weight { - (65_010_000 as Weight) - .saturating_add(T::DbWeight::get().reads(3 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + Weight::from_ref_time(65_010_000) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Instance9WorkingGroup CurrentLead (r:1 w:0) // Storage: Instance9WorkingGroup WorkerById (r:1 w:0) // Storage: Storage DistributionBucketFamilyById (r:2 w:0) // Storage: Storage DynamicBagCreationPolicies (r:1 w:1) fn update_families_in_dynamic_bag_creation_policy(i: u32, ) -> Weight { - (58_048_000 as Weight) + Weight::from_ref_time(58_048_000) // Standard Error: 72_000 - .saturating_add((12_456_000 as Weight).saturating_mul(i as Weight)) - .saturating_add(T::DbWeight::get().reads(3 as Weight)) - .saturating_add(T::DbWeight::get().reads((1 as Weight).saturating_mul(i as Weight))) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + .saturating_add(Weight::from_ref_time(12_456_000).saturating_mul(i.into())) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Instance9WorkingGroup CurrentLead (r:1 w:0) // Storage: Instance9WorkingGroup WorkerById (r:2 w:0) // Storage: Storage DistributionBucketByFamilyIdById (r:1 w:1) fn invite_distribution_bucket_operator() -> Weight { - (77_600_000 as Weight) - .saturating_add(T::DbWeight::get().reads(4 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + Weight::from_ref_time(77_600_000) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Instance9WorkingGroup CurrentLead (r:1 w:0) // Storage: Instance9WorkingGroup WorkerById (r:1 w:0) // Storage: Storage DistributionBucketByFamilyIdById (r:1 w:1) fn cancel_distribution_bucket_operator_invite() -> Weight { - (69_700_000 as Weight) - .saturating_add(T::DbWeight::get().reads(3 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + Weight::from_ref_time(69_700_000) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Instance9WorkingGroup CurrentLead (r:1 w:0) // Storage: Instance9WorkingGroup WorkerById (r:1 w:0) // Storage: Storage DistributionBucketByFamilyIdById (r:1 w:1) fn remove_distribution_bucket_operator() -> Weight { - (68_470_000 as Weight) - .saturating_add(T::DbWeight::get().reads(3 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + Weight::from_ref_time(68_470_000) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Instance9WorkingGroup CurrentLead (r:1 w:0) // Storage: Instance9WorkingGroup WorkerById (r:1 w:0) // Storage: Storage DistributionBucketFamilyById (r:1 w:0) fn set_distribution_bucket_family_metadata(i: u32, ) -> Weight { - (21_512_000 as Weight) + Weight::from_ref_time(21_512_000) // Standard Error: 16_000 - .saturating_add((923_000 as Weight).saturating_mul(i as Weight)) - .saturating_add(T::DbWeight::get().reads(3 as Weight)) + .saturating_add(Weight::from_ref_time(923_000_u64).saturating_mul(i.into())) + .saturating_add(T::DbWeight::get().reads(3_u64)) } // Storage: Instance9WorkingGroup WorkerById (r:1 w:0) // Storage: Storage DistributionBucketByFamilyIdById (r:1 w:1) fn accept_distribution_bucket_invitation() -> Weight { - (64_490_000 as Weight) - .saturating_add(T::DbWeight::get().reads(2 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + Weight::from_ref_time(64_490_000) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Instance9WorkingGroup WorkerById (r:1 w:0) // Storage: Storage DistributionBucketByFamilyIdById (r:1 w:0) fn set_distribution_operator_metadata(i: u32, ) -> Weight { - (13_871_000 as Weight) + Weight::from_ref_time(13_871_000) // Standard Error: 17_000 - .saturating_add((951_000 as Weight).saturating_mul(i as Weight)) - .saturating_add(T::DbWeight::get().reads(2 as Weight)) + .saturating_add(Weight::from_ref_time(951_000_u64).saturating_mul(i.into())) + .saturating_add(T::DbWeight::get().reads(2_u64)) } // Storage: Instance2WorkingGroup WorkerById (r:1 w:0) // Storage: Storage StorageBucketById (r:1 w:0) fn storage_operator_remark(i: u32, ) -> Weight { - (6_936_000 as Weight) + Weight::from_ref_time(6_936_000) // Standard Error: 18_000 - .saturating_add((960_000 as Weight).saturating_mul(i as Weight)) - .saturating_add(T::DbWeight::get().reads(2 as Weight)) + .saturating_add(Weight::from_ref_time(960_000).saturating_mul(i.into())) + .saturating_add(T::DbWeight::get().reads(2_u64)) } // Storage: Instance9WorkingGroup WorkerById (r:1 w:0) // Storage: Storage DistributionBucketByFamilyIdById (r:1 w:0) fn distribution_operator_remark(i: u32, ) -> Weight { - (20_111_000 as Weight) + Weight::from_ref_time(20_111_000) // Standard Error: 17_000 - .saturating_add((931_000 as Weight).saturating_mul(i as Weight)) - .saturating_add(T::DbWeight::get().reads(2 as Weight)) + .saturating_add(Weight::from_ref_time(931_000).saturating_mul(i.into())) + .saturating_add(T::DbWeight::get().reads(2_u64)) } } // Default implementation for tests impl WeightInfo for () { fn delete_storage_bucket() -> Weight { - 0 + Weight::from_ref_time(0) } fn update_uploading_blocked_status() -> Weight { - 0 + Weight::from_ref_time(0) } fn update_data_size_fee() -> Weight { - 0 + Weight::from_ref_time(0) } fn update_storage_buckets_per_bag_limit() -> Weight { - 0 + Weight::from_ref_time(0) } fn update_storage_buckets_voucher_max_limits() -> Weight { - 0 + Weight::from_ref_time(0) } fn update_data_object_state_bloat_bond() -> Weight { - 0 + Weight::from_ref_time(0) } fn update_number_of_storage_buckets_in_dynamic_bag_creation_policy() -> Weight { - 0 + Weight::from_ref_time(0) } fn update_blacklist(i: u32, j: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn create_storage_bucket() -> Weight { - 0 + Weight::from_ref_time(0) } fn update_storage_buckets_for_bag(i: u32, j: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn cancel_storage_bucket_operator_invite() -> Weight { - 0 + Weight::from_ref_time(0) } fn invite_storage_bucket_operator() -> Weight { - 0 + Weight::from_ref_time(0) } fn remove_storage_bucket_operator() -> Weight { - 0 + Weight::from_ref_time(0) } fn update_storage_bucket_status() -> Weight { - 0 + Weight::from_ref_time(0) } fn set_storage_bucket_voucher_limits() -> Weight { - 0 + Weight::from_ref_time(0) } fn accept_storage_bucket_invitation() -> Weight { - 0 + Weight::from_ref_time(0) } fn set_storage_operator_metadata(i: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn accept_pending_data_objects(i: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn create_distribution_bucket_family() -> Weight { - 0 + Weight::from_ref_time(0) } fn delete_distribution_bucket_family() -> Weight { - 0 + Weight::from_ref_time(0) } fn create_distribution_bucket() -> Weight { - 0 + Weight::from_ref_time(0) } fn update_distribution_bucket_status() -> Weight { - 0 + Weight::from_ref_time(0) } fn delete_distribution_bucket() -> Weight { - 0 + Weight::from_ref_time(0) } fn update_distribution_buckets_for_bag(i: u32, j: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn update_distribution_buckets_per_bag_limit() -> Weight { - 0 + Weight::from_ref_time(0) } fn update_distribution_bucket_mode() -> Weight { - 0 + Weight::from_ref_time(0) } fn update_families_in_dynamic_bag_creation_policy(i: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn invite_distribution_bucket_operator() -> Weight { - 0 + Weight::from_ref_time(0) } fn cancel_distribution_bucket_operator_invite() -> Weight { - 0 + Weight::from_ref_time(0) } fn remove_distribution_bucket_operator() -> Weight { - 0 + Weight::from_ref_time(0) } fn set_distribution_bucket_family_metadata(i: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn accept_distribution_bucket_invitation() -> Weight { - 0 + Weight::from_ref_time(0) } fn set_distribution_operator_metadata(i: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn storage_operator_remark(i: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn distribution_operator_remark(i: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } } diff --git a/runtime-modules/utility/src/weights.rs b/runtime-modules/utility/src/weights.rs index ced011442b..1c75cb166a 100644 --- a/runtime-modules/utility/src/weights.rs +++ b/runtime-modules/utility/src/weights.rs @@ -55,44 +55,44 @@ pub trait WeightInfo { pub struct SubstrateWeight(PhantomData); impl WeightInfo for SubstrateWeight { fn execute_signal_proposal(i: u32, ) -> Weight { - (13_391_000 as Weight) + Weight::from_ref_time(13_391_000) // Standard Error: 2_000 - .saturating_add((740_000 as Weight).saturating_mul(i as Weight)) + .saturating_add(Weight::from_ref_time(740_000_u64).saturating_mul(i.into())) } // Storage: Instance1WorkingGroup Budget (r:1 w:1) // Storage: Council Budget (r:1 w:1) fn update_working_group_budget_positive() -> Weight { - (25_120_000 as Weight) - .saturating_add(T::DbWeight::get().reads(2 as Weight)) - .saturating_add(T::DbWeight::get().writes(2 as Weight)) + Weight::from_ref_time(25_120_000) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) } // Storage: Instance1WorkingGroup Budget (r:1 w:1) // Storage: Council Budget (r:1 w:1) fn update_working_group_budget_negative() -> Weight { - (24_960_000 as Weight) - .saturating_add(T::DbWeight::get().reads(2 as Weight)) - .saturating_add(T::DbWeight::get().writes(2 as Weight)) + Weight::from_ref_time(24_960_000) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) } // Storage: System Account (r:1 w:1) fn burn_account_tokens() -> Weight { - (37_611_000 as Weight) - .saturating_add(T::DbWeight::get().reads(1 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + Weight::from_ref_time(37_611_000) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } } // Default implementation for tests impl WeightInfo for () { fn execute_signal_proposal(i: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn update_working_group_budget_positive() -> Weight { - 0 + Weight::from_ref_time(0) } fn update_working_group_budget_negative() -> Weight { - 0 + Weight::from_ref_time(0) } fn burn_account_tokens() -> Weight { - 0 + Weight::from_ref_time(0) } } diff --git a/runtime-modules/working-group/src/weights.rs b/runtime-modules/working-group/src/weights.rs index f402727cf9..154979156b 100644 --- a/runtime-modules/working-group/src/weights.rs +++ b/runtime-modules/working-group/src/weights.rs @@ -82,47 +82,47 @@ impl WeightInfo for SubstrateWeight { // Storage: Instance3WorkingGroup ActiveWorkerCount (r:1 w:1) // Storage: Balances Locks (r:2 w:2) fn on_initialize_leaving(i: u32, ) -> Weight { - (26_873_000 as Weight) + Weight::from_ref_time(26_873_000) // Standard Error: 35_000 - .saturating_add((55_730_000 as Weight).saturating_mul(i as Weight)) - .saturating_add(T::DbWeight::get().reads(4 as Weight)) - .saturating_add(T::DbWeight::get().reads((3 as Weight).saturating_mul(i as Weight))) - .saturating_add(T::DbWeight::get().writes(3 as Weight)) - .saturating_add(T::DbWeight::get().writes((3 as Weight).saturating_mul(i as Weight))) + .saturating_add(Weight::from_ref_time(55_730_000).saturating_mul(i.into())) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(i.into()))) + .saturating_add(T::DbWeight::get().writes(3_u64)) + .saturating_add(T::DbWeight::get().writes((3_u64).saturating_mul(i.into()))) } // Storage: Instance3WorkingGroup WorkerById (r:3 w:2) // Storage: Instance3WorkingGroup Budget (r:1 w:1) // Storage: System Account (r:2 w:2) fn on_initialize_rewarding_with_missing_reward(i: u32, ) -> Weight { - (17_787_000 as Weight) + Weight::from_ref_time(17_787_000) // Standard Error: 55_000 - .saturating_add((52_759_000 as Weight).saturating_mul(i as Weight)) - .saturating_add(T::DbWeight::get().reads(2 as Weight)) - .saturating_add(T::DbWeight::get().reads((2 as Weight).saturating_mul(i as Weight))) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) - .saturating_add(T::DbWeight::get().writes((2 as Weight).saturating_mul(i as Weight))) + .saturating_add(Weight::from_ref_time(52_759_000).saturating_mul(i.into())) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(i.into()))) + .saturating_add(T::DbWeight::get().writes(1_u64)) + .saturating_add(T::DbWeight::get().writes((2_u64).saturating_mul(i.into()))) } // Storage: Instance3WorkingGroup WorkerById (r:3 w:2) // Storage: Instance3WorkingGroup Budget (r:1 w:0) fn on_initialize_rewarding_with_missing_reward_cant_pay(i: u32, ) -> Weight { - (16_415_000 as Weight) + Weight::from_ref_time(16_415_000) // Standard Error: 33_000 - .saturating_add((23_020_000 as Weight).saturating_mul(i as Weight)) - .saturating_add(T::DbWeight::get().reads(2 as Weight)) - .saturating_add(T::DbWeight::get().reads((1 as Weight).saturating_mul(i as Weight))) - .saturating_add(T::DbWeight::get().writes((1 as Weight).saturating_mul(i as Weight))) + .saturating_add(Weight::from_ref_time(23_020_000).saturating_mul(i.into())) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) } // Storage: Instance3WorkingGroup WorkerById (r:3 w:1) // Storage: Instance3WorkingGroup Budget (r:1 w:1) // Storage: System Account (r:2 w:2) fn on_initialize_rewarding_without_missing_reward(i: u32, ) -> Weight { - (38_161_000 as Weight) + Weight::from_ref_time(38_161_000) // Standard Error: 33_000 - .saturating_add((33_132_000 as Weight).saturating_mul(i as Weight)) - .saturating_add(T::DbWeight::get().reads(2 as Weight)) - .saturating_add(T::DbWeight::get().reads((2 as Weight).saturating_mul(i as Weight))) - .saturating_add(T::DbWeight::get().writes(2 as Weight)) - .saturating_add(T::DbWeight::get().writes((1 as Weight).saturating_mul(i as Weight))) + .saturating_add(Weight::from_ref_time(33_132_000).saturating_mul(i.into())) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(i.into()))) + .saturating_add(T::DbWeight::get().writes(2_u64)) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) } // Storage: Membership MembershipById (r:1 w:0) // Storage: Instance3WorkingGroup OpeningById (r:1 w:0) @@ -132,11 +132,11 @@ impl WeightInfo for SubstrateWeight { // Storage: Instance3WorkingGroup NextApplicationId (r:1 w:1) // Storage: Instance3WorkingGroup ApplicationById (r:0 w:1) fn apply_on_opening(i: u32, ) -> Weight { - (60_759_000 as Weight) + Weight::from_ref_time(60_759_000) // Standard Error: 3_000 - .saturating_add((1_699_000 as Weight).saturating_mul(i as Weight)) - .saturating_add(T::DbWeight::get().reads(6 as Weight)) - .saturating_add(T::DbWeight::get().writes(4 as Weight)) + .saturating_add(Weight::from_ref_time(1_699_000).saturating_mul(i.into())) + .saturating_add(T::DbWeight::get().reads(6_u64)) + .saturating_add(T::DbWeight::get().writes(4_u64)) } // Storage: Instance3WorkingGroup OpeningById (r:1 w:1) // Storage: Instance3WorkingGroup ActiveWorkerCount (r:1 w:1) @@ -145,9 +145,9 @@ impl WeightInfo for SubstrateWeight { // Storage: Instance3WorkingGroup NextWorkerId (r:1 w:1) // Storage: Instance3WorkingGroup WorkerById (r:0 w:1) fn fill_opening_lead() -> Weight { - (49_500_000 as Weight) - .saturating_add(T::DbWeight::get().reads(5 as Weight)) - .saturating_add(T::DbWeight::get().writes(6 as Weight)) + Weight::from_ref_time(49_500_000) + .saturating_add(T::DbWeight::get().reads(5_u64)) + .saturating_add(T::DbWeight::get().writes(6_u64)) } // Storage: Instance3WorkingGroup OpeningById (r:1 w:1) // Storage: Instance3WorkingGroup CurrentLead (r:1 w:0) @@ -158,20 +158,20 @@ impl WeightInfo for SubstrateWeight { // Storage: System Account (r:1 w:1) // Storage: Instance3WorkingGroup NextWorkerId (r:1 w:1) fn fill_opening_worker(i: u32, ) -> Weight { - (51_093_000 as Weight) + Weight::from_ref_time(51_093_000) // Standard Error: 19_000 - .saturating_add((15_263_000 as Weight).saturating_mul(i as Weight)) - .saturating_add(T::DbWeight::get().reads(6 as Weight)) - .saturating_add(T::DbWeight::get().reads((1 as Weight).saturating_mul(i as Weight))) - .saturating_add(T::DbWeight::get().writes(3 as Weight)) - .saturating_add(T::DbWeight::get().writes((2 as Weight).saturating_mul(i as Weight))) + .saturating_add(Weight::from_ref_time(15_263_000).saturating_mul(i.into())) + .saturating_add(T::DbWeight::get().reads(6_u64)) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) + .saturating_add(T::DbWeight::get().writes(3_u64)) + .saturating_add(T::DbWeight::get().writes((2_u64).saturating_mul(i.into()))) } // Storage: Instance3WorkingGroup WorkerById (r:1 w:1) // Storage: Membership MembershipById (r:1 w:0) fn update_role_account() -> Weight { - (28_550_000 as Weight) - .saturating_add(T::DbWeight::get().reads(2 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + Weight::from_ref_time(28_550_000) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Instance3WorkingGroup OpeningById (r:1 w:1) // Storage: Instance3WorkingGroup CurrentLead (r:1 w:0) @@ -179,28 +179,28 @@ impl WeightInfo for SubstrateWeight { // Storage: Balances Locks (r:1 w:1) // Storage: System Account (r:1 w:1) fn cancel_opening() -> Weight { - (57_880_000 as Weight) - .saturating_add(T::DbWeight::get().reads(5 as Weight)) - .saturating_add(T::DbWeight::get().writes(3 as Weight)) + Weight::from_ref_time(57_880_000) + .saturating_add(T::DbWeight::get().reads(5_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) } // Storage: Instance3WorkingGroup ApplicationById (r:1 w:1) // Storage: Balances Locks (r:1 w:1) // Storage: System Account (r:1 w:1) fn withdraw_application() -> Weight { - (37_370_000 as Weight) - .saturating_add(T::DbWeight::get().reads(3 as Weight)) - .saturating_add(T::DbWeight::get().writes(3 as Weight)) + Weight::from_ref_time(37_370_000) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) } // Storage: Instance3WorkingGroup CurrentLead (r:1 w:0) // Storage: Instance3WorkingGroup WorkerById (r:2 w:0) // Storage: Balances Locks (r:1 w:1) // Storage: System Account (r:1 w:1) fn slash_stake(i: u32, ) -> Weight { - (77_648_000 as Weight) + Weight::from_ref_time(77_648_000) // Standard Error: 1_000 - .saturating_add((660_000 as Weight).saturating_mul(i as Weight)) - .saturating_add(T::DbWeight::get().reads(5 as Weight)) - .saturating_add(T::DbWeight::get().writes(2 as Weight)) + .saturating_add(Weight::from_ref_time(660_000).saturating_mul(i.into())) + .saturating_add(T::DbWeight::get().reads(5_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) } // Storage: Instance3WorkingGroup CurrentLead (r:1 w:0) // Storage: Instance3WorkingGroup WorkerById (r:2 w:1) @@ -209,11 +209,11 @@ impl WeightInfo for SubstrateWeight { // Storage: Instance3WorkingGroup Budget (r:1 w:1) // Storage: Instance3WorkingGroup ActiveWorkerCount (r:1 w:1) fn terminate_role_worker(i: u32, ) -> Weight { - (122_568_000 as Weight) + Weight::from_ref_time(122_568_000) // Standard Error: 5_000 - .saturating_add((1_271_000 as Weight).saturating_mul(i as Weight)) - .saturating_add(T::DbWeight::get().reads(7 as Weight)) - .saturating_add(T::DbWeight::get().writes(5 as Weight)) + .saturating_add(Weight::from_ref_time(1_271_000).saturating_mul(i.into())) + .saturating_add(T::DbWeight::get().reads(7_u64)) + .saturating_add(T::DbWeight::get().writes(5_u64)) } // Storage: Instance3WorkingGroup CurrentLead (r:1 w:1) // Storage: Instance3WorkingGroup WorkerById (r:1 w:1) @@ -222,73 +222,73 @@ impl WeightInfo for SubstrateWeight { // Storage: Instance3WorkingGroup Budget (r:1 w:1) // Storage: Instance3WorkingGroup ActiveWorkerCount (r:1 w:1) fn terminate_role_lead(i: u32, ) -> Weight { - (121_275_000 as Weight) + Weight::from_ref_time(121_275_000) // Standard Error: 3_000 - .saturating_add((1_264_000 as Weight).saturating_mul(i as Weight)) - .saturating_add(T::DbWeight::get().reads(6 as Weight)) - .saturating_add(T::DbWeight::get().writes(6 as Weight)) + .saturating_add(Weight::from_ref_time(1_264_000).saturating_mul(i.into())) + .saturating_add(T::DbWeight::get().reads(6_u64)) + .saturating_add(T::DbWeight::get().writes(6_u64)) } // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) // Storage: System Account (r:1 w:1) // Storage: Balances Locks (r:1 w:1) fn increase_stake() -> Weight { - (48_210_000 as Weight) - .saturating_add(T::DbWeight::get().reads(3 as Weight)) - .saturating_add(T::DbWeight::get().writes(2 as Weight)) + Weight::from_ref_time(48_210_000) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) } // Storage: Instance3WorkingGroup CurrentLead (r:1 w:0) // Storage: Instance3WorkingGroup WorkerById (r:2 w:0) // Storage: Balances Locks (r:1 w:1) // Storage: System Account (r:1 w:1) fn decrease_stake() -> Weight { - (57_370_000 as Weight) - .saturating_add(T::DbWeight::get().reads(5 as Weight)) - .saturating_add(T::DbWeight::get().writes(2 as Weight)) + Weight::from_ref_time(57_370_000) + .saturating_add(T::DbWeight::get().reads(5_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) } // Storage: Instance3WorkingGroup CurrentLead (r:1 w:0) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) // Storage: Instance3WorkingGroup Budget (r:1 w:1) // Storage: System Account (r:1 w:1) fn spend_from_budget() -> Weight { - (42_270_000 as Weight) - .saturating_add(T::DbWeight::get().reads(4 as Weight)) - .saturating_add(T::DbWeight::get().writes(2 as Weight)) + Weight::from_ref_time(42_270_000) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) } // Storage: Membership MembershipById (r:1 w:0) // Storage: System Account (r:1 w:1) // Storage: Instance3WorkingGroup Budget (r:1 w:1) fn fund_working_group_budget() -> Weight { - (42_300_000 as Weight) - .saturating_add(T::DbWeight::get().reads(3 as Weight)) - .saturating_add(T::DbWeight::get().writes(2 as Weight)) + Weight::from_ref_time(42_300_000) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) } // Storage: Instance3WorkingGroup CurrentLead (r:1 w:0) // Storage: Instance3WorkingGroup WorkerById (r:2 w:1) fn update_reward_amount() -> Weight { - (33_980_000 as Weight) - .saturating_add(T::DbWeight::get().reads(3 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + Weight::from_ref_time(33_980_000) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Instance3WorkingGroup CurrentLead (r:1 w:0) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) // Storage: Instance3WorkingGroup StatusTextHash (r:0 w:1) fn set_status_text(i: u32, ) -> Weight { - (27_279_000 as Weight) + Weight::from_ref_time(27_279_000) // Standard Error: 6_000 - .saturating_add((1_644_000 as Weight).saturating_mul(i as Weight)) - .saturating_add(T::DbWeight::get().reads(2 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + .saturating_add(Weight::from_ref_time(1_644_000).saturating_mul(i.into())) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Instance3WorkingGroup WorkerById (r:1 w:1) fn update_reward_account() -> Weight { - (24_380_000 as Weight) - .saturating_add(T::DbWeight::get().reads(1 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + Weight::from_ref_time(24_380_000) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Instance3WorkingGroup Budget (r:0 w:1) fn set_budget() -> Weight { - (13_550_000 as Weight) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + Weight::from_ref_time(13_550_000) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Instance3WorkingGroup CurrentLead (r:1 w:0) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) @@ -297,112 +297,112 @@ impl WeightInfo for SubstrateWeight { // Storage: Instance3WorkingGroup NextOpeningId (r:1 w:1) // Storage: Instance3WorkingGroup OpeningById (r:0 w:1) fn add_opening(i: u32, ) -> Weight { - (69_789_000 as Weight) + Weight::from_ref_time(69_789_000) // Standard Error: 6_000 - .saturating_add((1_729_000 as Weight).saturating_mul(i as Weight)) - .saturating_add(T::DbWeight::get().reads(5 as Weight)) - .saturating_add(T::DbWeight::get().writes(4 as Weight)) + .saturating_add(Weight::from_ref_time(1_729_000).saturating_mul(i.into())) + .saturating_add(T::DbWeight::get().reads(5_u64)) + .saturating_add(T::DbWeight::get().writes(4_u64)) } // Storage: Instance3WorkingGroup WorkerById (r:1 w:1) fn leave_role(i: u32, ) -> Weight { - (25_746_000 as Weight) + Weight::from_ref_time(25_746_000) // Standard Error: 1_000 - .saturating_add((668_000 as Weight).saturating_mul(i as Weight)) - .saturating_add(T::DbWeight::get().reads(1 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + .saturating_add(Weight::from_ref_time(668_000).saturating_mul(i.into())) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Instance3WorkingGroup CurrentLead (r:1 w:0) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) fn lead_remark(i: u32, ) -> Weight { - (24_744_000 as Weight) + Weight::from_ref_time(24_744_000) // Standard Error: 0 - .saturating_add((735_000 as Weight).saturating_mul(i as Weight)) - .saturating_add(T::DbWeight::get().reads(2 as Weight)) + .saturating_add(Weight::from_ref_time(735_000).saturating_mul(i.into())) + .saturating_add(T::DbWeight::get().reads(2_u64)) } // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) fn worker_remark(i: u32, ) -> Weight { - (23_822_000 as Weight) + Weight::from_ref_time(23_822_000) // Standard Error: 0 - .saturating_add((735_000 as Weight).saturating_mul(i as Weight)) - .saturating_add(T::DbWeight::get().reads(1 as Weight)) + .saturating_add(Weight::from_ref_time(735_000).saturating_mul(i.into())) + .saturating_add(T::DbWeight::get().reads(1_u64)) } } // Default implementation for tests impl WeightInfo for () { fn on_initialize_leaving(i: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn on_initialize_rewarding_with_missing_reward(i: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn on_initialize_rewarding_with_missing_reward_cant_pay(i: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn on_initialize_rewarding_without_missing_reward(i: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn apply_on_opening(i: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn fill_opening_lead() -> Weight { - 0 + Weight::from_ref_time(0) } fn fill_opening_worker(i: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn update_role_account() -> Weight { - 0 + Weight::from_ref_time(0) } fn cancel_opening() -> Weight { - 0 + Weight::from_ref_time(0) } fn withdraw_application() -> Weight { - 0 + Weight::from_ref_time(0) } fn slash_stake(i: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn terminate_role_worker(i: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn terminate_role_lead(i: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn increase_stake() -> Weight { - 0 + Weight::from_ref_time(0) } fn decrease_stake() -> Weight { - 0 + Weight::from_ref_time(0) } fn spend_from_budget() -> Weight { - 0 + Weight::from_ref_time(0) } fn fund_working_group_budget() -> Weight { - 0 + Weight::from_ref_time(0) } fn update_reward_amount() -> Weight { - 0 + Weight::from_ref_time(0) } fn set_status_text(i: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn update_reward_account() -> Weight { - 0 + Weight::from_ref_time(0) } fn set_budget() -> Weight { - 0 + Weight::from_ref_time(0) } fn add_opening(i: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn leave_role(i: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn lead_remark(i: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } fn worker_remark(i: u32, ) -> Weight { - 0 + Weight::from_ref_time(0) } } From cc64367913c00fad0d04e6e5f08677a2d7096237 Mon Sep 17 00:00:00 2001 From: Mokhtar Naamani Date: Thu, 9 Mar 2023 09:45:59 +0400 Subject: [PATCH 08/87] v0.9.39 - more weights fixes --- runtime-modules/content/src/weights.rs | 6 +-- .../proposals/codex/src/weights.rs | 46 +++++++++---------- 2 files changed, 26 insertions(+), 26 deletions(-) diff --git a/runtime-modules/content/src/weights.rs b/runtime-modules/content/src/weights.rs index 216550f377..1faf1a94fc 100644 --- a/runtime-modules/content/src/weights.rs +++ b/runtime-modules/content/src/weights.rs @@ -224,11 +224,11 @@ impl WeightInfo for SubstrateWeight { fn delete_channel(a: u32, b: u32, c: u32, ) -> Weight { Weight::from_ref_time(504_219_000) // Standard Error: 377_000 - .saturating_add((70_080_000).saturating_mul(a.into())) + .saturating_add(Weight::from_ref_time(70_080_000).saturating_mul(a.into())) // Standard Error: 329_000 - .saturating_add((26_378_000).saturating_mul(b.into())) + .saturating_add(Weight::from_ref_time(26_378_000).saturating_mul(b.into())) // Standard Error: 45_000 - .saturating_add((21_866_000).saturating_mul(c.into())) + .saturating_add(Weight::from_ref_time(21_866_000).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(a.into()))) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(b.into()))) diff --git a/runtime-modules/proposals/codex/src/weights.rs b/runtime-modules/proposals/codex/src/weights.rs index 3fb2b344bd..2487fc4c03 100644 --- a/runtime-modules/proposals/codex/src/weights.rs +++ b/runtime-modules/proposals/codex/src/weights.rs @@ -88,7 +88,7 @@ impl WeightInfo for SubstrateWeight { // Standard Error: 8_000 .saturating_add(Weight::from_ref_time(1_874_000).saturating_mul(i.into())) // Standard Error: 66_000 - .saturating_add(Weight::from_ref_time(832_000).saturating_mul(t_u64)) + .saturating_add(Weight::from_ref_time(832_000).saturating_mul(t.into())) // Standard Error: 66_000 .saturating_add(Weight::from_ref_time(1_020_000).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) @@ -110,7 +110,7 @@ impl WeightInfo for SubstrateWeight { // Standard Error: 5_000 .saturating_add(Weight::from_ref_time(1_891_000).saturating_mul(i.into())) // Standard Error: 46_000 - .saturating_add(Weight::from_ref_time(855_000).saturating_mul(t_u64)) + .saturating_add(Weight::from_ref_time(855_000).saturating_mul(t.into())) // Standard Error: 46_000 .saturating_add(Weight::from_ref_time(1_089_000).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) @@ -130,7 +130,7 @@ impl WeightInfo for SubstrateWeight { fn create_proposal_funding_request(_i: u32, t: u32, d: u32, ) -> Weight { Weight::from_ref_time(106_889_000) // Standard Error: 25_000 - .saturating_add(Weight::from_ref_time(1_318_000).saturating_mul(t_u64)) + .saturating_add(Weight::from_ref_time(1_318_000).saturating_mul(t.into())) // Standard Error: 25_000 .saturating_add(Weight::from_ref_time(1_443_000).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) @@ -151,7 +151,7 @@ impl WeightInfo for SubstrateWeight { fn create_proposal_set_max_validator_count(t: u32, d: u32, ) -> Weight { Weight::from_ref_time(100_376_000) // Standard Error: 21_000 - .saturating_add(Weight::from_ref_time(1_312_000).saturating_mul(t_u64)) + .saturating_add(Weight::from_ref_time(1_312_000).saturating_mul(t.into())) // Standard Error: 21_000 .saturating_add(Weight::from_ref_time(1_472_000).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(8_u64)) @@ -171,7 +171,7 @@ impl WeightInfo for SubstrateWeight { fn create_proposal_veto_proposal(t: u32, d: u32, ) -> Weight { Weight::from_ref_time(115_318_000) // Standard Error: 47_000 - .saturating_add(Weight::from_ref_time(1_112_000).saturating_mul(t_u64)) + .saturating_add(Weight::from_ref_time(1_112_000).saturating_mul(t.into())) // Standard Error: 47_000 .saturating_add(Weight::from_ref_time(1_334_000).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(8_u64)) @@ -193,7 +193,7 @@ impl WeightInfo for SubstrateWeight { // Standard Error: 5_000 .saturating_add(Weight::from_ref_time(2_020_000).saturating_mul(i.into())) // Standard Error: 42_000 - .saturating_add(Weight::from_ref_time(810_000).saturating_mul(t_u64)) + .saturating_add(Weight::from_ref_time(810_000).saturating_mul(t.into())) // Standard Error: 42_000 .saturating_add(Weight::from_ref_time(1_044_000).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) @@ -215,7 +215,7 @@ impl WeightInfo for SubstrateWeight { fn create_proposal_fill_working_group_lead_opening(t: u32, d: u32, ) -> Weight { Weight::from_ref_time(118_975_000) // Standard Error: 38_000 - .saturating_add(Weight::from_ref_time(1_264_000).saturating_mul(t_u64)) + .saturating_add(Weight::from_ref_time(1_264_000).saturating_mul(t.into())) // Standard Error: 38_000 .saturating_add(Weight::from_ref_time(1_302_000).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(9_u64)) @@ -235,7 +235,7 @@ impl WeightInfo for SubstrateWeight { fn create_proposal_update_working_group_budget(t: u32, d: u32, ) -> Weight { Weight::from_ref_time(99_672_000) // Standard Error: 26_000 - .saturating_add(Weight::from_ref_time(1_222_000).saturating_mul(t_u64)) + .saturating_add(Weight::from_ref_time(1_222_000).saturating_mul(t.into())) // Standard Error: 26_000 .saturating_add(Weight::from_ref_time(1_351_000).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) @@ -256,7 +256,7 @@ impl WeightInfo for SubstrateWeight { fn create_proposal_decrease_working_group_lead_stake(t: u32, d: u32, ) -> Weight { Weight::from_ref_time(103_629_000) // Standard Error: 19_000 - .saturating_add(Weight::from_ref_time(1_255_000).saturating_mul(t_u64)) + .saturating_add(Weight::from_ref_time(1_255_000).saturating_mul(t.into())) // Standard Error: 19_000 .saturating_add(Weight::from_ref_time(1_435_000).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(8_u64)) @@ -277,7 +277,7 @@ impl WeightInfo for SubstrateWeight { fn create_proposal_slash_working_group_lead(t: u32, d: u32, ) -> Weight { Weight::from_ref_time(103_453_000) // Standard Error: 26_000 - .saturating_add(Weight::from_ref_time(1_326_000).saturating_mul(t_u64)) + .saturating_add(Weight::from_ref_time(1_326_000).saturating_mul(t.into())) // Standard Error: 26_000 .saturating_add(Weight::from_ref_time(1_418_000).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(8_u64)) @@ -298,7 +298,7 @@ impl WeightInfo for SubstrateWeight { fn create_proposal_set_working_group_lead_reward(t: u32, d: u32, ) -> Weight { Weight::from_ref_time(99_679_000) // Standard Error: 37_000 - .saturating_add(Weight::from_ref_time(1_417_000).saturating_mul(t_u64)) + .saturating_add(Weight::from_ref_time(1_417_000).saturating_mul(t.into())) // Standard Error: 37_000 .saturating_add(Weight::from_ref_time(1_621_000).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(8_u64)) @@ -319,7 +319,7 @@ impl WeightInfo for SubstrateWeight { fn create_proposal_terminate_working_group_lead(t: u32, d: u32, ) -> Weight { Weight::from_ref_time(102_435_000) // Standard Error: 23_000 - .saturating_add(Weight::from_ref_time(1_320_000).saturating_mul(t_u64)) + .saturating_add(Weight::from_ref_time(1_320_000).saturating_mul(t.into())) // Standard Error: 23_000 .saturating_add(Weight::from_ref_time(1_501_000).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(8_u64)) @@ -341,7 +341,7 @@ impl WeightInfo for SubstrateWeight { // Standard Error: 5_000 .saturating_add(Weight::from_ref_time(1_853_000).saturating_mul(i.into())) // Standard Error: 45_000 - .saturating_add(Weight::from_ref_time(837_000).saturating_mul(t_u64)) + .saturating_add(Weight::from_ref_time(837_000).saturating_mul(t.into())) // Standard Error: 45_000 .saturating_add(Weight::from_ref_time(974_000).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) @@ -362,7 +362,7 @@ impl WeightInfo for SubstrateWeight { fn create_proposal_cancel_working_group_lead_opening(t: u32, d: u32, ) -> Weight { Weight::from_ref_time(109_349_000) // Standard Error: 38_000 - .saturating_add(Weight::from_ref_time(1_247_000).saturating_mul(t_u64)) + .saturating_add(Weight::from_ref_time(1_247_000).saturating_mul(t.into())) // Standard Error: 38_000 .saturating_add(Weight::from_ref_time(1_240_000).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(8_u64)) @@ -382,7 +382,7 @@ impl WeightInfo for SubstrateWeight { fn create_proposal_set_membership_price(t: u32, d: u32, ) -> Weight { Weight::from_ref_time(95_468_000) // Standard Error: 34_000 - .saturating_add(Weight::from_ref_time(1_383_000).saturating_mul(t_u64)) + .saturating_add(Weight::from_ref_time(1_383_000).saturating_mul(t.into())) // Standard Error: 34_000 .saturating_add(Weight::from_ref_time(1_501_000).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) @@ -402,7 +402,7 @@ impl WeightInfo for SubstrateWeight { fn create_proposal_set_council_budget_increment(t: u32, d: u32, ) -> Weight { Weight::from_ref_time(97_264_000) // Standard Error: 19_000 - .saturating_add(Weight::from_ref_time(1_261_000).saturating_mul(t_u64)) + .saturating_add(Weight::from_ref_time(1_261_000).saturating_mul(t.into())) // Standard Error: 19_000 .saturating_add(Weight::from_ref_time(1_439_000).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) @@ -422,7 +422,7 @@ impl WeightInfo for SubstrateWeight { fn create_proposal_set_councilor_reward(t: u32, d: u32, ) -> Weight { Weight::from_ref_time(97_564_000) // Standard Error: 18_000 - .saturating_add(Weight::from_ref_time(1_259_000).saturating_mul(t_u64)) + .saturating_add(Weight::from_ref_time(1_259_000).saturating_mul(t.into())) // Standard Error: 18_000 .saturating_add(Weight::from_ref_time(1_422_000).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) @@ -442,7 +442,7 @@ impl WeightInfo for SubstrateWeight { fn create_proposal_set_initial_invitation_balance(t: u32, d: u32, ) -> Weight { Weight::from_ref_time(98_633_000) // Standard Error: 25_000 - .saturating_add(Weight::from_ref_time(1_198_000).saturating_mul(t_u64)) + .saturating_add(Weight::from_ref_time(1_198_000).saturating_mul(t.into())) // Standard Error: 25_000 .saturating_add(Weight::from_ref_time(1_442_000).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) @@ -462,7 +462,7 @@ impl WeightInfo for SubstrateWeight { fn create_proposal_set_initial_invitation_count(t: u32, d: u32, ) -> Weight { Weight::from_ref_time(96_739_000) // Standard Error: 30_000 - .saturating_add(Weight::from_ref_time(1_310_000).saturating_mul(t_u64)) + .saturating_add(Weight::from_ref_time(1_310_000).saturating_mul(t.into())) // Standard Error: 30_000 .saturating_add(Weight::from_ref_time(1_446_000).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) @@ -482,7 +482,7 @@ impl WeightInfo for SubstrateWeight { fn create_proposal_set_membership_lead_invitation_quota(t: u32, d: u32, ) -> Weight { Weight::from_ref_time(100_502_000) // Standard Error: 24_000 - .saturating_add(Weight::from_ref_time(1_194_000).saturating_mul(t_u64)) + .saturating_add(Weight::from_ref_time(1_194_000).saturating_mul(t.into())) // Standard Error: 24_000 .saturating_add(Weight::from_ref_time(1_306_000).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) @@ -502,7 +502,7 @@ impl WeightInfo for SubstrateWeight { fn create_proposal_set_referral_cut(t: u32, d: u32, ) -> Weight { Weight::from_ref_time(97_395_000) // Standard Error: 22_000 - .saturating_add(Weight::from_ref_time(1_255_000).saturating_mul(t_u64)) + .saturating_add(Weight::from_ref_time(1_255_000).saturating_mul(t.into())) // Standard Error: 22_000 .saturating_add(Weight::from_ref_time(1_448_000).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) @@ -522,7 +522,7 @@ impl WeightInfo for SubstrateWeight { fn create_proposal_update_global_nft_limit(t: u32, d: u32, ) -> Weight { Weight::from_ref_time(95_855_000) // Standard Error: 23_000 - .saturating_add(Weight::from_ref_time(1_340_000).saturating_mul(t_u64)) + .saturating_add(Weight::from_ref_time(1_340_000).saturating_mul(t.into())) // Standard Error: 23_000 .saturating_add(Weight::from_ref_time(1_517_000).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) @@ -542,7 +542,7 @@ impl WeightInfo for SubstrateWeight { fn create_proposal_update_channel_payouts(t: u32, d: u32, i: u32, ) -> Weight { Weight::from_ref_time(121_494_000) // Standard Error: 43_000 - .saturating_add(Weight::from_ref_time(801_000).saturating_mul(t_u64)) + .saturating_add(Weight::from_ref_time(801_000).saturating_mul(t.into())) // Standard Error: 43_000 .saturating_add(Weight::from_ref_time(1_010_000).saturating_mul(d.into())) // Standard Error: 6_000 From e35ed918d248b2f9f6bf33d48da0b14688f81d24 Mon Sep 17 00:00:00 2001 From: Mokhtar Naamani Date: Thu, 9 Mar 2023 09:47:23 +0400 Subject: [PATCH 09/87] v0.9.39 - fix pallet builds --- runtime-modules/bounty/src/lib.rs | 4 +-- runtime-modules/constitution/src/lib.rs | 2 +- runtime-modules/council/src/benchmarking.rs | 2 +- runtime-modules/council/src/lib.rs | 19 +++++++--- runtime-modules/forum/src/lib.rs | 2 +- runtime-modules/membership/src/lib.rs | 2 +- .../project-token/src/benchmarking.rs | 2 +- runtime-modules/project-token/src/lib.rs | 2 +- runtime-modules/project-token/src/types.rs | 35 ++++++++++++++++--- .../proposals/codex/src/benchmarking.rs | 2 +- runtime-modules/proposals/codex/src/lib.rs | 3 +- .../proposals/discussion/src/benchmarking.rs | 2 +- .../proposals/discussion/src/lib.rs | 10 ++++-- .../proposals/engine/src/benchmarking.rs | 2 +- runtime-modules/proposals/engine/src/lib.rs | 20 ++++++----- .../referendum/src/benchmarking.rs | 2 +- runtime-modules/referendum/src/lib.rs | 8 ++++- runtime-modules/storage/src/lib.rs | 2 +- runtime-modules/utility/src/lib.rs | 6 ++-- .../working-group/src/benchmarking.rs | 2 +- runtime-modules/working-group/src/lib.rs | 8 +++-- 21 files changed, 95 insertions(+), 42 deletions(-) diff --git a/runtime-modules/bounty/src/lib.rs b/runtime-modules/bounty/src/lib.rs index cf59937422..a5745d60d5 100644 --- a/runtime-modules/bounty/src/lib.rs +++ b/runtime-modules/bounty/src/lib.rs @@ -121,7 +121,7 @@ use sp_runtime::{Perbill, SaturatedConversion}; use sp_std::clone::Clone; use sp_std::collections::{btree_map::BTreeMap, btree_set::BTreeSet}; use sp_std::convert::{TryFrom, TryInto}; -use sp_std::vec::Vec; +use sp_std::{vec, vec::Vec}; use staking_handler::StakingHandler; /// Main pallet-bounty trait. @@ -141,7 +141,7 @@ pub trait Config: /// providers controller id for a member. type Membership: StakingAccountValidator + MembershipInfoProvider - + MemberOriginValidator, Self::AccountId>; + + MemberOriginValidator, Self::AccountId>; /// Weight information for extrinsics in this pallet. type WeightInfo: WeightInfo; diff --git a/runtime-modules/constitution/src/lib.rs b/runtime-modules/constitution/src/lib.rs index efb6fc9b07..36f4c6c462 100644 --- a/runtime-modules/constitution/src/lib.rs +++ b/runtime-modules/constitution/src/lib.rs @@ -38,7 +38,7 @@ use scale_info::TypeInfo; use serde::{Deserialize, Serialize}; use sp_runtime::traits::Hash; use sp_runtime::SaturatedConversion; -use sp_std::vec::Vec; +use sp_std::{vec, vec::Vec}; type WeightInfoConstitution = ::WeightInfo; diff --git a/runtime-modules/council/src/benchmarking.rs b/runtime-modules/council/src/benchmarking.rs index 2da6668e88..599a9faf73 100644 --- a/runtime-modules/council/src/benchmarking.rs +++ b/runtime-modules/council/src/benchmarking.rs @@ -3,9 +3,9 @@ use super::*; use balances::Pallet as Balances; use frame_benchmarking::{account, benchmarks, Zero}; use frame_support::traits::{Currency, OnFinalize, OnInitialize}; -use frame_system::RuntimeEventRecord; use frame_system::Pallet as System; use frame_system::RawOrigin; +use frame_system::RuntimeEventRecord; use membership::Module as Membership; use sp_runtime::traits::{Bounded, One}; use sp_std::convert::TryInto; diff --git a/runtime-modules/council/src/lib.rs b/runtime-modules/council/src/lib.rs index 99e2ff82b4..c411a944de 100644 --- a/runtime-modules/council/src/lib.rs +++ b/runtime-modules/council/src/lib.rs @@ -80,7 +80,7 @@ use scale_info::TypeInfo; use serde::{Deserialize, Serialize}; use sp_runtime::traits::{Hash, One, SaturatedConversion, Saturating, Zero}; use sp_std::convert::TryInto; -use sp_std::vec::Vec; +use sp_std::{vec, vec::Vec}; use staking_handler::StakingHandler; // declared modules @@ -210,7 +210,7 @@ impl pub type Balance = ::Balance; pub type VotePowerOf = <::Referendum as ReferendumManager< - ::Origin, + ::RuntimeOrigin, ::AccountId, ::MemberId, ::Hash, @@ -248,7 +248,12 @@ pub trait Config: type RuntimeEvent: From> + Into<::RuntimeEvent>; /// Referendum used for council elections. - type Referendum: ReferendumManager; + type Referendum: ReferendumManager< + Self::RuntimeOrigin, + Self::AccountId, + Self::MemberId, + Self::Hash, + >; /// Minimum number of extra candidates needed for the valid election. /// Number of total candidates is equal to council size plus extra candidates. @@ -299,7 +304,7 @@ pub trait Config: /// Validates member id and origin combination type MemberOriginValidator: MemberOriginValidator< - Self::Origin, + Self::RuntimeOrigin, common::MemberId, Self::AccountId, >; @@ -522,6 +527,12 @@ impl From for Error { } } +impl From for Error { + fn from(err: sp_runtime::DispatchError) -> Self { + err.into() + } +} + /////////////////// Module definition and implementation /////////////////////// decl_module! { diff --git a/runtime-modules/forum/src/lib.rs b/runtime-modules/forum/src/lib.rs index 3a291d92dc..adda4f3108 100755 --- a/runtime-modules/forum/src/lib.rs +++ b/runtime-modules/forum/src/lib.rs @@ -175,7 +175,7 @@ pub trait Config: /// Validates member id and origin combination type MemberOriginValidator: MemberOriginValidator< - Self::Origin, + Self::RuntimeOrigin, common::MemberId, Self::AccountId, >; diff --git a/runtime-modules/membership/src/lib.rs b/runtime-modules/membership/src/lib.rs index 77714d586f..020e18c341 100644 --- a/runtime-modules/membership/src/lib.rs +++ b/runtime-modules/membership/src/lib.rs @@ -83,7 +83,7 @@ use sp_runtime::{ SaturatedConversion, }; use sp_std::convert::TryInto; -use sp_std::vec::Vec; +use sp_std::{vec, vec::Vec}; use common::costs::{burn_from_usable, has_sufficient_balance_for_payment}; use common::membership::{MemberOriginValidator, MembershipInfoProvider}; diff --git a/runtime-modules/project-token/src/benchmarking.rs b/runtime-modules/project-token/src/benchmarking.rs index f46fc307ff..ab4746ce10 100644 --- a/runtime-modules/project-token/src/benchmarking.rs +++ b/runtime-modules/project-token/src/benchmarking.rs @@ -6,9 +6,9 @@ use crate::Module as Token; use balances::Pallet as Balances; use common::membership::MembershipTypes; use frame_benchmarking::{account, benchmarks, Zero}; -use frame_system::RuntimeEventRecord; use frame_system::Pallet as System; use frame_system::RawOrigin; +use frame_system::RuntimeEventRecord; use membership::{BuyMembershipParameters, Module as Members}; use sp_runtime::{traits::Hash, Permill, SaturatedConversion}; use sp_std::{vec, vec::Vec}; diff --git a/runtime-modules/project-token/src/lib.rs b/runtime-modules/project-token/src/lib.rs index 607761794b..d3309c9d16 100644 --- a/runtime-modules/project-token/src/lib.rs +++ b/runtime-modules/project-token/src/lib.rs @@ -123,7 +123,7 @@ pub trait Config: /// Member origin validator type MemberOriginValidator: MemberOriginValidator< - Self::Origin, + Self::RuntimeOrigin, MemberIdOf, Self::AccountId, >; diff --git a/runtime-modules/project-token/src/types.rs b/runtime-modules/project-token/src/types.rs index f1f3f50910..5f31fcee8d 100644 --- a/runtime-modules/project-token/src/types.rs +++ b/runtime-modules/project-token/src/types.rs @@ -1,5 +1,6 @@ use codec::{Decode, Encode, MaxEncodedLen}; use common::{bloat_bond::RepayableBloatBond, MembershipTypes}; +use core::ops::AddAssign; use frame_support::storage::bounded_btree_map::BoundedBTreeMap; use frame_support::{ dispatch::{fmt::Debug, DispatchError, DispatchResult}, @@ -324,8 +325,16 @@ pub struct VestingSchedule { impl VestingSchedule where BlockNumber: Saturating + PartialOrd + Copy, - Balance: - Saturating + Clone + Copy + From + Unsigned + TryInto + TryInto + Ord + Zero, + Balance: Saturating + + Clone + + Copy + + From + + Unsigned + + TryInto + + TryInto + + Ord + + Zero + + AddAssign, { /// Construct a vesting schedule from `VestingScheduleParams` and `init_block` /// @@ -489,7 +498,15 @@ impl > where BlockNumber: Saturating + Zero + Copy + Clone + PartialOrd, - Balance: Saturating + Clone + Copy + From + Unsigned + TryInto + TryInto + Ord, + Balance: Saturating + + Clone + + Copy + + From + + Unsigned + + TryInto + + TryInto + + Ord + + AddAssign, { pub(crate) fn try_from_params( params: TokenSaleParamsOf, @@ -915,7 +932,8 @@ where + PartialOrd + Ord + TryInto - + Copy, + + Copy + + AddAssign, BlockNumber: Copy + Clone + PartialOrd + Ord + Saturating + From + Unsigned, RepayableBloatBond: Default, MaxVestingSchedules: Get, @@ -1184,7 +1202,14 @@ impl, > where - Balance: Zero + Copy + Saturating + Debug + From + UniqueSaturatedInto + Unsigned, + Balance: Zero + + Copy + + Saturating + + Debug + + From + + UniqueSaturatedInto + + Unsigned + + AddAssign, BlockNumber: PartialOrd + Saturating + Copy + AtLeast32BitUnsigned, JoyBalance: Copy + Saturating + Zero, { diff --git a/runtime-modules/proposals/codex/src/benchmarking.rs b/runtime-modules/proposals/codex/src/benchmarking.rs index dd3ca0dd40..d58616819b 100644 --- a/runtime-modules/proposals/codex/src/benchmarking.rs +++ b/runtime-modules/proposals/codex/src/benchmarking.rs @@ -13,9 +13,9 @@ use content::NftLimitPeriod; use frame_benchmarking::{account, benchmarks, Zero}; use frame_support::sp_runtime::traits::Bounded; use frame_support::traits::Currency; -use frame_system::RuntimeEventRecord; use frame_system::Pallet as System; use frame_system::RawOrigin; +use frame_system::RuntimeEventRecord; use membership::Module as Membership; use proposals_engine::Module as Engine; use sp_core::Hasher; diff --git a/runtime-modules/proposals/codex/src/lib.rs b/runtime-modules/proposals/codex/src/lib.rs index f4beb3d500..8e2fe9e6f9 100644 --- a/runtime-modules/proposals/codex/src/lib.rs +++ b/runtime-modules/proposals/codex/src/lib.rs @@ -75,6 +75,7 @@ use sp_runtime::SaturatedConversion; use sp_std::clone::Clone; use sp_std::collections::btree_set::BTreeSet; use sp_std::convert::TryInto; +use sp_std::vec; use common::membership::MemberOriginValidator; use common::to_kb; @@ -143,7 +144,7 @@ pub trait Config: /// Validates member id and origin combination. type MembershipOriginValidator: MemberOriginValidator< - Self::Origin, + Self::RuntimeOrigin, MemberId, Self::AccountId, >; diff --git a/runtime-modules/proposals/discussion/src/benchmarking.rs b/runtime-modules/proposals/discussion/src/benchmarking.rs index 73fbf9674c..ac4ae89a70 100644 --- a/runtime-modules/proposals/discussion/src/benchmarking.rs +++ b/runtime-modules/proposals/discussion/src/benchmarking.rs @@ -7,9 +7,9 @@ use council::Module as Council; use frame_benchmarking::{account, benchmarks}; use frame_support::sp_runtime::traits::Bounded; use frame_support::traits::{Currency, OnFinalize, OnInitialize}; -use frame_system::RuntimeEventRecord; use frame_system::Pallet as System; use frame_system::RawOrigin; +use frame_system::RuntimeEventRecord; use membership::Module as Membership; use referendum::Module as Referendum; use referendum::ReferendumManager; diff --git a/runtime-modules/proposals/discussion/src/lib.rs b/runtime-modules/proposals/discussion/src/lib.rs index 2aee44974d..50981f81e6 100644 --- a/runtime-modules/proposals/discussion/src/lib.rs +++ b/runtime-modules/proposals/discussion/src/lib.rs @@ -85,7 +85,7 @@ use sp_runtime::traits::{AccountIdConversion, Saturating, Zero}; use sp_std::clone::Clone; use sp_std::collections::btree_set::BTreeSet; use sp_std::convert::TryInto; -use sp_std::vec::Vec; +use sp_std::{vec, vec::Vec}; use common::bloat_bond::{RepayableBloatBond, RepayableBloatBondOf}; use common::costs::{has_sufficient_balance_for_fees, pay_fee}; @@ -141,14 +141,18 @@ pub trait Config: type RuntimeEvent: From> + Into<::RuntimeEvent>; /// Validates post author id and origin combination - type AuthorOriginValidator: MemberOriginValidator, Self::AccountId>; + type AuthorOriginValidator: MemberOriginValidator< + Self::RuntimeOrigin, + MemberId, + Self::AccountId, + >; /// For checking member existance type MembershipInfoProvider: MembershipInfoProvider; /// Defines whether the member is an active councilor. type CouncilOriginValidator: CouncilOriginValidator< - Self::Origin, + Self::RuntimeOrigin, MemberId, Self::AccountId, >; diff --git a/runtime-modules/proposals/engine/src/benchmarking.rs b/runtime-modules/proposals/engine/src/benchmarking.rs index 617a122548..1e3e06890f 100644 --- a/runtime-modules/proposals/engine/src/benchmarking.rs +++ b/runtime-modules/proposals/engine/src/benchmarking.rs @@ -7,9 +7,9 @@ use core::convert::TryInto; use council::Module as Council; use frame_benchmarking::{account, benchmarks}; use frame_support::traits::{Currency, OnFinalize, OnInitialize}; -use frame_system::RuntimeEventRecord; use frame_system::Pallet as System; use frame_system::RawOrigin; +use frame_system::RuntimeEventRecord; use membership::Module as Membership; use referendum::Module as Referendum; use referendum::ReferendumManager; diff --git a/runtime-modules/proposals/engine/src/lib.rs b/runtime-modules/proposals/engine/src/lib.rs index b4fc014e42..d7ddcdd177 100644 --- a/runtime-modules/proposals/engine/src/lib.rs +++ b/runtime-modules/proposals/engine/src/lib.rs @@ -161,17 +161,19 @@ pub mod weights; pub use weights::WeightInfo; use codec::{Decode, MaxEncodedLen}; -use frame_support::dispatch::{DispatchError, DispatchResult, UnfilteredDispatchable}; +use frame_support::dispatch::{ + DispatchError, DispatchResult, GetDispatchInfo, UnfilteredDispatchable, +}; use frame_support::storage::{bounded_vec::BoundedVec, IterableStorageMap}; use frame_support::traits::{Get, LockIdentifier}; -use frame_support::weights::{GetDispatchInfo, Weight}; +use frame_support::weights::Weight; use frame_support::{ decl_error, decl_event, decl_module, decl_storage, ensure, Parameter, StorageDoubleMap, }; use frame_system::{ensure_root, RawOrigin}; use sp_arithmetic::traits::{SaturatedConversion, Saturating, Zero}; use sp_std::convert::TryInto; -use sp_std::vec::Vec; +use sp_std::{vec, vec::Vec}; use common::council::CouncilOriginValidator; use common::membership::MemberOriginValidator; @@ -193,14 +195,14 @@ pub trait Config: /// Validates proposer id and origin combination type ProposerOriginValidator: MemberOriginValidator< - Self::Origin, + Self::RuntimeOrigin, MemberId, Self::AccountId, >; /// Validates voter id and origin combination type CouncilOriginValidator: CouncilOriginValidator< - Self::Origin, + Self::RuntimeOrigin, MemberId, Self::AccountId, >; @@ -239,7 +241,7 @@ pub trait Config: /// Proposals executable code. Can be instantiated by external module Call enum members. type DispatchableCallCode: Parameter - + UnfilteredDispatchable + + UnfilteredDispatchable + GetDispatchInfo + Default; @@ -880,7 +882,7 @@ impl Module { let proposal_code_result = T::DispatchableCallCode::decode(&mut &proposal_code[..]); - let mut execution_code_weight = 0; + let mut execution_code_weight = Weight::from_all(0); let execution_status = match proposal_code_result { Ok(proposal_code) => { @@ -926,7 +928,7 @@ impl Module { proposal_decision.clone(), )); - let mut executed_weight = 0; + let mut executed_weight = Weight::from_all(0); // deal with stakes if necessary if proposal_decision @@ -1042,7 +1044,7 @@ impl Module { let proposals = >::iter().collect::>(); let now = Self::current_block(); - let mut executed_weight = 0; + let mut executed_weight = Weight::from_all(0); for (proposal_id, proposal) in proposals { match proposal.status { diff --git a/runtime-modules/referendum/src/benchmarking.rs b/runtime-modules/referendum/src/benchmarking.rs index 2c3334a62c..c04c3b9b5b 100644 --- a/runtime-modules/referendum/src/benchmarking.rs +++ b/runtime-modules/referendum/src/benchmarking.rs @@ -3,9 +3,9 @@ use super::*; use frame_benchmarking::{account, benchmarks_instance, Zero}; use frame_support::traits::{Currency, OnFinalize, OnInitialize}; -use frame_system::RuntimeEventRecord; use frame_system::Pallet as System; use frame_system::RawOrigin; +use frame_system::RuntimeEventRecord; use membership::Module as Membership; use sp_runtime::traits::{Bounded, One}; use sp_std::prelude::*; diff --git a/runtime-modules/referendum/src/lib.rs b/runtime-modules/referendum/src/lib.rs index 849eb6b947..bda47b4bb1 100644 --- a/runtime-modules/referendum/src/lib.rs +++ b/runtime-modules/referendum/src/lib.rs @@ -248,7 +248,7 @@ pub trait Config: >; /// Origin from which the referendum can be started. - type ManagerOrigin: EnsureOrigin; + type ManagerOrigin: EnsureOrigin; /// Power of vote(s) used to determine the referendum winner(s). type VotePower: Parameter @@ -410,6 +410,12 @@ impl, I: Instance> From for Error { } } +impl, I: Instance> From for Error { + fn from(err: sp_runtime::DispatchError) -> Self { + err.into() + } +} + /////////////////// Module definition and implementation /////////////////////// decl_module! { diff --git a/runtime-modules/storage/src/lib.rs b/runtime-modules/storage/src/lib.rs index 2371fce79d..dddef593b9 100644 --- a/runtime-modules/storage/src/lib.rs +++ b/runtime-modules/storage/src/lib.rs @@ -165,7 +165,7 @@ use sp_std::collections::btree_set::BTreeSet; use sp_std::convert::TryInto; use sp_std::iter; use sp_std::marker::PhantomData; -use sp_std::vec::Vec; +use sp_std::{vec, vec::Vec}; use common::bloat_bond::{RepayableBloatBond, RepayableBloatBondOf}; use common::costs::{has_sufficient_balance_for_fees, pay_fee}; diff --git a/runtime-modules/utility/src/lib.rs b/runtime-modules/utility/src/lib.rs index caf92f59f8..3a98099bd9 100644 --- a/runtime-modules/utility/src/lib.rs +++ b/runtime-modules/utility/src/lib.rs @@ -46,17 +46,17 @@ pub use weights::WeightInfo; use common::to_kb; use common::{working_group::WorkingGroup, BalanceKind}; use council::Module as Council; -use frame_support::dispatch::DispatchResultWithPostInfo; +use frame_support::dispatch::{DispatchClass, DispatchResultWithPostInfo}; use frame_support::traits::Get; use frame_support::traits::{Currency, Imbalance}; -use frame_support::weights::{DispatchClass, Weight}; +use frame_support::weights::Weight; use frame_support::{decl_error, decl_event, decl_module, decl_storage, ensure, print}; use frame_system::{ensure_root, ensure_signed}; use sp_arithmetic::traits::Zero; use sp_runtime::traits::Saturating; use sp_runtime::SaturatedConversion; use sp_std::convert::TryInto; -use sp_std::vec::Vec; +use sp_std::{vec, vec::Vec}; type BalanceOf = ::Balance; type Balances = balances::Pallet; diff --git a/runtime-modules/working-group/src/benchmarking.rs b/runtime-modules/working-group/src/benchmarking.rs index fca37c00bd..b638610efc 100644 --- a/runtime-modules/working-group/src/benchmarking.rs +++ b/runtime-modules/working-group/src/benchmarking.rs @@ -3,9 +3,9 @@ use super::*; use core::convert::TryInto; use frame_benchmarking::{account, benchmarks_instance, Zero}; use frame_support::traits::OnInitialize; -use frame_system::RuntimeEventRecord; use frame_system::Pallet as System; use frame_system::RawOrigin; +use frame_system::RuntimeEventRecord; use sp_runtime::traits::Bounded; use sp_std::prelude::*; use sp_std::vec; diff --git a/runtime-modules/working-group/src/lib.rs b/runtime-modules/working-group/src/lib.rs index 5ed6240bd7..17ccf7b016 100644 --- a/runtime-modules/working-group/src/lib.rs +++ b/runtime-modules/working-group/src/lib.rs @@ -71,7 +71,7 @@ use sp_arithmetic::traits::{One, Zero}; use sp_runtime::traits::{Hash, SaturatedConversion, Saturating}; use sp_std::borrow::ToOwned; use sp_std::collections::{btree_map::BTreeMap, btree_set::BTreeSet}; -use sp_std::vec::Vec; +use sp_std::{vec, vec::Vec}; pub use errors::Error; pub use types::*; @@ -109,7 +109,11 @@ pub trait Config: type StakingAccountValidator: common::StakingAccountValidator; /// Validates member id and origin combination. - type MemberOriginValidator: MemberOriginValidator, Self::AccountId>; + type MemberOriginValidator: MemberOriginValidator< + Self::RuntimeOrigin, + MemberId, + Self::AccountId, + >; /// Defines min unstaking period in the group. type MinUnstakingPeriodLimit: Get; From 3a0ab6c47fcfaad97cf432980fd9e3fee2fb1366 Mon Sep 17 00:00:00 2001 From: Mokhtar Naamani Date: Thu, 9 Mar 2023 11:44:03 +0400 Subject: [PATCH 10/87] v0.9.39 - fix mock and tests use of Origin and Event types --- runtime-modules/bounty/src/tests/fixtures.rs | 10 +- runtime-modules/bounty/src/tests/mocks.rs | 14 +- .../constitution/src/tests/mocks.rs | 4 +- runtime-modules/content/src/tests/channels.rs | 4 +- .../src/tests/creator_tokens/deissue.rs | 2 +- .../finalize_creator_token_sale.rs | 2 +- .../tests/creator_tokens/init_token_sale.rs | 2 +- .../content/src/tests/creator_tokens/issue.rs | 2 +- .../tests/creator_tokens/issuer_transfer.rs | 2 +- .../creator_tokens/make_permissionless.rs | 2 +- runtime-modules/content/src/tests/curators.rs | 32 ++--- runtime-modules/content/src/tests/fixtures.rs | 129 ++++++++++-------- runtime-modules/content/src/tests/merkle.rs | 4 +- .../content/src/tests/metaprotocol.rs | 40 +++--- runtime-modules/content/src/tests/mock.rs | 30 ++-- .../src/tests/nft/accept_incoming_offer.rs | 36 ++--- .../content/src/tests/nft/buy_nft.rs | 42 +++--- .../content/src/tests/nft/cancel_buy_now.rs | 28 ++-- .../src/tests/nft/cancel_nft_auction.rs | 38 +++--- .../content/src/tests/nft/cancel_offer.rs | 28 ++-- .../src/tests/nft/cancel_open_auction_bid.rs | 28 ++-- .../tests/nft/claim_won_english_auction.rs | 96 +++++++------ .../content/src/tests/nft/destroy_nft.rs | 24 ++-- .../content/src/tests/nft/issue_nft.rs | 36 ++--- .../content/src/tests/nft/make_bid.rs | 128 ++++++++--------- .../content/src/tests/nft/offer_nft.rs | 24 ++-- .../src/tests/nft/pick_open_auction_winner.rs | 62 ++++----- .../content/src/tests/nft/sell_nft.rs | 24 ++-- .../content/src/tests/nft/sling_nft_back.rs | 20 +-- .../src/tests/nft/start_nft_auction.rs | 60 ++++---- .../content/src/tests/nft/update_buy_now.rs | 28 ++-- .../content/src/tests/nft/update_nft_limit.rs | 4 +- runtime-modules/content/src/tests/videos.rs | 2 +- runtime-modules/council/src/mock.rs | 40 +++--- runtime-modules/forum/src/mock.rs | 50 +++---- .../membership/src/tests/fixtures.rs | 12 +- runtime-modules/membership/src/tests/mock.rs | 16 ++- runtime-modules/membership/src/tests/mod.rs | 8 +- .../project-token/src/tests/fixtures.rs | 13 +- .../project-token/src/tests/mock.rs | 33 +++-- .../project-token/src/tests/sale.rs | 2 +- .../proposals/codex/src/tests/mock.rs | 18 +-- .../proposals/discussion/src/tests/mock.rs | 18 +-- .../proposals/engine/src/tests/mock/mod.rs | 18 +-- .../proposals/engine/src/tests/mod.rs | 12 +- runtime-modules/referendum/src/mock.rs | 30 ++-- runtime-modules/staking-handler/src/mock.rs | 4 +- runtime-modules/storage/src/tests/fixtures.rs | 2 +- runtime-modules/storage/src/tests/mocks.rs | 26 ++-- runtime-modules/utility/src/tests/mocks.rs | 18 +-- .../working-group/src/tests/fixtures.rs | 10 +- .../working-group/src/tests/mock.rs | 8 +- 52 files changed, 698 insertions(+), 627 deletions(-) diff --git a/runtime-modules/bounty/src/tests/fixtures.rs b/runtime-modules/bounty/src/tests/fixtures.rs index ab3ecdc3b0..5e37997c94 100644 --- a/runtime-modules/bounty/src/tests/fixtures.rs +++ b/runtime-modules/bounty/src/tests/fixtures.rs @@ -1,4 +1,4 @@ -use super::mocks::{Balances, Bounty, Event, System, Test}; +use super::mocks::{Balances, Bounty, RuntimeEvent, System, Test}; use crate::{ AssuranceContractType, BountyActor, BountyCreationParameters, BountyMilestone, BountyRecord, ClosedContractWhitelist, Config, Entry, FundingType, OracleJudgmentOf, RawEvent, @@ -65,7 +65,7 @@ impl EventFixture { OracleJudgmentOf, >, ) { - let converted_event = Event::Bounty(expected_raw_event); + let converted_event = RuntimeEvent::Bounty(expected_raw_event); Self::assert_last_global_event(converted_event) } @@ -81,12 +81,12 @@ impl EventFixture { OracleJudgmentOf, >, ) { - let converted_event = Event::Bounty(expected_raw_event); + let converted_event = RuntimeEvent::Bounty(expected_raw_event); Self::contains_global_event(converted_event) } - pub fn assert_last_global_event(expected_event: Event) { + pub fn assert_last_global_event(expected_event: RuntimeEvent) { let expected_event = EventRecord { phase: Phase::Initialization, event: expected_event, @@ -96,7 +96,7 @@ impl EventFixture { assert_eq!(System::events().pop().unwrap(), expected_event); } - fn contains_global_event(expected_event: Event) { + fn contains_global_event(expected_event: RuntimeEvent) { let expected_event = EventRecord { phase: Phase::Initialization, event: expected_event, diff --git a/runtime-modules/bounty/src/tests/mocks.rs b/runtime-modules/bounty/src/tests/mocks.rs index 2b6400a3d4..8bbb332273 100644 --- a/runtime-modules/bounty/src/tests/mocks.rs +++ b/runtime-modules/bounty/src/tests/mocks.rs @@ -51,8 +51,8 @@ impl frame_system::Config for Test { type BaseCallFilter = frame_support::traits::Everything; type BlockWeights = (); type BlockLength = (); - type Origin = Origin; - type Call = Call; + type RuntimeOrigin = RuntimeOrigin; + type RuntimeCall = RuntimeCall; type Index = u64; type BlockNumber = u64; type Hash = H256; @@ -145,9 +145,9 @@ impl common::membership::MembershipTypes for Test { type ActorId = u64; } -impl common::membership::MemberOriginValidator for () { +impl common::membership::MemberOriginValidator for () { fn ensure_member_controller_account_origin( - origin: Origin, + origin: RuntimeOrigin, member_id: u64, ) -> Result { let sender = ensure_signed(origin)?; @@ -224,13 +224,15 @@ impl common::working_group::WorkingGroupBudgetHandler for Wg { impl common::working_group::WorkingGroupAuthenticator for Wg { fn ensure_worker_origin( - _origin: ::Origin, + _origin: ::RuntimeOrigin, _worker_id: &::ActorId, ) -> DispatchResult { unimplemented!(); } - fn ensure_leader_origin(_origin: ::Origin) -> DispatchResult { + fn ensure_leader_origin( + _origin: ::RuntimeOrigin, + ) -> DispatchResult { unimplemented!() } diff --git a/runtime-modules/constitution/src/tests/mocks.rs b/runtime-modules/constitution/src/tests/mocks.rs index 1a2fe660d0..b6fb3b05d1 100644 --- a/runtime-modules/constitution/src/tests/mocks.rs +++ b/runtime-modules/constitution/src/tests/mocks.rs @@ -36,8 +36,8 @@ impl frame_system::Config for Test { type BlockWeights = (); type BlockLength = (); type DbWeight = (); - type Origin = Origin; - type Call = Call; + type RuntimeOrigin = RuntimeOrigin; + type RuntimeCall = RuntimeCall; type Index = u64; type BlockNumber = u64; type Hash = H256; diff --git a/runtime-modules/content/src/tests/channels.rs b/runtime-modules/content/src/tests/channels.rs index e8ce556df8..b280ab1649 100644 --- a/runtime-modules/content/src/tests/channels.rs +++ b/runtime-modules/content/src/tests/channels.rs @@ -2035,7 +2035,7 @@ fn video_nft_cannot_be_issued_when_channel_video_nft_issuance_paused() { // Try to issue nft for existing video as owner assert_eq!( Content::issue_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), VideoId::one(), nft_params.clone() @@ -2045,7 +2045,7 @@ fn video_nft_cannot_be_issued_when_channel_video_nft_issuance_paused() { // Try to issue nft for existing video as collaborator assert_eq!( Content::issue_nft( - Origin::signed(COLLABORATOR_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(COLLABORATOR_MEMBER_ACCOUNT_ID), ContentActor::Member(COLLABORATOR_MEMBER_ID), VideoId::one(), nft_params.clone() diff --git a/runtime-modules/content/src/tests/creator_tokens/deissue.rs b/runtime-modules/content/src/tests/creator_tokens/deissue.rs index d196909de6..30228ac805 100644 --- a/runtime-modules/content/src/tests/creator_tokens/deissue.rs +++ b/runtime-modules/content/src/tests/creator_tokens/deissue.rs @@ -131,7 +131,7 @@ fn deissue_token_fails_during_transfer() { assert_noop!( Content::deissue_creator_token( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), 1u64, ), diff --git a/runtime-modules/content/src/tests/creator_tokens/finalize_creator_token_sale.rs b/runtime-modules/content/src/tests/creator_tokens/finalize_creator_token_sale.rs index 37555cdf8e..630821c4d7 100644 --- a/runtime-modules/content/src/tests/creator_tokens/finalize_creator_token_sale.rs +++ b/runtime-modules/content/src/tests/creator_tokens/finalize_creator_token_sale.rs @@ -11,7 +11,7 @@ fn purchase_tokens_on_sale(amount: u64) { existential_deposit + DEFAULT_CREATOR_TOKEN_SALE_UNIT_PRICE * amount, ); project_token::Module::::purchase_tokens_on_sale( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), project_token::Module::::next_token_id() - 1, SECOND_MEMBER_ID, amount, diff --git a/runtime-modules/content/src/tests/creator_tokens/init_token_sale.rs b/runtime-modules/content/src/tests/creator_tokens/init_token_sale.rs index c0a5f47042..89155ffd38 100644 --- a/runtime-modules/content/src/tests/creator_tokens/init_token_sale.rs +++ b/runtime-modules/content/src/tests/creator_tokens/init_token_sale.rs @@ -131,7 +131,7 @@ fn init_token_sale_fails_during_channel_transfer() { assert_noop!( Content::init_creator_token_sale( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), 1u64, TokenSaleParamsOf:: { diff --git a/runtime-modules/content/src/tests/creator_tokens/issue.rs b/runtime-modules/content/src/tests/creator_tokens/issue.rs index 3a5ba90c03..3a107c8515 100644 --- a/runtime-modules/content/src/tests/creator_tokens/issue.rs +++ b/runtime-modules/content/src/tests/creator_tokens/issue.rs @@ -113,7 +113,7 @@ fn issue_token_fails_during_transfer() { assert_noop!( Content::issue_creator_token( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), 1u64, TokenIssuanceParametersOf::::default(), diff --git a/runtime-modules/content/src/tests/creator_tokens/issuer_transfer.rs b/runtime-modules/content/src/tests/creator_tokens/issuer_transfer.rs index 14cf5f20d1..26ae236ed0 100644 --- a/runtime-modules/content/src/tests/creator_tokens/issuer_transfer.rs +++ b/runtime-modules/content/src/tests/creator_tokens/issuer_transfer.rs @@ -131,7 +131,7 @@ fn unsuccessful_curator_channel_creator_token_issuer_transfer_during_transfer() assert_noop!( Content::creator_token_issuer_transfer( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), 1u64, Transfers( diff --git a/runtime-modules/content/src/tests/creator_tokens/make_permissionless.rs b/runtime-modules/content/src/tests/creator_tokens/make_permissionless.rs index 2d1934778b..500cd26d83 100644 --- a/runtime-modules/content/src/tests/creator_tokens/make_permissionless.rs +++ b/runtime-modules/content/src/tests/creator_tokens/make_permissionless.rs @@ -157,7 +157,7 @@ fn make_creator_token_permissionless_fails_during_transfer() { assert_noop!( Content::make_creator_token_permissionless( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), 1u64, ), diff --git a/runtime-modules/content/src/tests/curators.rs b/runtime-modules/content/src/tests/curators.rs index 96b5be053f..380952deda 100644 --- a/runtime-modules/content/src/tests/curators.rs +++ b/runtime-modules/content/src/tests/curators.rs @@ -4,7 +4,7 @@ use std::collections::BTreeMap; use std::iter::FromIterator; use super::fixtures::*; -use super::mock::{CuratorGroupId, CuratorId, Event, *}; +use super::mock::{CuratorGroupId, CuratorId, RuntimeEvent, *}; use crate::*; use frame_support::{assert_err, assert_ok}; @@ -24,7 +24,7 @@ pub fn add_curator_to_new_group( ) -> CuratorGroupId { let curator_group_id = create_curator_group(BTreeMap::new()); assert_ok!(Content::add_curator_to_group( - Origin::signed(LEAD_ACCOUNT_ID), + RuntimeOrigin::signed(LEAD_ACCOUNT_ID), curator_group_id, curator_id, curator_agent_permissions.iter().cloned().collect() @@ -38,7 +38,7 @@ pub fn add_curator_to_new_group_with_permissions( ) -> CuratorGroupId { let curator_group_id = create_curator_group(permissions); assert_ok!(Content::add_curator_to_group( - Origin::signed(LEAD_ACCOUNT_ID), + RuntimeOrigin::signed(LEAD_ACCOUNT_ID), curator_group_id, curator_id, BTreeSet::new() @@ -58,14 +58,14 @@ fn curator_group_management() { // Activate group assert_ok!(Content::set_curator_group_status( - Origin::signed(LEAD_ACCOUNT_ID), + RuntimeOrigin::signed(LEAD_ACCOUNT_ID), curator_group_id, true )); assert_eq!( System::events().last().unwrap().event, - Event::Content(RawEvent::CuratorGroupStatusSet(curator_group_id, true)) + RuntimeEvent::Content(RawEvent::CuratorGroupStatusSet(curator_group_id, true)) ); let group = Content::curator_group_by_id(curator_group_id); @@ -129,7 +129,7 @@ fn curator_group_management() { // Update group permissions assert_ok!(Content::update_curator_group_permissions( - Origin::signed(LEAD_ACCOUNT_ID), + RuntimeOrigin::signed(LEAD_ACCOUNT_ID), curator_group_id, permissions.clone() )); @@ -137,7 +137,7 @@ fn curator_group_management() { // Check CuratorGroupPermissionsUpdated event assert_eq!( System::events().last().unwrap().event, - Event::Content(RawEvent::CuratorGroupPermissionsUpdated( + RuntimeEvent::Content(RawEvent::CuratorGroupPermissionsUpdated( curator_group_id, permissions.clone() )) @@ -162,7 +162,7 @@ fn curator_group_management() { // Cannot add non curators into group assert_err!( Content::add_curator_to_group( - Origin::signed(LEAD_ACCOUNT_ID), + RuntimeOrigin::signed(LEAD_ACCOUNT_ID), curator_group_id, DEFAULT_MEMBER_ID, // not a curator, BTreeSet::new() @@ -172,7 +172,7 @@ fn curator_group_management() { // Add curator to group assert_ok!(Content::add_curator_to_group( - Origin::signed(LEAD_ACCOUNT_ID), + RuntimeOrigin::signed(LEAD_ACCOUNT_ID), curator_group_id, DEFAULT_CURATOR_ID, BTreeSet::new() @@ -180,7 +180,7 @@ fn curator_group_management() { assert_eq!( System::events().last().unwrap().event, - Event::Content(RawEvent::CuratorAdded( + RuntimeEvent::Content(RawEvent::CuratorAdded( curator_group_id, DEFAULT_CURATOR_ID, BTreeSet::new() @@ -194,7 +194,7 @@ fn curator_group_management() { // Cannot add same curator again assert_err!( Content::add_curator_to_group( - Origin::signed(LEAD_ACCOUNT_ID), + RuntimeOrigin::signed(LEAD_ACCOUNT_ID), curator_group_id, DEFAULT_CURATOR_ID, BTreeSet::new() @@ -205,7 +205,7 @@ fn curator_group_management() { // Cannot remove curator if not in group assert_err!( Content::remove_curator_from_group( - Origin::signed(LEAD_ACCOUNT_ID), + RuntimeOrigin::signed(LEAD_ACCOUNT_ID), curator_group_id, MEMBERS_COUNT + 1 // not a curator ), @@ -214,14 +214,14 @@ fn curator_group_management() { // Remove curator from group assert_ok!(Content::remove_curator_from_group( - Origin::signed(LEAD_ACCOUNT_ID), + RuntimeOrigin::signed(LEAD_ACCOUNT_ID), curator_group_id, DEFAULT_CURATOR_ID )); assert_eq!( System::events().last().unwrap().event, - Event::Content(RawEvent::CuratorRemoved( + RuntimeEvent::Content(RawEvent::CuratorRemoved( curator_group_id, DEFAULT_CURATOR_ID )) @@ -233,7 +233,7 @@ fn curator_group_management() { // Already removed cannot remove again assert_err!( Content::remove_curator_from_group( - Origin::signed(LEAD_ACCOUNT_ID), + RuntimeOrigin::signed(LEAD_ACCOUNT_ID), curator_group_id, DEFAULT_CURATOR_ID ), @@ -281,7 +281,7 @@ fn unsuccessful_curator_group_permissions_update_with_max_permissions_by_level_m // Update group permissions assert_eq!( Content::update_curator_group_permissions( - Origin::signed(LEAD_ACCOUNT_ID), + RuntimeOrigin::signed(LEAD_ACCOUNT_ID), group_id, permissions ), diff --git a/runtime-modules/content/src/tests/fixtures.rs b/runtime-modules/content/src/tests/fixtures.rs index 9d12d96c29..9e25e725de 100644 --- a/runtime-modules/content/src/tests/fixtures.rs +++ b/runtime-modules/content/src/tests/fixtures.rs @@ -86,7 +86,7 @@ impl CreateCuratorGroupFixture { pub fn call_and_assert(&self, expected_result: DispatchResult) -> Option { let new_group_id = Content::next_curator_group_id(); let actual_result = Content::create_curator_group( - Origin::signed(self.sender), + RuntimeOrigin::signed(self.sender), self.is_active, self.permissions.clone(), ); @@ -230,7 +230,7 @@ impl CreateChannelFixture { } pub fn call_and_assert(&self, expected_result: DispatchResult) { - let origin = Origin::signed(self.sender); + let origin = RuntimeOrigin::signed(self.sender); let balance_pre = self.get_balance(); let channel_id = Content::next_channel_id(); let channel_bag_id = Content::bag_id_for_channel(&channel_id); @@ -468,7 +468,7 @@ impl CreateVideoFixture { } pub fn call(self) { - let origin = Origin::signed(self.sender); + let origin = RuntimeOrigin::signed(self.sender); assert_ok!(Content::create_video( origin, self.actor, @@ -478,7 +478,7 @@ impl CreateVideoFixture { } pub fn call_and_assert(&self, expected_result: DispatchResult) { - let origin = Origin::signed(self.sender); + let origin = RuntimeOrigin::signed(self.sender); let balance_pre = self.get_balance(); let module_balance_pre = ContentTreasury::::usable_balance(); let channel_balance_pre = Balances::::usable_balance( @@ -669,7 +669,7 @@ impl UpdateChannelFixture { } pub fn call_and_assert(&self, expected_result: DispatchResult) { - let origin = Origin::signed(self.sender); + let origin = RuntimeOrigin::signed(self.sender); let balance_pre = Balances::::usable_balance(self.sender); let channel_pre = Content::channel_by_id(&self.channel_id); let bag_id_for_channel = Content::bag_id_for_channel(&self.channel_id); @@ -799,7 +799,7 @@ impl UpdateChannelPrivilegeLevelFixture { } pub fn call_and_assert(&self, expected_result: DispatchResult) { - let origin = Origin::signed(self.sender); + let origin = RuntimeOrigin::signed(self.sender); let channel_pre = Content::channel_by_id(&self.channel_id); let actual_result = Content::update_channel_privilege_level(origin, self.channel_id, self.privilege_level); @@ -938,7 +938,7 @@ impl UpdateVideoFixture { } pub fn call_and_assert(&self, expected_result: DispatchResult) { - let origin = Origin::signed(self.sender); + let origin = RuntimeOrigin::signed(self.sender); let balance_pre = Balances::::free_balance(self.sender); let video_pre = Content::video_by_id(&self.video_id); let bag_id_for_channel = Content::bag_id_for_channel(&video_pre.in_channel); @@ -1077,7 +1077,7 @@ impl DeleteChannelAssetsAsModeratorFixture { } pub fn call_and_assert(&self, expected_result: DispatchResult) { - let origin = Origin::signed(self.sender); + let origin = RuntimeOrigin::signed(self.sender); let balance_pre = Balances::::usable_balance(self.sender); let channel_pre = Content::channel_by_id(&self.channel_id); let bag_id_for_channel = Content::bag_id_for_channel(&self.channel_id); @@ -1294,7 +1294,7 @@ impl ChannelDeletion for DeleteChannelFixture { fn execute_call(&self) -> DispatchResult { Content::delete_channel( - Origin::signed(self.sender), + RuntimeOrigin::signed(self.sender), self.actor, self.channel_id, self.channel_bag_witness.clone(), @@ -1380,7 +1380,7 @@ impl ChannelDeletion for DeleteChannelAsModeratorFixture { fn execute_call(&self) -> DispatchResult { Content::delete_channel_as_moderator( - Origin::signed(self.sender), + RuntimeOrigin::signed(self.sender), self.actor, self.channel_id, self.channel_bag_witness.clone(), @@ -1456,7 +1456,7 @@ impl SetChannelPausedFeaturesAsModeratorFixture { let channel_pre = ChannelById::::get(&self.channel_id); let actual_result = Content::set_channel_paused_features_as_moderator( - Origin::signed(self.sender), + RuntimeOrigin::signed(self.sender), self.actor, self.channel_id, self.new_paused_features.clone(), @@ -1517,7 +1517,7 @@ impl SetChannelVisibilityAsModeratorFixture { pub fn call_and_assert(&self, expected_result: DispatchResult) { let actual_result = Content::set_channel_visibility_as_moderator( - Origin::signed(self.sender), + RuntimeOrigin::signed(self.sender), self.actor, self.channel_id, self.is_hidden, @@ -1573,7 +1573,7 @@ impl SetVideoVisibilityAsModeratorFixture { pub fn call_and_assert(&self, expected_result: DispatchResult) { let actual_result = Content::set_video_visibility_as_moderator( - Origin::signed(self.sender), + RuntimeOrigin::signed(self.sender), self.actor, self.video_id, self.is_hidden, @@ -1644,7 +1644,7 @@ impl DeleteVideoAssetsAsModeratorFixture { } pub fn call_and_assert(&self, expected_result: DispatchResult) { - let origin = Origin::signed(self.sender); + let origin = RuntimeOrigin::signed(self.sender); let balance_pre = Balances::::usable_balance(self.sender); let video_pre = Content::video_by_id(&self.video_id); let bag_id_for_channel = Content::bag_id_for_channel(&video_pre.in_channel); @@ -1864,7 +1864,7 @@ impl VideoDeletion for DeleteVideoFixture { fn execute_call(&self) -> DispatchResult { Content::delete_video( - Origin::signed(self.sender), + RuntimeOrigin::signed(self.sender), self.actor, self.video_id, self.num_objects_to_delete, @@ -1943,7 +1943,7 @@ impl VideoDeletion for DeleteVideoAsModeratorFixture { fn execute_call(&self) -> DispatchResult { Content::delete_video_as_moderator( - Origin::signed(self.sender), + RuntimeOrigin::signed(self.sender), self.actor, self.video_id, self.storage_buckets_num_witness, @@ -1975,7 +1975,7 @@ impl VideoDeletion for DeleteVideoAsModeratorFixture { } pub struct UpdateChannelPayoutsFixture { - origin: Origin, + origin: RuntimeOrigin, params: UpdateChannelPayoutsParameters, uploader_account: ::AccountId, } @@ -1993,13 +1993,13 @@ pub struct UpdateChannelPayoutsFixtureStateSnapshot { impl UpdateChannelPayoutsFixture { pub fn default() -> Self { Self { - origin: Origin::root(), + origin: RuntimeOrigin::root(), params: UpdateChannelPayoutsParameters::::default(), uploader_account: DEFAULT_MEMBER_ACCOUNT_ID, } } - pub fn with_origin(self, origin: Origin) -> Self { + pub fn with_origin(self, origin: RuntimeOrigin) -> Self { Self { origin, ..self } } @@ -2189,7 +2189,7 @@ impl ClaimChannelRewardFixture { } pub fn call_and_assert(&self, expected_result: DispatchResult) { - let origin = Origin::signed(self.sender); + let origin = RuntimeOrigin::signed(self.sender); let channel_pre = Content::channel_by_id(self.item.channel_id); let channel_balance_pre = channel_reward_account_balance(self.item.channel_id); let council_budget_pre = ::CouncilBudgetManager::get_budget(); @@ -2288,7 +2288,7 @@ impl WithdrawFromChannelBalanceFixture { } pub fn call_and_assert(&self, expected_result: DispatchResult) { - let origin = Origin::signed(self.sender); + let origin = RuntimeOrigin::signed(self.sender); let channel_pre = Content::channel_by_id(self.channel_id); let channel_balance_pre = channel_reward_account_balance(self.channel_id); @@ -2395,7 +2395,7 @@ impl ClaimAndWithdrawChannelRewardFixture { } pub fn call_and_assert(&self, expected_result: DispatchResult) { - let origin = Origin::signed(self.sender); + let origin = RuntimeOrigin::signed(self.sender); let channel_pre = Content::channel_by_id(&self.item.channel_id); let channel_balance_pre = channel_reward_account_balance(self.item.channel_id); let expected_dest = match channel_pre.owner { @@ -2542,7 +2542,7 @@ impl IssueCreatorTokenFixture { } pub fn call_and_assert(&self, expected_result: DispatchResult) { - let origin = Origin::signed(self.sender); + let origin = RuntimeOrigin::signed(self.sender); let expected_token_id = project_token::Module::::next_token_id(); let channel_pre = Content::channel_by_id(self.channel_id); @@ -2619,7 +2619,7 @@ impl InitCreatorTokenSaleFixture { } pub fn call_and_assert(&self, expected_result: DispatchResult) { - let origin = Origin::signed(self.sender); + let origin = RuntimeOrigin::signed(self.sender); let actual_result = Content::init_creator_token_sale( origin, @@ -2664,7 +2664,7 @@ impl UpdateUpcomingCreatorTokenSaleFixture { } pub fn call_and_assert(&self, expected_result: DispatchResult) { - let origin = Origin::signed(self.sender); + let origin = RuntimeOrigin::signed(self.sender); let actual_result = Content::update_upcoming_creator_token_sale( origin, @@ -2721,7 +2721,7 @@ impl CreatorTokenIssuerTransferFixture { } pub fn call_and_assert(&self, expected_result: DispatchResult) { - let origin = Origin::signed(self.sender); + let origin = RuntimeOrigin::signed(self.sender); let actual_result = Content::creator_token_issuer_transfer( origin, @@ -2769,7 +2769,7 @@ impl ReduceCreatorTokenPatronageRateFixture { } pub fn call_and_assert(&self, expected_result: DispatchResult) { - let origin = Origin::signed(self.sender); + let origin = RuntimeOrigin::signed(self.sender); let actual_result = Content::reduce_creator_token_patronage_rate_to( origin, @@ -2810,7 +2810,7 @@ impl ClaimCreatorTokenPatronageCreditFixture { } pub fn call_and_assert(&self, expected_result: DispatchResult) { - let origin = Origin::signed(self.sender); + let origin = RuntimeOrigin::signed(self.sender); let actual_result = Content::claim_creator_token_patronage_credit(origin, self.actor, self.channel_id); @@ -2847,7 +2847,7 @@ impl MakeCreatorTokenPermissionlessFixture { } pub fn call_and_assert(&self, expected_result: DispatchResult) { - let origin = Origin::signed(self.sender); + let origin = RuntimeOrigin::signed(self.sender); let actual_result = Content::make_creator_token_permissionless(origin, self.actor, self.channel_id); @@ -2895,7 +2895,7 @@ impl IssueRevenueSplitFixture { } pub fn call_and_assert(&self, expected_result: DispatchResult) { - let origin = Origin::signed(self.sender); + let origin = RuntimeOrigin::signed(self.sender); let actual_result = Content::issue_revenue_split( origin, @@ -2937,7 +2937,7 @@ impl FinalizeRevenueSplitFixture { } pub fn call_and_assert(&self, expected_result: DispatchResult) { - let origin = Origin::signed(self.sender); + let origin = RuntimeOrigin::signed(self.sender); let actual_result = Content::finalize_revenue_split(origin, self.actor, self.channel_id); @@ -2973,7 +2973,7 @@ impl FinalizeCreatorTokenSaleFixture { } pub fn call_and_assert(&self, expected_result: DispatchResult) { - let origin = Origin::signed(self.sender); + let origin = RuntimeOrigin::signed(self.sender); let council_budget_pre = ::CouncilBudgetManager::get_budget(); let channel = Content::channel_by_id(self.channel_id); @@ -3032,7 +3032,7 @@ impl UpdateChannelStateBloatBondFixture { } pub fn call_and_assert(&self, expected_result: DispatchResult) { - let origin = Origin::signed(self.sender); + let origin = RuntimeOrigin::signed(self.sender); let channel_state_bloat_bond_pre = Content::channel_state_bloat_bond_value(); let actual_result = @@ -3083,7 +3083,7 @@ impl UpdateVideoStateBloatBondFixture { } pub fn call_and_assert(&self, expected_result: DispatchResult) { - let origin = Origin::signed(self.sender); + let origin = RuntimeOrigin::signed(self.sender); let video_state_bloat_bond_pre = Content::video_state_bloat_bond_value(); let actual_result = @@ -3130,7 +3130,7 @@ impl DeissueCreatorTokenFixture { } pub fn call_and_assert(&self, expected_result: DispatchResult) { - let origin = Origin::signed(self.sender); + let origin = RuntimeOrigin::signed(self.sender); let channel_pre = Content::channel_by_id(self.channel_id); @@ -3456,7 +3456,7 @@ impl IssueNftFixture { let video_pre = Content::video_by_id(self.video_id); let actual_result = Content::issue_nft( - Origin::signed(self.sender), + RuntimeOrigin::signed(self.sender), self.actor, self.video_id, self.params.clone(), @@ -3564,7 +3564,7 @@ impl StartOpenAuctionFixture { let video_pre = Content::video_by_id(self.video_id); let actual_result = Content::start_open_auction( - Origin::signed(self.sender), + RuntimeOrigin::signed(self.sender), self.actor, self.video_id, self.params.clone(), @@ -3676,7 +3676,7 @@ impl StartEnglishAuctionFixture { let video_pre = Content::video_by_id(self.video_id); let actual_result = Content::start_english_auction( - Origin::signed(self.sender), + RuntimeOrigin::signed(self.sender), self.actor, self.video_id, self.params.clone(), @@ -3762,7 +3762,7 @@ impl OfferNftFixture { let video_pre = Content::video_by_id(self.video_id); let actual_result = Content::offer_nft( - Origin::signed(self.sender), + RuntimeOrigin::signed(self.sender), self.video_id, self.actor, self.to, @@ -3866,7 +3866,7 @@ impl MakeOpenAuctionBidFixture { let bid_pre = Content::open_auction_bid_by_video_and_member(self.video_id, self.member_id); let actual_result = Content::make_open_auction_bid( - Origin::signed(self.sender), + RuntimeOrigin::signed(self.sender), self.member_id, self.video_id, self.bid, @@ -3983,7 +3983,7 @@ impl PickOpenAuctionWinnerFixture { let snapshot_pre = Self::create_auction_state_snapshot(self); let actual_result = Content::pick_open_auction_winner( - Origin::signed(self.sender), + RuntimeOrigin::signed(self.sender), self.actor, self.video_id, self.winner_id, @@ -4055,7 +4055,7 @@ impl NftOwnerRemarkFixture { pub fn call_and_assert(&self, expected_result: DispatchResult) { let actual_result = Content::nft_owner_remark( - Origin::signed(self.sender), + RuntimeOrigin::signed(self.sender), self.actor, self.video_id, self.msg.clone(), @@ -4107,8 +4107,11 @@ impl DestroyNftFixture { pub fn call_and_assert(&self, expected_result: DispatchResult) { let video_pre = Content::video_by_id(self.video_id); - let actual_result = - Content::destroy_nft(Origin::signed(self.sender), self.actor, self.video_id); + let actual_result = Content::destroy_nft( + RuntimeOrigin::signed(self.sender), + self.actor, + self.video_id, + ); let video_post = Content::video_by_id(self.video_id); @@ -4163,7 +4166,7 @@ impl ChannelAgentRemarkFixture { pub fn call_and_assert(&self, expected_result: DispatchResult) { let actual_result = Content::channel_agent_remark( - Origin::signed(self.sender), + RuntimeOrigin::signed(self.sender), self.actor, self.channel_id, self.msg.clone(), @@ -4302,7 +4305,7 @@ impl SellNftFixture { let video_pre = Content::video_by_id(self.video_id); let actual_result = Content::sell_nft( - Origin::signed(self.sender), + RuntimeOrigin::signed(self.sender), self.video_id, self.actor, self.price, @@ -4382,7 +4385,11 @@ impl CancelAuctionFixture { AuctionType::Open => Content::cancel_open_auction, }; - let actual_result = call(Origin::signed(self.sender), self.actor, self.video_id); + let actual_result = call( + RuntimeOrigin::signed(self.sender), + self.actor, + self.video_id, + ); assert_eq!(actual_result, expected_result); @@ -4441,8 +4448,11 @@ impl CancelOfferFixture { pub fn call_and_assert(&self, expected_result: DispatchResult) { let video_pre = Content::video_by_id(self.video_id); - let actual_result = - Content::cancel_offer(Origin::signed(self.sender), self.actor, self.video_id); + let actual_result = Content::cancel_offer( + RuntimeOrigin::signed(self.sender), + self.actor, + self.video_id, + ); assert_eq!(actual_result, expected_result); @@ -4501,8 +4511,11 @@ impl CancelBuyNowFixture { pub fn call_and_assert(&self, expected_result: DispatchResult) { let video_pre = Content::video_by_id(self.video_id); - let actual_result = - Content::cancel_buy_now(Origin::signed(self.sender), self.actor, self.video_id); + let actual_result = Content::cancel_buy_now( + RuntimeOrigin::signed(self.sender), + self.actor, + self.video_id, + ); assert_eq!(actual_result, expected_result); @@ -4564,7 +4577,7 @@ impl UpdateBuyNowPriceFixture { let video_pre = Content::video_by_id(self.video_id); let actual_result = Content::update_buy_now_price( - Origin::signed(self.sender), + RuntimeOrigin::signed(self.sender), self.actor, self.video_id, self.price, @@ -4922,7 +4935,7 @@ pub fn set_dynamic_bag_creation_policy_for_storage_numbers(storage_bucket_number // Set storage bucket in the dynamic bag creation policy to zero. assert_eq!( Storage::::update_number_of_storage_buckets_in_dynamic_bag_creation_policy( - Origin::signed(STORAGE_WG_LEADER_ACCOUNT_ID), + RuntimeOrigin::signed(STORAGE_WG_LEADER_ACCOUNT_ID), DynamicBagType::Channel, storage_bucket_number, ), @@ -4930,7 +4943,7 @@ pub fn set_dynamic_bag_creation_policy_for_storage_numbers(storage_bucket_number ); assert_eq!( Storage::::update_number_of_storage_buckets_in_dynamic_bag_creation_policy( - Origin::signed(STORAGE_WG_LEADER_ACCOUNT_ID), + RuntimeOrigin::signed(STORAGE_WG_LEADER_ACCOUNT_ID), DynamicBagType::Member, storage_bucket_number, ), @@ -4941,7 +4954,7 @@ pub fn create_initial_storage_buckets_helper() -> StorageBucketId { // first set limits assert_eq!( Storage::::update_storage_buckets_voucher_max_limits( - Origin::signed(STORAGE_WG_LEADER_ACCOUNT_ID), + RuntimeOrigin::signed(STORAGE_WG_LEADER_ACCOUNT_ID), VOUCHER_OBJECTS_SIZE_LIMIT, VOUCHER_OBJECTS_NUMBER_LIMIT, ), @@ -4955,7 +4968,7 @@ pub fn create_initial_storage_buckets_helper() -> StorageBucketId { // create bucket(s) assert_eq!( Storage::::create_storage_bucket( - Origin::signed(STORAGE_WG_LEADER_ACCOUNT_ID), + RuntimeOrigin::signed(STORAGE_WG_LEADER_ACCOUNT_ID), None, STORAGE_BUCKET_ACCEPTING_BAGS, STORAGE_BUCKET_OBJECTS_SIZE_LIMIT, @@ -4970,7 +4983,7 @@ pub fn create_initial_storage_buckets_helper() -> StorageBucketId { pub fn set_data_object_state_bloat_bond(state_bloat_bond: u64) { assert_eq!( Storage::::update_data_object_state_bloat_bond( - Origin::signed(STORAGE_WG_LEADER_ACCOUNT_ID), + RuntimeOrigin::signed(STORAGE_WG_LEADER_ACCOUNT_ID), state_bloat_bond ), Ok(()) @@ -4983,7 +4996,7 @@ pub fn create_default_member_owned_channel_with_video_with_nft() -> (ChannelId, create_default_member_owned_channel_with_video(); // Issue nft assert_ok!(Content::issue_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, NftIssuanceParameters:: { diff --git a/runtime-modules/content/src/tests/merkle.rs b/runtime-modules/content/src/tests/merkle.rs index 96c94b83d9..0e3ee9ccfe 100644 --- a/runtime-modules/content/src/tests/merkle.rs +++ b/runtime-modules/content/src/tests/merkle.rs @@ -908,11 +908,11 @@ fn unsuccessfull_channel_payouts_update_with_invalid_origin() { increase_account_balance_helper(LEAD_ACCOUNT_ID, INITIAL_BALANCE); UpdateChannelPayoutsFixture::default() - .with_origin(Origin::signed(LEAD_ACCOUNT_ID)) + .with_origin(RuntimeOrigin::signed(LEAD_ACCOUNT_ID)) .call_and_assert(Err(DispatchError::BadOrigin)); UpdateChannelPayoutsFixture::default() - .with_origin(Origin::none()) + .with_origin(RuntimeOrigin::none()) .call_and_assert(Err(DispatchError::BadOrigin)); }) } diff --git a/runtime-modules/content/src/tests/metaprotocol.rs b/runtime-modules/content/src/tests/metaprotocol.rs index 1b33a548ff..581f84fab4 100644 --- a/runtime-modules/content/src/tests/metaprotocol.rs +++ b/runtime-modules/content/src/tests/metaprotocol.rs @@ -20,7 +20,7 @@ fn successful_agent_remark() { let msg = b"test".to_vec(); assert_ok!(Content::channel_agent_remark( - Origin::signed(COLLABORATOR_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(COLLABORATOR_MEMBER_ACCOUNT_ID), ContentActor::Member(COLLABORATOR_MEMBER_ID), channel_id, msg @@ -42,7 +42,7 @@ fn unsuccessful_agent_remark_with_invalid_channel_id() { assert_err!( Content::channel_agent_remark( - Origin::signed(COLLABORATOR_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(COLLABORATOR_MEMBER_ACCOUNT_ID), ContentActor::Member(COLLABORATOR_MEMBER_ID), invalid_channel_id, msg @@ -66,7 +66,7 @@ fn unsuccessful_agent_remark_with_invalid_account_id() { assert_err!( Content::channel_agent_remark( - Origin::signed(UNAUTHORIZED_COLLABORATOR_MEMBER_ACCOUNT_ID + 1), + RuntimeOrigin::signed(UNAUTHORIZED_COLLABORATOR_MEMBER_ACCOUNT_ID + 1), ContentActor::Member(COLLABORATOR_MEMBER_ID), channel_id, msg @@ -90,7 +90,7 @@ fn unsuccessful_agent_remark_with_invalid_member_id() { assert_err!( Content::channel_agent_remark( - Origin::signed(COLLABORATOR_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(COLLABORATOR_MEMBER_ACCOUNT_ID), ContentActor::Member(UNAUTHORIZED_COLLABORATOR_MEMBER_ID), channel_id, msg @@ -114,7 +114,7 @@ fn unsuccessful_agent_remark_by_non_agent() { assert_err!( Content::channel_agent_remark( - Origin::signed(UNAUTHORIZED_COLLABORATOR_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(UNAUTHORIZED_COLLABORATOR_MEMBER_ACCOUNT_ID), ContentActor::Member(UNAUTHORIZED_COLLABORATOR_MEMBER_ID), channel_id, msg @@ -138,7 +138,7 @@ fn unsuccessful_owner_remark_with_invalid_channel_id() { assert_err!( Content::channel_owner_remark( - Origin::signed(UNAUTHORIZED_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(UNAUTHORIZED_MEMBER_ACCOUNT_ID), invalid_channel_id, msg ), @@ -161,7 +161,7 @@ fn unsuccessful_owner_remark_with_invalid_account_id() { assert_err!( Content::channel_owner_remark( - Origin::signed(UNAUTHORIZED_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(UNAUTHORIZED_MEMBER_ACCOUNT_ID), channel_id, msg ), @@ -184,7 +184,7 @@ fn unsuccessful_owner_remark_by_non_owner() { assert_err!( Content::channel_owner_remark( - Origin::signed(UNAUTHORIZED_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(UNAUTHORIZED_MEMBER_ACCOUNT_ID), channel_id, msg ), @@ -205,7 +205,7 @@ fn unsuccessful_curator_channel_owner_remark_by_unauthorized_curator() { assert_err!( Content::channel_owner_remark( - Origin::signed(UNAUTHORIZED_CURATOR_ACCOUNT_ID), + RuntimeOrigin::signed(UNAUTHORIZED_CURATOR_ACCOUNT_ID), channel_id, msg ), @@ -228,7 +228,7 @@ fn unsuccessful_nft_owner_remark_with_nft_not_issued() { assert_err!( Content::nft_owner_remark( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, msg @@ -247,7 +247,7 @@ fn issue_and_sell_nft() { // Issue nft assert_ok!(Content::issue_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, NftIssuanceParameters::::default(), @@ -258,7 +258,7 @@ fn issue_and_sell_nft() { // Sell nft assert_ok!(Content::sell_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), video_id, ContentActor::Member(DEFAULT_MEMBER_ID), DEFAULT_NFT_PRICE, @@ -266,7 +266,7 @@ fn issue_and_sell_nft() { // Buy nft assert_ok!(Content::buy_nft( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), video_id, SECOND_MEMBER_ID, DEFAULT_NFT_PRICE, @@ -284,7 +284,7 @@ fn successful_nft_owner_remark() { issue_and_sell_nft(); assert_ok!(Content::nft_owner_remark( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), ContentActor::Member(SECOND_MEMBER_ID), video_id, msg @@ -304,7 +304,7 @@ fn unsuccessful_nft_owner_with_invalid_video_id() { assert_err!( Content::nft_owner_remark( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), ContentActor::Member(SECOND_MEMBER_ID), invalid_video_id, msg @@ -326,7 +326,7 @@ fn unsuccessful_nft_owner_by_non_authorized_actor() { assert_err!( Content::nft_owner_remark( - Origin::signed(UNAUTHORIZED_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(UNAUTHORIZED_MEMBER_ACCOUNT_ID), ContentActor::Member(UNAUTHORIZED_MEMBER_ID), video_id, msg @@ -348,7 +348,7 @@ fn unsuccessful_nft_owner_with_invalid_acount() { assert_err!( Content::nft_owner_remark( - Origin::signed(UNAUTHORIZED_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(UNAUTHORIZED_MEMBER_ACCOUNT_ID), ContentActor::Member(SECOND_MEMBER_ID), video_id, msg @@ -370,7 +370,7 @@ fn successful_nft_remark_during_transfer() { .call_and_assert(Ok(())); assert_ok!(Content::nft_owner_remark( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), 1u64, b"test".to_vec(), @@ -389,7 +389,7 @@ fn successful_channel_owner_remark_during_transfer() { .call_and_assert(Ok(())); assert_ok!(Content::channel_owner_remark( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), 1u64, b"test".to_vec(), )); @@ -411,7 +411,7 @@ fn successful_channel_agent_remark_during_transfer() { .call_and_assert(Ok(())); assert_ok!(Content::channel_agent_remark( - Origin::signed(COLLABORATOR_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(COLLABORATOR_MEMBER_ACCOUNT_ID), ContentActor::Member(COLLABORATOR_MEMBER_ID), 1u64, b"test".to_vec(), diff --git a/runtime-modules/content/src/tests/mock.rs b/runtime-modules/content/src/tests/mock.rs index 74dbd6a5fd..4ef548eec2 100644 --- a/runtime-modules/content/src/tests/mock.rs +++ b/runtime-modules/content/src/tests/mock.rs @@ -170,8 +170,8 @@ impl frame_system::Config for Test { type BlockWeights = (); type BlockLength = (); type DbWeight = (); - type Origin = Origin; - type Call = Call; + type RuntimeOrigin = RuntimeOrigin; + type RuntimeCall = RuntimeCall; type Index = u64; type BlockNumber = u64; type Hash = H256; @@ -528,9 +528,9 @@ impl working_group::Config for Test { type LeaderOpeningStake = LeaderOpeningStake; } -impl common::membership::MemberOriginValidator for () { +impl common::membership::MemberOriginValidator for () { fn ensure_member_controller_account_origin( - origin: Origin, + origin: RuntimeOrigin, member_id: u64, ) -> Result { let account_id = ensure_signed(origin).unwrap(); @@ -797,13 +797,15 @@ impl common::working_group::WorkingGroupBudgetHandler for Wg { impl common::working_group::WorkingGroupAuthenticator for Wg { fn ensure_worker_origin( - _origin: ::Origin, + _origin: ::RuntimeOrigin, _worker_id: &::ActorId, ) -> DispatchResult { unimplemented!() } - fn ensure_leader_origin(_origin: ::Origin) -> DispatchResult { + fn ensure_leader_origin( + _origin: ::RuntimeOrigin, + ) -> DispatchResult { unimplemented!() } @@ -882,9 +884,9 @@ impl MembershipInfoProvider for TestMemberships { } // Mock MemberOriginValidator impl. -impl MemberOriginValidator for TestMemberships { +impl MemberOriginValidator for TestMemberships { fn ensure_member_controller_account_origin( - origin: Origin, + origin: RuntimeOrigin, member_id: u64, ) -> Result { let sender = ensure_signed(origin)?; @@ -911,7 +913,7 @@ pub struct DistributionWG; impl common::working_group::WorkingGroupAuthenticator for StorageWG { fn ensure_worker_origin( - origin: ::Origin, + origin: ::RuntimeOrigin, _worker_id: &::ActorId, ) -> DispatchResult { let account_id = ensure_signed(origin)?; @@ -922,7 +924,9 @@ impl common::working_group::WorkingGroupAuthenticator for StorageWG { Ok(()) } - fn ensure_leader_origin(origin: ::Origin) -> DispatchResult { + fn ensure_leader_origin( + origin: ::RuntimeOrigin, + ) -> DispatchResult { let account_id = ensure_signed(origin)?; ensure!( account_id == STORAGE_WG_LEADER_ACCOUNT_ID, @@ -971,7 +975,7 @@ impl common::working_group::WorkingGroupAuthenticator for StorageWG { impl common::working_group::WorkingGroupAuthenticator for DistributionWG { fn ensure_worker_origin( - origin: ::Origin, + origin: ::RuntimeOrigin, _worker_id: &::ActorId, ) -> DispatchResult { let account_id = ensure_signed(origin)?; @@ -982,7 +986,9 @@ impl common::working_group::WorkingGroupAuthenticator for DistributionWG { Ok(()) } - fn ensure_leader_origin(origin: ::Origin) -> DispatchResult { + fn ensure_leader_origin( + origin: ::RuntimeOrigin, + ) -> DispatchResult { let account_id = ensure_signed(origin)?; ensure!( account_id == DISTRIBUTION_WG_LEADER_ACCOUNT_ID, diff --git a/runtime-modules/content/src/tests/nft/accept_incoming_offer.rs b/runtime-modules/content/src/tests/nft/accept_incoming_offer.rs index 64afc94e3c..c5b233c645 100644 --- a/runtime-modules/content/src/tests/nft/accept_incoming_offer.rs +++ b/runtime-modules/content/src/tests/nft/accept_incoming_offer.rs @@ -17,7 +17,7 @@ fn accept_incoming_offer() { // Issue nft assert_ok!(Content::issue_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, NftIssuanceParameters::::default(), @@ -25,7 +25,7 @@ fn accept_incoming_offer() { // Offer nft assert_ok!(Content::offer_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), video_id, ContentActor::Member(DEFAULT_MEMBER_ID), SECOND_MEMBER_ID, @@ -34,7 +34,7 @@ fn accept_incoming_offer() { // Accept nft offer assert_ok!(Content::accept_incoming_offer( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), video_id, None )); @@ -66,7 +66,7 @@ fn accept_incoming_offer_video_does_not_exist() { // Make an attempt to accept incoming nft offer if corresponding video does not exist let accept_incoming_offer_result = Content::accept_incoming_offer( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), video_id, None, ); @@ -92,7 +92,7 @@ fn accept_incoming_offer_nft_not_issued() { // Make an attempt to accept incoming nft offer if corresponding nft is not issued yet let accept_incoming_offer_result = Content::accept_incoming_offer( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), video_id, None, ); @@ -115,7 +115,7 @@ fn accept_incoming_offer_auth_failed() { // Issue nft assert_ok!(Content::issue_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, NftIssuanceParameters::::default(), @@ -123,7 +123,7 @@ fn accept_incoming_offer_auth_failed() { // Offer nft assert_ok!(Content::offer_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), video_id, ContentActor::Member(DEFAULT_MEMBER_ID), SECOND_MEMBER_ID, @@ -132,7 +132,7 @@ fn accept_incoming_offer_auth_failed() { // Make an attempt to accept incoming nft offer providing wrong credentials let accept_incoming_offer_result = Content::accept_incoming_offer( - Origin::signed(UNAUTHORIZED_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(UNAUTHORIZED_MEMBER_ACCOUNT_ID), video_id, None, ); @@ -158,7 +158,7 @@ fn accept_incoming_offer_no_incoming_offers() { // Issue nft assert_ok!(Content::issue_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, NftIssuanceParameters::::default(), @@ -166,7 +166,7 @@ fn accept_incoming_offer_no_incoming_offers() { // Make an attempt to accept incoming nft offer if there is no incoming transfers let accept_incoming_offer_result = Content::accept_incoming_offer( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), video_id, None, ); @@ -196,7 +196,7 @@ fn accept_incoming_offer_ok_with_nft_member_owner_correctly_credited() { let platform_fee = Content::platform_fee_percentage().mul_floor(DEFAULT_NFT_PRICE); assert_ok!(Content::accept_incoming_offer( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), VideoId::one(), Some(DEFAULT_NFT_PRICE) )); @@ -224,7 +224,7 @@ fn accept_incoming_offer_reward_account_ok_with_owner_channel_account_correctly_ let platform_fee = Content::platform_fee_percentage().mul_floor(DEFAULT_NFT_PRICE); assert_ok!(Content::accept_incoming_offer( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), VideoId::one(), Some(DEFAULT_NFT_PRICE) )); @@ -245,7 +245,7 @@ fn accept_incoming_offer_insufficient_balance() { // Offer nft assert_ok!(Content::offer_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), video_id, ContentActor::Member(DEFAULT_MEMBER_ID), SECOND_MEMBER_ID, @@ -256,7 +256,7 @@ fn accept_incoming_offer_insufficient_balance() { increase_account_balance_helper(SECOND_MEMBER_ACCOUNT_ID, ed() + DEFAULT_NFT_PRICE - 1); assert_noop!( Content::accept_incoming_offer( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), video_id, Some(DEFAULT_NFT_PRICE), ), @@ -277,7 +277,7 @@ fn accept_incoming_offer_fails_during_channel_transfer() { assert_noop!( Content::accept_incoming_offer( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), VideoId::one(), None ), @@ -296,7 +296,7 @@ fn accept_incoming_offer_fails_with_invalid_witness_price_provided() { assert_noop!( Content::accept_incoming_offer( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), VideoId::one(), Some(DEFAULT_NFT_PRICE - 1) ), @@ -305,7 +305,7 @@ fn accept_incoming_offer_fails_with_invalid_witness_price_provided() { assert_noop!( Content::accept_incoming_offer( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), VideoId::one(), None ), @@ -328,7 +328,7 @@ fn accept_incoming_offer_fails_when_trying_to_use_locked_balance() { assert_noop!( Content::accept_incoming_offer( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), VideoId::one(), Some(DEFAULT_NFT_PRICE) ), diff --git a/runtime-modules/content/src/tests/nft/buy_nft.rs b/runtime-modules/content/src/tests/nft/buy_nft.rs index 525a08b916..f0409054f4 100644 --- a/runtime-modules/content/src/tests/nft/buy_nft.rs +++ b/runtime-modules/content/src/tests/nft/buy_nft.rs @@ -26,7 +26,7 @@ fn buy_nft_ok_with_proper_royalty_accounting_normal_case() { .call_and_assert(Ok(())); assert_ok!(Content::buy_nft( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), VideoId::one(), SECOND_MEMBER_ID, DEFAULT_NFT_PRICE, @@ -70,7 +70,7 @@ fn buy_nft_ok_with_proper_royalty_accounting_edge_case() { .call_and_assert(Ok(())); assert_ok!(Content::buy_nft( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), VideoId::one(), SECOND_MEMBER_ID, DEFAULT_NFT_PRICE, @@ -107,7 +107,7 @@ fn buy_nft() { // Issue nft assert_ok!(Content::issue_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, NftIssuanceParameters::::default(), @@ -121,7 +121,7 @@ fn buy_nft() { // Sell nft assert_ok!(Content::sell_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), video_id, ContentActor::Member(DEFAULT_MEMBER_ID), DEFAULT_NFT_PRICE, @@ -129,7 +129,7 @@ fn buy_nft() { // Buy nft assert_ok!(Content::buy_nft( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), video_id, SECOND_MEMBER_ID, DEFAULT_NFT_PRICE, @@ -178,7 +178,7 @@ fn buy_nft_video_does_not_exist() { // Make an attempt to buy nft which corresponding video does not exist yet let buy_nft_result = Content::buy_nft( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), video_id, SECOND_MEMBER_ID, DEFAULT_NFT_PRICE, @@ -207,7 +207,7 @@ fn buy_nft_not_issued() { // Make an attempt to buy nft which is not issued yet let buy_nft_result = Content::buy_nft( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), video_id, SECOND_MEMBER_ID, DEFAULT_NFT_PRICE, @@ -233,7 +233,7 @@ fn buy_nft_auth_failed() { // Issue nft assert_ok!(Content::issue_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, NftIssuanceParameters::::default(), @@ -241,7 +241,7 @@ fn buy_nft_auth_failed() { // Sell nft assert_ok!(Content::sell_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), video_id, ContentActor::Member(DEFAULT_MEMBER_ID), DEFAULT_NFT_PRICE, @@ -249,7 +249,7 @@ fn buy_nft_auth_failed() { // Make an attempt to buy nft with wrong credentials let buy_nft_result = Content::buy_nft( - Origin::signed(UNAUTHORIZED_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(UNAUTHORIZED_MEMBER_ACCOUNT_ID), video_id, SECOND_MEMBER_ID, DEFAULT_NFT_PRICE, @@ -274,7 +274,7 @@ fn buy_nft_not_in_buy_now_state() { // Issue nft assert_ok!(Content::issue_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, NftIssuanceParameters::::default(), @@ -282,7 +282,7 @@ fn buy_nft_not_in_buy_now_state() { // Make an attempt to buy nft which is not in BuyNow state let buy_nft_result = Content::buy_nft( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), video_id, SECOND_MEMBER_ID, DEFAULT_NFT_PRICE, @@ -302,7 +302,7 @@ fn buy_nft_insufficient_balance() { // Sell nft assert_ok!(Content::sell_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), video_id, ContentActor::Member(DEFAULT_MEMBER_ID), DEFAULT_NFT_PRICE, @@ -312,7 +312,7 @@ fn buy_nft_insufficient_balance() { increase_account_balance_helper(SECOND_MEMBER_ACCOUNT_ID, ed() + DEFAULT_NFT_PRICE - 1); assert_noop!( Content::buy_nft( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), video_id, SECOND_MEMBER_ID, DEFAULT_NFT_PRICE, @@ -342,7 +342,7 @@ fn buy_nft_fails_with_invalid_witness_price_provided() { // Issue nft assert_ok!(Content::issue_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, NftIssuanceParameters:: { @@ -361,7 +361,7 @@ fn buy_nft_fails_with_invalid_witness_price_provided() { // Seller races to set the price to 0 assert_ok!(Content::update_buy_now_price( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, 0, @@ -369,7 +369,7 @@ fn buy_nft_fails_with_invalid_witness_price_provided() { // Attempt to buy NFT with witness_price protection let buy_nft_result = Content::buy_nft( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), video_id, SECOND_MEMBER_ID, DEFAULT_NFT_PRICE, @@ -397,7 +397,7 @@ fn buy_now_ok_with_nft_owner_member_correctly_credited() { let platform_fee = Content::platform_fee_percentage().mul_floor(DEFAULT_NFT_PRICE); assert_ok!(Content::buy_nft( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), VideoId::one(), SECOND_MEMBER_ID, DEFAULT_NFT_PRICE, @@ -424,7 +424,7 @@ fn buy_now_ok_with_nft_owner_channel_correctly_credited() { let platform_fee = Content::platform_fee_percentage().mul_floor(DEFAULT_NFT_PRICE); assert_ok!(Content::buy_nft( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), video_id, SECOND_MEMBER_ID, DEFAULT_NFT_PRICE, @@ -450,7 +450,7 @@ fn buy_nft_fails_during_channel_transfer() { assert_noop!( Content::buy_nft( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), VideoId::one(), SECOND_MEMBER_ID, BalanceOf::::zero(), @@ -474,7 +474,7 @@ fn buy_nft_fails_when_trying_to_use_locked_balance() { assert_noop!( Content::buy_nft( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), VideoId::one(), SECOND_MEMBER_ID, DEFAULT_NFT_PRICE, diff --git a/runtime-modules/content/src/tests/nft/cancel_buy_now.rs b/runtime-modules/content/src/tests/nft/cancel_buy_now.rs index b7e89841bb..aa1626135b 100644 --- a/runtime-modules/content/src/tests/nft/cancel_buy_now.rs +++ b/runtime-modules/content/src/tests/nft/cancel_buy_now.rs @@ -18,7 +18,7 @@ fn cancel_buy_now() { // Issue nft assert_ok!(Content::issue_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, NftIssuanceParameters::::default(), @@ -28,7 +28,7 @@ fn cancel_buy_now() { // Sell nft assert_ok!(Content::sell_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), video_id, ContentActor::Member(DEFAULT_MEMBER_ID), DEFAULT_NFT_PRICE, @@ -36,7 +36,7 @@ fn cancel_buy_now() { // Cancel buy now assert_ok!(Content::cancel_buy_now( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, )); @@ -70,7 +70,7 @@ fn cancel_buy_now_video_does_not_exist() { // Make an attempt to cancel buy now which corresponding video does not exist yet let cancel_buy_now_result = Content::cancel_buy_now( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, ); @@ -94,7 +94,7 @@ fn cancel_buy_now_not_issued() { // Make an attempt to cancel buy now for nft which is not issued yet let cancel_buy_now_result = Content::cancel_buy_now( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, ); @@ -118,7 +118,7 @@ fn cancel_buy_now_auth_failed() { // Issue nft assert_ok!(Content::issue_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, NftIssuanceParameters::::default(), @@ -126,7 +126,7 @@ fn cancel_buy_now_auth_failed() { // Sell nft assert_ok!(Content::sell_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), video_id, ContentActor::Member(DEFAULT_MEMBER_ID), DEFAULT_NFT_PRICE, @@ -134,7 +134,7 @@ fn cancel_buy_now_auth_failed() { // Make an attempt to cancel buy now with wrong credentials let cancel_buy_now_result = Content::cancel_buy_now( - Origin::signed(UNAUTHORIZED_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(UNAUTHORIZED_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, ); @@ -158,7 +158,7 @@ fn cancel_buy_now_not_authorized() { // Issue nft assert_ok!(Content::issue_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, NftIssuanceParameters::::default(), @@ -166,7 +166,7 @@ fn cancel_buy_now_not_authorized() { // Sell nft assert_ok!(Content::sell_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), video_id, ContentActor::Member(DEFAULT_MEMBER_ID), DEFAULT_NFT_PRICE, @@ -174,7 +174,7 @@ fn cancel_buy_now_not_authorized() { // Make an attempt to cancel buy now if actor is not authorized let cancel_buy_now_result = Content::cancel_buy_now( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), ContentActor::Member(SECOND_MEMBER_ID), video_id, ); @@ -198,7 +198,7 @@ fn cancel_buy_now_not_in_auction_state() { // Issue nft assert_ok!(Content::issue_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, NftIssuanceParameters::::default(), @@ -206,7 +206,7 @@ fn cancel_buy_now_not_in_auction_state() { // Make an attempt to cancel buy now if there is no pending one let cancel_buy_now_result = Content::cancel_buy_now( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, ); @@ -229,7 +229,7 @@ fn cancel_buy_now_fails_during_channel_transfer() { assert_noop!( Content::cancel_buy_now( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), 1u64, ), diff --git a/runtime-modules/content/src/tests/nft/cancel_nft_auction.rs b/runtime-modules/content/src/tests/nft/cancel_nft_auction.rs index ee8f43ac8f..89f47ab19a 100644 --- a/runtime-modules/content/src/tests/nft/cancel_nft_auction.rs +++ b/runtime-modules/content/src/tests/nft/cancel_nft_auction.rs @@ -19,7 +19,7 @@ fn cancel_nft_auction() { // Issue nft assert_ok!(Content::issue_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, NftIssuanceParameters::::default(), @@ -27,7 +27,7 @@ fn cancel_nft_auction() { // Start nft auction assert_ok!(Content::start_open_auction( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, get_open_auction_params() @@ -35,7 +35,7 @@ fn cancel_nft_auction() { // Cancel nft auction assert_ok!(Content::cancel_open_auction( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, )); @@ -69,7 +69,7 @@ fn cancel_nft_auction_video_does_not_exist() { // Make an attempt to cancel nft auction which corresponding video does not exist yet let cancel_nft_auction_result = Content::cancel_open_auction( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, ); @@ -93,7 +93,7 @@ fn cancel_nft_auction_not_issued() { // Make an attempt to cancel nft auction for nft which is not issued yet let cancel_nft_auction_result = Content::cancel_open_auction( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, ); @@ -117,7 +117,7 @@ fn cancel_nft_auction_auth_failed() { // Issue nft assert_ok!(Content::issue_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, NftIssuanceParameters::::default(), @@ -125,7 +125,7 @@ fn cancel_nft_auction_auth_failed() { // Start nft auction assert_ok!(Content::start_open_auction( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, get_open_auction_params() @@ -133,7 +133,7 @@ fn cancel_nft_auction_auth_failed() { // Make an attempt to cancel nft auction with wrong credentials let cancel_nft_auction_result = Content::cancel_open_auction( - Origin::signed(UNAUTHORIZED_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(UNAUTHORIZED_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, ); @@ -157,7 +157,7 @@ fn cancel_nft_auction_not_authorized() { // Issue nft assert_ok!(Content::issue_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, NftIssuanceParameters::::default(), @@ -165,7 +165,7 @@ fn cancel_nft_auction_not_authorized() { // Start nft auction assert_ok!(Content::start_open_auction( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, get_open_auction_params() @@ -173,7 +173,7 @@ fn cancel_nft_auction_not_authorized() { // Make an attempt to cancel nft auction if actor is not authorized let cancel_nft_auction_result = Content::cancel_open_auction( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), ContentActor::Member(SECOND_MEMBER_ID), video_id, ); @@ -197,7 +197,7 @@ fn cancel_nft_auction_not_in_auction_state() { // Issue nft assert_ok!(Content::issue_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, NftIssuanceParameters::::default(), @@ -205,7 +205,7 @@ fn cancel_nft_auction_not_in_auction_state() { // Make an attempt to cancel nft auction if there is no pending one let cancel_nft_auction_result = Content::cancel_open_auction( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, ); @@ -232,7 +232,7 @@ fn cancel_nft_auction_english_auction_with_bids() { // Issue nft assert_ok!(Content::issue_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, NftIssuanceParameters::::default(), @@ -250,7 +250,7 @@ fn cancel_nft_auction_english_auction_with_bids() { // Start nft auction assert_ok!(Content::start_english_auction( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, auction_params @@ -263,7 +263,7 @@ fn cancel_nft_auction_english_auction_with_bids() { // Make an english auction bid assert_ok!(Content::make_english_auction_bid( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), SECOND_MEMBER_ID, video_id, bid, @@ -271,7 +271,7 @@ fn cancel_nft_auction_english_auction_with_bids() { // Make an attempt to cancel an english auction which already contains a bid let cancel_nft_auction_result = Content::cancel_english_auction( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, ); @@ -297,7 +297,7 @@ fn cancel_open_auction_fails_during_channel_transfer() { assert_noop!( Content::cancel_open_auction( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), 1u64, ), @@ -319,7 +319,7 @@ fn cancel_english_auction_fails_during_channel_transfer() { assert_noop!( Content::cancel_english_auction( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), 1u64, ), diff --git a/runtime-modules/content/src/tests/nft/cancel_offer.rs b/runtime-modules/content/src/tests/nft/cancel_offer.rs index d5a2f2184e..ee8232f12a 100644 --- a/runtime-modules/content/src/tests/nft/cancel_offer.rs +++ b/runtime-modules/content/src/tests/nft/cancel_offer.rs @@ -18,7 +18,7 @@ fn cancel_offer() { // Issue nft assert_ok!(Content::issue_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, NftIssuanceParameters::::default(), @@ -26,7 +26,7 @@ fn cancel_offer() { // Offer nft assert_ok!(Content::offer_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), video_id, ContentActor::Member(DEFAULT_MEMBER_ID), SECOND_MEMBER_ID, @@ -35,7 +35,7 @@ fn cancel_offer() { // Cancel offer assert_ok!(Content::cancel_offer( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, )); @@ -69,7 +69,7 @@ fn cancel_offer_video_does_not_exist() { // Make an attempt to cancel offer which corresponding video does not exist yet let cancel_offer_result = Content::cancel_offer( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, ); @@ -93,7 +93,7 @@ fn cancel_offer_not_issued() { // Make an attempt to cancel offer for nft which is not issued yet let cancel_offer_result = Content::cancel_offer( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, ); @@ -117,7 +117,7 @@ fn cancel_offer_auth_failed() { // Issue nft assert_ok!(Content::issue_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, NftIssuanceParameters::::default(), @@ -125,7 +125,7 @@ fn cancel_offer_auth_failed() { // Offer nft assert_ok!(Content::offer_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), video_id, ContentActor::Member(DEFAULT_MEMBER_ID), SECOND_MEMBER_ID, @@ -134,7 +134,7 @@ fn cancel_offer_auth_failed() { // Make an attempt to cancel offer with wrong credentials let cancel_offer_result = Content::cancel_offer( - Origin::signed(UNAUTHORIZED_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(UNAUTHORIZED_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, ); @@ -158,7 +158,7 @@ fn cancel_offer_not_authorized() { // Issue nft assert_ok!(Content::issue_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, NftIssuanceParameters::::default(), @@ -166,7 +166,7 @@ fn cancel_offer_not_authorized() { // Offer nft assert_ok!(Content::offer_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), video_id, ContentActor::Member(DEFAULT_MEMBER_ID), SECOND_MEMBER_ID, @@ -175,7 +175,7 @@ fn cancel_offer_not_authorized() { // Make an attempt to cancel offer if actor is not authorized let cancel_offer_result = Content::cancel_offer( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), ContentActor::Member(SECOND_MEMBER_ID), video_id, ); @@ -199,7 +199,7 @@ fn cancel_offer_not_in_auction_state() { // Issue nft assert_ok!(Content::issue_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, NftIssuanceParameters::::default(), @@ -207,7 +207,7 @@ fn cancel_offer_not_in_auction_state() { // Make an attempt to cancel offer if there is no pending one let cancel_offer_result = Content::cancel_offer( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, ); @@ -230,7 +230,7 @@ fn cancel_nft_offer_fails_during_channel_transfer() { assert_noop!( Content::cancel_offer( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), 1u64, ), diff --git a/runtime-modules/content/src/tests/nft/cancel_open_auction_bid.rs b/runtime-modules/content/src/tests/nft/cancel_open_auction_bid.rs index e5e7013fe5..abce3488cf 100644 --- a/runtime-modules/content/src/tests/nft/cancel_open_auction_bid.rs +++ b/runtime-modules/content/src/tests/nft/cancel_open_auction_bid.rs @@ -13,7 +13,7 @@ fn setup_open_auction_scenario() { // Issue nft assert_ok!(Content::issue_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, NftIssuanceParameters::::default(), @@ -29,7 +29,7 @@ fn setup_open_auction_scenario() { // Start nft auction assert_ok!(Content::start_open_auction( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, auction_params, @@ -47,7 +47,7 @@ fn setup_open_auction_scenario_with_bid() { // Make nft auction bid assert_ok!(Content::make_open_auction_bid( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), SECOND_MEMBER_ID, video_id, bid, @@ -76,7 +76,7 @@ fn cancel_open_auction_bid() { // Cancel auction bid assert_ok!(Content::cancel_open_auction_bid( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), SECOND_MEMBER_ID, video_id, )); @@ -107,7 +107,7 @@ fn cancel_open_auction_bid_lock_duration_did_not_expire() { // Make an attempt to cancel open auction bid if lock duration did not expire let cancel_open_auction_bid_result = Content::cancel_open_auction_bid( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), SECOND_MEMBER_ID, video_id, ); @@ -135,7 +135,7 @@ fn cancel_open_auction_bid_auth_failed() { // Make an attempt to cancel open auction bid with wrong credentials let cancel_open_auction_bid_result = Content::cancel_open_auction_bid( - Origin::signed(UNAUTHORIZED_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(UNAUTHORIZED_MEMBER_ACCOUNT_ID), SECOND_MEMBER_ID, video_id, ); @@ -158,7 +158,7 @@ fn cancel_open_auction_bid_video_does_not_exist() { // Make an attempt to cancel open auction bid which corresponding video does not exist let cancel_open_auction_bid_result = Content::cancel_open_auction_bid( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), SECOND_MEMBER_ID, video_id, ); @@ -185,7 +185,7 @@ fn cancel_open_auction_bid_nft_is_not_issued() { // Make an attempt to cancel open auction bid for nft which is not issued yet let cancel_open_auction_bid_result = Content::cancel_open_auction_bid( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), SECOND_MEMBER_ID, video_id, ); @@ -213,7 +213,7 @@ fn cancel_open_auction_bid_last_bid_does_not_exist() { // Make an attempt to cancel open auction bid if it does not exist let cancel_open_auction_bid_result = Content::cancel_open_auction_bid( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), SECOND_MEMBER_ID, video_id, ); @@ -241,7 +241,7 @@ fn cancel_open_auction_fails_for_with_non_bidder() { // Make an attempt to cancel open auction bid if actor is not a last bidder let cancel_open_auction_bid_result = Content::cancel_open_auction_bid( - Origin::signed(UNAUTHORIZED_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(UNAUTHORIZED_MEMBER_ACCOUNT_ID), UNAUTHORIZED_MEMBER_ID, video_id, ); @@ -267,14 +267,14 @@ fn cancel_open_auction_bid_ok_for_expired_auction() { let bid = Content::min_starting_price(); assert_ok!(Content::make_open_auction_bid( - Origin::signed(THIRD_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(THIRD_MEMBER_ACCOUNT_ID), THIRD_MEMBER_ID, video_id, bid, )); assert_ok!(Content::pick_open_auction_winner( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, THIRD_MEMBER_ID, @@ -283,7 +283,7 @@ fn cancel_open_auction_bid_ok_for_expired_auction() { // Attempt OK: auction closed assert_ok!(Content::cancel_open_auction_bid( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), SECOND_MEMBER_ID, video_id, )); @@ -306,7 +306,7 @@ fn cancel_open_auction_bid_fails_during_transfer() { assert_noop!( Content::cancel_open_auction_bid( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), SECOND_MEMBER_ID, VideoId::one(), ), diff --git a/runtime-modules/content/src/tests/nft/claim_won_english_auction.rs b/runtime-modules/content/src/tests/nft/claim_won_english_auction.rs index aeeed4e891..981fb19f13 100644 --- a/runtime-modules/content/src/tests/nft/claim_won_english_auction.rs +++ b/runtime-modules/content/src/tests/nft/claim_won_english_auction.rs @@ -14,7 +14,7 @@ fn settle_english_auction() { // Issue nft assert_ok!(Content::issue_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, NftIssuanceParameters::::default(), @@ -32,7 +32,7 @@ fn settle_english_auction() { // Start nft auction assert_ok!(Content::start_english_auction( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, auction_params, @@ -48,7 +48,7 @@ fn settle_english_auction() { // Make nft auction bid assert_ok!(Content::make_english_auction_bid( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), SECOND_MEMBER_ID, video_id, bid, @@ -62,7 +62,7 @@ fn settle_english_auction() { // Claim won english auction assert_ok!(Content::settle_english_auction( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), video_id, )); @@ -106,7 +106,7 @@ fn settle_english_auction_cannot_be_completed() { // Issue nft assert_ok!(Content::issue_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, NftIssuanceParameters::::default(), @@ -124,7 +124,7 @@ fn settle_english_auction_cannot_be_completed() { // Start nft auction assert_ok!(Content::start_english_auction( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, auction_params, @@ -137,15 +137,17 @@ fn settle_english_auction_cannot_be_completed() { // Make nft auction bid assert_ok!(Content::make_english_auction_bid( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), SECOND_MEMBER_ID, video_id, bid, )); // Make an attempt to claim won english auction if it did not expire yet - let settle_english_auction_result = - Content::settle_english_auction(Origin::signed(SECOND_MEMBER_ACCOUNT_ID), video_id); + let settle_english_auction_result = Content::settle_english_auction( + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), + video_id, + ); // Failure checked assert_err!( @@ -164,8 +166,10 @@ fn settle_english_auction_video_does_not_exist() { let video_id = NextVideoId::::get(); // Make an attempt to claim won english auction which corresponding video does not exist - let settle_english_auction_result = - Content::settle_english_auction(Origin::signed(SECOND_MEMBER_ACCOUNT_ID), video_id); + let settle_english_auction_result = Content::settle_english_auction( + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), + video_id, + ); // Failure checked assert_err!( @@ -188,8 +192,10 @@ fn settle_english_auction_nft_is_not_issued() { create_default_member_owned_channel_with_video(); // Make an attempt to claim won english auction for nft which is not issued yet - let settle_english_auction_result = - Content::settle_english_auction(Origin::signed(SECOND_MEMBER_ACCOUNT_ID), video_id); + let settle_english_auction_result = Content::settle_english_auction( + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), + video_id, + ); // Failure checked assert_err!( @@ -213,15 +219,17 @@ fn settle_english_auction_not_in_auction_state() { // Issue nft assert_ok!(Content::issue_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, NftIssuanceParameters::::default(), )); // Make an attempt to claim won english auction for nft which is not in auction state - let settle_english_auction_result = - Content::settle_english_auction(Origin::signed(SECOND_MEMBER_ACCOUNT_ID), video_id); + let settle_english_auction_result = Content::settle_english_auction( + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), + video_id, + ); // Failure checked assert_err!( @@ -245,7 +253,7 @@ fn settle_english_auction_is_not_english_auction_type() { // Issue nft assert_ok!(Content::issue_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, NftIssuanceParameters::::default(), @@ -263,7 +271,7 @@ fn settle_english_auction_is_not_english_auction_type() { // Start nft auction assert_ok!(Content::start_open_auction( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, auction_params, @@ -276,15 +284,17 @@ fn settle_english_auction_is_not_english_auction_type() { // Make nft auction bid assert_ok!(Content::make_open_auction_bid( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), SECOND_MEMBER_ID, video_id, bid, )); // Make an attempt to claim won english auction for nft which is not in english auction state - let settle_english_auction_result = - Content::settle_english_auction(Origin::signed(SECOND_MEMBER_ACCOUNT_ID), video_id); + let settle_english_auction_result = Content::settle_english_auction( + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), + video_id, + ); // Failure checked assert_err!( @@ -308,7 +318,7 @@ fn settle_english_auction_last_bid_does_not_exist() { // Issue nft assert_ok!(Content::issue_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, NftIssuanceParameters::::default(), @@ -326,7 +336,7 @@ fn settle_english_auction_last_bid_does_not_exist() { // Start nft auction assert_ok!(Content::start_english_auction( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, auction_params, @@ -336,8 +346,10 @@ fn settle_english_auction_last_bid_does_not_exist() { run_to_block(Content::max_auction_duration() + 1); // Make an attempt to claim won english auction if last bid does not exist - let settle_english_auction_result = - Content::settle_english_auction(Origin::signed(SECOND_MEMBER_ACCOUNT_ID), video_id); + let settle_english_auction_result = Content::settle_english_auction( + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), + video_id, + ); // Failure checked assert_err!( @@ -356,7 +368,7 @@ fn setup_english_auction_scenario() { // Issue nft assert_ok!(Content::issue_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, NftIssuanceParameters::::default(), @@ -374,7 +386,7 @@ fn setup_english_auction_scenario() { // Start nft auction assert_ok!(Content::start_english_auction( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, auction_params, @@ -396,7 +408,7 @@ fn settle_english_auction_ok_with_nft_claimed_by_non_winner() { // Make nft auction bid assert_ok!(Content::make_english_auction_bid( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), SECOND_MEMBER_ID, video_id, bid, @@ -404,7 +416,7 @@ fn settle_english_auction_ok_with_nft_claimed_by_non_winner() { // Make nft auction bid assert_ok!(Content::make_english_auction_bid( - Origin::signed(COLLABORATOR_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(COLLABORATOR_MEMBER_ACCOUNT_ID), COLLABORATOR_MEMBER_ID, video_id, bid + Content::min_bid_step(), @@ -414,8 +426,10 @@ fn settle_english_auction_ok_with_nft_claimed_by_non_winner() { run_to_block(Content::max_auction_duration() + 1); // Make an attempt to claim won english auction if last bid does not exist - let settle_english_auction_result = - Content::settle_english_auction(Origin::signed(SECOND_MEMBER_ACCOUNT_ID), video_id); + let settle_english_auction_result = Content::settle_english_auction( + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), + video_id, + ); // Failure checked assert_ok!(settle_english_auction_result); @@ -449,7 +463,7 @@ fn settle_english_auction_ok_with_balances_check() { // Make nft auction bid assert_ok!(Content::make_english_auction_bid( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), SECOND_MEMBER_ID, video_id, bid, @@ -472,7 +486,7 @@ fn settle_english_auction_ok_with_balances_check() { // Make nft auction bid let next_bid = bid + Content::min_bid_step(); assert_ok!(Content::make_english_auction_bid( - Origin::signed(COLLABORATOR_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(COLLABORATOR_MEMBER_ACCOUNT_ID), COLLABORATOR_MEMBER_ID, video_id, next_bid, @@ -496,8 +510,10 @@ fn settle_english_auction_ok_with_balances_check() { run_to_block(Content::max_auction_duration() + 1); // Settle the auciton. - let settle_english_auction_result = - Content::settle_english_auction(Origin::signed(SECOND_MEMBER_ACCOUNT_ID), video_id); + let settle_english_auction_result = Content::settle_english_auction( + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), + video_id, + ); // Failure checked assert_ok!(settle_english_auction_result); @@ -539,7 +555,7 @@ fn settle_english_auction_ok_with_nft_claimed_by_non_winner_and_winner_free_bala // Make nft auction bid assert_ok!(Content::make_english_auction_bid( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), SECOND_MEMBER_ID, video_id, bid, @@ -548,7 +564,7 @@ fn settle_english_auction_ok_with_nft_claimed_by_non_winner_and_winner_free_bala // Make nft auction bid let new_bid = bid + Content::min_bid_step(); assert_ok!(Content::make_english_auction_bid( - Origin::signed(COLLABORATOR_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(COLLABORATOR_MEMBER_ACCOUNT_ID), COLLABORATOR_MEMBER_ID, video_id, new_bid, @@ -559,7 +575,7 @@ fn settle_english_auction_ok_with_nft_claimed_by_non_winner_and_winner_free_bala // Make an attempt to claim won english auction if last bid does not exist assert_ok!(Content::settle_english_auction( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), video_id, )); @@ -582,7 +598,7 @@ fn settle_english_auction_fails_during_transfer() { ed() + Content::min_starting_price(), ); assert_ok!(Content::make_english_auction_bid( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), SECOND_MEMBER_ID, VideoId::one(), Content::min_starting_price(), @@ -595,7 +611,7 @@ fn settle_english_auction_fails_during_transfer() { assert_noop!( Content::settle_english_auction( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), VideoId::one() ), Error::::InvalidChannelTransferStatus, diff --git a/runtime-modules/content/src/tests/nft/destroy_nft.rs b/runtime-modules/content/src/tests/nft/destroy_nft.rs index af34d649a7..8ef236adfc 100644 --- a/runtime-modules/content/src/tests/nft/destroy_nft.rs +++ b/runtime-modules/content/src/tests/nft/destroy_nft.rs @@ -18,7 +18,7 @@ fn destroy_nft() { // Issue nft assert_ok!(Content::issue_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, NftIssuanceParameters::::default(), @@ -26,7 +26,7 @@ fn destroy_nft() { // Sell nft assert_ok!(Content::destroy_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id )); @@ -54,7 +54,7 @@ fn destroy_nft_video_does_not_exist() { // Make an attempt to destroy nft which corresponding video does not exist let result = Content::destroy_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, ); @@ -78,7 +78,7 @@ fn destroy_nft_not_issued() { // Make an attempt to destrot nft which is not issued yet let result = Content::destroy_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, ); @@ -102,7 +102,7 @@ fn destroy_nft_auth_failed() { // Issue nft assert_ok!(Content::issue_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, NftIssuanceParameters::::default(), @@ -110,7 +110,7 @@ fn destroy_nft_auth_failed() { // Make an attempt to destroy nft with wrong credentials let result = Content::destroy_nft( - Origin::signed(UNAUTHORIZED_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(UNAUTHORIZED_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, ); @@ -134,7 +134,7 @@ fn destroy_nft_not_authorized() { // Issue nft assert_ok!(Content::issue_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, NftIssuanceParameters::::default(), @@ -142,7 +142,7 @@ fn destroy_nft_not_authorized() { // Make an attempt to destroy nft if actor is not authorized let result = Content::destroy_nft( - Origin::signed(UNAUTHORIZED_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(UNAUTHORIZED_MEMBER_ACCOUNT_ID), ContentActor::Member(UNAUTHORIZED_MEMBER_ID), video_id, ); @@ -166,7 +166,7 @@ fn destroy_nft_transactional_status_is_not_idle() { // Issue nft assert_ok!(Content::issue_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, NftIssuanceParameters::::default(), @@ -174,7 +174,7 @@ fn destroy_nft_transactional_status_is_not_idle() { // Offer nft assert_ok!(Content::offer_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), video_id, ContentActor::Member(DEFAULT_MEMBER_ID), SECOND_MEMBER_ID, @@ -183,7 +183,7 @@ fn destroy_nft_transactional_status_is_not_idle() { // Make an attempt to destroy nft when it is already offered let result = Content::destroy_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, ); @@ -205,7 +205,7 @@ fn destroy_nft_fails_during_channel_transfer() { assert_noop!( Content::destroy_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), 1u64, ), diff --git a/runtime-modules/content/src/tests/nft/issue_nft.rs b/runtime-modules/content/src/tests/nft/issue_nft.rs index 9b2020a270..5616d31e9c 100644 --- a/runtime-modules/content/src/tests/nft/issue_nft.rs +++ b/runtime-modules/content/src/tests/nft/issue_nft.rs @@ -21,7 +21,7 @@ fn issue_nft() { // Issue nft assert_ok!(Content::issue_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, NftIssuanceParameters::::default(), @@ -55,7 +55,7 @@ fn nft_is_issued_with_open_auction_status_successfully() { // Issue nft assert_ok!(Content::issue_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, NftIssuanceParameters:: { @@ -90,7 +90,7 @@ fn issue_nft_video_does_not_exist() { // Make an attempt to issue nft for non existent video let issue_nft_result = Content::issue_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, NftIssuanceParameters::::default(), @@ -115,7 +115,7 @@ fn issue_nft_already_issued() { // Issue nft assert_ok!(Content::issue_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, NftIssuanceParameters::::default(), @@ -123,7 +123,7 @@ fn issue_nft_already_issued() { // Make an attempt to issue nft once again for the same video let issue_nft_result = Content::issue_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, NftIssuanceParameters::::default(), @@ -148,7 +148,7 @@ fn issue_nft_auth_failed() { // Make an attempt to issue nft with wrong credentials let issue_nft_result = Content::issue_nft( - Origin::signed(UNAUTHORIZED_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(UNAUTHORIZED_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, NftIssuanceParameters::::default(), @@ -173,7 +173,7 @@ fn issue_nft_actor_not_authorized() { // Make an attempt to issue nft if actor is not authorized let issue_nft_result = Content::issue_nft( - Origin::signed(UNAUTHORIZED_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(UNAUTHORIZED_MEMBER_ACCOUNT_ID), ContentActor::Member(UNAUTHORIZED_MEMBER_ID), video_id, NftIssuanceParameters::::default(), @@ -198,7 +198,7 @@ fn issue_nft_royalty_bounds_violated() { // Make an attempt to issue nft with wrong credentials let issue_nft_result = Content::issue_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, NftIssuanceParameters:: { @@ -212,7 +212,7 @@ fn issue_nft_royalty_bounds_violated() { // Make an attempt to issue nft with wrong credentials let issue_nft_result = Content::issue_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, NftIssuanceParameters:: { @@ -248,7 +248,7 @@ fn issue_nft_fails_with_invalid_open_auction_parameters() { // Make an attempt to issue nft with wrong credentials let issue_nft_result = Content::issue_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, NftIssuanceParameters:: { @@ -323,7 +323,7 @@ fn nft_test_helper_for_exceeded_limit(nft_limit_id: NftLimitId, expected_er // Issue nft assert_eq!( Content::issue_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, NftIssuanceParameters::::default(), @@ -416,12 +416,12 @@ fn test_helper_for_nft_limit_works_as_expected( Content::set_nft_limit(nft_limit_id, 1); if disable_limits { - assert_ok!(Content::toggle_nft_limits(Origin::root(), false)); + assert_ok!(Content::toggle_nft_limits(RuntimeOrigin::root(), false)); } // Issue nft 1 assert_ok!(Content::issue_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, NftIssuanceParameters::::default(), @@ -441,7 +441,7 @@ fn test_helper_for_nft_limit_works_as_expected( // Issue nft 2 assert_eq!( Content::issue_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, NftIssuanceParameters::::default(), @@ -457,7 +457,7 @@ fn test_helper_for_nft_limit_works_as_expected( if !disable_limits { // Issue nft 3 assert_ok!(Content::issue_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, NftIssuanceParameters::::default(), @@ -496,7 +496,7 @@ fn nft_counters_increment_works_as_expected() { // Issue nft 1 assert_ok!(Content::issue_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, NftIssuanceParameters::::default(), @@ -523,7 +523,7 @@ fn nft_counters_increment_works_as_expected() { let daily_period_in_blocks = nft_limit_by_id(NftLimitId::GlobalDaily).block_number_period; run_to_block(daily_period_in_blocks); assert_ok!(Content::issue_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, NftIssuanceParameters::::default(), @@ -548,7 +548,7 @@ fn issue_nft_fails_with_pending_channel_transfer() { assert_noop!( Content::issue_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), 1u64, NftIssuanceParameters::::default(), diff --git a/runtime-modules/content/src/tests/nft/make_bid.rs b/runtime-modules/content/src/tests/nft/make_bid.rs index b799a5e797..f2b71c9bf4 100644 --- a/runtime-modules/content/src/tests/nft/make_bid.rs +++ b/runtime-modules/content/src/tests/nft/make_bid.rs @@ -19,7 +19,7 @@ fn setup_open_auction_scenario() { // Issue nft assert_ok!(Content::issue_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, NftIssuanceParameters::::default(), @@ -35,7 +35,7 @@ fn setup_open_auction_scenario() { // Start nft auction assert_ok!(Content::start_open_auction( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, auction_params, @@ -51,7 +51,7 @@ fn setup_english_auction_scenario() { // Issue nft assert_ok!(Content::issue_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, NftIssuanceParameters::::default(), @@ -69,7 +69,7 @@ fn setup_english_auction_scenario() { // Start nft auction assert_ok!(Content::start_english_auction( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, auction_params, @@ -82,7 +82,7 @@ fn setup_open_auction_scenario_with_bid(amount: u64) { // Make an attempt to make auction bid if bid step constraint violated assert_ok!(Content::make_open_auction_bid( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), SECOND_MEMBER_ID, video_id, amount, @@ -113,7 +113,7 @@ fn make_bid() { // Issue nft assert_ok!(Content::issue_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, NftIssuanceParameters::::default(), @@ -123,7 +123,7 @@ fn make_bid() { // Start nft auction assert_ok!(Content::start_open_auction( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, auction_params, @@ -141,7 +141,7 @@ fn make_bid() { // Make nft auction bid assert_ok!(Content::make_open_auction_bid( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), SECOND_MEMBER_ID, video_id, bid, @@ -187,7 +187,7 @@ fn make_bid_auth_failed() { // Issue nft assert_ok!(Content::issue_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, NftIssuanceParameters::::default(), @@ -197,7 +197,7 @@ fn make_bid_auth_failed() { // Start nft auction assert_ok!(Content::start_open_auction( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, auction_params, @@ -210,7 +210,7 @@ fn make_bid_auth_failed() { // Make an attempt to make auction bid providing wrong credentials let make_bid_result = Content::make_open_auction_bid( - Origin::signed(UNAUTHORIZED_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(UNAUTHORIZED_MEMBER_ACCOUNT_ID), DEFAULT_MEMBER_ID, video_id, bid, @@ -231,7 +231,7 @@ fn make_bid_insufficient_balance() { // Start nft auction assert_ok!(Content::start_open_auction( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, auction_params, @@ -243,7 +243,7 @@ fn make_bid_insufficient_balance() { increase_account_balance_helper(SECOND_MEMBER_ACCOUNT_ID, ed() + bid - 1); assert_noop!( Content::make_open_auction_bid( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), SECOND_MEMBER_ID, video_id, bid, @@ -263,7 +263,7 @@ fn make_bid_locked_balance() { // Start nft auction assert_ok!(Content::start_open_auction( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, auction_params, @@ -277,7 +277,7 @@ fn make_bid_locked_balance() { assert_noop!( Content::make_open_auction_bid( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), SECOND_MEMBER_ID, video_id, bid, @@ -302,7 +302,7 @@ fn make_bid_video_does_not_exist() { // Make an attempt to make auction bid if corresponding video does not exist let make_bid_result = Content::make_open_auction_bid( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), SECOND_MEMBER_ID, video_id, bid, @@ -332,7 +332,7 @@ fn make_bid_nft_is_not_issued() { // Make an attempt to make auction bid if corresponding nft is not issued yet let make_bid_result = Content::make_open_auction_bid( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), SECOND_MEMBER_ID, video_id, bid, @@ -357,7 +357,7 @@ fn make_bid_nft_is_not_in_auction_state() { // Issue nft assert_ok!(Content::issue_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, NftIssuanceParameters::::default(), @@ -370,7 +370,7 @@ fn make_bid_nft_is_not_in_auction_state() { // Make an attempt to make auction bid if corresponding nft is not in auction state let make_bid_result = Content::make_open_auction_bid( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), SECOND_MEMBER_ID, video_id, bid, @@ -395,7 +395,7 @@ fn make_bid_nft_auction_expired() { // Issue nft assert_ok!(Content::issue_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, NftIssuanceParameters::::default(), @@ -413,7 +413,7 @@ fn make_bid_nft_auction_expired() { // Start nft auction assert_ok!(Content::start_english_auction( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, auction_params, @@ -430,7 +430,7 @@ fn make_bid_nft_auction_expired() { // Make an attempt to make auction bid if corresponding english nft auction is already expired let make_bid_result = Content::make_english_auction_bid( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), SECOND_MEMBER_ID, video_id, bid, @@ -455,7 +455,7 @@ fn make_bid_member_is_not_allowed_to_participate() { // Issue nft assert_ok!(Content::issue_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, NftIssuanceParameters::::default(), @@ -473,7 +473,7 @@ fn make_bid_member_is_not_allowed_to_participate() { // Start nft auction assert_ok!(Content::start_open_auction( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, auction_params, @@ -490,7 +490,7 @@ fn make_bid_member_is_not_allowed_to_participate() { // Make an attempt to make auction bid on auction with whitelist if member is not whitelisted let make_bid_result = Content::make_open_auction_bid( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), SECOND_MEMBER_ID, video_id, bid, @@ -518,7 +518,7 @@ fn make_bid_starting_price_constraint_violated() { // Issue nft assert_ok!(Content::issue_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, NftIssuanceParameters::::default(), @@ -534,7 +534,7 @@ fn make_bid_starting_price_constraint_violated() { // Start nft auction assert_ok!(Content::start_open_auction( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, auction_params, @@ -546,7 +546,7 @@ fn make_bid_starting_price_constraint_violated() { // Make an attempt to make auction bid if bid amount provided is less then auction starting price let make_bid_result = Content::make_open_auction_bid( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), SECOND_MEMBER_ID, video_id, bid, @@ -579,7 +579,7 @@ fn make_bid_fails_with_lower_offer_and_locking_period_not_expired() { run_to_block(start_block + Content::min_bid_lock_duration() - 1); assert_err!( Content::make_open_auction_bid( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), SECOND_MEMBER_ID, video_id, low_bid, @@ -603,7 +603,7 @@ fn make_bid_succeeds_with_higher_offer_and_locking_period_not_expired() { // attemp to lower the offer on the same block -> error assert_ok!(Content::make_open_auction_bid( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), SECOND_MEMBER_ID, video_id, second_bid, @@ -628,7 +628,7 @@ fn make_bid_fails_by_insufficient_funds_for_the_next_bid() { assert_err!( Content::make_open_auction_bid( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), SECOND_MEMBER_ID, video_id, new_bid, @@ -651,7 +651,7 @@ fn make_english_auction_bid_ok_with_previous_amount_unreserved_and_free_balance_ setup_english_auction_scenario(); assert_ok!(Content::make_english_auction_bid( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), SECOND_MEMBER_ID, video_id, init_bid, @@ -661,7 +661,7 @@ fn make_english_auction_bid_ok_with_previous_amount_unreserved_and_free_balance_ increase_account_balance_helper(COLLABORATOR_MEMBER_ACCOUNT_ID, ed() + new_bid); assert_ok!(Content::make_english_auction_bid( - Origin::signed(COLLABORATOR_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(COLLABORATOR_MEMBER_ACCOUNT_ID), COLLABORATOR_MEMBER_ID, video_id, new_bid, @@ -692,7 +692,7 @@ fn make_english_auction_bid_ok_with_previous_amount_unreserved_and_reserved_bala setup_english_auction_scenario(); let _ = Content::make_open_auction_bid( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), SECOND_MEMBER_ID, video_id, init_bid, @@ -702,7 +702,7 @@ fn make_english_auction_bid_ok_with_previous_amount_unreserved_and_reserved_bala increase_account_balance_helper(COLLABORATOR_MEMBER_ACCOUNT_ID, new_bid); let _ = Content::make_open_auction_bid( - Origin::signed(COLLABORATOR_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(COLLABORATOR_MEMBER_ACCOUNT_ID), COLLABORATOR_MEMBER_ID, video_id, new_bid, @@ -726,7 +726,7 @@ fn make_bid_succeeds_with_auction_completion_and_outstanding_bids() { setup_open_auction_scenario_with_bid(Content::min_starting_price()); assert_ok!(Content::make_open_auction_bid( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), SECOND_MEMBER_ID, video_id, DEFAULT_BUY_NOW_PRICE, @@ -754,7 +754,7 @@ fn make_bid_succeeds_with_auction_completion_and_no_outstanding_bids() { setup_open_auction_scenario(); assert_ok!(Content::make_open_auction_bid( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), SECOND_MEMBER_ID, video_id, DEFAULT_BUY_NOW_PRICE, @@ -782,7 +782,7 @@ fn make_bid_ok_with_open_auction_completion_and_total_balance_slashed() { setup_open_auction_scenario(); assert_ok!(Content::make_open_auction_bid( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), SECOND_MEMBER_ID, video_id, DEFAULT_BUY_NOW_PRICE + 10, @@ -806,7 +806,7 @@ fn make_bid_ok_with_open_auction_completion_and_no_reserve_balance_left_for_bidd setup_open_auction_scenario(); assert_ok!(Content::make_open_auction_bid( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), SECOND_MEMBER_ID, video_id, DEFAULT_BUY_NOW_PRICE + 10, @@ -834,14 +834,14 @@ fn make_bid_ok_with_english_auction_completion_with_bid_below_min_step() { .call_and_assert(Ok(())); assert_ok!(Content::make_english_auction_bid( - Origin::signed(THIRD_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(THIRD_MEMBER_ACCOUNT_ID), THIRD_MEMBER_ID, VideoId::one(), DEFAULT_BUY_NOW_PRICE - 10, )); assert_ok!(Content::make_english_auction_bid( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), SECOND_MEMBER_ID, VideoId::one(), DEFAULT_BUY_NOW_PRICE, @@ -861,7 +861,7 @@ fn make_bid_ok_with_english_auction_completion_and_total_balance_slashed() { .call_and_assert(Ok(())); assert_ok!(Content::make_english_auction_bid( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), SECOND_MEMBER_ID, VideoId::one(), BID_OFFER, @@ -887,7 +887,7 @@ fn make_bid_ok_with_open_auction_owner_account_increased_balance_by_correct_amou let auction_fee = Content::platform_fee_percentage().mul_floor(DEFAULT_BUY_NOW_PRICE); assert_ok!(Content::make_open_auction_bid( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), SECOND_MEMBER_ID, video_id, DEFAULT_BUY_NOW_PRICE + 10, @@ -913,7 +913,7 @@ fn make_bid_ok_with_english_auction_owner_account_increased_balance_by_correct_a let auction_fee = Content::platform_fee_percentage().mul_floor(DEFAULT_BUY_NOW_PRICE); assert_ok!(Content::make_english_auction_bid( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), SECOND_MEMBER_ID, video_id, DEFAULT_BUY_NOW_PRICE + 10, @@ -942,7 +942,7 @@ fn english_auction_bid_made_event_includes_prev_top_bidder() { let third_bid_amount = Content::min_bid_step() * 3; assert_ok!(Content::make_english_auction_bid( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), DEFAULT_MEMBER_ID, video_id, first_bid_amount, @@ -959,7 +959,7 @@ fn english_auction_bid_made_event_includes_prev_top_bidder() { ); assert_ok!(Content::make_english_auction_bid( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), SECOND_MEMBER_ID, video_id, second_bid_amount, @@ -976,7 +976,7 @@ fn english_auction_bid_made_event_includes_prev_top_bidder() { ); assert_ok!(Content::make_english_auction_bid( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), DEFAULT_MEMBER_ID, video_id, third_bid_amount, @@ -1005,7 +1005,7 @@ fn english_auction_bid_made_completing_auction_event_with_no_previous_bidder() { increase_account_balance_helper(DEFAULT_MEMBER_ACCOUNT_ID, BIDDER_BALANCE); assert_ok!(Content::make_english_auction_bid( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), DEFAULT_MEMBER_ID, video_id, DEFAULT_BUY_NOW_PRICE, @@ -1034,7 +1034,7 @@ fn english_auction_bid_made_completing_auction_event_with_previous_bidder() { increase_account_balance_helper(SECOND_MEMBER_ACCOUNT_ID, BIDDER_BALANCE); assert_ok!(Content::make_english_auction_bid( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), SECOND_MEMBER_ID, video_id, Content::min_bid_step(), @@ -1051,7 +1051,7 @@ fn english_auction_bid_made_completing_auction_event_with_previous_bidder() { ); assert_ok!(Content::make_english_auction_bid( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), DEFAULT_MEMBER_ID, video_id, DEFAULT_BUY_NOW_PRICE @@ -1081,7 +1081,7 @@ fn make_bid_with_open_auction_is_not_started() { // Issue nft assert_ok!(Content::issue_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, NftIssuanceParameters::::default(), @@ -1097,7 +1097,7 @@ fn make_bid_with_open_auction_is_not_started() { // Start nft auction assert_ok!(Content::start_open_auction( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, auction_params, @@ -1107,7 +1107,7 @@ fn make_bid_with_open_auction_is_not_started() { let bid = Content::min_starting_price(); increase_account_balance_helper(SECOND_MEMBER_ACCOUNT_ID, ed() + bid); let make_bid_result = Content::make_open_auction_bid( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), SECOND_MEMBER_ID, video_id, bid, @@ -1131,7 +1131,7 @@ fn make_bid_with_english_auction_is_not_started() { // Issue nft assert_ok!(Content::issue_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, NftIssuanceParameters::::default(), @@ -1149,7 +1149,7 @@ fn make_bid_with_english_auction_is_not_started() { // Start nft auction assert_ok!(Content::start_english_auction( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, auction_params, @@ -1159,7 +1159,7 @@ fn make_bid_with_english_auction_is_not_started() { let bid = Content::min_starting_price(); increase_account_balance_helper(SECOND_MEMBER_ACCOUNT_ID, ed() + bid); let make_bid_result = Content::make_english_auction_bid( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), SECOND_MEMBER_ID, video_id, bid, @@ -1187,7 +1187,7 @@ fn english_auction_increased_bid_works_correctly() { let bid1 = Content::min_bid_step(); assert_ok!(Content::make_english_auction_bid( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), SECOND_MEMBER_ID, video_id, bid1, @@ -1199,7 +1199,7 @@ fn english_auction_increased_bid_works_correctly() { let bid2 = Content::min_bid_step() * 2; assert_ok!(Content::make_english_auction_bid( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), SECOND_MEMBER_ID, video_id, bid2, @@ -1228,7 +1228,7 @@ fn open_auction_increased_bid_works_correctly() { let bid1 = Content::min_bid_step(); assert_ok!(Content::make_open_auction_bid( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), SECOND_MEMBER_ID, video_id, bid1, @@ -1240,7 +1240,7 @@ fn open_auction_increased_bid_works_correctly() { let bid2 = 2 * Content::min_bid_step(); assert_ok!(Content::make_open_auction_bid( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), SECOND_MEMBER_ID, video_id, bid2, @@ -1269,7 +1269,7 @@ fn open_auction_decreased_bid_works_correctly() { let bid1 = 2 * Content::min_bid_step(); assert_ok!(Content::make_open_auction_bid( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), SECOND_MEMBER_ID, video_id, bid1, @@ -1283,7 +1283,7 @@ fn open_auction_decreased_bid_works_correctly() { let bid2 = Content::min_bid_step(); assert_ok!(Content::make_open_auction_bid( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), SECOND_MEMBER_ID, video_id, bid2, @@ -1311,7 +1311,7 @@ fn make_open_auction_bid_fails_during_transfer() { assert_noop!( Content::make_open_auction_bid( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), SECOND_MEMBER_ID, VideoId::one(), Content::min_starting_price(), @@ -1334,7 +1334,7 @@ fn make_english_auction_bid_fails_during_transfer() { assert_noop!( Content::make_english_auction_bid( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), SECOND_MEMBER_ID, VideoId::one(), Content::min_starting_price(), diff --git a/runtime-modules/content/src/tests/nft/offer_nft.rs b/runtime-modules/content/src/tests/nft/offer_nft.rs index df9296d724..12bf957a82 100644 --- a/runtime-modules/content/src/tests/nft/offer_nft.rs +++ b/runtime-modules/content/src/tests/nft/offer_nft.rs @@ -18,7 +18,7 @@ fn offer_nft() { // Issue nft assert_ok!(Content::issue_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, NftIssuanceParameters::::default(), @@ -26,7 +26,7 @@ fn offer_nft() { // Offer nft assert_ok!(Content::offer_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), video_id, ContentActor::Member(DEFAULT_MEMBER_ID), SECOND_MEMBER_ID, @@ -67,7 +67,7 @@ fn offer_nft_video_does_not_exist() { // Make an attempt to offer nft which corresponding video does not exist let offer_nft_result = Content::offer_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), video_id, ContentActor::Member(DEFAULT_MEMBER_ID), SECOND_MEMBER_ID, @@ -93,7 +93,7 @@ fn offer_nft_not_issued() { // Make an attempt to offer nft which is not issued yet let offer_nft_result = Content::offer_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), video_id, ContentActor::Member(DEFAULT_MEMBER_ID), SECOND_MEMBER_ID, @@ -119,7 +119,7 @@ fn offer_nft_auth_failed() { // Issue nft assert_ok!(Content::issue_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, NftIssuanceParameters::::default(), @@ -127,7 +127,7 @@ fn offer_nft_auth_failed() { // Make an attempt to offer nft with wrong credentials let offer_nft_result = Content::offer_nft( - Origin::signed(UNAUTHORIZED_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(UNAUTHORIZED_MEMBER_ACCOUNT_ID), video_id, ContentActor::Member(DEFAULT_MEMBER_ID), SECOND_MEMBER_ID, @@ -153,7 +153,7 @@ fn offer_nft_not_authorized() { // Issue nft assert_ok!(Content::issue_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, NftIssuanceParameters::::default(), @@ -161,7 +161,7 @@ fn offer_nft_not_authorized() { // Make an attempt to offer nft if actor is not authorized let offer_nft_result = Content::offer_nft( - Origin::signed(UNAUTHORIZED_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(UNAUTHORIZED_MEMBER_ACCOUNT_ID), video_id, ContentActor::Member(UNAUTHORIZED_MEMBER_ID), UNAUTHORIZED_MEMBER_ID, @@ -187,7 +187,7 @@ fn offer_nft_transactional_status_is_not_idle() { // Issue nft assert_ok!(Content::issue_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, NftIssuanceParameters::::default(), @@ -195,7 +195,7 @@ fn offer_nft_transactional_status_is_not_idle() { // Offer nft assert_ok!(Content::offer_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), video_id, ContentActor::Member(DEFAULT_MEMBER_ID), SECOND_MEMBER_ID, @@ -204,7 +204,7 @@ fn offer_nft_transactional_status_is_not_idle() { // Make an attempt to offer nft when it is already offered let offer_nft_result = Content::offer_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), video_id, ContentActor::Member(DEFAULT_MEMBER_ID), SECOND_MEMBER_ID, @@ -227,7 +227,7 @@ fn offer_nft_fails_during_channel_transfer() { assert_noop!( Content::offer_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), 1u64, ContentActor::Member(DEFAULT_MEMBER_ID), SECOND_MEMBER_ID, diff --git a/runtime-modules/content/src/tests/nft/pick_open_auction_winner.rs b/runtime-modules/content/src/tests/nft/pick_open_auction_winner.rs index b8db378854..76e436e184 100644 --- a/runtime-modules/content/src/tests/nft/pick_open_auction_winner.rs +++ b/runtime-modules/content/src/tests/nft/pick_open_auction_winner.rs @@ -16,7 +16,7 @@ fn pick_open_auction_winner() { // Issue nft assert_ok!(Content::issue_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, NftIssuanceParameters::::default(), @@ -34,7 +34,7 @@ fn pick_open_auction_winner() { // Start nft auction assert_ok!(Content::start_open_auction( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, auction_params, @@ -47,7 +47,7 @@ fn pick_open_auction_winner() { // Make nft auction bid assert_ok!(Content::make_open_auction_bid( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), SECOND_MEMBER_ID, video_id, bid, @@ -55,7 +55,7 @@ fn pick_open_auction_winner() { // Pick open auction winner assert_ok!(Content::pick_open_auction_winner( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, SECOND_MEMBER_ID, @@ -97,7 +97,7 @@ fn pick_open_auction_winner_auth_failed() { // Issue nft assert_ok!(Content::issue_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, NftIssuanceParameters::::default(), @@ -115,7 +115,7 @@ fn pick_open_auction_winner_auth_failed() { // Start nft auction assert_ok!(Content::start_open_auction( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, auction_params, @@ -128,7 +128,7 @@ fn pick_open_auction_winner_auth_failed() { // Make nft auction bid assert_ok!(Content::make_open_auction_bid( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), SECOND_MEMBER_ID, video_id, bid, @@ -139,7 +139,7 @@ fn pick_open_auction_winner_auth_failed() { // Make an attempt to pick open auction winner with wrong credentials let pick_open_auction_winner_result = Content::pick_open_auction_winner( - Origin::signed(UNAUTHORIZED_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(UNAUTHORIZED_MEMBER_ACCOUNT_ID), ContentActor::Member(SECOND_MEMBER_ID), video_id, SECOND_MEMBER_ID, @@ -168,7 +168,7 @@ fn pick_open_auction_winner_actor_not_authorized() { // Issue nft assert_ok!(Content::issue_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, NftIssuanceParameters::::default(), @@ -186,7 +186,7 @@ fn pick_open_auction_winner_actor_not_authorized() { // Start nft auction assert_ok!(Content::start_open_auction( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, auction_params, @@ -199,7 +199,7 @@ fn pick_open_auction_winner_actor_not_authorized() { // Make nft auction bid assert_ok!(Content::make_open_auction_bid( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), SECOND_MEMBER_ID, video_id, bid, @@ -210,7 +210,7 @@ fn pick_open_auction_winner_actor_not_authorized() { // Make an attempt to pick open auction winner if actor is not authorized to do this let pick_open_auction_winner_result = Content::pick_open_auction_winner( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), ContentActor::Member(SECOND_MEMBER_ID), video_id, SECOND_MEMBER_ID, @@ -235,7 +235,7 @@ fn pick_open_auction_winner_video_does_not_exist() { // Make an attempt to pick open auction winner which corresponding video does not exist let pick_open_auction_winner_result = Content::pick_open_auction_winner( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), ContentActor::Member(SECOND_MEMBER_ID), video_id, SECOND_MEMBER_ID, @@ -264,7 +264,7 @@ fn pick_open_auction_winner_nft_is_not_issued() { // Make an attempt to pick open auction winner for nft which is not issued yet let pick_open_auction_winner_result = Content::pick_open_auction_winner( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), ContentActor::Member(SECOND_MEMBER_ID), video_id, SECOND_MEMBER_ID, @@ -293,7 +293,7 @@ fn pick_open_auction_winner_not_in_auction_state() { // Issue nft assert_ok!(Content::issue_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, NftIssuanceParameters::::default(), @@ -301,7 +301,7 @@ fn pick_open_auction_winner_not_in_auction_state() { // Make an attempt to pick open auction winner for nft which is not in auction state let pick_open_auction_winner_result = Content::pick_open_auction_winner( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, SECOND_MEMBER_ID, @@ -330,7 +330,7 @@ fn pick_open_auction_winner_is_not_open_auction_type() { // Issue nft assert_ok!(Content::issue_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, NftIssuanceParameters::::default(), @@ -348,7 +348,7 @@ fn pick_open_auction_winner_is_not_open_auction_type() { // Start nft auction assert_ok!(Content::start_english_auction( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, auction_params, @@ -361,7 +361,7 @@ fn pick_open_auction_winner_is_not_open_auction_type() { // Make nft auction bid assert_ok!(Content::make_english_auction_bid( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), SECOND_MEMBER_ID, video_id, bid, @@ -369,7 +369,7 @@ fn pick_open_auction_winner_is_not_open_auction_type() { // Make an attempt to pick open auction winner for nft which is in english auction state let pick_open_auction_winner_result = Content::pick_open_auction_winner( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, SECOND_MEMBER_ID, @@ -398,7 +398,7 @@ fn pick_open_auction_winner_bid_does_not_exist() { // Issue nft assert_ok!(Content::issue_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, NftIssuanceParameters::::default(), @@ -416,7 +416,7 @@ fn pick_open_auction_winner_bid_does_not_exist() { // Start nft auction assert_ok!(Content::start_open_auction( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, auction_params, @@ -427,7 +427,7 @@ fn pick_open_auction_winner_bid_does_not_exist() { // Make an attempt to pick open auction winner if last bid does not exist let pick_open_auction_winner_result = Content::pick_open_auction_winner( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, SECOND_MEMBER_ID, @@ -457,7 +457,7 @@ fn pick_open_auction_winner_fails_with_invalid_bid_commit() { // Issue nft assert_ok!(Content::issue_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, NftIssuanceParameters::::default(), @@ -475,7 +475,7 @@ fn pick_open_auction_winner_fails_with_invalid_bid_commit() { // Start nft auction assert_ok!(Content::start_open_auction( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, auction_params, @@ -492,7 +492,7 @@ fn pick_open_auction_winner_fails_with_invalid_bid_commit() { // Make nft auction bid assert_ok!(Content::make_open_auction_bid( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), SECOND_MEMBER_ID, video_id, high_bid, @@ -502,7 +502,7 @@ fn pick_open_auction_winner_fails_with_invalid_bid_commit() { // Attempt to race assert_ok!(Content::make_open_auction_bid( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), SECOND_MEMBER_ID, video_id, low_bid, @@ -511,7 +511,7 @@ fn pick_open_auction_winner_fails_with_invalid_bid_commit() { // bid amount secured by commit assert_err!( Content::pick_open_auction_winner( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, SECOND_MEMBER_ID, @@ -542,7 +542,7 @@ fn pick_open_auction_winner_ok_with_nft_member_owner_correctly_credited() { .call_and_assert(Ok(())); assert_ok!(Content::pick_open_auction_winner( - Origin::signed(THIRD_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(THIRD_MEMBER_ACCOUNT_ID), ContentActor::Member(THIRD_MEMBER_ID), VideoId::one(), SECOND_MEMBER_ID, @@ -572,7 +572,7 @@ fn pick_open_auction_ok_with_channel_owner_correctly_credited() { .call_and_assert(Ok(())); assert_ok!(Content::pick_open_auction_winner( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), VideoId::one(), SECOND_MEMBER_ID, @@ -597,7 +597,7 @@ fn pick_open_auction_fails_during_channel_transfer() { assert_noop!( Content::pick_open_auction_winner( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), 1u64, SECOND_MEMBER_ID, diff --git a/runtime-modules/content/src/tests/nft/sell_nft.rs b/runtime-modules/content/src/tests/nft/sell_nft.rs index d94e2bd3fc..7e848e58a7 100644 --- a/runtime-modules/content/src/tests/nft/sell_nft.rs +++ b/runtime-modules/content/src/tests/nft/sell_nft.rs @@ -18,14 +18,14 @@ fn sell_nft() { // Issue nft assert_ok!(Content::issue_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, NftIssuanceParameters::::default(), )); // Sell nft assert_ok!(Content::sell_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), video_id, ContentActor::Member(DEFAULT_MEMBER_ID), DEFAULT_NFT_PRICE, @@ -63,7 +63,7 @@ fn sell_nft_video_does_not_exist() { // Make an attempt to sell nft which corresponding video does not exist yet let sell_nft_result = Content::sell_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), video_id, ContentActor::Member(DEFAULT_MEMBER_ID), DEFAULT_NFT_PRICE, @@ -88,7 +88,7 @@ fn sell_nft_not_issued() { // Make an attempt to sell nft which is not issued yet let sell_nft_result = Content::sell_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), video_id, ContentActor::Member(DEFAULT_MEMBER_ID), DEFAULT_NFT_PRICE, @@ -113,7 +113,7 @@ fn sell_nft_auth_failed() { // Issue nft assert_ok!(Content::issue_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, NftIssuanceParameters::::default(), @@ -121,7 +121,7 @@ fn sell_nft_auth_failed() { // Make an attempt to sell nft with wrong credentials let sell_nft_result = Content::sell_nft( - Origin::signed(UNAUTHORIZED_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(UNAUTHORIZED_MEMBER_ACCOUNT_ID), video_id, ContentActor::Member(DEFAULT_MEMBER_ID), DEFAULT_NFT_PRICE, @@ -146,7 +146,7 @@ fn sell_nft_not_authorized() { // Issue nft assert_ok!(Content::issue_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, NftIssuanceParameters::::default(), @@ -154,7 +154,7 @@ fn sell_nft_not_authorized() { // Make an attempt to sell nft if actor is not authorized let sell_nft_result = Content::sell_nft( - Origin::signed(UNAUTHORIZED_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(UNAUTHORIZED_MEMBER_ACCOUNT_ID), video_id, ContentActor::Member(UNAUTHORIZED_MEMBER_ID), DEFAULT_NFT_PRICE, @@ -179,7 +179,7 @@ fn sell_nft_transactional_status_is_not_idle() { // Issue nft assert_ok!(Content::issue_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, NftIssuanceParameters::::default(), @@ -187,7 +187,7 @@ fn sell_nft_transactional_status_is_not_idle() { // Offer nft assert_ok!(Content::offer_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), video_id, ContentActor::Member(DEFAULT_MEMBER_ID), SECOND_MEMBER_ID, @@ -196,7 +196,7 @@ fn sell_nft_transactional_status_is_not_idle() { // Make an attempt to sell nft when it is already offered let sell_nft_result = Content::sell_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), video_id, ContentActor::Member(DEFAULT_MEMBER_ID), DEFAULT_NFT_PRICE, @@ -220,7 +220,7 @@ fn sell_nft_fails_during_transfer() { assert_noop!( Content::sell_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), VideoId::one(), ContentActor::Member(DEFAULT_MEMBER_ID), DEFAULT_NFT_PRICE, diff --git a/runtime-modules/content/src/tests/nft/sling_nft_back.rs b/runtime-modules/content/src/tests/nft/sling_nft_back.rs index 673db1fe51..e49b72239e 100644 --- a/runtime-modules/content/src/tests/nft/sling_nft_back.rs +++ b/runtime-modules/content/src/tests/nft/sling_nft_back.rs @@ -18,7 +18,7 @@ fn sling_nft_back() { // Issue nft assert_ok!(Content::issue_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, NftIssuanceParameters:: { @@ -38,7 +38,7 @@ fn sling_nft_back() { // Sling nft back to the original artist assert_ok!(Content::sling_nft_back( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), video_id, ContentActor::Member(SECOND_MEMBER_ID), )); @@ -72,7 +72,7 @@ fn sling_nft_back_video_does_not_exist() { // Make an attempt to sling nft back which corresponding video does not exist let sling_nft_back_result = Content::sling_nft_back( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), video_id, ContentActor::Member(DEFAULT_MEMBER_ID), ); @@ -96,7 +96,7 @@ fn sling_nft_back_not_issued() { // Make an attempt to sling nft back which is not issued yet let sling_nft_back_result = Content::sling_nft_back( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), video_id, ContentActor::Member(DEFAULT_MEMBER_ID), ); @@ -125,7 +125,7 @@ fn sling_nft_back_auth_failed() { // Make an attempt to sling nft back with wrong credentials let sling_nft_back_result = Content::sling_nft_back( - Origin::signed(UNAUTHORIZED_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(UNAUTHORIZED_MEMBER_ACCOUNT_ID), video_id, ContentActor::Member(DEFAULT_MEMBER_ID), ); @@ -154,7 +154,7 @@ fn sling_nft_back_not_authorized() { // Make an attempt to sling nft back if actor is not authorized let sling_nft_back_result = Content::sling_nft_back( - Origin::signed(UNAUTHORIZED_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(UNAUTHORIZED_MEMBER_ACCOUNT_ID), video_id, ContentActor::Member(UNAUTHORIZED_MEMBER_ID), ); @@ -183,7 +183,7 @@ fn sling_nft_back_transactional_status_is_not_idle() { // Offer nft assert_ok!(Content::offer_nft( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), video_id, ContentActor::Member(SECOND_MEMBER_ID), SECOND_MEMBER_ID, @@ -192,7 +192,7 @@ fn sling_nft_back_transactional_status_is_not_idle() { // Make an attempt to sling nft back when it is already offered let sling_nft_back_result = Content::sling_nft_back( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), video_id, ContentActor::Member(SECOND_MEMBER_ID), ); @@ -217,7 +217,7 @@ fn sling_nft_back_fails_during_channel_transfer() { assert_noop!( Content::sling_nft_back( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), 1u64, ContentActor::Member(SECOND_MEMBER_ID), ), @@ -235,7 +235,7 @@ fn sling_nft_back_fails_with_channel_owned_nft() { assert_noop!( Content::sling_nft_back( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), 1u64, ContentActor::Member(DEFAULT_MEMBER_ID), ), diff --git a/runtime-modules/content/src/tests/nft/start_nft_auction.rs b/runtime-modules/content/src/tests/nft/start_nft_auction.rs index 523f5244cf..b14baee8d4 100644 --- a/runtime-modules/content/src/tests/nft/start_nft_auction.rs +++ b/runtime-modules/content/src/tests/nft/start_nft_auction.rs @@ -21,7 +21,7 @@ fn start_open_auction() { // Issue nft assert_ok!(Content::issue_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, NftIssuanceParameters::::default(), @@ -31,7 +31,7 @@ fn start_open_auction() { // Start nft auction assert_ok!(Content::start_open_auction( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, auction_params.clone(), @@ -73,7 +73,7 @@ fn start_nft_auction_video_does_not_exist() { // Make an attempt to start nft auction which corresponding video does not exist yet let start_nft_auction_result = Content::start_open_auction( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, auction_params, @@ -100,7 +100,7 @@ fn start_nft_auction_not_issued() { // Make an attempt to start nft auction for nft which is not issued yet let start_nft_auction_result = Content::start_open_auction( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, auction_params, @@ -125,7 +125,7 @@ fn start_nft_auction_auth_failed() { // Issue nft assert_ok!(Content::issue_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, NftIssuanceParameters::::default(), @@ -135,7 +135,7 @@ fn start_nft_auction_auth_failed() { // Make an attempt to start nft auction with wrong credentials let start_nft_auction_result = Content::start_open_auction( - Origin::signed(UNAUTHORIZED_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(UNAUTHORIZED_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, auction_params, @@ -160,7 +160,7 @@ fn start_nft_auction_not_authorized() { // Issue nft assert_ok!(Content::issue_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, NftIssuanceParameters::::default(), @@ -170,7 +170,7 @@ fn start_nft_auction_not_authorized() { // Make an attempt to start nft auction if actor is not authorized let start_nft_auction_result = Content::start_open_auction( - Origin::signed(UNAUTHORIZED_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(UNAUTHORIZED_MEMBER_ACCOUNT_ID), ContentActor::Member(UNAUTHORIZED_MEMBER_ID), video_id, auction_params, @@ -195,7 +195,7 @@ fn start_nft_auction_transactional_status_is_not_idle() { // Issue nft assert_ok!(Content::issue_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, NftIssuanceParameters::::default(), @@ -203,7 +203,7 @@ fn start_nft_auction_transactional_status_is_not_idle() { // Offer nft assert_ok!(Content::offer_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), video_id, ContentActor::Member(DEFAULT_MEMBER_ID), SECOND_MEMBER_ID, @@ -214,7 +214,7 @@ fn start_nft_auction_transactional_status_is_not_idle() { // Make an attempt to start nft auction if nft transaction status is not idle let start_nft_auction_result = Content::start_open_auction( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, auction_params, @@ -239,7 +239,7 @@ fn start_nft_auction_invalid_params() { // Issue nft assert_ok!(Content::issue_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, NftIssuanceParameters::::default(), @@ -255,7 +255,7 @@ fn start_nft_auction_invalid_params() { }; let start_nft_auction_result = Content::start_open_auction( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, auction_params, @@ -277,7 +277,7 @@ fn start_nft_auction_invalid_params() { }; let start_nft_auction_result = Content::start_open_auction( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, auction_params, @@ -300,7 +300,7 @@ fn start_nft_auction_invalid_params() { }; let start_nft_auction_result = Content::start_open_auction( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, auction_params, @@ -323,7 +323,7 @@ fn start_nft_auction_invalid_params() { }; let start_nft_auction_result = Content::start_open_auction( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, auction_params, @@ -348,7 +348,7 @@ fn start_nft_auction_invalid_params() { }; let start_nft_auction_result = Content::start_english_auction( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, auction_params, @@ -373,7 +373,7 @@ fn start_nft_auction_invalid_params() { }; let start_nft_auction_result = Content::start_english_auction( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, auction_params, @@ -398,7 +398,7 @@ fn start_nft_auction_invalid_params() { }; let start_nft_auction_result = Content::start_english_auction( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, auction_params, @@ -423,7 +423,7 @@ fn start_nft_auction_invalid_params() { }; let start_nft_auction_result = Content::start_english_auction( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, auction_params, @@ -447,7 +447,7 @@ fn start_nft_auction_invalid_params() { }; let start_nft_auction_result = Content::start_open_auction( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, auction_params, @@ -469,7 +469,7 @@ fn start_nft_auction_invalid_params() { }; let start_nft_auction_result = Content::start_open_auction( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, auction_params, @@ -496,7 +496,7 @@ fn start_nft_auction_invalid_params() { }; let start_nft_auction_result = Content::start_open_auction( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, auction_params, @@ -525,7 +525,7 @@ fn start_eng_auction_fails_with_invalid_forward_starting() { // Issue nft assert_ok!(Content::issue_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, NftIssuanceParameters::::default(), @@ -542,7 +542,7 @@ fn start_eng_auction_fails_with_invalid_forward_starting() { }; let start_nft_auction_result = Content::start_english_auction( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, auction_params, @@ -565,7 +565,7 @@ fn start_eng_auction_fails_with_invalid_forward_starting() { }; let start_nft_auction_result = Content::start_english_auction( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, auction_params, @@ -591,7 +591,7 @@ fn start_open_auction_fails_during_channel_transfer() { assert_noop!( Content::start_open_auction( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), 1u64, OpenAuctionParams::::default(), @@ -613,7 +613,7 @@ fn start_english_auction_fails_during_channel_transfer() { assert_noop!( Content::start_english_auction( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), 1u64, EnglishAuctionParams::::default(), @@ -631,7 +631,7 @@ fn start_open_auction_fails_with_non_existing_member_in_whitelist() { IssueNftFixture::default().call_and_assert(Ok(())); assert_noop!( Content::start_open_auction( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), 1u64, OpenAuctionParams:: { @@ -656,7 +656,7 @@ fn start_english_auction_fails_with_non_existing_member_in_whitelist() { assert_noop!( Content::start_english_auction( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), 1u64, EnglishAuctionParams:: { diff --git a/runtime-modules/content/src/tests/nft/update_buy_now.rs b/runtime-modules/content/src/tests/nft/update_buy_now.rs index 71b5a96f88..040ae02681 100644 --- a/runtime-modules/content/src/tests/nft/update_buy_now.rs +++ b/runtime-modules/content/src/tests/nft/update_buy_now.rs @@ -19,7 +19,7 @@ fn update_buy_now_price() { // Issue nft assert_ok!(Content::issue_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, NftIssuanceParameters::::default(), @@ -29,7 +29,7 @@ fn update_buy_now_price() { // Sell nft assert_ok!(Content::sell_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), video_id, ContentActor::Member(DEFAULT_MEMBER_ID), DEFAULT_NFT_PRICE, @@ -37,7 +37,7 @@ fn update_buy_now_price() { // update buy now price assert_ok!(Content::update_buy_now_price( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, NEW_NFT_PRICE, @@ -71,7 +71,7 @@ fn update_buy_now_price_video_does_not_exist() { // Make an attempt to update buy now price which corresponding video does not exist yet let update_buy_now_price_result = Content::update_buy_now_price( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, NEW_NFT_PRICE, @@ -99,7 +99,7 @@ fn update_buy_now_price_not_issued() { // Make an attempt to update buy now price for nft which is not issued yet let update_buy_now_price_result = Content::update_buy_now_price( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, NEW_NFT_PRICE, @@ -124,7 +124,7 @@ fn update_buy_now_price_auth_failed() { // Issue nft assert_ok!(Content::issue_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, NftIssuanceParameters::::default(), @@ -132,7 +132,7 @@ fn update_buy_now_price_auth_failed() { // Sell nft assert_ok!(Content::sell_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), video_id, ContentActor::Member(DEFAULT_MEMBER_ID), DEFAULT_NFT_PRICE, @@ -140,7 +140,7 @@ fn update_buy_now_price_auth_failed() { // Make an attempt to update buy now price with wrong credentials let update_buy_now_price_result = Content::update_buy_now_price( - Origin::signed(UNAUTHORIZED_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(UNAUTHORIZED_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, NEW_NFT_PRICE, @@ -165,7 +165,7 @@ fn update_buy_now_price_not_authorized() { // Issue nft assert_ok!(Content::issue_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, NftIssuanceParameters::::default(), @@ -173,7 +173,7 @@ fn update_buy_now_price_not_authorized() { // Sell nft assert_ok!(Content::sell_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), video_id, ContentActor::Member(DEFAULT_MEMBER_ID), DEFAULT_NFT_PRICE, @@ -181,7 +181,7 @@ fn update_buy_now_price_not_authorized() { // Make an attempt to update buy now price if actor is not authorized let update_buy_now_price_result = Content::update_buy_now_price( - Origin::signed(SECOND_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(SECOND_MEMBER_ACCOUNT_ID), ContentActor::Member(SECOND_MEMBER_ID), video_id, NEW_NFT_PRICE, @@ -209,7 +209,7 @@ fn update_buy_now_price_not_in_auction_state() { // Issue nft assert_ok!(Content::issue_nft( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, NftIssuanceParameters::::default(), @@ -217,7 +217,7 @@ fn update_buy_now_price_not_in_auction_state() { // Make an attempt to update buy now price if there is no pending one let update_buy_now_price_result = Content::update_buy_now_price( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), video_id, NEW_NFT_PRICE, @@ -244,7 +244,7 @@ fn update_buy_now_price_fails_during_channel_transfer() { assert_noop!( Content::update_buy_now_price( - Origin::signed(DEFAULT_MEMBER_ACCOUNT_ID), + RuntimeOrigin::signed(DEFAULT_MEMBER_ACCOUNT_ID), ContentActor::Member(DEFAULT_MEMBER_ID), 1u64, Content::min_starting_price() + 1, diff --git a/runtime-modules/content/src/tests/nft/update_nft_limit.rs b/runtime-modules/content/src/tests/nft/update_nft_limit.rs index 7bebbb53ef..ac99526f14 100644 --- a/runtime-modules/content/src/tests/nft/update_nft_limit.rs +++ b/runtime-modules/content/src/tests/nft/update_nft_limit.rs @@ -163,7 +163,7 @@ fn toggle_nft_limits_ok_with_event_deposited_and_status_changed() { with_default_mock_builder(|| { run_to_block(1); // nft limits is true by chainspec configuration, changing to false.. - assert_ok!(Content::toggle_nft_limits(Origin::root(), false)); + assert_ok!(Content::toggle_nft_limits(RuntimeOrigin::root(), false)); assert_eq!( System::events().last().unwrap().event, @@ -179,7 +179,7 @@ fn toggle_nft_limits_fails_by_non_root_origin() { run_to_block(1); // nft limits is true by chainspec configuration assert_noop!( - Content::toggle_nft_limits(Origin::signed(LEAD_ACCOUNT_ID), false), + Content::toggle_nft_limits(RuntimeOrigin::signed(LEAD_ACCOUNT_ID), false), DispatchError::BadOrigin, ); }) diff --git a/runtime-modules/content/src/tests/videos.rs b/runtime-modules/content/src/tests/videos.rs index 3a7dc3da68..0847faee66 100644 --- a/runtime-modules/content/src/tests/videos.rs +++ b/runtime-modules/content/src/tests/videos.rs @@ -429,7 +429,7 @@ fn unsuccessful_video_creation_due_to_bucket_having_insufficient_objects_number_ // Set storage bucket number in the dynamic bag creation policy. assert_eq!( Storage::::update_number_of_storage_buckets_in_dynamic_bag_creation_policy( - Origin::signed(STORAGE_WG_LEADER_ACCOUNT_ID), + RuntimeOrigin::signed(STORAGE_WG_LEADER_ACCOUNT_ID), DynamicBagType::Channel, 1, ), diff --git a/runtime-modules/council/src/mock.rs b/runtime-modules/council/src/mock.rs index 10a90da206..d2624d60d5 100644 --- a/runtime-modules/council/src/mock.rs +++ b/runtime-modules/council/src/mock.rs @@ -103,9 +103,9 @@ impl Config for Runtime { type MemberOriginValidator = (); } -impl common::membership::MemberOriginValidator for () { +impl common::membership::MemberOriginValidator for () { fn ensure_member_controller_account_origin( - origin: Origin, + origin: RuntimeOrigin, member_id: u64, ) -> Result { let account_id = ensure_signed(origin)?; @@ -157,8 +157,8 @@ impl frame_system::Config for Runtime { type BlockWeights = (); type BlockLength = (); type DbWeight = (); - type Origin = Origin; - type Call = Call; + type RuntimeOrigin = RuntimeOrigin; + type RuntimeCall = RuntimeCall; type Index = u64; type BlockNumber = u64; type Hash = H256; @@ -322,7 +322,7 @@ impl common::working_group::WorkingGroupBudgetHandler for Wg { impl common::working_group::WorkingGroupAuthenticator for Wg { fn ensure_worker_origin( - _origin: ::Origin, + _origin: ::RuntimeOrigin, _worker_id: &::ActorId, ) -> DispatchResult { unimplemented!(); @@ -339,7 +339,9 @@ impl common::working_group::WorkingGroupAuthenticator for Wg { unimplemented!() } - fn ensure_leader_origin(_origin: ::Origin) -> DispatchResult { + fn ensure_leader_origin( + _origin: ::RuntimeOrigin, + ) -> DispatchResult { unimplemented!() } @@ -682,8 +684,8 @@ where T::Hash: From<::Hash> + Into<::Hash>, - T::RuntimeOrigin: From<::Origin> - + Into<::Origin>, + T::RuntimeOrigin: From<::RuntimeOrigin> + + Into<::RuntimeOrigin>, >::VotePower: From + Into, T::MemberId: Into, @@ -850,7 +852,7 @@ where .last() .unwrap() .event, - Event::Council(RawEvent::CandidacyNoteSet( + RuntimeEvent::Council(RawEvent::CandidacyNoteSet( membership_id.into(), note.into() )), @@ -905,7 +907,7 @@ where .last() .unwrap() .event, - Event::Council(RawEvent::NewCandidate( + RuntimeEvent::Council(RawEvent::NewCandidate( member_id.into(), staking_account_id.into(), reward_account_id.into(), @@ -934,7 +936,7 @@ where .last() .unwrap() .event, - Event::Council(RawEvent::CandidacyWithdraw(member_id.into(),)), + RuntimeEvent::Council(RawEvent::CandidacyWithdraw(member_id.into(),)), ); } @@ -961,7 +963,7 @@ where .last() .unwrap() .event, - Event::Council(RawEvent::CandidacyStakeRelease(member_id.into(),)), + RuntimeEvent::Council(RawEvent::CandidacyStakeRelease(member_id.into(),)), ); } @@ -1038,7 +1040,7 @@ where .last() .unwrap() .event, - Event::Council(RawEvent::BudgetBalanceSet(amount.into())), + RuntimeEvent::Council(RawEvent::BudgetBalanceSet(amount.into())), ); } @@ -1066,7 +1068,7 @@ where assert!(frame_system::Pallet::::events() .iter() .any(|ev| ev.event - == Event::Council(RawEvent::RequestFunded( + == RuntimeEvent::Council(RawEvent::RequestFunded( funding_request.account.clone().into(), funding_request.amount.into(), )))); @@ -1112,7 +1114,7 @@ where .last() .unwrap() .event, - Event::Council(RawEvent::BudgetRefillPlanned(next_refill.into())), + RuntimeEvent::Council(RawEvent::BudgetRefillPlanned(next_refill.into())), ); } @@ -1142,7 +1144,7 @@ where .last() .unwrap() .event, - Event::Council(RawEvent::CouncilorRewardUpdated(councilor_reward.into())), + RuntimeEvent::Council(RawEvent::CouncilorRewardUpdated(councilor_reward.into())), ); } @@ -1172,7 +1174,7 @@ where .last() .unwrap() .event, - Event::Council(RawEvent::BudgetIncrementUpdated(budget_increment.into())), + RuntimeEvent::Council(RawEvent::BudgetIncrementUpdated(budget_increment.into())), ); } @@ -1472,12 +1474,12 @@ pub fn run_to_block(n: u64) { pub struct EventFixture; impl EventFixture { pub fn assert_last_crate_event(expected_raw_event: RawEvent) { - let converted_event = Event::Council(expected_raw_event); + let converted_event = RuntimeEvent::Council(expected_raw_event); Self::assert_last_global_event(converted_event) } - pub fn assert_last_global_event(expected_event: Event) { + pub fn assert_last_global_event(expected_event: RuntimeEvent) { let expected_event = EventRecord { phase: Phase::Initialization, event: expected_event, diff --git a/runtime-modules/forum/src/mock.rs b/runtime-modules/forum/src/mock.rs index d3a914d07c..91f7b84815 100644 --- a/runtime-modules/forum/src/mock.rs +++ b/runtime-modules/forum/src/mock.rs @@ -55,8 +55,8 @@ impl frame_system::Config for Runtime { type BlockWeights = (); type BlockLength = (); type DbWeight = (); - type Origin = Origin; - type Call = Call; + type RuntimeOrigin = RuntimeOrigin; + type RuntimeCall = RuntimeCall; type Index = u64; type BlockNumber = u64; type Hash = H256; @@ -215,9 +215,9 @@ impl Config for Runtime { type WeightInfo = (); } -impl common::membership::MemberOriginValidator for () { +impl common::membership::MemberOriginValidator for () { fn ensure_member_controller_account_origin( - origin: Origin, + origin: RuntimeOrigin, member_id: u128, ) -> Result { let account_id = ensure_signed(origin).unwrap(); @@ -250,13 +250,15 @@ impl common::membership::MemberOriginValidator for () { impl common::working_group::WorkingGroupAuthenticator for Wg { fn ensure_worker_origin( - _origin: ::Origin, + _origin: ::RuntimeOrigin, _worker_id: &::ActorId, ) -> DispatchResult { unimplemented!() } - fn ensure_leader_origin(_origin: ::Origin) -> DispatchResult { + fn ensure_leader_origin( + _origin: ::RuntimeOrigin, + ) -> DispatchResult { unimplemented!() } @@ -311,9 +313,9 @@ pub enum OriginType { Signed(::AccountId), } -pub fn mock_origin(origin: OriginType) -> mock::Origin { +pub fn mock_origin(origin: OriginType) -> mock::RuntimeOrigin { match origin { - OriginType::Signed(account_id) => Origin::signed(account_id), + OriginType::Signed(account_id) => RuntimeOrigin::signed(account_id), } } @@ -425,7 +427,7 @@ pub fn create_category_mock( assert_eq!(TestForumModule::next_category_id(), category_id + 1); assert_eq!( System::events().last().unwrap().event, - Event::TestForumModule(RawEvent::CategoryCreated( + RuntimeEvent::TestForumModule(RawEvent::CategoryCreated( category_id, parent, title, @@ -462,7 +464,7 @@ pub fn create_thread_mock( assert_eq!(TestForumModule::next_thread_id(), thread_id + 1); assert_eq!( System::events().last().unwrap().event, - Event::TestForumModule(RawEvent::ThreadCreated( + RuntimeEvent::TestForumModule(RawEvent::ThreadCreated( category_id, thread_id, TestForumModule::next_thread_id() - 1, @@ -506,7 +508,7 @@ pub fn edit_thread_metadata_mock( if result.is_ok() { assert_eq!( System::events().last().unwrap().event, - Event::TestForumModule(RawEvent::ThreadMetadataUpdated( + RuntimeEvent::TestForumModule(RawEvent::ThreadMetadataUpdated( thread_id, forum_user_id, category_id, @@ -557,7 +559,7 @@ pub fn delete_thread_mock( ); assert_eq!( System::events().last().unwrap().event, - Event::TestForumModule(RawEvent::ThreadDeleted( + RuntimeEvent::TestForumModule(RawEvent::ThreadDeleted( thread_id, forum_user_id, category_id, @@ -625,7 +627,7 @@ pub fn delete_post_mock( } assert_eq!( System::events().last().unwrap().event, - Event::TestForumModule(RawEvent::PostDeleted( + RuntimeEvent::TestForumModule(RawEvent::PostDeleted( vec![0u8], forum_user_id, deleted_posts.clone() @@ -667,7 +669,7 @@ pub fn move_thread_mock( ),); assert_eq!( System::events().last().unwrap().event, - Event::TestForumModule(RawEvent::ThreadMoved( + RuntimeEvent::TestForumModule(RawEvent::ThreadMoved( thread_id, new_category_id, PrivilegedActor::Moderator(moderator_id), @@ -706,7 +708,7 @@ pub fn create_post_mock( assert_eq!(TestForumModule::next_post_id(), post_id + 1); assert_eq!( System::events().last().unwrap().event, - Event::TestForumModule(RawEvent::PostAdded( + RuntimeEvent::TestForumModule(RawEvent::PostAdded( post_id, forum_user_id, category_id, @@ -767,7 +769,7 @@ pub fn edit_post_text_mock( assert_eq!(post.text_hash, Runtime::calculate_hash(new_text.as_slice()),); assert_eq!( System::events().last().unwrap().event, - Event::TestForumModule(RawEvent::PostTextUpdated( + RuntimeEvent::TestForumModule(RawEvent::PostTextUpdated( post_id, forum_user_id, category_id, @@ -804,7 +806,7 @@ pub fn update_category_membership_of_moderator_mock( assert_eq!( System::events().last().unwrap().event, - Event::TestForumModule(RawEvent::CategoryMembershipOfModeratorUpdated( + RuntimeEvent::TestForumModule(RawEvent::CategoryMembershipOfModeratorUpdated( moderator_id, category_id, new_value @@ -834,7 +836,7 @@ pub fn update_category_archival_status_mock( if result.is_ok() { assert_eq!( System::events().last().unwrap().event, - Event::TestForumModule(RawEvent::CategoryArchivalStatusUpdated( + RuntimeEvent::TestForumModule(RawEvent::CategoryArchivalStatusUpdated( category_id, new_archival_status, actor @@ -864,7 +866,7 @@ pub fn update_category_title_mock( if result.is_ok() { assert_eq!( System::events().last().unwrap().event, - Event::TestForumModule(RawEvent::CategoryTitleUpdated( + RuntimeEvent::TestForumModule(RawEvent::CategoryTitleUpdated( category_id, new_title_hash, actor @@ -894,7 +896,7 @@ pub fn update_category_description_mock( if result.is_ok() { assert_eq!( System::events().last().unwrap().event, - Event::TestForumModule(RawEvent::CategoryDescriptionUpdated( + RuntimeEvent::TestForumModule(RawEvent::CategoryDescriptionUpdated( category_id, new_description_hash, actor @@ -918,7 +920,7 @@ pub fn delete_category_mock( assert!(!>::contains_key(category_id)); assert_eq!( System::events().last().unwrap().event, - Event::TestForumModule(RawEvent::CategoryDeleted(category_id, moderator_id)) + RuntimeEvent::TestForumModule(RawEvent::CategoryDeleted(category_id, moderator_id)) ); } } @@ -947,7 +949,7 @@ pub fn moderate_thread_mock( assert!(!>::contains_key(category_id, thread_id)); assert_eq!( System::events().last().unwrap().event, - Event::TestForumModule(RawEvent::ThreadModerated( + RuntimeEvent::TestForumModule(RawEvent::ThreadModerated( thread_id, rationale, PrivilegedActor::Moderator(moderator_id), @@ -989,7 +991,7 @@ pub fn moderate_post_mock( assert!(!>::contains_key(thread_id, post_id)); assert_eq!( System::events().last().unwrap().event, - Event::TestForumModule(RawEvent::PostModerated( + RuntimeEvent::TestForumModule(RawEvent::PostModerated( post_id, rationale, PrivilegedActor::Moderator(moderator_id), @@ -1036,7 +1038,7 @@ pub fn set_stickied_threads_mock( ); assert_eq!( System::events().last().unwrap().event, - Event::TestForumModule(RawEvent::CategoryStickyThreadUpdate( + RuntimeEvent::TestForumModule(RawEvent::CategoryStickyThreadUpdate( category_id, stickied_ids, PrivilegedActor::Moderator(moderator_id) diff --git a/runtime-modules/membership/src/tests/fixtures.rs b/runtime-modules/membership/src/tests/fixtures.rs index 49ce19868b..16d8281067 100644 --- a/runtime-modules/membership/src/tests/fixtures.rs +++ b/runtime-modules/membership/src/tests/fixtures.rs @@ -1,5 +1,5 @@ use super::mock::*; -use crate::RuntimeEvent as MembershipEvent; +use crate::Event as MembershipEvent; use crate::{ BalanceOf, BuyMembershipParameters, CreateMemberParameters, GiftMembershipParameters, InviteMembershipParameters, MembershipObject, @@ -36,13 +36,13 @@ pub fn set_invitation_lock( pub struct EventFixture; impl EventFixture { - pub fn assert_last_crate_event(expected_raw_event: crate::RuntimeEvent) { - let converted_event = Event::Membership(expected_raw_event); + pub fn assert_last_crate_event(expected_raw_event: crate::Event) { + let converted_event = RuntimeEvent::Membership(expected_raw_event); Self::assert_last_global_event(converted_event) } - pub fn assert_last_global_event(expected_event: Event) { + pub fn assert_last_global_event(expected_event: RuntimeEvent) { let expected_event = EventRecord { phase: Phase::Initialization, event: expected_event, @@ -142,7 +142,7 @@ pub fn get_alice_membership_parameters() -> BuyMembershipParameters { pub fn buy_default_membership_as_alice() -> DispatchResult { let params = get_alice_membership_parameters(); - Membership::buy_membership(Origin::signed(ALICE_ACCOUNT_ID), params) + Membership::buy_membership(RuntimeOrigin::signed(ALICE_ACCOUNT_ID), params) } pub fn set_alice_free_balance(balance: u64) { @@ -213,7 +213,7 @@ pub fn get_bob_gift_membership_parameters_single_account() -> GiftMembershipPara } pub fn gift_bob_membership_as_alice(params: GiftMembershipParameters) -> DispatchResult { - Membership::gift_membership(Origin::signed(ALICE_ACCOUNT_ID), params) + Membership::gift_membership(RuntimeOrigin::signed(ALICE_ACCOUNT_ID), params) } pub struct UpdateMembershipVerificationFixture { diff --git a/runtime-modules/membership/src/tests/mock.rs b/runtime-modules/membership/src/tests/mock.rs index 7f9e1d2f97..ea76c39626 100644 --- a/runtime-modules/membership/src/tests/mock.rs +++ b/runtime-modules/membership/src/tests/mock.rs @@ -48,8 +48,8 @@ impl frame_system::Config for Test { type BlockWeights = (); type BlockLength = (); type DbWeight = (); - type Origin = Origin; - type Call = Call; + type RuntimeOrigin = RuntimeOrigin; + type RuntimeCall = RuntimeCall; type Index = u64; type BlockNumber = u64; type Hash = H256; @@ -123,9 +123,9 @@ impl LockComparator for Test { } } -impl common::membership::MemberOriginValidator for () { +impl common::membership::MemberOriginValidator for () { fn ensure_member_controller_account_origin( - origin: Origin, + origin: RuntimeOrigin, _: u64, ) -> Result { let account_id = frame_system::ensure_signed(origin)?; @@ -187,10 +187,10 @@ impl common::working_group::WorkingGroupBudgetHandler for Wg { impl common::working_group::WorkingGroupAuthenticator for Wg { fn ensure_worker_origin( - origin: ::Origin, + origin: ::RuntimeOrigin, worker_id: &::ActorId, ) -> DispatchResult { - let raw_origin: Result, ::Origin> = + let raw_origin: Result, ::RuntimeOrigin> = origin.into(); if let RawOrigin::Signed(_) = raw_origin.unwrap() { @@ -204,7 +204,9 @@ impl common::working_group::WorkingGroupAuthenticator for Wg { } } - fn ensure_leader_origin(_origin: ::Origin) -> DispatchResult { + fn ensure_leader_origin( + _origin: ::RuntimeOrigin, + ) -> DispatchResult { unimplemented!() } diff --git a/runtime-modules/membership/src/tests/mod.rs b/runtime-modules/membership/src/tests/mod.rs index e37d63d54b..24a9687ed8 100644 --- a/runtime-modules/membership/src/tests/mod.rs +++ b/runtime-modules/membership/src/tests/mod.rs @@ -302,7 +302,7 @@ fn update_profile_succeeds() { assert_ok!(buy_default_membership_as_alice()); let info = get_bob_info(); assert_ok!(Membership::update_profile( - Origin::signed(ALICE_ACCOUNT_ID), + RuntimeOrigin::signed(ALICE_ACCOUNT_ID), next_member_id, info.handle.clone(), Some(info.metadata.clone()), @@ -334,7 +334,7 @@ fn update_profile_has_no_effect_on_empty_parameters() { assert_ok!(buy_default_membership_as_alice()); assert_ok!(Membership::update_profile( - Origin::signed(ALICE_ACCOUNT_ID), + RuntimeOrigin::signed(ALICE_ACCOUNT_ID), next_member_id, None, None, @@ -361,7 +361,7 @@ fn update_profile_accounts_succeeds() { const ALICE_NEW_ACCOUNT_ID: u64 = 2; assert_ok!(Membership::update_accounts( - Origin::signed(ALICE_ACCOUNT_ID), + RuntimeOrigin::signed(ALICE_ACCOUNT_ID), ALICE_MEMBER_ID, Some(ALICE_NEW_ACCOUNT_ID), Some(ALICE_NEW_ACCOUNT_ID), @@ -386,7 +386,7 @@ fn update_accounts_has_effect_on_empty_account_parameters() { set_alice_as_initial_member(); assert_ok!(Membership::update_accounts( - Origin::signed(ALICE_ACCOUNT_ID), + RuntimeOrigin::signed(ALICE_ACCOUNT_ID), ALICE_MEMBER_ID, None, None, diff --git a/runtime-modules/project-token/src/tests/fixtures.rs b/runtime-modules/project-token/src/tests/fixtures.rs index a963454d0c..9739927519 100644 --- a/runtime-modules/project-token/src/tests/fixtures.rs +++ b/runtime-modules/project-token/src/tests/fixtures.rs @@ -508,7 +508,7 @@ impl Fixture for PurchaseTokensOnSaleF fn execute_call(&self) -> DispatchResult { Token::purchase_tokens_on_sale( - Origin::signed(self.sender), + RuntimeOrigin::signed(self.sender), self.token_id, self.member_id, self.amount, @@ -894,7 +894,7 @@ impl ParticipateInSplitFixture { pub fn execute_call(&self) -> DispatchResult { let state_pre = sp_io::storage::root(sp_storage::StateVersion::V1); let result = Token::participate_in_split( - Origin::signed(self.sender), + RuntimeOrigin::signed(self.sender), self.token_id, self.member_id, self.amount, @@ -942,7 +942,7 @@ impl TransferFixture { pub fn execute_call(&self) -> DispatchResult { let state_pre = sp_io::storage::root(sp_storage::StateVersion::V1); let result = Token::transfer( - Origin::signed(self.sender), + RuntimeOrigin::signed(self.sender), self.src_member_id, self.token_id, self.outputs.clone(), @@ -994,8 +994,11 @@ impl ExitRevenueSplitFixture { pub fn execute_call(&self) -> DispatchResult { let state_pre = sp_io::storage::root(sp_storage::StateVersion::V1); - let result = - Token::exit_revenue_split(Origin::signed(self.sender), self.token_id, self.member_id); + let result = Token::exit_revenue_split( + RuntimeOrigin::signed(self.sender), + self.token_id, + self.member_id, + ); let state_post = sp_io::storage::root(sp_storage::StateVersion::V1); // no-op in case of error diff --git a/runtime-modules/project-token/src/tests/mock.rs b/runtime-modules/project-token/src/tests/mock.rs index b01b8f69ef..13bf7dc58b 100644 --- a/runtime-modules/project-token/src/tests/mock.rs +++ b/runtime-modules/project-token/src/tests/mock.rs @@ -56,14 +56,17 @@ pub type MemberId = u64; #[macro_export] macro_rules! last_event_eq { ($e:expr) => { - assert_eq!(System::events().last().unwrap().event, Event::Token($e)) + assert_eq!( + System::events().last().unwrap().event, + RuntimeEvent::Token($e) + ) }; } #[macro_export] macro_rules! origin { ($a: expr) => { - Origin::signed($a) + RuntimeOrigin::signed($a) }; } @@ -208,7 +211,7 @@ impl common::working_group::WorkingGroupBudgetHandler for Distributio impl common::working_group::WorkingGroupAuthenticator for StorageWG { fn ensure_worker_origin( - origin: ::Origin, + origin: ::RuntimeOrigin, _worker_id: &::ActorId, ) -> DispatchResult { let account_id = ensure_signed(origin)?; @@ -219,7 +222,9 @@ impl common::working_group::WorkingGroupAuthenticator for StorageWG { Ok(()) } - fn ensure_leader_origin(origin: ::Origin) -> DispatchResult { + fn ensure_leader_origin( + origin: ::RuntimeOrigin, + ) -> DispatchResult { let account_id = ensure_signed(origin)?; ensure!( account_id == STORAGE_WG_LEADER_ACCOUNT_ID, @@ -267,7 +272,7 @@ impl common::working_group::WorkingGroupAuthenticator for StorageWG { impl common::working_group::WorkingGroupAuthenticator for DistributionWG { fn ensure_worker_origin( - origin: ::Origin, + origin: ::RuntimeOrigin, _worker_id: &::ActorId, ) -> DispatchResult { let account_id = ensure_signed(origin)?; @@ -278,7 +283,9 @@ impl common::working_group::WorkingGroupAuthenticator for DistributionWG { Ok(()) } - fn ensure_leader_origin(origin: ::Origin) -> DispatchResult { + fn ensure_leader_origin( + origin: ::RuntimeOrigin, + ) -> DispatchResult { let account_id = ensure_signed(origin)?; ensure!( account_id == DISTRIBUTION_WG_LEADER_ACCOUNT_ID, @@ -329,8 +336,8 @@ impl frame_system::Config for Test { type BlockWeights = (); type BlockLength = (); type DbWeight = (); - type Origin = Origin; - type Call = Call; + type RuntimeOrigin = RuntimeOrigin; + type RuntimeCall = RuntimeCall; type Index = u64; type BlockNumber = u64; type Hash = H256; @@ -412,13 +419,15 @@ impl common::working_group::WorkingGroupBudgetHandler for Wg { impl common::working_group::WorkingGroupAuthenticator for Wg { fn ensure_worker_origin( - _origin: ::Origin, + _origin: ::RuntimeOrigin, _worker_id: &::ActorId, ) -> DispatchResult { unimplemented!() } - fn ensure_leader_origin(_origin: ::Origin) -> DispatchResult { + fn ensure_leader_origin( + _origin: ::RuntimeOrigin, + ) -> DispatchResult { unimplemented!() } @@ -472,9 +481,9 @@ impl MembershipInfoProvider for TestMemberships { } // Mock MemberOriginValidator impl -impl MemberOriginValidator for TestMemberships { +impl MemberOriginValidator for TestMemberships { fn ensure_member_controller_account_origin( - origin: Origin, + origin: RuntimeOrigin, member_id: u64, ) -> Result { let sender = ensure_signed(origin)?; diff --git a/runtime-modules/project-token/src/tests/sale.rs b/runtime-modules/project-token/src/tests/sale.rs index 84a92fc97f..97f6fa2d9b 100644 --- a/runtime-modules/project-token/src/tests/sale.rs +++ b/runtime-modules/project-token/src/tests/sale.rs @@ -702,7 +702,7 @@ fn succesful_sale_purchase_existing_account_permissioned_token() { ::JoyExistentialDeposit::get() + bloat_bond, ); assert_ok!(Token::join_whitelist( - Origin::signed(member!(2).1), + RuntimeOrigin::signed(member!(2).1), member!(2).0, Token::next_token_id() - 1, proof diff --git a/runtime-modules/proposals/codex/src/tests/mock.rs b/runtime-modules/proposals/codex/src/tests/mock.rs index cf577ff507..df672fe43b 100644 --- a/runtime-modules/proposals/codex/src/tests/mock.rs +++ b/runtime-modules/proposals/codex/src/tests/mock.rs @@ -125,10 +125,10 @@ impl frame_system::Config for Test { type BlockWeights = (); type BlockLength = (); type DbWeight = RocksDbWeight; - type Origin = Origin; + type RuntimeOrigin = RuntimeOrigin; type Index = AccountIndex; type BlockNumber = BlockNumber; - type Call = Call; + type RuntimeCall = RuntimeCall; type Hash = H256; type Hashing = ::sp_runtime::traits::BlakeTwo256; type AccountId = AccountId; @@ -333,13 +333,15 @@ pub const LEADER_ACCOUNT_ID: u64 = 100; impl common::working_group::WorkingGroupAuthenticator for Wg { fn ensure_worker_origin( - _origin: ::Origin, + _origin: ::RuntimeOrigin, _worker_id: &::ActorId, ) -> DispatchResult { unimplemented!(); } - fn ensure_leader_origin(_origin: ::Origin) -> DispatchResult { + fn ensure_leader_origin( + _origin: ::RuntimeOrigin, + ) -> DispatchResult { unimplemented!() } @@ -423,9 +425,9 @@ impl Default for crate::Call { } } -impl common::membership::MemberOriginValidator for () { +impl common::membership::MemberOriginValidator for () { fn ensure_member_controller_account_origin( - origin: Origin, + origin: RuntimeOrigin, _: u64, ) -> Result { let account_id = frame_system::ensure_signed(origin)?; @@ -444,8 +446,8 @@ impl common::membership::MembershipInfoProvider for () { } } -impl common::council::CouncilOriginValidator for () { - fn ensure_member_consulate(origin: Origin, _: u64) -> DispatchResult { +impl common::council::CouncilOriginValidator for () { + fn ensure_member_consulate(origin: RuntimeOrigin, _: u64) -> DispatchResult { frame_system::ensure_signed(origin)?; Ok(()) diff --git a/runtime-modules/proposals/discussion/src/tests/mock.rs b/runtime-modules/proposals/discussion/src/tests/mock.rs index accbe10595..989bf9f3e1 100644 --- a/runtime-modules/proposals/discussion/src/tests/mock.rs +++ b/runtime-modules/proposals/discussion/src/tests/mock.rs @@ -77,8 +77,8 @@ impl frame_system::Config for Test { type BlockWeights = (); type BlockLength = (); type DbWeight = (); - type Origin = Origin; - type Call = Call; + type RuntimeOrigin = RuntimeOrigin; + type RuntimeCall = RuntimeCall; type Index = u64; type BlockNumber = u64; type Hash = H256; @@ -167,13 +167,15 @@ impl common::working_group::WorkingGroupBudgetHandler for Wg { impl common::working_group::WorkingGroupAuthenticator for Wg { fn ensure_worker_origin( - _origin: ::Origin, + _origin: ::RuntimeOrigin, _worker_id: &::ActorId, ) -> DispatchResult { unimplemented!(); } - fn ensure_leader_origin(_origin: ::Origin) -> DispatchResult { + fn ensure_leader_origin( + _origin: ::RuntimeOrigin, + ) -> DispatchResult { unimplemented!() } @@ -223,9 +225,9 @@ impl crate::Config for Test { type ModuleId = ProposalsDiscussionModuleId; } -impl MemberOriginValidator for () { +impl MemberOriginValidator for () { fn ensure_member_controller_account_origin( - origin: Origin, + origin: RuntimeOrigin, actor_id: u64, ) -> Result { if frame_system::ensure_none(origin.clone()).is_ok() { @@ -303,8 +305,8 @@ impl council::Config for Test { } pub struct CouncilMock; -impl CouncilOriginValidator for CouncilMock { - fn ensure_member_consulate(origin: Origin, actor_id: u64) -> DispatchResult { +impl CouncilOriginValidator for CouncilMock { + fn ensure_member_consulate(origin: RuntimeOrigin, actor_id: u64) -> DispatchResult { if actor_id == 2 && frame_system::ensure_signed(origin).unwrap_or_default() == 2 { return Ok(()); } diff --git a/runtime-modules/proposals/engine/src/tests/mock/mod.rs b/runtime-modules/proposals/engine/src/tests/mock/mod.rs index 2a63ca6dd2..75ac983271 100644 --- a/runtime-modules/proposals/engine/src/tests/mock/mod.rs +++ b/runtime-modules/proposals/engine/src/tests/mock/mod.rs @@ -167,13 +167,15 @@ impl common::working_group::WorkingGroupBudgetHandler for Wg { impl common::working_group::WorkingGroupAuthenticator for Wg { fn ensure_worker_origin( - _origin: ::Origin, + _origin: ::RuntimeOrigin, _worker_id: &::ActorId, ) -> DispatchResult { unimplemented!(); } - fn ensure_leader_origin(_origin: ::Origin) -> DispatchResult { + fn ensure_leader_origin( + _origin: ::RuntimeOrigin, + ) -> DispatchResult { unimplemented!() } @@ -250,9 +252,9 @@ impl Default for proposals::Call { } } -impl common::membership::MemberOriginValidator for () { +impl common::membership::MemberOriginValidator for () { fn ensure_member_controller_account_origin( - origin: Origin, + origin: RuntimeOrigin, _account_id: u64, ) -> Result { let signed_account_id = frame_system::ensure_signed(origin)?; @@ -265,8 +267,8 @@ impl common::membership::MemberOriginValidator for () { } } -impl common::council::CouncilOriginValidator for () { - fn ensure_member_consulate(origin: Origin, _: u64) -> DispatchResult { +impl common::council::CouncilOriginValidator for () { + fn ensure_member_consulate(origin: RuntimeOrigin, _: u64) -> DispatchResult { frame_system::ensure_signed(origin)?; Ok(()) @@ -291,8 +293,8 @@ impl frame_system::Config for Test { type BlockWeights = (); type BlockLength = (); type DbWeight = (); - type Origin = Origin; - type Call = Call; + type RuntimeOrigin = RuntimeOrigin; + type RuntimeCall = RuntimeCall; type Index = u64; type BlockNumber = u64; type Hash = H256; diff --git a/runtime-modules/proposals/engine/src/tests/mod.rs b/runtime-modules/proposals/engine/src/tests/mod.rs index b152956cf1..0157974027 100644 --- a/runtime-modules/proposals/engine/src/tests/mod.rs +++ b/runtime-modules/proposals/engine/src/tests/mod.rs @@ -2,7 +2,7 @@ pub(crate) mod mock; use crate::types::ProposalStatusResolution; use crate::*; -use mock::{Event as TestEvent, *}; +use mock::{RuntimeEvent as TestEvent, *}; use codec::Encode; use frame_support::dispatch::DispatchResult; @@ -1447,7 +1447,7 @@ fn finalize_expired_proposal_and_check_stake_removing_with_balance_checks_succee EventFixture::assert_global_events(vec![ RawEvent::ProposalDecisionMade(proposal_id, ProposalDecision::Expired).into(), - TestEvent::Balances(balances::RuntimeEvent::Slashed { + TestEvent::Balances(balances::Event::Slashed { who: account_id, amount: rejection_fee, }), @@ -1580,7 +1580,7 @@ fn proposal_slashing_succeeds() { EventFixture::assert_global_events(vec![ RawEvent::ProposalDecisionMade(proposal_id, ProposalDecision::Slashed).into(), - TestEvent::Balances(balances::RuntimeEvent::Slashed { + TestEvent::Balances(balances::Event::Slashed { who: account_id, amount: stake_amount, }), @@ -2018,12 +2018,12 @@ fn proposal_with_pending_constitutionality_execution_succeeds() { // first chain of event from the creation to the approval EventFixture::assert_global_events(vec![ - TestEvent::Balances(balances::RuntimeEvent::Deposit { + TestEvent::Balances(balances::Event::Deposit { who: 1, amount: total_balance, }), - TestEvent::System(frame_system::RuntimeEvent::NewAccount { account: 1 }), // because of token transfer - TestEvent::Balances(balances::RuntimeEvent::Endowed { + TestEvent::System(frame_system::Event::NewAccount { account: 1 }), // because of token transfer + TestEvent::Balances(balances::Event::Endowed { account: 1, free_balance: total_balance, }), // because of token transfer diff --git a/runtime-modules/referendum/src/mock.rs b/runtime-modules/referendum/src/mock.rs index d2e453fa97..53e35ca0a9 100644 --- a/runtime-modules/referendum/src/mock.rs +++ b/runtime-modules/referendum/src/mock.rs @@ -188,13 +188,15 @@ impl common::working_group::WorkingGroupBudgetHandler for Wg { impl common::working_group::WorkingGroupAuthenticator for Wg { fn ensure_worker_origin( - _origin: ::Origin, + _origin: ::RuntimeOrigin, _worker_id: &::ActorId, ) -> DispatchResult { unimplemented!() } - fn ensure_leader_origin(_origin: ::Origin) -> DispatchResult { + fn ensure_leader_origin( + _origin: ::RuntimeOrigin, + ) -> DispatchResult { unimplemented!() } @@ -298,8 +300,8 @@ impl frame_system::Config for Runtime { type BlockWeights = (); type BlockLength = (); type DbWeight = (); - type Origin = Origin; - type Call = Call; + type RuntimeOrigin = RuntimeOrigin; + type RuntimeCall = RuntimeCall; type Index = u64; type BlockNumber = u64; type Hash = H256; @@ -454,7 +456,7 @@ where ( as ReferendumManager< - ::Origin, + ::RuntimeOrigin, ::AccountId, ::MemberId, ::Hash, @@ -523,7 +525,7 @@ impl InstanceMocks { // check method returns expected result assert_eq!( as ReferendumManager< - ::Origin, + ::RuntimeOrigin, ::AccountId, ::MemberId, ::Hash, @@ -543,7 +545,7 @@ impl InstanceMocks { let extra_winning_target_count = winning_target_count - 1; as ReferendumManager< - ::Origin, + ::RuntimeOrigin, ::AccountId, ::MemberId, ::Hash, @@ -580,7 +582,7 @@ impl InstanceMocks { .last() .unwrap() .event, - Event::from(RawEvent::ReferendumStarted( + RuntimeEvent::from(RawEvent::ReferendumStarted( winning_target_count, voting_ends_at )) @@ -608,7 +610,7 @@ impl InstanceMocks { .last() .unwrap() .event, - Event::Referendum(RawEvent::RevealingStageStarted(revealing_ends_at)) + RuntimeEvent::Referendum(RawEvent::RevealingStageStarted(revealing_ends_at)) ); } @@ -644,7 +646,7 @@ impl InstanceMocks { .last() .unwrap() .event, - Event::Referendum(RawEvent::ReferendumFinished(expected_winners,)) + RuntimeEvent::Referendum(RawEvent::ReferendumFinished(expected_winners,)) ); } @@ -697,7 +699,7 @@ impl InstanceMocks { .last() .unwrap() .event, - Event::Referendum(RawEvent::VoteCast(account_id, commitment, stake)) + RuntimeEvent::Referendum(RawEvent::VoteCast(account_id, commitment, stake)) ); } @@ -728,7 +730,7 @@ impl InstanceMocks { .last() .unwrap() .event, - Event::Referendum(RawEvent::VoteRevealed(account_id, vote_option_index, salt)) + RuntimeEvent::Referendum(RawEvent::VoteRevealed(account_id, vote_option_index, salt)) ); } @@ -755,7 +757,7 @@ impl InstanceMocks { .last() .unwrap() .event, - Event::Referendum(RawEvent::StakeReleased(account_id)) + RuntimeEvent::Referendum(RawEvent::StakeReleased(account_id)) ); } @@ -785,7 +787,7 @@ impl InstanceMocks { .last() .unwrap() .event, - Event::Referendum(RawEvent::AccountOptedOutOfVoting(account_id)) + RuntimeEvent::Referendum(RawEvent::AccountOptedOutOfVoting(account_id)) ); } } diff --git a/runtime-modules/staking-handler/src/mock.rs b/runtime-modules/staking-handler/src/mock.rs index 90c574a1b8..e6da8b1896 100644 --- a/runtime-modules/staking-handler/src/mock.rs +++ b/runtime-modules/staking-handler/src/mock.rs @@ -42,8 +42,8 @@ impl frame_system::Config for Test { type BlockWeights = (); type BlockLength = (); type DbWeight = (); - type Origin = Origin; - type Call = Call; + type RuntimeOrigin = RuntimeOrigin; + type RuntimeCall = RuntimeCall; type Index = u64; type BlockNumber = u64; type Hash = H256; diff --git a/runtime-modules/storage/src/tests/fixtures.rs b/runtime-modules/storage/src/tests/fixtures.rs index e6ac37c1ec..e621ab2e3d 100644 --- a/runtime-modules/storage/src/tests/fixtures.rs +++ b/runtime-modules/storage/src/tests/fixtures.rs @@ -15,7 +15,7 @@ use crate::sp_api_hidden_includes_decl_storage::hidden_include::{ }; use super::mocks::{ - create_cid, Balances, CollectiveFlip, Event as TestEvent, Storage, System, Test, + create_cid, Balances, CollectiveFlip, RuntimeEvent as TestEvent, Storage, System, Test, DEFAULT_DISTRIBUTION_PROVIDER_ACCOUNT_ID, DEFAULT_MEMBER_ACCOUNT_ID, DEFAULT_MEMBER_ID, DEFAULT_STORAGE_BUCKET_OBJECTS_LIMIT, DEFAULT_STORAGE_BUCKET_SIZE_LIMIT, DEFAULT_STORAGE_PROVIDER_ACCOUNT_ID, DISTRIBUTION_WG_LEADER_ACCOUNT_ID, diff --git a/runtime-modules/storage/src/tests/mocks.rs b/runtime-modules/storage/src/tests/mocks.rs index 1f615356c1..b2041a63d4 100644 --- a/runtime-modules/storage/src/tests/mocks.rs +++ b/runtime-modules/storage/src/tests/mocks.rs @@ -65,8 +65,8 @@ impl frame_system::Config for Test { type BlockWeights = (); type BlockLength = (); type DbWeight = (); - type Origin = Origin; - type Call = Call; + type RuntimeOrigin = RuntimeOrigin; + type RuntimeCall = RuntimeCall; type Index = u64; type BlockNumber = u64; type Hash = H256; @@ -224,9 +224,9 @@ impl working_group::Config for Test { type LeaderOpeningStake = LeaderOpeningStake; } -impl common::membership::MemberOriginValidator for () { +impl common::membership::MemberOriginValidator for () { fn ensure_member_controller_account_origin( - origin: Origin, + origin: RuntimeOrigin, member_id: u64, ) -> Result { let account_id = ensure_signed(origin).unwrap(); @@ -267,13 +267,15 @@ impl common::working_group::WorkingGroupBudgetHandler for MembershipWG impl common::working_group::WorkingGroupAuthenticator for MembershipWG { fn ensure_worker_origin( - _origin: ::Origin, + _origin: ::RuntimeOrigin, _worker_id: &::ActorId, ) -> DispatchResult { unimplemented!() } - fn ensure_leader_origin(_origin: ::Origin) -> DispatchResult { + fn ensure_leader_origin( + _origin: ::RuntimeOrigin, + ) -> DispatchResult { unimplemented!() } @@ -359,7 +361,7 @@ pub struct DistributionWG; impl common::working_group::WorkingGroupAuthenticator for StorageWG { fn ensure_worker_origin( - origin: ::Origin, + origin: ::RuntimeOrigin, _worker_id: &::ActorId, ) -> DispatchResult { let account_id = ensure_signed(origin)?; @@ -376,7 +378,9 @@ impl common::working_group::WorkingGroupAuthenticator for StorageWG { } } - fn ensure_leader_origin(origin: ::Origin) -> DispatchResult { + fn ensure_leader_origin( + origin: ::RuntimeOrigin, + ) -> DispatchResult { let account_id = ensure_signed(origin)?; ensure!( account_id == STORAGE_WG_LEADER_ACCOUNT_ID, @@ -430,7 +434,7 @@ impl common::working_group::WorkingGroupAuthenticator for StorageWG { impl common::working_group::WorkingGroupAuthenticator for DistributionWG { fn ensure_worker_origin( - origin: ::Origin, + origin: ::RuntimeOrigin, _worker_id: &::ActorId, ) -> DispatchResult { let account_id = ensure_signed(origin)?; @@ -448,7 +452,9 @@ impl common::working_group::WorkingGroupAuthenticator for DistributionWG { } } - fn ensure_leader_origin(origin: ::Origin) -> DispatchResult { + fn ensure_leader_origin( + origin: ::RuntimeOrigin, + ) -> DispatchResult { let account_id = ensure_signed(origin)?; ensure!( diff --git a/runtime-modules/utility/src/tests/mocks.rs b/runtime-modules/utility/src/tests/mocks.rs index f1af7aea0d..27c465c672 100644 --- a/runtime-modules/utility/src/tests/mocks.rs +++ b/runtime-modules/utility/src/tests/mocks.rs @@ -132,8 +132,8 @@ impl frame_system::Config for Test { type BlockWeights = (); type BlockLength = (); type DbWeight = (); - type Origin = Origin; - type Call = Call; + type RuntimeOrigin = RuntimeOrigin; + type RuntimeCall = RuntimeCall; type Index = u64; type BlockNumber = u64; type Hash = H256; @@ -227,13 +227,15 @@ impl common::working_group::WorkingGroupBudgetHandler for Wg { impl common::working_group::WorkingGroupAuthenticator for Wg { fn ensure_worker_origin( - _origin: ::Origin, + _origin: ::RuntimeOrigin, _worker_id: &::ActorId, ) -> DispatchResult { unimplemented!(); } - fn ensure_leader_origin(_origin: ::Origin) -> DispatchResult { + fn ensure_leader_origin( + _origin: ::RuntimeOrigin, + ) -> DispatchResult { unimplemented!() } @@ -568,9 +570,9 @@ impl common::StakingAccountValidator for () { } } -impl common::membership::MemberOriginValidator for () { +impl common::membership::MemberOriginValidator for () { fn ensure_member_controller_account_origin( - origin: Origin, + origin: RuntimeOrigin, _: u64, ) -> Result { let account_id = frame_system::ensure_signed(origin)?; @@ -583,8 +585,8 @@ impl common::membership::MemberOriginValidator for () { } } -impl common::council::CouncilOriginValidator for () { - fn ensure_member_consulate(origin: Origin, _: u64) -> DispatchResult { +impl common::council::CouncilOriginValidator for () { + fn ensure_member_consulate(origin: RuntimeOrigin, _: u64) -> DispatchResult { frame_system::ensure_signed(origin)?; Ok(()) diff --git a/runtime-modules/working-group/src/tests/fixtures.rs b/runtime-modules/working-group/src/tests/fixtures.rs index 8e582bf8d9..5b1a0ff7ed 100644 --- a/runtime-modules/working-group/src/tests/fixtures.rs +++ b/runtime-modules/working-group/src/tests/fixtures.rs @@ -7,7 +7,7 @@ use sp_runtime::traits::Hash; use sp_std::collections::{btree_map::BTreeMap, btree_set::BTreeSet}; use super::hiring_workflow::HiringWorkflow; -use super::mock::{Balances, Event, LockId, System, Test, TestWorkingGroup}; +use super::mock::{Balances, LockId, RuntimeEvent, System, Test, TestWorkingGroup}; use crate::types::StakeParameters; use crate::{ Application, ApplyOnOpeningParameters, BalanceOf, Config, DefaultInstance, Opening, @@ -44,12 +44,12 @@ impl EventFixture { DefaultInstance, >, ) { - let converted_event = Event::TestWorkingGroup(expected_raw_event); + let converted_event = RuntimeEvent::TestWorkingGroup(expected_raw_event); Self::assert_last_global_event(converted_event) } - pub fn assert_last_global_event(expected_event: Event) { + pub fn assert_last_global_event(expected_event: RuntimeEvent) { let expected_event = EventRecord { phase: Phase::Initialization, event: expected_event, @@ -75,12 +75,12 @@ impl EventFixture { DefaultInstance, >, ) { - let converted_event = Event::TestWorkingGroup(expected_raw_event); + let converted_event = RuntimeEvent::TestWorkingGroup(expected_raw_event); Self::contains_global_event(converted_event) } - fn contains_global_event(expected_event: Event) { + fn contains_global_event(expected_event: RuntimeEvent) { let expected_event = EventRecord { phase: Phase::Initialization, event: expected_event, diff --git a/runtime-modules/working-group/src/tests/mock.rs b/runtime-modules/working-group/src/tests/mock.rs index 0f8a84799e..1283c580d6 100644 --- a/runtime-modules/working-group/src/tests/mock.rs +++ b/runtime-modules/working-group/src/tests/mock.rs @@ -49,8 +49,8 @@ impl frame_system::Config for Test { type BlockWeights = (); type BlockLength = (); type DbWeight = (); - type Origin = Origin; - type Call = Call; + type RuntimeOrigin = RuntimeOrigin; + type RuntimeCall = RuntimeCall; type Index = u64; type BlockNumber = u64; type Hash = H256; @@ -145,9 +145,9 @@ impl common::StakingAccountValidator for () { pub const ACTOR_ORIGIN_ERROR: &str = "Invalid membership"; -impl common::membership::MemberOriginValidator for () { +impl common::membership::MemberOriginValidator for () { fn ensure_member_controller_account_origin( - origin: Origin, + origin: RuntimeOrigin, member_id: u64, ) -> Result { let signed_account_id = frame_system::ensure_signed(origin)?; From bb22687b680685e114b0d1d3340845948a724886 Mon Sep 17 00:00:00 2001 From: Mokhtar Naamani Date: Fri, 10 Mar 2023 09:46:28 +0400 Subject: [PATCH 11/87] v0.9.39 - Fix runtime build --- devops/joystream-pallet-weight-template.hbs | 2 +- runtime/src/constants.rs | 14 +- .../integration/proposals/proposal_encoder.rs | 74 ++++---- runtime/src/integration/transactions.rs | 6 +- runtime/src/lib.rs | 164 ++++++++++-------- runtime/src/runtime_api.rs | 42 +++-- runtime/src/utils.rs | 14 +- runtime/src/weights/block_weights.rs | 8 +- runtime/src/weights/extrinsic_weights.rs | 8 +- runtime/src/weights/mod.rs | 26 +-- runtime/src/weights/pallet_balances.rs | 42 ++--- runtime/src/weights/rocksdb_weights.rs | 12 +- 12 files changed, 224 insertions(+), 188 deletions(-) diff --git a/devops/joystream-pallet-weight-template.hbs b/devops/joystream-pallet-weight-template.hbs index fef1045894..935781de48 100644 --- a/devops/joystream-pallet-weight-template.hbs +++ b/devops/joystream-pallet-weight-template.hbs @@ -86,7 +86,7 @@ impl WeightInfo for () { {{~#each benchmark.components as |c| ~}} {{~#if (not c.is_used)}}_{{/if}}{{c.name}}: u32, {{/each~}} ) -> Weight { - Weight::from_ref_time(0).into() + Weight::from_ref_time(0) } {{/each}} } diff --git a/runtime/src/constants.rs b/runtime/src/constants.rs index 3d3401ba1d..76c4eab273 100644 --- a/runtime/src/constants.rs +++ b/runtime/src/constants.rs @@ -70,6 +70,7 @@ pub mod fees { }; use pallet_transaction_payment::{Multiplier, TargetedFeeAdjustment}; use smallvec::smallvec; + use sp_runtime::traits::Bounded; use sp_runtime::FixedPointNumber; pub use sp_runtime::Perbill; use sp_runtime::Perquintill; @@ -85,12 +86,19 @@ pub mod fees { /// that combined with `AdjustmentVariable`, we can recover from the minimum. /// See `multiplier_can_grow_from_zero`. pub MinimumMultiplier: Multiplier = Multiplier::saturating_from_rational(1, 1_000_000_000u128); + /// The maximum amount of the multiplier. + pub MaximumMultiplier: Multiplier = Bounded::max_value(); } /// Parameterized slow adjusting fee updated based on /// https://w3f-research.readthedocs.io/en/latest/polkadot/economics/1-token-economics.html#-2.-slow-adjusting-mechanism - pub type SlowAdjustingFeeUpdate = - TargetedFeeAdjustment; + pub type SlowAdjustingFeeUpdate = TargetedFeeAdjustment< + R, + TargetBlockFullness, + AdjustmentVariable, + MinimumMultiplier, + MaximumMultiplier, + >; /// Handles converting a weight scalar to a fee value, based on the scale and granularity of the /// node's balance type. @@ -107,7 +115,7 @@ pub mod fees { type Balance = Balance; fn polynomial() -> WeightToFeeCoefficients { let p = super::currency::CENTS; - let q = 50 * Balance::from(ExtrinsicBaseWeight::get()); + let q = 50 * Balance::from(ExtrinsicBaseWeight::get().ref_time()); smallvec![WeightToFeeCoefficient { degree: 1, negative: false, diff --git a/runtime/src/integration/proposals/proposal_encoder.rs b/runtime/src/integration/proposals/proposal_encoder.rs index dcaf7c38f5..0de36eb245 100644 --- a/runtime/src/integration/proposals/proposal_encoder.rs +++ b/runtime/src/integration/proposals/proposal_encoder.rs @@ -1,4 +1,4 @@ -use crate::{Call, Runtime}; +use crate::{Runtime, RuntimeCall}; use common::working_group::WorkingGroup; use proposals_codex::{ProposalDetails, ProposalDetailsOf, ProposalEncoder}; use working_group::OpeningType; @@ -17,23 +17,25 @@ use sp_std::vec::Vec; macro_rules! wrap_working_group_call { ($working_group:expr, $working_group_instance_call:expr) => {{ match $working_group { - WorkingGroup::Content => Call::ContentWorkingGroup($working_group_instance_call), - WorkingGroup::Storage => Call::StorageWorkingGroup($working_group_instance_call), - WorkingGroup::Forum => Call::ForumWorkingGroup($working_group_instance_call), - WorkingGroup::Membership => Call::MembershipWorkingGroup($working_group_instance_call), + WorkingGroup::Content => RuntimeCall::ContentWorkingGroup($working_group_instance_call), + WorkingGroup::Storage => RuntimeCall::StorageWorkingGroup($working_group_instance_call), + WorkingGroup::Forum => RuntimeCall::ForumWorkingGroup($working_group_instance_call), + WorkingGroup::Membership => { + RuntimeCall::MembershipWorkingGroup($working_group_instance_call) + } WorkingGroup::Distribution => { - Call::DistributionWorkingGroup($working_group_instance_call) + RuntimeCall::DistributionWorkingGroup($working_group_instance_call) } WorkingGroup::OperationsAlpha => { - Call::OperationsWorkingGroupAlpha($working_group_instance_call) + RuntimeCall::OperationsWorkingGroupAlpha($working_group_instance_call) } WorkingGroup::OperationsBeta => { - Call::OperationsWorkingGroupBeta($working_group_instance_call) + RuntimeCall::OperationsWorkingGroupBeta($working_group_instance_call) } WorkingGroup::OperationsGamma => { - Call::OperationsWorkingGroupGamma($working_group_instance_call) + RuntimeCall::OperationsWorkingGroupGamma($working_group_instance_call) } - WorkingGroup::App => Call::AppWorkingGroup($working_group_instance_call), + WorkingGroup::App => RuntimeCall::AppWorkingGroup($working_group_instance_call), } }}; } @@ -48,19 +50,19 @@ impl ProposalEncoder for ExtrinsicProposalEncoder { ) -> Vec { let call = match proposal_details { ProposalDetails::Signal(signal) => { - Call::JoystreamUtility(joystream_utility::Call::execute_signal_proposal { signal }) + RuntimeCall::JoystreamUtility(joystream_utility::Call::execute_signal_proposal { + signal, + }) } ProposalDetails::FundingRequest(funding_requests) => { - Call::Council(council::Call::funding_request { funding_requests }) + RuntimeCall::Council(council::Call::funding_request { funding_requests }) } ProposalDetails::SetMaxValidatorCount(new) => { - Call::Staking(pallet_staking::Call::set_validator_count { new }) - } - ProposalDetails::RuntimeUpgrade(wasm) => { - Call::JoystreamUtility(joystream_utility::Call::execute_runtime_upgrade_proposal { - wasm, - }) + RuntimeCall::Staking(pallet_staking::Call::set_validator_count { new }) } + ProposalDetails::RuntimeUpgrade(wasm) => RuntimeCall::JoystreamUtility( + joystream_utility::Call::execute_runtime_upgrade_proposal { wasm }, + ), ProposalDetails::CreateWorkingGroupLeadOpening(create_opening_params) => { wrap_working_group_call!( create_opening_params.group, @@ -74,11 +76,13 @@ impl ProposalEncoder for ExtrinsicProposalEncoder { ) } ProposalDetails::UpdateWorkingGroupBudget(amount, working_group, balance_kind) => { - Call::JoystreamUtility(joystream_utility::Call::update_working_group_budget { - working_group, - amount, - balance_kind, - }) + RuntimeCall::JoystreamUtility( + joystream_utility::Call::update_working_group_budget { + working_group, + amount, + balance_kind, + }, + ) } ProposalDetails::DecreaseWorkingGroupLeadStake( worker_id, @@ -107,7 +111,7 @@ impl ProposalEncoder for ExtrinsicProposalEncoder { ) } ProposalDetails::AmendConstitution(constitution_text) => { - Call::Constitution(pallet_constitution::Call::amend_constitution { + RuntimeCall::Constitution(pallet_constitution::Call::amend_constitution { constitution_text, }) } @@ -118,43 +122,45 @@ impl ProposalEncoder for ExtrinsicProposalEncoder { ) } ProposalDetails::SetMembershipPrice(new_price) => { - Call::Members(membership::Call::set_membership_price { new_price }) + RuntimeCall::Members(membership::Call::set_membership_price { new_price }) } ProposalDetails::SetCouncilBudgetIncrement(budget_increment) => { - Call::Council(council::Call::set_budget_increment { budget_increment }) + RuntimeCall::Council(council::Call::set_budget_increment { budget_increment }) } ProposalDetails::SetCouncilorReward(councilor_reward) => { - Call::Council(council::Call::set_councilor_reward { councilor_reward }) + RuntimeCall::Council(council::Call::set_councilor_reward { councilor_reward }) } ProposalDetails::SetInitialInvitationBalance(new_initial_balance) => { - Call::Members(membership::Call::set_initial_invitation_balance { + RuntimeCall::Members(membership::Call::set_initial_invitation_balance { new_initial_balance, }) } ProposalDetails::SetInitialInvitationCount(new_invitation_count) => { - Call::Members(membership::Call::set_initial_invitation_count { + RuntimeCall::Members(membership::Call::set_initial_invitation_count { new_invitation_count, }) } ProposalDetails::SetMembershipLeadInvitationQuota(invitation_quota) => { - Call::Members(membership::Call::set_leader_invitation_quota { invitation_quota }) + RuntimeCall::Members(membership::Call::set_leader_invitation_quota { + invitation_quota, + }) } ProposalDetails::SetReferralCut(percent_value) => { - Call::Members(membership::Call::set_referral_cut { percent_value }) + RuntimeCall::Members(membership::Call::set_referral_cut { percent_value }) } ProposalDetails::VetoProposal(proposal_id) => { - Call::ProposalsEngine(proposals_engine::Call::veto_proposal { proposal_id }) + RuntimeCall::ProposalsEngine(proposals_engine::Call::veto_proposal { proposal_id }) } ProposalDetails::UpdateGlobalNftLimit(nft_limit_period, limit) => { - Call::Content(content::Call::update_global_nft_limit { + RuntimeCall::Content(content::Call::update_global_nft_limit { nft_limit_period, limit, }) } ProposalDetails::UpdateChannelPayouts(params) => { - Call::Content(content::Call::update_channel_payouts { + RuntimeCall::Content(content::Call::update_channel_payouts { params, uploader_account: member_controller_account, }) diff --git a/runtime/src/integration/transactions.rs b/runtime/src/integration/transactions.rs index a0b5d4dc2a..ccd698ab92 100644 --- a/runtime/src/integration/transactions.rs +++ b/runtime/src/integration/transactions.rs @@ -5,7 +5,7 @@ use sp_runtime::generic::SignedPayload; use sp_runtime::SaturatedConversion; use crate::{AccountId, BlockHashCount, Index, SignedExtra, UncheckedExtrinsic}; -use crate::{Call, Runtime, System}; +use crate::{Runtime, RuntimeCall, System}; use log; /// 'Create transaction' default implementation. @@ -15,12 +15,12 @@ pub(crate) fn create_transaction< ::Signature, >, >( - call: Call, + call: RuntimeCall, public: <::Signature as sp_runtime::traits::Verify>::Signer, account: AccountId, nonce: Index, ) -> Option<( - Call, + RuntimeCall, ::SignaturePayload, )> { // take the biggest period possible. diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs index f6c5c29bf7..7432e028e9 100644 --- a/runtime/src/lib.rs +++ b/runtime/src/lib.rs @@ -54,7 +54,7 @@ extern crate lazy_static; // for proposals_configuration module use codec::Decode; use frame_election_provider_support::{ - onchain, ElectionDataProvider, ExtendedBalance, SequentialPhragmen, VoteWeight, + onchain, BalancingConfig, ElectionDataProvider, ExtendedBalance, SequentialPhragmen, VoteWeight, }; use frame_support::pallet_prelude::Get; use frame_support::traits::{ @@ -62,7 +62,7 @@ use frame_support::traits::{ LockIdentifier, OnUnbalanced, WithdrawReasons, }; use frame_support::weights::{ - constants::WEIGHT_PER_SECOND, ConstantMultiplier, DispatchClass, Weight, + constants::WEIGHT_REF_TIME_PER_SECOND, ConstantMultiplier, DispatchClass, Weight, }; pub use weights::{ block_weights::BlockExecutionWeight, extrinsic_weights::ExtrinsicBaseWeight, @@ -175,7 +175,7 @@ const AVERAGE_ON_INITIALIZE_RATIO: Perbill = Perbill::from_percent(10); /// by Operational extrinsics. const NORMAL_DISPATCH_RATIO: Perbill = Perbill::from_percent(75); /// We allow for 2 seconds of compute with a 6 second average block time. -pub const MAXIMUM_BLOCK_WEIGHT: Weight = 2 * WEIGHT_PER_SECOND; +pub const MAXIMUM_BLOCK_WEIGHT: Weight = Weight::from_ref_time(2 * WEIGHT_REF_TIME_PER_SECOND); parameter_types! { pub const BlockHashCount: BlockNumber = 2400; @@ -229,23 +229,29 @@ pub enum CallFilter {} // Filter out only a subset of calls on content pallet, some specific proposals // and the bounty creation call. #[cfg(not(feature = "runtime-benchmarks"))] -impl Contains<::Call> for CallFilter { - fn contains(call: &::Call) -> bool { +impl Contains<::RuntimeCall> for CallFilter { + fn contains(call: &::RuntimeCall) -> bool { match call { - Call::Content(content::Call::::destroy_nft { .. }) => false, - Call::Content(content::Call::::toggle_nft_limits { .. }) => false, - Call::Content(content::Call::::update_curator_group_permissions { + RuntimeCall::Content(content::Call::::destroy_nft { .. }) => false, + RuntimeCall::Content(content::Call::::toggle_nft_limits { .. }) => false, + RuntimeCall::Content(content::Call::::update_curator_group_permissions { .. }) => false, - Call::Content(content::Call::::update_channel_privilege_level { .. }) => false, - Call::Content(content::Call::::update_channel_nft_limit { .. }) => false, - Call::Content(content::Call::::set_channel_paused_features_as_moderator { + RuntimeCall::Content(content::Call::::update_channel_privilege_level { .. }) => false, - Call::Content(content::Call::::initialize_channel_transfer { .. }) => false, - Call::Content(content::Call::::issue_creator_token { .. }) => false, - Call::Bounty(bounty::Call::::create_bounty { .. }) => false, - Call::ProposalsCodex(proposals_codex::Call::::create_proposal { + RuntimeCall::Content(content::Call::::update_channel_nft_limit { .. }) => { + false + } + RuntimeCall::Content( + content::Call::::set_channel_paused_features_as_moderator { .. }, + ) => false, + RuntimeCall::Content(content::Call::::initialize_channel_transfer { + .. + }) => false, + RuntimeCall::Content(content::Call::::issue_creator_token { .. }) => false, + RuntimeCall::Bounty(bounty::Call::::create_bounty { .. }) => false, + RuntimeCall::ProposalsCodex(proposals_codex::Call::::create_proposal { general_proposal_parameters: _, proposal_details, }) => !matches!( @@ -259,8 +265,8 @@ impl Contains<::Call> for CallFilter { // Do not filter any calls when building benchmarks so we can benchmark everything #[cfg(feature = "runtime-benchmarks")] -impl Contains<::Call> for CallFilter { - fn contains(_call: &::Call) -> bool { +impl Contains<::RuntimeCall> for CallFilter { + fn contains(_call: &::RuntimeCall) -> bool { true } } @@ -270,8 +276,8 @@ impl frame_system::Config for Runtime { type BlockWeights = RuntimeBlockWeights; type BlockLength = RuntimeBlockLength; type DbWeight = RocksDbWeight; - type Origin = Origin; - type Call = Call; + type RuntimeOrigin = RuntimeOrigin; + type RuntimeCall = RuntimeCall; type Index = Index; type BlockNumber = BlockNumber; type Hash = Hash; @@ -286,7 +292,7 @@ impl frame_system::Config for Runtime { type AccountData = pallet_balances::AccountData; type OnNewAccount = (); type OnKilledAccount = (); - type SystemWeightInfo = weights::frame_system::SubstrateWeight; + type SystemWeightInfo = frame_system::weights::SubstrateWeight; type SS58Prefix = ConstU16; type OnSetCode = (); type MaxConsumers = ConstU32<16>; @@ -296,9 +302,9 @@ impl pallet_insecure_randomness_collective_flip::Config for Runtime {} impl substrate_utility::Config for Runtime { type RuntimeEvent = RuntimeEvent; - type Call = Call; + type RuntimeCall = RuntimeCall; type PalletsOrigin = OriginCaller; - type WeightInfo = weights::substrate_utility::SubstrateWeight; + type WeightInfo = substrate_utility::weights::SubstrateWeight; } parameter_types! { @@ -331,13 +337,16 @@ impl pallet_babe::Config for Runtime { type HandleEquivocation = pallet_babe::EquivocationHandler; - type WeightInfo = weights::pallet_babe::SubstrateWeight; + type WeightInfo = (); type MaxAuthorities = MaxAuthorities; } +parameter_types! { + pub const MaxSetIdSessionEntries: u32 = BondingDuration::get() * SessionsPerEra::get(); +} + impl pallet_grandpa::Config for Runtime { type RuntimeEvent = RuntimeEvent; - type Call = Call; type KeyOwnerProofSystem = Historical; @@ -355,21 +364,22 @@ impl pallet_grandpa::Config for Runtime { ReportLongevity, >; - type WeightInfo = weights::pallet_grandpa::SubstrateWeight; + type WeightInfo = (); type MaxAuthorities = MaxAuthorities; + type MaxSetIdSessionEntries = MaxSetIdSessionEntries; } impl frame_system::offchain::CreateSignedTransaction for Runtime where - Call: From, + RuntimeCall: From, { fn create_transaction>( - call: Call, + call: RuntimeCall, public: ::Signer, account: AccountId, nonce: Index, ) -> Option<( - Call, + RuntimeCall, ::SignaturePayload, )> { integration::transactions::create_transaction::(call, public, account, nonce) @@ -383,10 +393,10 @@ impl frame_system::offchain::SigningTypes for Runtime { impl frame_system::offchain::SendTransactionTypes for Runtime where - Call: From, + RuntimeCall: From, { type Extrinsic = UncheckedExtrinsic; - type OverarchingCall = Call; + type OverarchingCall = RuntimeCall; } parameter_types! { @@ -397,7 +407,7 @@ impl pallet_timestamp::Config for Runtime { type Moment = Moment; type OnTimestampSet = Babe; type MinimumPeriod = MinimumPeriod; - type WeightInfo = weights::pallet_timestamp::SubstrateWeight; + type WeightInfo = pallet_timestamp::weights::SubstrateWeight; } parameter_types! { @@ -468,6 +478,7 @@ parameter_types! { } impl pallet_transaction_payment::Config for Runtime { + type RuntimeEvent = RuntimeEvent; type OnChargeTransaction = CurrencyAdapter>; type OperationalFeeMultiplier = OperationalFeeMultiplier; type WeightToFee = constants::fees::WeightToFee; @@ -475,14 +486,8 @@ impl pallet_transaction_payment::Config for Runtime { type FeeMultiplierUpdate = constants::fees::SlowAdjustingFeeUpdate; } -parameter_types! { - pub const UncleGenerations: BlockNumber = 0; -} - impl pallet_authorship::Config for Runtime { type FindAuthor = pallet_session::FindAccountFromAuthorIndex; - type UncleGenerations = UncleGenerations; - type FilterUncle = (); type EventHandler = (Staking, ImOnline); } @@ -504,7 +509,7 @@ impl pallet_session::Config for Runtime { type SessionManager = pallet_session::historical::NoteHistoricalRoot; type SessionHandler = ::KeyTypeIdProviders; type Keys = SessionKeys; - type WeightInfo = weights::pallet_session::SubstrateWeight; + type WeightInfo = pallet_session::weights::SubstrateWeight; } impl pallet_session::historical::Config for Runtime { @@ -554,6 +559,7 @@ parameter_types! { pub const MaxNominatorRewardedPerValidator: u32 = 256; pub const OffendingValidatorsThreshold: Perbill = Perbill::from_percent(17); pub OffchainRepeat: BlockNumber = UnsignedPhase::get() / 8; + pub HistoryDepth: u32 = 84; } pub struct StakingBenchmarkingConfig; @@ -575,7 +581,7 @@ impl pallet_staking::Config for Runtime { type SessionsPerEra = SessionsPerEra; type BondingDuration = BondingDuration; type SlashDeferDuration = SlashDeferDuration; - type SlashCancelOrigin = EnsureRoot; + type AdminOrigin = EnsureRoot; type SessionInterface = Self; // TODO (Mainnet): enable normal curve // type EraPayout = pallet_staking::ConvertCurve; @@ -584,11 +590,13 @@ impl pallet_staking::Config for Runtime { type MaxNominatorRewardedPerValidator = MaxNominatorRewardedPerValidator; type OffendingValidatorsThreshold = OffendingValidatorsThreshold; type ElectionProvider = ElectionProviderMultiPhase; - type GenesisElectionProvider = onchain::UnboundedExecution; + type GenesisElectionProvider = onchain::OnChainExecution; type VoterList = BagsList; + type TargetList = pallet_staking::UseValidatorsMap; type MaxUnlockingChunks = ConstU32<32>; + type HistoryDepth = HistoryDepth; type OnStakerSlash = (); // NominationPools; - type WeightInfo = weights::pallet_staking::SubstrateWeight; + type WeightInfo = pallet_staking::weights::SubstrateWeight; type BenchmarkingConfig = StakingBenchmarkingConfig; type BondingRestriction = RestrictStakingAccountsFromBonding; } @@ -634,6 +642,9 @@ frame_election_provider_support::generate_solution_type!( parameter_types! { pub MaxNominations: u32 = ::LIMIT as u32; pub MaxElectingVoters: u32 = 12_500; + // The maximum winners that can be elected by the Election pallet which is equivalent to the + // maximum active validators the staking pallet can have. + pub MaxActiveValidators: u32 = SetMaxValidatorCountProposalMaxValidators::get(); } /// The numbers configured here could always be more than the the maximum limits of staking pallet @@ -656,10 +667,10 @@ pub const MINER_MAX_ITERATIONS: u32 = 10; /// A source of random balance for NposSolver, which is meant to be run by the OCW election miner. pub struct OffchainRandomBalancing; -impl Get> for OffchainRandomBalancing { - fn get() -> Option<(usize, ExtendedBalance)> { +impl Get> for OffchainRandomBalancing { + fn get() -> Option { use sp_runtime::traits::TrailingZeroInput; - let iters = match MINER_MAX_ITERATIONS { + let iterations = match MINER_MAX_ITERATIONS { 0 => 0, max => { let seed = sp_io::offchain::random_seed(); @@ -670,7 +681,11 @@ impl Get> for OffchainRandomBalancing { } }; - Some((iters, 0)) + let config = BalancingConfig { + iterations, + tolerance: 0, + }; + Some(config) } } @@ -682,11 +697,8 @@ impl onchain::Config for OnChainSeqPhragmen { pallet_election_provider_multi_phase::SolutionAccuracyOf, >; type DataProvider = ::DataProvider; - type WeightInfo = - weights::pallet_election_provider_support_benchmarking::SubstrateWeight; -} - -impl onchain::BoundedConfig for OnChainSeqPhragmen { + type WeightInfo = frame_election_provider_support::weights::SubstrateWeight; + type MaxWinners = ::MaxWinners; type VotersBound = MaxElectingVoters; type TargetsBound = ConstU32<2_000>; } @@ -731,8 +743,8 @@ impl pallet_election_provider_multi_phase::Config for Runtime { type SlashHandler = (); // burn slashes type RewardHandler = (); // nothing to do upon rewards type DataProvider = Staking; - type Fallback = onchain::BoundedExecution; - type GovernanceFallback = onchain::BoundedExecution; + type Fallback = onchain::OnChainExecution; + type GovernanceFallback = onchain::OnChainExecution; type Solver = SequentialPhragmen< AccountId, pallet_election_provider_multi_phase::SolutionAccuracyOf, @@ -741,8 +753,9 @@ impl pallet_election_provider_multi_phase::Config for Runtime { type ForceOrigin = EnsureRoot; // EnsureRootOrHalfCouncil; type MaxElectableTargets = ConstU16<{ u16::MAX }>; type MaxElectingVoters = MaxElectingVoters; + type MaxWinners = MaxActiveValidators; // How does this relate with staking pallet type BenchmarkingConfig = ElectionProviderBenchmarkConfig; - type WeightInfo = weights::pallet_election_provider_multi_phase::SubstrateWeight; + type WeightInfo = pallet_election_provider_multi_phase::weights::SubstrateWeight; } parameter_types! { @@ -752,7 +765,7 @@ parameter_types! { impl pallet_bags_list::Config for Runtime { type RuntimeEvent = RuntimeEvent; type ScoreProvider = Staking; - type WeightInfo = weights::pallet_bags_list::SubstrateWeight; + type WeightInfo = pallet_bags_list::weights::SubstrateWeight; type BagThresholds = BagThresholds; type Score = VoteWeight; } @@ -774,7 +787,7 @@ impl pallet_im_online::Config for Runtime { type ValidatorSet = Historical; type ReportUnresponsiveness = Offences; type UnsignedPriority = ImOnlineUnsignedPriority; - type WeightInfo = weights::pallet_im_online::SubstrateWeight; + type WeightInfo = pallet_im_online::weights::SubstrateWeight; type MaxKeys = MaxKeys; type MaxPeerInHeartbeats = MaxPeerInHeartbeats; type MaxPeerDataEncodingSize = MaxPeerDataEncodingSize; @@ -816,7 +829,7 @@ parameter_types! { // Channel bloat bond related: pub ChannelCleanupTxFee: Balance = compute_fee( - Call::Content(content::Call::::delete_channel { + RuntimeCall::Content(content::Call::::delete_channel { actor: Default::default(), channel_id: 0, channel_bag_witness: content::ChannelBagWitness { @@ -835,7 +848,7 @@ parameter_types! { // Video bloat bond related: pub VideoCleanupTxFee: Balance = compute_fee( - Call::Content(content::Call::::delete_video { + RuntimeCall::Content(content::Call::::delete_video { actor: Default::default(), video_id: 0, num_objects_to_delete: 1, @@ -888,7 +901,7 @@ parameter_types! { pub const BlocksPerYear: u32 = 5259600; // 365,25 * 24 * 60 * 60 / 6 // Account bloat bond related: pub ProjectTokenAccountCleanupTxFee: Balance = compute_fee( - Call::ProjectToken(project_token::Call::::dust_account { + RuntimeCall::ProjectToken(project_token::Call::::dust_account { token_id: 0, member_id: 0, }) @@ -1111,7 +1124,7 @@ parameter_types! { // To calculate the cost of removing a data object we substract the cost of removing a video // w/ 1 asset from a cost of removing a video w/ 2 assets pub DataObjectCleanupTxFee: Balance = compute_fee( - Call::Content(content::Call::::delete_video { + RuntimeCall::Content(content::Call::::delete_video { actor: Default::default(), video_id: 0, num_objects_to_delete: 2, @@ -1119,7 +1132,7 @@ parameter_types! { }) ).saturating_sub( compute_fee( - Call::Content(content::Call::::delete_video { + RuntimeCall::Content(content::Call::::delete_video { actor: Default::default(), video_id: 0, num_objects_to_delete: 1, @@ -1201,7 +1214,7 @@ parameter_types! { pub const DefaultMemberInvitesCount: u32 = 2; // Candidate stake related: pub StakingAccountCleanupTxFee: Balance = compute_fee( - Call::Members(membership::Call::::remove_staking_account { member_id: 0 }) + RuntimeCall::Members(membership::Call::::remove_staking_account { member_id: 0 }) ); pub CandidateStake: Balance = stake_with_cleanup( MinimumVotingStake::get(), @@ -1230,7 +1243,7 @@ parameter_types! { // Thread bloat bond related: pub FroumThreadCleanupTxFee: Balance = compute_fee( - Call::Forum(forum::Call::::delete_thread { + RuntimeCall::Forum(forum::Call::::delete_thread { forum_user_id: 0, category_id: 0, thread_id: 0, @@ -1246,7 +1259,7 @@ parameter_types! { // Post bloat bond related: pub FroumPostCleanupTxFee: Balance = compute_fee( - Call::Forum(forum::Call::::delete_posts { + RuntimeCall::Forum(forum::Call::::delete_posts { forum_user_id: 0, posts: BTreeMap::from_iter(vec![( forum::ExtendedPostId:: { category_id: 0, thread_id: 0, post_id: 0 }, @@ -1547,16 +1560,16 @@ impl proposals_engine::Config for Runtime { type TitleMaxLength = ProposalTitleMaxLength; type DescriptionMaxLength = ProposalDescriptionMaxLength; type MaxActiveProposalLimit = ProposalMaxActiveProposalLimit; - type DispatchableCallCode = Call; + type DispatchableCallCode = RuntimeCall; type ProposalObserver = ProposalsCodex; type WeightInfo = proposals_engine::weights::SubstrateWeight; type StakingAccountValidator = Members; type DispatchableCallCodeMaxLen = DispatchableCallCodeMaxLen; } -impl Default for Call { +impl Default for RuntimeCall { fn default() -> Self { - panic!("shouldn't call default for Call"); + panic!("shouldn't call default for RuntimeCall"); } } @@ -1568,7 +1581,7 @@ parameter_types! { // Proposal discussion post deposit related: pub ProposalDiscussionPostCleanupTxFee: Balance = compute_fee( - Call::ProposalsDiscussion(proposals_discussion::Call::::delete_post { + RuntimeCall::ProposalsDiscussion(proposals_discussion::Call::::delete_post { deleter_id: 0, post_id: 0, thread_id: 0, @@ -1692,7 +1705,7 @@ parameter_types! { // Bounty work entry stake related: pub BountyWorkEntryCleanupTxFee: Balance = compute_fee( - Call::Bounty(bounty::Call::::withdraw_entrant_stake { + RuntimeCall::Bounty(bounty::Call::::withdraw_entrant_stake { member_id: 0, bounty_id: 0, entry_id: 0, @@ -1707,7 +1720,7 @@ parameter_types! { // Funder bloat bond related: pub BountyContributionCleanupTxFee: Balance = compute_fee( - Call::Bounty(bounty::Call::::withdraw_funding { + RuntimeCall::Bounty(bounty::Call::::withdraw_funding { funder: Default::default(), bounty_id: 0, }) @@ -1722,7 +1735,7 @@ parameter_types! { // Creator bloat bond related: pub BountyCleanupTxFee: Balance = compute_fee( - Call::Bounty(bounty::Call::::terminate_bounty { + RuntimeCall::Bounty(bounty::Call::::terminate_bounty { bounty_id: 0, }) ); @@ -1759,7 +1772,7 @@ impl pallet_vesting::Config for Runtime { type Currency = Balances; type BlockNumberToBalance = ConvertInto; type MinVestedTransfer = MinVestedTransfer; - type WeightInfo = weights::pallet_vesting::SubstrateWeight; + type WeightInfo = pallet_vesting::weights::SubstrateWeight; type UnvestedFundsAllowedWithdrawReasons = UnvestedFundsAllowedWithdrawReasons; // `VestingInfo` encode length is 36bytes. 28 schedules gets encoded as 1009 bytes, which is the // highest number of schedules that encodes less than 2^10. @@ -1770,12 +1783,9 @@ parameter_types! { pub MultisigMapEntryFixedPortionByteSize: u32 = double_map_entry_fixed_byte_size::< pallet_multisig::Multisigs::, _, _, _, _, _ >(); - pub CallMapEntryFixedPortionByteSize: u32 = map_entry_fixed_byte_size::< - pallet_multisig::Calls::, _, _, _ - >(); // Deposit for storing one new item in Multisigs/Calls map pub DepositBase: Balance = compute_single_bloat_bond( - MultisigMapEntryFixedPortionByteSize::get().max(CallMapEntryFixedPortionByteSize::get()), + MultisigMapEntryFixedPortionByteSize::get(), None ); // Deposit for adding 32 bytes to an already stored item @@ -1786,12 +1796,12 @@ parameter_types! { impl pallet_multisig::Config for Runtime { type RuntimeEvent = RuntimeEvent; - type Call = Call; + type RuntimeCall = RuntimeCall; type Currency = Balances; type DepositBase = DepositBase; type DepositFactor = DepositFactor; type MaxSignatories = MaxSignatories; - type WeightInfo = weights::pallet_multisig::SubstrateWeight; + type WeightInfo = pallet_multisig::weights::SubstrateWeight; } /// Opaque types. These are used by the CLI to instantiate machinery that don't need to know diff --git a/runtime/src/runtime_api.rs b/runtime/src/runtime_api.rs index 0f1fa111ad..80d830e02a 100644 --- a/runtime/src/runtime_api.rs +++ b/runtime/src/runtime_api.rs @@ -13,9 +13,9 @@ use sp_std::vec::Vec; use crate::{ AccountId, AllPalletsWithSystem, AuthorityDiscovery, AuthorityDiscoveryId, Babe, Balance, - BlockNumber, Call, EpochDuration, Grandpa, GrandpaAuthorityList, GrandpaId, Historical, Index, - InherentDataExt, ProposalsEngine, Runtime, RuntimeVersion, SessionKeys, Signature, System, - TransactionPayment, BABE_GENESIS_EPOCH_CONFIG, VERSION, + BlockNumber, EpochDuration, Grandpa, GrandpaAuthorityList, GrandpaId, Historical, Index, + InherentDataExt, ProposalsEngine, Runtime, RuntimeCall, RuntimeVersion, SessionKeys, Signature, + System, TransactionPayment, BABE_GENESIS_EPOCH_CONFIG, VERSION, }; use frame_support::weights::Weight; @@ -51,21 +51,24 @@ pub type SignedBlock = generic::SignedBlock; pub type BlockId = generic::BlockId; /// The payload being signed in transactions. -pub type SignedPayload = generic::SignedPayload; +pub type SignedPayload = generic::SignedPayload; /// Extrinsic type that has already been checked. -pub type CheckedExtrinsic = generic::CheckedExtrinsic; +pub type CheckedExtrinsic = generic::CheckedExtrinsic; /// Unchecked extrinsic type as expected by this runtime. -pub type UncheckedExtrinsic = generic::UncheckedExtrinsic; +pub type UncheckedExtrinsic = + generic::UncheckedExtrinsic; +// Does this executive with customonruntimeupgrade prevent individual pallets' on runtime +// upgrade migrations from running?? /// Custom runtime upgrade handler. pub struct CustomOnRuntimeUpgrade; impl OnRuntimeUpgrade for CustomOnRuntimeUpgrade { fn on_runtime_upgrade() -> Weight { ProposalsEngine::cancel_active_and_pending_proposals(); - 10_000_000 // TODO: adjust weight + Weight::from_ref_time(10_000_000) // TODO: adjust weight } } @@ -210,19 +213,20 @@ impl_runtime_apis! { } impl sp_consensus_babe::BabeApi for Runtime { - fn configuration() -> sp_consensus_babe::BabeGenesisConfiguration { + fn configuration() -> sp_consensus_babe::BabeConfiguration { // The choice of `c` parameter (where `1 - c` represents the // probability of a slot being empty), is done in accordance to the // slot duration and expected target block time, for safely // resisting network delays of maximum two seconds. // - sp_consensus_babe::BabeGenesisConfiguration { + let epoch_config = Babe::epoch_config().unwrap_or(BABE_GENESIS_EPOCH_CONFIG); + sp_consensus_babe::BabeConfiguration { slot_duration: Babe::slot_duration(), epoch_length: EpochDuration::get(), - c: BABE_GENESIS_EPOCH_CONFIG.c, - genesis_authorities: Babe::authorities().to_vec(), + c: epoch_config.c, + authorities: Babe::authorities().to_vec(), randomness: Babe::randomness(), - allowed_slots: BABE_GENESIS_EPOCH_CONFIG.allowed_slots, + allowed_slots: epoch_config.allowed_slots, } } @@ -284,6 +288,12 @@ impl_runtime_apis! { fn query_fee_details(uxt: ::Extrinsic, len: u32) -> FeeDetails { TransactionPayment::query_fee_details(uxt, len) } + fn query_weight_to_fee(weight: Weight) -> Balance { + TransactionPayment::weight_to_fee(weight) + } + fn query_length_to_fee(length: u32) -> Balance { + TransactionPayment::length_to_fee(length) + } } impl sp_session::SessionKeys for Runtime { @@ -440,7 +450,7 @@ mod tests { fn validate_transaction_submitter_bounds() { fn is_submit_signed_transaction() where - T: CreateSignedTransaction, + T: CreateSignedTransaction, { } @@ -463,11 +473,11 @@ mod tests { fn call_size() { // https://github.com/Joystream/joystream/pull/4336#discussion_r992359003 const SAFE_SIZE: usize = 400; - let current_size = core::mem::size_of::(); + let current_size = core::mem::size_of::(); assert!( current_size <= SAFE_SIZE, - "size of Call {} is more than {} bytes: some calls have too big arguments, use Box to reduce the - size of Call. If the limit is too strong, maybe consider increase the limit.", + "size of RuntimeCall {} is more than {} bytes: some calls have too big arguments, use Box to reduce the + size of RuntimeCall. If the limit is too strong, maybe consider increase the limit.", current_size, SAFE_SIZE ); } diff --git a/runtime/src/utils.rs b/runtime/src/utils.rs index e3705349bc..ba874d6ab9 100644 --- a/runtime/src/utils.rs +++ b/runtime/src/utils.rs @@ -1,15 +1,16 @@ use crate::{ - Balance, Call, DefaultStorageDepositCleanupProfit, ExistentialDeposit, MinimumBloatBondPerByte, - Runtime, UncheckedExtrinsic, + Balance, DefaultStorageDepositCleanupProfit, ExistentialDeposit, MinimumBloatBondPerByte, + Runtime, RuntimeCall, UncheckedExtrinsic, }; use codec::{Encode, FullCodec, MaxEncodedLen}; use frame_support::{ + dispatch::GetDispatchInfo, storage::{ generator::{StorageDoubleMap, StorageMap}, StoragePrefixedMap, }, traits::StorageInfoTrait, - weights::{GetDispatchInfo, WeightToFee}, + weights::{Weight, WeightToFee}, StorageHasher, }; pub use sp_runtime::Perbill; @@ -19,15 +20,16 @@ use sp_std::mem::size_of; pub const ENCODED_EXTRINSIC_SIGNATURE_LENGTH: u64 = 102; /// Compute total fee for executing a call -pub fn compute_fee(call: Call) -> Balance { +pub fn compute_fee(call: RuntimeCall) -> Balance { let xt = UncheckedExtrinsic::new_unsigned(call); let length = xt.encode().len() as u64 + ENCODED_EXTRINSIC_SIGNATURE_LENGTH; let dispatch_info = &::get_dispatch_info(&xt); let weight_fee = ::WeightToFee::weight_to_fee( &dispatch_info.weight, ); - let len_fee = - ::LengthToFee::weight_to_fee(&length); + let len_fee = ::LengthToFee::weight_to_fee( + &Weight::from_ref_time(length), + ); let base_fee = ::WeightToFee::weight_to_fee( &::BlockWeights::get() .get(dispatch_info.class) diff --git a/runtime/src/weights/block_weights.rs b/runtime/src/weights/block_weights.rs index f0d42694a1..15f2fc8380 100644 --- a/runtime/src/weights/block_weights.rs +++ b/runtime/src/weights/block_weights.rs @@ -36,7 +36,7 @@ use frame_support::{ parameter_types, - weights::{constants::WEIGHT_PER_NANOS, Weight}, + weights::{constants::WEIGHT_REF_TIME_PER_NANOS, Weight}, }; parameter_types! { @@ -53,7 +53,7 @@ parameter_types! { /// 99th: 6_020_750 /// 95th: 5_985_310 /// 75th: 5_923_109 - pub const BlockExecutionWeight: Weight = 5_919_668 * WEIGHT_PER_NANOS; + pub const BlockExecutionWeight: Weight = Weight::from_ref_time(5_919_668 * WEIGHT_REF_TIME_PER_NANOS); } #[cfg(test)] @@ -69,12 +69,12 @@ mod test_weights { // At least 100 µs. assert!( - w >= 100 * constants::WEIGHT_PER_MICROS, + w.ref_time() >= 100 * constants::WEIGHT_REF_TIME_PER_MICROS, "Weight should be at least 100 µs." ); // At most 50 ms. assert!( - w <= 50 * constants::WEIGHT_PER_MILLIS, + w.ref_time() <= 50 * constants::WEIGHT_REF_TIME_PER_MILLIS, "Weight should be at most 50 ms." ); } diff --git a/runtime/src/weights/extrinsic_weights.rs b/runtime/src/weights/extrinsic_weights.rs index a1364f7f6d..1e4d76659d 100644 --- a/runtime/src/weights/extrinsic_weights.rs +++ b/runtime/src/weights/extrinsic_weights.rs @@ -36,7 +36,7 @@ use frame_support::{ parameter_types, - weights::{constants::WEIGHT_PER_NANOS, Weight}, + weights::{constants::WEIGHT_REF_TIME_PER_NANOS, Weight}, }; parameter_types! { @@ -53,7 +53,7 @@ parameter_types! { /// 99th: 107_217 /// 95th: 107_081 /// 75th: 106_821 - pub const ExtrinsicBaseWeight: Weight = 106_628 * WEIGHT_PER_NANOS; + pub const ExtrinsicBaseWeight: Weight = Weight::from_ref_time(106_628 * WEIGHT_REF_TIME_PER_NANOS); } #[cfg(test)] @@ -69,12 +69,12 @@ mod test_weights { // At least 10 µs. assert!( - w >= 10 * constants::WEIGHT_PER_MICROS, + w.ref_time() >= 10 * constants::WEIGHT_REF_TIME_PER_MICROS, "Weight should be at least 10 µs." ); // At most 1 ms. assert!( - w <= constants::WEIGHT_PER_MILLIS, + w.ref_time() <= constants::WEIGHT_REF_TIME_PER_MILLIS, "Weight should be at most 1 ms." ); } diff --git a/runtime/src/weights/mod.rs b/runtime/src/weights/mod.rs index 98637e76d5..ebb489be70 100644 --- a/runtime/src/weights/mod.rs +++ b/runtime/src/weights/mod.rs @@ -21,18 +21,18 @@ // Substrate FRAME pallets pub mod block_weights; pub mod extrinsic_weights; -pub mod frame_system; -pub mod pallet_babe; -pub mod pallet_bags_list; +// pub mod frame_system; +// pub mod pallet_babe; +// pub mod pallet_bags_list; pub mod pallet_balances; -pub mod pallet_election_provider_multi_phase; -pub mod pallet_election_provider_support_benchmarking; -pub mod pallet_grandpa; -pub mod pallet_im_online; -pub mod pallet_multisig; -pub mod pallet_session; -pub mod pallet_staking; -pub mod pallet_timestamp; -pub mod pallet_vesting; +// pub mod pallet_election_provider_multi_phase; +// pub mod pallet_election_provider_support_benchmarking; +// pub mod pallet_grandpa; +// pub mod pallet_im_online; +// pub mod pallet_multisig; +// pub mod pallet_session; +// pub mod pallet_staking; +// pub mod pallet_timestamp; +// pub mod pallet_vesting; pub mod rocksdb_weights; -pub mod substrate_utility; +// pub mod substrate_utility; diff --git a/runtime/src/weights/pallet_balances.rs b/runtime/src/weights/pallet_balances.rs index 2b6cf28cd4..21e08f7f29 100644 --- a/runtime/src/weights/pallet_balances.rs +++ b/runtime/src/weights/pallet_balances.rs @@ -50,44 +50,44 @@ pub struct SubstrateWeight(PhantomData); impl WeightInfo for SubstrateWeight { // Storage: System Account (r:1 w:1) fn transfer() -> Weight { - (126_170_000 as Weight) - .saturating_add(T::DbWeight::get().reads(1 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + Weight::from_ref_time(126_170_000) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: System Account (r:1 w:1) fn transfer_keep_alive() -> Weight { - (95_270_000 as Weight) - .saturating_add(T::DbWeight::get().reads(1 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + Weight::from_ref_time(95_270_000) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: System Account (r:1 w:1) fn set_balance_creating() -> Weight { - (55_370_000 as Weight) - .saturating_add(T::DbWeight::get().reads(1 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + Weight::from_ref_time(55_370_000) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: System Account (r:1 w:1) fn set_balance_killing() -> Weight { - (65_300_000 as Weight) - .saturating_add(T::DbWeight::get().reads(1 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + Weight::from_ref_time(65_300_000) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: System Account (r:2 w:2) fn force_transfer() -> Weight { - (125_600_000 as Weight) - .saturating_add(T::DbWeight::get().reads(2 as Weight)) - .saturating_add(T::DbWeight::get().writes(2 as Weight)) + Weight::from_ref_time(125_600_000) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) } // Storage: System Account (r:1 w:1) fn transfer_all() -> Weight { - (117_730_000 as Weight) - .saturating_add(T::DbWeight::get().reads(1 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + Weight::from_ref_time(117_730_000) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: System Account (r:1 w:1) fn force_unreserve() -> Weight { - (50_930_000 as Weight) - .saturating_add(T::DbWeight::get().reads(1 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + Weight::from_ref_time(50_930_000) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } } diff --git a/runtime/src/weights/rocksdb_weights.rs b/runtime/src/weights/rocksdb_weights.rs index 8f277f4127..5b4672a517 100644 --- a/runtime/src/weights/rocksdb_weights.rs +++ b/runtime/src/weights/rocksdb_weights.rs @@ -60,7 +60,7 @@ pub mod constants { /// 99th: 8_780 /// 95th: 7_570 /// 75th: 6_340 - read: 8_997 * constants::WEIGHT_PER_NANOS, + read: 8_997 * constants::WEIGHT_REF_TIME_PER_NANOS, /// Time to write one storage item. /// Calculated by multiplying the *Average* of all values with `1.0` and adding `0`. @@ -75,7 +75,7 @@ pub mod constants { /// 99th: 46_410 /// 95th: 36_880 /// 75th: 29_580 - write: 54_966 * constants::WEIGHT_PER_NANOS, + write: 54_966 * constants::WEIGHT_REF_TIME_PER_NANOS, }; } @@ -91,20 +91,20 @@ pub mod constants { fn bound() { // At least 1 µs. assert!( - W::get().reads(1) >= constants::WEIGHT_PER_MICROS, + W::get().reads(1).ref_time() >= constants::WEIGHT_REF_TIME_PER_MICROS, "Read weight should be at least 1 µs." ); assert!( - W::get().writes(1) >= constants::WEIGHT_PER_MICROS, + W::get().writes(1).ref_time() >= constants::WEIGHT_REF_TIME_PER_MICROS, "Write weight should be at least 1 µs." ); // At most 1 ms. assert!( - W::get().reads(1) <= constants::WEIGHT_PER_MILLIS, + W::get().reads(1).ref_time() <= constants::WEIGHT_REF_TIME_PER_MILLIS, "Read weight should be at most 1 ms." ); assert!( - W::get().writes(1) <= constants::WEIGHT_PER_MILLIS, + W::get().writes(1).ref_time() <= constants::WEIGHT_REF_TIME_PER_MILLIS, "Write weight should be at most 1 ms." ); } From 9b069a854f9d7e64c795ac5659a4f6b0179644d1 Mon Sep 17 00:00:00 2001 From: Mokhtar Naamani Date: Fri, 10 Mar 2023 10:49:52 +0400 Subject: [PATCH 12/87] v0.9.39 - fix runtime tests build runtime weights need to be adjusted for fee/weight failing tests --- runtime/src/constants.rs | 2 +- runtime/src/tests/locks.rs | 12 +++++------- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/runtime/src/constants.rs b/runtime/src/constants.rs index 76c4eab273..3df0225a3f 100644 --- a/runtime/src/constants.rs +++ b/runtime/src/constants.rs @@ -237,7 +237,7 @@ mod tests { let full_block_cost: Balance = ::LengthToFee::weight_to_fee( - &max_normal_dispatch_block_length, + &Weight::from_ref_time(max_normal_dispatch_block_length), ); let day_of_full_blocks_cost = full_block_cost.saturating_mul(Balance::from(super::DAYS)); diff --git a/runtime/src/tests/locks.rs b/runtime/src/tests/locks.rs index 7f22e35663..005584761f 100644 --- a/runtime/src/tests/locks.rs +++ b/runtime/src/tests/locks.rs @@ -103,10 +103,9 @@ fn bonding_with_non_staked_account_works() { // bonding succeeds assert_eq!( ::bond( - validator_1.clone(), - validator_1.clone(), + &validator_1.clone().into(), stake_amount, - validator_1.clone() + &validator_1.clone().into() ), Ok(()) ); @@ -114,7 +113,7 @@ fn bonding_with_non_staked_account_works() { // and active stake will be stake_amount. assert_eq!( ::active_stake(&validator_1), - Some(stake_amount) + Ok(stake_amount) ); // Validate call succeeds @@ -156,10 +155,9 @@ fn bonding_with_staked_account_fails() { // bonding should fail assert_err!( ::bond( - validator_1.clone(), - validator_1.clone(), + &validator_1.clone().into(), bond_amount, - validator_1.clone() + &validator_1.clone().into() ), pallet_staking::Error::::BondingRestricted ); From 1033c1c9262a82a33832a7a6d18b5cee4ffcfd0d Mon Sep 17 00:00:00 2001 From: Mokhtar Naamani Date: Fri, 10 Mar 2023 15:49:29 +0400 Subject: [PATCH 13/87] v0.9.39 - fix cli dependency on clap --- Cargo.lock | 30 ++++++------------------------ Cargo.toml | 2 +- bin/node/Cargo.toml | 14 +++++++------- bin/node/build.rs | 2 +- bin/node/src/cli.rs | 18 +++++++++--------- bin/node/src/command.rs | 8 ++++---- runtime/Cargo.toml | 2 +- runtime/src/lib.rs | 2 +- 8 files changed, 30 insertions(+), 48 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index d474262131..f1ba73b8c5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1078,11 +1078,11 @@ dependencies = [ [[package]] name = "clap_complete" -version = "3.2.5" +version = "4.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f7a2e0a962c45ce25afce14220bc24f9dade0a1787f185cecf96bfba7847cd8" +checksum = "501ff0a401473ea1d4c3b125ff95506b62c5bc5768d818634195fbb7c4ad5ff4" dependencies = [ - "clap 3.2.23", + "clap 4.1.8", ] [[package]] @@ -3288,11 +3288,11 @@ dependencies = [ [[package]] name = "joystream-node" -version = "8.3.0" +version = "8.4.0" dependencies = [ "assert_cmd", "async-std", - "clap 3.2.23", + "clap 4.1.8", "clap_complete", "criterion", "frame-benchmarking", @@ -3307,7 +3307,6 @@ dependencies = [ "jsonrpsee 0.13.1", "log", "nix 0.23.2", - "node-inspect", "overrides", "pallet-balances", "pallet-im-online", @@ -3377,7 +3376,7 @@ dependencies = [ [[package]] name = "joystream-node-runtime" -version = "12.2001.0" +version = "12.3000.0" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -4865,23 +4864,6 @@ dependencies = [ "static_assertions", ] -[[package]] -name = "node-inspect" -version = "0.9.0-dev" -dependencies = [ - "clap 3.2.23", - "overrides", - "parity-scale-codec", - "sc-cli", - "sc-client-api", - "sc-executor", - "sc-service", - "sp-blockchain", - "sp-core", - "sp-runtime", - "thiserror", -] - [[package]] name = "nohash-hasher" version = "0.2.0" diff --git a/Cargo.toml b/Cargo.toml index ddd2be46eb..ae839e759f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -18,7 +18,7 @@ members = [ "runtime-modules/utility", "runtime-modules/project-token", "bin/node", - "bin/inspect", + # "bin/inspect", "bin/utils/chain-spec-builder/", "bin/utils/session-keys/", "bin/utils/call-sizes/", diff --git a/bin/node/Cargo.toml b/bin/node/Cargo.toml index be146b9925..090e356830 100644 --- a/bin/node/Cargo.toml +++ b/bin/node/Cargo.toml @@ -3,7 +3,7 @@ authors = ['Joystream contributors'] build = 'build.rs' edition = '2018' name = 'joystream-node' -version = '8.3.0' +version = '8.4.0' default-run = "joystream-node" [[bin]] @@ -15,7 +15,7 @@ crate-type = ["cdylib", "rlib"] [dependencies] # third-party dependencies -clap = { version = "3.1.18", features = ["derive"], optional = true } +clap = { version = "4.0.9", features = ["derive"], optional = true } codec = { package = "parity-scale-codec", version = "3.1.5" } serde = { version = "1.0.136", features = ["derive"] } jsonrpsee = { version = "0.13.0", features = ["server"] } @@ -87,7 +87,7 @@ sc-cli = { package = 'sc-cli', optional = true, git = 'https://github.com/joystr frame-benchmarking-cli = { package = 'frame-benchmarking-cli', optional = true, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} frame-benchmarking = { package = 'frame-benchmarking', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} serde_json = "1.0.79" -node-inspect = { path = "../inspect", optional = true } +# node-inspect = { path = "../inspect", optional = true } [target.'cfg(any(target_arch="x86_64", target_arch="aarch64"))'.dependencies] sc-cli = { package = 'sc-cli', optional = true, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} @@ -120,14 +120,14 @@ remote-externalities = { package = 'frame-remote-externalities', git = 'https:// pallet-timestamp = { package = 'pallet-timestamp', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} [build-dependencies] -clap = { version = "3.1.18", optional = true } -clap_complete = { version = "3.0", optional = true } +clap = { version = "4.0.9", optional = true } +clap_complete = { version = "4.0.2", optional = true } frame-benchmarking-cli = { package = 'frame-benchmarking-cli', optional = true, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} substrate-build-script-utils = { package = 'substrate-build-script-utils', optional = true, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} substrate-frame-cli = { package = 'substrate-frame-cli', optional = true, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} sc-cli = { package = 'sc-cli', optional = true, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} pallet-balances = { package = 'pallet-balances', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} -node-inspect = { path = "../inspect", optional = true } +# node-inspect = { path = "../inspect", optional = true } [features] default = ["cli"] @@ -139,7 +139,7 @@ cli = [ "clap", "clap_complete", "substrate-build-script-utils", - "node-inspect", + # "node-inspect", ] runtime-benchmarks = ["node-runtime/runtime-benchmarks", "frame-benchmarking-cli"] diff --git a/bin/node/build.rs b/bin/node/build.rs index 13cf9d12e2..b7ed033162 100644 --- a/bin/node/build.rs +++ b/bin/node/build.rs @@ -25,7 +25,7 @@ fn main() { mod cli { include!("src/cli.rs"); - use clap::{ArgEnum, CommandFactory}; + use clap::{CommandFactory, ValueEnum}; use clap_complete::{generate_to, Shell}; use std::{env, fs, path::Path}; use substrate_build_script_utils::{generate_cargo_keys, rerun_if_git_head_changed}; diff --git a/bin/node/src/cli.rs b/bin/node/src/cli.rs index 90df63fd68..96ccc4c5f7 100644 --- a/bin/node/src/cli.rs +++ b/bin/node/src/cli.rs @@ -20,7 +20,7 @@ #[derive(Debug, clap::Parser)] pub struct Cli { /// Possible subcommand with parameters. - #[clap(subcommand)] + #[command(subcommand)] pub subcommand: Option, #[allow(missing_docs)] @@ -41,19 +41,19 @@ pub struct Cli { /// Possible subcommands of the main binary. #[derive(Debug, clap::Subcommand)] pub enum Subcommand { - /// The custom inspect subcommmand for decoding blocks and extrinsics. - #[clap( - name = "inspect", - about = "Decode given block or extrinsic using current native runtime." - )] - Inspect(node_inspect::cli::InspectCmd), + // /// The custom inspect subcommmand for decoding blocks and extrinsics. + // #[clap( + // name = "inspect", + // about = "Decode given block or extrinsic using current native runtime." + // )] + // Inspect(node_inspect::cli::InspectCmd), /// Sub-commands concerned with benchmarking. /// The pallet benchmarking moved to the `pallet` sub-command. - #[clap(subcommand)] + #[command(subcommand)] Benchmark(frame_benchmarking_cli::BenchmarkCmd), /// Key management cli utilities - #[clap(subcommand)] + #[command(subcommand)] Key(sc_cli::KeySubcommand), /// Verify a signature for a message, provided on STDIN, with a given (public or secret) key. diff --git a/bin/node/src/command.rs b/bin/node/src/command.rs index 3660fb2243..ad4caca2f1 100644 --- a/bin/node/src/command.rs +++ b/bin/node/src/command.rs @@ -99,11 +99,11 @@ pub fn run() -> Result<()> { .map_err(sc_cli::Error::Service) }) } - Some(Subcommand::Inspect(cmd)) => { - let runner = cli.create_runner(cmd)?; + // Some(Subcommand::Inspect(cmd)) => { + // let runner = cli.create_runner(cmd)?; - runner.sync_run(|config| cmd.run::(config)) - } + // runner.sync_run(|config| cmd.run::(config)) + // } Some(Subcommand::Benchmark(cmd)) => { let runner = cli.create_runner(cmd)?; diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index 33005210ec..c071fc6971 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -4,7 +4,7 @@ edition = '2018' name = 'joystream-node-runtime' # Follow convention: https://github.com/Joystream/substrate-runtime-joystream/issues/1 # {Authoring}.{Spec}.{Impl} of the RuntimeVersion -version = '12.2001.0' +version = '12.3000.0' [dependencies] # Third-party dependencies diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs index 7432e028e9..82c14d9b45 100644 --- a/runtime/src/lib.rs +++ b/runtime/src/lib.rs @@ -145,7 +145,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("joystream-node"), impl_name: create_runtime_str!("joystream-node"), authoring_version: 12, - spec_version: 2001, + spec_version: 3000, impl_version: 0, apis: crate::runtime_api::EXPORTED_RUNTIME_API_VERSIONS, transaction_version: 1, From a2475af8487446683b075d8fe3850e34bfc0fb82 Mon Sep 17 00:00:00 2001 From: Mokhtar Naamani Date: Mon, 13 Mar 2023 10:45:23 +0400 Subject: [PATCH 14/87] v0.9.39 - tweak Cargo.toml build settings --- Cargo.lock | 360 +++++++++++++++++++++++++---------------------------- Cargo.toml | 8 ++ 2 files changed, 176 insertions(+), 192 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index f1ba73b8c5..9fee466c3e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -95,7 +95,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "433cfd6710c9986c576a25ca913c39d66a6474107b406f34f91d4a8923395241" dependencies = [ "cfg-if", - "cipher 0.4.3", + "cipher 0.4.4", "cpufeatures", ] @@ -121,7 +121,7 @@ checksum = "82e1366e0c69c9f927b1fa5ce2c7bf9eafc8f9268c0b9800729e8b267612447c" dependencies = [ "aead 0.5.1", "aes 0.8.2", - "cipher 0.4.3", + "cipher 0.4.4", "ctr 0.9.2", "ghash 0.5.0", "subtle", @@ -260,9 +260,9 @@ dependencies = [ [[package]] name = "asn1-rs" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf6690c370453db30743b373a60ba498fc0d6d83b11f4abfd87a84a075db5dd4" +checksum = "7f6fd5ddaf0351dff5b8da21b2fb4ff8e08ddd02857f0bf69c47639106c0fff0" dependencies = [ "asn1-rs-derive 0.4.0", "asn1-rs-impl", @@ -401,12 +401,11 @@ dependencies = [ [[package]] name = "async-lock" -version = "2.6.0" +version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8101efe8695a6c17e02911402145357e718ac92d3ff88ae8419e84b1707b685" +checksum = "fa24f727524730b077666307f2734b4a1a1c57acb79193127dcc8914d5242dd7" dependencies = [ "event-listener", - "futures-lite", ] [[package]] @@ -444,9 +443,9 @@ checksum = "7a40729d2133846d9ed0ea60a8b9541bccddab49cd30f0715a1da672fe9a2524" [[package]] name = "async-trait" -version = "0.1.64" +version = "0.1.66" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cd7fce9ba8c3c042128ce72d8b2ddbf3a05747efb67ea0313c635e10bda47a2" +checksum = "b84f9ebcc6c1f5b8cb160f6990096a5c127f423fcb6e1ccc46c370cbdfb75dfc" dependencies = [ "proc-macro2", "quote", @@ -672,9 +671,9 @@ dependencies = [ [[package]] name = "block-buffer" -version = "0.10.3" +version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69cce20737498f97b993470a6e536b8523f0af7892a4f928cceb1ac5e52ebe7e" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" dependencies = [ "generic-array 0.14.6", ] @@ -829,9 +828,9 @@ dependencies = [ [[package]] name = "camino" -version = "1.1.3" +version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6031a462f977dd38968b6f23378356512feeace69cef817e1a4475108093cec3" +checksum = "c530edf18f37068ac2d977409ed5cd50d53d73bc653c7647b48eb78976ac9ae2" dependencies = [ "serde", ] @@ -1005,9 +1004,9 @@ dependencies = [ [[package]] name = "cipher" -version = "0.4.3" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1873270f8f7942c191139cb8a40fd228da6c3fd2fc376d7e92d47aa14aeb59e" +checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" dependencies = [ "crypto-common", "inout", @@ -1216,18 +1215,18 @@ dependencies = [ [[package]] name = "cranelift-bforest" -version = "0.93.0" +version = "0.93.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91b18cf92869a6ae85cde3af4bc4beb6154efa8adef03b18db2ad413d5bce3a2" +checksum = "a7379abaacee0f14abf3204a7606118f0465785252169d186337bcb75030815a" dependencies = [ "cranelift-entity", ] [[package]] name = "cranelift-codegen" -version = "0.93.0" +version = "0.93.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "567d9f6e919bac076f39b902a072686eaf9e6d015baa34d10a61b85105b7af59" +checksum = "9489fa336927df749631f1008007ced2871068544f40a202ce6d93fbf2366a7b" dependencies = [ "arrayvec 0.7.2", "bumpalo", @@ -1246,33 +1245,33 @@ dependencies = [ [[package]] name = "cranelift-codegen-meta" -version = "0.93.0" +version = "0.93.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e72b2d5ec8917b2971fe83850187373d0a186db4748a7c23a5f48691b8d92bb" +checksum = "05bbb67da91ec721ed57cef2f7c5ef7728e1cd9bde9ffd3ef8601022e73e3239" dependencies = [ "cranelift-codegen-shared", ] [[package]] name = "cranelift-codegen-shared" -version = "0.93.0" +version = "0.93.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3461c0e0c2ebbeb92533aacb27e219289f60dc84134ef34fbf2d77c9eddf07ef" +checksum = "418ecb2f36032f6665dc1a5e2060a143dbab41d83b784882e97710e890a7a16d" [[package]] name = "cranelift-entity" -version = "0.93.0" +version = "0.93.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af684f7f7b01427b1942c7102673322a51b9d6f261e9663dc5e5595786775531" +checksum = "7cf583f7b093f291005f9fb1323e2c37f6ee4c7909e39ce016b2e8360d461705" dependencies = [ "serde", ] [[package]] name = "cranelift-frontend" -version = "0.93.0" +version = "0.93.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d361ed0373cf5f086b49c499aa72227b646a64f899f32e34312f97c0fadff75" +checksum = "0b66bf9e916f57fbbd0f7703ec6286f4624866bf45000111627c70d272c8dda1" dependencies = [ "cranelift-codegen", "log", @@ -1282,15 +1281,15 @@ dependencies = [ [[package]] name = "cranelift-isle" -version = "0.93.0" +version = "0.93.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cef4f8f3984d772c199a48896d2fb766f96301bf71b371e03a2b99f4f3b7b931" +checksum = "649782a39ce99798dd6b4029e2bb318a2fbeaade1b4fa25330763c10c65bc358" [[package]] name = "cranelift-native" -version = "0.93.0" +version = "0.93.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f98e4e99a353703475d5acb402b9c13482d41d8a4008b352559bd560afb90363" +checksum = "937e021e089c51f9749d09e7ad1c4f255c2f8686cb8c3df63a34b3ec9921bc41" dependencies = [ "cranelift-codegen", "libc", @@ -1299,9 +1298,9 @@ dependencies = [ [[package]] name = "cranelift-wasm" -version = "0.93.0" +version = "0.93.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1e3f4f0779a1b0f286a6ef19835d8665f88326e656a6d7d84fa9a39fa38ca32" +checksum = "d850cf6775477747c9dfda9ae23355dd70512ffebc70cf82b85a5b111ae668b5" dependencies = [ "cranelift-codegen", "cranelift-entity", @@ -1469,9 +1468,9 @@ dependencies = [ [[package]] name = "csv" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af91f40b7355f82b0a891f50e70399475945bb0b0da4f1700ce60761c9d3e359" +checksum = "0b015497079b9a9d69c02ad25de6c0a6edef051ea6360a327d0bd05802ef64ad" dependencies = [ "csv-core", "itoa", @@ -1513,7 +1512,7 @@ version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" dependencies = [ - "cipher 0.4.3", + "cipher 0.4.4", ] [[package]] @@ -1558,9 +1557,9 @@ dependencies = [ [[package]] name = "cxx" -version = "1.0.91" +version = "1.0.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86d3488e7665a7a483b57e25bdd90d0aeb2bc7608c8d0346acf2ad3f1caf1d62" +checksum = "9a140f260e6f3f79013b8bfc65e7ce630c9ab4388c6a89c71e07226f49487b72" dependencies = [ "cc", "cxxbridge-flags", @@ -1570,9 +1569,9 @@ dependencies = [ [[package]] name = "cxx-build" -version = "1.0.91" +version = "1.0.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48fcaf066a053a41a81dfb14d57d99738b767febb8b735c3016e469fac5da690" +checksum = "da6383f459341ea689374bf0a42979739dc421874f112ff26f829b8040b8e613" dependencies = [ "cc", "codespan-reporting", @@ -1585,15 +1584,15 @@ dependencies = [ [[package]] name = "cxxbridge-flags" -version = "1.0.91" +version = "1.0.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2ef98b8b717a829ca5603af80e1f9e2e48013ab227b68ef37872ef84ee479bf" +checksum = "90201c1a650e95ccff1c8c0bb5a343213bdd317c6e600a93075bca2eff54ec97" [[package]] name = "cxxbridge-macro" -version = "1.0.91" +version = "1.0.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "086c685979a698443656e5cf7856c95c642295a38599f12fb1ff76fb28d19892" +checksum = "0b75aed41bb2e6367cae39e6326ef817a851db13c13e4f3263714ca3cfb8de56" dependencies = [ "proc-macro2", "quote", @@ -1602,9 +1601,9 @@ dependencies = [ [[package]] name = "darling" -version = "0.14.3" +version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0808e1bd8671fb44a113a14e13497557533369847788fa2ae912b6ebfce9fa8" +checksum = "7b750cb3417fd1b327431a470f388520309479ab0bf5e323505daf0290cd3850" dependencies = [ "darling_core", "darling_macro", @@ -1612,9 +1611,9 @@ dependencies = [ [[package]] name = "darling_core" -version = "0.14.3" +version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "001d80444f28e193f30c2f293455da62dcf9a6b29918a4253152ae2b1de592cb" +checksum = "109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0" dependencies = [ "fnv", "ident_case", @@ -1626,9 +1625,9 @@ dependencies = [ [[package]] name = "darling_macro" -version = "0.14.3" +version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b36230598a2d5de7ec1c6f51f72d8a99a9208daff41de2084d06e3fd3ea56685" +checksum = "a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e" dependencies = [ "darling_core", "quote", @@ -1688,11 +1687,11 @@ dependencies = [ [[package]] name = "der-parser" -version = "8.1.0" +version = "8.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42d4bc9b0db0a0df9ae64634ac5bdefb7afcb534e182275ca0beadbe486701c1" +checksum = "dbd676fbbab537128ef0278adb5576cf363cff6aa22a7b24effe97347cfab61e" dependencies = [ - "asn1-rs 0.5.1", + "asn1-rs 0.5.2", "displaydoc", "nom", "num-bigint", @@ -1803,7 +1802,7 @@ version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f" dependencies = [ - "block-buffer 0.10.3", + "block-buffer 0.10.4", "crypto-common", "subtle", ] @@ -1880,9 +1879,9 @@ checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650" [[package]] name = "dtoa" -version = "1.0.5" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c00704156a7de8df8da0911424e30c2049957b0a714542a44e05fe693dd85313" +checksum = "65d09067bfacaa79114679b279d7f5885b53295b1e2cfb4e79c8e4bd3d633169" [[package]] name = "dyn-clonable" @@ -2130,9 +2129,9 @@ dependencies = [ [[package]] name = "fiat-crypto" -version = "0.1.17" +version = "0.1.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a214f5bb88731d436478f3ae1f8a277b62124089ba9fb67f4f93fb100ef73c90" +checksum = "93ace6ec7cc19c8ed33a32eaa9ea692d7faea05006b5356b9e2b668ec4bc3955" [[package]] name = "file-per-thread-logger" @@ -2250,7 +2249,7 @@ dependencies = [ "linregress", "log", "parity-scale-codec", - "paste 1.0.11", + "paste 1.0.12", "scale-info", "serde", "sp-api", @@ -2396,7 +2395,7 @@ dependencies = [ "log", "once_cell", "parity-scale-codec", - "paste 1.0.11", + "paste 1.0.12", "scale-info", "serde", "smallvec", @@ -3218,9 +3217,9 @@ dependencies = [ [[package]] name = "io-lifetimes" -version = "1.0.5" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1abeb7a0dd0f8181267ff8adc397075586500b81b28a73e8a0208b00fc170fb3" +checksum = "cfa919a82ea574332e2de6e74b4c36e74d41982b335080fa59d4ef31be20fdf3" dependencies = [ "libc", "windows-sys 0.45.0", @@ -3273,9 +3272,9 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.5" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fad582f4b9e86b6caa621cabeb0963332d92eea04729ab12892c2533951e6440" +checksum = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6" [[package]] name = "jobserver" @@ -3753,9 +3752,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.139" +version = "0.2.140" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "201de327520df007757c1f0adce6e827fe8562fbc28bfd9c15571c66ca1f5f79" +checksum = "99227334921fae1a979cf0bfdfcc6b3e5ce376ef57e16fb6fb3ea2ed6095f80c" [[package]] name = "libloading" @@ -3781,9 +3780,9 @@ checksum = "348108ab3fba42ec82ff6e9564fc4ca0247bdccdc68dd8af9764bbc79c3c8ffb" [[package]] name = "libp2p" -version = "0.50.0" +version = "0.50.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e0a0d2f693675f49ded13c5d510c48b78069e23cbd9108d7ccd59f6dc568819" +checksum = "9c7b0104790be871edcf97db9bd2356604984e623a08d825c3f27852290266b8" dependencies = [ "bytes", "futures", @@ -3797,7 +3796,7 @@ dependencies = [ "libp2p-mdns", "libp2p-metrics", "libp2p-mplex", - "libp2p-noise 0.41.0", + "libp2p-noise", "libp2p-ping", "libp2p-quic", "libp2p-request-response", @@ -4019,29 +4018,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "libp2p-noise" -version = "0.42.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1216f9ec823ac7a2289b954674c54cbce81c9e45920b4fcf173018ede4295246" -dependencies = [ - "bytes", - "curve25519-dalek 3.2.0", - "futures", - "libp2p-core 0.39.0", - "log", - "once_cell", - "prost", - "prost-build", - "rand 0.8.5", - "sha2 0.10.6", - "snow", - "static_assertions", - "thiserror", - "x25519-dalek 1.1.1", - "zeroize", -] - [[package]] name = "libp2p-ping" version = "0.41.0" @@ -4060,15 +4036,15 @@ dependencies = [ [[package]] name = "libp2p-quic" -version = "0.7.0-alpha.2" +version = "0.7.0-alpha" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5971f629ff7519f4d4889a7c981f0dc09c6ad493423cd8a13ee442de241bc8c8" +checksum = "01e7c867e95c8130667b24409d236d37598270e6da69b3baf54213ba31ffca59" dependencies = [ "bytes", "futures", "futures-timer", "if-watch", - "libp2p-core 0.39.0", + "libp2p-core 0.38.0", "libp2p-tls", "log", "parking_lot 0.12.1", @@ -4180,9 +4156,9 @@ dependencies = [ [[package]] name = "libp2p-webrtc" -version = "0.4.0-alpha.2" +version = "0.4.0-alpha" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db4401ec550d36f413310ba5d4bf564bb21f89fb1601cadb32b2300f8bc1eb5b" +checksum = "cdb6cd86dd68cba72308ea05de1cebf3ba0ae6e187c40548167955d4e3970f6a" dependencies = [ "async-trait", "asynchronous-codec", @@ -4191,10 +4167,10 @@ dependencies = [ "futures-timer", "hex", "if-watch", - "libp2p-core 0.39.0", - "libp2p-noise 0.42.0", + "libp2p-core 0.38.0", + "libp2p-noise", "log", - "multihash 0.17.0", + "multihash 0.16.3", "prost", "prost-build", "prost-codec", @@ -4725,9 +4701,9 @@ dependencies = [ [[package]] name = "nalgebra" -version = "0.32.1" +version = "0.32.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6515c882ebfddccaa73ead7320ca28036c4bc84c9bcca3cc0cbba8efe89223a" +checksum = "d68d47bba83f9e2006d117a9a33af1524e655516b8919caac694427a6fb1e511" dependencies = [ "approx", "matrixmultiply", @@ -4793,7 +4769,7 @@ checksum = "0ede8a08c71ad5a95cdd0e4e52facd37190977039a4704eb82a283f713747d34" dependencies = [ "anyhow", "byteorder", - "paste 1.0.11", + "paste 1.0.12", "thiserror", ] @@ -4814,9 +4790,9 @@ dependencies = [ [[package]] name = "netlink-sys" -version = "0.8.4" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "260e21fbb6f3d253a14df90eb0000a6066780a15dd901a7519ce02d77a94985b" +checksum = "6471bf08e7ac0135876a9581bf3217ef0333c191c128d34878079f42ee150411" dependencies = [ "bytes", "futures", @@ -4993,7 +4969,7 @@ version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9bedf36ffb6ba96c2eb7144ef6270557b52e54b20c0a8e1eb2ff99a6c6959bff" dependencies = [ - "asn1-rs 0.5.1", + "asn1-rs 0.5.2", ] [[package]] @@ -5934,9 +5910,9 @@ dependencies = [ [[package]] name = "parity-db" -version = "0.4.3" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd684a725651d9588ef21f140a328b6b4f64e646b2e931f3e6f14f75eedf9980" +checksum = "df89dd8311063c54ae4e03d9aeb597b04212a57e82c339344130a9cad9b3e2d9" dependencies = [ "blake2", "crc32fast", @@ -5948,6 +5924,7 @@ dependencies = [ "memmap2", "parking_lot 0.12.1", "rand 0.8.5", + "siphasher", "snap", ] @@ -6056,9 +6033,9 @@ dependencies = [ [[package]] name = "paste" -version = "1.0.11" +version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d01a5bd0424d00070b0098dd17ebca6f961a959dead1dbcbbbc1d1cd8d3deeba" +checksum = "9f746c4065a8fa3fe23974dd82f15431cc8d40779821001404d10d2e79ca7d79" [[package]] name = "paste-impl" @@ -6119,9 +6096,9 @@ checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" [[package]] name = "pest" -version = "2.5.5" +version = "2.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "028accff104c4e513bad663bbcd2ad7cfd5304144404c31ed0a77ac103d00660" +checksum = "8cbd939b234e95d72bc393d51788aec68aeeb5d51e748ca08ff3aad58cb722f7" dependencies = [ "thiserror", "ucd-trie", @@ -6129,9 +6106,9 @@ dependencies = [ [[package]] name = "pest_derive" -version = "2.5.5" +version = "2.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ac3922aac69a40733080f53c1ce7f91dcf57e1a5f6c52f421fadec7fbdc4b69" +checksum = "a81186863f3d0a27340815be8f2078dd8050b14cd71913db9fbda795e5f707d7" dependencies = [ "pest", "pest_generator", @@ -6139,9 +6116,9 @@ dependencies = [ [[package]] name = "pest_generator" -version = "2.5.5" +version = "2.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d06646e185566b5961b4058dd107e0a7f56e77c3f484549fb119867773c0f202" +checksum = "75a1ef20bf3193c15ac345acb32e26b3dc3223aff4d77ae4fc5359567683796b" dependencies = [ "pest", "pest_meta", @@ -6152,9 +6129,9 @@ dependencies = [ [[package]] name = "pest_meta" -version = "2.5.5" +version = "2.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6f60b2ba541577e2a0c307c8f39d1439108120eb7903adeb6497fa880c59616" +checksum = "5e3b284b1f13a20dc5ebc90aff59a51b8d7137c221131b52a7260c08cbc1cc80" dependencies = [ "once_cell", "pest", @@ -6267,16 +6244,18 @@ dependencies = [ [[package]] name = "polling" -version = "2.5.2" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22122d5ec4f9fe1b3916419b76be1e80bcb93f618d071d2edf841b137b2a2bd6" +checksum = "7e1f879b2998099c2d69ab9605d145d5b661195627eccc680002c4918a7fb6fa" dependencies = [ "autocfg", + "bitflags", "cfg-if", + "concurrent-queue", "libc", "log", - "wepoll-ffi", - "windows-sys 0.42.0", + "pin-project-lite 0.2.9", + "windows-sys 0.45.0", ] [[package]] @@ -6352,9 +6331,9 @@ dependencies = [ [[package]] name = "prettyplease" -version = "0.1.23" +version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e97e3215779627f01ee256d2fad52f3d95e8e1c11e9fc6fd08f7cd455d5d5c78" +checksum = "4ebcd279d20a4a0a2404a33056388e950504d891c855c7975b9a8fef75f3bf04" dependencies = [ "proc-macro2", "syn", @@ -6673,9 +6652,9 @@ checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3" [[package]] name = "rayon" -version = "1.6.1" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6db3a213adf02b3bcfd2d3846bb41cb22857d131789e01df434fb7e7bc0759b7" +checksum = "1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b" dependencies = [ "either", "rayon-core", @@ -6683,9 +6662,9 @@ dependencies = [ [[package]] name = "rayon-core" -version = "1.10.2" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "356a0625f1954f730c0201cdab48611198dc6ce21f4acff55089b5a78e6e835b" +checksum = "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d" dependencies = [ "crossbeam-channel", "crossbeam-deque", @@ -6740,18 +6719,18 @@ dependencies = [ [[package]] name = "ref-cast" -version = "1.0.14" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c78fb8c9293bcd48ef6fce7b4ca950ceaf21210de6e105a883ee280c0f7b9ed" +checksum = "a9af2cf09ef80e610097515e80095b7f76660a92743c4185aff5406cd5ce3dd5" dependencies = [ "ref-cast-impl", ] [[package]] name = "ref-cast-impl" -version = "1.0.14" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f9c0c92af03644e4806106281fe2e068ac5bc0ae74a707266d06ea27bccee5f" +checksum = "9c501201393982e275433bc55de7d6ae6f00e7699cd5572c5b57581cd69c881b" dependencies = [ "proc-macro2", "quote", @@ -6962,9 +6941,9 @@ dependencies = [ [[package]] name = "rustix" -version = "0.36.8" +version = "0.36.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f43abb88211988493c1abb44a70efa56ff0ce98f233b7b276146f1f3f7ba9644" +checksum = "fd5c6ff11fecd55b40746d1995a02f2eb375bf8c00d192d521ee09f42bef37bc" dependencies = [ "bitflags", "errno", @@ -7022,9 +7001,9 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.11" +version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5583e89e108996506031660fe09baa5011b9dd0341b89029313006d1fb508d70" +checksum = "4f3208ce4d8448b3f3e7d168a73f5e0c43a61e32930de3bceeccedb388b6bf06" [[package]] name = "rw-stream-sink" @@ -7039,9 +7018,9 @@ dependencies = [ [[package]] name = "ryu" -version = "1.0.12" +version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b4b9743ed687d4b4bcedf9ff5eaa7398495ae14e61cba0a295704edbc7decde" +checksum = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041" [[package]] name = "safe-mix" @@ -8220,9 +8199,9 @@ checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" [[package]] name = "scratch" -version = "1.0.3" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddccb15bcce173023b3fedd9436f882a0739b8dfb45e4f6b6002bee5929f61b2" +checksum = "1792db035ce95be60c3f8853017b3999209281c24e2ba5bc8e59bf97a0c590c1" [[package]] name = "sct" @@ -8355,9 +8334,9 @@ checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" [[package]] name = "serde" -version = "1.0.152" +version = "1.0.154" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb7d1f0d3021d347a83e556fc4683dea2ea09d87bccdf88ff5c12545d89d5efb" +checksum = "8cdd151213925e7f1ab45a9bbfb129316bd00799784b174b7cc7bcd16961c49e" dependencies = [ "serde_derive", ] @@ -8374,9 +8353,9 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.152" +version = "1.0.154" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af487d118eecd09402d70a5d72551860e788df87b464af30e5ea6a38c75c541e" +checksum = "4fc80d722935453bcafdc2c9a73cd6fac4dc1938f0346035d84bf99fa9e33217" dependencies = [ "proc-macro2", "quote", @@ -8396,9 +8375,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.93" +version = "1.0.94" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cad406b69c91885b5107daf2c29572f6c8cdb3c66826821e286c533490c0bc76" +checksum = "1c533a59c9d8a93a09c6ab31f0fd5e5f4dd1b8fc9434804029839884765d04ea" dependencies = [ "itoa", "ryu", @@ -8536,10 +8515,16 @@ dependencies = [ "approx", "num-complex", "num-traits", - "paste 1.0.11", + "paste 1.0.12", "wide", ] +[[package]] +name = "siphasher" +version = "0.3.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de" + [[package]] name = "slab" version = "0.4.8" @@ -8586,9 +8571,9 @@ dependencies = [ [[package]] name = "socket2" -version = "0.4.7" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02e2d2db9033d13a1567121ddd7a095ee144db4e1ca1b1bda3419bc0da294ebd" +checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662" dependencies = [ "libc", "winapi", @@ -9079,7 +9064,7 @@ dependencies = [ "impl-trait-for-tuples", "log", "parity-scale-codec", - "paste 1.0.11", + "paste 1.0.12", "rand 0.8.5", "scale-info", "serde", @@ -9771,18 +9756,18 @@ checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d" [[package]] name = "thiserror" -version = "1.0.38" +version = "1.0.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a9cd18aa97d5c45c6603caea1da6628790b37f7a34b6ca89522331c5180fed0" +checksum = "a5ab016db510546d856297882807df8da66a16fb8c4101cb8b30054b0d5b2d9c" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.38" +version = "1.0.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fb327af4685e4d03fa8cbcf1716380da910eeb2bb8be417e7f9fd3fb164f36f" +checksum = "5420d42e90af0c38c3290abcca25b9b3bdf379fc9f55c528f53a269d9c9a267e" dependencies = [ "proc-macro2", "quote", @@ -10259,15 +10244,15 @@ dependencies = [ [[package]] name = "unicode-bidi" -version = "0.3.10" +version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d54675592c1dbefd78cbd98db9bacd89886e1ca50692a0692baefffdeb92dd58" +checksum = "524b68aca1d05e03fdf03fcdce2c6c94b6daf6d16861ddaa7e4f2b6638a9052c" [[package]] name = "unicode-ident" -version = "1.0.6" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84a22b9f218b40614adcb3f4ff08b703773ad44fa9423e4e0d346d5db86e4ebc" +checksum = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4" [[package]] name = "unicode-normalization" @@ -10638,9 +10623,9 @@ dependencies = [ [[package]] name = "wasmtime" -version = "6.0.0" +version = "6.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9010891d0b8e367c3be94ca35d7bc25c1de3240463bb1d61bcfc8c2233c4e0d0" +checksum = "f6e89f9819523447330ffd70367ef4a18d8c832e24e8150fe054d1d912841632" dependencies = [ "anyhow", "bincode", @@ -10650,7 +10635,7 @@ dependencies = [ "log", "object 0.29.0", "once_cell", - "paste 1.0.11", + "paste 1.0.12", "psm", "rayon", "serde", @@ -10666,18 +10651,18 @@ dependencies = [ [[package]] name = "wasmtime-asm-macros" -version = "6.0.0" +version = "6.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65805c663eaa8257b910666f6d4b056b5c7329750da754ba5df54f3af7dbf35c" +checksum = "9bd3a5e46c198032da934469f3a6e48649d1f9142438e4fd4617b68a35644b8a" dependencies = [ "cfg-if", ] [[package]] name = "wasmtime-cache" -version = "6.0.0" +version = "6.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2049ddfc1b10efc3c5591d0e84b9570ca50478f8818f3bfabb1a467918f53fb4" +checksum = "b389ae9b678b9c3851091a4804f4182d688d27aff7abc9aa37fa7be37d8ecffa" dependencies = [ "anyhow", "base64 0.13.1", @@ -10695,9 +10680,9 @@ dependencies = [ [[package]] name = "wasmtime-cranelift" -version = "6.0.0" +version = "6.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9065cad6a724fa838ec8497567e0b23acc26417bb2449f8d9d2021925c72f2" +checksum = "59b2c92a08c0db6efffd88fdc97d7aa9c7c63b03edb0971dbca745469f820e8c" dependencies = [ "anyhow", "cranelift-codegen", @@ -10716,9 +10701,9 @@ dependencies = [ [[package]] name = "wasmtime-environ" -version = "6.0.0" +version = "6.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f964bb0b91fa021b8d1b488c62cc77b346c1dae6e3ebd010050b57c1f2ca657" +checksum = "9a6db9fc52985ba06ca601f2ff0ff1f526c5d724c7ac267b47326304b0c97883" dependencies = [ "anyhow", "cranelift-entity", @@ -10735,9 +10720,9 @@ dependencies = [ [[package]] name = "wasmtime-jit" -version = "6.0.0" +version = "6.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7a1d06f5d109539e0168fc74fa65e3948ac8dac3bb8cdbd08b62b36a0ae27b8" +checksum = "b77e3a52cd84d0f7f18554afa8060cfe564ccac61e3b0802d3fd4084772fa5f6" dependencies = [ "addr2line 0.17.0", "anyhow", @@ -10759,9 +10744,9 @@ dependencies = [ [[package]] name = "wasmtime-jit-debug" -version = "6.0.0" +version = "6.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f76ef2e410329aaf8555ac6571d6fe07711be0646dcdf7ff3ab750a42ed2e583" +checksum = "d0245e8a9347017c7185a72e215218a802ff561545c242953c11ba00fccc930f" dependencies = [ "object 0.29.0", "once_cell", @@ -10770,9 +10755,9 @@ dependencies = [ [[package]] name = "wasmtime-jit-icache-coherence" -version = "6.0.0" +version = "6.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec1fd0f0dd79e7cc0f55b102e320d7c77ab76cd272008a8fd98e25b5777e2636" +checksum = "67d412e9340ab1c83867051d8d1d7c90aa8c9afc91da086088068e2734e25064" dependencies = [ "cfg-if", "libc", @@ -10781,9 +10766,9 @@ dependencies = [ [[package]] name = "wasmtime-runtime" -version = "6.0.0" +version = "6.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "271aef9b4ca2e953a866293683f2db33cda46f6933c5e431e68d8373723d4ab6" +checksum = "d594e791b5fdd4dbaf8cf7ae62f2e4ff85018ce90f483ca6f42947688e48827d" dependencies = [ "anyhow", "cc", @@ -10794,7 +10779,7 @@ dependencies = [ "mach", "memfd", "memoffset 0.6.5", - "paste 1.0.11", + "paste 1.0.12", "rand 0.8.5", "rustix", "wasmtime-asm-macros", @@ -10805,9 +10790,9 @@ dependencies = [ [[package]] name = "wasmtime-types" -version = "6.0.0" +version = "6.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b18144b0e45479a830ac9fcebfc71a16d90dc72d8ebd5679700eb3bfe974d7df" +checksum = "a6688d6f96d4dbc1f89fab626c56c1778936d122b5f4ae7a57c2eb42b8d982e2" dependencies = [ "cranelift-entity", "serde", @@ -10924,7 +10909,7 @@ dependencies = [ "byteorder", "ccm", "curve25519-dalek 3.2.0", - "der-parser 8.1.0", + "der-parser 8.2.0", "elliptic-curve", "hkdf", "hmac 0.12.1", @@ -11066,15 +11051,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "wepoll-ffi" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d743fdedc5c64377b5fc2bc036b01c7fd642205a0d96356034ae3404d49eb7fb" -dependencies = [ - "cc", -] - [[package]] name = "which" version = "4.4.0" @@ -11322,10 +11298,10 @@ version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e0ecbeb7b67ce215e40e3cc7f2ff902f94a223acf44995934763467e7b1febc8" dependencies = [ - "asn1-rs 0.5.1", + "asn1-rs 0.5.2", "base64 0.13.1", "data-encoding", - "der-parser 8.1.0", + "der-parser 8.2.0", "lazy_static", "nom", "oid-registry 0.6.1", diff --git a/Cargo.toml b/Cargo.toml index ae839e759f..1bd40d58d2 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,4 +1,6 @@ [workspace] +resolver = "2" + members = [ "runtime", "runtime-modules/proposals/engine", @@ -32,5 +34,11 @@ exclude = [ # Substrate runtime requires unwinding. panic = "unwind" +# Sacrifice compile speed for execution speed by using optimization flags: +# https://doc.rust-lang.org/rustc/linker-plugin-lto.html +lto = "fat" +# https://doc.rust-lang.org/rustc/codegen-options/index.html#codegen-units +codegen-units = 1 + [patch.crates-io] ss58-registry = { package = 'ss58-registry', git = 'https://github.com/bwhm/ss58-registry', rev = 'a70121e7bbb56f983f6f17771cc79d8f19b481a0'} From 7ab781eccf0012a63ea03b949839fec2b1d9bfc8 Mon Sep 17 00:00:00 2001 From: Mokhtar Naamani Date: Mon, 13 Mar 2023 12:07:11 +0400 Subject: [PATCH 15/87] v0.9.39 - set MaxActiveValidators to not exceed genesis limit --- runtime/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs index 82c14d9b45..f59468c900 100644 --- a/runtime/src/lib.rs +++ b/runtime/src/lib.rs @@ -644,7 +644,7 @@ parameter_types! { pub MaxElectingVoters: u32 = 12_500; // The maximum winners that can be elected by the Election pallet which is equivalent to the // maximum active validators the staking pallet can have. - pub MaxActiveValidators: u32 = SetMaxValidatorCountProposalMaxValidators::get(); + pub MaxActiveValidators: u32 = 400; // should not be more than max_validator_count genesis config in staking pallet? } /// The numbers configured here could always be more than the the maximum limits of staking pallet From b78efb4a4293950baedb7445d0dc284a97dfc885 Mon Sep 17 00:00:00 2001 From: Mokhtar Naamani Date: Mon, 13 Mar 2023 12:21:27 +0400 Subject: [PATCH 16/87] v0.9.39 - fix call-sizes build --- bin/utils/call-sizes/src/main.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/utils/call-sizes/src/main.rs b/bin/utils/call-sizes/src/main.rs index f2a244637b..2132dfa404 100644 --- a/bin/utils/call-sizes/src/main.rs +++ b/bin/utils/call-sizes/src/main.rs @@ -65,7 +65,7 @@ fn main() -> Result<(), String> { core::mem::size_of::>() ); - println!("----\nRuntime: {}", core::mem::size_of::()); + println!("----\nRuntime: {}", core::mem::size_of::()); Ok(()) } From c400c98a13b6c1b45b77b0b585143128c8f5b411 Mon Sep 17 00:00:00 2001 From: Mokhtar Naamani Date: Mon, 13 Mar 2023 17:11:33 +0400 Subject: [PATCH 17/87] v0.9.39 - fix node rpc,service --- Cargo.lock | 20 ++++++ bin/node/Cargo.toml | 4 ++ bin/node/src/node_rpc.rs | 20 +++++- bin/node/src/service.rs | 135 ++++++++++++++++++++------------------- 4 files changed, 109 insertions(+), 70 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 9fee466c3e..2ece818190 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3305,6 +3305,7 @@ dependencies = [ "joystream-node-runtime", "jsonrpsee 0.13.1", "log", + "mmr-rpc", "nix 0.23.2", "overrides", "pallet-balances", @@ -3335,10 +3336,13 @@ dependencies = [ "sc-finality-grandpa-rpc", "sc-keystore", "sc-network", + "sc-network-common", "sc-rpc", "sc-rpc-api", + "sc-rpc-spec-v2", "sc-service", "sc-service-test", + "sc-storage-monitor", "sc-sync-state-rpc", "sc-sysinfo", "sc-telemetry", @@ -4561,6 +4565,22 @@ dependencies = [ "windows-sys 0.45.0", ] +[[package]] +name = "mmr-rpc" +version = "4.0.0-dev" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" +dependencies = [ + "anyhow", + "jsonrpsee 0.16.2", + "parity-scale-codec", + "serde", + "sp-api", + "sp-blockchain", + "sp-core", + "sp-mmr-primitives", + "sp-runtime", +] + [[package]] name = "mockall" version = "0.11.3" diff --git a/bin/node/Cargo.toml b/bin/node/Cargo.toml index 090e356830..e4721d2cd4 100644 --- a/bin/node/Cargo.toml +++ b/bin/node/Cargo.toml @@ -49,6 +49,7 @@ sc-consensus = { package = 'sc-consensus', git = 'https://github.com/joystream/s sc-transaction-pool = { package = 'sc-transaction-pool', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} sc-transaction-pool-api = { package = 'sc-transaction-pool-api', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} sc-network = { package = 'sc-network', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sc-network-common = { package = 'sc-network-common', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} sc-consensus-slots = { package = 'sc-consensus-slots', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} sc-consensus-babe = { package = 'sc-consensus-babe', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} sc-consensus-babe-rpc = { package = 'sc-consensus-babe-rpc', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} @@ -57,6 +58,7 @@ sc-finality-grandpa = { package = "sc-finality-grandpa", git = 'https://github.c sc-finality-grandpa-rpc = { package = 'sc-finality-grandpa-rpc', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} sc-rpc = { package = 'sc-rpc', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} sc-rpc-api = { package = 'sc-rpc-api', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sc-rpc-spec-v2 = { package = 'sc-rpc-spec-v2', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} sc-basic-authorship = { package = 'sc-basic-authorship', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} sc-service = { package = 'sc-service', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} sc-telemetry = { package = 'sc-telemetry', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} @@ -67,6 +69,8 @@ sc-sysinfo = { package = 'sc-sysinfo', git = 'https://github.com/joystream/subst pallet-transaction-payment-rpc = { package = 'pallet-transaction-payment-rpc', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} substrate-frame-rpc-system = { package = 'substrate-frame-rpc-system', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} substrate-state-trie-migration-rpc = { package = 'substrate-state-trie-migration-rpc', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +mmr-rpc = { package = 'mmr-rpc', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sc-storage-monitor = { package = 'sc-storage-monitor', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} # frame dependencies frame-system = { package = 'frame-system',git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} diff --git a/bin/node/src/node_rpc.rs b/bin/node/src/node_rpc.rs index 32427bbf51..894fad5b0b 100644 --- a/bin/node/src/node_rpc.rs +++ b/bin/node/src/node_rpc.rs @@ -1,6 +1,6 @@ // This file is part of Substrate. -// Copyright (C) 2019-2022 Parity Technologies (UK) Ltd. +// Copyright (C) Parity Technologies (UK) Ltd. // SPDX-License-Identifier: Apache-2.0 // Licensed under the Apache License, Version 2.0 (the "License"); @@ -29,13 +29,14 @@ //! be placed here or imported from corresponding FRAME RPC definitions. #![warn(missing_docs)] +#![warn(unused_crate_dependencies)] use std::sync::Arc; use jsonrpsee::RpcModule; use node_runtime::{opaque::Block, AccountId, Balance, BlockNumber, Hash, Index}; use sc_client_api::AuxStore; -use sc_consensus_babe::{Config, Epoch}; +use sc_consensus_babe::{BabeConfiguration, Epoch}; use sc_consensus_epochs::SharedEpochChanges; use sc_finality_grandpa::{ FinalityProofProvider, GrandpaJustificationStream, SharedAuthoritySet, SharedVoterState, @@ -53,7 +54,7 @@ use sp_keystore::SyncCryptoStorePtr; /// Extra dependencies for BABE. pub struct BabeDeps { /// BABE protocol config. - pub babe_config: Config, + pub babe_config: BabeConfiguration, /// BABE pending epoch changes. pub shared_epoch_changes: SharedEpochChanges, /// The keystore that manages the keys of the node. @@ -107,6 +108,7 @@ where + Send + 'static, C::Api: substrate_frame_rpc_system::AccountNonceApi, + C::Api: mmr_rpc::MmrRuntimeApi::Hash, BlockNumber>, C::Api: pallet_transaction_payment_rpc::TransactionPaymentRuntimeApi, C::Api: BabeApi, C::Api: BlockBuilder, @@ -115,10 +117,12 @@ where B: sc_client_api::Backend + Send + Sync + 'static, B::State: sc_client_api::backend::StateBackend>, { + use mmr_rpc::{Mmr, MmrApiServer}; use pallet_transaction_payment_rpc::{TransactionPayment, TransactionPaymentApiServer}; use sc_consensus_babe_rpc::{Babe, BabeApiServer}; use sc_finality_grandpa_rpc::{Grandpa, GrandpaApiServer}; use sc_rpc::dev::{Dev, DevApiServer}; + use sc_rpc_spec_v2::chain_spec::{ChainSpec, ChainSpecApiServer}; use sc_sync_state_rpc::{SyncState, SyncStateApiServer}; use substrate_frame_rpc_system::{System, SystemApiServer}; use substrate_state_trie_migration_rpc::{StateMigration, StateMigrationApiServer}; @@ -147,10 +151,20 @@ where finality_provider, } = grandpa; + let chain_name = chain_spec.name().to_string(); + let genesis_hash = client + .block_hash(0) + .ok() + .flatten() + .expect("Genesis block exists; qed"); + let properties = chain_spec.properties(); + io.merge(ChainSpec::new(chain_name, genesis_hash, properties).into_rpc())?; + io.merge(System::new(client.clone(), pool, deny_unsafe).into_rpc())?; // Making synchronous calls in light client freezes the browser currently, // more context: https://github.com/paritytech/substrate/pull/3480 // These RPCs should use an asynchronous caller instead. + io.merge(Mmr::new(client.clone()).into_rpc())?; io.merge(TransactionPayment::new(client.clone()).into_rpc())?; io.merge( Babe::new( diff --git a/bin/node/src/service.rs b/bin/node/src/service.rs index 059af570a9..25241a76a4 100644 --- a/bin/node/src/service.rs +++ b/bin/node/src/service.rs @@ -1,6 +1,6 @@ // This file is part of Substrate. -// Copyright (C) 2018-2022 Parity Technologies (UK) Ltd. +// Copyright (C) Parity Technologies (UK) Ltd. // SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 // This program is free software: you can redistribute it and/or modify @@ -16,20 +16,27 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . +#![warn(unused_extern_crates)] + //! Service implementation. Specialized wrapper over substrate service. +use crate::cli::Cli; use crate::node_executor::ExecutorDispatch; use codec::Encode; +use frame_benchmarking_cli::SUBSTRATE_REFERENCE_HARDWARE; use frame_system_rpc_runtime_api::AccountNonceApi; use futures::prelude::*; use node_runtime::opaque::Block; use node_runtime::RuntimeApi; use overrides::DEFAULT_HEAP_PAGES; -use sc_client_api::{BlockBackend, ExecutorProvider}; +use sc_client_api::BlockBackend; use sc_consensus_babe::{self, SlotProportion}; use sc_executor::NativeElseWasmExecutor; use sc_finality_grandpa as grandpa; -use sc_network::{Event, NetworkService}; +use sc_network::NetworkService; +use sc_network_common::{ + protocol::event::Event, service::NetworkEventStream, sync::warp::WarpSyncParams, +}; use sc_service::{config::Configuration, error::Error as ServiceError, RpcHandlers, TaskManager}; use sc_telemetry::{Telemetry, TelemetryWorker}; use sp_api::ProvideRuntimeApi; @@ -55,7 +62,7 @@ pub fn fetch_nonce(client: &FullClient, account: sp_core::sr25519::Pair) -> u32 let best_hash = client.chain_info().best_hash; client .runtime_api() - .account_nonce(&generic::BlockId::Hash(best_hash), account.public().into()) + .account_nonce(best_hash, account.public().into()) .expect("Fetching account nonce works; qed") } @@ -68,7 +75,7 @@ pub fn fetch_nonce(client: &FullClient, account: sp_core::sr25519::Pair) -> u32 pub fn create_extrinsic( client: &FullClient, sender: sp_core::sr25519::Pair, - function: impl Into, + function: impl Into, nonce: Option, ) -> node_runtime::UncheckedExtrinsic { let function = function.into(); @@ -118,13 +125,12 @@ pub fn create_extrinsic( node_runtime::UncheckedExtrinsic::new_signed( function, - sp_runtime::AccountId32::from(sender.public()), + sp_runtime::AccountId32::from(sender.public()).into(), node_runtime::Signature::Sr25519(signature), extra, ) } -#[allow(clippy::type_complexity)] /// Creates a new partial node. pub fn new_partial( config: &Configuration, @@ -203,7 +209,7 @@ pub fn new_partial( let justification_import = grandpa_block_import.clone(); let (block_import, babe_link) = sc_consensus_babe::block_import( - sc_consensus_babe::Config::get(&*client)?, + sc_consensus_babe::configuration(&*client)?, grandpa_block_import, client.clone(), )?; @@ -224,14 +230,10 @@ pub fn new_partial( slot_duration, ); - let uncles = - sp_authorship::InherentDataProvider::<::Header>::check_inherents(); - - Ok((timestamp, slot, uncles)) + Ok((slot, timestamp)) }, &task_manager.spawn_essential_handle(), config.prometheus_registry(), - sp_consensus::CanAuthorWithNativeVersion::new(client.executor().clone()), telemetry.as_ref().map(|x| x.handle()), )?; @@ -322,14 +324,12 @@ pub fn new_full_base( &sc_consensus_babe::BabeLink, ), ) -> Result { - let hwbench = if !disable_hardware_benchmarks { - config.database.path().map(|database_path| { + let hwbench = (!disable_hardware_benchmarks) + .then_some(config.database.path().map(|database_path| { let _ = std::fs::create_dir_all(&database_path); sc_sysinfo::gather_hwbench(Some(database_path)) - }) - } else { - None - }; + })) + .flatten(); let sc_service::PartialComponents { client, @@ -365,7 +365,7 @@ pub fn new_full_base( Vec::default(), )); - let (network, system_rpc_tx, network_starter) = + let (network, system_rpc_tx, tx_handler_controller, network_starter) = sc_service::build_network(sc_service::BuildNetworkParams { config: &config, client: client.clone(), @@ -373,7 +373,7 @@ pub fn new_full_base( spawn_handle: task_manager.spawn_handle(), import_queue, block_announce_validator_builder: None, - warp_sync: Some(warp_sync), + warp_sync_params: Some(WarpSyncParams::WithProvider(warp_sync)), })?; if config.offchain_worker.enabled { @@ -403,11 +403,17 @@ pub fn new_full_base( transaction_pool: transaction_pool.clone(), task_manager: &mut task_manager, system_rpc_tx, + tx_handler_controller, telemetry: telemetry.as_mut(), })?; if let Some(hwbench) = hwbench { sc_sysinfo::print_hwbench(&hwbench); + if !SUBSTRATE_REFERENCE_HARDWARE.check_hardware(&hwbench) && role.is_authority() { + log::warn!( + "⚠️ The hardware does not meet the minimal requirements for role 'Authority'." + ); + } if let Some(ref mut telemetry) = telemetry { let telemetry_handle = telemetry.handle(); @@ -432,9 +438,6 @@ pub fn new_full_base( telemetry.as_ref().map(|x| x.handle()), ); - let can_author_with = - sp_consensus::CanAuthorWithNativeVersion::new(client.executor().clone()); - let client_clone = client.clone(); let slot_duration = babe_link.config().slot_duration(); let babe_config = sc_consensus_babe::BabeParams { @@ -448,11 +451,6 @@ pub fn new_full_base( create_inherent_data_providers: move |parent, ()| { let client_clone = client_clone.clone(); async move { - let uncles = sc_consensus_uncles::create_uncles_inherent_data_provider( - &*client_clone, - parent, - )?; - let timestamp = sp_timestamp::InherentDataProvider::from_system_time(); let slot = @@ -461,21 +459,18 @@ pub fn new_full_base( slot_duration, ); - // We Have not included transaction_storage pallet in runtime - // are they related? let storage_proof = sp_transaction_storage_proof::registration::new_data_provider( &*client_clone, &parent, )?; - Ok((timestamp, slot, uncles, storage_proof)) + Ok((slot, timestamp, storage_proof)) } }, force_authoring, backoff_authoring_blocks, babe_link, - can_author_with, block_proposal_slot_portion: SlotProportion::new(0.5), max_block_proposal_slot_portion: None, telemetry: telemetry.as_ref().map(|x| x.handle()), @@ -579,12 +574,18 @@ pub fn new_full_base( } /// Builds a new service for a full client. -pub fn new_full( - config: Configuration, - disable_hardware_benchmarks: bool, -) -> Result { - new_full_base(config, disable_hardware_benchmarks, |_, _| ()) - .map(|NewFullBase { task_manager, .. }| task_manager) +pub fn new_full(config: Configuration, cli: Cli) -> Result { + let database_source = config.database.clone(); + let task_manager = new_full_base(config, cli.no_hardware_benchmarks, |_, _| ()) + .map(|NewFullBase { task_manager, .. }| task_manager)?; + + sc_storage_monitor::StorageMonitorService::try_spawn( + cli.storage_monitor, + database_source, + &task_manager.spawn_essential_handle(), + )?; + + Ok(task_manager) } #[cfg(test)] @@ -593,7 +594,7 @@ mod tests { use codec::Encode; use node_runtime::{ constants::{currency::CENTS, SLOT_DURATION}, - Address, BalancesCall, Call, UncheckedExtrinsic, + Address, BalancesCall, RuntimeCall, UncheckedExtrinsic, }; use node_runtime::{opaque::Block, DigestItem, Signature}; use sc_client_api::BlockBackend; @@ -609,14 +610,13 @@ mod tests { use sp_keyring::AccountKeyring; use sp_keystore::{SyncCryptoStore, SyncCryptoStorePtr}; use sp_runtime::{ - generic::{BlockId, Digest, Era, SignedPayload}, + generic::{Digest, Era, SignedPayload}, key_types::BABE, traits::{Block as BlockT, Header as HeaderT, IdentifyAccount, Verify}, RuntimeAppPublic, }; - - use std::convert::TryInto; - use std::{borrow::Cow, sync::Arc}; + use sp_timestamp; + use std::sync::Arc; type AccountPublic = ::Signer; @@ -673,9 +673,8 @@ mod tests { Ok((node, setup_handles.unwrap())) }, |service, &mut (ref mut block_import, ref babe_link)| { - let parent_id = BlockId::number(service.client().chain_info().best_number); - let parent_header = service.client().header(&parent_id).unwrap().unwrap(); - let parent_hash = parent_header.hash(); + let parent_hash = service.client().chain_info().best_hash; + let parent_header = service.client().header(parent_hash).unwrap().unwrap(); let parent_number = *parent_header.number(); futures::executor::block_on(service.transaction_pool().maintain( @@ -714,10 +713,7 @@ mod tests { .epoch_changes() .shared_data() .epoch_data(&epoch_descriptor, |slot| { - sc_consensus_babe::Epoch::genesis( - babe_link.config().genesis_config(), - slot, - ) + sc_consensus_babe::Epoch::genesis(babe_link.config(), slot) }) .unwrap(); @@ -731,14 +727,16 @@ mod tests { slot += 1; }; - let inherent_data = ( - sp_timestamp::InherentDataProvider::new( - std::time::Duration::from_millis(SLOT_DURATION * slot).into(), - ), - sp_consensus_babe::inherents::InherentDataProvider::new(slot.into()), + let inherent_data = futures::executor::block_on( + ( + sp_timestamp::InherentDataProvider::new( + std::time::Duration::from_millis(SLOT_DURATION * slot).into(), + ), + sp_consensus_babe::inherents::InherentDataProvider::new(slot.into()), + ) + .create_inherent_data(), ) - .create_inherent_data() - .expect("Creates inherent data"); + .expect("Creates inherent data"); digest.push(::babe_pre_digest( babe_pre_digest, @@ -780,9 +778,9 @@ mod tests { let mut params = BlockImportParams::new(BlockOrigin::File, new_header); params.post_digests.push(item); params.body = Some(new_body); - params.intermediates.insert( - Cow::from(INTERMEDIATE_KEY), - Box::new(BabeIntermediate:: { epoch_descriptor }) as Box<_>, + params.insert_intermediate( + INTERMEDIATE_KEY, + BabeIntermediate:: { epoch_descriptor }, ); params.fork_choice = Some(ForkChoiceStrategy::LongestChain); @@ -794,15 +792,15 @@ mod tests { let to: Address = AccountPublic::from(bob.public()).into_account().into(); let from: Address = AccountPublic::from(charlie.public()).into_account().into(); let genesis_hash = service.client().block_hash(0).unwrap().unwrap(); - let best_block_id = BlockId::number(service.client().chain_info().best_number); + let best_hash = service.client().chain_info().best_hash; let (spec_version, transaction_version) = { - let version = service.client().runtime_version_at(&best_block_id).unwrap(); + let version = service.client().runtime_version_at(best_hash).unwrap(); (version.spec_version, version.transaction_version) }; let signer = charlie.clone(); - let function = Call::Balances(BalancesCall::transfer { - dest: to, + let function = RuntimeCall::Balances(BalancesCall::transfer { + dest: to.into(), value: amount, }); @@ -813,7 +811,9 @@ mod tests { let check_era = frame_system::CheckEra::from(Era::Immortal); let check_nonce = frame_system::CheckNonce::from(index); let check_weight = frame_system::CheckWeight::new(); - let tx_payment = pallet_transaction_payment::ChargeTransactionPayment::from(0); + let tx_payment = pallet_transaction_payment::ChargeTransactionPayment::< + node_runtime::Runtime, + >::from(tip); let extra = ( check_non_zero_sender, check_spec_version, @@ -841,7 +841,8 @@ mod tests { let signature = raw_payload.using_encoded(|payload| signer.sign(payload)); let (function, extra, _) = raw_payload.deconstruct(); index += 1; - UncheckedExtrinsic::new_signed(function, from, signature.into(), extra).into() + UncheckedExtrinsic::new_signed(function, from.into(), signature.into(), extra) + .into() }, ); } From b51dd8838b1c0e70d12ad92c2a3eafc92e59dd04 Mon Sep 17 00:00:00 2001 From: Mokhtar Naamani Date: Mon, 13 Mar 2023 17:19:43 +0400 Subject: [PATCH 18/87] v0.9.39 - no mmr --- Cargo.lock | 17 ----------------- bin/node/Cargo.toml | 1 - bin/node/src/node_rpc.rs | 3 --- 3 files changed, 21 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 2ece818190..bee5213e1e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3305,7 +3305,6 @@ dependencies = [ "joystream-node-runtime", "jsonrpsee 0.13.1", "log", - "mmr-rpc", "nix 0.23.2", "overrides", "pallet-balances", @@ -4565,22 +4564,6 @@ dependencies = [ "windows-sys 0.45.0", ] -[[package]] -name = "mmr-rpc" -version = "4.0.0-dev" -source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" -dependencies = [ - "anyhow", - "jsonrpsee 0.16.2", - "parity-scale-codec", - "serde", - "sp-api", - "sp-blockchain", - "sp-core", - "sp-mmr-primitives", - "sp-runtime", -] - [[package]] name = "mockall" version = "0.11.3" diff --git a/bin/node/Cargo.toml b/bin/node/Cargo.toml index e4721d2cd4..5a84c9603d 100644 --- a/bin/node/Cargo.toml +++ b/bin/node/Cargo.toml @@ -69,7 +69,6 @@ sc-sysinfo = { package = 'sc-sysinfo', git = 'https://github.com/joystream/subst pallet-transaction-payment-rpc = { package = 'pallet-transaction-payment-rpc', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} substrate-frame-rpc-system = { package = 'substrate-frame-rpc-system', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} substrate-state-trie-migration-rpc = { package = 'substrate-state-trie-migration-rpc', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} -mmr-rpc = { package = 'mmr-rpc', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} sc-storage-monitor = { package = 'sc-storage-monitor', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} # frame dependencies diff --git a/bin/node/src/node_rpc.rs b/bin/node/src/node_rpc.rs index 894fad5b0b..ee5f3bfaff 100644 --- a/bin/node/src/node_rpc.rs +++ b/bin/node/src/node_rpc.rs @@ -108,7 +108,6 @@ where + Send + 'static, C::Api: substrate_frame_rpc_system::AccountNonceApi, - C::Api: mmr_rpc::MmrRuntimeApi::Hash, BlockNumber>, C::Api: pallet_transaction_payment_rpc::TransactionPaymentRuntimeApi, C::Api: BabeApi, C::Api: BlockBuilder, @@ -117,7 +116,6 @@ where B: sc_client_api::Backend + Send + Sync + 'static, B::State: sc_client_api::backend::StateBackend>, { - use mmr_rpc::{Mmr, MmrApiServer}; use pallet_transaction_payment_rpc::{TransactionPayment, TransactionPaymentApiServer}; use sc_consensus_babe_rpc::{Babe, BabeApiServer}; use sc_finality_grandpa_rpc::{Grandpa, GrandpaApiServer}; @@ -164,7 +162,6 @@ where // Making synchronous calls in light client freezes the browser currently, // more context: https://github.com/paritytech/substrate/pull/3480 // These RPCs should use an asynchronous caller instead. - io.merge(Mmr::new(client.clone()).into_rpc())?; io.merge(TransactionPayment::new(client.clone()).into_rpc())?; io.merge( Babe::new( From 40cb6989d2e98ebf107e53ea869696c5abc13416 Mon Sep 17 00:00:00 2001 From: Mokhtar Naamani Date: Mon, 13 Mar 2023 19:34:18 +0400 Subject: [PATCH 19/87] v0.9.39 - fix node build --- Cargo.lock | 140 ++++++--------------------------- bin/node/Cargo.toml | 3 +- bin/node/src/benchmarking.rs | 126 +++++++++++++++++++++++++++++ bin/node/src/chain_spec/mod.rs | 7 +- bin/node/src/cli.rs | 4 + bin/node/src/command.rs | 60 ++++++++++---- bin/node/src/command_helper.rs | 69 ---------------- bin/node/src/lib.rs | 2 +- 8 files changed, 203 insertions(+), 208 deletions(-) create mode 100644 bin/node/src/benchmarking.rs delete mode 100644 bin/node/src/command_helper.rs diff --git a/Cargo.lock b/Cargo.lock index bee5213e1e..aa07e01291 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3303,7 +3303,7 @@ dependencies = [ "hex", "hex-literal", "joystream-node-runtime", - "jsonrpsee 0.13.1", + "jsonrpsee", "log", "nix 0.23.2", "overrides", @@ -3464,28 +3464,16 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "jsonrpsee" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1f2ab5a60e558e74ea93bcf5164ebc47939a7fff8938fa9b5233bbc63e16061" -dependencies = [ - "jsonrpsee-core 0.13.1", - "jsonrpsee-http-server", - "jsonrpsee-types 0.13.1", - "jsonrpsee-ws-server", -] - [[package]] name = "jsonrpsee" version = "0.16.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7d291e3a5818a2384645fd9756362e6d89cf0541b0b916fa7702ea4a9833608e" dependencies = [ - "jsonrpsee-core 0.16.2", + "jsonrpsee-core", "jsonrpsee-proc-macros", "jsonrpsee-server", - "jsonrpsee-types 0.16.2", + "jsonrpsee-types", "jsonrpsee-ws-client", "tracing", ] @@ -3498,8 +3486,8 @@ checksum = "965de52763f2004bc91ac5bcec504192440f0b568a5d621c59d9dbd6f886c3fb" dependencies = [ "futures-util", "http", - "jsonrpsee-core 0.16.2", - "jsonrpsee-types 0.16.2", + "jsonrpsee-core", + "jsonrpsee-types", "pin-project", "rustls-native-certs", "soketto", @@ -3511,31 +3499,6 @@ dependencies = [ "webpki-roots", ] -[[package]] -name = "jsonrpsee-core" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e27462b21279edf9a6a91f46ffbe125e9cdc58b901d2e08bf59b31a47d7d0ab" -dependencies = [ - "anyhow", - "arrayvec 0.7.2", - "async-trait", - "beef", - "futures-channel", - "futures-util", - "hyper", - "jsonrpsee-types 0.13.1", - "parking_lot 0.12.1", - "rand 0.8.5", - "rustc-hash", - "serde", - "serde_json", - "soketto", - "thiserror", - "tokio", - "tracing", -] - [[package]] name = "jsonrpsee-core" version = "0.16.2" @@ -3552,7 +3515,7 @@ dependencies = [ "futures-util", "globset", "hyper", - "jsonrpsee-types 0.16.2", + "jsonrpsee-types", "parking_lot 0.12.1", "rand 0.8.5", "rustc-hash", @@ -3564,25 +3527,6 @@ dependencies = [ "tracing", ] -[[package]] -name = "jsonrpsee-http-server" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7178f16eabd7154c094e24d295b9ee355ec1e5f24c328759c56255ff7bbd4548" -dependencies = [ - "futures-channel", - "futures-util", - "globset", - "hyper", - "jsonrpsee-core 0.13.1", - "jsonrpsee-types 0.13.1", - "lazy_static", - "serde_json", - "tokio", - "tracing", - "unicase", -] - [[package]] name = "jsonrpsee-proc-macros" version = "0.16.2" @@ -3606,8 +3550,8 @@ dependencies = [ "futures-util", "http", "hyper", - "jsonrpsee-core 0.16.2", - "jsonrpsee-types 0.16.2", + "jsonrpsee-core", + "jsonrpsee-types", "serde", "serde_json", "soketto", @@ -3618,20 +3562,6 @@ dependencies = [ "tracing", ] -[[package]] -name = "jsonrpsee-types" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fd11763134104122ddeb0f97e4bbe393058017dfb077db63fbf44b4dd0dd86e" -dependencies = [ - "anyhow", - "beef", - "serde", - "serde_json", - "thiserror", - "tracing", -] - [[package]] name = "jsonrpsee-types" version = "0.16.2" @@ -3654,25 +3584,8 @@ checksum = "0b83daeecfc6517cfe210df24e570fb06213533dfb990318fae781f4c7119dd9" dependencies = [ "http", "jsonrpsee-client-transport", - "jsonrpsee-core 0.16.2", - "jsonrpsee-types 0.16.2", -] - -[[package]] -name = "jsonrpsee-ws-server" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfb6c21556c551582b56e4e8e6e6249b0bbdb69bb7fa39efe9b9a6b54af9f206" -dependencies = [ - "futures-channel", - "futures-util", - "jsonrpsee-core 0.13.1", - "jsonrpsee-types 0.13.1", - "serde_json", - "soketto", - "tokio", - "tokio-util", - "tracing", + "jsonrpsee-core", + "jsonrpsee-types", ] [[package]] @@ -5791,7 +5704,7 @@ name = "pallet-transaction-payment-rpc" version = "4.0.0-dev" source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ - "jsonrpsee 0.16.2", + "jsonrpsee", "pallet-transaction-payment-rpc-runtime-api", "parity-scale-codec", "sp-api", @@ -7317,7 +7230,7 @@ version = "0.10.0-dev" source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "futures", - "jsonrpsee 0.16.2", + "jsonrpsee", "sc-consensus-babe", "sc-consensus-epochs", "sc-rpc-api", @@ -7484,7 +7397,7 @@ source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e56 dependencies = [ "finality-grandpa", "futures", - "jsonrpsee 0.16.2", + "jsonrpsee", "log", "parity-scale-codec", "sc-client-api", @@ -7763,7 +7676,7 @@ version = "4.0.0-dev" source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "futures", - "jsonrpsee 0.16.2", + "jsonrpsee", "log", "parity-scale-codec", "parking_lot 0.12.1", @@ -7792,7 +7705,7 @@ name = "sc-rpc-api" version = "0.10.0-dev" source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ - "jsonrpsee 0.16.2", + "jsonrpsee", "parity-scale-codec", "sc-chain-spec", "sc-transaction-pool-api", @@ -7812,7 +7725,7 @@ version = "4.0.0-dev" source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "http", - "jsonrpsee 0.16.2", + "jsonrpsee", "log", "serde_json", "substrate-prometheus-endpoint", @@ -7830,7 +7743,7 @@ dependencies = [ "futures", "futures-util", "hex", - "jsonrpsee 0.16.2", + "jsonrpsee", "log", "parity-scale-codec", "parking_lot 0.12.1", @@ -7857,7 +7770,7 @@ dependencies = [ "exit-future", "futures", "futures-timer", - "jsonrpsee 0.16.2", + "jsonrpsee", "log", "parity-scale-codec", "parking_lot 0.12.1", @@ -7981,7 +7894,7 @@ name = "sc-sync-state-rpc" version = "0.10.0-dev" source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ - "jsonrpsee 0.16.2", + "jsonrpsee", "parity-scale-codec", "sc-chain-spec", "sc-client-api", @@ -9482,7 +9395,7 @@ source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e56 dependencies = [ "frame-system-rpc-runtime-api", "futures", - "jsonrpsee 0.16.2", + "jsonrpsee", "log", "parity-scale-codec", "sc-rpc-api", @@ -9512,7 +9425,7 @@ version = "0.10.0-dev" source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "async-trait", - "jsonrpsee 0.16.2", + "jsonrpsee", "log", "sc-rpc-api", "serde", @@ -9524,7 +9437,7 @@ name = "substrate-state-trie-migration-rpc" version = "4.0.0-dev" source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ - "jsonrpsee 0.16.2", + "jsonrpsee", "log", "parity-scale-codec", "sc-client-api", @@ -10236,15 +10149,6 @@ dependencies = [ "static_assertions", ] -[[package]] -name = "unicase" -version = "2.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6" -dependencies = [ - "version_check", -] - [[package]] name = "unicode-bidi" version = "0.3.11" diff --git a/bin/node/Cargo.toml b/bin/node/Cargo.toml index 5a84c9603d..de7c74f4d1 100644 --- a/bin/node/Cargo.toml +++ b/bin/node/Cargo.toml @@ -18,7 +18,7 @@ crate-type = ["cdylib", "rlib"] clap = { version = "4.0.9", features = ["derive"], optional = true } codec = { package = "parity-scale-codec", version = "3.1.5" } serde = { version = "1.0.136", features = ["derive"] } -jsonrpsee = { version = "0.13.0", features = ["server"] } +jsonrpsee = { version = "0.16.2", features = ["server"] } futures = "0.3.21" hex-literal = "0.3.4" log = "0.4.17" @@ -131,6 +131,7 @@ substrate-frame-cli = { package = 'substrate-frame-cli', optional = true, git = sc-cli = { package = 'sc-cli', optional = true, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} pallet-balances = { package = 'pallet-balances', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} # node-inspect = { path = "../inspect", optional = true } +sc-storage-monitor = { package = 'sc-storage-monitor', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} [features] default = ["cli"] diff --git a/bin/node/src/benchmarking.rs b/bin/node/src/benchmarking.rs new file mode 100644 index 0000000000..facf4137fd --- /dev/null +++ b/bin/node/src/benchmarking.rs @@ -0,0 +1,126 @@ +// This file is part of Substrate. + +// Copyright (C) Parity Technologies (UK) Ltd. +// SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 + +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +//! Setup code for [`super::command`] which would otherwise bloat that module. +//! +//! Should only be used for benchmarking as it may break in other contexts. + +use crate::service::{create_extrinsic, FullClient}; + +use node_runtime::{AccountId, Balance}; +use node_runtime::{BalancesCall, SystemCall}; +use sc_cli::Result; +use sp_inherents::{InherentData, InherentDataProvider}; +use sp_keyring::Sr25519Keyring; +use sp_runtime::OpaqueExtrinsic; + +use std::{sync::Arc, time::Duration}; + +/// Generates `System::Remark` extrinsics for the benchmarks. +/// +/// Note: Should only be used for benchmarking. +pub struct RemarkBuilder { + client: Arc, +} + +impl RemarkBuilder { + /// Creates a new [`Self`] from the given client. + pub fn new(client: Arc) -> Self { + Self { client } + } +} + +impl frame_benchmarking_cli::ExtrinsicBuilder for RemarkBuilder { + fn pallet(&self) -> &str { + "system" + } + + fn extrinsic(&self) -> &str { + "remark" + } + + fn build(&self, nonce: u32) -> std::result::Result { + let acc = Sr25519Keyring::Bob.pair(); + let extrinsic: OpaqueExtrinsic = create_extrinsic( + self.client.as_ref(), + acc, + SystemCall::remark { remark: vec![] }, + Some(nonce), + ) + .into(); + + Ok(extrinsic) + } +} + +/// Generates `Balances::TransferKeepAlive` extrinsics for the benchmarks. +/// +/// Note: Should only be used for benchmarking. +pub struct TransferKeepAliveBuilder { + client: Arc, + dest: AccountId, + value: Balance, +} + +impl TransferKeepAliveBuilder { + /// Creates a new [`Self`] from the given client. + pub fn new(client: Arc, dest: AccountId, value: Balance) -> Self { + Self { + client, + dest, + value, + } + } +} + +impl frame_benchmarking_cli::ExtrinsicBuilder for TransferKeepAliveBuilder { + fn pallet(&self) -> &str { + "balances" + } + + fn extrinsic(&self) -> &str { + "transfer_keep_alive" + } + + fn build(&self, nonce: u32) -> std::result::Result { + let acc = Sr25519Keyring::Bob.pair(); + let extrinsic: OpaqueExtrinsic = create_extrinsic( + self.client.as_ref(), + acc, + BalancesCall::transfer_keep_alive { + dest: self.dest.clone().into(), + value: self.value.into(), + }, + Some(nonce), + ) + .into(); + + Ok(extrinsic) + } +} + +/// Generates inherent data for the `benchmark overhead` command. +pub fn inherent_benchmark_data() -> Result { + let mut inherent_data = InherentData::new(); + let d = Duration::from_millis(0); + let timestamp = sp_timestamp::InherentDataProvider::new(d.into()); + + futures::executor::block_on(timestamp.provide_inherent_data(&mut inherent_data)) + .map_err(|e| format!("creating inherent data: {:?}", e))?; + Ok(inherent_data) +} diff --git a/bin/node/src/chain_spec/mod.rs b/bin/node/src/chain_spec/mod.rs index 56969b5736..bc8cf24b1c 100644 --- a/bin/node/src/chain_spec/mod.rs +++ b/bin/node/src/chain_spec/mod.rs @@ -47,7 +47,7 @@ pub use sp_consensus_babe::AuthorityId as BabeId; use sp_core::{sr25519, Pair, Public}; use sp_runtime::{ traits::{IdentifyAccount, Verify}, - Perbill, + FixedU128, Perbill, }; pub use node_runtime::constants::JOY_ADDRESS_PREFIX; @@ -307,7 +307,6 @@ pub fn testnet_genesis( stakers, min_nominator_bond: GENESIS_MIN_NOMINATOR_BOND, min_validator_bond: GENESIS_MIN_VALIDATOR_BOND, - history_depth: 120, max_validator_count: Some(400), max_nominator_count: Some(20_000), ..Default::default() @@ -321,7 +320,9 @@ pub fn testnet_genesis( grandpa: GrandpaConfig { authorities: vec![], }, - transaction_payment: TransactionPaymentConfig {}, + transaction_payment: TransactionPaymentConfig { + multiplier: FixedU128::from(1), + }, vesting: VestingConfig { vesting: vesting_accounts, }, diff --git a/bin/node/src/cli.rs b/bin/node/src/cli.rs index 96ccc4c5f7..6775dfd632 100644 --- a/bin/node/src/cli.rs +++ b/bin/node/src/cli.rs @@ -36,6 +36,10 @@ pub struct Cli { /// telemetry, if telemetry is enabled. #[clap(long)] pub no_hardware_benchmarks: bool, + + #[allow(missing_docs)] + #[clap(flatten)] + pub storage_monitor: sc_storage_monitor::StorageMonitorParams, } /// Possible subcommands of the main binary. diff --git a/bin/node/src/command.rs b/bin/node/src/command.rs index ad4caca2f1..a70ffbd69f 100644 --- a/bin/node/src/command.rs +++ b/bin/node/src/command.rs @@ -16,7 +16,7 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -use super::command_helper::{inherent_benchmark_data, BenchmarkExtrinsicBuilder}; +use super::benchmarking::{inherent_benchmark_data, RemarkBuilder, TransferKeepAliveBuilder}; use crate::node_executor::ExecutorDispatch; use crate::{ chain_spec, @@ -27,12 +27,13 @@ use crate::{ }; use frame_benchmarking_cli::*; use node_runtime::Block; -use node_runtime::RuntimeApi; +use node_runtime::{ExistentialDeposit, RuntimeApi}; use sc_cli::{ChainSpec, Result, RuntimeVersion, SubstrateCli}; use sc_finality_grandpa as grandpa; use sc_service::PartialComponents; use sp_core::crypto::Ss58AddressFormat; +use sp_keyring::Sr25519Keyring; use std::sync::Arc; impl SubstrateCli for Cli { @@ -95,8 +96,7 @@ pub fn run() -> Result<()> { None => { let runner = cli.create_runner(&cli.run)?; runner.run_node_until_exit(|config| async move { - service::new_full(config, cli.no_hardware_benchmarks) - .map_err(sc_cli::Error::Service) + service::new_full(config, cli).map_err(sc_cli::Error::Service) }) } // Some(Subcommand::Inspect(cmd)) => { @@ -123,27 +123,55 @@ pub fn run() -> Result<()> { cmd.run::(config) } BenchmarkCmd::Block(cmd) => { - let PartialComponents { client, .. } = new_partial(&config)?; - cmd.run(client) + // ensure that we keep the task manager alive + let partial = new_partial(&config)?; + cmd.run(partial.client) } + #[cfg(not(feature = "runtime-benchmarks"))] + BenchmarkCmd::Storage(_) => Err( + "Storage benchmarking can be enabled with `--features runtime-benchmarks`." + .into(), + ), + #[cfg(feature = "runtime-benchmarks")] BenchmarkCmd::Storage(cmd) => { - let PartialComponents { - client, backend, .. - } = new_partial(&config)?; - let db = backend.expose_db(); - let storage = backend.expose_storage(); + // ensure that we keep the task manager alive + let partial = new_partial(&config)?; + let db = partial.backend.expose_db(); + let storage = partial.backend.expose_storage(); - cmd.run(config, client, db, storage) + cmd.run(config, partial.client, db, storage) } BenchmarkCmd::Overhead(cmd) => { - let PartialComponents { client, .. } = new_partial(&config)?; - let ext_builder = BenchmarkExtrinsicBuilder::new(client.clone()); + // ensure that we keep the task manager alive + let partial = new_partial(&config)?; + let ext_builder = RemarkBuilder::new(partial.client.clone()); cmd.run( config, - client, + partial.client, inherent_benchmark_data()?, - Arc::new(ext_builder), + Vec::new(), + &ext_builder, + ) + } + BenchmarkCmd::Extrinsic(cmd) => { + // ensure that we keep the task manager alive + let partial = service::new_partial(&config)?; + // Register the *Remark* and *TKA* builders. + let ext_factory = ExtrinsicFactory(vec![ + Box::new(RemarkBuilder::new(partial.client.clone())), + Box::new(TransferKeepAliveBuilder::new( + partial.client.clone(), + Sr25519Keyring::Alice.to_account_id(), + ExistentialDeposit::get(), + )), + ]); + + cmd.run( + partial.client, + inherent_benchmark_data()?, + Vec::new(), + &ext_factory, ) } BenchmarkCmd::Machine(cmd) => { diff --git a/bin/node/src/command_helper.rs b/bin/node/src/command_helper.rs deleted file mode 100644 index 0a73321849..0000000000 --- a/bin/node/src/command_helper.rs +++ /dev/null @@ -1,69 +0,0 @@ -// This file is part of Substrate. - -// Copyright (C) 2022 Parity Technologies (UK) Ltd. -// SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -//! Contains code to setup the command invocations in [`super::command`] which would -//! otherwise bloat that module. - -use crate::service::{create_extrinsic, FullClient}; - -use node_runtime::SystemCall; -use sc_cli::Result; -use sp_inherents::{InherentData, InherentDataProvider}; -use sp_keyring::Sr25519Keyring; -use sp_runtime::OpaqueExtrinsic; - -use std::{sync::Arc, time::Duration}; - -/// Generates extrinsics for the `benchmark overhead` command. -pub struct BenchmarkExtrinsicBuilder { - client: Arc, -} - -impl BenchmarkExtrinsicBuilder { - /// Creates a new [`Self`] from the given client. - pub fn new(client: Arc) -> Self { - Self { client } - } -} - -impl frame_benchmarking_cli::ExtrinsicBuilder for BenchmarkExtrinsicBuilder { - fn remark(&self, nonce: u32) -> std::result::Result { - let acc = Sr25519Keyring::Bob.pair(); - let extrinsic: OpaqueExtrinsic = create_extrinsic( - self.client.as_ref(), - acc, - SystemCall::remark { remark: vec![] }, - Some(nonce), - ) - .into(); - - Ok(extrinsic) - } -} - -/// Generates inherent data for the `benchmark overhead` command. -pub fn inherent_benchmark_data() -> Result { - let mut inherent_data = InherentData::new(); - let d = Duration::from_millis(0); - let timestamp = sp_timestamp::InherentDataProvider::new(d.into()); - - timestamp - .provide_inherent_data(&mut inherent_data) - .map_err(|e| format!("creating inherent data: {:?}", e))?; - Ok(inherent_data) -} diff --git a/bin/node/src/lib.rs b/bin/node/src/lib.rs index bd3ee119c2..3732c1465e 100644 --- a/bin/node/src/lib.rs +++ b/bin/node/src/lib.rs @@ -3,6 +3,6 @@ mod cli; pub mod command; #[macro_use] mod service; -mod command_helper; +mod benchmarking; mod node_executor; mod node_rpc; From 8872a0940d0e02d5381591d176e9107091abf251 Mon Sep 17 00:00:00 2001 From: Mokhtar Naamani Date: Mon, 13 Mar 2023 20:27:42 +0400 Subject: [PATCH 20/87] v0.9.39 - Fix max block weight --- runtime/src/lib.rs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs index f59468c900..e471613363 100644 --- a/runtime/src/lib.rs +++ b/runtime/src/lib.rs @@ -174,8 +174,9 @@ const AVERAGE_ON_INITIALIZE_RATIO: Perbill = Perbill::from_percent(10); /// We allow `Normal` extrinsics to fill up the block up to 75%, the rest can be used /// by Operational extrinsics. const NORMAL_DISPATCH_RATIO: Perbill = Perbill::from_percent(75); -/// We allow for 2 seconds of compute with a 6 second average block time. -pub const MAXIMUM_BLOCK_WEIGHT: Weight = Weight::from_ref_time(2 * WEIGHT_REF_TIME_PER_SECOND); +/// We allow for 2 seconds of compute with a 6 second average block time, with maximum proof size. +const MAXIMUM_BLOCK_WEIGHT: Weight = + Weight::from_parts(WEIGHT_REF_TIME_PER_SECOND.saturating_mul(2), u64::MAX); parameter_types! { pub const BlockHashCount: BlockNumber = 2400; @@ -559,7 +560,7 @@ parameter_types! { pub const MaxNominatorRewardedPerValidator: u32 = 256; pub const OffendingValidatorsThreshold: Perbill = Perbill::from_percent(17); pub OffchainRepeat: BlockNumber = UnsignedPhase::get() / 8; - pub HistoryDepth: u32 = 84; + pub HistoryDepth: u32 = 120; } pub struct StakingBenchmarkingConfig; From 9697a842ec17db2d251c911c3978a24b9bfada68 Mon Sep 17 00:00:00 2001 From: Mokhtar Naamani Date: Mon, 13 Mar 2023 22:19:54 +0400 Subject: [PATCH 21/87] v0.9.39 - fix runtime-benchmarks feature build --- bin/node/Cargo.toml | 5 ++++- .../content/src/benchmarks/benchmarking.rs | 22 +++++++++---------- runtime-modules/council/src/benchmarking.rs | 2 +- .../project-token/src/benchmarking.rs | 2 +- .../proposals/codex/src/benchmarking.rs | 2 +- .../proposals/discussion/src/benchmarking.rs | 2 +- .../proposals/engine/src/benchmarking.rs | 2 +- .../referendum/src/benchmarking.rs | 2 +- .../working-group/src/benchmarking.rs | 2 +- runtime/Cargo.toml | 9 +++++--- 10 files changed, 28 insertions(+), 22 deletions(-) diff --git a/bin/node/Cargo.toml b/bin/node/Cargo.toml index de7c74f4d1..7596b92391 100644 --- a/bin/node/Cargo.toml +++ b/bin/node/Cargo.toml @@ -146,4 +146,7 @@ cli = [ # "node-inspect", ] -runtime-benchmarks = ["node-runtime/runtime-benchmarks", "frame-benchmarking-cli"] +runtime-benchmarks = [ + "node-runtime/runtime-benchmarks", + "frame-benchmarking-cli/runtime-benchmarks" +] diff --git a/runtime-modules/content/src/benchmarks/benchmarking.rs b/runtime-modules/content/src/benchmarks/benchmarking.rs index a3898e01f1..dd60056dbb 100644 --- a/runtime-modules/content/src/benchmarks/benchmarking.rs +++ b/runtime-modules/content/src/benchmarks/benchmarking.rs @@ -1544,7 +1544,7 @@ benchmarks! { // Check event emitted assert_last_event::( ::RuntimeEvent::from( - project_token::RuntimeEvent::::TokenAmountTransferredByIssuer( + project_token::Event::::TokenAmountTransferredByIssuer( token_id, curator_member_id, Transfers(outputs.0 @@ -1584,7 +1584,7 @@ benchmarks! { // Check event emitted assert_last_event::( ::RuntimeEvent::from( - project_token::RuntimeEvent::::TransferPolicyChangedToPermissionless( + project_token::Event::::TransferPolicyChangedToPermissionless( token_id ) ).into() @@ -1612,7 +1612,7 @@ benchmarks! { // Check event emitted assert_last_event::( ::RuntimeEvent::from( - project_token::RuntimeEvent::::TokenDeissued(token_id) + project_token::Event::::TokenDeissued(token_id) ).into() ); } @@ -1664,7 +1664,7 @@ benchmarks! { // Check event emitted assert_last_event::( ::RuntimeEvent::from( - project_token::RuntimeEvent::::TokenSaleInitialized( + project_token::Event::::TokenSaleInitialized( token_id, token.next_sale_id - 1, token.sale.unwrap(), @@ -1709,7 +1709,7 @@ benchmarks! { // Check event emitted assert_last_event::( ::RuntimeEvent::from( - project_token::RuntimeEvent::::UpcomingTokenSaleUpdated( + project_token::Event::::UpcomingTokenSaleUpdated( token_id, sale_id, new_start_block, @@ -1765,7 +1765,7 @@ benchmarks! { // Check event emitted assert_last_event::( ::RuntimeEvent::from( - project_token::RuntimeEvent::::TokenSaleFinalized( + project_token::Event::::TokenSaleFinalized( token_id, sale_id, TokenBalanceOf::::from(DEFAULT_CRT_SALE_UPPER_BOUND) - tokens_sold, @@ -1814,7 +1814,7 @@ benchmarks! { // Check event emitted assert_past_event::( ::RuntimeEvent::from( - project_token::RuntimeEvent::::RevenueSplitIssued( + project_token::Event::::RevenueSplitIssued( token_id, start, duration, @@ -1868,7 +1868,7 @@ benchmarks! { // Check event emitted assert_past_event::( ::RuntimeEvent::from( - project_token::RuntimeEvent::::RevenueSplitIssued( + project_token::Event::::RevenueSplitIssued( token_id, start, duration, @@ -1948,7 +1948,7 @@ benchmarks! { // Check event emitted assert_last_event::( ::RuntimeEvent::from( - project_token::RuntimeEvent::::RevenueSplitFinalized( + project_token::Event::::RevenueSplitFinalized( token_id, channel_acc, leftovers @@ -1992,7 +1992,7 @@ benchmarks! { // Check event emitted assert_last_event::( ::RuntimeEvent::from( - project_token::RuntimeEvent::::PatronageRateDecreasedTo( + project_token::Event::::PatronageRateDecreasedTo( token_id, new_block_rate.to_yearly_rate_representation(T::BlocksPerYear::get()) ), @@ -2038,7 +2038,7 @@ benchmarks! { // Check event emitted assert_last_event::( ::RuntimeEvent::from( - project_token::RuntimeEvent::::PatronageCreditClaimed( + project_token::Event::::PatronageCreditClaimed( token_id, actually_claimed, collaborator_member_id diff --git a/runtime-modules/council/src/benchmarking.rs b/runtime-modules/council/src/benchmarking.rs index 599a9faf73..a11439ff76 100644 --- a/runtime-modules/council/src/benchmarking.rs +++ b/runtime-modules/council/src/benchmarking.rs @@ -3,9 +3,9 @@ use super::*; use balances::Pallet as Balances; use frame_benchmarking::{account, benchmarks, Zero}; use frame_support::traits::{Currency, OnFinalize, OnInitialize}; +use frame_system::EventRecord; use frame_system::Pallet as System; use frame_system::RawOrigin; -use frame_system::RuntimeEventRecord; use membership::Module as Membership; use sp_runtime::traits::{Bounded, One}; use sp_std::convert::TryInto; diff --git a/runtime-modules/project-token/src/benchmarking.rs b/runtime-modules/project-token/src/benchmarking.rs index ab4746ce10..1cded11ca2 100644 --- a/runtime-modules/project-token/src/benchmarking.rs +++ b/runtime-modules/project-token/src/benchmarking.rs @@ -6,9 +6,9 @@ use crate::Module as Token; use balances::Pallet as Balances; use common::membership::MembershipTypes; use frame_benchmarking::{account, benchmarks, Zero}; +use frame_system::EventRecord; use frame_system::Pallet as System; use frame_system::RawOrigin; -use frame_system::RuntimeEventRecord; use membership::{BuyMembershipParameters, Module as Members}; use sp_runtime::{traits::Hash, Permill, SaturatedConversion}; use sp_std::{vec, vec::Vec}; diff --git a/runtime-modules/proposals/codex/src/benchmarking.rs b/runtime-modules/proposals/codex/src/benchmarking.rs index d58616819b..c5f5781455 100644 --- a/runtime-modules/proposals/codex/src/benchmarking.rs +++ b/runtime-modules/proposals/codex/src/benchmarking.rs @@ -13,9 +13,9 @@ use content::NftLimitPeriod; use frame_benchmarking::{account, benchmarks, Zero}; use frame_support::sp_runtime::traits::Bounded; use frame_support::traits::Currency; +use frame_system::EventRecord; use frame_system::Pallet as System; use frame_system::RawOrigin; -use frame_system::RuntimeEventRecord; use membership::Module as Membership; use proposals_engine::Module as Engine; use sp_core::Hasher; diff --git a/runtime-modules/proposals/discussion/src/benchmarking.rs b/runtime-modules/proposals/discussion/src/benchmarking.rs index ac4ae89a70..3730c52688 100644 --- a/runtime-modules/proposals/discussion/src/benchmarking.rs +++ b/runtime-modules/proposals/discussion/src/benchmarking.rs @@ -7,9 +7,9 @@ use council::Module as Council; use frame_benchmarking::{account, benchmarks}; use frame_support::sp_runtime::traits::Bounded; use frame_support::traits::{Currency, OnFinalize, OnInitialize}; +use frame_system::EventRecord; use frame_system::Pallet as System; use frame_system::RawOrigin; -use frame_system::RuntimeEventRecord; use membership::Module as Membership; use referendum::Module as Referendum; use referendum::ReferendumManager; diff --git a/runtime-modules/proposals/engine/src/benchmarking.rs b/runtime-modules/proposals/engine/src/benchmarking.rs index 1e3e06890f..a527932cab 100644 --- a/runtime-modules/proposals/engine/src/benchmarking.rs +++ b/runtime-modules/proposals/engine/src/benchmarking.rs @@ -7,9 +7,9 @@ use core::convert::TryInto; use council::Module as Council; use frame_benchmarking::{account, benchmarks}; use frame_support::traits::{Currency, OnFinalize, OnInitialize}; +use frame_system::EventRecord; use frame_system::Pallet as System; use frame_system::RawOrigin; -use frame_system::RuntimeEventRecord; use membership::Module as Membership; use referendum::Module as Referendum; use referendum::ReferendumManager; diff --git a/runtime-modules/referendum/src/benchmarking.rs b/runtime-modules/referendum/src/benchmarking.rs index c04c3b9b5b..637b175cd3 100644 --- a/runtime-modules/referendum/src/benchmarking.rs +++ b/runtime-modules/referendum/src/benchmarking.rs @@ -3,9 +3,9 @@ use super::*; use frame_benchmarking::{account, benchmarks_instance, Zero}; use frame_support::traits::{Currency, OnFinalize, OnInitialize}; +use frame_system::EventRecord; use frame_system::Pallet as System; use frame_system::RawOrigin; -use frame_system::RuntimeEventRecord; use membership::Module as Membership; use sp_runtime::traits::{Bounded, One}; use sp_std::prelude::*; diff --git a/runtime-modules/working-group/src/benchmarking.rs b/runtime-modules/working-group/src/benchmarking.rs index b638610efc..e5f7bf73f5 100644 --- a/runtime-modules/working-group/src/benchmarking.rs +++ b/runtime-modules/working-group/src/benchmarking.rs @@ -3,9 +3,9 @@ use super::*; use core::convert::TryInto; use frame_benchmarking::{account, benchmarks_instance, Zero}; use frame_support::traits::OnInitialize; +use frame_system::EventRecord; use frame_system::Pallet as System; use frame_system::RawOrigin; -use frame_system::RuntimeEventRecord; use sp_runtime::traits::Bounded; use sp_std::prelude::*; use sp_std::vec; diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index c071fc6971..f8f5cb87a8 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -131,6 +131,8 @@ std = [ 'frame-system/std', 'frame-election-provider-support/std', 'frame-benchmarking/std', + 'pallet-offences-benchmarking?/std', + 'frame-system-benchmarking?/std', # Pallets 'pallet-timestamp/std', @@ -140,6 +142,7 @@ std = [ 'pallet-grandpa/std', 'pallet-babe/std', 'pallet-session/std', + "pallet-session-benchmarking?/std", 'pallet-authority-discovery/std', 'pallet-authorship/std', 'pallet-insecure-randomness-collective-flip/std', @@ -176,14 +179,14 @@ runtime-benchmarks = [ "frame-support/runtime-benchmarks", "sp-runtime/runtime-benchmarks", "frame-benchmarking", - "frame-system-benchmarking", + "frame-system-benchmarking/runtime-benchmarks", "frame-system/runtime-benchmarks", # Substrate pallets - "pallet-offences-benchmarking", + "pallet-offences-benchmarking/runtime-benchmarks", "pallet-vesting/runtime-benchmarks", "pallet-multisig/runtime-benchmarks", - "pallet-session-benchmarking", + "pallet-session-benchmarking/runtime-benchmarks", "pallet-balances/runtime-benchmarks", "pallet-im-online/runtime-benchmarks", "pallet-staking/runtime-benchmarks", From caca06ce614440df4abfe219b6a1a14f99988e21 Mon Sep 17 00:00:00 2001 From: Mokhtar Naamani Date: Mon, 13 Mar 2023 22:50:42 +0400 Subject: [PATCH 22/87] v0.9.39 - re-enable node-inspect command --- Cargo.lock | 18 ++++++++++++++++++ Cargo.toml | 2 +- bin/inspect/Cargo.toml | 4 ++-- bin/inspect/src/cli.rs | 6 +++--- bin/inspect/src/command.rs | 2 +- bin/inspect/src/lib.rs | 24 +++++++++--------------- bin/node/Cargo.toml | 6 +++--- bin/node/src/cli.rs | 12 ++++++------ bin/node/src/command.rs | 8 ++++---- 9 files changed, 47 insertions(+), 35 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index aa07e01291..e2190870f5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3306,6 +3306,7 @@ dependencies = [ "jsonrpsee", "log", "nix 0.23.2", + "node-inspect", "overrides", "pallet-balances", "pallet-im-online", @@ -4756,6 +4757,23 @@ dependencies = [ "static_assertions", ] +[[package]] +name = "node-inspect" +version = "0.9.0-dev" +dependencies = [ + "clap 4.1.8", + "overrides", + "parity-scale-codec", + "sc-cli", + "sc-client-api", + "sc-executor", + "sc-service", + "sp-blockchain", + "sp-core", + "sp-runtime", + "thiserror", +] + [[package]] name = "nohash-hasher" version = "0.2.0" diff --git a/Cargo.toml b/Cargo.toml index 1bd40d58d2..33e3549de7 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -20,7 +20,7 @@ members = [ "runtime-modules/utility", "runtime-modules/project-token", "bin/node", - # "bin/inspect", + "bin/inspect", "bin/utils/chain-spec-builder/", "bin/utils/session-keys/", "bin/utils/call-sizes/", diff --git a/bin/inspect/Cargo.toml b/bin/inspect/Cargo.toml index 2901a4c9a1..29f2cc094c 100644 --- a/bin/inspect/Cargo.toml +++ b/bin/inspect/Cargo.toml @@ -8,8 +8,8 @@ homepage = "https://substrate.io" repository = "https://github.com/paritytech/substrate/" [dependencies] -clap = { version = "3.1.6", features = ["derive"] } -codec = { package = "parity-scale-codec", version = "3.1.5" } +clap = { version = "4.0.9", features = ["derive"] } +codec = { package = "parity-scale-codec", version = "3.2.2" } thiserror = "1.0" sc-cli = { package = 'sc-cli', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e' } sc-client-api = { package = 'sc-client-api', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e' } diff --git a/bin/inspect/src/cli.rs b/bin/inspect/src/cli.rs index fb81f53983..0f80161d65 100644 --- a/bin/inspect/src/cli.rs +++ b/bin/inspect/src/cli.rs @@ -1,6 +1,6 @@ // This file is part of Substrate. -// Copyright (C) 2020-2022 Parity Technologies (UK) Ltd. +// Copyright (C) Parity Technologies (UK) Ltd. // SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 // This program is free software: you can redistribute it and/or modify @@ -46,7 +46,7 @@ pub enum InspectSubCmd { /// Can be either a block hash (no 0x prefix) or a number to retrieve existing block, /// or a 0x-prefixed bytes hex string, representing SCALE encoding of /// a block. - #[clap(value_name = "HASH or NUMBER or BYTES")] + #[arg(value_name = "HASH or NUMBER or BYTES")] input: String, }, /// Decode extrinsic with native version of runtime and print out the details. @@ -56,7 +56,7 @@ pub enum InspectSubCmd { /// Can be either a block hash (no 0x prefix) or number and the index, in the form /// of `{block}:{index}` or a 0x-prefixed bytes hex string, /// representing SCALE encoding of an extrinsic. - #[clap(value_name = "BLOCK:INDEX or BYTES")] + #[arg(value_name = "BLOCK:INDEX or BYTES")] input: String, }, } diff --git a/bin/inspect/src/command.rs b/bin/inspect/src/command.rs index 90a226e1ea..08a8432fd3 100644 --- a/bin/inspect/src/command.rs +++ b/bin/inspect/src/command.rs @@ -1,6 +1,6 @@ // This file is part of Substrate. -// Copyright (C) 2020-2022 Parity Technologies (UK) Ltd. +// Copyright (C) Parity Technologies (UK) Ltd. // SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 // This program is free software: you can redistribute it and/or modify diff --git a/bin/inspect/src/lib.rs b/bin/inspect/src/lib.rs index 7e66e3c444..a7dc89b7a7 100644 --- a/bin/inspect/src/lib.rs +++ b/bin/inspect/src/lib.rs @@ -1,6 +1,6 @@ // This file is part of Substrate. // -// Copyright (C) 2020-2022 Parity Technologies (UK) Ltd. +// Copyright (C) Parity Technologies (UK) Ltd. // SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 // // This program is free software: you can redistribute it and/or modify @@ -79,7 +79,6 @@ impl PrettyPrinter for DebugPrinter { /// Aggregated error for `Inspector` operations. #[derive(Debug, thiserror::Error)] -#[allow(clippy::large_enum_variant)] pub enum Error { /// Could not decode Block or Extrinsic. #[error(transparent)] @@ -145,27 +144,27 @@ impl> Inspector BlockAddress::Bytes(bytes) => TBlock::decode(&mut &*bytes)?, BlockAddress::Number(number) => { let id = BlockId::number(number); + let hash = self.chain.expect_block_hash_from_id(&id)?; let not_found = format!("Could not find block {:?}", id); let body = self .chain - .block_body(&id)? + .block_body(hash)? .ok_or_else(|| Error::NotFound(not_found.clone()))?; let header = self .chain - .header(id)? + .header(hash)? .ok_or_else(|| Error::NotFound(not_found.clone()))?; TBlock::new(header, body) } BlockAddress::Hash(hash) => { - let id = BlockId::hash(hash); - let not_found = format!("Could not find block {:?}", id); + let not_found = format!("Could not find block {:?}", BlockId::::Hash(hash)); let body = self .chain - .block_body(&id)? + .block_body(hash)? .ok_or_else(|| Error::NotFound(not_found.clone()))?; let header = self .chain - .header(id)? + .header(hash)? .ok_or_else(|| Error::NotFound(not_found.clone()))?; TBlock::new(header, body) } @@ -250,8 +249,6 @@ impl FromStr for ExtrinsicAddres fn from_str(s: &str) -> Result { // first try raw bytes - // sp_core::bytes is an alias for impl_serde::serialize - // Behavior we expect is only in v0.3.1, unit tests will break with v0.3.2 if let Ok(bytes) = sp_core::bytes::from_hex(s).map(Self::Bytes) { return Ok(bytes); } @@ -298,9 +295,6 @@ mod tests { assert_eq!(b3, Ok(BlockAddress::Bytes(vec![0, 0x12, 0x34, 0x5f]))); } - // If you find these tests breaking - // Make sure Cargo.lock has pacakge impl_serde using v0.3.1 - // unit tests will break with v0.3.2 (see notes above for impl of from_str for ExtrinsicAddress) #[test] fn should_parse_extrinsic_address() { type BlockAddress = super::BlockAddress; @@ -312,7 +306,7 @@ mod tests { let b2 = ExtrinsicAddress::from_str("0 0"); let b3 = ExtrinsicAddress::from_str("0x0012345f"); - assert_eq!(e0, Err("Extrinsic index missing: example \"5:0\"".into())); + assert_eq!(e0, Ok(ExtrinsicAddress::Bytes(vec![0x12, 0x34]))); assert_eq!( b0, Ok(ExtrinsicAddress::Block( @@ -324,7 +318,7 @@ mod tests { b1, Ok(ExtrinsicAddress::Block(BlockAddress::Number(1234), 0)) ); - assert_eq!(b2, Ok(ExtrinsicAddress::Block(BlockAddress::Number(0), 0))); + assert_eq!(b2, Ok(ExtrinsicAddress::Bytes(vec![0, 0]))); assert_eq!(b3, Ok(ExtrinsicAddress::Bytes(vec![0, 0x12, 0x34, 0x5f]))); } } diff --git a/bin/node/Cargo.toml b/bin/node/Cargo.toml index 7596b92391..957ce99c44 100644 --- a/bin/node/Cargo.toml +++ b/bin/node/Cargo.toml @@ -90,7 +90,7 @@ sc-cli = { package = 'sc-cli', optional = true, git = 'https://github.com/joystr frame-benchmarking-cli = { package = 'frame-benchmarking-cli', optional = true, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} frame-benchmarking = { package = 'frame-benchmarking', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} serde_json = "1.0.79" -# node-inspect = { path = "../inspect", optional = true } +node-inspect = { path = "../inspect", optional = true } [target.'cfg(any(target_arch="x86_64", target_arch="aarch64"))'.dependencies] sc-cli = { package = 'sc-cli', optional = true, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} @@ -130,7 +130,7 @@ substrate-build-script-utils = { package = 'substrate-build-script-utils', optio substrate-frame-cli = { package = 'substrate-frame-cli', optional = true, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} sc-cli = { package = 'sc-cli', optional = true, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} pallet-balances = { package = 'pallet-balances', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} -# node-inspect = { path = "../inspect", optional = true } +node-inspect = { path = "../inspect", optional = true } sc-storage-monitor = { package = 'sc-storage-monitor', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} [features] @@ -143,7 +143,7 @@ cli = [ "clap", "clap_complete", "substrate-build-script-utils", - # "node-inspect", + "node-inspect", ] runtime-benchmarks = [ diff --git a/bin/node/src/cli.rs b/bin/node/src/cli.rs index 6775dfd632..d976534c21 100644 --- a/bin/node/src/cli.rs +++ b/bin/node/src/cli.rs @@ -45,12 +45,12 @@ pub struct Cli { /// Possible subcommands of the main binary. #[derive(Debug, clap::Subcommand)] pub enum Subcommand { - // /// The custom inspect subcommmand for decoding blocks and extrinsics. - // #[clap( - // name = "inspect", - // about = "Decode given block or extrinsic using current native runtime." - // )] - // Inspect(node_inspect::cli::InspectCmd), + /// The custom inspect subcommmand for decoding blocks and extrinsics. + #[clap( + name = "inspect", + about = "Decode given block or extrinsic using current native runtime." + )] + Inspect(node_inspect::cli::InspectCmd), /// Sub-commands concerned with benchmarking. /// The pallet benchmarking moved to the `pallet` sub-command. #[command(subcommand)] diff --git a/bin/node/src/command.rs b/bin/node/src/command.rs index a70ffbd69f..c1fe842c6e 100644 --- a/bin/node/src/command.rs +++ b/bin/node/src/command.rs @@ -99,11 +99,11 @@ pub fn run() -> Result<()> { service::new_full(config, cli).map_err(sc_cli::Error::Service) }) } - // Some(Subcommand::Inspect(cmd)) => { - // let runner = cli.create_runner(cmd)?; + Some(Subcommand::Inspect(cmd)) => { + let runner = cli.create_runner(cmd)?; - // runner.sync_run(|config| cmd.run::(config)) - // } + runner.sync_run(|config| cmd.run::(config)) + } Some(Subcommand::Benchmark(cmd)) => { let runner = cli.create_runner(cmd)?; From b5c246294e4fe94b4c44e4d8e2938814d62e247c Mon Sep 17 00:00:00 2001 From: Mokhtar Naamani Date: Mon, 13 Mar 2023 23:51:21 +0400 Subject: [PATCH 23/87] v0.9.39 - fix joystream-node unit tests --- bin/node/src/service.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/bin/node/src/service.rs b/bin/node/src/service.rs index 25241a76a4..3b4677c923 100644 --- a/bin/node/src/service.rs +++ b/bin/node/src/service.rs @@ -616,6 +616,7 @@ mod tests { RuntimeAppPublic, }; use sp_timestamp; + use std::convert::TryInto; use std::sync::Arc; type AccountPublic = ::Signer; @@ -788,6 +789,7 @@ mod tests { .expect("error importing test block"); }, |service, _| { + let tip = 0; let amount = 5 * CENTS; let to: Address = AccountPublic::from(bob.public()).into_account().into(); let from: Address = AccountPublic::from(charlie.public()).into_account().into(); From 7f4adef1dfadebffef9b338d5a42ea1c1071c45c Mon Sep 17 00:00:00 2001 From: Mokhtar Naamani Date: Mon, 13 Mar 2023 23:51:43 +0400 Subject: [PATCH 24/87] v0.9.39 - update wastime to latest --- Cargo.lock | 183 ++++++++++++++++++++++++++++++----------------------- 1 file changed, 103 insertions(+), 80 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index e2190870f5..0e29f0d06d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -852,7 +852,7 @@ checksum = "08a1ec454bc3eead8719cb56e15dbbfecdbc14e4b3a3ae4936cc6e31f5fc0d07" dependencies = [ "camino", "cargo-platform", - "semver 1.0.16", + "semver 1.0.17", "serde", "serde_json", "thiserror", @@ -958,9 +958,9 @@ dependencies = [ [[package]] name = "chrono" -version = "0.4.23" +version = "0.4.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16b0a3d9ed01224b22057780a37bb8c5dbfe1be8ba48678e7bf57ec4b385411f" +checksum = "4e3c5919066adf22df73762e50cffcde3a758f2a848b113b586d1f86728b673b" dependencies = [ "iana-time-zone", "js-sys", @@ -1166,9 +1166,9 @@ checksum = "520fbf3c07483f94e3e3ca9d0cfd913d7718ef2483d2cfd91c0d9e91474ab913" [[package]] name = "constant_time_eq" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3ad85c1f65dc7b37604eb0e89748faf0b9653065f2a8ef69f96a687ec1e9279" +checksum = "13418e745008f7349ec7e449155f419a61b92b58a99cc3616942b926825ec76b" [[package]] name = "core-foundation" @@ -1543,9 +1543,9 @@ dependencies = [ [[package]] name = "curve25519-dalek" -version = "4.0.0-rc.0" +version = "4.0.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8da00a7a9a4eb92a0a0f8e75660926d48f0d0f3c537e455c457bcdaa1e16b1ac" +checksum = "8d4ba9852b42210c7538b75484f9daa0655e9a3ac04f693747bb0f02cf3cfe16" dependencies = [ "cfg-if", "fiat-crypto", @@ -2511,9 +2511,9 @@ checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" [[package]] name = "futures" -version = "0.3.26" +version = "0.3.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13e2792b0ff0340399d58445b88fd9770e3489eff258a4cbc1523418f12abf84" +checksum = "531ac96c6ff5fd7c62263c5e3c67a603af4fcaee2e1a0ae5565ba3a11e69e549" dependencies = [ "futures-channel", "futures-core", @@ -2526,9 +2526,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.26" +version = "0.3.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e5317663a9089767a1ec00a487df42e0ca174b61b4483213ac24448e4664df5" +checksum = "164713a5a0dcc3e7b4b1ed7d3b433cabc18025386f9339346e8daf15963cf7ac" dependencies = [ "futures-core", "futures-sink", @@ -2536,15 +2536,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.26" +version = "0.3.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec90ff4d0fe1f57d600049061dc6bb68ed03c7d2fbd697274c41805dcb3f8608" +checksum = "86d7a0c1aa76363dac491de0ee99faf6941128376f1cf96f07db7603b7de69dd" [[package]] name = "futures-executor" -version = "0.3.26" +version = "0.3.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8de0a35a6ab97ec8869e32a2473f4b1324459e14c29275d14b10cb1fd19b50e" +checksum = "1997dd9df74cdac935c76252744c1ed5794fac083242ea4fe77ef3ed60ba0f83" dependencies = [ "futures-core", "futures-task", @@ -2554,9 +2554,9 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.26" +version = "0.3.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfb8371b6fb2aeb2d280374607aeabfc99d95c72edfe51692e42d3d7f0d08531" +checksum = "89d422fa3cbe3b40dca574ab087abb5bc98258ea57eea3fd6f1fa7162c778b91" [[package]] name = "futures-lite" @@ -2575,9 +2575,9 @@ dependencies = [ [[package]] name = "futures-macro" -version = "0.3.26" +version = "0.3.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95a73af87da33b5acf53acfebdc339fe592ecf5357ac7c0a7734ab9d8c876a70" +checksum = "3eb14ed937631bd8b8b8977f2c198443447a8355b6e3ca599f38c975e5a963b6" dependencies = [ "proc-macro2", "quote", @@ -2597,15 +2597,15 @@ dependencies = [ [[package]] name = "futures-sink" -version = "0.3.26" +version = "0.3.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f310820bb3e8cfd46c80db4d7fb8353e15dfff853a127158425f31e0be6c8364" +checksum = "ec93083a4aecafb2a80a885c9de1f0ccae9dbd32c2bb54b0c3a65690e0b8d2f2" [[package]] name = "futures-task" -version = "0.3.26" +version = "0.3.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcf79a1bf610b10f42aea489289c5a2c478a786509693b80cd39c44ccd936366" +checksum = "fd65540d33b37b16542a0438c12e6aeead10d4ac5d05bd3f805b8f35ab592879" [[package]] name = "futures-timer" @@ -2615,9 +2615,9 @@ checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c" [[package]] name = "futures-util" -version = "0.3.26" +version = "0.3.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c1d6de3acfef38d2be4b1f543f553131788603495be83da675e180c8d6b7bd1" +checksum = "3ef6b17e481503ec85211fed8f39d1970f128935ca1f814cd32ac4a6842e84ab" dependencies = [ "futures-channel", "futures-core", @@ -3003,9 +3003,9 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "hyper" -version = "0.14.24" +version = "0.14.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e011372fa0b68db8350aa7a248930ecc7839bf46d8485577d69f117a75f164c" +checksum = "cc5e554ff619822309ffd57d8734d77cd5ce6238bc956f037ea06c58238c9899" dependencies = [ "bytes", "futures-channel", @@ -3765,18 +3765,16 @@ dependencies = [ [[package]] name = "libp2p-core" -version = "0.39.0" +version = "0.39.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "881d9a54e97d97cdaa4125d48269d97ca8c40e5fefec6b85b30440dc60cc551f" +checksum = "9b7f8b7d65c070a5a1b5f8f0510648189da08f787b8963f8e21219e0710733af" dependencies = [ - "asn1_der", - "bs58", - "ed25519-dalek", "either", "fnv", "futures", "futures-timer", "instant", + "libp2p-identity", "log", "multiaddr 0.17.0", "multihash 0.17.0", @@ -3784,17 +3782,13 @@ dependencies = [ "once_cell", "parking_lot 0.12.1", "pin-project", - "prost", - "prost-build", + "quick-protobuf", "rand 0.8.5", "rw-stream-sink", - "sec1", - "sha2 0.10.6", "smallvec", "thiserror", "unsigned-varint", "void", - "zeroize", ] [[package]] @@ -3832,6 +3826,25 @@ dependencies = [ "void", ] +[[package]] +name = "libp2p-identity" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff6c9cb71e2333d31f18e7556b9a5f1d0a2e013effc9325e36f436be65fe7bd2" +dependencies = [ + "bs58", + "ed25519-dalek", + "log", + "multiaddr 0.17.0", + "multihash 0.17.0", + "prost", + "prost-build", + "quick-protobuf", + "rand 0.8.5", + "thiserror", + "zeroize", +] + [[package]] name = "libp2p-kad" version = "0.42.1" @@ -4041,13 +4054,14 @@ dependencies = [ [[package]] name = "libp2p-tls" -version = "0.1.0-alpha.2" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9baf6f6292149e124ee737d9a79dbee783f29473fc368c7faad9d157841078a" +checksum = "ff08d13d0dc66e5e9ba6279c1de417b84fa0d0adc3b03e5732928c180ec02781" dependencies = [ "futures", "futures-rustls", - "libp2p-core 0.39.0", + "libp2p-core 0.39.1", + "libp2p-identity", "rcgen 0.10.0", "ring", "rustls 0.20.8", @@ -6328,9 +6342,9 @@ checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068" [[package]] name = "proc-macro2" -version = "1.0.51" +version = "1.0.52" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d727cae5b39d21da60fa540906919ad737832fe0b1c165da3a34d6548c849d6" +checksum = "1d0e1ae9e836cc3beddd63db0df682593d7e2d3d891ae8c9083d2113e1744224" dependencies = [ "unicode-ident", ] @@ -6454,6 +6468,15 @@ version = "1.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" +[[package]] +name = "quick-protobuf" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d6da84cc204722a989e01ba2f6e1e276e190f22263d0cb6ce8526fcdb0d2e1f" +dependencies = [ + "byteorder", +] + [[package]] name = "quicksink" version = "0.1.2" @@ -6485,9 +6508,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.23" +version = "1.0.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8856d8364d252a14d474036ea1358d63c9e6965c8e5c1885c18f73d70bff9c7b" +checksum = "4424af4bf778aae2051a77b60283332f386554255d722233d09fbfc7e30da2fc" dependencies = [ "proc-macro2", ] @@ -6861,7 +6884,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" dependencies = [ - "semver 1.0.16", + "semver 1.0.17", ] [[package]] @@ -8253,9 +8276,9 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.16" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58bc9567378fc7690d6b2addae4e60ac2eeea07becb2c64b9f218b53865cba2a" +checksum = "bebd363326d05ec3e2f532ab7660680f3b02130d780c299bca73469d521bc0ed" dependencies = [ "serde", ] @@ -8268,9 +8291,9 @@ checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" [[package]] name = "serde" -version = "1.0.154" +version = "1.0.155" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8cdd151213925e7f1ab45a9bbfb129316bd00799784b174b7cc7bcd16961c49e" +checksum = "71f2b4817415c6d4210bfe1c7bfcf4801b2d904cb4d0e1a8fdb651013c9e86b8" dependencies = [ "serde_derive", ] @@ -8287,9 +8310,9 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.154" +version = "1.0.155" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fc80d722935453bcafdc2c9a73cd6fac4dc1938f0346035d84bf99fa9e33217" +checksum = "d071a94a3fac4aff69d023a7f411e33f40f3483f8c5190b1953822b6b76d7630" dependencies = [ "proc-macro2", "quote", @@ -8488,14 +8511,14 @@ checksum = "5e9f0ab6ef7eb7353d9119c170a436d1bf248eea575ac42d19d12f4e34130831" [[package]] name = "snow" -version = "0.9.1" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12ba5f4d4ff12bdb6a169ed51b7c48c0e0ac4b0b4b31012b2571e97d78d3201d" +checksum = "5ccba027ba85743e09d15c03296797cad56395089b832b48b5a5217880f57733" dependencies = [ "aes-gcm 0.9.4", "blake2", "chacha20poly1305", - "curve25519-dalek 4.0.0-rc.0", + "curve25519-dalek 4.0.0-rc.1", "rand_core 0.6.4", "ring", "rustc_version 0.4.0", @@ -11054,12 +11077,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" dependencies = [ "windows_aarch64_gnullvm", - "windows_aarch64_msvc 0.42.1", - "windows_i686_gnu 0.42.1", - "windows_i686_msvc 0.42.1", - "windows_x86_64_gnu 0.42.1", + "windows_aarch64_msvc 0.42.2", + "windows_i686_gnu 0.42.2", + "windows_i686_msvc 0.42.2", + "windows_x86_64_gnu 0.42.2", "windows_x86_64_gnullvm", - "windows_x86_64_msvc 0.42.1", + "windows_x86_64_msvc 0.42.2", ] [[package]] @@ -11073,24 +11096,24 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.42.1" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e2522491fbfcd58cc84d47aeb2958948c4b8982e9a2d8a2a35bbaed431390e7" +checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" dependencies = [ "windows_aarch64_gnullvm", - "windows_aarch64_msvc 0.42.1", - "windows_i686_gnu 0.42.1", - "windows_i686_msvc 0.42.1", - "windows_x86_64_gnu 0.42.1", + "windows_aarch64_msvc 0.42.2", + "windows_i686_gnu 0.42.2", + "windows_i686_msvc 0.42.2", + "windows_x86_64_gnu 0.42.2", "windows_x86_64_gnullvm", - "windows_x86_64_msvc 0.42.1", + "windows_x86_64_msvc 0.42.2", ] [[package]] name = "windows_aarch64_gnullvm" -version = "0.42.1" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c9864e83243fdec7fc9c5444389dcbbfd258f745e7853198f365e3c4968a608" +checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" [[package]] name = "windows_aarch64_msvc" @@ -11100,9 +11123,9 @@ checksum = "17cffbe740121affb56fad0fc0e421804adf0ae00891205213b5cecd30db881d" [[package]] name = "windows_aarch64_msvc" -version = "0.42.1" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c8b1b673ffc16c47a9ff48570a9d85e25d265735c503681332589af6253c6c7" +checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" [[package]] name = "windows_i686_gnu" @@ -11112,9 +11135,9 @@ checksum = "2564fde759adb79129d9b4f54be42b32c89970c18ebf93124ca8870a498688ed" [[package]] name = "windows_i686_gnu" -version = "0.42.1" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de3887528ad530ba7bdbb1faa8275ec7a1155a45ffa57c37993960277145d640" +checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" [[package]] name = "windows_i686_msvc" @@ -11124,9 +11147,9 @@ checksum = "9cd9d32ba70453522332c14d38814bceeb747d80b3958676007acadd7e166956" [[package]] name = "windows_i686_msvc" -version = "0.42.1" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf4d1122317eddd6ff351aa852118a2418ad4214e6613a50e0191f7004372605" +checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" [[package]] name = "windows_x86_64_gnu" @@ -11136,15 +11159,15 @@ checksum = "cfce6deae227ee8d356d19effc141a509cc503dfd1f850622ec4b0f84428e1f4" [[package]] name = "windows_x86_64_gnu" -version = "0.42.1" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1040f221285e17ebccbc2591ffdc2d44ee1f9186324dd3e84e99ac68d699c45" +checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" [[package]] name = "windows_x86_64_gnullvm" -version = "0.42.1" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "628bfdf232daa22b0d64fdb62b09fcc36bb01f05a3939e20ab73aaf9470d0463" +checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" [[package]] name = "windows_x86_64_msvc" @@ -11154,9 +11177,9 @@ checksum = "d19538ccc21819d01deaf88d6a17eae6596a12e9aafdbb97916fb49896d89de9" [[package]] name = "windows_x86_64_msvc" -version = "0.42.1" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "447660ad36a13288b1db4d4248e857b510e8c3a225c822ba4fb748c0aafecffd" +checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" [[package]] name = "winreg" From e81130993b51626d8f31133a35d202caddda4afb Mon Sep 17 00:00:00 2001 From: Mokhtar Naamani Date: Tue, 14 Mar 2023 11:16:16 +0400 Subject: [PATCH 25/87] v0.9.39 - use rustc nightly-2022-11-15 --- .github/workflows/joystream-node.yml | 8 ++++---- README.md | 2 +- bin/node/README.md | 6 +++--- .../ansible/roles/common/tasks/build-binaries.yml | 6 +++--- joystream-node.Dockerfile | 15 ++++++++------- scripts/cargo-build-with-benchmarking.sh | 4 ++-- scripts/cargo-build.sh | 4 ++-- scripts/cargo-checks.sh | 2 +- scripts/cargo-tests-with-networking.sh | 4 ++-- scripts/run-dev-chain.sh | 8 ++++---- setup.sh | 6 +++--- 11 files changed, 33 insertions(+), 32 deletions(-) diff --git a/.github/workflows/joystream-node.yml b/.github/workflows/joystream-node.yml index 5193434505..e8dd57a1be 100644 --- a/.github/workflows/joystream-node.yml +++ b/.github/workflows/joystream-node.yml @@ -36,11 +36,11 @@ jobs: - name: Build env: - WASM_BUILD_TOOLCHAIN: nightly-2022-05-11 + WASM_BUILD_TOOLCHAIN: nightly-2022-11-15 run: | - cargo +nightly-2022-05-11 clippy --release --features runtime-benchmarks && - cargo +nightly-2022-05-11 test --release --features runtime-benchmarks && - cargo +nightly-2022-05-11 build --release --features runtime-benchmarks + cargo +nightly-2022-11-15 clippy --release --features runtime-benchmarks && + cargo +nightly-2022-11-15 test --release --features runtime-benchmarks && + cargo +nightly-2022-11-15 build --release --features runtime-benchmarks if: env.GIT_DIFF - name: Test Generate Weights diff --git a/README.md b/README.md index 5866861328..67270f7228 100644 --- a/README.md +++ b/README.md @@ -66,7 +66,7 @@ yarn start ```sh git checkout master -WASM_BUILD_TOOLCHAIN=nightly-2022-05-11 cargo build --release +WASM_BUILD_TOOLCHAIN=nightly-2022-11-15 cargo build --release ./target/release/joystream-node -- --pruning archive --chain joy-mainnet.json ``` diff --git a/bin/node/README.md b/bin/node/README.md index a481a8cbae..8ccb976897 100644 --- a/bin/node/README.md +++ b/bin/node/README.md @@ -24,7 +24,7 @@ cd joystream/ Compile the node and runtime: ```bash -WASM_BUILD_TOOLCHAIN=nightly-2022-05-11 cargo +nightly-2022-05-11 build --release +WASM_BUILD_TOOLCHAIN=nightly-2022-11-15 cargo +nightly-2022-11-15 build --release ``` This produces the binary in `./target/release/joystream-node` @@ -55,7 +55,7 @@ Use the `--chain` argument, and specify the path to the genesis `chain.json` fil Running unit tests: ```bash -cargo +nightly-2022-05-11 test --release --all +cargo +nightly-2022-11-15 test --release --all ``` Running full suite of checks, tests, formatting and linting: @@ -78,7 +78,7 @@ This will install the executable `joystream-node` to your `~/.cargo/bin` folder, ```bash # From the project root directory -WASM_BUILD_TOOLCHAIN=nightly-2022-05-11 cargo +nightly-2022-05-11 install joystream-node --path bin/node/ --locked +WASM_BUILD_TOOLCHAIN=nightly-2022-11-15 cargo +nightly-2022-11-15 install joystream-node --path bin/node/ --locked ``` Now you can run and connect to the testnet: diff --git a/devops/ansible/roles/common/tasks/build-binaries.yml b/devops/ansible/roles/common/tasks/build-binaries.yml index dc5a3af2bb..a6258446d4 100644 --- a/devops/ansible/roles/common/tasks/build-binaries.yml +++ b/devops/ansible/roles/common/tasks/build-binaries.yml @@ -5,9 +5,9 @@ shell: cmd: | bash -ic " - rustup install nightly-2022-05-11 - rustup target add wasm32-unknown-unknown --toolchain nightly-2022-05-11 - rustup component add --toolchain nightly-2022-05-11 clippy + rustup install nightly-2022-11-15 + rustup target add wasm32-unknown-unknown --toolchain nightly-2022-11-15 + rustup component add --toolchain nightly-2022-11-15 clippy rustup component add rustfmt " args: diff --git a/joystream-node.Dockerfile b/joystream-node.Dockerfile index d94b42fa34..4e81d5e317 100644 --- a/joystream-node.Dockerfile +++ b/joystream-node.Dockerfile @@ -1,12 +1,13 @@ -FROM rust:1.61.0-buster AS rust +FROM rust:1.67.0-buster AS rust WORKDIR /joystream RUN apt-get update && \ apt-get install -y curl git gcc xz-utils sudo pkg-config unzip clang llvm libc6-dev cmake +RUN apt install -y protobuf-compiler libprotobuf-dev RUN rustup self update -RUN rustup install nightly-2022-05-11 --force -RUN rustup default nightly-2022-05-11 -RUN rustup target add wasm32-unknown-unknown --toolchain nightly-2022-05-11 -RUN rustup component add --toolchain nightly-2022-05-11 clippy +RUN rustup install nightly-2022-11-15 +RUN rustup default nightly-2022-11-15 +RUN rustup target add wasm32-unknown-unknown --toolchain nightly-2022-11-15 +RUN rustup component add --toolchain nightly-2022-11-15 clippy RUN rustup install nightly RUN cargo +nightly install cargo-chef @@ -24,7 +25,7 @@ FROM rust AS cacher LABEL description="Cargo chef cook dependencies" WORKDIR /joystream COPY --from=planner /joystream/recipe.json /joystream/recipe.json -ARG WASM_BUILD_TOOLCHAIN=nightly-2022-05-11 +ARG WASM_BUILD_TOOLCHAIN=nightly-2022-11-15 # Build dependencies - this is the caching Docker layer! RUN cargo chef cook --release --recipe-path /joystream/recipe.json @@ -44,7 +45,7 @@ COPY --from=cacher $CARGO_HOME $CARGO_HOME # Ensure our tests and linter pass before actual build ARG CARGO_FEATURES RUN echo "CARGO_FEATURES=$CARGO_FEATURES" -ARG WASM_BUILD_TOOLCHAIN=nightly-2022-05-11 +ARG WASM_BUILD_TOOLCHAIN=nightly-2022-11-15 ARG GIT_COMMIT_HASH="unknown" ARG CODE_SHASUM RUN SUBSTRATE_CLI_GIT_COMMIT_HASH="${GIT_COMMIT_HASH}-docker-build-${CODE_SHASUM}" \ diff --git a/scripts/cargo-build-with-benchmarking.sh b/scripts/cargo-build-with-benchmarking.sh index 4cf8d16d3d..459ed4f90e 100755 --- a/scripts/cargo-build-with-benchmarking.sh +++ b/scripts/cargo-build-with-benchmarking.sh @@ -4,6 +4,6 @@ set -e SCRIPT_PATH="$(dirname "${BASH_SOURCE[0]}")" cd $SCRIPT_PATH -export WASM_BUILD_TOOLCHAIN=nightly-2022-05-11 +export WASM_BUILD_TOOLCHAIN=nightly-2022-11-15 -cargo +nightly-2022-05-11 build --release --features runtime-benchmarks +cargo +nightly-2022-11-15 build --release --features runtime-benchmarks diff --git a/scripts/cargo-build.sh b/scripts/cargo-build.sh index fc6247e790..71e2b335a3 100755 --- a/scripts/cargo-build.sh +++ b/scripts/cargo-build.sh @@ -6,6 +6,6 @@ cd $SCRIPT_PATH source features.sh -export WASM_BUILD_TOOLCHAIN=nightly-2022-05-11 +export WASM_BUILD_TOOLCHAIN=nightly-2022-11-15 -cargo +nightly-2022-05-11 build --release --features "${FEATURES}" \ No newline at end of file +cargo +nightly-2022-11-15 build --release --features "${FEATURES}" \ No newline at end of file diff --git a/scripts/cargo-checks.sh b/scripts/cargo-checks.sh index 1380e67fec..0cf8cc97fe 100755 --- a/scripts/cargo-checks.sh +++ b/scripts/cargo-checks.sh @@ -9,7 +9,7 @@ cargo fmt --all -- --check source ./features.sh -export WASM_BUILD_TOOLCHAIN=nightly-2022-05-11 +export WASM_BUILD_TOOLCHAIN=nightly-2022-11-15 echo 'running clippy (rust linter)' # When custom build.rs triggers wasm-build-runner-impl to build we get error: diff --git a/scripts/cargo-tests-with-networking.sh b/scripts/cargo-tests-with-networking.sh index 87ff2817d6..f17c923bfe 100755 --- a/scripts/cargo-tests-with-networking.sh +++ b/scripts/cargo-tests-with-networking.sh @@ -6,7 +6,7 @@ cd $SCRIPT_PATH source features.sh -export WASM_BUILD_TOOLCHAIN=nightly-2022-05-11 +export WASM_BUILD_TOOLCHAIN=nightly-2022-11-15 echo 'running all cargo tests' -cargo +nightly-2022-05-11 test --release --features "${FEATURES}" --all -- --ignored +cargo +nightly-2022-11-15 test --release --features "${FEATURES}" --all -- --ignored diff --git a/scripts/run-dev-chain.sh b/scripts/run-dev-chain.sh index 74856f2804..5ea4e1840f 100755 --- a/scripts/run-dev-chain.sh +++ b/scripts/run-dev-chain.sh @@ -6,14 +6,14 @@ cd $SCRIPT_PATH source features.sh -export WASM_BUILD_TOOLCHAIN=nightly-2022-05-11 +export WASM_BUILD_TOOLCHAIN=nightly-2022-11-15 # Build release binary -cargo +nightly-2022-05-11 build --release --features "${FEATURES}" +cargo +nightly-2022-11-15 build --release --features "${FEATURES}" # Purge existing local chain -yes | cargo +nightly-2022-05-11 run --release --features "${FEATURES}" -- purge-chain --dev +yes | cargo +nightly-2022-11-15 run --release --features "${FEATURES}" -- purge-chain --dev # Run local development chain - # No need to specify `-p joystream-node` it is the default bin crate in the cargo workspace -cargo +nightly-2022-05-11 run --release --features "${FEATURES}" -- --dev --log runtime +cargo +nightly-2022-11-15 run --release --features "${FEATURES}" -- --dev --log runtime diff --git a/setup.sh b/setup.sh index b9fa7164a4..11c6d9178f 100755 --- a/setup.sh +++ b/setup.sh @@ -34,10 +34,10 @@ curl https://getsubstrate.io -sSf | bash -s -- --fast source ~/.cargo/env -rustup install nightly-2022-05-11 -rustup target add wasm32-unknown-unknown --toolchain nightly-2022-05-11 +rustup install nightly-2022-11-15 +rustup target add wasm32-unknown-unknown --toolchain nightly-2022-11-15 -rustup component add --toolchain nightly-2022-05-11 clippy +rustup component add --toolchain nightly-2022-11-15 clippy rustup component add rustfmt # Install substrate keychain tool From ff3989b7442a8c4fac63e67ae9c7fb12a1143f73 Mon Sep 17 00:00:00 2001 From: Mokhtar Naamani Date: Tue, 14 Mar 2023 11:22:48 +0400 Subject: [PATCH 26/87] v0.9.39 - install protoc for libp2p build --- setup.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/setup.sh b/setup.sh index 11c6d9178f..09c9316df7 100755 --- a/setup.sh +++ b/setup.sh @@ -8,7 +8,8 @@ if [[ "$OSTYPE" == "linux-gnu" ]]; then # code build tools sudo apt-get update -y sudo apt-get install -y coreutils clang llvm jq curl gcc xz-utils sudo pkg-config \ - unzip libc6-dev make libssl-dev python3 cmake + unzip libc6-dev make libssl-dev python3 cmake \ + protobuf-compiler libprotobuf-dev # docker sudo apt-get install -y docker.io containerd runc # docker-compose @@ -22,7 +23,7 @@ elif [[ "$OSTYPE" == "darwin"* ]]; then fi # install additional packages brew update - brew install coreutils gnu-tar jq curl llvm gnu-sed cmake || : + brew install coreutils gnu-tar jq curl llvm gnu-sed cmake protobuf || : echo "It is recommended to setup Docker desktop from: https://www.docker.com/products/docker-desktop" echo "It is also recommended to install qemu emulators with following command:" echo "docker run --privileged --rm tonistiigi/binfmt --install all" From 3ed4fae42afa7484928af27fe9150db19c2b6689 Mon Sep 17 00:00:00 2001 From: Mokhtar Naamani Date: Tue, 14 Mar 2023 12:58:37 +0400 Subject: [PATCH 27/87] v0.9.39 - update chain metadata and types --- chain-metadata.json | 2 +- cli/src/base/FeeProfileCommandBase.ts | 4 +- types/src/augment/augment-api-consts.ts | 72 +- types/src/augment/augment-api-errors.ts | 48 +- types/src/augment/augment-api-events.ts | 97 ++- types/src/augment/augment-api-query.ts | 85 +- types/src/augment/augment-api-tx.ts | 319 +++----- types/src/augment/lookup.ts | 951 ++++++++++++----------- types/src/augment/registry.ts | 25 +- types/src/augment/types-lookup.ts | 982 ++++++++++++------------ 10 files changed, 1269 insertions(+), 1316 deletions(-) diff --git a/chain-metadata.json b/chain-metadata.json index 85cba64fb8..2d69f83c26 100644 --- a/chain-metadata.json +++ b/chain-metadata.json @@ -1 +1 @@ -{"jsonrpc":"2.0","result":"0x6d6574610e150a000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f0814496e64657801102c4163636f756e74446174610114001401146e6f6e6365100114496e646578000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e7444617461000010000005050014083c70616c6c65745f62616c616e6365732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500012c6d6973635f66726f7a656e18011c42616c616e63650001286665655f66726f7a656e18011c42616c616e636500001800000507001c0c346672616d655f737570706f72741c77656967687473405065724469737061746368436c6173730404540120000c01186e6f726d616c2001045400012c6f7065726174696f6e616c200104540001246d616e6461746f727920010454000020000005060024083c7072696d69746976655f74797065731048323536000004000401585b75383b202f2ac2ab2a2f203332202f2ac2bb2a2f5d00002800000208002c102873705f72756e74696d651c67656e65726963186469676573741844696765737400000401106c6f677330013c5665633c4469676573744974656d3e000030000002340034102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0001142850726552756e74696d650800380144436f6e73656e737573456e67696e654964000028011c5665633c75383e00060024436f6e73656e7375730800380144436f6e73656e737573456e67696e654964000028011c5665633c75383e000400105365616c0800380144436f6e73656e737573456e67696e654964000028011c5665633c75383e000500144f74686572040028011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e745570646174656400080000380000030400000008003c00000240004008306672616d655f73797374656d2c4576656e745265636f7264080445014404540124000c01147068617365b903011450686173650001146576656e7444010445000118746f70696373bd0301185665633c543e00004408586a6f7973747265616d5f6e6f64655f72756e74696d65144576656e740001881853797374656d04004801706672616d655f73797374656d3a3a4576656e743c52756e74696d653e0000001c5574696c69747904006c01607375627374726174655f7574696c6974793a3a4576656e740001002042616c616e636573040078017c70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e00050068456c656374696f6e50726f76696465724d756c7469506861736504008001d070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173653a3a4576656e743c52756e74696d653e0007001c5374616b696e67040090017870616c6c65745f7374616b696e673a3a4576656e743c52756e74696d653e0008001c53657373696f6e0400a0015470616c6c65745f73657373696f6e3a3a4576656e740009001c4772616e6470610400a4015470616c6c65745f6772616e6470613a3a4576656e74000b0020496d4f6e6c696e650400b8018070616c6c65745f696d5f6f6e6c696e653a3a4576656e743c52756e74696d653e000d00204f6666656e6365730400dc015870616c6c65745f6f6666656e6365733a3a4576656e74000e0020426167734c6973740400e4018070616c6c65745f626167735f6c6973743a3a4576656e743c52756e74696d653e0010001c56657374696e670400e8017870616c6c65745f76657374696e673a3a4576656e743c52756e74696d653e001100204d756c74697369670400ec017c70616c6c65745f6d756c74697369673a3a4576656e743c52756e74696d653e0012001c436f756e63696c0400f4015c636f756e63696c3a3a4576656e743c52756e74696d653e001300285265666572656e64756d0400fc01c47265666572656e64756d3a3a4576656e743c52756e74696d652c207265666572656e64756d3a3a496e7374616e6365313e0014001c4d656d6265727304000d0101686d656d626572736869703a3a4576656e743c52756e74696d653e00150014466f72756d040039010154666f72756d3a3a4576656e743c52756e74696d653e00160030436f6e737469747574696f6e04005501018c70616c6c65745f636f6e737469747574696f6e3a3a4576656e743c52756e74696d653e00170018426f756e7479040059010158626f756e74793a3a4576656e743c52756e74696d653e001800404a6f7973747265616d5574696c69747904007d0101846a6f7973747265616d5f7574696c6974793a3a4576656e743c52756e74696d653e0019001c436f6e74656e7404008901015c636f6e74656e743a3a4576656e743c52756e74696d653e001a001c53746f7261676504007502015c73746f726167653a3a4576656e743c52756e74696d653e001b003050726f6a656374546f6b656e0400a902017470726f6a6563745f746f6b656e3a3a4576656e743c52756e74696d653e001c003c50726f706f73616c73456e67696e6504001103018070726f706f73616c735f656e67696e653a3a4576656e743c52756e74696d653e001d004c50726f706f73616c7344697363757373696f6e04002903019070726f706f73616c735f64697363757373696f6e3a3a4576656e743c52756e74696d653e001e003850726f706f73616c73436f64657804003103017c70726f706f73616c735f636f6465783a3a4576656e743c52756e74696d653e001f0044466f72756d576f726b696e6747726f75700400550301dc776f726b696e675f67726f75703a3a4576656e743c52756e74696d652c20776f726b696e675f67726f75703a3a496e7374616e6365313e0020004c53746f72616765576f726b696e6747726f75700400790301dc776f726b696e675f67726f75703a3a4576656e743c52756e74696d652c20776f726b696e675f67726f75703a3a496e7374616e6365323e0021004c436f6e74656e74576f726b696e6747726f75700400810301dc776f726b696e675f67726f75703a3a4576656e743c52756e74696d652c20776f726b696e675f67726f75703a3a496e7374616e6365333e0022006c4f7065726174696f6e73576f726b696e6747726f7570416c7068610400890301dc776f726b696e675f67726f75703a3a4576656e743c52756e74696d652c20776f726b696e675f67726f75703a3a496e7374616e6365343e0023003c417070576f726b696e6747726f75700400910301dc776f726b696e675f67726f75703a3a4576656e743c52756e74696d652c20776f726b696e675f67726f75703a3a496e7374616e6365353e002400584d656d62657273686970576f726b696e6747726f75700400990301dc776f726b696e675f67726f75703a3a4576656e743c52756e74696d652c20776f726b696e675f67726f75703a3a496e7374616e6365363e002500684f7065726174696f6e73576f726b696e6747726f7570426574610400a10301dc776f726b696e675f67726f75703a3a4576656e743c52756e74696d652c20776f726b696e675f67726f75703a3a496e7374616e6365373e0026006c4f7065726174696f6e73576f726b696e6747726f757047616d6d610400a90301dc776f726b696e675f67726f75703a3a4576656e743c52756e74696d652c20776f726b696e675f67726f75703a3a496e7374616e6365383e00270060446973747269627574696f6e576f726b696e6747726f75700400b10301dc776f726b696e675f67726f75703a3a4576656e743c52756e74696d652c20776f726b696e675f67726f75703a3a496e7374616e6365393e00280000480c306672616d655f73797374656d1870616c6c6574144576656e740404540001184045787472696e7369635375636365737304013464697370617463685f696e666f4c01304469737061746368496e666f00000490416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656408013864697370617463685f6572726f7258013444697370617463684572726f7200013464697370617463685f696e666f4c01304469737061746368496e666f00010450416e2065787472696e736963206661696c65642e2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e7404011c6163636f756e74000130543a3a4163636f756e7449640003046841206e6577206163636f756e742077617320637265617465642e344b696c6c65644163636f756e7404011c6163636f756e74000130543a3a4163636f756e74496400040458416e206163636f756e7420776173207265617065642e2052656d61726b656408011873656e646572000130543a3a4163636f756e7449640001106861736824011c543a3a48617368000504704f6e206f6e2d636861696e2072656d61726b2068617070656e65642e04704576656e7420666f72207468652053797374656d2070616c6c65742e4c0c346672616d655f737570706f72741c77656967687473304469737061746368496e666f00000c0118776569676874200118576569676874000114636c6173735001344469737061746368436c617373000120706179735f666565540110506179730000500c346672616d655f737570706f72741c77656967687473344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f727900020000540c346672616d655f737570706f72741c7765696768747310506179730001080c596573000000084e6f0001000058082873705f72756e74696d653444697370617463684572726f72000128144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c6504005c012c4d6f64756c654572726f7200030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050040546f6f4d616e79436f6e73756d65727300060014546f6b656e0400600128546f6b656e4572726f720007002841726974686d65746963040064013c41726974686d657469634572726f72000800345472616e73616374696f6e616c04006801485472616e73616374696f6e616c4572726f72000900005c082873705f72756e74696d652c4d6f64756c654572726f720000080114696e64657808010875380001146572726f7238018c5b75383b204d41585f4d4f44554c455f4552524f525f454e434f4445445f53495a455d000060082873705f72756e74696d6528546f6b656e4572726f7200011c1c4e6f46756e647300000020576f756c644469650001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f727465640006000064082873705f72756e74696d653c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f0002000068082873705f72756e74696d65485472616e73616374696f6e616c4572726f72000108304c696d6974526561636865640000001c4e6f4c61796572000100006c0c3870616c6c65745f7574696c6974791870616c6c6574144576656e74000118404261746368496e746572727570746564080114696e64657810010c7533320001146572726f7258013444697370617463684572726f7200000855014261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c2061734877656c6c20617320746865206572726f722e384261746368436f6d706c65746564000104c84261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e604261746368436f6d706c65746564576974684572726f7273000204b44261746368206f66206469737061746368657320636f6d706c657465642062757420686173206572726f72732e344974656d436f6d706c657465640003041d01412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206e6f206572726f722e284974656d4661696c65640401146572726f7258013444697370617463684572726f720004041101412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206572726f722e30446973706174636865644173040118726573756c747001384469737061746368526573756c7400050458412063616c6c2077617320646973706174636865642e0499010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f76332f72756e74696d652f6576656e74732d616e642d6572726f72732920656d69747465640a090909627920746869732070616c6c65742e0a090909700418526573756c740804540174044501580108084f6b040074000000000c4572720400580000010000740000040000780c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001281c456e646f77656408011c6163636f756e74000130543a3a4163636f756e744964000130667265655f62616c616e6365180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f737408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742c78726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e736665720c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2842616c616e63655365740c010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e63650001207265736572766564180128543a3a42616c616e636500030468412062616c616e6365207761732073657420627920726f6f742e20526573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e726573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000504e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656410011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014864657374696e6174696f6e5f7374617475737c01185374617475730006084d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652e1c4465706f73697408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000704d8536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e20576974686472617708010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008041d01536f6d6520616d6f756e74207761732077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650009040101536f6d6520616d6f756e74207761732072656d6f7665642066726f6d20746865206163636f756e742028652e672e20666f72206d69736265686176696f72292e0499010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f76332f72756e74696d652f6576656e74732d616e642d6572726f72732920656d69747465640a090909627920746869732070616c6c65742e0a0909097c14346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e6365537461747573000108104672656500000020526573657276656400010000800c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173651870616c6c6574144576656e7404045400011838536f6c7574696f6e53746f726564080140656c656374696f6e5f636f6d7075746584013c456c656374696f6e436f6d70757465000130707265765f656a6563746564880110626f6f6c000018b44120736f6c7574696f6e207761732073746f72656420776974682074686520676976656e20636f6d707574652e003d0149662074686520736f6c7574696f6e206973207369676e65642c2074686973206d65616e732074686174206974206861736e277420796574206265656e2070726f6365737365642e204966207468650501736f6c7574696f6e20697320756e7369676e65642c2074686973206d65616e7320746861742069742068617320616c736f206265656e2070726f6365737365642e0051015468652060626f6f6c6020697320607472756560207768656e20612070726576696f757320736f6c7574696f6e2077617320656a656374656420746f206d616b6520726f6f6d20666f722074686973206f6e652e44456c656374696f6e46696e616c697a6564040140656c656374696f6e5f636f6d707574658c015c4f7074696f6e3c456c656374696f6e436f6d707574653e000108550154686520656c656374696f6e20686173206265656e2066696e616c697a65642c20776974682060536f6d6560206f662074686520676976656e20636f6d7075746174696f6e2c206f7220656c73652069662074686560656c656374696f6e206661696c65642c20604e6f6e65602e20526577617264656408011c6163636f756e740001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e74496400011476616c756518013042616c616e63654f663c543e0002042501416e206163636f756e7420686173206265656e20726577617264656420666f72207468656972207369676e6564207375626d697373696f6e206265696e672066696e616c697a65642e1c536c617368656408011c6163636f756e740001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e74496400011476616c756518013042616c616e63654f663c543e0003042101416e206163636f756e7420686173206265656e20736c617368656420666f72207375626d697474696e6720616e20696e76616c6964207369676e6564207375626d697373696f6e2e485369676e6564506861736553746172746564040114726f756e6410010c753332000404c0546865207369676e6564207068617365206f662074686520676976656e20726f756e642068617320737461727465642e50556e7369676e6564506861736553746172746564040114726f756e6410010c753332000504c854686520756e7369676e6564207068617365206f662074686520676976656e20726f756e642068617320737461727465642e0499010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f76332f72756e74696d652f6576656e74732d616e642d6572726f72732920656d69747465640a090909627920746869732070616c6c65742e0a09090984089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173653c456c656374696f6e436f6d707574650001141c4f6e436861696e000000185369676e656400010020556e7369676e65640002002046616c6c6261636b00030024456d657267656e6379000400008800000500008c04184f7074696f6e04045401840108104e6f6e6500000010536f6d65040084000001000090103870616c6c65745f7374616b696e671870616c6c65741870616c6c6574144576656e740404540001341c457261506169640c00100120457261496e646578000018013042616c616e63654f663c543e000018013042616c616e63654f663c543e00000c550154686520657261207061796f757420686173206265656e207365743b207468652066697273742062616c616e6365206973207468652076616c696461746f722d7061796f75743b20746865207365636f6e64206973c07468652072656d61696e6465722066726f6d20746865206d6178696d756d20616d6f756e74206f66207265776172642ea85c5b6572615f696e6465782c2076616c696461746f725f7061796f75742c2072656d61696e6465725c5d2052657761726465640800000130543a3a4163636f756e744964000018013042616c616e63654f663c543e0001040501546865206e6f6d696e61746f7220686173206265656e207265776172646564206279207468697320616d6f756e742e205c5b73746173682c20616d6f756e745c5d1c536c61736865640800000130543a3a4163636f756e744964000018013042616c616e63654f663c543e00020821014f6e652076616c696461746f722028616e6420697473206e6f6d696e61746f72732920686173206265656e20736c61736865642062792074686520676976656e20616d6f756e742e545c5b76616c696461746f722c20616d6f756e745c5d684f6c64536c617368696e675265706f7274446973636172646564040010013053657373696f6e496e6465780003081901416e206f6c6420736c617368696e67207265706f72742066726f6d2061207072696f72206572612077617320646973636172646564206265636175736520697420636f756c648c6e6f742062652070726f6365737365642e205c5b73657373696f6e5f696e6465785c5d385374616b657273456c65637465640004048441206e657720736574206f66207374616b6572732077617320656c65637465642e18426f6e6465640800000130543a3a4163636f756e744964000018013042616c616e63654f663c543e000510d0416e206163636f756e742068617320626f6e646564207468697320616d6f756e742e205c5b73746173682c20616d6f756e745c5d004d014e4f54453a2054686973206576656e74206973206f6e6c7920656d6974746564207768656e2066756e64732061726520626f6e64656420766961206120646973706174636861626c652e204e6f7461626c792c210169742077696c6c206e6f7420626520656d697474656420666f72207374616b696e672072657761726473207768656e20746865792061726520616464656420746f207374616b652e20556e626f6e6465640800000130543a3a4163636f756e744964000018013042616c616e63654f663c543e000604d8416e206163636f756e742068617320756e626f6e646564207468697320616d6f756e742e205c5b73746173682c20616d6f756e745c5d2457697468647261776e0800000130543a3a4163636f756e744964000018013042616c616e63654f663c543e0007085901416e206163636f756e74206861732063616c6c6564206077697468647261775f756e626f6e6465646020616e642072656d6f76656420756e626f6e64696e67206368756e6b7320776f727468206042616c616e636560ac66726f6d2074686520756e6c6f636b696e672071756575652e205c5b73746173682c20616d6f756e745c5d184b69636b65640800000130543a3a4163636f756e7449640000000130543a3a4163636f756e744964000804090141206e6f6d696e61746f7220686173206265656e206b69636b65642066726f6d20612076616c696461746f722e205c5b6e6f6d696e61746f722c2073746173685c5d545374616b696e67456c656374696f6e4661696c6564000904ac54686520656c656374696f6e206661696c65642e204e6f206e65772065726120697320706c616e6e65642e1c4368696c6c65640400000130543a3a4163636f756e744964000a082101416e206163636f756e74206861732073746f707065642070617274696369706174696e672061732065697468657220612076616c696461746f72206f72206e6f6d696e61746f722e245c5b73746173685c5d345061796f7574537461727465640800100120457261496e6465780000000130543a3a4163636f756e744964000b041501546865207374616b657273272072657761726473206172652067657474696e6720706169642e205c5b6572615f696e6465782c2076616c696461746f725f73746173685c5d4456616c696461746f7250726566735365740800000130543a3a4163636f756e744964000094013856616c696461746f725072656673000c0498412076616c696461746f72206861732073657420746865697220707265666572656e6365732e0499010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f76332f72756e74696d652f6576656e74732d616e642d6572726f72732920656d69747465640a090909627920746869732070616c6c65742e0a09090994083870616c6c65745f7374616b696e673856616c696461746f7250726566730000080128636f6d6d697373696f6e98011c50657262696c6c00011c626c6f636b6564880110626f6f6c0000980000069c009c0c3473705f61726974686d65746963287065725f7468696e67731c50657262696c6c0000040010010c7533320000a00c3870616c6c65745f73657373696f6e1870616c6c6574144576656e74000104284e657753657373696f6e04013473657373696f6e5f696e64657810013053657373696f6e496e64657800000839014e65772073657373696f6e206861732068617070656e65642e204e6f746520746861742074686520617267756d656e74206973207468652073657373696f6e20696e6465782c206e6f74207468659c626c6f636b206e756d626572206173207468652074797065206d6967687420737567676573742e0499010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f76332f72756e74696d652f6576656e74732d616e642d6572726f72732920656d69747465640a090909627920746869732070616c6c65742e0a090909a40c3870616c6c65745f6772616e6470611870616c6c6574144576656e7400010c384e6577417574686f726974696573040134617574686f726974795f736574a80134417574686f726974794c6973740000048c4e657720617574686f726974792073657420686173206265656e206170706c6965642e185061757365640001049843757272656e7420617574686f726974792073657420686173206265656e207061757365642e1c526573756d65640002049c43757272656e7420617574686f726974792073657420686173206265656e20726573756d65642e0499010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f76332f72756e74696d652f6576656e74732d616e642d6572726f72732920656d69747465640a090909627920746869732070616c6c65742e0a090909a8000002ac00ac00000408b02000b00c4c73705f66696e616c6974795f6772616e6470610c617070185075626c696300000400b4013c656432353531393a3a5075626c69630000b40c1c73705f636f72651c65643235353139185075626c6963000004000401205b75383b2033325d0000b80c4070616c6c65745f696d5f6f6e6c696e651870616c6c6574144576656e7404045400010c444865617274626561745265636569766564040130617574686f726974795f6964bc0138543a3a417574686f726974794964000004c041206e657720686561727462656174207761732072656365697665642066726f6d2060417574686f726974794964602e1c416c6c476f6f64000104d041742074686520656e64206f66207468652073657373696f6e2c206e6f206f6666656e63652077617320636f6d6d69747465642e2c536f6d654f66666c696e6504011c6f66666c696e65c4016c5665633c4964656e74696669636174696f6e5475706c653c543e3e000204290141742074686520656e64206f66207468652073657373696f6e2c206174206c65617374206f6e652076616c696461746f722077617320666f756e6420746f206265206f66666c696e652e0499010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f76332f72756e74696d652f6576656e74732d616e642d6572726f72732920656d69747465640a090909627920746869732070616c6c65742e0a090909bc104070616c6c65745f696d5f6f6e6c696e651c737232353531392c6170705f73723235353139185075626c696300000400c0013c737232353531393a3a5075626c69630000c00c1c73705f636f72651c73723235353139185075626c6963000004000401205b75383b2033325d0000c4000002c800c80000040800cc00cc083870616c6c65745f7374616b696e67204578706f7375726508244163636f756e74496401001c42616c616e63650118000c0114746f74616cd0011c42616c616e636500010c6f776ed0011c42616c616e63650001186f7468657273d401ac5665633c496e646976696475616c4578706f737572653c4163636f756e7449642c2042616c616e63653e3e0000d00000061800d4000002d800d8083870616c6c65745f7374616b696e6748496e646976696475616c4578706f7375726508244163636f756e74496401001c42616c616e636501180008010c77686f0001244163636f756e74496400011476616c7565d0011c42616c616e63650000dc0c3c70616c6c65745f6f6666656e6365731870616c6c6574144576656e740001041c4f6666656e63650801106b696e64e001104b696e6400012074696d65736c6f742801384f706171756554696d65536c6f7400000c5101546865726520697320616e206f6666656e6365207265706f72746564206f662074686520676976656e20606b696e64602068617070656e656420617420746865206073657373696f6e5f696e6465786020616e643501286b696e642d7370656369666963292074696d6520736c6f742e2054686973206576656e74206973206e6f74206465706f736974656420666f72206475706c696361746520736c61736865732e4c5c5b6b696e642c2074696d65736c6f745c5d2e04304576656e747320747970652ee0000003100000000800e40c4070616c6c65745f626167735f6c6973741870616c6c6574144576656e740804540004490001082052656261676765640c010c77686f000130543a3a4163636f756e74496400011066726f6d200120543a3a53636f7265000108746f200120543a3a53636f7265000004a44d6f76656420616e206163636f756e742066726f6d206f6e652062616720746f20616e6f746865722e3053636f72655570646174656408010c77686f000130543a3a4163636f756e7449640001246e65775f73636f7265200120543a3a53636f7265000104d855706461746564207468652073636f7265206f6620736f6d65206163636f756e7420746f2074686520676976656e20616d6f756e742e0499010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f76332f72756e74696d652f6576656e74732d616e642d6572726f72732920656d69747465640a090909627920746869732070616c6c65742e0a090909e80c3870616c6c65745f76657374696e671870616c6c6574144576656e740404540001083856657374696e675570646174656408011c6163636f756e74000130543a3a4163636f756e744964000120756e76657374656418013042616c616e63654f663c543e000008510154686520616d6f756e742076657374656420686173206265656e20757064617465642e205468697320636f756c6420696e6469636174652061206368616e676520696e2066756e647320617661696c61626c652e25015468652062616c616e636520676976656e2069732074686520616d6f756e74207768696368206973206c65667420756e7665737465642028616e642074687573206c6f636b6564292e4056657374696e67436f6d706c6574656404011c6163636f756e74000130543a3a4163636f756e7449640001049c416e205c5b6163636f756e745c5d20686173206265636f6d652066756c6c79207665737465642e0499010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f76332f72756e74696d652f6576656e74732d616e642d6572726f72732920656d69747465640a090909627920746869732070616c6c65742e0a090909ec0c3c70616c6c65745f6d756c74697369671870616c6c6574144576656e740404540001102c4e65774d756c74697369670c0124617070726f76696e67000130543a3a4163636f756e7449640001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c486173680000048c41206e6577206d756c7469736967206f7065726174696f6e2068617320626567756e2e404d756c7469736967417070726f76616c100124617070726f76696e67000130543a3a4163636f756e74496400012474696d65706f696e74f0016454696d65706f696e743c543a3a426c6f636b4e756d6265723e0001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c48617368000104c841206d756c7469736967206f7065726174696f6e20686173206265656e20617070726f76656420627920736f6d656f6e652e404d756c74697369674578656375746564140124617070726f76696e67000130543a3a4163636f756e74496400012474696d65706f696e74f0016454696d65706f696e743c543a3a426c6f636b4e756d6265723e0001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c48617368000118726573756c747001384469737061746368526573756c740002049c41206d756c7469736967206f7065726174696f6e20686173206265656e2065786563757465642e444d756c746973696743616e63656c6c656410012863616e63656c6c696e67000130543a3a4163636f756e74496400012474696d65706f696e74f0016454696d65706f696e743c543a3a426c6f636b4e756d6265723e0001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c48617368000304a041206d756c7469736967206f7065726174696f6e20686173206265656e2063616e63656c6c65642e0499010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f76332f72756e74696d652f6576656e74732d616e642d6572726f72732920656d69747465640a090909627920746869732070616c6c65742e0a090909f0083c70616c6c65745f6d756c74697369672454696d65706f696e74042c426c6f636b4e756d62657201100008011868656967687410012c426c6f636b4e756d626572000114696e64657810010c7533320000f4083870616c6c65745f636f756e63696c205261774576656e74101c42616c616e636501182c426c6f636b4e756d6265720110204d656d62657249640120244163636f756e7449640100014c5c416e6e6f756e63696e67506572696f6453746172746564040010012c426c6f636b4e756d6265720000045c4e657720636f756e63696c2077617320656c65637465644c4e6f74456e6f75676843616e64696461746573040010012c426c6f636b4e756d6265720001041d01416e6e6f756e63696e6720706572696f642063616e27742066696e6973682062656361757365206f6620696e73756666696369656e742063616e6469647461746520636f756e744c566f74696e67506572696f6453746172746564040010010c753332000204a843616e646964617465732061726520616e6e6f756e63656420616e6420766f74696e6720737461727473304e657743616e64696461746510002001204d656d626572496400000001244163636f756e74496400000001244163636f756e744964000018011c42616c616e63650003045c4e65772063616e64696461746520616e6e6f756e636564444e6577436f756e63696c456c65637465640800f801345665633c4d656d62657249643e000010012c426c6f636b4e756d626572000404944e657720636f756e63696c2077617320656c656374656420616e64206170706f696e746564504e6577436f756e63696c4e6f74456c6563746564040010012c426c6f636b4e756d6265720005046c4e657720636f756e63696c20776173206e6f7420656c65637465645443616e6469646163795374616b6552656c6561736504002001204d656d6265724964000604d843616e646964616379207374616b65207468617420776173206e6f206c6f6e676572206e6565646564207761732072656c65617365644443616e646964616379576974686472617704002001204d656d62657249640007049443616e646964617465206861732077697468647261776e206869732063616e6469646163794043616e6469646163794e6f746553657408002001204d656d6265724964000028011c5665633c75383e000804d05468652063616e64696461746520686173207365742061206e6577206e6f746520666f722074686569722063616e646964616379345265776172645061796d656e7410002001204d656d626572496400000001244163636f756e744964000018011c42616c616e6365000018011c42616c616e6365000904c05468652077686f6c652072657761726420776173207061696420746f2074686520636f756e63696c206d656d6265722e4042756467657442616c616e6365536574040018011c42616c616e6365000a049c4275646765742062616c616e636520776173206368616e6765642062792074686520726f6f742e30427564676574526566696c6c040018011c42616c616e6365000b04c44275646765742062616c616e63652077617320696e63726561736564206279206175746f6d6174696320726566696c6c2e4c427564676574526566696c6c506c616e6e6564040010012c426c6f636b4e756d626572000c048c546865206e6578742062756467657420726566696c6c2077617320706c616e6e65642e58427564676574496e6372656d656e7455706461746564040018011c42616c616e6365000d048842756467657420696e6372656d656e7420686173206265656e20757064617465642e58436f756e63696c6f7252657761726455706461746564040018011c42616c616e6365000e0488436f756e63696c6f722072657761726420686173206265656e20757064617465642e345265717565737446756e64656408000001244163636f756e744964000018011c42616c616e6365000f045c5265717565737420686173206265656e2066756e6465644c436f756e63696c42756467657446756e6465640c002001204d656d6265724964000018011c42616c616e6365000028011c5665633c75383e0010146046756e642074686520636f756e63696c206275646765742e1c506172616d733a2c2d204d656d6265722049444c2d20416d6f756e74206f662062616c616e63652c2d20526174696f6e616c6544436f756e63696c6f7252656d61726b656408002001204d656d6265724964000028011c5665633c75383e00110460436f756e63696c6f722072656d61726b206d6573736167654443616e64696461746552656d61726b656408002001204d656d6265724964000028011c5665633c75383e0012046043616e6469646174652072656d61726b206d657373616765085c4576656e747320666f722074686973206d6f64756c652e00f80000022000fc084470616c6c65745f7265666572656e64756d205261774576656e741c2c426c6f636b4e756d62657201101c42616c616e6365011810486173680124244163636f756e744964010024566f7465506f7765720118204d656d6265724964012004490101010120445265666572656e64756d53746172746564080010010c753332000010012c426c6f636b4e756d626572000004485265666572656e64756d20737461727465646c5265666572656e64756d53746172746564466f72636566756c6c79080010010c753332000010012c426c6f636b4e756d626572000104485265666572656e64756d20737461727465645452657665616c696e67537461676553746172746564040010012c426c6f636b4e756d6265720002046452657665616c696e672070686173652068617320626567756e485265666572656e64756d46696e69736865640400050101985665633c4f7074696f6e526573756c743c4d656d62657249642c20566f7465506f7765723e3e000304c05265666572656e64756d20656e64656420616e642077696e6e696e67206f7074696f6e207761732073656c656374656420566f7465436173740c000001244163636f756e744964000024011048617368000018011c42616c616e636500040478557365722063617374206120766f746520696e207265666572656e64756d30566f746552657665616c65640c000001244163636f756e74496400002001204d656d6265724964000028011c5665633c75383e00050458557365722072657665616c65642068697320766f7465345374616b6552656c656173656404000001244163636f756e7449640006045c557365722072656c656173656420686973207374616b655c4163636f756e744f707465644f75744f66566f74696e6704000001244163636f756e744964000704d84163636f756e74207065726d616e656e746c79206f70746564206f7574206f6620766f74696e6720696e207265666572656e64756d2e085c4576656e747320666f722074686973206d6f64756c652e000101084470616c6c65745f7265666572656e64756d24496e7374616e6365310000000005010000020901000901084470616c6c65745f7265666572656e64756d304f7074696f6e526573756c7408204d656d6265724964012024566f7465506f7765720118000801246f7074696f6e5f69642001204d656d6265724964000128766f74655f706f776572180124566f7465506f77657200000d01084470616c6c65745f6d656d62657273686970205261774576656e7420204d656d626572496401201c42616c616e63650118244163636f756e74496401005c4275794d656d62657273686970506172616d65746572730111011c4163746f724964012068496e766974654d656d62657273686970506172616d6574657273011d01584372656174654d656d626572506172616d657465727301210160476966744d656d62657273686970506172616d65746572730125010144344d656d626572496e76697465640c002001204d656d626572496400001d010168496e766974654d656d62657273686970506172616d6574657273000018011c42616c616e6365000000404d656d6265727368697047696674656408002001204d656d6265724964000025010160476966744d656d62657273686970506172616d6574657273000100404d656d62657273686970426f756768740c002001204d656d626572496400001101015c4275794d656d62657273686970506172616d6574657273000010010c753332000200504d656d62657250726f66696c65557064617465640c002001204d656d626572496400001501013c4f7074696f6e3c5665633c75383e3e00001501013c4f7074696f6e3c5665633c75383e3e000300544d656d6265724163636f756e7473557064617465640c002001204d656d626572496400002d0101444f7074696f6e3c4163636f756e7449643e00002d0101444f7074696f6e3c4163636f756e7449643e0004007c4d656d626572566572696669636174696f6e537461747573557064617465640c002001204d656d62657249640000880110626f6f6c000020011c4163746f72496400050048526566657272616c437574557064617465640400080108753800060048496e76697465735472616e736665727265640c002001204d656d626572496400002001204d656d6265724964000010010c753332000700584d656d62657273686970507269636555706461746564040018011c42616c616e63650008007c496e697469616c496e7669746174696f6e42616c616e636555706461746564040018011c42616c616e6365000900704c6561646572496e7669746174696f6e51756f746155706461746564040010010c753332000a0074496e697469616c496e7669746174696f6e436f756e7455706461746564040010010c753332000b004c5374616b696e674163636f756e74416464656408000001244163636f756e74496400002001204d656d6265724964000c00545374616b696e674163636f756e7452656d6f76656408000001244163636f756e74496400002001204d656d6265724964000d005c5374616b696e674163636f756e74436f6e6669726d656408000001244163636f756e74496400002001204d656d6265724964000e00384d656d62657252656d61726b65640c002001204d656d6265724964000028011c5665633c75383e0000310101704f7074696f6e3c284163636f756e7449642c2042616c616e6365293e000f00344d656d626572437265617465640c002001204d656d62657249640000210101584372656174654d656d626572506172616d6574657273000010010c753332001000085c4576656e747320666f722074686973206d6f64756c652e001101084470616c6c65745f6d656d626572736869705c4275794d656d62657273686970506172616d657465727308244163636f756e7449640100204d656d6265724964012000140130726f6f745f6163636f756e740001244163636f756e744964000148636f6e74726f6c6c65725f6163636f756e740001244163636f756e74496400011868616e646c651501013c4f7074696f6e3c5665633c75383e3e0001206d6574616461746128011c5665633c75383e00012c72656665727265725f6964190101404f7074696f6e3c4d656d62657249643e0000150104184f7074696f6e04045401280108104e6f6e6500000010536f6d650400280000010000190104184f7074696f6e04045401200108104e6f6e6500000010536f6d6504002000000100001d01084470616c6c65745f6d656d6265727368697068496e766974654d656d62657273686970506172616d657465727308244163636f756e7449640100204d656d6265724964012000140148696e766974696e675f6d656d6265725f69642001204d656d6265724964000130726f6f745f6163636f756e740001244163636f756e744964000148636f6e74726f6c6c65725f6163636f756e740001244163636f756e74496400011868616e646c651501013c4f7074696f6e3c5665633c75383e3e0001206d6574616461746128011c5665633c75383e00002101084470616c6c65745f6d656d62657273686970584372656174654d656d626572506172616d657465727304244163636f756e744964010000140130726f6f745f6163636f756e740001244163636f756e744964000148636f6e74726f6c6c65725f6163636f756e740001244163636f756e74496400011868616e646c6528011c5665633c75383e0001206d6574616461746128011c5665633c75383e00014869735f666f756e64696e675f6d656d626572880110626f6f6c00002501084470616c6c65745f6d656d6265727368697060476966744d656d62657273686970506172616d657465727308244163636f756e74496401001c42616c616e6365011800200130726f6f745f6163636f756e740001244163636f756e744964000148636f6e74726f6c6c65725f6163636f756e740001244163636f756e74496400011868616e646c651501013c4f7074696f6e3c5665633c75383e3e0001206d6574616461746128011c5665633c75383e0001646372656469745f636f6e74726f6c6c65725f6163636f756e7418011c42616c616e63650001a06170706c795f636f6e74726f6c6c65725f6163636f756e745f696e7669746174696f6e5f6c6f636b2901013c4f7074696f6e3c42616c616e63653e00014c6372656469745f726f6f745f6163636f756e7418011c42616c616e63650001886170706c795f726f6f745f6163636f756e745f696e7669746174696f6e5f6c6f636b2901013c4f7074696f6e3c42616c616e63653e0000290104184f7074696f6e04045401180108104e6f6e6500000010536f6d6504001800000100002d0104184f7074696f6e04045401000108104e6f6e6500000010536f6d650400000000010000310104184f7074696f6e0404540135010108104e6f6e6500000010536f6d650400350100000100003501000004080018003901083070616c6c65745f666f72756d205261774576656e74202843617465676f7279496401202c4d6f64657261746f7249640120205468726561644964012018506f737449640120104861736801242c466f72756d55736572496401203c50726976696c656765644163746f72013d0138457874656e646564506f7374496401410101443c43617465676f727943726561746564100020012843617465676f727949640000190101484f7074696f6e3c43617465676f727949643e000028011c5665633c75383e000028011c5665633c75383e00000464412063617465676f72792077617320696e74726f64756365647443617465676f7279417263686976616c537461747573557064617465640c0020012843617465676f727949640000880110626f6f6c00003d01013c50726976696c656765644163746f72000108e0416e206172686963616c20737461747573206f662063617465676f7279207769746820676976656e2069642077617320757064617465642e1501546865207365636f6e6420617267756d656e74207265666c6563747320746865206e657720617263686976616c20737461747573206f66207468652063617465676f72792e5043617465676f72795469746c65557064617465640c0020012843617465676f7279496400002401104861736800003d01013c50726976696c656765644163746f72000208b841207469746c65206f662063617465676f7279207769746820676976656e2069642077617320757064617465642e0101546865207365636f6e6420617267756d656e74207265666c6563747320746865206e6577207469746c652068617368206f66207468652063617465676f72792e6843617465676f72794465736372697074696f6e557064617465640c0020012843617465676f7279496400002401104861736800003d01013c50726976696c656765644163746f72000308d041206469736372697074696f6e206f662063617465676f7279207769746820676976656e2069642077617320757064617465642e1901546865207365636f6e6420617267756d656e74207265666c6563747320746865206e6577206465736372697074696f6e2068617368206f66207468652063617465676f72792e3c43617465676f727944656c65746564080020012843617465676f7279496400003d01013c50726976696c656765644163746f7200040458412063617465676f7279207761732064656c657465643454687265616443726561746564180020012843617465676f72794964000020012054687265616449640000200118506f73744964000020012c466f72756d557365724964000028011c5665633c75383e000028011c5665633c75383e0005088c4120746872656164207769746820676976656e2069642077617320637265617465642ef04120746869726420617267756d656e74207265666c656374732074686520696e697469616c20706f7374206964206f6620746865207468726561642e3c5468726561644d6f6465726174656410002001205468726561644964000028011c5665633c75383e00003d01013c50726976696c656765644163746f72000020012843617465676f72794964000604944120746872656164207769746820676976656e20696420776173206d6f646572617465642e3454687265616455706461746564100020012054687265616449640000880110626f6f6c00003d01013c50726976696c656765644163746f72000020012843617465676f727949640007088c4120746872656164207769746820676976656e2069642077617320757064617465642e0d01546865207365636f6e6420617267756d656e74207265666c6563747320746865206e657720617263686976616c20737461747573206f6620746865207468726561642e545468726561644d657461646174615570646174656410002001205468726561644964000020012c466f72756d557365724964000020012843617465676f72794964000028011c5665633c75383e0008049c4120746872656164206d6574616461746120676976656e2069642077617320757064617465642e3454687265616444656c6574656410002001205468726561644964000020012c466f72756d557365724964000020012843617465676f727949640000880110626f6f6c000904544120746872656164207761732064656c657465642e2c5468726561644d6f76656410002001205468726561644964000020012843617465676f7279496400003d01013c50726976696c656765644163746f72000020012843617465676f72794964000a0488412074687265616420776173206d6f76656420746f206e65772063617465676f727924506f737441646465641800200118506f73744964000020012c466f72756d557365724964000020012843617465676f7279496400002001205468726561644964000028011c5665633c75383e0000880110626f6f6c000b047c506f7374207769746820676976656e2069642077617320637265617465642e34506f73744d6f646572617465641400200118506f73744964000028011c5665633c75383e00003d01013c50726976696c656765644163746f72000020012843617465676f7279496400002001205468726561644964000c0484506f73742077697468206769766e6520696420776173206d6f646572617465642e2c506f737444656c657465640c0028011c5665633c75383e000020012c466f72756d55736572496400004501017842547265654d61703c457874656e646564506f737449642c20626f6f6c3e000d047c506f73742077697468206769766e65206964207761732064656c657465642e3c506f737454657874557064617465641400200118506f73744964000020012c466f72756d557365724964000020012843617465676f7279496400002001205468726561644964000028011c5665633c75383e000e08a0506f7374207769746820676976656e2069642068616420697473207465787420757064617465642e4d01546865207365636f6e6420617267756d656e74207265666c6563747320746865206e756d626572206f6620746f74616c206564697473207768656e20746865207465787420757064617465206f63637572732e6843617465676f7279537469636b795468726561645570646174650c0020012843617465676f7279496400005101014842547265655365743c54687265616449643e00003d01013c50726976696c656765644163746f72000f0488537469636b7920746872656164207570646174656420666f722063617465676f72799043617465676f72794d656d626572736869704f664d6f64657261746f72557064617465640c0020012c4d6f64657261746f724964000020012843617465676f727949640000880110626f6f6c0010042501416e206d6f64657261746f72206162696c69747920746f206d6f64657261746520612063617465676f727920616e64206974732073756263617465676f726965732075706461746564085c4576656e747320666f722074686973206d6f64756c652e003d01083070616c6c65745f666f72756d3c50726976696c656765644163746f72040454000108104c656164000000244d6f64657261746f7204002001384d6f64657261746f7249643c543e000100004101083070616c6c65745f666f72756d50457874656e646564506f737449644f626a6563740c2843617465676f727949640120205468726561644964012018506f737449640120000c012c63617465676f72795f696420012843617465676f727949640001247468726561645f6964200120546872656164496400011c706f73745f6964200118506f7374496400004501042042547265654d617008044b01410104560188000400490100000049010000024d01004d0100000408410188005101042042547265655365740404540120000400f80000005501084c70616c6c65745f636f6e737469747574696f6e205261774576656e740410486173680124010444436f6e73747574696f6e416d656e646564080024011048617368000028011c5665633c75383e00001080456d697473206f6e20636f6e737469747574696f6e20616d656e646d656e742e2c506172616d65746572733a602d20636f6e737469747574696f6e207465787420686173684c2d20636f6e737469747574696f6e2074657874085c4576656e747320666f722074686973206d6f64756c652e005901083470616c6c65745f626f756e7479205261774576656e741c20426f756e7479496401201c456e747279496401201c42616c616e63650118204d656d62657249640120244163636f756e744964010060426f756e74794372656174696f6e506172616d6574657273015d01384f7261636c654a7564676d656e74016d01015c34426f756e7479437265617465640c00200120426f756e7479496400005d010160426f756e74794372656174696f6e506172616d6574657273000028011c5665633c75383e000014544120626f756e74792077617320637265617465642e1c506172616d733a2c2d20626f756e7479204944542d206372656174696f6e20706172616d6574657273442d20626f756e7479206d6574616461746150426f756e74794f7261636c6553776974636865641000200120426f756e74794964000061010154426f756e74794163746f723c4d656d62657249643e000061010154426f756e74794163746f723c4d656d62657249643e000061010154426f756e74794163746f723c4d656d62657249643e000118d0426f756e7479204f7261636c652053776974636865642062792063757272656e74206f7261636c65206f7220636f756e63696c2e1c506172616d733a2c2d20626f756e7479204944282d207377697463686572442d2063757272656e745f6f7261636c652c302d206e6577206f7261636c6540426f756e74795465726d696e617465641000200120426f756e74794964000061010154426f756e74794163746f723c4d656d62657249643e000061010154426f756e74794163746f723c4d656d62657249643e000061010154426f756e74794163746f723c4d656d62657249643e0002188c4120626f756e747920776173207465726d696e6174656420627920636f756e63696c2e1c506172616d733a2c2d20626f756e74792049444c2d20626f756e7479207465726d696e61746f72402d20626f756e74792063726561746f723c2d20626f756e7479206f7261636c6530426f756e747946756e6465640c00200120426f756e74794964000061010154426f756e74794163746f723c4d656d62657249643e000018011c42616c616e6365000314b44120626f756e7479207761732066756e6465642062792061206d656d626572206f72206120636f756e63696c2e1c506172616d733a2c2d20626f756e74792049443c2d20626f756e74792066756e646572402d2066756e64696e6720616d6f756e745c426f756e74794d617846756e64696e67526561636865640400200120426f756e7479496400040cbc4120626f756e747920686173207265616368656420697473207461726765742066756e64696e6720616d6f756e742e1c506172616d733a2c2d20626f756e74792049445c426f756e747946756e64696e675769746864726177616c0800200120426f756e74794964000061010154426f756e74794163746f723c4d656d62657249643e000510c041206d656d626572206f72206120636f756e63696c206861732077697468647261776e207468652066756e64696e672e1c506172616d733a2c2d20626f756e74792049443c2d20626f756e74792066756e64657274426f756e747943726561746f724368657272795769746864726177616c0800200120426f756e74794964000061010154426f756e74794163746f723c4d656d62657249643e000610f84120626f756e74792063726561746f72206861732077697468647261776e207468652063686572727920286d656d626572206f7220636f756e63696c292e1c506172616d733a2c2d20626f756e7479204944402d20626f756e74792063726561746f728c426f756e747943726561746f724f7261636c655265776172645769746864726177616c0800200120426f756e74794964000061010154426f756e74794163746f723c4d656d62657249643e00071015014120626f756e74792063726561746f72206861732077697468647261776e20746865206f7261636c652072657761726420286d656d626572206f7220636f756e63696c292e1c506172616d733a2c2d20626f756e7479204944402d20626f756e74792063726561746f7270426f756e74794f7261636c655265776172645769746864726177616c0c00200120426f756e74794964000061010154426f756e74794163746f723c4d656d62657249643e000018011c42616c616e6365000814f441204f7261636c65206861732077697468647261776e20746865206f7261636c652072657761726420286d656d626572206f7220636f756e63696c292e1c506172616d733a2c2d20626f756e7479204944402d20626f756e74792063726561746f723c2d204f7261636c652052657761726434426f756e747952656d6f7665640400200120426f756e7479496400090c544120626f756e7479207761732072656d6f7665642e1c506172616d733a2c2d20626f756e747920494448576f726b456e747279416e6e6f756e6365641400200120426f756e74794964000020011c456e747279496400002001204d656d626572496400000001244163636f756e744964000028011c5665633c75383e000a1c64576f726b20656e7472792077617320616e6e6f756e6365642e1c506172616d733a2c2d20626f756e7479204944482d206372656174656420656e7472792049444c2d20656e7472616e74206d656d626572204944502d207374616b696e67206163636f756e74204944482d20776f726b206465736372697074696f6e34576f726b5375626d69747465641000200120426f756e74794964000020011c456e747279496400002001204d656d6265724964000028011c5665633c75383e000b18305375626d697420776f726b2e1c506172616d733a2c2d20626f756e7479204944482d206372656174656420656e7472792049444c2d20656e7472616e74206d656d626572204944a82d20776f726b206461746120286465736372697074696f6e2c2055524c2c20424c4f422c206574632e295c4f7261636c654a7564676d656e745375626d69747465641000200120426f756e74794964000061010154426f756e74794163746f723c4d656d62657249643e00006d0101384f7261636c654a7564676d656e74000028011c5665633c75383e000c185c5375626d6974206f7261636c65206a7564676d656e742e1c506172616d733a2c2d20626f756e7479204944202d206f7261636c653c2d206a7564676d656e7420646174612c2d20726174696f6e616c6564576f726b456e7472616e7446756e647357697468647261776e0c00200120426f756e74794964000020011c456e747279496400002001204d656d6265724964000d145c576f726b20656e7472792077617320736c61736865642e1c506172616d733a2c2d20626f756e7479204944282d20656e7472792049444c2d20656e7472616e74206d656d62657220494464426f756e7479436f6e7472696275746f7252656d61726b65640c0061010154426f756e74794163746f723c4d656d62657249643e0000200120426f756e74794964000028011c5665633c75383e000e14a0426f756e747920636f6e7472696275746f72206d6164652061206d6573736167652072656d61726b1c506172616d733a342d20636f6e7472696275746f722c2d20626f756e7479206964242d206d65737361676550426f756e74794f7261636c6552656d61726b65640c0061010154426f756e74794163746f723c4d656d62657249643e0000200120426f756e74794964000028011c5665633c75383e000f148c426f756e7479206f7261636c65206d6164652061206d6573736167652072656d61726b1c506172616d733a202d206f7261636c652c2d20626f756e7479206964242d206d65737361676554426f756e7479456e7472616e7452656d61726b656410002001204d656d62657249640000200120426f756e74794964000020011c456e7472794964000028011c5665633c75383e00101890426f756e747920656e7472616e74206d6164652061206d6573736167652072656d61726b1c506172616d733a302d20656e7472616e745f69642c2d20626f756e7479206964282d20656e747279206964242d206d65737361676554426f756e747943726561746f7252656d61726b65640c0061010154426f756e74794163746f723c4d656d62657249643e0000200120426f756e74794964000028011c5665633c75383e00111490426f756e74792063726561746f72206d6164652061206d6573736167652072656d61726b1c506172616d733a242d2063726561746f722c2d20626f756e7479206964242d206d65737361676564576f726b5375626d697373696f6e506572696f64456e6465640800200120426f756e74794964000061010154426f756e74794163746f723c4d656d62657249643e0012105c576f726b20656e7472792077617320736c61736865642e1c506172616d733a2c2d20626f756e7479204944442d206f7261636c65202863616c6c65722960576f726b456e7472616e745374616b65556e6c6f636b65640c00200120426f756e74794964000020011c456e747279496400000001244163636f756e74496400131468576f726b20656e747279207374616b6520756e6c6f636b65642e1c506172616d733a2c2d20626f756e7479204944282d20656e7472792049443c2d207374616b65206163636f756e745c576f726b456e7472616e745374616b65536c61736865641000200120426f756e74794964000020011c456e747279496400000001244163636f756e744964000018011c42616c616e636500141864576f726b20656e747279207374616b6520736c61736865642e1c506172616d733a2c2d20626f756e7479204944282d20656e7472792049443c2d207374616b65206163636f756e74402d20736c617368656420616d6f756e747446756e6465725374617465426c6f6174426f6e6457697468647261776e0c00200120426f756e74794964000061010154426f756e74794163746f723c4d656d62657249643e000018011c42616c616e63650015141d0141206d656d626572206f72206120636f756e63696c2066756e646572206861732077697468647261776e207468652066756e64657220737461746520626c6f617420626f6e642e1c506172616d733a2c2d20626f756e74792049443c2d20626f756e74792066756e646572802d2066756e64657220537461746520626c6f617420626f6e6420616d6f756e747843726561746f725374617465426c6f6174426f6e6457697468647261776e0c00200120426f756e74794964000061010154426f756e74794163746f723c4d656d62657249643e000018011c42616c616e6365001614250141206d656d626572206f72206120636f756e63696c2063726561746f72206861732077697468647261776e207468652063726561746f7220737461746520626c6f617420626f6e642e1c506172616d733a2c2d20626f756e7479204944402d20626f756e74792063726561746f72842d2043726561746f7220537461746520626c6f617420626f6e6420616d6f756e74085c4576656e747320666f722074686973206d6f64756c652e005d01083470616c6c65745f626f756e747940426f756e7479506172616d6574657273101c42616c616e636501182c426c6f636b4e756d6265720110204d656d626572496401205c436c6f736564436f6e747261637457686974656c697374015101001c01186f7261636c6561010154426f756e74794163746f723c4d656d62657249643e000134636f6e74726163745f74797065650101b84173737572616e6365436f6e7472616374547970653c436c6f736564436f6e747261637457686974656c6973743e00011c63726561746f7261010154426f756e74794163746f723c4d656d62657249643e00011863686572727918011c42616c616e63650001346f7261636c655f72657761726418011c42616c616e6365000134656e7472616e745f7374616b6518011c42616c616e636500013066756e64696e675f747970656901018446756e64696e67547970653c426c6f636b4e756d6265722c2042616c616e63653e00006101083470616c6c65745f626f756e74792c426f756e74794163746f7204204d656d6265724964012001081c436f756e63696c000000184d656d62657204002001204d656d6265724964000100006501083470616c6c65745f626f756e7479544173737572616e6365436f6e747261637454797065045c436c6f736564436f6e747261637457686974656c6973740151010108104f70656e00000018436c6f73656404005101015c436c6f736564436f6e747261637457686974656c697374000100006901083470616c6c65745f626f756e74792c46756e64696e6754797065082c426c6f636b4e756d62657201101c42616c616e6365011801082450657270657475616c04011874617267657418011c42616c616e63650000001c4c696d6974656408011874617267657418011c42616c616e636500013866756e64696e675f706572696f6410012c426c6f636b4e756d626572000100006d01042042547265654d617008044b0120045601710100040075010000007101083470616c6c65745f626f756e74795c4f7261636c65576f726b456e7472794a7564676d656e74041c42616c616e6365011801081857696e6e657204011872657761726418011c42616c616e63650000002052656a6563746564080138736c617368696e675f73686172659c011c50657262696c6c000150616374696f6e5f6a757374696669636174696f6e28011c5665633c75383e000100007501000002790100790100000408207101007d01083870616c6c65745f7574696c697479205261774576656e74081c42616c616e63650118244163636f756e74496401000110205369676e616c6564040028011c5665633c75383e00000c7841207369676e616c2070726f706f73616c207761732065786563757465641c506172616d733adc2d205369676e616c20676976656e207768656e206372656174696e672074686520636f72726573706f6e64696e672070726f706f73616c3c52756e74696d655570677261646564040028011c5665633c75383e00010c78412072756e74696d652075706772616465207761732065786563757465641c506172616d733a6c2d204e657720636f646520656e636f64656420696e2062797465736455706461746564576f726b696e6747726f75704275646765740c0081010130576f726b696e6747726f7570000018011c42616c616e636500008501012c42616c616e63654b696e64000218d8416e206055706461746520576f726b696e672047726f757020427564676574602070726f706f73616c207761732065786563757465641c506172616d733ab42d20576f726b696e672067726f757020776869636820627564676574206973206265696e6720757064617465647c2d20416d6f756e74206f662062616c616e6365206265696e67206d6f7665645d012d20456e756d2076617269616e74207769746820706f73697469766520696e6469636174696e672066756e6473206d6f76656420746f72776172647320776f726b696e672067726f757020616e64206e65676174697665c0616e64206e656761746976652066756e6473206d6f76696e672066726f6d2074686520776f726b696e672067726f757030546f6b656e734275726e656408000001244163636f756e744964000018011c42616c616e636500031060416e206163636f756e74206275726e656420746f6b656e731c506172616d733a882d204163636f756e74204964206f6620746865206275726e696e6720746f6b656e73882d2042616c616e6365206275726e65642066726f6d2074686174206163636f756e74085c4576656e747320666f722074686973206d6f64756c652e008101103470616c6c65745f636f6d6d6f6e34776f726b696e675f67726f7570386974657261626c655f656e756d7330576f726b696e6747726f757000012414466f72756d0000001c53746f726167650001001c436f6e74656e740002003c4f7065726174696f6e73416c7068610003000c41707000040030446973747269627574696f6e000500384f7065726174696f6e73426574610006003c4f7065726174696f6e7347616d6d61000700284d656d62657273686970000800008501083470616c6c65745f636f6d6d6f6e2c42616c616e63654b696e6400010820506f736974697665000000204e65676174697665000100008901083870616c6c65745f636f6e74656e74205261774576656e746430436f6e74656e744163746f72018d01204d656d626572496401203843757261746f7247726f7570496401202443757261746f72496401201c566964656f49640120244368616e6e656c496401201c4368616e6e656c01910130446174614f626a6563744964012050456e676c69736841756374696f6e506172616d7301e501444f70656e41756374696f6e506172616d7301ed01344f70656e41756374696f6e49640120544e667449737375616e6365506172616d657465727301f1011c42616c616e63650118644368616e6e656c4372656174696f6e506172616d657465727301fd015c4368616e6e656c557064617465506172616d65746572730129025c566964656f4372656174696f6e506172616d657465727301310254566964656f557064617465506172616d6574657273013902544368616e6e656c50726976696c6567654c6576656c0108704d6f6465726174696f6e5065726d697373696f6e7342794c6576656c013d02645472616e73666572436f6d6d69746d656e745769746e6573730155023c50656e64696e675472616e7366657201d501244163636f756e7449640100785570646174654368616e6e656c5061796f757473506172616d65746572730159021c546f6b656e496401205c4368616e6e656c46756e647344657374696e6174696f6e016d0201d84c43757261746f7247726f757043726561746564040020013843757261746f7247726f757049640000007843757261746f7247726f75705065726d697373696f6e7355706461746564080020013843757261746f7247726f7570496400003d0201704d6f6465726174696f6e5065726d697373696f6e7342794c6576656c0001005443757261746f7247726f7570537461747573536574080020013843757261746f7247726f757049640000880110626f6f6c0002003043757261746f7241646465640c0020013843757261746f7247726f75704964000020012443757261746f7249640000a501015c4368616e6e656c4167656e745065726d697373696f6e730003003843757261746f7252656d6f766564080020013843757261746f7247726f75704964000020012443757261746f724964000400384368616e6e656c4372656174656410002001244368616e6e656c496400009101011c4368616e6e656c0000fd0101644368616e6e656c4372656174696f6e506172616d657465727300000001244163636f756e744964000500384368616e6e656c5570646174656410008d010130436f6e74656e744163746f7200002001244368616e6e656c496400002902015c4368616e6e656c557064617465506172616d657465727300005101015842547265655365743c446174614f626a65637449643e000600704368616e6e656c50726976696c6567654c6576656c5570646174656408002001244368616e6e656c496400000801544368616e6e656c50726976696c6567654c6576656c000700844368616e6e656c5374617465426c6f6174426f6e6456616c756555706461746564040018011c42616c616e63650008007c566964656f5374617465426c6f6174426f6e6456616c756555706461746564040018011c42616c616e6365000900504368616e6e656c41737365747352656d6f76656410008d010130436f6e74656e744163746f7200002001244368616e6e656c496400005101015842547265655365743c446174614f626a65637449643e00009101011c4368616e6e656c000a00384368616e6e656c44656c6574656408008d010130436f6e74656e744163746f7200002001244368616e6e656c4964000b00644368616e6e656c44656c6574656442794d6f64657261746f720c008d010130436f6e74656e744163746f7200002001244368616e6e656c4964000028011c5665633c75383e000c007c4368616e6e656c5669736962696c69747953657442794d6f64657261746f7210008d010130436f6e74656e744163746f7200002001244368616e6e656c49640000880110626f6f6c000028011c5665633c75383e000d009c4368616e6e656c50617573656446656174757265735570646174656442794d6f64657261746f7210008d010130436f6e74656e744163746f7200002001244368616e6e656c49640000c101018042547265655365743c5061757361626c654368616e6e656c466561747572653e000028011c5665633c75383e000e007c4368616e6e656c41737365747344656c6574656442794d6f64657261746f7210008d010130436f6e74656e744163746f7200002001244368616e6e656c496400005101015842547265655365743c446174614f626a65637449643e000028011c5665633c75383e000f00544368616e6e656c46756e647357697468647261776e10008d010130436f6e74656e744163746f7200002001244368616e6e656c4964000018011c42616c616e636500006d02015c4368616e6e656c46756e647344657374696e6174696f6e001000804368616e6e656c526577617264436c61696d6564416e6457697468647261776e10008d010130436f6e74656e744163746f7200002001244368616e6e656c4964000018011c42616c616e636500006d02015c4368616e6e656c46756e647344657374696e6174696f6e00110030566964656f4372656174656414008d010130436f6e74656e744163746f7200002001244368616e6e656c4964000020011c566964656f496400003102015c566964656f4372656174696f6e506172616d657465727300005101015842547265655365743c446174614f626a65637449643e00120030566964656f5570646174656410008d010130436f6e74656e744163746f72000020011c566964656f4964000039020154566964656f557064617465506172616d657465727300005101015842547265655365743c446174614f626a65637449643e00130030566964656f44656c6574656408008d010130436f6e74656e744163746f72000020011c566964656f49640014005c566964656f44656c6574656442794d6f64657261746f720c008d010130436f6e74656e744163746f72000020011c566964656f4964000028011c5665633c75383e00150074566964656f5669736962696c69747953657442794d6f64657261746f7210008d010130436f6e74656e744163746f72000020011c566964656f49640000880110626f6f6c000028011c5665633c75383e00160074566964656f41737365747344656c6574656442794d6f64657261746f7214008d010130436f6e74656e744163746f72000020011c566964656f496400005101015842547265655365743c446174614f626a65637449643e0000880110626f6f6c000028011c5665633c75383e001700544368616e6e656c5061796f757473557064617465640c00590201785570646174654368616e6e656c5061796f757473506172616d65746572730000190101504f7074696f6e3c446174614f626a65637449643e00000001244163636f756e744964001800504368616e6e656c526577617264557064617465640c0018011c42616c616e6365000018011c42616c616e636500002001244368616e6e656c496400190054456e676c69736841756374696f6e537461727465640c008d010130436f6e74656e744163746f72000020011c566964656f49640000e5010150456e676c69736841756374696f6e506172616d73001a00484f70656e41756374696f6e5374617274656410008d010130436f6e74656e744163746f72000020011c566964656f49640000ed0101444f70656e41756374696f6e506172616d7300002001344f70656e41756374696f6e4964001b00244e66744973737565640c008d010130436f6e74656e744163746f72000020011c566964656f49640000f10101544e667449737375616e6365506172616d6574657273001c00304e667444657374726f79656408008d010130436f6e74656e744163746f72000020011c566964656f4964001d003841756374696f6e4269644d61646510002001204d656d6265724964000020011c566964656f4964000018011c42616c616e63650000190101404f7074696f6e3c4d656d62657249643e001e004841756374696f6e42696443616e63656c656408002001204d656d6265724964000020011c566964656f4964001f003c41756374696f6e43616e63656c656408008d010130436f6e74656e744163746f72000020011c566964656f496400200054456e676c69736841756374696f6e536574746c65640c002001204d656d626572496400000001244163636f756e744964000020011c566964656f4964002100604269644d616465436f6d706c6574696e6741756374696f6e0c002001204d656d6265724964000020011c566964656f49640000190101404f7074696f6e3c4d656d62657249643e002200584f70656e41756374696f6e426964416363657074656410008d010130436f6e74656e744163746f72000020011c566964656f496400002001204d656d6265724964000018011c42616c616e6365002300304f6666657253746172746564100020011c566964656f496400008d010130436f6e74656e744163746f7200002001204d656d626572496400002901013c4f7074696f6e3c42616c616e63653e002400344f666665724163636570746564040020011c566964656f4964002500344f6666657243616e63656c6564080020011c566964656f496400008d010130436f6e74656e744163746f72002600404e667453656c6c4f726465724d6164650c0020011c566964656f496400008d010130436f6e74656e744163746f72000018011c42616c616e6365002700244e6674426f75676874080020011c566964656f496400002001204d656d6265724964002800384275794e6f7743616e63656c6564080020011c566964656f496400008d010130436f6e74656e744163746f72002900484275794e6f775072696365557064617465640c0020011c566964656f496400008d010130436f6e74656e744163746f72000018011c42616c616e6365002a00844e6674536c696e6765644261636b546f5468654f726967696e616c417274697374080020011c566964656f496400008d010130436f6e74656e744163746f72002b00504368616e6e656c4f776e657252656d61726b656408002001244368616e6e656c4964000028011c5665633c75383e002c046c4d65746170726f746f636f6c732072656c61746564206576656e74504368616e6e656c4167656e7452656d61726b65640c008d010130436f6e74656e744163746f7200002001244368616e6e656c4964000028011c5665633c75383e002d00404e66744f776e657252656d61726b65640c008d010130436f6e74656e744163746f72000020011c566964656f4964000028011c5665633c75383e002e0068496e697469616c697a65644368616e6e656c5472616e736665720c002001244368616e6e656c496400008d010130436f6e74656e744163746f720000d501013c50656e64696e675472616e73666572002f005443616e63656c4368616e6e656c5472616e7366657208002001244368616e6e656c496400008d010130436f6e74656e744163746f720030005c4368616e6e656c5472616e73666572416363657074656408002001244368616e6e656c49640000550201645472616e73666572436f6d6d69746d656e745769746e65737300310054476c6f62616c4e66744c696d6974557064617465640800710201384e66744c696d6974506572696f64000020010c753634003200584368616e6e656c4e66744c696d69745570646174656410008d010130436f6e74656e744163746f720000710201384e66744c696d6974506572696f6400002001244368616e6e656c4964000020010c75363400330040546f67676c65644e66744c696d6974730400880110626f6f6c0034004843726561746f72546f6b656e4973737565640c008d010130436f6e74656e744163746f7200002001244368616e6e656c4964000020011c546f6b656e4964003500085c4576656e747320666f722074686973206d6f64756c652e008d010c3870616c6c65745f636f6e74656e742c7065726d697373696f6e7330436f6e74656e744163746f720c3843757261746f7247726f7570496401202443757261746f7249640120204d656d62657249640120010c1c43757261746f72080020013843757261746f7247726f75704964000020012443757261746f724964000000184d656d62657204002001204d656d6265724964000100104c6561640002000091010c3870616c6c65745f636f6e74656e74147479706573344368616e6e656c5265636f72642c204d656d626572496401203843757261746f7247726f7570496401201c42616c616e63650118544368616e6e656c50726976696c6567654c6576656c01082c426c6f636b4e756d62657201101c546f6b656e49640120285472616e7366657249640120404368616e6e656c4173736574735365740195015c4368616e6e656c436f6c6c61626f7261746f72734d617001990144506175736564466561747572657353657401b90148526570617961626c65426c6f6174426f6e6401c901003801146f776e6572cd0101984368616e6e656c4f776e65723c4d656d62657249642c2043757261746f7247726f757049643e0001286e756d5f766964656f7320010c753634000134636f6c6c61626f7261746f72739901015c4368616e6e656c436f6c6c61626f7261746f72734d617000016463756d756c61746976655f7265776172645f636c61696d656418011c42616c616e636500013c70726976696c6567655f6c6576656c0801544368616e6e656c50726976696c6567654c6576656c00013c7061757365645f6665617475726573b9010144506175736564466561747572657353657400013c7472616e736665725f737461747573d1010179014368616e6e656c5472616e736665725374617475733c4d656d62657249642c2043757261746f7247726f757049642c2042616c616e63652c205472616e7366657249642c0a4368616e6e656c436f6c6c61626f7261746f72734d61702c3e000130646174615f6f626a65637473950101404368616e6e656c41737365747353657400013c6461696c795f6e66745f6c696d6974dd01016c4c696d6974506572506572696f643c426c6f636b4e756d6265723e0001407765656b6c795f6e66745f6c696d6974dd01016c4c696d6974506572506572696f643c426c6f636b4e756d6265723e0001446461696c795f6e66745f636f756e746572e101015c4e6674436f756e7465723c426c6f636b4e756d6265723e0001487765656b6c795f6e66745f636f756e746572e101015c4e6674436f756e7465723c426c6f636b4e756d6265723e00014063726561746f725f746f6b656e5f69641901013c4f7074696f6e3c546f6b656e49643e0001606368616e6e656c5f73746174655f626c6f61745f626f6e64c9010148526570617961626c65426c6f6174426f6e640000950110346672616d655f737570706f72741c73746f7261676544626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401200453000004005101012c42547265655365743c543e0000990110346672616d655f737570706f72741c73746f7261676544626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b01200456019d01045300000400ad01013842547265654d61703c4b2c20563e00009d0110346672616d655f737570706f72741c73746f7261676544626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401a101045300000400a501012c42547265655365743c543e0000a101103870616c6c65745f636f6e74656e74147479706573386974657261626c655f656e756d735c4368616e6e656c416374696f6e5065726d697373696f6e000154545570646174654368616e6e656c4d657461646174610000006c4d616e6167654e6f6e566964656f4368616e6e656c417373657473000100684d616e6167654368616e6e656c436f6c6c61626f7261746f72730002004c557064617465566964656f4d6574616461746100030020416464566964656f000400444d616e616765566964656f4173736574730005003444656c6574654368616e6e656c0006002c44656c657465566964656f0007003c4d616e616765566964656f4e6674730008002c4167656e7452656d61726b0009003c5472616e736665724368616e6e656c000a0048436c61696d4368616e6e656c526577617264000b0068576974686472617746726f6d4368616e6e656c42616c616e6365000c0044497373756543726561746f72546f6b656e000d0068436c61696d43726561746f72546f6b656e506174726f6e616765000e0074496e6974416e644d616e61676543726561746f72546f6b656e53616c65000f006843726561746f72546f6b656e4973737565725472616e73666572001000784d616b6543726561746f72546f6b656e5065726d697373696f6e6c6573730011007c52656475636543726561746f72546f6b656e506174726f6e616765526174650012004c4d616e616765526576656e756553706c6974730013004c4465697373756543726561746f72546f6b656e00140000a5010420425472656553657404045401a101000400a901000000a901000002a10100ad01042042547265654d617008044b01200456019d01000400b101000000b101000002b50100b50100000408209d0100b90110346672616d655f737570706f72741c73746f7261676544626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401bd01045300000400c101012c42547265655365743c543e0000bd01143870616c6c65745f636f6e74656e742c7065726d697373696f6e733463757261746f725f67726f7570386974657261626c655f656e756d73585061757361626c654368616e6e656c4665617475726500011c504368616e6e656c46756e64735472616e736665720000003843726561746f72436173686f757400010040566964656f4e667449737375616e636500020034566964656f4372656174696f6e0003002c566964656f557064617465000400344368616e6e656c5570646174650005005043726561746f72546f6b656e49737375616e636500060000c1010420425472656553657404045401bd01000400c501000000c501000002bd0100c9010c3470616c6c65745f636f6d6d6f6e28626c6f61745f626f6e6448526570617961626c65426c6f6174426f6e6408244163636f756e74496401001c42616c616e636501180008015c72657061796d656e745f726573747269637465645f746f2d0101444f7074696f6e3c4163636f756e7449643e000118616d6f756e7418011c42616c616e63650000cd010c3870616c6c65745f636f6e74656e74147479706573304368616e6e656c4f776e657208204d656d626572496401203843757261746f7247726f7570496401200108184d656d62657204002001204d656d62657249640000003043757261746f7247726f7570040020013843757261746f7247726f7570496400010000d1010c3870616c6c65745f636f6e74656e74147479706573544368616e6e656c5472616e7366657253746174757314204d656d626572496401203843757261746f7247726f7570496401201c42616c616e63650118285472616e73666572496401205c4368616e6e656c436f6c6c61626f7261746f72734d61700199010108404e6f4163746976655472616e736665720000003c50656e64696e675472616e736665720400d501015d0150656e64696e675472616e736665723c4d656d62657249642c2043757261746f7247726f757049642c2042616c616e63652c205472616e7366657249642c0a4368616e6e656c436f6c6c61626f7261746f72734d61703e00010000d5010c3870616c6c65745f636f6e74656e741474797065733c50656e64696e675472616e7366657214204d656d626572496401203843757261746f7247726f7570496401201c42616c616e63650118285472616e73666572496401205c4368616e6e656c436f6c6c61626f7261746f72734d6170019901000801246e65775f6f776e6572cd0101984368616e6e656c4f776e65723c4d656d62657249642c2043757261746f7247726f757049643e00013c7472616e736665725f706172616d73d9010129015472616e73666572436f6d6d69746d656e74506172616d65746572733c4368616e6e656c436f6c6c61626f7261746f72734d61702c2042616c616e63652c205472616e7366657249643e0000d9010c3870616c6c65745f636f6e74656e74147479706573705472616e73666572436f6d6d69746d656e74506172616d65746572730c5c4368616e6e656c436f6c6c61626f7261746f72734d61700199011c42616c616e63650118285472616e7366657249640120000c01446e65775f636f6c6c61626f7261746f72739901015c4368616e6e656c436f6c6c61626f7261746f72734d6170000114707269636518011c42616c616e636500012c7472616e736665725f69642001285472616e7366657249640000dd010c3870616c6c65745f636f6e74656e74147479706573384c696d6974506572506572696f64042c426c6f636b4e756d6265720110000801146c696d697420010c75363400014c626c6f636b5f6e756d6265725f706572696f6410012c426c6f636b4e756d6265720000e1010c3870616c6c65745f636f6e74656e74147479706573284e6674436f756e746572042c426c6f636b4e756d62657201100008011c636f756e74657220010c7536340001306c6173745f7570646174656410012c426c6f636b4e756d6265720000e501103870616c6c65745f636f6e74656e740c6e667414747970657368456e676c69736841756374696f6e506172616d735265636f72640c2c426c6f636b4e756d62657201101c42616c616e63650118204d656d62657249640120001c01387374617274696e675f707269636518011c42616c616e63650001346275795f6e6f775f70726963652901013c4f7074696f6e3c42616c616e63653e00012477686974656c6973745101014842547265655365743c4d656d62657249643e0001247374617274735f6174e901014c4f7074696f6e3c426c6f636b4e756d6265723e0001206475726174696f6e10012c426c6f636b4e756d626572000140657874656e73696f6e5f706572696f6410012c426c6f636b4e756d6265720001306d696e5f6269645f7374657018011c42616c616e63650000e90104184f7074696f6e04045401100108104e6f6e6500000010536f6d650400100000010000ed01103870616c6c65745f636f6e74656e740c6e66741474797065735c4f70656e41756374696f6e506172616d735265636f72640c2c426c6f636b4e756d62657201101c42616c616e63650118204d656d62657249640120001401387374617274696e675f707269636518011c42616c616e63650001346275795f6e6f775f70726963652901013c4f7074696f6e3c42616c616e63653e0001247374617274735f6174e901014c4f7074696f6e3c426c6f636b4e756d6265723e00012477686974656c6973745101014842547265655365743c4d656d62657249643e0001446269645f6c6f636b5f6475726174696f6e10012c426c6f636b4e756d6265720000f101103870616c6c65745f636f6e74656e740c6e66741474797065736c4e667449737375616e6365506172616d65746572735265636f726408204d656d626572496401205c496e69745472616e73616374696f6e616c53746174757301f5010010011c726f79616c7479f901013c4f7074696f6e3c526f79616c74793e0001306e66745f6d6574616461746128012c4e66744d657461646174610001446e6f6e5f6368616e6e656c5f6f776e6572190101404f7074696f6e3c4d656d62657249643e000164696e69745f7472616e73616374696f6e616c5f737461747573f501015c496e69745472616e73616374696f6e616c5374617475730000f501103870616c6c65745f636f6e74656e740c6e667414747970657374496e69745472616e73616374696f6e616c5374617475735265636f72641050456e676c69736841756374696f6e506172616d7301e501444f70656e41756374696f6e506172616d7301ed01204d656d626572496401201c42616c616e6365011801141049646c65000000184275794e6f77040018011c42616c616e636500010058496e697469617465644f66666572546f4d656d62657208002001204d656d626572496400002901013c4f7074696f6e3c42616c616e63653e00020038456e676c69736841756374696f6e0400e5010150456e676c69736841756374696f6e506172616d730003002c4f70656e41756374696f6e0400ed0101444f70656e41756374696f6e506172616d7300040000f90104184f7074696f6e040454019c0108104e6f6e6500000010536f6d6504009c0000010000fd010c3870616c6c65745f636f6e74656e741474797065737c4368616e6e656c4372656174696f6e506172616d65746572735265636f7264143453746f72616765417373657473010102204d656d626572496401203c53746f726167654275636b65744964012050446973747269627574696f6e4275636b65744964010d021c42616c616e63650118001c0118617373657473110201544f7074696f6e3c53746f726167654173736574733e0001106d6574611501013c4f7074696f6e3c5665633c75383e3e000134636f6c6c61626f7261746f7273150201ac42547265654d61703c4d656d62657249642c204368616e6e656c4167656e745065726d697373696f6e733e00013c73746f726167655f6275636b6574735101016442547265655365743c53746f726167654275636b657449643e000150646973747269627574696f6e5f6275636b6574732102017842547265655365743c446973747269627574696f6e4275636b657449643e00018465787065637465645f6368616e6e656c5f73746174655f626c6f61745f626f6e6418011c42616c616e636500019465787065637465645f646174615f6f626a6563745f73746174655f626c6f61745f626f6e6418011c42616c616e6365000001020c3870616c6c65745f636f6e74656e741474797065734c53746f726167654173736574735265636f7264041c42616c616e63650118000801506f626a6563745f6372656174696f6e5f6c697374050201845665633c446174614f626a6563744372656174696f6e506172616d65746572733e00015865787065637465645f646174615f73697a655f66656518011c42616c616e6365000005020000020902000902083870616c6c65745f73746f7261676570446174614f626a6563744372656174696f6e506172616d6574657273000008011073697a6520010c75363400013c697066735f636f6e74656e745f696428011c5665633c75383e00000d02083870616c6c65745f73746f7261676568446973747269627574696f6e4275636b657449645265636f72640868446973747269627574696f6e4275636b657446616d696c79496401205c446973747269627574696f6e4275636b6574496e646578012000080174646973747269627574696f6e5f6275636b65745f66616d696c795f6964200168446973747269627574696f6e4275636b657446616d696c794964000164646973747269627574696f6e5f6275636b65745f696e64657820015c446973747269627574696f6e4275636b6574496e6465780000110204184f7074696f6e0404540101020108104e6f6e6500000010536f6d650400010200000100001502042042547265654d617008044b0120045601a501000400190200000019020000021d02001d020000040820a50100210204204254726565536574040454010d02000400250200000025020000020d020029020c3870616c6c65745f636f6e74656e74147479706573744368616e6e656c557064617465506172616d65746572735265636f7264103453746f7261676541737365747301010230446174614f626a65637449640120204d656d626572496401201c42616c616e63650118001801406173736574735f746f5f75706c6f6164110201544f7074696f6e3c53746f726167654173736574733e0001206e65775f6d6574611501013c4f7074696f6e3c5665633c75383e3e0001406173736574735f746f5f72656d6f76655101015842547265655365743c446174614f626a65637449643e000134636f6c6c61626f7261746f72732d0201cc4f7074696f6e3c42547265654d61703c4d656d62657249642c204368616e6e656c4167656e745065726d697373696f6e733e3e00019465787065637465645f646174615f6f626a6563745f73746174655f626c6f61745f626f6e6418011c42616c616e636500016c73746f726167655f6275636b6574735f6e756d5f7769746e657373e901012c4f7074696f6e3c7533323e00002d0204184f7074696f6e0404540115020108104e6f6e6500000010536f6d6504001502000001000031020c3870616c6c65745f636f6e74656e7414747970657374566964656f4372656174696f6e506172616d65746572735265636f72640c3453746f72616765417373657473010102544e667449737375616e6365506172616d657465727301f1011c42616c616e6365011800180118617373657473110201544f7074696f6e3c53746f726167654173736574733e0001106d6574611501013c4f7074696f6e3c5665633c75383e3e0001386175746f5f69737375655f6e6674350201744f7074696f6e3c4e667449737375616e6365506172616d65746572733e00017c65787065637465645f766964656f5f73746174655f626c6f61745f626f6e6418011c42616c616e636500019465787065637465645f646174615f6f626a6563745f73746174655f626c6f61745f626f6e6418011c42616c616e636500016c73746f726167655f6275636b6574735f6e756d5f7769746e65737310010c7533320000350204184f7074696f6e04045401f1010108104e6f6e6500000010536f6d650400f101000001000039020c3870616c6c65745f636f6e74656e741474797065736c566964656f557064617465506172616d65746572735265636f7264103453746f7261676541737365747301010230446174614f626a65637449640120544e667449737375616e6365506172616d657465727301f1011c42616c616e63650118001801406173736574735f746f5f75706c6f6164110201544f7074696f6e3c53746f726167654173736574733e0001206e65775f6d6574611501013c4f7074696f6e3c5665633c75383e3e0001406173736574735f746f5f72656d6f76655101015842547265655365743c446174614f626a65637449643e0001386175746f5f69737375655f6e6674350201744f7074696f6e3c4e667449737375616e6365506172616d65746572733e00019465787065637465645f646174615f6f626a6563745f73746174655f626c6f61745f626f6e6418011c42616c616e636500016c73746f726167655f6275636b6574735f6e756d5f7769746e657373e901012c4f7074696f6e3c7533323e00003d02042042547265654d617008044b010804560141020004004d0200000041020420425472656553657404045401450200040049020000004502143870616c6c65745f636f6e74656e742c7065726d697373696f6e733463757261746f725f67726f7570386974657261626c655f656e756d735c436f6e74656e744d6f6465726174696f6e416374696f6e0001202448696465566964656f0000002c486964654368616e6e656c000100684368616e67654368616e6e656c466561747572655374617475730400bd0101585061757361626c654368616e6e656c466561747572650002002c44656c657465566964656f0003003444656c6574654368616e6e656c0004004444656c657465566964656f4173736574730400880110626f6f6c0005006c44656c6574654e6f6e566964656f4368616e6e656c417373657473000600585570646174654368616e6e656c4e66744c696d6974730007000049020000024502004d020000025102005102000004080841020055020c3870616c6c65745f636f6e74656e74147479706573705472616e73666572436f6d6d69746d656e74506172616d65746572730c5c4368616e6e656c436f6c6c61626f7261746f72734d61700115021c42616c616e63650118285472616e7366657249640120000c01446e65775f636f6c6c61626f7261746f72731502015c4368616e6e656c436f6c6c61626f7261746f72734d6170000114707269636518011c42616c616e636500012c7472616e736665725f69642001285472616e736665724964000059020c3870616c6c65745f636f6e74656e74147479706573905570646174654368616e6e656c5061796f757473506172616d65746572735265636f72640c7c4368616e6e656c5061796f7574735061796c6f6164506172616d6574657273015d021c42616c616e636501181048617368012400140128636f6d6d69746d656e74610201304f7074696f6e3c486173683e00011c7061796c6f61646502019c4f7074696f6e3c4368616e6e656c5061796f7574735061796c6f6164506172616d65746572733e00014c6d696e5f636173686f75745f616c6c6f7765642901013c4f7074696f6e3c42616c616e63653e00014c6d61785f636173686f75745f616c6c6f7765642901013c4f7074696f6e3c42616c616e63653e0001606368616e6e656c5f636173686f7574735f656e61626c6564690201304f7074696f6e3c626f6f6c3e00005d020c3870616c6c65745f636f6e74656e74147479706573944368616e6e656c5061796f7574735061796c6f6164506172616d65746572735265636f7264041c42616c616e63650118000c01586f626a6563745f6372656174696f6e5f706172616d7309020170446174614f626a6563744372656174696f6e506172616d657465727300015865787065637465645f646174615f73697a655f66656518011c42616c616e636500019465787065637465645f646174615f6f626a6563745f73746174655f626c6f61745f626f6e6418011c42616c616e63650000610204184f7074696f6e04045401240108104e6f6e6500000010536f6d650400240000010000650204184f7074696f6e040454015d020108104e6f6e6500000010536f6d6504005d020000010000690204184f7074696f6e04045401880108104e6f6e6500000010536f6d6504008800000100006d020c3870616c6c65745f636f6e74656e741474797065735c4368616e6e656c46756e647344657374696e6174696f6e04244163636f756e74496401000108244163636f756e74496404000001244163636f756e74496400000034436f756e63696c4275646765740001000071020c3870616c6c65745f636f6e74656e74147479706573384e66744c696d6974506572696f64000108144461696c79000000185765656b6c79000100007502083870616c6c65745f73746f72616765205261774576656e74303c53746f726167654275636b65744964012020576f726b65724964012030446174614f626a656374496401204055706c6f6164506172616d6574657273017902144261674964017d023044796e616d69634261674964018502244163636f756e74496401001c42616c616e6365011868446973747269627574696f6e4275636b657446616d696c794964012050446973747269627574696f6e4275636b65744964010d025c446973747269627574696f6e4275636b6574496e64657801207044796e616d69634261674372656174696f6e506172616d657465727301890201a85053746f726167654275636b657443726561746564140020013c53746f726167654275636b657449640000190101404f7074696f6e3c576f726b657249643e0000880110626f6f6c000020010c753634000020010c75363400001c94456d697473206f6e206372656174696e67207468652073746f72616765206275636b65742e18506172616d734c2d2073746f72616765206275636b6574204944402d20696e766974656420776f726b65726c2d20666c61672022616363657074696e675f6e65775f6261677322642d2073697a65206c696d697420666f7220766f75636865722c702d206f626a65637473206c696d697420666f7220766f75636865722c7c53746f726167654275636b6574496e7669746174696f6e41636365707465640c0020013c53746f726167654275636b657449640000200120576f726b6572496400000001244163636f756e744964000114c4456d697473206f6e20616363657074696e67207468652073746f72616765206275636b657420696e7669746174696f6e2e18506172616d734c2d2073746f72616765206275636b65742049444c2d20696e766974656420776f726b65722049445c2d207472616e736163746f72206163636f756e742049446c53746f726167654275636b65747355706461746564466f724261670c007d020114426167496400005101016442547265655365743c53746f726167654275636b657449643e00005101016442547265655365743c53746f726167654275636b657449643e000214a8456d697473206f6e207570646174696e672073746f72616765206275636b65747320666f72206261672e18506172616d73202d20626167204944982d2073746f72616765206275636b65747320746f2061646420494420636f6c6c656374696f6ea42d2073746f72616765206275636b65747320746f2072656d6f766520494420636f6c6c656374696f6e4c446174614f626a6563747355706c6f616465640c005101015842547265655365743c446174614f626a65637449643e00007902014055706c6f6164506172616d6574657273000018011c42616c616e636500031480456d697473206f6e2075706c6f6164696e672064617461206f626a656374732e18506172616d73482d2064617461206f626a6563747320494473782d20696e697469616c2075706c6f6164696e6720706172616d6574657273782d20737461746520626c6f617420626f6e6420666f72206f626a656374736853746f726167654f70657261746f724d657461646174615365740c0020013c53746f726167654275636b657449640000200120576f726b65724964000028011c5665633c75383e000414bc456d697473206f6e2073657474696e67207468652073746f72616765206f70657261746f72206d657461646174612e18506172616d734c2d2073746f72616765206275636b65742049444c2d20696e766974656420776f726b6572204944282d206d657461646174617453746f726167654275636b6574566f75636865724c696d6974735365740c0020013c53746f726167654275636b65744964000020010c753634000020010c753634000514cc456d697473206f6e2073657474696e67207468652073746f72616765206275636b657420766f7563686572206c696d6974732e18506172616d734c2d2073746f72616765206275636b6574204944782d206e657720746f74616c206f626a656374732073697a65206c696d6974802d206e657720746f74616c206f626a65637473206e756d626572206c696d69746850656e64696e67446174614f626a656374734163636570746564100020013c53746f726167654275636b657449640000200120576f726b6572496400007d020114426167496400005101015842547265655365743c446174614f626a65637449643e000618a0456d697473206f6e20616363657074696e672070656e64696e672064617461206f626a656374732e18506172616d734c2d2073746f72616765206275636b6574204944842d20776f726b6572204944202873746f726167652070726f766964657220494429202d20626167204944582d2070656e64696e672064617461206f626a656374738053746f726167654275636b6574496e7669746174696f6e43616e63656c6c6564040020013c53746f726167654275636b6574496400070cc8456d697473206f6e2063616e63656c6c696e67207468652073746f72616765206275636b657420696e7669746174696f6e2e18506172616d734c2d2073746f72616765206275636b65742049447053746f726167654275636b65744f70657261746f72496e7669746564080020013c53746f726167654275636b657449640000200120576f726b65724964000810c0456d697473206f6e207468652073746f72616765206275636b6574206f70657261746f7220696e7669746174696f6e2e18506172616d734c2d2073746f72616765206275636b6574204944a82d206f70657261746f7220776f726b6572204944202873746f726167652070726f7669646572204944297053746f726167654275636b65744f70657261746f7252656d6f766564040020013c53746f726167654275636b6574496400090cb4456d697473206f6e207468652073746f72616765206275636b6574206f70657261746f722072656d6f76616c2e18506172616d734c2d2073746f72616765206275636b65742049446c55706c6f6164696e67426c6f636b537461747573557064617465640400880110626f6f6c000a0c0501456d697473206f6e206368616e67696e67207468652073697a652d62617365642070726963696e67206f66206e6577206f626a656374732075706c6f616465642e18506172616d73302d206e6577207374617475737c446174614f626a6563745065724d6567616279746546656555706461746564040018011c42616c616e6365000b0c0501456d697473206f6e206368616e67696e67207468652073697a652d62617365642070726963696e67206f66206e6577206f626a656374732075706c6f616465642e18506172616d734c2d206e657720646174612073697a65206665658053746f726167654275636b6574735065724261674c696d697455706461746564040010010c753332000c0cf4456d697473206f6e206368616e67696e6720746865202253746f72616765206275636b657473207065722062616722206e756d626572206c696d69742e18506172616d732c2d206e6577206c696d69749453746f726167654275636b657473566f75636865724d61784c696d69747355706461746564080020010c753634000020010c753634000d10ec456d697473206f6e206368616e67696e6720746865202253746f72616765206275636b65747320766f7563686572206d6178206c696d697473222e18506172616d73602d206e6577206f626a656374732073697a65206c696d6974682d206e6577206f626a65637473206e756d626572206c696d697440446174614f626a656374734d6f7665640c007d020114426167496400007d020114426167496400005101015842547265655365743c446174614f626a65637449643e000e14a8456d697473206f6e206d6f76696e672064617461206f626a65637473206265747765656e20626167732e18506172616d733c2d20736f7572636520626167204944502d2064657374696e6174696f6e20626167204944442d2064617461206f626a6563742049447348446174614f626a6563747344656c657465640c000001244163636f756e74496400007d020114426167496400005101015842547265655365743c446174614f626a65637449643e000f14a4456d697473206f6e2064617461206f626a656374732064656c6574696f6e2066726f6d20626167732e18506172616d73942d206163636f756e7420494420666f722074686520737461746520626c6f617420626f6e64202d20626167204944442d2064617461206f626a656374204944736853746f726167654275636b657453746174757355706461746564080020013c53746f726167654275636b657449640000880110626f6f6c00101098456d697473206f6e2073746f72616765206275636b657420737461747573207570646174652e18506172616d734c2d2073746f72616765206275636b6574204944302d206e6577207374617475733c557064617465426c61636b6c69737408008d02014442547265655365743c5665633c75383e3e00008d02014442547265655365743c5665633c75383e3e001110c4456d697473206f6e207570646174696e672074686520626c61636b6c69737420776974682064617461206861736865732e18506172616d73942d2068617368657320746f2072656d6f76652066726f6d2074686520626c61636b6c697374802d2068617368657320746f2061646420746f2074686520626c61636b6c6973744444796e616d696342616744656c6574656404008502013044796e616d6963426167496400120c80456d697473206f6e2064656c6574696e6720612064796e616d6963206261672e18506172616d73402d2064796e616d6963206261672049444444796e616d69634261674372656174656408008902017044796e616d69634261674372656174696f6e506172616d657465727300005101015842547265655365743c446174614f626a65637449643e00131080456d697473206f6e206372656174696e6720612064796e616d6963206261672e18506172616d73842d2064796e616d696320626167206372656174696f6e20706172616d65746572736c2d2075706c6f616465642064617461206f626a656374732069647338566f75636865724368616e676564080020013c53746f726167654275636b6574496400009502011c566f7563686572001410cc456d697473206f6e206368616e67696e672074686520766f756368657220666f7220612073746f72616765206275636b65742e18506172616d734c2d2073746f72616765206275636b6574204944342d206e657720766f75636865725053746f726167654275636b657444656c65746564040020013c53746f726167654275636b6574496400150c84456d697473206f6e2073746f72616765206275636b65742064656c6574696e672e18506172616d734c2d2073746f72616765206275636b6574204944dc4e756d6265724f6653746f726167654275636b657473496e44796e616d69634261674372656174696f6e506f6c6963795570646174656408009902013844796e616d696342616754797065000010010c7533320016103d01456d697473206f6e207570646174696e6720746865206e756d626572206f662073746f72616765206275636b65747320696e2064796e616d696320626167206372656174696f6e20706f6c6963792e18506172616d73482d2064796e616d69632062616720747970657c2d206e6577206e756d626572206f662073746f72616765206275636b6574737c446973747269627574696f6e4275636b657446616d696c79437265617465640400200168446973747269627574696f6e4275636b657446616d696c79496400170cb4456d697473206f6e206372656174696e6720646973747269627574696f6e206275636b65742066616d696c792e18506172616d737c2d20646973747269627574696f6e2066616d696c79206275636b65742049447c446973747269627574696f6e4275636b657446616d696c7944656c657465640400200168446973747269627574696f6e4275636b657446616d696c79496400180cb4456d697473206f6e2064656c6574696e6720646973747269627574696f6e206275636b65742066616d696c792e18506172616d737c2d20646973747269627574696f6e2066616d696c79206275636b657420494464446973747269627574696f6e4275636b6574437265617465640c00200168446973747269627574696f6e4275636b657446616d696c7949640000880110626f6f6c00000d020150446973747269627574696f6e4275636b6574496400191498456d697473206f6e206372656174696e6720646973747269627574696f6e206275636b65742e18506172616d737c2d20646973747269627574696f6e206275636b65742066616d696c79204944502d20616363657074696e67206e65772062616773602d20646973747269627574696f6e206275636b65742049447c446973747269627574696f6e4275636b65745374617475735570646174656408000d020150446973747269627574696f6e4275636b657449640000880110626f6f6c001a10ec456d697473206f6e2073746f72616765206275636b657420737461747573207570646174652028616363657074696e67206e65772062616773292e18506172616d73602d20646973747269627574696f6e206275636b6574204944842d206e6577207374617475732028616363657074696e67206e657720626167732964446973747269627574696f6e4275636b657444656c6574656404000d020150446973747269627574696f6e4275636b65744964001b0c98456d697473206f6e2064656c6574696e6720646973747269627574696f6e206275636b65742e18506172616d73602d20646973747269627574696f6e206275636b657420494480446973747269627574696f6e4275636b65747355706461746564466f7242616710007d02011442616749640000200168446973747269627574696f6e4275636b657446616d696c79496400005101018442547265655365743c446973747269627574696f6e4275636b6574496e6465783e00005101018442547265655365743c446973747269627574696f6e4275636b6574496e6465783e001c14bc456d697473206f6e207570646174696e6720646973747269627574696f6e206275636b65747320666f72206261672e18506172616d73202d20626167204944982d2073746f72616765206275636b65747320746f2061646420494420636f6c6c656374696f6ea42d2073746f72616765206275636b65747320746f2072656d6f766520494420636f6c6c656374696f6e94446973747269627574696f6e4275636b6574735065724261674c696d697455706461746564040010010c753332001d0c0901456d697473206f6e206368616e67696e67207468652022446973747269627574696f6e206275636b657473207065722062616722206e756d626572206c696d69742e18506172616d732c2d206e6577206c696d697474446973747269627574696f6e4275636b65744d6f64655570646174656408000d020150446973747269627574696f6e4275636b657449640000880110626f6f6c001e10e0456d697473206f6e2073746f72616765206275636b6574206d6f6465207570646174652028646973747269627574696e6720666c6167292e18506172616d73602d20646973747269627574696f6e206275636b6574204944382d20646973747269627574696e67a446616d696c696573496e44796e616d69634261674372656174696f6e506f6c6963795570646174656408009902013844796e616d69634261675479706500009d0201a442547265654d61703c446973747269627574696f6e4275636b657446616d696c7949642c207533323e001f102d01456d697473206f6e2064796e616d696320626167206372656174696f6e20706f6c696379207570646174652028646973747269627574696f6e206275636b65742066616d696c696573292e18506172616d73482d2064796e616d6963206261672074797065742d2066616d696c69657320616e64206275636b6574206e756d6265727384446973747269627574696f6e4275636b65744f70657261746f72496e766974656408000d020150446973747269627574696f6e4275636b657449640000200120576f726b657249640020101101456d697473206f6e206372656174696e67206120646973747269627574696f6e206275636b657420696e7669746174696f6e20666f7220746865206f70657261746f722e18506172616d73602d20646973747269627574696f6e206275636b65742049442c2d20776f726b657220494494446973747269627574696f6e4275636b6574496e7669746174696f6e43616e63656c6c656408000d020150446973747269627574696f6e4275636b657449640000200120576f726b657249640021101501456d697473206f6e2063616e63656c696e67206120646973747269627574696f6e206275636b657420696e7669746174696f6e20666f7220746865206f70657261746f722e18506172616d73602d20646973747269627574696f6e206275636b6574204944502d206f70657261746f7220776f726b657220494490446973747269627574696f6e4275636b6574496e7669746174696f6e41636365707465640800200120576f726b6572496400000d020150446973747269627574696f6e4275636b657449640022101501456d697473206f6e20616363657074696e67206120646973747269627574696f6e206275636b657420696e7669746174696f6e20666f7220746865206f70657261746f722e18506172616d732c2d20776f726b6572204944602d20646973747269627574696f6e206275636b657420494474446973747269627574696f6e4275636b65744d657461646174615365740c00200120576f726b6572496400000d020150446973747269627574696f6e4275636b65744964000028011c5665633c75383e0023140101456d697473206f6e2073657474696e6720746865206d65746164617461206279206120646973747269627574696f6e206275636b6574206f70657261746f722e18506172616d732c2d20776f726b6572204944602d20646973747269627574696f6e206275636b6574204944282d206d6574616461746184446973747269627574696f6e4275636b65744f70657261746f7252656d6f76656408000d020150446973747269627574696f6e4275636b657449640000200120576f726b65724964002410c8456d697473206f6e2074686520646973747269627574696f6e206275636b6574206f70657261746f722072656d6f76616c2e18506172616d73602d20646973747269627574696f6e206275636b6574204944842d20646973747269627574696f6e206275636b6574206f70657261746f722049448c446973747269627574696f6e4275636b657446616d696c794d657461646174615365740800200168446973747269627574696f6e4275636b657446616d696c794964000028011c5665633c75383e002510f8456d697473206f6e2073657474696e6720746865206d65746164617461206279206120646973747269627574696f6e206275636b65742066616d696c792e18506172616d737c2d20646973747269627574696f6e206275636b65742066616d696c79204944282d206d6574616461746190446174614f626a6563745374617465426c6f6174426f6e6456616c756555706461746564040018011c42616c616e636500260ccc456d697473206f6e207570646174696e67207468652064617461206f626a65637420737461746520626c6f617420626f6e642e18506172616d73602d20737461746520626c6f617420626f6e642076616c756548446174614f626a65637473557064617465640c007902014055706c6f6164506172616d657465727300005101015842547265655365743c446174614f626a65637449643e00005101015842547265655365743c446174614f626a65637449643e0027140d01456d697473206f6e2073746f7261676520617373657473206265696e672075706c6f6164656420616e642064656c65746564206174207468652073616d652074696d6518506172616d73482d2055706c6f6164506172616d6574657273742d20496473206f66207468652075706c6f61646564206f626a65637473702d20496473206f66207468652072656d6f766564206f626a656374735c53746f726167654f70657261746f7252656d61726b65640c00200120576f726b65724964000020013c53746f726167654275636b65744964000028011c5665633c75383e002814a4456d697473206f6e2053746f72616765204f70657261746f72206d616b696e6720612072656d61726b18506172616d73582d206f70657261746f72277320776f726b65722069644c2d2073746f72616765206275636b6574206964402d2072656d61726b206d65737361676570446973747269627574696f6e4f70657261746f7252656d61726b65640c00200120576f726b6572496400000d020150446973747269627574696f6e4275636b65744964000028011c5665633c75383e002914b8456d697473206f6e20446973747269627574696f6e204f70657261746f72206d616b696e6720612072656d61726b18506172616d73582d206f70657261746f72277320776f726b6572206964602d20646973747269627574696f6e206275636b6574206964402d2072656d61726b206d6573736167650c5c4576656e747320666f722074686973206d6f64756c652e003853746f72616765206576656e74737902083870616c6c65745f73746f726167655855706c6f6164506172616d65746572735265636f72640c144261674964017d02244163636f756e74496401001c42616c616e63650118001401186261675f69647d02011442616749640001506f626a6563745f6372656174696f6e5f6c697374050201845665633c446174614f626a6563744372656174696f6e506172616d65746572733e00018873746174655f626c6f61745f626f6e645f736f757263655f6163636f756e745f69640001244163636f756e74496400015865787065637465645f646174615f73697a655f66656518011c42616c616e636500019465787065637465645f646174615f6f626a6563745f73746174655f626c6f61745f626f6e6418011c42616c616e636500007d02083870616c6c65745f73746f726167652442616749645479706508204d656d62657249640120244368616e6e656c4964012001081853746174696304008102012c53746174696342616749640000001c44796e616d696304008502019444796e616d69634261674964547970653c4d656d62657249642c204368616e6e656c49643e000100008102083870616c6c65745f73746f726167652c53746174696342616749640001081c436f756e63696c00000030576f726b696e6747726f7570040081010130576f726b696e6747726f7570000100008502083870616c6c65745f73746f726167654044796e616d696342616749645479706508204d656d62657249640120244368616e6e656c496401200108184d656d62657204002001204d656d62657249640000001c4368616e6e656c04002001244368616e6e656c4964000100008902083870616c6c65745f73746f726167657844796e4261674372656174696f6e506172616d65746572735265636f726414144261674964018502244163636f756e74496401001c42616c616e636501183c53746f726167654275636b65744964012050446973747269627574696f6e4275636b65744964010d02001c01186261675f69648502011442616749640001506f626a6563745f6372656174696f6e5f6c697374050201845665633c446174614f626a6563744372656174696f6e506172616d65746572733e00018873746174655f626c6f61745f626f6e645f736f757263655f6163636f756e745f69640001244163636f756e74496400015865787065637465645f646174615f73697a655f66656518011c42616c616e636500019465787065637465645f646174615f6f626a6563745f73746174655f626c6f61745f626f6e6418011c42616c616e636500013c73746f726167655f6275636b6574735101016442547265655365743c53746f726167654275636b657449643e000150646973747269627574696f6e5f6275636b6574732102017842547265655365743c446973747269627574696f6e4275636b657449643e00008d020420425472656553657404045401280004009102000000910200000228009502083870616c6c65745f73746f726167651c566f7563686572000010012873697a655f6c696d697420010c7536340001346f626a656374735f6c696d697420010c75363400012473697a655f7573656420010c7536340001306f626a656374735f7573656420010c75363400009902083870616c6c65745f73746f726167653844796e616d696342616754797065000108184d656d6265720000001c4368616e6e656c000100009d02042042547265654d617008044b012004560110000400a102000000a102000002a50200a50200000408201000a9020c5070616c6c65745f70726f6a6563745f746f6b656e186576656e7473205261774576656e74281c42616c616e63650118284a6f7942616c616e636501181c546f6b656e49640120244163636f756e7449640100204d656d626572496401202c426c6f636b4e756d6265720110385472616e73666572506f6c69637901ad025c546f6b656e49737375616e6365506172616d657465727301b1024856616c6964617465645472616e736665727301e50224546f6b656e53616c65010903014858546f6b656e416d6f756e745472616e73666572726564100020011c546f6b656e496400002001204d656d62657249640000e502014856616c6964617465645472616e7366657273000028011c5665633c75383e000018ac546f6b656e20616d6f756e74206973207472616e736665727265642066726f6d2073726320746f206473741c506172616d733a482d20746f6b656e206964656e746966696572482d20736f75726365206d656d62657220696459012d206d617020636f6e7461696e696e672076616c696461746564206f7574707574732028616d6f756e7420696e646578656420627920286d656d6265725f6964202b206163636f756e74206578697374616e63652929542d207472616e736665722773206d6574616461746178546f6b656e416d6f756e745472616e736665727265644279497373756572100020011c546f6b656e496400002001204d656d62657249640000e502014856616c6964617465645472616e7366657273000028011c5665633c75383e00012088546f6b656e20616d6f756e74207472616e73666572726564206279206973737565721c506172616d733a482d20746f6b656e206964656e7469666965726c2d20736f75726365202869737375657229206d656d626572206964882d206d617020636f6e7461696e696e672076616c696461746564206f7574707574732d01202028616d6f756e742c206f70742e2076657374696e67207363686564756c652c206f70742e2076657374696e6720636c65616e7570206b657929206461746120696e6465786564206279882020286163636f756e745f6964202b206163636f756e74206578697374616e636529542d207472616e736665722773206d6574616461746160506174726f6e61676552617465446563726561736564546f080020011c546f6b656e496400000d03012c5065727175696e74696c6c00021060506174726f6e6167652072617465206465637265617365641c506172616d733a482d20746f6b656e206964656e746966696572502d206e657720706174726f6e616765207261746558506174726f6e616765437265646974436c61696d65640c0020011c546f6b656e4964000018011c42616c616e636500002001204d656d62657249640003148c506174726f6e6167652063726564697420636c61696d65642062792063726561746f721c506172616d733a482d20746f6b656e206964656e7469666965723c2d2063726564697420616d6f756e742c2d206d656d62657220696448526576656e756553706c6974497373756564100020011c546f6b656e4964000010012c426c6f636b4e756d626572000010012c426c6f636b4e756d62657200001801284a6f7942616c616e636500041850526576656e75652053706c6974206973737565641c506172616d733a482d20746f6b656e206964656e746966696572782d207374617274696e6720626c6f636b20666f72207468652073706c69745c2d206475726174696f6e206f66207468652073706c6974742d204a4f5920616c6c6f636174656420666f72207468652073706c697454526576656e756553706c697446696e616c697a65640c0020011c546f6b656e496400000001244163636f756e74496400001801284a6f7942616c616e63650005145c526576656e75652053706c69742066696e616c697a65641c506172616d733a482d20746f6b656e206964656e746966696572a42d207265636f76657279206163636f756e7420666f7220746865206c6566746f7665722066756e6473402d206c6566746f7665722066756e64735c55736572506172746963697061746564496e53706c6974140020011c546f6b656e496400002001204d656d6265724964000018011c42616c616e636500001801284a6f7942616c616e63650000100138526576656e756553706c6974496400061c8855736572207061727469706174656420696e206120726576656e75652073706c69741c506172616d733a482d20746f6b656e206964656e746966696572642d207061727469636970616e742773206d656d6265722069647c2d207573657220616c6c6f6361746564207374616b65642062616c616e63657c2d206469766964656e6420616d6f756e7420284a4f5929206772616e746564682d20726576656e75652073706c6974206964656e74696669657240526576656e756553706c69744c6566740c0020011c546f6b656e496400002001204d656d6265724964000018011c42616c616e63650007145c55736572206c65667420726576656e75652073706c69741c506172616d733a482d20746f6b656e206964656e746966696572702d2065782d7061727469636970616e742773206d656d626572206964442d20616d6f756e7420756e7374616b6564544d656d6265724a6f696e656457686974656c6973740c0020011c546f6b656e496400002001204d656d62657249640000ad0201385472616e73666572506f6c6963790008145c4d656d626572206a6f696e65642077686974656c6973741c506172616d733a482d20746f6b656e206964656e7469666965722c2d206d656d626572206964642d206f6e676f696e67207472616e7366657220706f6c6963793c4163636f756e744475737465644279100020011c546f6b656e496400002001204d656d626572496400000001244163636f756e7449640000ad0201385472616e73666572506f6c696379000918384163636f756e74204475737465641c506172616d733a482d20746f6b656e206964656e7469666965729c2d206964206f662074686520647573746564206163636f756e74206f776e6572206d656d6265728c2d206163636f756e7420746861742063616c6c6564207468652065787472696e736963402d206f6e676f696e6720706f6c69637934546f6b656e4465697373756564040020011c546f6b656e4964000a0c38546f6b656e2044656973737565641c506172616d733a282d20746f6b656e2069642c546f6b656e497373756564080020011c546f6b656e49640000b102015c546f6b656e49737375616e6365506172616d6574657273000b1030546f6b656e204973737565641c506172616d733a282d20746f6b656e2069646c2d20746f6b656e2069737375616e636520706172616d657465727350546f6b656e53616c65496e697469616c697a6564100020011c546f6b656e4964000010012c546f6b656e53616c654964000009030124546f6b656e53616c6500001501013c4f7074696f6e3c5665633c75383e3e000c1864546f6b652053616c652077617320496e697469616c697a65641c506172616d733a282d20746f6b656e2069643c2d20746f6b656e2073616c65206964442d20746f6b656e2073616c652064617461542d20746f6b656e2073616c65206d65746164617461605570636f6d696e67546f6b656e53616c6555706461746564100020011c546f6b656e4964000010012c546f6b656e53616c6549640000e901014c4f7074696f6e3c426c6f636b4e756d6265723e0000e901014c4f7074696f6e3c426c6f636b4e756d6265723e000d187c5570636f6d696e6720546f6b656e2053616c652077617320557064617465641c506172616d733a282d20746f6b656e2069643c2d20746f6b656e2073616c65206964582d206e65772073616c6520737461727420626c6f636b4c2d206e65772073616c65206475726174696f6e54546f6b656e735075726368617365644f6e53616c65100020011c546f6b656e4964000010012c546f6b656e53616c654964000018011c42616c616e636500002001204d656d6265724964000e1860546f6b656e7320507572636861736564204f6e2053616c651c506172616d733a282d20746f6b656e2069643c2d20746f6b656e2073616c65206964702d20616d6f756e74206f6620746f6b656e73207075726368617365644c2d2062757965722773206d656d62657220696448546f6b656e53616c6546696e616c697a6564100020011c546f6b656e4964000010012c546f6b656e53616c654964000018011c42616c616e636500001801284a6f7942616c616e6365000f1850546f6b656e2053616c652046696e616c697a65641c506172616d733a282d20746f6b656e2069643c2d20746f6b656e2073616c652069648c2d20616d6f756e74206f6620756e736f6c6420746f6b656e73207265636f7665726564642d20616d6f756e74206f66204a4f5920636f6c6c6563746564945472616e73666572506f6c6963794368616e676564546f5065726d697373696f6e6c657373040020011c546f6b656e496400100ca45472616e7366657220506f6c696379204368616e67656420546f205065726d697373696f6e6c6573731c506172616d733a282d20746f6b656e20696430546f6b656e734275726e65640c0020011c546f6b656e496400002001204d656d6265724964000018011c42616c616e636500111434546f6b656e73204275726e65641c506172616d733a282d20746f6b656e2069642c2d206d656d626572206964642d206e756d626572206f6620746f6b656e73206275726e6564085c4576656e747320666f722074686973206d6f64756c652e00ad020c5070616c6c65745f70726f6a6563745f746f6b656e147479706573385472616e73666572506f6c69637904104861736801240108385065726d697373696f6e6c657373000000305065726d697373696f6e656404002401104861736800010000b1020c5070616c6c65745f70726f6a6563745f746f6b656e1474797065735c546f6b656e49737375616e6365506172616d657465727310104861736801243c546f6b656e416c6c6f636174696f6e01b502505472616e73666572506f6c696379506172616d7301c502204d656d6265724964012000140148696e697469616c5f616c6c6f636174696f6ed502018c42547265654d61703c4d656d62657249642c20546f6b656e416c6c6f636174696f6e3e00011873796d626f6c2401104861736800013c7472616e736665725f706f6c696379c50201505472616e73666572506f6c696379506172616d73000138706174726f6e6167655f72617465e1020128596561726c7952617465000148726576656e75655f73706c69745f72617465bd02011c5065726d696c6c0000b5020c5070616c6c65745f70726f6a6563745f746f6b656e1474797065733c546f6b656e416c6c6f636174696f6e081c42616c616e636501185456657374696e675363686564756c65506172616d7301b90200080118616d6f756e7418011c42616c616e636500015c76657374696e675f7363686564756c655f706172616d73c10201744f7074696f6e3c56657374696e675363686564756c65506172616d733e0000b9020c5070616c6c65745f70726f6a6563745f746f6b656e1474797065735456657374696e675363686564756c65506172616d73042c426c6f636b4e756d6265720110000c015c6c696e6561725f76657374696e675f6475726174696f6e10012c426c6f636b4e756d62657200014c626c6f636b735f6265666f72655f636c69666610012c426c6f636b4e756d62657200015c636c6966665f616d6f756e745f70657263656e74616765bd02011c5065726d696c6c0000bd020c3473705f61726974686d65746963287065725f7468696e67731c5065726d696c6c0000040010010c7533320000c10204184f7074696f6e04045401b9020108104e6f6e6500000010536f6d650400b9020000010000c5020c5070616c6c65745f70726f6a6563745f746f6b656e147479706573505472616e73666572506f6c696379506172616d73043c57686974656c697374506172616d7301c9020108385065726d697373696f6e6c657373000000305065726d697373696f6e65640400c902013c57686974656c697374506172616d7300010000c9020c5070616c6c65745f70726f6a6563745f746f6b656e1474797065733c57686974656c697374506172616d7308104861736801247053696e676c65446174614f626a65637455706c6f6164506172616d7301cd0200080128636f6d6d69746d656e742401104861736800011c7061796c6f6164d10201904f7074696f6e3c53696e676c65446174614f626a65637455706c6f6164506172616d733e0000cd020c5070616c6c65745f70726f6a6563745f746f6b656e1474797065737053696e676c65446174614f626a65637455706c6f6164506172616d7304284a6f7942616c616e63650118000c01586f626a6563745f6372656174696f6e5f706172616d7309020170446174614f626a6563744372656174696f6e506172616d657465727300015865787065637465645f646174615f73697a655f6665651801284a6f7942616c616e636500019465787065637465645f646174615f6f626a6563745f73746174655f626c6f61745f626f6e641801284a6f7942616c616e63650000d10204184f7074696f6e04045401cd020108104e6f6e6500000010536f6d650400cd020000010000d502042042547265654d617008044b0120045601b502000400d902000000d902000002dd0200dd020000040820b50200e1020c5070616c6c65745f70726f6a6563745f746f6b656e14747970657328596561726c795261746500000400bd02011c5065726d696c6c0000e5020c5070616c6c65745f70726f6a6563745f746f6b656e147479706573245472616e736665727308204d656d626572496401e9021c5061796d656e7401ed02000400fd02016c42547265654d61703c4d656d62657249642c205061796d656e743e0000e9020c5070616c6c65745f70726f6a6563745f746f6b656e1474797065732456616c69646174656404204d656d626572496401200108204578697374696e6704002001204d656d62657249640000002c4e6f6e4578697374696e6704002001204d656d626572496400010000ed020c5070616c6c65745f70726f6a6563745f746f6b656e1474797065734056616c6964617465645061796d656e7404485061796d656e745769746856657374696e6701f1020008011c7061796d656e74f10201485061796d656e745769746856657374696e6700016476657374696e675f636c65616e75705f63616e646964617465f50201544f7074696f6e3c56657374696e67536f757263653e0000f1020c5070616c6c65745f70726f6a6563745f746f6b656e147479706573485061796d656e745769746856657374696e67081c42616c616e636501185456657374696e675363686564756c65506172616d7301b90200080118616d6f756e7418011c42616c616e636500014076657374696e675f7363686564756c65c10201744f7074696f6e3c56657374696e675363686564756c65506172616d733e0000f50204184f7074696f6e04045401f9020108104e6f6e6500000010536f6d650400f9020000010000f9020c5070616c6c65745f70726f6a6563745f746f6b656e1474797065733456657374696e67536f7572636500010c3c496e697469616c49737375616e63650000001053616c65040010012c546f6b656e53616c654964000100384973737565725472616e73666572040020010c75363400020000fd02042042547265654d617008044b01e902045601ed0200040001030000000103000002050300050300000408e902ed020009030c5070616c6c65745f70726f6a6563745f746f6b656e14747970657324546f6b656e53616c6518284a6f7942616c616e636501181c42616c616e636501182c426c6f636b4e756d62657201105456657374696e675363686564756c65506172616d7301b902204d656d62657249640120244163636f756e744964010000280128756e69745f70726963651801284a6f7942616c616e63650001347175616e746974795f6c65667418011c42616c616e636500013c66756e64735f636f6c6c65637465641801284a6f7942616c616e6365000134746f6b656e735f736f757263652001204d656d62657249640001506561726e696e67735f64657374696e6174696f6e2d0101444f7074696f6e3c4163636f756e7449643e00012c73746172745f626c6f636b10012c426c6f636b4e756d6265720001206475726174696f6e10012c426c6f636b4e756d62657200015c76657374696e675f7363686564756c655f706172616d73c10201744f7074696f6e3c56657374696e675363686564756c65506172616d733e0001386361705f7065725f6d656d6265722901013c4f7074696f6e3c42616c616e63653e0001346175746f5f66696e616c697a65880110626f6f6c00000d030c3473705f61726974686d65746963287065725f7468696e67732c5065727175696e74696c6c0000040020010c75363400001103085c70616c6c65745f70726f706f73616c735f656e67696e65205261774576656e740c2850726f706f73616c49640110204d656d626572496401202c426c6f636b4e756d626572011001185450726f706f73616c53746174757355706461746564080010012850726f706f73616c496400001503016c50726f706f73616c5374617475733c426c6f636b4e756d6265723e0000106c456d697473206f6e2070726f706f73616c206372656174696f6e2e1c506172616d733a4c2d204964206f6620612070726f706f73616c2e582d204e65772070726f706f73616c207374617475732e5050726f706f73616c4465636973696f6e4d616465080010012850726f706f73616c496400001903014050726f706f73616c4465636973696f6e000110b0456d697473206f6e2067657474696e6720612070726f706f73616c20737461747573206465636973696f6e2e1c506172616d733a4c2d204964206f6620612070726f706f73616c2e4c2d2050726f706f73616c206465636973696f6e4050726f706f73616c4578656375746564080010012850726f706f73616c496400002103013c457865637574696f6e53746174757300021070456d697473206f6e2070726f706f73616c20657865637574696f6e2e1c506172616d733a6c2d204964206f66206120757064617465642070726f706f73616c2e702d2050726f706f73616c20657865637574696f6e207374617475732e14566f74656410002001204d656d6265724964000010012850726f706f73616c4964000025030120566f74654b696e64000028011c5665633c75383e00031880456d697473206f6e20766f74696e6720666f72207468652070726f706f73616c1c506172616d733a7c2d20566f746572202d206d656d626572206964206f66206120766f7465722e4c2d204964206f6620612070726f706f73616c2e3c2d204b696e64206f6620766f74652e302d20526174696f6e616c652e4450726f706f73616c43616e63656c6c656408002001204d656d6265724964000010012850726f706f73616c49640004108c456d697473206f6e20612070726f706f73616c206265696e672063616e63656c6c65641c506172616d733a6c2d204d656d626572204964206f66207468652070726f706f736572502d204964206f66207468652070726f706f73616c4050726f706f73657252656d61726b65640c002001204d656d6265724964000010012850726f706f73616c4964000028011c5665633c75383e00051084456d697473206f6e2070726f706f736572206d616b696e6720612072656d61726b342d2070726f706f736572206964342d2070726f706f73616c206964242d206d6573736167650c5c4576656e747320666f722074686973206d6f64756c652e005c50726f706f73616c7320656e67696e65206576656e74731503105c70616c6c65745f70726f706f73616c735f656e67696e651474797065734470726f706f73616c5f73746174757365733850726f706f73616c537461747573042c426c6f636b4e756d6265720110010c184163746976650000004050656e64696e67457865637574696f6e040010012c426c6f636b4e756d6265720001006050656e64696e67436f6e737469747574696f6e616c697479000200001903105c70616c6c65745f70726f706f73616c735f656e67696e651474797065734470726f706f73616c5f73746174757365734050726f706f73616c4465636973696f6e00011c2043616e63656c65640000004443616e63656c6564427952756e74696d65000100185665746f65640002002052656a65637465640003001c536c61736865640004001c4578706972656400050020417070726f76656404001d030160417070726f76656450726f706f73616c4465636973696f6e000600001d03105c70616c6c65745f70726f706f73616c735f656e67696e651474797065734470726f706f73616c5f737461747573657360417070726f76656450726f706f73616c4465636973696f6e0001084050656e64696e67457865637574696f6e0000006050656e64696e67436f6e737469747574696f6e616c697479000100002103105c70616c6c65745f70726f706f73616c735f656e67696e651474797065734470726f706f73616c5f73746174757365733c457865637574696f6e5374617475730001082045786563757465640000003c457865637574696f6e4661696c65640401146572726f7228011c5665633c75383e0001000025030c5c70616c6c65745f70726f706f73616c735f656e67696e6514747970657320566f74654b696e640001101c417070726f76650000001852656a65637400010014536c6173680002001c4162737461696e000300002903086c70616c6c65745f70726f706f73616c735f64697363757373696f6e205261774576656e740c2054687265616449640120204d656d6265724964012018506f737449640120011434546872656164437265617465640800200120546872656164496400002001204d656d626572496400000464456d697473206f6e20746872656164206372656174696f6e2e2c506f7374437265617465641400200118506f7374496400002001204d656d626572496400002001205468726561644964000028011c5665633c75383e0000880110626f6f6c0001045c456d697473206f6e20706f7374206372656174696f6e2e2c506f7374557064617465641000200118506f7374496400002001204d656d626572496400002001205468726561644964000028011c5665633c75383e00020454456d697473206f6e20706f7374207570646174652e445468726561644d6f64654368616e6765640c00200120546872656164496400002d0301785468726561644d6f64653c42547265655365743c4d656d62657249643e3e00002001204d656d626572496400030470456d697473206f6e20746872656164206d6f6465206368616e67652e2c506f737444656c6574656410002001204d656d6265724964000020012054687265616449640000200118506f737449640000880110626f6f6c00040454456d697473206f6e20706f73742064656c657465640c5c4576656e747320666f722074686973206d6f64756c652e005c50726f706f73616c7320656e67696e65206576656e74732d030c6c70616c6c65745f70726f706f73616c735f64697363757373696f6e147479706573285468726561644d6f6465043c54687265616457686974656c6973740151010108104f70656e00000018436c6f73656404005101013c54687265616457686974656c697374000100003103085870616c6c65745f70726f706f73616c735f636f646578205261774576656e74106447656e6572616c50726f706f73616c506172616d65746572730135034450726f706f73616c44657461696c734f660139032850726f706f73616c49640110205468726561644964012001043c50726f706f73616c43726561746564100010012850726f706f73616c496400003503016447656e6572616c50726f706f73616c506172616d657465727300003903014450726f706f73616c44657461696c734f660000200120546872656164496400001858412070726f706f73616c2077617320637265617465641c506172616d733afc2d204964206f662061206e65776c7920637265617465642070726f706f73616c2061667465722069742077617320736176656420696e2073746f726167652e01012d2047656e6572616c2070726f706f73616c20706172616d657465722e20506172616d65746572732073686172656420627920616c6c2070726f706f73616c7349012d2050726f706f73616c2044657461696c732e20506172616d65746572206f662070726f706f73616c207769746820612076617269616e7420666f722065616368206b696e64206f662070726f706f73616c9c2d204964206f662061206e65776c7920637265617465642070726f706f73616c20746872656164085c4576656e747320666f722074686973206d6f64756c652e0035030c5870616c6c65745f70726f706f73616c735f636f6465781474797065735447656e6572616c50726f706f73616c506172616d730c204d656d62657249640120244163636f756e74496401002c426c6f636b4e756d6265720110001401246d656d6265725f69642001204d656d62657249640001147469746c6528011c5665633c75383e00012c6465736372697074696f6e28011c5665633c75383e0001487374616b696e675f6163636f756e745f69642d0101444f7074696f6e3c4163636f756e7449643e00015465786163745f657865637574696f6e5f626c6f636be901014c4f7074696f6e3c426c6f636b4e756d6265723e000039030c5870616c6c65745f70726f706f73616c735f636f6465781474797065733c50726f706f73616c44657461696c731c1c42616c616e636501182c426c6f636b4e756d6265720110244163636f756e744964010020576f726b657249640120244f70656e696e67496401202850726f706f73616c49640110785570646174654368616e6e656c5061796f757473506172616d6574657273015902015c185369676e616c040028011c5665633c75383e0000003852756e74696d6555706772616465040028011c5665633c75383e0001003846756e64696e675265717565737404003d0301c45665633c46756e64696e6752657175657374506172616d65746572733c42616c616e63652c204163636f756e7449643e3e000200505365744d617856616c696461746f72436f756e74040010010c75333200030074437265617465576f726b696e6747726f75704c6561644f70656e696e670400450301b44372656174654f70656e696e67506172616d65746572733c426c6f636b4e756d6265722c2042616c616e63653e0004006c46696c6c576f726b696e6747726f75704c6561644f70656e696e6704004d03015446696c6c4f70656e696e67506172616d657465727300050060557064617465576f726b696e6747726f75704275646765740c0018011c42616c616e6365000081010130576f726b696e6747726f757000008501012c42616c616e63654b696e64000600744465637265617365576f726b696e6747726f75704c6561645374616b650c00200120576f726b65724964000018011c42616c616e6365000081010130576f726b696e6747726f757000070054536c617368576f726b696e6747726f75704c6561640c00200120576f726b65724964000018011c42616c616e6365000081010130576f726b696e6747726f757000080064536574576f726b696e6747726f75704c6561645265776172640c00200120576f726b6572496400002901013c4f7074696f6e3c42616c616e63653e000081010130576f726b696e6747726f7570000900645465726d696e617465576f726b696e6747726f75704c6561640400510301a85465726d696e617465526f6c65506172616d65746572733c576f726b657249642c2042616c616e63653e000a0044416d656e64436f6e737469747574696f6e040028011c5665633c75383e000b007443616e63656c576f726b696e6747726f75704c6561644f70656e696e6708002001244f70656e696e674964000081010130576f726b696e6747726f7570000c00485365744d656d626572736869705072696365040018011c42616c616e6365000d0064536574436f756e63696c427564676574496e6372656d656e74040018011c42616c616e6365000e0048536574436f756e63696c6f72526577617264040018011c42616c616e6365000f006c536574496e697469616c496e7669746174696f6e42616c616e6365040018011c42616c616e636500100064536574496e697469616c496e7669746174696f6e436f756e74040010010c753332001100805365744d656d626572736869704c656164496e7669746174696f6e51756f7461040010010c75333200120038536574526566657272616c43757404000801087538001300305665746f50726f706f73616c040010012850726f706f73616c496400140050557064617465476c6f62616c4e66744c696d69740800710201384e66744c696d6974506572696f64000020010c753634001500505570646174654368616e6e656c5061796f7574730400590201785570646174654368616e6e656c5061796f757473506172616d6574657273001600003d030000024103004103083470616c6c65745f636f6d6d6f6e6046756e64696e6752657175657374506172616d6574657273081c42616c616e63650118244163636f756e74496401000008011c6163636f756e740001244163636f756e744964000118616d6f756e7418011c42616c616e6365000045030c5870616c6c65745f70726f706f73616c735f636f6465781474797065735c4372656174654f70656e696e67506172616d6574657273082c426c6f636b4e756d62657201101c42616c616e636501180010012c6465736372697074696f6e28011c5665633c75383e0001307374616b655f706f6c696379490301845374616b65506f6c6963793c426c6f636b4e756d6265722c2042616c616e63653e0001407265776172645f7065725f626c6f636b2901013c4f7074696f6e3c42616c616e63653e00011467726f757081010130576f726b696e6747726f7570000049030c5070616c6c65745f776f726b696e675f67726f75701474797065732c5374616b65506f6c696379082c426c6f636b4e756d62657201101c42616c616e63650118000801307374616b655f616d6f756e7418011c42616c616e63650001606c656176696e675f756e7374616b696e675f706572696f6410012c426c6f636b4e756d62657200004d030c5870616c6c65745f70726f706f73616c735f636f6465781474797065735446696c6c4f70656e696e67506172616d657465727300000c01286f70656e696e675f6964200160776f726b696e675f67726f75703a3a4f70656e696e6749640001386170706c69636174696f6e5f6964200170776f726b696e675f67726f75703a3a4170706c69636174696f6e4964000134776f726b696e675f67726f757081010130576f726b696e6747726f7570000051030c5870616c6c65745f70726f706f73616c735f636f6465781474797065735c5465726d696e617465526f6c65506172616d65746572730820576f726b6572496401201c42616c616e63650118000c0124776f726b65725f6964200120576f726b6572496400013c736c617368696e675f616d6f756e742901013c4f7074696f6e3c42616c616e63653e00011467726f757081010130576f726b696e6747726f757000005503085070616c6c65745f776f726b696e675f67726f7570205261774576656e7430244f70656e696e6749640120344170706c69636174696f6e49640120684170706c69636174696f6e4964546f576f726b657249644d617001590320576f726b657249640120244163636f756e74496401001c42616c616e636501182c4f70656e696e67547970650165032c5374616b65506f6c696379014903604170706c794f6e4f70656e696e67506172616d6574657273016903204d656d626572496401201048617368012404490171030164304f70656e696e67416464656414002001244f70656e696e674964000028011c5665633c75383e00006503012c4f70656e696e675479706500004903012c5374616b65506f6c69637900002901013c4f7074696f6e3c42616c616e63653e00001c80456d697473206f6e20616464696e67206e6577206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e67206964342d204465736372697074696f6e782d204f70656e696e672054797065284c656164206f7220576f726b657229782d205374616b6520506f6c69637920666f7220746865206f70656e696e67482d205265776172642070657220626c6f636b404170706c6965644f6e4f70656e696e670800690301604170706c794f6e4f70656e696e67506172616d657465727300002001344170706c69636174696f6e4964000110dc456d697473206f6e20616464696e6720746865206170706c69636174696f6e20666f722074686520776f726b6572206f70656e696e672e1c506172616d733a542d204f70656e696e6720706172616d657465726573402d204170706c69636174696f6e206964344f70656e696e6746696c6c65640c002001244f70656e696e6749640000590301684170706c69636174696f6e4964546f576f726b657249644d617000005101015c42547265655365743c4170706c69636174696f6e49643e00021484456d697473206f6e2066696c6c696e6720746865206a6f62206f70656e696e672e1c506172616d733a4c2d20576f726b6572206f70656e696e67206964cc2d20576f726b6572206170706c69636174696f6e20696420746f2074686520776f726b65722069642064696374696f6e617279ac2d204170706c69636174696f6e6420696473207573656420746f2066696c6c20746865206f70656e696e67244c65616465725365740400200120576f726b6572496400030c88456d697473206f6e2073657474696e67207468652067726f7570206c65616465722e1c506172616d733a482d2047726f757020776f726b65722069642e60576f726b6572526f6c654163636f756e74557064617465640800200120576f726b6572496400000001244163636f756e744964000410c4456d697473206f6e207570646174696e672074686520726f6c65206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e802d20526f6c65206163636f756e74206964206f662074686520776f726b65722e2c4c6561646572556e7365740005047c456d697473206f6e20756e2d73657474696e6720746865206c65616465722e30576f726b65724578697465640400200120576f726b6572496400061070456d697473206f6e2065786974696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e302d20526174696f6e616c652e50576f726b6572537461727465644c656176696e670800200120576f726b6572496400001501013c4f7074696f6e3c5665633c75383e3e000710b4456d697473207768656e20776f726b65722073746172746564206c656176696e6720746865697220726f6c652e1c506172616d733a302d20576f726b65722069642e302d20526174696f6e616c652e405465726d696e61746564576f726b65720c00200120576f726b6572496400002901013c4f7074696f6e3c42616c616e63653e00001501013c4f7074696f6e3c5665633c75383e3e00081480456d697473206f6e207465726d696e6174696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e405465726d696e617465644c65616465720c00200120576f726b6572496400002901013c4f7074696f6e3c42616c616e63653e00001501013c4f7074696f6e3c5665633c75383e3e00091480456d697473206f6e207465726d696e6174696e6720746865206c65616465722e1c506172616d733a4c2d206c656164657220776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e305374616b65536c61736865641000200120576f726b65724964000018011c42616c616e6365000018011c42616c616e636500001501013c4f7074696f6e3c5665633c75383e3e000a18c0456d697473206f6e20736c617368696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e642d2061637475616c20736c61736865642062616c616e63652e702d2052657175657374656420736c61736865642062616c616e63652e302d20526174696f6e616c652e385374616b654465637265617365640800200120576f726b65724964000018011c42616c616e6365000b10c8456d697473206f6e2064656372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74385374616b65496e637265617365640800200120576f726b65724964000018011c42616c616e6365000c10c8456d697473206f6e20696e6372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74504170706c69636174696f6e57697468647261776e04002001344170706c69636174696f6e4964000d0c2501456d697473206f6e207769746864726177696e6720746865206170706c69636174696f6e20666f722074686520726567756c617220776f726b65722f6c656164206f70656e696e672e1c506172616d733a502d204a6f62206170706c69636174696f6e2069643c4f70656e696e6743616e63656c656404002001244f70656e696e674964000e0c8c456d697473206f6e2063616e63656c696e6720746865206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e6720696424427564676574536574040018011c42616c616e6365000f0cc8456d697473206f6e2073657474696e67207468652062756467657420666f722074686520776f726b696e672067726f75702e1c506172616d733a302d206e65772062756467657468576f726b65725265776172644163636f756e74557064617465640800200120576f726b6572496400000001244163636f756e744964001010cc456d697473206f6e207570646174696e672074686520726577617264206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e882d20526577617264206163636f756e74206964206f662074686520776f726b65722e64576f726b6572526577617264416d6f756e74557064617465640800200120576f726b6572496400002901013c4f7074696f6e3c42616c616e63653e001110c8456d697473206f6e207570646174696e67207468652072657761726420616d6f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e482d205265776172642070657220626c6f636b44537461747573546578744368616e67656408002401104861736800001501013c4f7074696f6e3c5665633c75383e3e001210dc456d697473206f6e207570646174696e6720746865207374617475732074657874206f662074686520776f726b696e672067726f75702e1c506172616d733a482d2073746174757320746578742068617368342d207374617475732074657874384275646765745370656e64696e670c000001244163636f756e744964000018011c42616c616e636500001501013c4f7074696f6e3c5665633c75383e3e001314c8456d697473206f6e206275646765742066726f6d2074686520776f726b696e672067726f7570206265696e67207370656e741c506172616d733a582d205265636569766572204163636f756e742049642e402d2042616c616e6365207370656e742e302d20526174696f6e616c652e28526577617264506169641000200120576f726b6572496400000001244163636f756e744964000018011c42616c616e63650000750301445265776172645061796d656e74547970650014186c456d697473206f6e20706179696e6720746865207265776172642e1c506172616d733a4c2d204964206f662074686520776f726b65722e582d205265636569766572204163636f756e742049642e202d20526577617264b42d205061796d656e74207479706520286d697373656420726577617264206f7220726567756c6172206f6e65296c4e65774d69737365645265776172644c6576656c526561636865640800200120576f726b6572496400002901013c4f7074696f6e3c42616c616e63653e00151090456d697473206f6e207265616368696e67206e6577206d6973736564207265776172642e1c506172616d733a302d20576f726b65722049442ee82d204d69737365642072657761726420286f7074696f6e616c292e204e6f6e65206d65616e7320276e6f206d697373656420726577617264272e60576f726b696e6747726f757042756467657446756e6465640c002001204d656d6265724964000018011c42616c616e6365000028011c5665633c75383e0016147846756e642074686520776f726b696e672067726f7570206275646765742e1c506172616d733a2c2d204d656d6265722049444c2d20416d6f756e74206f662062616c616e63652c2d20526174696f6e616c65304c65616452656d61726b6564040028011c5665633c75383e00170c94456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a242d206d65737361676538576f726b657252656d61726b65640800200120576f726b65724964000028011c5665633c75383e00181094456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a202d20776f726b6572242d206d6573736167650c5c4576656e747320666f722074686973206d6f64756c652e00385f47726f75705f206576656e74735903042042547265654d617008044b0120045601200004005d030000005d0300000261030061030000040820200065030c5070616c6c65745f776f726b696e675f67726f75701474797065732c4f70656e696e6754797065000108184c65616465720000001c526567756c61720001000069030c5070616c6c65745f776f726b696e675f67726f7570147479706573504170706c794f6e4f70656e696e67506172616d7310204d656d62657249640120244f70656e696e6749640120244163636f756e74496401001c42616c616e63650118001801246d656d6265725f69642001204d656d62657249640001286f70656e696e675f69642001244f70656e696e67496400013c726f6c655f6163636f756e745f69640001244163636f756e7449640001447265776172645f6163636f756e745f69640001244163636f756e74496400012c6465736372697074696f6e28011c5665633c75383e0001407374616b655f706172616d65746572736d03018c5374616b65506172616d65746572733c4163636f756e7449642c2042616c616e63653e00006d030c5070616c6c65745f776f726b696e675f67726f75701474797065733c5374616b65506172616d657465727308244163636f756e74496401001c42616c616e63650118000801147374616b6518011c42616c616e63650001487374616b696e675f6163636f756e745f69640001244163636f756e74496400007103085070616c6c65745f776f726b696e675f67726f757024496e7374616e6365310000000075030c5070616c6c65745f776f726b696e675f67726f7570147479706573445265776172645061796d656e7454797065000108304d697373656452657761726400000034526567756c6172526577617264000100007903085070616c6c65745f776f726b696e675f67726f7570205261774576656e7430244f70656e696e6749640120344170706c69636174696f6e49640120684170706c69636174696f6e4964546f576f726b657249644d617001590320576f726b657249640120244163636f756e74496401001c42616c616e636501182c4f70656e696e67547970650165032c5374616b65506f6c696379014903604170706c794f6e4f70656e696e67506172616d6574657273016903204d656d62657249640120104861736801240449017d030164304f70656e696e67416464656414002001244f70656e696e674964000028011c5665633c75383e00006503012c4f70656e696e675479706500004903012c5374616b65506f6c69637900002901013c4f7074696f6e3c42616c616e63653e00001c80456d697473206f6e20616464696e67206e6577206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e67206964342d204465736372697074696f6e782d204f70656e696e672054797065284c656164206f7220576f726b657229782d205374616b6520506f6c69637920666f7220746865206f70656e696e67482d205265776172642070657220626c6f636b404170706c6965644f6e4f70656e696e670800690301604170706c794f6e4f70656e696e67506172616d657465727300002001344170706c69636174696f6e4964000110dc456d697473206f6e20616464696e6720746865206170706c69636174696f6e20666f722074686520776f726b6572206f70656e696e672e1c506172616d733a542d204f70656e696e6720706172616d657465726573402d204170706c69636174696f6e206964344f70656e696e6746696c6c65640c002001244f70656e696e6749640000590301684170706c69636174696f6e4964546f576f726b657249644d617000005101015c42547265655365743c4170706c69636174696f6e49643e00021484456d697473206f6e2066696c6c696e6720746865206a6f62206f70656e696e672e1c506172616d733a4c2d20576f726b6572206f70656e696e67206964cc2d20576f726b6572206170706c69636174696f6e20696420746f2074686520776f726b65722069642064696374696f6e617279ac2d204170706c69636174696f6e6420696473207573656420746f2066696c6c20746865206f70656e696e67244c65616465725365740400200120576f726b6572496400030c88456d697473206f6e2073657474696e67207468652067726f7570206c65616465722e1c506172616d733a482d2047726f757020776f726b65722069642e60576f726b6572526f6c654163636f756e74557064617465640800200120576f726b6572496400000001244163636f756e744964000410c4456d697473206f6e207570646174696e672074686520726f6c65206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e802d20526f6c65206163636f756e74206964206f662074686520776f726b65722e2c4c6561646572556e7365740005047c456d697473206f6e20756e2d73657474696e6720746865206c65616465722e30576f726b65724578697465640400200120576f726b6572496400061070456d697473206f6e2065786974696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e302d20526174696f6e616c652e50576f726b6572537461727465644c656176696e670800200120576f726b6572496400001501013c4f7074696f6e3c5665633c75383e3e000710b4456d697473207768656e20776f726b65722073746172746564206c656176696e6720746865697220726f6c652e1c506172616d733a302d20576f726b65722069642e302d20526174696f6e616c652e405465726d696e61746564576f726b65720c00200120576f726b6572496400002901013c4f7074696f6e3c42616c616e63653e00001501013c4f7074696f6e3c5665633c75383e3e00081480456d697473206f6e207465726d696e6174696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e405465726d696e617465644c65616465720c00200120576f726b6572496400002901013c4f7074696f6e3c42616c616e63653e00001501013c4f7074696f6e3c5665633c75383e3e00091480456d697473206f6e207465726d696e6174696e6720746865206c65616465722e1c506172616d733a4c2d206c656164657220776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e305374616b65536c61736865641000200120576f726b65724964000018011c42616c616e6365000018011c42616c616e636500001501013c4f7074696f6e3c5665633c75383e3e000a18c0456d697473206f6e20736c617368696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e642d2061637475616c20736c61736865642062616c616e63652e702d2052657175657374656420736c61736865642062616c616e63652e302d20526174696f6e616c652e385374616b654465637265617365640800200120576f726b65724964000018011c42616c616e6365000b10c8456d697473206f6e2064656372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74385374616b65496e637265617365640800200120576f726b65724964000018011c42616c616e6365000c10c8456d697473206f6e20696e6372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74504170706c69636174696f6e57697468647261776e04002001344170706c69636174696f6e4964000d0c2501456d697473206f6e207769746864726177696e6720746865206170706c69636174696f6e20666f722074686520726567756c617220776f726b65722f6c656164206f70656e696e672e1c506172616d733a502d204a6f62206170706c69636174696f6e2069643c4f70656e696e6743616e63656c656404002001244f70656e696e674964000e0c8c456d697473206f6e2063616e63656c696e6720746865206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e6720696424427564676574536574040018011c42616c616e6365000f0cc8456d697473206f6e2073657474696e67207468652062756467657420666f722074686520776f726b696e672067726f75702e1c506172616d733a302d206e65772062756467657468576f726b65725265776172644163636f756e74557064617465640800200120576f726b6572496400000001244163636f756e744964001010cc456d697473206f6e207570646174696e672074686520726577617264206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e882d20526577617264206163636f756e74206964206f662074686520776f726b65722e64576f726b6572526577617264416d6f756e74557064617465640800200120576f726b6572496400002901013c4f7074696f6e3c42616c616e63653e001110c8456d697473206f6e207570646174696e67207468652072657761726420616d6f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e482d205265776172642070657220626c6f636b44537461747573546578744368616e67656408002401104861736800001501013c4f7074696f6e3c5665633c75383e3e001210dc456d697473206f6e207570646174696e6720746865207374617475732074657874206f662074686520776f726b696e672067726f75702e1c506172616d733a482d2073746174757320746578742068617368342d207374617475732074657874384275646765745370656e64696e670c000001244163636f756e744964000018011c42616c616e636500001501013c4f7074696f6e3c5665633c75383e3e001314c8456d697473206f6e206275646765742066726f6d2074686520776f726b696e672067726f7570206265696e67207370656e741c506172616d733a582d205265636569766572204163636f756e742049642e402d2042616c616e6365207370656e742e302d20526174696f6e616c652e28526577617264506169641000200120576f726b6572496400000001244163636f756e744964000018011c42616c616e63650000750301445265776172645061796d656e74547970650014186c456d697473206f6e20706179696e6720746865207265776172642e1c506172616d733a4c2d204964206f662074686520776f726b65722e582d205265636569766572204163636f756e742049642e202d20526577617264b42d205061796d656e74207479706520286d697373656420726577617264206f7220726567756c6172206f6e65296c4e65774d69737365645265776172644c6576656c526561636865640800200120576f726b6572496400002901013c4f7074696f6e3c42616c616e63653e00151090456d697473206f6e207265616368696e67206e6577206d6973736564207265776172642e1c506172616d733a302d20576f726b65722049442ee82d204d69737365642072657761726420286f7074696f6e616c292e204e6f6e65206d65616e7320276e6f206d697373656420726577617264272e60576f726b696e6747726f757042756467657446756e6465640c002001204d656d6265724964000018011c42616c616e6365000028011c5665633c75383e0016147846756e642074686520776f726b696e672067726f7570206275646765742e1c506172616d733a2c2d204d656d6265722049444c2d20416d6f756e74206f662062616c616e63652c2d20526174696f6e616c65304c65616452656d61726b6564040028011c5665633c75383e00170c94456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a242d206d65737361676538576f726b657252656d61726b65640800200120576f726b65724964000028011c5665633c75383e00181094456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a202d20776f726b6572242d206d6573736167650c5c4576656e747320666f722074686973206d6f64756c652e00385f47726f75705f206576656e74737d03085070616c6c65745f776f726b696e675f67726f757024496e7374616e636532000000008103085070616c6c65745f776f726b696e675f67726f7570205261774576656e7430244f70656e696e6749640120344170706c69636174696f6e49640120684170706c69636174696f6e4964546f576f726b657249644d617001590320576f726b657249640120244163636f756e74496401001c42616c616e636501182c4f70656e696e67547970650165032c5374616b65506f6c696379014903604170706c794f6e4f70656e696e67506172616d6574657273016903204d656d626572496401201048617368012404490185030164304f70656e696e67416464656414002001244f70656e696e674964000028011c5665633c75383e00006503012c4f70656e696e675479706500004903012c5374616b65506f6c69637900002901013c4f7074696f6e3c42616c616e63653e00001c80456d697473206f6e20616464696e67206e6577206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e67206964342d204465736372697074696f6e782d204f70656e696e672054797065284c656164206f7220576f726b657229782d205374616b6520506f6c69637920666f7220746865206f70656e696e67482d205265776172642070657220626c6f636b404170706c6965644f6e4f70656e696e670800690301604170706c794f6e4f70656e696e67506172616d657465727300002001344170706c69636174696f6e4964000110dc456d697473206f6e20616464696e6720746865206170706c69636174696f6e20666f722074686520776f726b6572206f70656e696e672e1c506172616d733a542d204f70656e696e6720706172616d657465726573402d204170706c69636174696f6e206964344f70656e696e6746696c6c65640c002001244f70656e696e6749640000590301684170706c69636174696f6e4964546f576f726b657249644d617000005101015c42547265655365743c4170706c69636174696f6e49643e00021484456d697473206f6e2066696c6c696e6720746865206a6f62206f70656e696e672e1c506172616d733a4c2d20576f726b6572206f70656e696e67206964cc2d20576f726b6572206170706c69636174696f6e20696420746f2074686520776f726b65722069642064696374696f6e617279ac2d204170706c69636174696f6e6420696473207573656420746f2066696c6c20746865206f70656e696e67244c65616465725365740400200120576f726b6572496400030c88456d697473206f6e2073657474696e67207468652067726f7570206c65616465722e1c506172616d733a482d2047726f757020776f726b65722069642e60576f726b6572526f6c654163636f756e74557064617465640800200120576f726b6572496400000001244163636f756e744964000410c4456d697473206f6e207570646174696e672074686520726f6c65206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e802d20526f6c65206163636f756e74206964206f662074686520776f726b65722e2c4c6561646572556e7365740005047c456d697473206f6e20756e2d73657474696e6720746865206c65616465722e30576f726b65724578697465640400200120576f726b6572496400061070456d697473206f6e2065786974696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e302d20526174696f6e616c652e50576f726b6572537461727465644c656176696e670800200120576f726b6572496400001501013c4f7074696f6e3c5665633c75383e3e000710b4456d697473207768656e20776f726b65722073746172746564206c656176696e6720746865697220726f6c652e1c506172616d733a302d20576f726b65722069642e302d20526174696f6e616c652e405465726d696e61746564576f726b65720c00200120576f726b6572496400002901013c4f7074696f6e3c42616c616e63653e00001501013c4f7074696f6e3c5665633c75383e3e00081480456d697473206f6e207465726d696e6174696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e405465726d696e617465644c65616465720c00200120576f726b6572496400002901013c4f7074696f6e3c42616c616e63653e00001501013c4f7074696f6e3c5665633c75383e3e00091480456d697473206f6e207465726d696e6174696e6720746865206c65616465722e1c506172616d733a4c2d206c656164657220776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e305374616b65536c61736865641000200120576f726b65724964000018011c42616c616e6365000018011c42616c616e636500001501013c4f7074696f6e3c5665633c75383e3e000a18c0456d697473206f6e20736c617368696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e642d2061637475616c20736c61736865642062616c616e63652e702d2052657175657374656420736c61736865642062616c616e63652e302d20526174696f6e616c652e385374616b654465637265617365640800200120576f726b65724964000018011c42616c616e6365000b10c8456d697473206f6e2064656372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74385374616b65496e637265617365640800200120576f726b65724964000018011c42616c616e6365000c10c8456d697473206f6e20696e6372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74504170706c69636174696f6e57697468647261776e04002001344170706c69636174696f6e4964000d0c2501456d697473206f6e207769746864726177696e6720746865206170706c69636174696f6e20666f722074686520726567756c617220776f726b65722f6c656164206f70656e696e672e1c506172616d733a502d204a6f62206170706c69636174696f6e2069643c4f70656e696e6743616e63656c656404002001244f70656e696e674964000e0c8c456d697473206f6e2063616e63656c696e6720746865206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e6720696424427564676574536574040018011c42616c616e6365000f0cc8456d697473206f6e2073657474696e67207468652062756467657420666f722074686520776f726b696e672067726f75702e1c506172616d733a302d206e65772062756467657468576f726b65725265776172644163636f756e74557064617465640800200120576f726b6572496400000001244163636f756e744964001010cc456d697473206f6e207570646174696e672074686520726577617264206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e882d20526577617264206163636f756e74206964206f662074686520776f726b65722e64576f726b6572526577617264416d6f756e74557064617465640800200120576f726b6572496400002901013c4f7074696f6e3c42616c616e63653e001110c8456d697473206f6e207570646174696e67207468652072657761726420616d6f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e482d205265776172642070657220626c6f636b44537461747573546578744368616e67656408002401104861736800001501013c4f7074696f6e3c5665633c75383e3e001210dc456d697473206f6e207570646174696e6720746865207374617475732074657874206f662074686520776f726b696e672067726f75702e1c506172616d733a482d2073746174757320746578742068617368342d207374617475732074657874384275646765745370656e64696e670c000001244163636f756e744964000018011c42616c616e636500001501013c4f7074696f6e3c5665633c75383e3e001314c8456d697473206f6e206275646765742066726f6d2074686520776f726b696e672067726f7570206265696e67207370656e741c506172616d733a582d205265636569766572204163636f756e742049642e402d2042616c616e6365207370656e742e302d20526174696f6e616c652e28526577617264506169641000200120576f726b6572496400000001244163636f756e744964000018011c42616c616e63650000750301445265776172645061796d656e74547970650014186c456d697473206f6e20706179696e6720746865207265776172642e1c506172616d733a4c2d204964206f662074686520776f726b65722e582d205265636569766572204163636f756e742049642e202d20526577617264b42d205061796d656e74207479706520286d697373656420726577617264206f7220726567756c6172206f6e65296c4e65774d69737365645265776172644c6576656c526561636865640800200120576f726b6572496400002901013c4f7074696f6e3c42616c616e63653e00151090456d697473206f6e207265616368696e67206e6577206d6973736564207265776172642e1c506172616d733a302d20576f726b65722049442ee82d204d69737365642072657761726420286f7074696f6e616c292e204e6f6e65206d65616e7320276e6f206d697373656420726577617264272e60576f726b696e6747726f757042756467657446756e6465640c002001204d656d6265724964000018011c42616c616e6365000028011c5665633c75383e0016147846756e642074686520776f726b696e672067726f7570206275646765742e1c506172616d733a2c2d204d656d6265722049444c2d20416d6f756e74206f662062616c616e63652c2d20526174696f6e616c65304c65616452656d61726b6564040028011c5665633c75383e00170c94456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a242d206d65737361676538576f726b657252656d61726b65640800200120576f726b65724964000028011c5665633c75383e00181094456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a202d20776f726b6572242d206d6573736167650c5c4576656e747320666f722074686973206d6f64756c652e00385f47726f75705f206576656e74738503085070616c6c65745f776f726b696e675f67726f757024496e7374616e636533000000008903085070616c6c65745f776f726b696e675f67726f7570205261774576656e7430244f70656e696e6749640120344170706c69636174696f6e49640120684170706c69636174696f6e4964546f576f726b657249644d617001590320576f726b657249640120244163636f756e74496401001c42616c616e636501182c4f70656e696e67547970650165032c5374616b65506f6c696379014903604170706c794f6e4f70656e696e67506172616d6574657273016903204d656d62657249640120104861736801240449018d030164304f70656e696e67416464656414002001244f70656e696e674964000028011c5665633c75383e00006503012c4f70656e696e675479706500004903012c5374616b65506f6c69637900002901013c4f7074696f6e3c42616c616e63653e00001c80456d697473206f6e20616464696e67206e6577206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e67206964342d204465736372697074696f6e782d204f70656e696e672054797065284c656164206f7220576f726b657229782d205374616b6520506f6c69637920666f7220746865206f70656e696e67482d205265776172642070657220626c6f636b404170706c6965644f6e4f70656e696e670800690301604170706c794f6e4f70656e696e67506172616d657465727300002001344170706c69636174696f6e4964000110dc456d697473206f6e20616464696e6720746865206170706c69636174696f6e20666f722074686520776f726b6572206f70656e696e672e1c506172616d733a542d204f70656e696e6720706172616d657465726573402d204170706c69636174696f6e206964344f70656e696e6746696c6c65640c002001244f70656e696e6749640000590301684170706c69636174696f6e4964546f576f726b657249644d617000005101015c42547265655365743c4170706c69636174696f6e49643e00021484456d697473206f6e2066696c6c696e6720746865206a6f62206f70656e696e672e1c506172616d733a4c2d20576f726b6572206f70656e696e67206964cc2d20576f726b6572206170706c69636174696f6e20696420746f2074686520776f726b65722069642064696374696f6e617279ac2d204170706c69636174696f6e6420696473207573656420746f2066696c6c20746865206f70656e696e67244c65616465725365740400200120576f726b6572496400030c88456d697473206f6e2073657474696e67207468652067726f7570206c65616465722e1c506172616d733a482d2047726f757020776f726b65722069642e60576f726b6572526f6c654163636f756e74557064617465640800200120576f726b6572496400000001244163636f756e744964000410c4456d697473206f6e207570646174696e672074686520726f6c65206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e802d20526f6c65206163636f756e74206964206f662074686520776f726b65722e2c4c6561646572556e7365740005047c456d697473206f6e20756e2d73657474696e6720746865206c65616465722e30576f726b65724578697465640400200120576f726b6572496400061070456d697473206f6e2065786974696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e302d20526174696f6e616c652e50576f726b6572537461727465644c656176696e670800200120576f726b6572496400001501013c4f7074696f6e3c5665633c75383e3e000710b4456d697473207768656e20776f726b65722073746172746564206c656176696e6720746865697220726f6c652e1c506172616d733a302d20576f726b65722069642e302d20526174696f6e616c652e405465726d696e61746564576f726b65720c00200120576f726b6572496400002901013c4f7074696f6e3c42616c616e63653e00001501013c4f7074696f6e3c5665633c75383e3e00081480456d697473206f6e207465726d696e6174696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e405465726d696e617465644c65616465720c00200120576f726b6572496400002901013c4f7074696f6e3c42616c616e63653e00001501013c4f7074696f6e3c5665633c75383e3e00091480456d697473206f6e207465726d696e6174696e6720746865206c65616465722e1c506172616d733a4c2d206c656164657220776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e305374616b65536c61736865641000200120576f726b65724964000018011c42616c616e6365000018011c42616c616e636500001501013c4f7074696f6e3c5665633c75383e3e000a18c0456d697473206f6e20736c617368696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e642d2061637475616c20736c61736865642062616c616e63652e702d2052657175657374656420736c61736865642062616c616e63652e302d20526174696f6e616c652e385374616b654465637265617365640800200120576f726b65724964000018011c42616c616e6365000b10c8456d697473206f6e2064656372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74385374616b65496e637265617365640800200120576f726b65724964000018011c42616c616e6365000c10c8456d697473206f6e20696e6372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74504170706c69636174696f6e57697468647261776e04002001344170706c69636174696f6e4964000d0c2501456d697473206f6e207769746864726177696e6720746865206170706c69636174696f6e20666f722074686520726567756c617220776f726b65722f6c656164206f70656e696e672e1c506172616d733a502d204a6f62206170706c69636174696f6e2069643c4f70656e696e6743616e63656c656404002001244f70656e696e674964000e0c8c456d697473206f6e2063616e63656c696e6720746865206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e6720696424427564676574536574040018011c42616c616e6365000f0cc8456d697473206f6e2073657474696e67207468652062756467657420666f722074686520776f726b696e672067726f75702e1c506172616d733a302d206e65772062756467657468576f726b65725265776172644163636f756e74557064617465640800200120576f726b6572496400000001244163636f756e744964001010cc456d697473206f6e207570646174696e672074686520726577617264206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e882d20526577617264206163636f756e74206964206f662074686520776f726b65722e64576f726b6572526577617264416d6f756e74557064617465640800200120576f726b6572496400002901013c4f7074696f6e3c42616c616e63653e001110c8456d697473206f6e207570646174696e67207468652072657761726420616d6f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e482d205265776172642070657220626c6f636b44537461747573546578744368616e67656408002401104861736800001501013c4f7074696f6e3c5665633c75383e3e001210dc456d697473206f6e207570646174696e6720746865207374617475732074657874206f662074686520776f726b696e672067726f75702e1c506172616d733a482d2073746174757320746578742068617368342d207374617475732074657874384275646765745370656e64696e670c000001244163636f756e744964000018011c42616c616e636500001501013c4f7074696f6e3c5665633c75383e3e001314c8456d697473206f6e206275646765742066726f6d2074686520776f726b696e672067726f7570206265696e67207370656e741c506172616d733a582d205265636569766572204163636f756e742049642e402d2042616c616e6365207370656e742e302d20526174696f6e616c652e28526577617264506169641000200120576f726b6572496400000001244163636f756e744964000018011c42616c616e63650000750301445265776172645061796d656e74547970650014186c456d697473206f6e20706179696e6720746865207265776172642e1c506172616d733a4c2d204964206f662074686520776f726b65722e582d205265636569766572204163636f756e742049642e202d20526577617264b42d205061796d656e74207479706520286d697373656420726577617264206f7220726567756c6172206f6e65296c4e65774d69737365645265776172644c6576656c526561636865640800200120576f726b6572496400002901013c4f7074696f6e3c42616c616e63653e00151090456d697473206f6e207265616368696e67206e6577206d6973736564207265776172642e1c506172616d733a302d20576f726b65722049442ee82d204d69737365642072657761726420286f7074696f6e616c292e204e6f6e65206d65616e7320276e6f206d697373656420726577617264272e60576f726b696e6747726f757042756467657446756e6465640c002001204d656d6265724964000018011c42616c616e6365000028011c5665633c75383e0016147846756e642074686520776f726b696e672067726f7570206275646765742e1c506172616d733a2c2d204d656d6265722049444c2d20416d6f756e74206f662062616c616e63652c2d20526174696f6e616c65304c65616452656d61726b6564040028011c5665633c75383e00170c94456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a242d206d65737361676538576f726b657252656d61726b65640800200120576f726b65724964000028011c5665633c75383e00181094456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a202d20776f726b6572242d206d6573736167650c5c4576656e747320666f722074686973206d6f64756c652e00385f47726f75705f206576656e74738d03085070616c6c65745f776f726b696e675f67726f757024496e7374616e636534000000009103085070616c6c65745f776f726b696e675f67726f7570205261774576656e7430244f70656e696e6749640120344170706c69636174696f6e49640120684170706c69636174696f6e4964546f576f726b657249644d617001590320576f726b657249640120244163636f756e74496401001c42616c616e636501182c4f70656e696e67547970650165032c5374616b65506f6c696379014903604170706c794f6e4f70656e696e67506172616d6574657273016903204d656d626572496401201048617368012404490195030164304f70656e696e67416464656414002001244f70656e696e674964000028011c5665633c75383e00006503012c4f70656e696e675479706500004903012c5374616b65506f6c69637900002901013c4f7074696f6e3c42616c616e63653e00001c80456d697473206f6e20616464696e67206e6577206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e67206964342d204465736372697074696f6e782d204f70656e696e672054797065284c656164206f7220576f726b657229782d205374616b6520506f6c69637920666f7220746865206f70656e696e67482d205265776172642070657220626c6f636b404170706c6965644f6e4f70656e696e670800690301604170706c794f6e4f70656e696e67506172616d657465727300002001344170706c69636174696f6e4964000110dc456d697473206f6e20616464696e6720746865206170706c69636174696f6e20666f722074686520776f726b6572206f70656e696e672e1c506172616d733a542d204f70656e696e6720706172616d657465726573402d204170706c69636174696f6e206964344f70656e696e6746696c6c65640c002001244f70656e696e6749640000590301684170706c69636174696f6e4964546f576f726b657249644d617000005101015c42547265655365743c4170706c69636174696f6e49643e00021484456d697473206f6e2066696c6c696e6720746865206a6f62206f70656e696e672e1c506172616d733a4c2d20576f726b6572206f70656e696e67206964cc2d20576f726b6572206170706c69636174696f6e20696420746f2074686520776f726b65722069642064696374696f6e617279ac2d204170706c69636174696f6e6420696473207573656420746f2066696c6c20746865206f70656e696e67244c65616465725365740400200120576f726b6572496400030c88456d697473206f6e2073657474696e67207468652067726f7570206c65616465722e1c506172616d733a482d2047726f757020776f726b65722069642e60576f726b6572526f6c654163636f756e74557064617465640800200120576f726b6572496400000001244163636f756e744964000410c4456d697473206f6e207570646174696e672074686520726f6c65206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e802d20526f6c65206163636f756e74206964206f662074686520776f726b65722e2c4c6561646572556e7365740005047c456d697473206f6e20756e2d73657474696e6720746865206c65616465722e30576f726b65724578697465640400200120576f726b6572496400061070456d697473206f6e2065786974696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e302d20526174696f6e616c652e50576f726b6572537461727465644c656176696e670800200120576f726b6572496400001501013c4f7074696f6e3c5665633c75383e3e000710b4456d697473207768656e20776f726b65722073746172746564206c656176696e6720746865697220726f6c652e1c506172616d733a302d20576f726b65722069642e302d20526174696f6e616c652e405465726d696e61746564576f726b65720c00200120576f726b6572496400002901013c4f7074696f6e3c42616c616e63653e00001501013c4f7074696f6e3c5665633c75383e3e00081480456d697473206f6e207465726d696e6174696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e405465726d696e617465644c65616465720c00200120576f726b6572496400002901013c4f7074696f6e3c42616c616e63653e00001501013c4f7074696f6e3c5665633c75383e3e00091480456d697473206f6e207465726d696e6174696e6720746865206c65616465722e1c506172616d733a4c2d206c656164657220776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e305374616b65536c61736865641000200120576f726b65724964000018011c42616c616e6365000018011c42616c616e636500001501013c4f7074696f6e3c5665633c75383e3e000a18c0456d697473206f6e20736c617368696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e642d2061637475616c20736c61736865642062616c616e63652e702d2052657175657374656420736c61736865642062616c616e63652e302d20526174696f6e616c652e385374616b654465637265617365640800200120576f726b65724964000018011c42616c616e6365000b10c8456d697473206f6e2064656372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74385374616b65496e637265617365640800200120576f726b65724964000018011c42616c616e6365000c10c8456d697473206f6e20696e6372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74504170706c69636174696f6e57697468647261776e04002001344170706c69636174696f6e4964000d0c2501456d697473206f6e207769746864726177696e6720746865206170706c69636174696f6e20666f722074686520726567756c617220776f726b65722f6c656164206f70656e696e672e1c506172616d733a502d204a6f62206170706c69636174696f6e2069643c4f70656e696e6743616e63656c656404002001244f70656e696e674964000e0c8c456d697473206f6e2063616e63656c696e6720746865206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e6720696424427564676574536574040018011c42616c616e6365000f0cc8456d697473206f6e2073657474696e67207468652062756467657420666f722074686520776f726b696e672067726f75702e1c506172616d733a302d206e65772062756467657468576f726b65725265776172644163636f756e74557064617465640800200120576f726b6572496400000001244163636f756e744964001010cc456d697473206f6e207570646174696e672074686520726577617264206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e882d20526577617264206163636f756e74206964206f662074686520776f726b65722e64576f726b6572526577617264416d6f756e74557064617465640800200120576f726b6572496400002901013c4f7074696f6e3c42616c616e63653e001110c8456d697473206f6e207570646174696e67207468652072657761726420616d6f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e482d205265776172642070657220626c6f636b44537461747573546578744368616e67656408002401104861736800001501013c4f7074696f6e3c5665633c75383e3e001210dc456d697473206f6e207570646174696e6720746865207374617475732074657874206f662074686520776f726b696e672067726f75702e1c506172616d733a482d2073746174757320746578742068617368342d207374617475732074657874384275646765745370656e64696e670c000001244163636f756e744964000018011c42616c616e636500001501013c4f7074696f6e3c5665633c75383e3e001314c8456d697473206f6e206275646765742066726f6d2074686520776f726b696e672067726f7570206265696e67207370656e741c506172616d733a582d205265636569766572204163636f756e742049642e402d2042616c616e6365207370656e742e302d20526174696f6e616c652e28526577617264506169641000200120576f726b6572496400000001244163636f756e744964000018011c42616c616e63650000750301445265776172645061796d656e74547970650014186c456d697473206f6e20706179696e6720746865207265776172642e1c506172616d733a4c2d204964206f662074686520776f726b65722e582d205265636569766572204163636f756e742049642e202d20526577617264b42d205061796d656e74207479706520286d697373656420726577617264206f7220726567756c6172206f6e65296c4e65774d69737365645265776172644c6576656c526561636865640800200120576f726b6572496400002901013c4f7074696f6e3c42616c616e63653e00151090456d697473206f6e207265616368696e67206e6577206d6973736564207265776172642e1c506172616d733a302d20576f726b65722049442ee82d204d69737365642072657761726420286f7074696f6e616c292e204e6f6e65206d65616e7320276e6f206d697373656420726577617264272e60576f726b696e6747726f757042756467657446756e6465640c002001204d656d6265724964000018011c42616c616e6365000028011c5665633c75383e0016147846756e642074686520776f726b696e672067726f7570206275646765742e1c506172616d733a2c2d204d656d6265722049444c2d20416d6f756e74206f662062616c616e63652c2d20526174696f6e616c65304c65616452656d61726b6564040028011c5665633c75383e00170c94456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a242d206d65737361676538576f726b657252656d61726b65640800200120576f726b65724964000028011c5665633c75383e00181094456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a202d20776f726b6572242d206d6573736167650c5c4576656e747320666f722074686973206d6f64756c652e00385f47726f75705f206576656e74739503085070616c6c65745f776f726b696e675f67726f757024496e7374616e636535000000009903085070616c6c65745f776f726b696e675f67726f7570205261774576656e7430244f70656e696e6749640120344170706c69636174696f6e49640120684170706c69636174696f6e4964546f576f726b657249644d617001590320576f726b657249640120244163636f756e74496401001c42616c616e636501182c4f70656e696e67547970650165032c5374616b65506f6c696379014903604170706c794f6e4f70656e696e67506172616d6574657273016903204d656d62657249640120104861736801240449019d030164304f70656e696e67416464656414002001244f70656e696e674964000028011c5665633c75383e00006503012c4f70656e696e675479706500004903012c5374616b65506f6c69637900002901013c4f7074696f6e3c42616c616e63653e00001c80456d697473206f6e20616464696e67206e6577206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e67206964342d204465736372697074696f6e782d204f70656e696e672054797065284c656164206f7220576f726b657229782d205374616b6520506f6c69637920666f7220746865206f70656e696e67482d205265776172642070657220626c6f636b404170706c6965644f6e4f70656e696e670800690301604170706c794f6e4f70656e696e67506172616d657465727300002001344170706c69636174696f6e4964000110dc456d697473206f6e20616464696e6720746865206170706c69636174696f6e20666f722074686520776f726b6572206f70656e696e672e1c506172616d733a542d204f70656e696e6720706172616d657465726573402d204170706c69636174696f6e206964344f70656e696e6746696c6c65640c002001244f70656e696e6749640000590301684170706c69636174696f6e4964546f576f726b657249644d617000005101015c42547265655365743c4170706c69636174696f6e49643e00021484456d697473206f6e2066696c6c696e6720746865206a6f62206f70656e696e672e1c506172616d733a4c2d20576f726b6572206f70656e696e67206964cc2d20576f726b6572206170706c69636174696f6e20696420746f2074686520776f726b65722069642064696374696f6e617279ac2d204170706c69636174696f6e6420696473207573656420746f2066696c6c20746865206f70656e696e67244c65616465725365740400200120576f726b6572496400030c88456d697473206f6e2073657474696e67207468652067726f7570206c65616465722e1c506172616d733a482d2047726f757020776f726b65722069642e60576f726b6572526f6c654163636f756e74557064617465640800200120576f726b6572496400000001244163636f756e744964000410c4456d697473206f6e207570646174696e672074686520726f6c65206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e802d20526f6c65206163636f756e74206964206f662074686520776f726b65722e2c4c6561646572556e7365740005047c456d697473206f6e20756e2d73657474696e6720746865206c65616465722e30576f726b65724578697465640400200120576f726b6572496400061070456d697473206f6e2065786974696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e302d20526174696f6e616c652e50576f726b6572537461727465644c656176696e670800200120576f726b6572496400001501013c4f7074696f6e3c5665633c75383e3e000710b4456d697473207768656e20776f726b65722073746172746564206c656176696e6720746865697220726f6c652e1c506172616d733a302d20576f726b65722069642e302d20526174696f6e616c652e405465726d696e61746564576f726b65720c00200120576f726b6572496400002901013c4f7074696f6e3c42616c616e63653e00001501013c4f7074696f6e3c5665633c75383e3e00081480456d697473206f6e207465726d696e6174696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e405465726d696e617465644c65616465720c00200120576f726b6572496400002901013c4f7074696f6e3c42616c616e63653e00001501013c4f7074696f6e3c5665633c75383e3e00091480456d697473206f6e207465726d696e6174696e6720746865206c65616465722e1c506172616d733a4c2d206c656164657220776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e305374616b65536c61736865641000200120576f726b65724964000018011c42616c616e6365000018011c42616c616e636500001501013c4f7074696f6e3c5665633c75383e3e000a18c0456d697473206f6e20736c617368696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e642d2061637475616c20736c61736865642062616c616e63652e702d2052657175657374656420736c61736865642062616c616e63652e302d20526174696f6e616c652e385374616b654465637265617365640800200120576f726b65724964000018011c42616c616e6365000b10c8456d697473206f6e2064656372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74385374616b65496e637265617365640800200120576f726b65724964000018011c42616c616e6365000c10c8456d697473206f6e20696e6372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74504170706c69636174696f6e57697468647261776e04002001344170706c69636174696f6e4964000d0c2501456d697473206f6e207769746864726177696e6720746865206170706c69636174696f6e20666f722074686520726567756c617220776f726b65722f6c656164206f70656e696e672e1c506172616d733a502d204a6f62206170706c69636174696f6e2069643c4f70656e696e6743616e63656c656404002001244f70656e696e674964000e0c8c456d697473206f6e2063616e63656c696e6720746865206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e6720696424427564676574536574040018011c42616c616e6365000f0cc8456d697473206f6e2073657474696e67207468652062756467657420666f722074686520776f726b696e672067726f75702e1c506172616d733a302d206e65772062756467657468576f726b65725265776172644163636f756e74557064617465640800200120576f726b6572496400000001244163636f756e744964001010cc456d697473206f6e207570646174696e672074686520726577617264206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e882d20526577617264206163636f756e74206964206f662074686520776f726b65722e64576f726b6572526577617264416d6f756e74557064617465640800200120576f726b6572496400002901013c4f7074696f6e3c42616c616e63653e001110c8456d697473206f6e207570646174696e67207468652072657761726420616d6f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e482d205265776172642070657220626c6f636b44537461747573546578744368616e67656408002401104861736800001501013c4f7074696f6e3c5665633c75383e3e001210dc456d697473206f6e207570646174696e6720746865207374617475732074657874206f662074686520776f726b696e672067726f75702e1c506172616d733a482d2073746174757320746578742068617368342d207374617475732074657874384275646765745370656e64696e670c000001244163636f756e744964000018011c42616c616e636500001501013c4f7074696f6e3c5665633c75383e3e001314c8456d697473206f6e206275646765742066726f6d2074686520776f726b696e672067726f7570206265696e67207370656e741c506172616d733a582d205265636569766572204163636f756e742049642e402d2042616c616e6365207370656e742e302d20526174696f6e616c652e28526577617264506169641000200120576f726b6572496400000001244163636f756e744964000018011c42616c616e63650000750301445265776172645061796d656e74547970650014186c456d697473206f6e20706179696e6720746865207265776172642e1c506172616d733a4c2d204964206f662074686520776f726b65722e582d205265636569766572204163636f756e742049642e202d20526577617264b42d205061796d656e74207479706520286d697373656420726577617264206f7220726567756c6172206f6e65296c4e65774d69737365645265776172644c6576656c526561636865640800200120576f726b6572496400002901013c4f7074696f6e3c42616c616e63653e00151090456d697473206f6e207265616368696e67206e6577206d6973736564207265776172642e1c506172616d733a302d20576f726b65722049442ee82d204d69737365642072657761726420286f7074696f6e616c292e204e6f6e65206d65616e7320276e6f206d697373656420726577617264272e60576f726b696e6747726f757042756467657446756e6465640c002001204d656d6265724964000018011c42616c616e6365000028011c5665633c75383e0016147846756e642074686520776f726b696e672067726f7570206275646765742e1c506172616d733a2c2d204d656d6265722049444c2d20416d6f756e74206f662062616c616e63652c2d20526174696f6e616c65304c65616452656d61726b6564040028011c5665633c75383e00170c94456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a242d206d65737361676538576f726b657252656d61726b65640800200120576f726b65724964000028011c5665633c75383e00181094456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a202d20776f726b6572242d206d6573736167650c5c4576656e747320666f722074686973206d6f64756c652e00385f47726f75705f206576656e74739d03085070616c6c65745f776f726b696e675f67726f757024496e7374616e63653600000000a103085070616c6c65745f776f726b696e675f67726f7570205261774576656e7430244f70656e696e6749640120344170706c69636174696f6e49640120684170706c69636174696f6e4964546f576f726b657249644d617001590320576f726b657249640120244163636f756e74496401001c42616c616e636501182c4f70656e696e67547970650165032c5374616b65506f6c696379014903604170706c794f6e4f70656e696e67506172616d6574657273016903204d656d6265724964012010486173680124044901a5030164304f70656e696e67416464656414002001244f70656e696e674964000028011c5665633c75383e00006503012c4f70656e696e675479706500004903012c5374616b65506f6c69637900002901013c4f7074696f6e3c42616c616e63653e00001c80456d697473206f6e20616464696e67206e6577206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e67206964342d204465736372697074696f6e782d204f70656e696e672054797065284c656164206f7220576f726b657229782d205374616b6520506f6c69637920666f7220746865206f70656e696e67482d205265776172642070657220626c6f636b404170706c6965644f6e4f70656e696e670800690301604170706c794f6e4f70656e696e67506172616d657465727300002001344170706c69636174696f6e4964000110dc456d697473206f6e20616464696e6720746865206170706c69636174696f6e20666f722074686520776f726b6572206f70656e696e672e1c506172616d733a542d204f70656e696e6720706172616d657465726573402d204170706c69636174696f6e206964344f70656e696e6746696c6c65640c002001244f70656e696e6749640000590301684170706c69636174696f6e4964546f576f726b657249644d617000005101015c42547265655365743c4170706c69636174696f6e49643e00021484456d697473206f6e2066696c6c696e6720746865206a6f62206f70656e696e672e1c506172616d733a4c2d20576f726b6572206f70656e696e67206964cc2d20576f726b6572206170706c69636174696f6e20696420746f2074686520776f726b65722069642064696374696f6e617279ac2d204170706c69636174696f6e6420696473207573656420746f2066696c6c20746865206f70656e696e67244c65616465725365740400200120576f726b6572496400030c88456d697473206f6e2073657474696e67207468652067726f7570206c65616465722e1c506172616d733a482d2047726f757020776f726b65722069642e60576f726b6572526f6c654163636f756e74557064617465640800200120576f726b6572496400000001244163636f756e744964000410c4456d697473206f6e207570646174696e672074686520726f6c65206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e802d20526f6c65206163636f756e74206964206f662074686520776f726b65722e2c4c6561646572556e7365740005047c456d697473206f6e20756e2d73657474696e6720746865206c65616465722e30576f726b65724578697465640400200120576f726b6572496400061070456d697473206f6e2065786974696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e302d20526174696f6e616c652e50576f726b6572537461727465644c656176696e670800200120576f726b6572496400001501013c4f7074696f6e3c5665633c75383e3e000710b4456d697473207768656e20776f726b65722073746172746564206c656176696e6720746865697220726f6c652e1c506172616d733a302d20576f726b65722069642e302d20526174696f6e616c652e405465726d696e61746564576f726b65720c00200120576f726b6572496400002901013c4f7074696f6e3c42616c616e63653e00001501013c4f7074696f6e3c5665633c75383e3e00081480456d697473206f6e207465726d696e6174696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e405465726d696e617465644c65616465720c00200120576f726b6572496400002901013c4f7074696f6e3c42616c616e63653e00001501013c4f7074696f6e3c5665633c75383e3e00091480456d697473206f6e207465726d696e6174696e6720746865206c65616465722e1c506172616d733a4c2d206c656164657220776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e305374616b65536c61736865641000200120576f726b65724964000018011c42616c616e6365000018011c42616c616e636500001501013c4f7074696f6e3c5665633c75383e3e000a18c0456d697473206f6e20736c617368696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e642d2061637475616c20736c61736865642062616c616e63652e702d2052657175657374656420736c61736865642062616c616e63652e302d20526174696f6e616c652e385374616b654465637265617365640800200120576f726b65724964000018011c42616c616e6365000b10c8456d697473206f6e2064656372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74385374616b65496e637265617365640800200120576f726b65724964000018011c42616c616e6365000c10c8456d697473206f6e20696e6372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74504170706c69636174696f6e57697468647261776e04002001344170706c69636174696f6e4964000d0c2501456d697473206f6e207769746864726177696e6720746865206170706c69636174696f6e20666f722074686520726567756c617220776f726b65722f6c656164206f70656e696e672e1c506172616d733a502d204a6f62206170706c69636174696f6e2069643c4f70656e696e6743616e63656c656404002001244f70656e696e674964000e0c8c456d697473206f6e2063616e63656c696e6720746865206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e6720696424427564676574536574040018011c42616c616e6365000f0cc8456d697473206f6e2073657474696e67207468652062756467657420666f722074686520776f726b696e672067726f75702e1c506172616d733a302d206e65772062756467657468576f726b65725265776172644163636f756e74557064617465640800200120576f726b6572496400000001244163636f756e744964001010cc456d697473206f6e207570646174696e672074686520726577617264206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e882d20526577617264206163636f756e74206964206f662074686520776f726b65722e64576f726b6572526577617264416d6f756e74557064617465640800200120576f726b6572496400002901013c4f7074696f6e3c42616c616e63653e001110c8456d697473206f6e207570646174696e67207468652072657761726420616d6f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e482d205265776172642070657220626c6f636b44537461747573546578744368616e67656408002401104861736800001501013c4f7074696f6e3c5665633c75383e3e001210dc456d697473206f6e207570646174696e6720746865207374617475732074657874206f662074686520776f726b696e672067726f75702e1c506172616d733a482d2073746174757320746578742068617368342d207374617475732074657874384275646765745370656e64696e670c000001244163636f756e744964000018011c42616c616e636500001501013c4f7074696f6e3c5665633c75383e3e001314c8456d697473206f6e206275646765742066726f6d2074686520776f726b696e672067726f7570206265696e67207370656e741c506172616d733a582d205265636569766572204163636f756e742049642e402d2042616c616e6365207370656e742e302d20526174696f6e616c652e28526577617264506169641000200120576f726b6572496400000001244163636f756e744964000018011c42616c616e63650000750301445265776172645061796d656e74547970650014186c456d697473206f6e20706179696e6720746865207265776172642e1c506172616d733a4c2d204964206f662074686520776f726b65722e582d205265636569766572204163636f756e742049642e202d20526577617264b42d205061796d656e74207479706520286d697373656420726577617264206f7220726567756c6172206f6e65296c4e65774d69737365645265776172644c6576656c526561636865640800200120576f726b6572496400002901013c4f7074696f6e3c42616c616e63653e00151090456d697473206f6e207265616368696e67206e6577206d6973736564207265776172642e1c506172616d733a302d20576f726b65722049442ee82d204d69737365642072657761726420286f7074696f6e616c292e204e6f6e65206d65616e7320276e6f206d697373656420726577617264272e60576f726b696e6747726f757042756467657446756e6465640c002001204d656d6265724964000018011c42616c616e6365000028011c5665633c75383e0016147846756e642074686520776f726b696e672067726f7570206275646765742e1c506172616d733a2c2d204d656d6265722049444c2d20416d6f756e74206f662062616c616e63652c2d20526174696f6e616c65304c65616452656d61726b6564040028011c5665633c75383e00170c94456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a242d206d65737361676538576f726b657252656d61726b65640800200120576f726b65724964000028011c5665633c75383e00181094456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a202d20776f726b6572242d206d6573736167650c5c4576656e747320666f722074686973206d6f64756c652e00385f47726f75705f206576656e7473a503085070616c6c65745f776f726b696e675f67726f757024496e7374616e63653700000000a903085070616c6c65745f776f726b696e675f67726f7570205261774576656e7430244f70656e696e6749640120344170706c69636174696f6e49640120684170706c69636174696f6e4964546f576f726b657249644d617001590320576f726b657249640120244163636f756e74496401001c42616c616e636501182c4f70656e696e67547970650165032c5374616b65506f6c696379014903604170706c794f6e4f70656e696e67506172616d6574657273016903204d656d6265724964012010486173680124044901ad030164304f70656e696e67416464656414002001244f70656e696e674964000028011c5665633c75383e00006503012c4f70656e696e675479706500004903012c5374616b65506f6c69637900002901013c4f7074696f6e3c42616c616e63653e00001c80456d697473206f6e20616464696e67206e6577206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e67206964342d204465736372697074696f6e782d204f70656e696e672054797065284c656164206f7220576f726b657229782d205374616b6520506f6c69637920666f7220746865206f70656e696e67482d205265776172642070657220626c6f636b404170706c6965644f6e4f70656e696e670800690301604170706c794f6e4f70656e696e67506172616d657465727300002001344170706c69636174696f6e4964000110dc456d697473206f6e20616464696e6720746865206170706c69636174696f6e20666f722074686520776f726b6572206f70656e696e672e1c506172616d733a542d204f70656e696e6720706172616d657465726573402d204170706c69636174696f6e206964344f70656e696e6746696c6c65640c002001244f70656e696e6749640000590301684170706c69636174696f6e4964546f576f726b657249644d617000005101015c42547265655365743c4170706c69636174696f6e49643e00021484456d697473206f6e2066696c6c696e6720746865206a6f62206f70656e696e672e1c506172616d733a4c2d20576f726b6572206f70656e696e67206964cc2d20576f726b6572206170706c69636174696f6e20696420746f2074686520776f726b65722069642064696374696f6e617279ac2d204170706c69636174696f6e6420696473207573656420746f2066696c6c20746865206f70656e696e67244c65616465725365740400200120576f726b6572496400030c88456d697473206f6e2073657474696e67207468652067726f7570206c65616465722e1c506172616d733a482d2047726f757020776f726b65722069642e60576f726b6572526f6c654163636f756e74557064617465640800200120576f726b6572496400000001244163636f756e744964000410c4456d697473206f6e207570646174696e672074686520726f6c65206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e802d20526f6c65206163636f756e74206964206f662074686520776f726b65722e2c4c6561646572556e7365740005047c456d697473206f6e20756e2d73657474696e6720746865206c65616465722e30576f726b65724578697465640400200120576f726b6572496400061070456d697473206f6e2065786974696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e302d20526174696f6e616c652e50576f726b6572537461727465644c656176696e670800200120576f726b6572496400001501013c4f7074696f6e3c5665633c75383e3e000710b4456d697473207768656e20776f726b65722073746172746564206c656176696e6720746865697220726f6c652e1c506172616d733a302d20576f726b65722069642e302d20526174696f6e616c652e405465726d696e61746564576f726b65720c00200120576f726b6572496400002901013c4f7074696f6e3c42616c616e63653e00001501013c4f7074696f6e3c5665633c75383e3e00081480456d697473206f6e207465726d696e6174696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e405465726d696e617465644c65616465720c00200120576f726b6572496400002901013c4f7074696f6e3c42616c616e63653e00001501013c4f7074696f6e3c5665633c75383e3e00091480456d697473206f6e207465726d696e6174696e6720746865206c65616465722e1c506172616d733a4c2d206c656164657220776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e305374616b65536c61736865641000200120576f726b65724964000018011c42616c616e6365000018011c42616c616e636500001501013c4f7074696f6e3c5665633c75383e3e000a18c0456d697473206f6e20736c617368696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e642d2061637475616c20736c61736865642062616c616e63652e702d2052657175657374656420736c61736865642062616c616e63652e302d20526174696f6e616c652e385374616b654465637265617365640800200120576f726b65724964000018011c42616c616e6365000b10c8456d697473206f6e2064656372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74385374616b65496e637265617365640800200120576f726b65724964000018011c42616c616e6365000c10c8456d697473206f6e20696e6372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74504170706c69636174696f6e57697468647261776e04002001344170706c69636174696f6e4964000d0c2501456d697473206f6e207769746864726177696e6720746865206170706c69636174696f6e20666f722074686520726567756c617220776f726b65722f6c656164206f70656e696e672e1c506172616d733a502d204a6f62206170706c69636174696f6e2069643c4f70656e696e6743616e63656c656404002001244f70656e696e674964000e0c8c456d697473206f6e2063616e63656c696e6720746865206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e6720696424427564676574536574040018011c42616c616e6365000f0cc8456d697473206f6e2073657474696e67207468652062756467657420666f722074686520776f726b696e672067726f75702e1c506172616d733a302d206e65772062756467657468576f726b65725265776172644163636f756e74557064617465640800200120576f726b6572496400000001244163636f756e744964001010cc456d697473206f6e207570646174696e672074686520726577617264206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e882d20526577617264206163636f756e74206964206f662074686520776f726b65722e64576f726b6572526577617264416d6f756e74557064617465640800200120576f726b6572496400002901013c4f7074696f6e3c42616c616e63653e001110c8456d697473206f6e207570646174696e67207468652072657761726420616d6f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e482d205265776172642070657220626c6f636b44537461747573546578744368616e67656408002401104861736800001501013c4f7074696f6e3c5665633c75383e3e001210dc456d697473206f6e207570646174696e6720746865207374617475732074657874206f662074686520776f726b696e672067726f75702e1c506172616d733a482d2073746174757320746578742068617368342d207374617475732074657874384275646765745370656e64696e670c000001244163636f756e744964000018011c42616c616e636500001501013c4f7074696f6e3c5665633c75383e3e001314c8456d697473206f6e206275646765742066726f6d2074686520776f726b696e672067726f7570206265696e67207370656e741c506172616d733a582d205265636569766572204163636f756e742049642e402d2042616c616e6365207370656e742e302d20526174696f6e616c652e28526577617264506169641000200120576f726b6572496400000001244163636f756e744964000018011c42616c616e63650000750301445265776172645061796d656e74547970650014186c456d697473206f6e20706179696e6720746865207265776172642e1c506172616d733a4c2d204964206f662074686520776f726b65722e582d205265636569766572204163636f756e742049642e202d20526577617264b42d205061796d656e74207479706520286d697373656420726577617264206f7220726567756c6172206f6e65296c4e65774d69737365645265776172644c6576656c526561636865640800200120576f726b6572496400002901013c4f7074696f6e3c42616c616e63653e00151090456d697473206f6e207265616368696e67206e6577206d6973736564207265776172642e1c506172616d733a302d20576f726b65722049442ee82d204d69737365642072657761726420286f7074696f6e616c292e204e6f6e65206d65616e7320276e6f206d697373656420726577617264272e60576f726b696e6747726f757042756467657446756e6465640c002001204d656d6265724964000018011c42616c616e6365000028011c5665633c75383e0016147846756e642074686520776f726b696e672067726f7570206275646765742e1c506172616d733a2c2d204d656d6265722049444c2d20416d6f756e74206f662062616c616e63652c2d20526174696f6e616c65304c65616452656d61726b6564040028011c5665633c75383e00170c94456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a242d206d65737361676538576f726b657252656d61726b65640800200120576f726b65724964000028011c5665633c75383e00181094456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a202d20776f726b6572242d206d6573736167650c5c4576656e747320666f722074686973206d6f64756c652e00385f47726f75705f206576656e7473ad03085070616c6c65745f776f726b696e675f67726f757024496e7374616e63653800000000b103085070616c6c65745f776f726b696e675f67726f7570205261774576656e7430244f70656e696e6749640120344170706c69636174696f6e49640120684170706c69636174696f6e4964546f576f726b657249644d617001590320576f726b657249640120244163636f756e74496401001c42616c616e636501182c4f70656e696e67547970650165032c5374616b65506f6c696379014903604170706c794f6e4f70656e696e67506172616d6574657273016903204d656d6265724964012010486173680124044901b5030164304f70656e696e67416464656414002001244f70656e696e674964000028011c5665633c75383e00006503012c4f70656e696e675479706500004903012c5374616b65506f6c69637900002901013c4f7074696f6e3c42616c616e63653e00001c80456d697473206f6e20616464696e67206e6577206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e67206964342d204465736372697074696f6e782d204f70656e696e672054797065284c656164206f7220576f726b657229782d205374616b6520506f6c69637920666f7220746865206f70656e696e67482d205265776172642070657220626c6f636b404170706c6965644f6e4f70656e696e670800690301604170706c794f6e4f70656e696e67506172616d657465727300002001344170706c69636174696f6e4964000110dc456d697473206f6e20616464696e6720746865206170706c69636174696f6e20666f722074686520776f726b6572206f70656e696e672e1c506172616d733a542d204f70656e696e6720706172616d657465726573402d204170706c69636174696f6e206964344f70656e696e6746696c6c65640c002001244f70656e696e6749640000590301684170706c69636174696f6e4964546f576f726b657249644d617000005101015c42547265655365743c4170706c69636174696f6e49643e00021484456d697473206f6e2066696c6c696e6720746865206a6f62206f70656e696e672e1c506172616d733a4c2d20576f726b6572206f70656e696e67206964cc2d20576f726b6572206170706c69636174696f6e20696420746f2074686520776f726b65722069642064696374696f6e617279ac2d204170706c69636174696f6e6420696473207573656420746f2066696c6c20746865206f70656e696e67244c65616465725365740400200120576f726b6572496400030c88456d697473206f6e2073657474696e67207468652067726f7570206c65616465722e1c506172616d733a482d2047726f757020776f726b65722069642e60576f726b6572526f6c654163636f756e74557064617465640800200120576f726b6572496400000001244163636f756e744964000410c4456d697473206f6e207570646174696e672074686520726f6c65206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e802d20526f6c65206163636f756e74206964206f662074686520776f726b65722e2c4c6561646572556e7365740005047c456d697473206f6e20756e2d73657474696e6720746865206c65616465722e30576f726b65724578697465640400200120576f726b6572496400061070456d697473206f6e2065786974696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e302d20526174696f6e616c652e50576f726b6572537461727465644c656176696e670800200120576f726b6572496400001501013c4f7074696f6e3c5665633c75383e3e000710b4456d697473207768656e20776f726b65722073746172746564206c656176696e6720746865697220726f6c652e1c506172616d733a302d20576f726b65722069642e302d20526174696f6e616c652e405465726d696e61746564576f726b65720c00200120576f726b6572496400002901013c4f7074696f6e3c42616c616e63653e00001501013c4f7074696f6e3c5665633c75383e3e00081480456d697473206f6e207465726d696e6174696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e405465726d696e617465644c65616465720c00200120576f726b6572496400002901013c4f7074696f6e3c42616c616e63653e00001501013c4f7074696f6e3c5665633c75383e3e00091480456d697473206f6e207465726d696e6174696e6720746865206c65616465722e1c506172616d733a4c2d206c656164657220776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e305374616b65536c61736865641000200120576f726b65724964000018011c42616c616e6365000018011c42616c616e636500001501013c4f7074696f6e3c5665633c75383e3e000a18c0456d697473206f6e20736c617368696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e642d2061637475616c20736c61736865642062616c616e63652e702d2052657175657374656420736c61736865642062616c616e63652e302d20526174696f6e616c652e385374616b654465637265617365640800200120576f726b65724964000018011c42616c616e6365000b10c8456d697473206f6e2064656372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74385374616b65496e637265617365640800200120576f726b65724964000018011c42616c616e6365000c10c8456d697473206f6e20696e6372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74504170706c69636174696f6e57697468647261776e04002001344170706c69636174696f6e4964000d0c2501456d697473206f6e207769746864726177696e6720746865206170706c69636174696f6e20666f722074686520726567756c617220776f726b65722f6c656164206f70656e696e672e1c506172616d733a502d204a6f62206170706c69636174696f6e2069643c4f70656e696e6743616e63656c656404002001244f70656e696e674964000e0c8c456d697473206f6e2063616e63656c696e6720746865206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e6720696424427564676574536574040018011c42616c616e6365000f0cc8456d697473206f6e2073657474696e67207468652062756467657420666f722074686520776f726b696e672067726f75702e1c506172616d733a302d206e65772062756467657468576f726b65725265776172644163636f756e74557064617465640800200120576f726b6572496400000001244163636f756e744964001010cc456d697473206f6e207570646174696e672074686520726577617264206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e882d20526577617264206163636f756e74206964206f662074686520776f726b65722e64576f726b6572526577617264416d6f756e74557064617465640800200120576f726b6572496400002901013c4f7074696f6e3c42616c616e63653e001110c8456d697473206f6e207570646174696e67207468652072657761726420616d6f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e482d205265776172642070657220626c6f636b44537461747573546578744368616e67656408002401104861736800001501013c4f7074696f6e3c5665633c75383e3e001210dc456d697473206f6e207570646174696e6720746865207374617475732074657874206f662074686520776f726b696e672067726f75702e1c506172616d733a482d2073746174757320746578742068617368342d207374617475732074657874384275646765745370656e64696e670c000001244163636f756e744964000018011c42616c616e636500001501013c4f7074696f6e3c5665633c75383e3e001314c8456d697473206f6e206275646765742066726f6d2074686520776f726b696e672067726f7570206265696e67207370656e741c506172616d733a582d205265636569766572204163636f756e742049642e402d2042616c616e6365207370656e742e302d20526174696f6e616c652e28526577617264506169641000200120576f726b6572496400000001244163636f756e744964000018011c42616c616e63650000750301445265776172645061796d656e74547970650014186c456d697473206f6e20706179696e6720746865207265776172642e1c506172616d733a4c2d204964206f662074686520776f726b65722e582d205265636569766572204163636f756e742049642e202d20526577617264b42d205061796d656e74207479706520286d697373656420726577617264206f7220726567756c6172206f6e65296c4e65774d69737365645265776172644c6576656c526561636865640800200120576f726b6572496400002901013c4f7074696f6e3c42616c616e63653e00151090456d697473206f6e207265616368696e67206e6577206d6973736564207265776172642e1c506172616d733a302d20576f726b65722049442ee82d204d69737365642072657761726420286f7074696f6e616c292e204e6f6e65206d65616e7320276e6f206d697373656420726577617264272e60576f726b696e6747726f757042756467657446756e6465640c002001204d656d6265724964000018011c42616c616e6365000028011c5665633c75383e0016147846756e642074686520776f726b696e672067726f7570206275646765742e1c506172616d733a2c2d204d656d6265722049444c2d20416d6f756e74206f662062616c616e63652c2d20526174696f6e616c65304c65616452656d61726b6564040028011c5665633c75383e00170c94456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a242d206d65737361676538576f726b657252656d61726b65640800200120576f726b65724964000028011c5665633c75383e00181094456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a202d20776f726b6572242d206d6573736167650c5c4576656e747320666f722074686973206d6f64756c652e00385f47726f75705f206576656e7473b503085070616c6c65745f776f726b696e675f67726f757024496e7374616e63653900000000b90308306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e00020000bd030000022400c103000002c50300c50300000408101000c90308306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6ecd03014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d65d103016473705f72756e74696d653a3a52756e74696d65537472696e670000cd030000061000d1030000050200d5030c306672616d655f73797374656d1870616c6c65741043616c6c0404540001242866696c6c5f626c6f636b040114726174696f9c011c50657262696c6c00000405014120646973706174636820746861742077696c6c2066696c6c2074686520626c6f636b2077656967687420757020746f2074686520676976656e20726174696f2e1872656d61726b04011872656d61726b28011c5665633c75383e000114684d616b6520736f6d65206f6e2d636861696e2072656d61726b2e002823203c7765696768743e202d20604f283129602c23203c2f7765696768743e387365745f686561705f7061676573040114706167657320010c753634000204f853657420746865206e756d626572206f6620706167657320696e2074686520576562417373656d626c7920656e7669726f6e6d656e74277320686561702e207365745f636f6465040110636f646528011c5665633c75383e0003306453657420746865206e65772072756e74696d6520636f64652e002823203c7765696768743e31012d20604f2843202b2053296020776865726520604360206c656e677468206f662060636f64656020616e642060536020636f6d706c6578697479206f66206063616e5f7365745f636f64656045012d20312063616c6c20746f206063616e5f7365745f636f6465603a20604f28532960202863616c6c73206073705f696f3a3a6d6973633a3a72756e74696d655f76657273696f6e60207768696368206973342020657870656e73697665292e842d20312073746f726167652077726974652028636f64656320604f28432960292e402d203120646967657374206974656d2e282d2031206576656e742e4d0154686520776569676874206f6620746869732066756e6374696f6e20697320646570656e64656e74206f6e207468652072756e74696d652c206275742067656e6572616c6c7920746869732069732076657279b8657870656e736976652e2057652077696c6c207472656174207468697320617320612066756c6c20626c6f636b2e2c23203c2f7765696768743e5c7365745f636f64655f776974686f75745f636865636b73040110636f646528011c5665633c75383e000424190153657420746865206e65772072756e74696d6520636f646520776974686f757420646f696e6720616e7920636865636b73206f662074686520676976656e2060636f6465602e002823203c7765696768743e8c2d20604f2843296020776865726520604360206c656e677468206f662060636f646560842d20312073746f726167652077726974652028636f64656320604f28432960292e402d203120646967657374206974656d2e282d2031206576656e742e550154686520776569676874206f6620746869732066756e6374696f6e20697320646570656e64656e74206f6e207468652072756e74696d652e2057652077696c6c207472656174207468697320617320612066756c6c48626c6f636b2e2023203c2f7765696768743e2c7365745f73746f726167650401146974656d73d90301345665633c4b657956616c75653e0005046853657420736f6d65206974656d73206f662073746f726167652e306b696c6c5f73746f726167650401106b657973910201205665633c4b65793e000604744b696c6c20736f6d65206974656d732066726f6d2073746f726167652e2c6b696c6c5f70726566697808011870726566697828010c4b657900011c7375626b65797310010c75333200071011014b696c6c20616c6c2073746f72616765206974656d7320776974682061206b657920746861742073746172747320776974682074686520676976656e207072656669782e0039012a2a4e4f54453a2a2a2057652072656c79206f6e2074686520526f6f74206f726967696e20746f2070726f7669646520757320746865206e756d626572206f66207375626b65797320756e6465723d0174686520707265666978207765206172652072656d6f76696e6720746f2061636375726174656c792063616c63756c6174652074686520776569676874206f6620746869732066756e6374696f6e2e4472656d61726b5f776974685f6576656e7404011872656d61726b28011c5665633c75383e000804a44d616b6520736f6d65206f6e2d636861696e2072656d61726b20616e6420656d6974206576656e742e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ed903000002dd0300dd0300000408282800e1030c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2001185765696768740001246d61785f626c6f636b2001185765696768740001247065725f636c617373e50301845065724469737061746368436c6173733c57656967687473506572436c6173733e0000e5030c346672616d655f737570706f72741c77656967687473405065724469737061746368436c61737304045401e903000c01186e6f726d616ce90301045400012c6f7065726174696f6e616ce9030104540001246d616e6461746f7279e9030104540000e9030c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632001185765696768740001346d61785f65787472696e736963190101384f7074696f6e3c5765696768743e0001246d61785f746f74616c190101384f7074696f6e3c5765696768743e0001207265736572766564190101384f7074696f6e3c5765696768743e0000ed030c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d6178f10301545065724469737061746368436c6173733c7533323e0000f1030c346672616d655f737570706f72741c77656967687473405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f7279100104540000f5030c346672616d655f737570706f72741c776569676874733c52756e74696d65446257656967687400000801107265616420011857656967687400011477726974652001185765696768740000f903082873705f76657273696f6e3852756e74696d6556657273696f6e0000200124737065635f6e616d65d103013452756e74696d65537472696e67000124696d706c5f6e616d65d103013452756e74696d65537472696e67000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c75333200011061706973fd03011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c75333200013473746174655f76657273696f6e08010875380000fd03040c436f77040454010104000400010400000001040000020504000504000004080904100009040000030800000008000d04000005040011040c306672616d655f73797374656d1870616c6c6574144572726f720404540001183c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e3043616c6c46696c7465726564000504d0546865206f726967696e2066696c7465722070726576656e74207468652063616c6c20746f20626520646973706174636865642e046c4572726f7220666f72207468652053797374656d2070616c6c657415040c3870616c6c65745f7574696c6974791870616c6c65741043616c6c04045400011414626174636804011463616c6c73190401605665633c3c5420617320436f6e6669673e3a3a43616c6c3e00004c7c53656e642061206261746368206f662064697370617463682063616c6c732e00784d61792062652063616c6c65642066726f6d20616e79206f726967696e2e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e005d014966206f726967696e20697320726f6f74207468656e2063616c6c2061726520646973706174636820776974686f757420636865636b696e67206f726967696e2066696c7465722e20285468697320696e636c75646573c8627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e002823203c7765696768743e01012d20436f6d706c65786974793a204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e2c23203c2f7765696768743e005501546869732077696c6c2072657475726e20604f6b6020696e20616c6c2063697263756d7374616e6365732e20546f2064657465726d696e65207468652073756363657373206f66207468652062617463682c20616e31016576656e74206973206465706f73697465642e20496620612063616c6c206661696c656420616e64207468652062617463682077617320696e7465727275707465642c207468656e207468655501604261746368496e74657272757074656460206576656e74206973206465706f73697465642c20616c6f6e67207769746820746865206e756d626572206f66207375636365737366756c2063616c6c73206d6164654d01616e6420746865206572726f72206f6620746865206661696c65642063616c6c2e20496620616c6c2077657265207375636365737366756c2c207468656e2074686520604261746368436f6d706c65746564604c6576656e74206973206465706f73697465642e3461735f64657269766174697665080114696e6465780d04010c75313600011063616c6c1d040160426f783c3c5420617320436f6e6669673e3a3a43616c6c3e000134dc53656e6420612063616c6c207468726f75676820616e20696e64657865642070736575646f6e796d206f66207468652073656e6465722e00550146696c7465722066726f6d206f726967696e206172652070617373656420616c6f6e672e205468652063616c6c2077696c6c2062652064697370617463686564207769746820616e206f726967696e207768696368bc757365207468652073616d652066696c74657220617320746865206f726967696e206f6620746869732063616c6c2e0045014e4f54453a20496620796f75206e65656420746f20656e73757265207468617420616e79206163636f756e742d62617365642066696c746572696e67206973206e6f7420686f6e6f7265642028692e652e61016265636175736520796f7520657870656374206070726f78796020746f2068617665206265656e2075736564207072696f7220696e207468652063616c6c20737461636b20616e6420796f7520646f206e6f742077616e7451017468652063616c6c207265737472696374696f6e7320746f206170706c7920746f20616e79207375622d6163636f756e7473292c207468656e20757365206061735f6d756c74695f7468726573686f6c645f31607c696e20746865204d756c74697369672070616c6c657420696e73746561642e00f44e4f54453a205072696f7220746f2076657273696f6e202a31322c2074686973207761732063616c6c6564206061735f6c696d697465645f737562602e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e2462617463685f616c6c04011463616c6c73190401605665633c3c5420617320436f6e6669673e3a3a43616c6c3e000238ec53656e642061206261746368206f662064697370617463682063616c6c7320616e642061746f6d6963616c6c792065786563757465207468656d2e21015468652077686f6c65207472616e73616374696f6e2077696c6c20726f6c6c6261636b20616e64206661696c20696620616e79206f66207468652063616c6c73206661696c65642e00784d61792062652063616c6c65642066726f6d20616e79206f726967696e2e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e005d014966206f726967696e20697320726f6f74207468656e2063616c6c2061726520646973706174636820776974686f757420636865636b696e67206f726967696e2066696c7465722e20285468697320696e636c75646573c8627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e002823203c7765696768743e01012d20436f6d706c65786974793a204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e2c23203c2f7765696768743e2c64697370617463685f617308012461735f6f726967696e89060154426f783c543a3a50616c6c6574734f726967696e3e00011063616c6c1d040160426f783c3c5420617320436f6e6669673e3a3a43616c6c3e000328c84469737061746368657320612066756e6374696f6e2063616c6c207769746820612070726f7669646564206f726967696e2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e002823203c7765696768743e1c2d204f2831292e602d204c696d697465642073746f726167652072656164732e5c2d204f6e6520444220777269746520286576656e74292e1d012d20576569676874206f662064657269766174697665206063616c6c6020657865637574696f6e202b20543a3a576569676874496e666f3a3a64697370617463685f617328292e2c23203c2f7765696768743e2c666f7263655f626174636804011463616c6c73190401605665633c3c5420617320436f6e6669673e3a3a43616c6c3e0004387c53656e642061206261746368206f662064697370617463682063616c6c732ed4556e6c696b6520606261746368602c20697420616c6c6f7773206572726f727320616e6420776f6e277420696e746572727570742e00784d61792062652063616c6c65642066726f6d20616e79206f726967696e2e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e005d014966206f726967696e20697320726f6f74207468656e2063616c6c2061726520646973706174636820776974686f757420636865636b696e67206f726967696e2066696c7465722e20285468697320696e636c75646573c8627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e002823203c7765696768743e01012d20436f6d706c65786974793a204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e2c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e19040000021d04001d0408586a6f7973747265616d5f6e6f64655f72756e74696d651043616c6c0001901853797374656d0400d50301ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e0000001c5574696c6974790400150401b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5574696c6974792c2052756e74696d653e00010010426162650400210401a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c426162652c2052756e74696d653e0002002454696d657374616d700400450401b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e00030028417574686f727368697004004d0401bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c417574686f72736869702c2052756e74696d653e0004002042616c616e6365730400550401b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e00050068456c656374696f6e50726f76696465724d756c746950686173650400590401fd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c456c656374696f6e50726f76696465724d756c746950686173652c2052756e74696d653e0007001c5374616b696e670400490501b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5374616b696e672c2052756e74696d653e0008001c53657373696f6e04006d0501b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53657373696f6e2c2052756e74696d653e0009001c4772616e6470610400790501b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4772616e6470612c2052756e74696d653e000b0020496d4f6e6c696e650400a90501b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c496d4f6e6c696e652c2052756e74696d653e000d0020426167734c6973740400c90501b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c426167734c6973742c2052756e74696d653e0010001c56657374696e670400cd0501b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c56657374696e672c2052756e74696d653e001100204d756c74697369670400d50501b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d756c74697369672c2052756e74696d653e0012001c436f756e63696c0400e10501b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f756e63696c2c2052756e74696d653e001300285265666572656e64756d0400e50501bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5265666572656e64756d2c2052756e74696d653e0014001c4d656d626572730400e90501b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d656d626572732c2052756e74696d653e00150014466f72756d0400ed0501a90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c466f72756d2c2052756e74696d653e00160030436f6e737469747574696f6e0400f10501c50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f6e737469747574696f6e2c2052756e74696d653e00170018426f756e74790400f50501ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c426f756e74792c2052756e74696d653e001800404a6f7973747265616d5574696c6974790400f90501d50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4a6f7973747265616d5574696c6974792c2052756e74696d653e0019001c436f6e74656e740400fd0501b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f6e74656e742c2052756e74696d653e001a001c53746f7261676504002d0601b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53746f726167652c2052756e74696d653e001b003050726f6a656374546f6b656e0400310601c50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50726f6a656374546f6b656e2c2052756e74696d653e001c003c50726f706f73616c73456e67696e650400590601d10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50726f706f73616c73456e67696e652c2052756e74696d653e001d004c50726f706f73616c7344697363757373696f6e04005d0601e10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50726f706f73616c7344697363757373696f6e2c2052756e74696d653e001e003850726f706f73616c73436f6465780400610601cd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50726f706f73616c73436f6465782c2052756e74696d653e001f0044466f72756d576f726b696e6747726f75700400650601d90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c466f72756d576f726b696e6747726f75702c2052756e74696d653e0020004c53746f72616765576f726b696e6747726f75700400690601e10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53746f72616765576f726b696e6747726f75702c2052756e74696d653e0021004c436f6e74656e74576f726b696e6747726f757004006d0601e10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f6e74656e74576f726b696e6747726f75702c2052756e74696d653e0022006c4f7065726174696f6e73576f726b696e6747726f7570416c7068610400710601010273656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4f7065726174696f6e73576f726b696e6747726f7570416c7068612c2052756e74696d653e0023003c417070576f726b696e6747726f75700400750601d10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c417070576f726b696e6747726f75702c2052756e74696d653e002400584d656d62657273686970576f726b696e6747726f75700400790601ed0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d656d62657273686970576f726b696e6747726f75702c2052756e74696d653e002500684f7065726174696f6e73576f726b696e6747726f75704265746104007d0601fd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4f7065726174696f6e73576f726b696e6747726f7570426574612c2052756e74696d653e0026006c4f7065726174696f6e73576f726b696e6747726f757047616d6d610400810601010273656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4f7065726174696f6e73576f726b696e6747726f757047616d6d612c2052756e74696d653e00270060446973747269627574696f6e576f726b696e6747726f75700400850601f50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c446973747269627574696f6e576f726b696e6747726f75702c2052756e74696d653e0028000021040c2c70616c6c65745f626162651870616c6c65741043616c6c04045400010c4c7265706f72745f65717569766f636174696f6e08014865717569766f636174696f6e5f70726f6f6625040184426f783c45717569766f636174696f6e50726f6f663c543a3a4865616465723e3e00013c6b65795f6f776e65725f70726f6f6639040140543a3a4b65794f776e657250726f6f6600001009015265706f727420617574686f726974792065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667905017468652065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f660d01616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c306265207265706f727465642e707265706f72745f65717569766f636174696f6e5f756e7369676e656408014865717569766f636174696f6e5f70726f6f6625040184426f783c45717569766f636174696f6e50726f6f663c543a3a4865616465723e3e00013c6b65795f6f776e65725f70726f6f6639040140543a3a4b65794f776e657250726f6f6600012009015265706f727420617574686f726974792065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667905017468652065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f660d01616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c306265207265706f727465642e0d01546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c791501626c6f636b20617574686f72732077696c6c2063616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c2061732073756368150169662074686520626c6f636b20617574686f7220697320646566696e65642069742077696c6c20626520646566696e6564206173207468652065717569766f636174696f6e247265706f727465722e48706c616e5f636f6e6669675f6368616e6765040118636f6e6669673d0401504e657874436f6e66696744657363726970746f720002105d01506c616e20616e2065706f636820636f6e666967206368616e67652e205468652065706f636820636f6e666967206368616e6765206973207265636f7264656420616e642077696c6c20626520656e6163746564206f6e5101746865206e6578742063616c6c20746f2060656e6163745f65706f63685f6368616e6765602e2054686520636f6e6669672077696c6c20626520616374697661746564206f6e652065706f63682061667465722e59014d756c7469706c652063616c6c7320746f2074686973206d6574686f642077696c6c207265706c61636520616e79206578697374696e6720706c616e6e656420636f6e666967206368616e6765207468617420686164546e6f74206265656e20656e6163746564207965742e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e2504084873705f636f6e73656e7375735f736c6f74734445717569766f636174696f6e50726f6f660818486561646572012904084964013104001001206f6666656e646572310401084964000110736c6f7435040110536c6f7400013066697273745f686561646572290401184865616465720001347365636f6e645f6865616465722904011848656164657200002904102873705f72756e74696d651c67656e65726963186865616465721848656164657208184e756d62657201101048617368012d040014012c706172656e745f68617368240130486173683a3a4f75747075740001186e756d626572cd0301184e756d62657200012873746174655f726f6f74240130486173683a3a4f757470757400013c65787472696e736963735f726f6f74240130486173683a3a4f75747075740001186469676573742c011844696765737400002d040c2873705f72756e74696d65187472616974732c426c616b6554776f3235360000000031040c4473705f636f6e73656e7375735f626162650c617070185075626c696300000400c0013c737232353531393a3a5075626c696300003504084873705f636f6e73656e7375735f736c6f747310536c6f740000040020010c75363400003904082873705f73657373696f6e3c4d656d6265727368697050726f6f6600000c011c73657373696f6e10013053657373696f6e496e646578000128747269655f6e6f646573910201305665633c5665633c75383e3e00013c76616c696461746f725f636f756e7410013856616c696461746f72436f756e7400003d040c4473705f636f6e73656e7375735f626162651c64696765737473504e657874436f6e66696744657363726970746f720001040856310801046361030128287536342c2075363429000134616c6c6f7765645f736c6f747341040130416c6c6f776564536c6f7473000100004104084473705f636f6e73656e7375735f6261626530416c6c6f776564536c6f747300010c305072696d617279536c6f7473000000745072696d617279416e645365636f6e64617279506c61696e536c6f74730001006c5072696d617279416e645365636f6e64617279565246536c6f74730002000045040c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f7749040124543a3a4d6f6d656e7400004054536574207468652063757272656e742074696d652e005501546869732063616c6c2073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6ed470686173652c20696620746869732063616c6c206861736e2774206265656e20696e766f6b656420627920746861742074696d652e0041015468652074696d657374616d702073686f756c642062652067726561746572207468616e207468652070726576696f7573206f6e652062792074686520616d6f756e742073706563696669656420627940604d696e696d756d506572696f64602e00d4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060496e686572656e74602e002823203c7765696768743e31012d20604f2831296020284e6f7465207468617420696d706c656d656e746174696f6e73206f6620604f6e54696d657374616d7053657460206d75737420616c736f20626520604f283129602961012d20312073746f72616765207265616420616e6420312073746f72616765206d75746174696f6e2028636f64656320604f28312960292e202862656361757365206f6620604469645570646174653a3a74616b656020696e402020606f6e5f66696e616c697a656029d42d2031206576656e742068616e646c657220606f6e5f74696d657374616d705f736574602e204d75737420626520604f283129602e2c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e490400000620004d040c4470616c6c65745f617574686f72736869701870616c6c65741043616c6c040454000104287365745f756e636c65730401286e65775f756e636c6573510401385665633c543a3a4865616465723e0000046050726f76696465206120736574206f6620756e636c65732e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e510400000229040055040c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c080454000449000118207472616e736665720801106465737400018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500011476616c7565d00128543a3a42616c616e6365000064d45472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572206163636f756e742e000501607472616e73666572602077696c6c207365742074686520604672656542616c616e636560206f66207468652073656e64657220616e642072656365697665722e11014966207468652073656e6465722773206163636f756e742069732062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c74b06f6620746865207472616e736665722c20746865206163636f756e742077696c6c206265207265617065642e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520605369676e65646020627920746865207472616e736163746f722e002823203c7765696768743e61012d20446570656e64656e74206f6e20617267756d656e747320627574206e6f7420637269746963616c2c20676976656e2070726f70657220696d706c656d656e746174696f6e7320666f7220696e70757420636f6e66696794202074797065732e205365652072656c617465642066756e6374696f6e732062656c6f772e31012d20497420636f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e642077726974657320696e7465726e616c6c7920616e64206e6f20636f6d706c6578382020636f6d7075746174696f6e2e004852656c617465642066756e6374696f6e733a004d0120202d2060656e737572655f63616e5f77697468647261776020697320616c776179732063616c6c656420696e7465726e616c6c792062757420686173206120626f756e64656420636f6d706c65786974792e290120202d205472616e7366657272696e672062616c616e63657320746f206163636f756e7473207468617420646964206e6f74206578697374206265666f72652077696c6c206361757365cc2020202060543a3a4f6e4e65774163636f756e743a3a6f6e5f6e65775f6163636f756e746020746f2062652063616c6c65642e5d0120202d2052656d6f76696e6720656e6f7567682066756e64732066726f6d20616e206163636f756e742077696c6c20747269676765722060543a3a4475737452656d6f76616c3a3a6f6e5f756e62616c616e636564602e5d0120202d20607472616e736665725f6b6565705f616c6976656020776f726b73207468652073616d652077617920617320607472616e73666572602c206275742068617320616e206164646974696f6e616c20636865636bdc202020207468617420746865207472616e736665722077696c6c206e6f74206b696c6c20746865206f726967696e206163636f756e742e842d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d11012d204f726967696e206163636f756e7420697320616c726561647920696e206d656d6f72792c20736f206e6f204442206f7065726174696f6e7320666f72207468656d2e2c23203c2f7765696768743e2c7365745f62616c616e63650c010c77686f00018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001206e65775f66726565d00128543a3a42616c616e63650001306e65775f7265736572766564d00128543a3a42616c616e636500012090536574207468652062616c616e636573206f66206120676976656e206163636f756e742e001d01546869732077696c6c20616c74657220604672656542616c616e63656020616e642060526573657276656442616c616e63656020696e2073746f726167652e2069742077696c6c3101616c736f20616c7465722074686520746f74616c2069737375616e6365206f66207468652073797374656d202860546f74616c49737375616e6365602920617070726f7072696174656c792e1501496620746865206e65772066726565206f722072657365727665642062616c616e63652069732062656c6f7720746865206578697374656e7469616c206465706f7369742cfc69742077696c6c20726573657420746865206163636f756e74206e6f6e63652028606672616d655f73797374656d3a3a4163636f756e744e6f6e636560292e00b0546865206469737061746368206f726967696e20666f7220746869732063616c6c2069732060726f6f74602e38666f7263655f7472616e736665720c0118736f7572636500018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001106465737400018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500011476616c7565d00128543a3a42616c616e63650002184d0145786163746c7920617320607472616e73666572602c2065786365707420746865206f726967696e206d75737420626520726f6f7420616e642074686520736f75726365206163636f756e74206d6179206265287370656369666965642e2823203c7765696768743e4d012d2053616d65206173207472616e736665722c20627574206164646974696f6e616c207265616420616e6420777269746520626563617573652074686520736f75726365206163636f756e74206973206e6f747c2020617373756d656420746f20626520696e20746865206f7665726c61792e2c23203c2f7765696768743e4c7472616e736665725f6b6565705f616c6976650801106465737400018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500011476616c7565d00128543a3a42616c616e63650003184d0153616d6520617320746865205b607472616e73666572605d2063616c6c2c206275742077697468206120636865636b207468617420746865207472616e736665722077696c6c206e6f74206b696c6c207468653c6f726967696e206163636f756e742e00b8393925206f66207468652074696d6520796f752077616e74205b607472616e73666572605d20696e73746561642e00c05b607472616e73666572605d3a207374727563742e50616c6c65742e68746d6c236d6574686f642e7472616e73666572307472616e736665725f616c6c0801106465737400018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001286b6565705f616c697665880110626f6f6c00044405015472616e736665722074686520656e74697265207472616e7366657261626c652062616c616e63652066726f6d207468652063616c6c6572206163636f756e742e0059014e4f54453a20546869732066756e6374696f6e206f6e6c7920617474656d70747320746f207472616e73666572205f7472616e7366657261626c655f2062616c616e6365732e2054686973206d65616e7320746861746101616e79206c6f636b65642c2072657365727665642c206f72206578697374656e7469616c206465706f7369747320287768656e20606b6565705f616c6976656020697320607472756560292c2077696c6c206e6f742062655d017472616e7366657272656420627920746869732066756e6374696f6e2e20546f20656e73757265207468617420746869732066756e6374696f6e20726573756c747320696e2061206b696c6c6564206163636f756e742c4501796f75206d69676874206e65656420746f207072657061726520746865206163636f756e742062792072656d6f76696e6720616e79207265666572656e636520636f756e746572732c2073746f72616765406465706f736974732c206574632e2e2e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205369676e65642e00a02d206064657374603a2054686520726563697069656e74206f6620746865207472616e736665722e59012d20606b6565705f616c697665603a204120626f6f6c65616e20746f2064657465726d696e652069662074686520607472616e736665725f616c6c60206f7065726174696f6e2073686f756c642073656e6420616c6c4d0120206f66207468652066756e647320746865206163636f756e74206861732c2063617573696e67207468652073656e646572206163636f756e7420746f206265206b696c6c6564202866616c7365292c206f72590120207472616e736665722065766572797468696e6720657863657074206174206c6561737420746865206578697374656e7469616c206465706f7369742c2077686963682077696c6c2067756172616e74656520746fc820206b656570207468652073656e646572206163636f756e7420616c697665202874727565292e2023203c7765696768743e39012d204f2831292e204a757374206c696b65207472616e736665722c206275742072656164696e672074686520757365722773207472616e7366657261626c652062616c616e63652066697273742e302020233c2f7765696768743e3c666f7263655f756e7265736572766508010c77686f00018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365000118616d6f756e74180128543a3a42616c616e636500050cb0556e7265736572766520736f6d652062616c616e63652066726f6d2061207573657220627920666f7263652e006c43616e206f6e6c792062652063616c6c656420627920524f4f542e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e59040c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173651870616c6c65741043616c6c0404540001143c7375626d69745f756e7369676e65640801307261775f736f6c7574696f6e5d0401b0426f783c526177536f6c7574696f6e3c536f6c7574696f6e4f663c543a3a4d696e6572436f6e6669673e3e3e00011c7769746e65737331050158536f6c7574696f6e4f72536e617073686f7453697a65000038a45375626d6974206120736f6c7574696f6e20666f722074686520756e7369676e65642070686173652e00c8546865206469737061746368206f726967696e20666f20746869732063616c6c206d757374206265205f5f6e6f6e655f5f2e003d0154686973207375626d697373696f6e20697320636865636b6564206f6e2074686520666c792e204d6f72656f7665722c207468697320756e7369676e656420736f6c7574696f6e206973206f6e6c79550176616c696461746564207768656e207375626d697474656420746f2074686520706f6f6c2066726f6d20746865202a2a6c6f63616c2a2a206e6f64652e204566666563746976656c792c2074686973206d65616e735d0174686174206f6e6c79206163746976652076616c696461746f72732063616e207375626d69742074686973207472616e73616374696f6e207768656e20617574686f72696e67206120626c6f636b202873696d696c617240746f20616e20696e686572656e74292e005901546f2070726576656e7420616e7920696e636f727265637420736f6c7574696f6e2028616e642074687573207761737465642074696d652f776569676874292c2074686973207472616e73616374696f6e2077696c6c4d0170616e69632069662074686520736f6c7574696f6e207375626d6974746564206279207468652076616c696461746f7220697320696e76616c696420696e20616e79207761792c206566666563746976656c799c70757474696e6720746865697220617574686f72696e6720726577617264206174207269736b2e00e04e6f206465706f736974206f7220726577617264206973206173736f63696174656420776974682074686973207375626d697373696f6e2e6c7365745f6d696e696d756d5f756e747275737465645f73636f72650401406d617962655f6e6578745f73636f7265350501544f7074696f6e3c456c656374696f6e53636f72653e000114b05365742061206e65772076616c756520666f7220604d696e696d756d556e7472757374656453636f7265602e00d84469737061746368206f726967696e206d75737420626520616c69676e656420776974682060543a3a466f7263654f726967696e602e00f05468697320636865636b2063616e206265207475726e6564206f66662062792073657474696e67207468652076616c756520746f20604e6f6e65602e747365745f656d657267656e63795f656c656374696f6e5f726573756c74040120737570706f72747339050158537570706f7274733c543a3a4163636f756e7449643e0002205901536574206120736f6c7574696f6e20696e207468652071756575652c20746f2062652068616e646564206f757420746f2074686520636c69656e74206f6620746869732070616c6c657420696e20746865206e6578748863616c6c20746f2060456c656374696f6e50726f76696465723a3a656c656374602e004501546869732063616e206f6e6c79206265207365742062792060543a3a466f7263654f726967696e602c20616e64206f6e6c79207768656e207468652070686173652069732060456d657267656e6379602e00610154686520736f6c7574696f6e206973206e6f7420636865636b656420666f7220616e7920666561736962696c69747920616e6420697320617373756d656420746f206265207472757374776f727468792c20617320616e795101666561736962696c69747920636865636b20697473656c662063616e20696e207072696e6369706c652063617573652074686520656c656374696f6e2070726f6365737320746f206661696c202864756520746f686d656d6f72792f77656967687420636f6e73747261696e73292e187375626d69740401307261775f736f6c7574696f6e5d0401b0426f783c526177536f6c7574696f6e3c536f6c7574696f6e4f663c543a3a4d696e6572436f6e6669673e3e3e0003249c5375626d6974206120736f6c7574696f6e20666f7220746865207369676e65642070686173652e00d0546865206469737061746368206f726967696e20666f20746869732063616c6c206d757374206265205f5f7369676e65645f5f2e005d0154686520736f6c7574696f6e20697320706f74656e7469616c6c79207175657565642c206261736564206f6e2074686520636c61696d65642073636f726520616e642070726f6365737365642061742074686520656e64506f6620746865207369676e65642070686173652e005d0141206465706f73697420697320726573657276656420616e64207265636f7264656420666f722074686520736f6c7574696f6e2e204261736564206f6e20746865206f7574636f6d652c2074686520736f6c7574696f6e15016d696768742062652072657761726465642c20736c61736865642c206f722067657420616c6c206f7220612070617274206f6620746865206465706f736974206261636b2e4c676f7665726e616e63655f66616c6c6261636b0801406d617962655f6d61785f766f74657273e901012c4f7074696f6e3c7533323e0001446d617962655f6d61785f74617267657473e901012c4f7074696f6e3c7533323e00041080547269676765722074686520676f7665726e616e63652066616c6c6261636b2e004901546869732063616e206f6e6c792062652063616c6c6564207768656e205b6050686173653a3a456d657267656e6379605d20697320656e61626c65642c20617320616e20616c7465726e617469766520746fc063616c6c696e67205b6043616c6c3a3a7365745f656d657267656e63795f656c656374696f6e5f726573756c74605d2e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e5d04089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173652c526177536f6c7574696f6e040453016104000c0120736f6c7574696f6e610401045300011473636f72652d050134456c656374696f6e53636f7265000114726f756e6410010c7533320000610408586a6f7973747265616d5f6e6f64655f72756e74696d65384e706f73536f6c7574696f6e31360000400118766f74657331650400000118766f74657332710400000118766f74657333850400000118766f74657334910400000118766f746573359d0400000118766f74657336a90400000118766f74657337b50400000118766f74657338c10400000118766f74657339cd040000011c766f7465733130d9040000011c766f7465733131e5040000011c766f7465733132f1040000011c766f7465733133fd040000011c766f746573313409050000011c766f746573313515050000011c766f746573313621050000006504000002690400690400000408cd036d04006d040000060d0400710400000275040075040000040ccd0379046d04007904000004086d047d04007d0400000681040081040c3473705f61726974686d65746963287065725f7468696e677318506572553136000004000d04010c7531360000850400000289040089040000040ccd038d046d04008d0400000302000000790400910400000295040095040000040ccd0399046d04009904000003030000007904009d04000002a10400a1040000040ccd03a5046d0400a50400000304000000790400a904000002ad0400ad040000040ccd03b1046d0400b10400000305000000790400b504000002b90400b9040000040ccd03bd046d0400bd0400000306000000790400c104000002c50400c5040000040ccd03c9046d0400c90400000307000000790400cd04000002d10400d1040000040ccd03d5046d0400d50400000308000000790400d904000002dd0400dd040000040ccd03e1046d0400e10400000309000000790400e504000002e90400e9040000040ccd03ed046d0400ed040000030a000000790400f104000002f50400f5040000040ccd03f9046d0400f9040000030b000000790400fd0400000201050001050000040ccd0305056d040005050000030c00000079040009050000020d05000d050000040ccd0311056d040011050000030d000000790400150500000219050019050000040ccd031d056d04001d050000030e000000790400210500000225050025050000040ccd0329056d040029050000030f0000007904002d05084473705f6e706f735f656c656374696f6e7334456c656374696f6e53636f726500000c01346d696e696d616c5f7374616b6518013c457874656e64656442616c616e636500012473756d5f7374616b6518013c457874656e64656442616c616e636500014473756d5f7374616b655f7371756172656418013c457874656e64656442616c616e636500003105089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f706861736558536f6c7574696f6e4f72536e617073686f7453697a650000080118766f74657273cd03010c75333200011c74617267657473cd03010c7533320000350504184f7074696f6e040454012d050108104e6f6e6500000010536f6d6504002d05000001000039050000023d05003d0500000408004105004105084473705f6e706f735f656c656374696f6e731c537570706f727404244163636f756e744964010000080114746f74616c18013c457874656e64656442616c616e6365000118766f74657273450501845665633c284163636f756e7449642c20457874656e64656442616c616e6365293e000045050000023501004905103870616c6c65745f7374616b696e671870616c6c65741870616c6c65741043616c6c04045400016810626f6e640c0128636f6e74726f6c6c657200018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500011476616c7565d0013042616c616e63654f663c543e00011470617965654d05017c52657761726444657374696e6174696f6e3c543a3a4163636f756e7449643e000044610154616b6520746865206f726967696e206163636f756e74206173206120737461736820616e64206c6f636b207570206076616c756560206f66206974732062616c616e63652e2060636f6e74726f6c6c6572602077696c6c80626520746865206163636f756e74207468617420636f6e74726f6c732069742e002d016076616c756560206d757374206265206d6f7265207468616e2074686520606d696e696d756d5f62616c616e636560207370656369666965642062792060543a3a43757272656e6379602e002101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20627920746865207374617368206163636f756e742e003c456d6974732060426f6e646564602e2823203c7765696768743ed02d20496e646570656e64656e74206f662074686520617267756d656e74732e204d6f64657261746520636f6d706c65786974792e1c2d204f2831292e642d20546872656520657874726120444220656e74726965732e004d014e4f54453a2054776f206f66207468652073746f726167652077726974657320286053656c663a3a626f6e646564602c206053656c663a3a7061796565602920617265205f6e657665725f20636c65616e65643d01756e6c6573732074686520606f726967696e602066616c6c732062656c6f77205f6578697374656e7469616c206465706f7369745f20616e6420676574732072656d6f76656420617320647573742e482d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2c23203c2f7765696768743e28626f6e645f65787472610401386d61785f6164646974696f6e616cd0013042616c616e63654f663c543e00013c610141646420736f6d6520657874726120616d6f756e742074686174206861766520617070656172656420696e207468652073746173682060667265655f62616c616e63656020696e746f207468652062616c616e636520757030666f72207374616b696e672e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c65722e004d01557365207468697320696620746865726520617265206164646974696f6e616c2066756e647320696e20796f7572207374617368206163636f756e74207468617420796f75207769736820746f20626f6e642e5501556e6c696b65205b60626f6e64605d2853656c663a3a626f6e6429206f72205b60756e626f6e64605d2853656c663a3a756e626f6e642920746869732066756e6374696f6e20646f6573206e6f7420696d706f7365bc616e79206c696d69746174696f6e206f6e2074686520616d6f756e7420746861742063616e2062652061646465642e003c456d6974732060426f6e646564602e002823203c7765696768743ee42d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e1c2d204f2831292e2c23203c2f7765696768743e18756e626f6e6404011476616c7565d0013042616c616e63654f663c543e00024c51015363686564756c65206120706f7274696f6e206f662074686520737461736820746f20626520756e6c6f636b656420726561647920666f72207472616e73666572206f75742061667465722074686520626f6e64fc706572696f6420656e64732e2049662074686973206c656176657320616e20616d6f756e74206163746976656c7920626f6e646564206c657373207468616e2101543a3a43757272656e63793a3a6d696e696d756d5f62616c616e636528292c207468656e20697420697320696e6372656173656420746f207468652066756c6c20616d6f756e742e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0045014f6e63652074686520756e6c6f636b20706572696f6420697320646f6e652c20796f752063616e2063616c6c206077697468647261775f756e626f6e6465646020746f2061637475616c6c79206d6f7665bc7468652066756e6473206f7574206f66206d616e6167656d656e7420726561647920666f72207472616e736665722e0031014e6f206d6f7265207468616e2061206c696d69746564206e756d626572206f6620756e6c6f636b696e67206368756e6b73202873656520604d6178556e6c6f636b696e674368756e6b736029390163616e20636f2d657869737473206174207468652073616d652074696d652e20496e207468617420636173652c205b6043616c6c3a3a77697468647261775f756e626f6e646564605d206e656564f8746f2062652063616c6c656420666972737420746f2072656d6f766520736f6d65206f6620746865206368756e6b732028696620706f737369626c65292e00390149662061207573657220656e636f756e74657273207468652060496e73756666696369656e74426f6e6460206572726f72207768656e2063616c6c696e6720746869732065787472696e7369632c1901746865792073686f756c642063616c6c20606368696c6c6020666972737420696e206f7264657220746f206672656520757020746865697220626f6e6465642066756e64732e0044456d6974732060556e626f6e646564602e009453656520616c736f205b6043616c6c3a3a77697468647261775f756e626f6e646564605d2e4477697468647261775f756e626f6e6465640401486e756d5f736c617368696e675f7370616e7310010c75333200033c290152656d6f766520616e7920756e6c6f636b6564206368756e6b732066726f6d207468652060756e6c6f636b696e67602071756575652066726f6d206f7572206d616e6167656d656e742e0031015468697320657373656e7469616c6c7920667265657320757020746861742062616c616e636520746f206265207573656420627920746865207374617368206163636f756e7420746f20646f4877686174657665722069742077616e74732e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722e0048456d697473206057697468647261776e602e006853656520616c736f205b6043616c6c3a3a756e626f6e64605d2e002823203c7765696768743e0501436f6d706c6578697479204f285329207768657265205320697320746865206e756d626572206f6620736c617368696e67207370616e7320746f2072656d6f766509014e4f54453a2057656967687420616e6e6f746174696f6e20697320746865206b696c6c207363656e6172696f2c20776520726566756e64206f74686572776973652e2c23203c2f7765696768743e2076616c6964617465040114707265667394013856616c696461746f725072656673000414e44465636c617265207468652064657369726520746f2076616c696461746520666f7220746865206f726967696e20636f6e74726f6c6c65722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e206e6f6d696e61746504011c74617267657473510501a05665633c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653e00052c0d014465636c617265207468652064657369726520746f206e6f6d696e6174652060746172676574736020666f7220746865206f726967696e20636f6e74726f6c6c65722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e002823203c7765696768743e2d012d20546865207472616e73616374696f6e277320636f6d706c65786974792069732070726f706f7274696f6e616c20746f207468652073697a65206f662060746172676574736020284e29050177686963682069732063617070656420617420436f6d7061637441737369676e6d656e74733a3a4c494d49542028543a3a4d61784e6f6d696e6174696f6e73292ed42d20426f74682074686520726561647320616e642077726974657320666f6c6c6f7720612073696d696c6172207061747465726e2e2c23203c2f7765696768743e146368696c6c00062cc44465636c617265206e6f2064657369726520746f206569746865722076616c6964617465206f72206e6f6d696e6174652e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e002823203c7765696768743ee42d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e502d20436f6e7461696e73206f6e6520726561642ec42d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e2c23203c2f7765696768743e247365745f706179656504011470617965654d05017c52657761726444657374696e6174696f6e3c543a3a4163636f756e7449643e000740b42852652d2973657420746865207061796d656e742074617267657420666f72206120636f6e74726f6c6c65722e005101456666656374732077696c6c2062652066656c7420696e7374616e746c792028617320736f6f6e20617320746869732066756e6374696f6e20697320636f6d706c65746564207375636365737366756c6c79292e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e002823203c7765696768743ee42d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e942d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec42d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e242d2d2d2d2d2d2d2d2d382d205765696768743a204f283129302d204442205765696768743a48202020202d20526561643a204c656467657248202020202d2057726974653a2050617965652c23203c2f7765696768743e387365745f636f6e74726f6c6c6572040128636f6e74726f6c6c657200018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650008408c2852652d297365742074686520636f6e74726f6c6c6572206f6620612073746173682e005101456666656374732077696c6c2062652066656c7420696e7374616e746c792028617320736f6f6e20617320746869732066756e6374696f6e20697320636f6d706c65746564207375636365737366756c6c79292e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c65722e002823203c7765696768743ee42d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e942d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec42d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e282d2d2d2d2d2d2d2d2d2d305765696768743a204f283129284442205765696768743af02d20526561643a20426f6e6465642c204c6564676572204e657720436f6e74726f6c6c65722c204c6564676572204f6c6420436f6e74726f6c6c6572f42d2057726974653a20426f6e6465642c204c6564676572204e657720436f6e74726f6c6c65722c204c6564676572204f6c6420436f6e74726f6c6c65722c23203c2f7765696768743e4c7365745f76616c696461746f725f636f756e7404010c6e6577cd03010c75333200092090536574732074686520696465616c206e756d626572206f662076616c696461746f72732e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002823203c7765696768743e305765696768743a204f2831295857726974653a2056616c696461746f7220436f756e742c23203c2f7765696768743e60696e6372656173655f76616c696461746f725f636f756e740401286164646974696f6e616ccd03010c753332000a1ca8496e6372656d656e74732074686520696465616c206e756d626572206f662076616c696461746f72732e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002823203c7765696768743e9853616d65206173205b6053656c663a3a7365745f76616c696461746f725f636f756e74605d2e2c23203c2f7765696768743e547363616c655f76616c696461746f725f636f756e74040118666163746f725505011c50657263656e74000b1cd05363616c652075702074686520696465616c206e756d626572206f662076616c696461746f7273206279206120666163746f722e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002823203c7765696768743e9853616d65206173205b6053656c663a3a7365745f76616c696461746f725f636f756e74605d2e2c23203c2f7765696768743e34666f7263655f6e6f5f65726173000c3cac466f72636520746865726520746f206265206e6f206e6577206572617320696e646566696e6974656c792e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002423205761726e696e6700190154686520656c656374696f6e2070726f6365737320737461727473206d756c7469706c6520626c6f636b73206265666f72652074686520656e64206f6620746865206572612e3901546875732074686520656c656374696f6e2070726f63657373206d6179206265206f6e676f696e67207768656e20746869732069732063616c6c65642e20496e2074686973206361736520746865dc656c656374696f6e2077696c6c20636f6e74696e756520756e74696c20746865206e65787420657261206973207472696767657265642e002823203c7765696768743e3c2d204e6f20617267756d656e74732e382d205765696768743a204f283129442d2057726974653a20466f7263654572612c23203c2f7765696768743e34666f7263655f6e65775f657261000d404901466f72636520746865726520746f2062652061206e6577206572612061742074686520656e64206f6620746865206e6578742073657373696f6e2e20416674657220746869732c2069742077696c6c2062659c726573657420746f206e6f726d616c20286e6f6e2d666f7263656429206265686176696f75722e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002423205761726e696e6700190154686520656c656374696f6e2070726f6365737320737461727473206d756c7469706c6520626c6f636b73206265666f72652074686520656e64206f6620746865206572612e4901496620746869732069732063616c6c6564206a757374206265666f72652061206e657720657261206973207472696767657265642c2074686520656c656374696f6e2070726f63657373206d6179206e6f748c6861766520656e6f75676820626c6f636b7320746f20676574206120726573756c742e002823203c7765696768743e3c2d204e6f20617267756d656e74732e382d205765696768743a204f283129402d20577269746520466f7263654572612c23203c2f7765696768743e447365745f696e76756c6e657261626c6573040134696e76756c6e657261626c6573510501445665633c543a3a4163636f756e7449643e000e0cc8536574207468652076616c696461746f72732077686f2063616e6e6f7420626520736c61736865642028696620616e79292e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e34666f7263655f756e7374616b650801147374617368000130543a3a4163636f756e7449640001486e756d5f736c617368696e675f7370616e7310010c753332000f0c0901466f72636520612063757272656e74207374616b657220746f206265636f6d6520636f6d706c6574656c7920756e7374616b65642c20696d6d6564696174656c792e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e50666f7263655f6e65775f6572615f616c776179730010240101466f72636520746865726520746f2062652061206e6577206572612061742074686520656e64206f662073657373696f6e7320696e646566696e6974656c792e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002423205761726e696e6700190154686520656c656374696f6e2070726f6365737320737461727473206d756c7469706c6520626c6f636b73206265666f72652074686520656e64206f6620746865206572612e4901496620746869732069732063616c6c6564206a757374206265666f72652061206e657720657261206973207472696767657265642c2074686520656c656374696f6e2070726f63657373206d6179206e6f748c6861766520656e6f75676820626c6f636b7320746f20676574206120726573756c742e5463616e63656c5f64656665727265645f736c61736808010c657261100120457261496e646578000134736c6173685f696e6469636573590501205665633c7533323e0011149443616e63656c20656e6163746d656e74206f66206120646566657272656420736c6173682e00b043616e2062652063616c6c6564206279207468652060543a3a536c61736843616e63656c4f726967696e602e000101506172616d65746572733a2065726120616e6420696e6469636573206f662074686520736c617368657320666f7220746861742065726120746f206b696c6c2e387061796f75745f7374616b65727308013c76616c696461746f725f7374617368000130543a3a4163636f756e74496400010c657261100120457261496e6465780012540d01506179206f757420616c6c20746865207374616b65727320626568696e6420612073696e676c652076616c696461746f7220666f7220612073696e676c65206572612e0049012d206076616c696461746f725f73746173686020697320746865207374617368206163636f756e74206f66207468652076616c696461746f722e205468656972206e6f6d696e61746f72732c20757020746f2501202060543a3a4d61784e6f6d696e61746f72526577617264656450657256616c696461746f72602c2077696c6c20616c736f207265636569766520746865697220726577617264732e31012d206065726160206d617920626520616e7920657261206265747765656e20605b63757272656e745f657261202d20686973746f72795f64657074683b2063757272656e745f6572615d602e005501546865206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e20416e79206163636f756e742063616e2063616c6c20746869732066756e6374696f6e2c206576656e206966746974206973206e6f74206f6e65206f6620746865207374616b6572732e002823203c7765696768743efc2d2054696d6520636f6d706c65786974793a206174206d6f7374204f284d61784e6f6d696e61746f72526577617264656450657256616c696461746f72292ec02d20436f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e64207772697465732e2c2d2d2d2d2d2d2d2d2d2d2d19014e20697320746865204e756d626572206f66207061796f75747320666f72207468652076616c696461746f722028696e636c7564696e67207468652076616c696461746f72291c5765696768743a842d205265776172642044657374696e6174696f6e205374616b65643a204f284e29c02d205265776172642044657374696e6174696f6e20436f6e74726f6c6c657220284372656174696e67293a204f284e29004d0120204e4f54453a20776569676874732061726520617373756d696e672074686174207061796f75747320617265206d61646520746f20616c697665207374617368206163636f756e7420285374616b6564292e55012020506179696e67206576656e2061206465616420636f6e74726f6c6c65722069732063686561706572207765696768742d776973652e20576520646f6e277420646f20616e7920726566756e647320686572652e2c23203c2f7765696768743e187265626f6e6404011476616c7565d0013042616c616e63654f663c543e001324dc5265626f6e64206120706f7274696f6e206f6620746865207374617368207363686564756c656420746f20626520756e6c6f636b65642e00d4546865206469737061746368206f726967696e206d757374206265207369676e65642062792074686520636f6e74726f6c6c65722e002823203c7765696768743ed02d2054696d6520636f6d706c65786974793a204f284c292c207768657265204c20697320756e6c6f636b696e67206368756e6b73882d20426f756e64656420627920604d6178556e6c6f636b696e674368756e6b73602ef02d2053746f72616765206368616e6765733a2043616e277420696e6372656173652073746f726167652c206f6e6c792064656372656173652069742e2c23203c2f7765696768743e447365745f686973746f72795f64657074680801446e65775f686973746f72795f6465707468cd030120457261496e6465780001446572615f6974656d735f64656c65746564cd03010c7533320014582d015365742060486973746f72794465707468602076616c75652e20546869732066756e6374696f6e2077696c6c2064656c65746520616e7920686973746f727920696e666f726d6174696f6e7c7768656e2060486973746f727944657074686020697320726564756365642e002c506172616d65746572733a0d012d20606e65775f686973746f72795f6465707468603a20546865206e657720686973746f727920646570746820796f7520776f756c64206c696b6520746f207365742e59012d20606572615f6974656d735f64656c65746564603a20546865206e756d626572206f66206974656d7320746861742077696c6c2062652064656c6574656420627920746869732064697370617463682e20546869735d01202073686f756c64207265706f727420616c6c207468652073746f72616765206974656d7320746861742077696c6c2062652064656c6574656420627920636c656172696e67206f6c642065726120686973746f72792e590120204e656564656420746f207265706f727420616e2061636375726174652077656967687420666f72207468652064697370617463682e20547275737465642062792060526f6f746020746f207265706f727420616e4820206163637572617465206e756d6265722e00504f726967696e206d75737420626520726f6f742e002823203c7765696768743edc2d20453a204e756d626572206f6620686973746f7279206465707468732072656d6f7665642c20692e652e203130202d3e2037203d2033382d205765696768743a204f284529302d204442205765696768743a9c202020202d2052656164733a2043757272656e74204572612c20486973746f72792044657074686c202020202d205772697465733a20486973746f72792044657074682d01202020202d20436c6561722050726566697820456163683a20457261205374616b6572732c204572615374616b657273436c69707065642c204572617356616c696461746f7250726566732501202020202d2057726974657320456163683a204572617356616c696461746f725265776172642c2045726173526577617264506f696e74732c2045726173546f74616c5374616b652c6c20202020202045726173537461727453657373696f6e496e6465782c23203c2f7765696768743e28726561705f73746173680801147374617368000130543a3a4163636f756e7449640001486e756d5f736c617368696e675f7370616e7310010c7533320015305d0152656d6f766520616c6c2064617461207374727563747572657320636f6e6365726e696e672061207374616b65722f7374617368206f6e636520697420697320617420612073746174652077686572652069742063616e0501626520636f6e736964657265642060647573746020696e20746865207374616b696e672073797374656d2e2054686520726571756972656d656e7473206172653a000501312e207468652060746f74616c5f62616c616e636560206f66207468652073746173682069732062656c6f77206578697374656e7469616c206465706f7369742e1101322e206f722c2074686520606c65646765722e746f74616c60206f66207468652073746173682069732062656c6f77206578697374656e7469616c206465706f7369742e00550154686520666f726d65722063616e2068617070656e20696e206361736573206c696b65206120736c6173683b20746865206c6174746572207768656e20612066756c6c7920756e626f6e646564206163636f756e7409016973207374696c6c20726563656976696e67207374616b696e67207265776172647320696e206052657761726444657374696e6174696f6e3a3a5374616b6564602e00310149742063616e2062652063616c6c656420627920616e796f6e652c206173206c6f6e672061732060737461736860206d65657473207468652061626f766520726571756972656d656e74732e00dc526566756e647320746865207472616e73616374696f6e20666565732075706f6e207375636365737366756c20657865637574696f6e2e106b69636b04010c77686f510501a05665633c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653e00162ce052656d6f76652074686520676976656e206e6f6d696e6174696f6e732066726f6d207468652063616c6c696e672076616c696461746f722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e004d012d206077686f603a2041206c697374206f66206e6f6d696e61746f72207374617368206163636f756e74732077686f20617265206e6f6d696e6174696e6720746869732076616c696461746f72207768696368c0202073686f756c64206e6f206c6f6e676572206265206e6f6d696e6174696e6720746869732076616c696461746f722e0055014e6f74653a204d616b696e6720746869732063616c6c206f6e6c79206d616b65732073656e736520696620796f7520666972737420736574207468652076616c696461746f7220707265666572656e63657320746f78626c6f636b20616e792066757274686572206e6f6d696e6174696f6e732e4c7365745f7374616b696e675f636f6e666967731801486d696e5f6e6f6d696e61746f725f626f6e645d050158436f6e6669674f703c42616c616e63654f663c543e3e0001486d696e5f76616c696461746f725f626f6e645d050158436f6e6669674f703c42616c616e63654f663c543e3e00014c6d61785f6e6f6d696e61746f725f636f756e7461050134436f6e6669674f703c7533323e00014c6d61785f76616c696461746f725f636f756e7461050134436f6e6669674f703c7533323e00013c6368696c6c5f7468726573686f6c6465050144436f6e6669674f703c50657263656e743e0001386d696e5f636f6d6d697373696f6e69050144436f6e6669674f703c50657262696c6c3e001744ac5570646174652074686520766172696f7573207374616b696e6720636f6e66696775726174696f6e73202e0025012a20606d696e5f6e6f6d696e61746f725f626f6e64603a20546865206d696e696d756d2061637469766520626f6e64206e656564656420746f2062652061206e6f6d696e61746f722e25012a20606d696e5f76616c696461746f725f626f6e64603a20546865206d696e696d756d2061637469766520626f6e64206e656564656420746f20626520612076616c696461746f722e55012a20606d61785f6e6f6d696e61746f725f636f756e74603a20546865206d6178206e756d626572206f662075736572732077686f2063616e2062652061206e6f6d696e61746f72206174206f6e63652e205768656e98202073657420746f20604e6f6e65602c206e6f206c696d697420697320656e666f726365642e55012a20606d61785f76616c696461746f725f636f756e74603a20546865206d6178206e756d626572206f662075736572732077686f2063616e20626520612076616c696461746f72206174206f6e63652e205768656e98202073657420746f20604e6f6e65602c206e6f206c696d697420697320656e666f726365642e59012a20606368696c6c5f7468726573686f6c64603a2054686520726174696f206f6620606d61785f6e6f6d696e61746f725f636f756e7460206f7220606d61785f76616c696461746f725f636f756e74602077686963681901202073686f756c642062652066696c6c656420696e206f7264657220666f722074686520606368696c6c5f6f7468657260207472616e73616374696f6e20746f20776f726b2e61012a20606d696e5f636f6d6d697373696f6e603a20546865206d696e696d756d20616d6f756e74206f6620636f6d6d697373696f6e207468617420656163682076616c696461746f7273206d757374206d61696e7461696e2e550120205468697320697320636865636b6564206f6e6c792075706f6e2063616c6c696e67206076616c6964617465602e204578697374696e672076616c696461746f727320617265206e6f742061666665637465642e00a84f726967696e206d75737420626520526f6f7420746f2063616c6c20746869732066756e6374696f6e2e0035014e4f54453a204578697374696e67206e6f6d696e61746f727320616e642076616c696461746f72732077696c6c206e6f742062652061666665637465642062792074686973207570646174652e1101746f206b69636b2070656f706c6520756e64657220746865206e6577206c696d6974732c20606368696c6c5f6f74686572602073686f756c642062652063616c6c65642e2c6368696c6c5f6f74686572040128636f6e74726f6c6c6572000130543a3a4163636f756e74496400186841014465636c61726520612060636f6e74726f6c6c65726020746f2073746f702070617274696369706174696e672061732065697468657220612076616c696461746f72206f72206e6f6d696e61746f722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e004101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2c206275742063616e2062652063616c6c656420627920616e796f6e652e0059014966207468652063616c6c6572206973207468652073616d652061732074686520636f6e74726f6c6c6572206265696e672074617267657465642c207468656e206e6f206675727468657220636865636b7320617265d8656e666f726365642c20616e6420746869732066756e6374696f6e2062656861766573206a757374206c696b6520606368696c6c602e005d014966207468652063616c6c657220697320646966666572656e74207468616e2074686520636f6e74726f6c6c6572206265696e672074617267657465642c2074686520666f6c6c6f77696e6720636f6e646974696f6e73306d757374206265206d65743a001d012a2060636f6e74726f6c6c657260206d7573742062656c6f6e6720746f2061206e6f6d696e61746f722077686f20686173206265636f6d65206e6f6e2d6465636f6461626c652c000c4f723a003d012a204120604368696c6c5468726573686f6c6460206d7573742062652073657420616e6420636865636b656420776869636820646566696e657320686f7720636c6f736520746f20746865206d6178550120206e6f6d696e61746f7273206f722076616c696461746f7273207765206d757374207265616368206265666f72652075736572732063616e207374617274206368696c6c696e67206f6e652d616e6f746865722e59012a204120604d61784e6f6d696e61746f72436f756e746020616e6420604d617856616c696461746f72436f756e7460206d75737420626520736574207768696368206973207573656420746f2064657465726d696e65902020686f7720636c6f73652077652061726520746f20746865207468726573686f6c642e5d012a204120604d696e4e6f6d696e61746f72426f6e646020616e6420604d696e56616c696461746f72426f6e6460206d7573742062652073657420616e6420636865636b65642c2077686963682064657465726d696e65735101202069662074686973206973206120706572736f6e20746861742073686f756c64206265206368696c6c6564206265636175736520746865792068617665206e6f74206d657420746865207468726573686f6c64402020626f6e642072657175697265642e005501546869732063616e2062652068656c7066756c20696620626f6e6420726571756972656d656e74732061726520757064617465642c20616e64207765206e65656420746f2072656d6f7665206f6c642075736572739877686f20646f206e6f74207361746973667920746865736520726571756972656d656e74732e68666f7263655f6170706c795f6d696e5f636f6d6d697373696f6e04013c76616c696461746f725f7374617368000130543a3a4163636f756e74496400190c4501466f72636520612076616c696461746f7220746f2068617665206174206c6561737420746865206d696e696d756d20636f6d6d697373696f6e2e20546869732077696c6c206e6f74206166666563742061610176616c696461746f722077686f20616c726561647920686173206120636f6d6d697373696f6e2067726561746572207468616e206f7220657175616c20746f20746865206d696e696d756d2e20416e79206163636f756e743863616e2063616c6c20746869732e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e4d05083870616c6c65745f7374616b696e674452657761726444657374696e6174696f6e04244163636f756e74496401000114185374616b656400000014537461736800010028436f6e74726f6c6c65720002001c4163636f756e7404000001244163636f756e744964000300104e6f6e65000400005105000002000055050c3473705f61726974686d65746963287065725f7468696e67731c50657263656e740000040008010875380000590500000210005d05103870616c6c65745f7374616b696e671870616c6c65741870616c6c657420436f6e6669674f700404540118010c104e6f6f700000000c5365740400180104540001001852656d6f7665000200006105103870616c6c65745f7374616b696e671870616c6c65741870616c6c657420436f6e6669674f700404540110010c104e6f6f700000000c5365740400100104540001001852656d6f7665000200006505103870616c6c65745f7374616b696e671870616c6c65741870616c6c657420436f6e6669674f70040454015505010c104e6f6f700000000c536574040055050104540001001852656d6f7665000200006905103870616c6c65745f7374616b696e671870616c6c65741870616c6c657420436f6e6669674f70040454019c010c104e6f6f700000000c53657404009c0104540001001852656d6f7665000200006d050c3870616c6c65745f73657373696f6e1870616c6c65741043616c6c040454000108207365745f6b6579730801106b6579737105011c543a3a4b65797300011470726f6f6628011c5665633c75383e000038e453657473207468652073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c657220746f20606b657973602e1d01416c6c6f777320616e206163636f756e7420746f20736574206974732073657373696f6e206b6579207072696f7220746f206265636f6d696e6720612076616c696461746f722ec05468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e00d0546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265207369676e65642e002823203c7765696768743e11012d20436f6d706c65786974793a20604f283129602e2041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f6698202060543a3a4b6579733a3a6b65795f6964732829602077686963682069732066697865642eec2d20446252656164733a20606f726967696e206163636f756e74602c2060543a3a56616c696461746f7249644f66602c20604e6578744b65797360a02d2044625772697465733a20606f726967696e206163636f756e74602c20604e6578744b65797360802d204462526561647320706572206b65792069643a20604b65794f776e657260842d20446257726974657320706572206b65792069643a20604b65794f776e6572602c23203c2f7765696768743e2870757267655f6b657973000140c852656d6f76657320616e792073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c65722e00c05468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e005501546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265205369676e656420616e6420746865206163636f756e74206d757374206265206569746865722062655d01636f6e7665727469626c6520746f20612076616c696461746f72204944207573696e672074686520636861696e2773207479706963616c2061646472657373696e672073797374656d20287468697320757375616c6c7951016d65616e73206265696e67206120636f6e74726f6c6c6572206163636f756e7429206f72206469726563746c7920636f6e7665727469626c6520696e746f20612076616c696461746f722049442028776869636894757375616c6c79206d65616e73206265696e672061207374617368206163636f756e74292e002823203c7765696768743e61012d20436f6d706c65786974793a20604f2831296020696e206e756d626572206f66206b65792074797065732e2041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468a420206f662060543a3a4b6579733a3a6b65795f6964732829602077686963682069732066697865642eec2d20446252656164733a2060543a3a56616c696461746f7249644f66602c20604e6578744b657973602c20606f726967696e206163636f756e7460a02d2044625772697465733a20604e6578744b657973602c20606f726967696e206163636f756e7460842d20446257726974657320706572206b65792069643a20604b65794f776e6572602c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e710508586a6f7973747265616d5f6e6f64655f72756e74696d652c53657373696f6e4b657973000010011c6772616e647061b00109013c2f2ac2ab2a2f204772616e647061202f2ac2bb2a2f206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c696300011062616265310401fc3c2f2ac2ab2a2f2042616265202f2ac2bb2a2f206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c6963000124696d5f6f6e6c696e65bc010d013c2f2ac2ab2a2f20496d4f6e6c696e65202f2ac2bb2a2f206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c696300014c617574686f726974795f646973636f7665727975050139013c2f2ac2ab2a2f20417574686f72697479446973636f76657279202f2ac2bb2a2f206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a0a5075626c6963000075050c5873705f617574686f726974795f646973636f766572790c617070185075626c696300000400c0013c737232353531393a3a5075626c6963000079050c3870616c6c65745f6772616e6470611870616c6c65741043616c6c04045400010c4c7265706f72745f65717569766f636174696f6e08014865717569766f636174696f6e5f70726f6f667d0501bc426f783c45717569766f636174696f6e50726f6f663c543a3a486173682c20543a3a426c6f636b4e756d6265723e3e00013c6b65795f6f776e65725f70726f6f6639040140543a3a4b65794f776e657250726f6f6600001009015265706f727420766f7465722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667920746865f465717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66f8616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63654477696c6c206265207265706f727465642e707265706f72745f65717569766f636174696f6e5f756e7369676e656408014865717569766f636174696f6e5f70726f6f667d0501bc426f783c45717569766f636174696f6e50726f6f663c543a3a486173682c20543a3a426c6f636b4e756d6265723e3e00013c6b65795f6f776e65725f70726f6f6639040140543a3a4b65794f776e657250726f6f6600012409015265706f727420766f7465722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667920746865f465717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66f8616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63654477696c6c206265207265706f727465642e000d01546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c791501626c6f636b20617574686f72732077696c6c2063616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c2061732073756368150169662074686520626c6f636b20617574686f7220697320646566696e65642069742077696c6c20626520646566696e6564206173207468652065717569766f636174696f6e247265706f727465722e306e6f74655f7374616c6c656408011464656c6179100138543a3a426c6f636b4e756d62657200016c626573745f66696e616c697a65645f626c6f636b5f6e756d626572100138543a3a426c6f636b4e756d62657200021c19014e6f74652074686174207468652063757272656e7420617574686f7269747920736574206f6620746865204752414e4450412066696e616c697479206761646765742068617325017374616c6c65642e20546869732077696c6c2074726967676572206120666f7263656420617574686f7269747920736574206368616e67652061742074686520626567696e6e696e671d016f6620746865206e6578742073657373696f6e2c20746f20626520656e6163746564206064656c61796020626c6f636b7320616674657220746861742e205468652064656c6179110173686f756c64206265206869676820656e6f75676820746f20736166656c7920617373756d6520746861742074686520626c6f636b207369676e616c6c696e67207468652501666f72636564206368616e67652077696c6c206e6f742062652072652d6f726765642028652e672e203130303020626c6f636b73292e20546865204752414e44504120766f74657273250177696c6c20737461727420746865206e657720617574686f7269747920736574207573696e672074686520676976656e2066696e616c697a656420626c6f636b20617320626173652e584f6e6c792063616c6c61626c6520627920726f6f742e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e7d05084c73705f66696e616c6974795f6772616e6470614445717569766f636174696f6e50726f6f660804480124044e0110000801187365745f6964200114536574496400013065717569766f636174696f6e8105014845717569766f636174696f6e3c482c204e3e00008105084c73705f66696e616c6974795f6772616e6470613045717569766f636174696f6e0804480124044e011001081c507265766f7465040085050139016772616e6470613a3a45717569766f636174696f6e3c417574686f7269747949642c206772616e6470613a3a507265766f74653c482c204e3e2c0a417574686f726974795369676e61747572653e00000024507265636f6d6d697404009d050141016772616e6470613a3a45717569766f636174696f6e3c417574686f7269747949642c206772616e6470613a3a507265636f6d6d69743c482c204e3e2c0a417574686f726974795369676e61747572653e000100008505084066696e616c6974795f6772616e6470613045717569766f636174696f6e0c08496401b004560189050453018d0500100130726f756e645f6e756d62657220010c7536340001206964656e74697479b00108496400011466697273749905011828562c2053290001187365636f6e649905011828562c20532900008905084066696e616c6974795f6772616e6470611c507265766f74650804480124044e01100008012c7461726765745f68617368240104480001347461726765745f6e756d6265721001044e00008d050c4c73705f66696e616c6974795f6772616e6470610c617070245369676e61747572650000040091050148656432353531393a3a5369676e6174757265000091050c1c73705f636f72651c65643235353139245369676e617475726500000400950501205b75383b2036345d0000950500000340000000080099050000040889058d05009d05084066696e616c6974795f6772616e6470613045717569766f636174696f6e0c08496401b0045601a1050453018d0500100130726f756e645f6e756d62657220010c7536340001206964656e74697479b0010849640001146669727374a505011828562c2053290001187365636f6e64a505011828562c2053290000a105084066696e616c6974795f6772616e64706124507265636f6d6d69740804480124044e01100008012c7461726765745f68617368240104480001347461726765745f6e756d6265721001044e0000a50500000408a1058d0500a9050c4070616c6c65745f696d5f6f6e6c696e651870616c6c65741043616c6c04045400010424686561727462656174080124686561727462656174ad0501644865617274626561743c543a3a426c6f636b4e756d6265723e0001247369676e6174757265c10501bc3c543a3a417574686f7269747949642061732052756e74696d654170705075626c69633e3a3a5369676e61747572650000242823203c7765696768743e61012d20436f6d706c65786974793a20604f284b202b20452960207768657265204b206973206c656e677468206f6620604b6579736020286865617274626561742e76616c696461746f72735f6c656e2920616e642045206973d820206c656e677468206f6620606865617274626561742e6e6574776f726b5f73746174652e65787465726e616c5f61646472657373608820202d20604f284b29603a206465636f64696e67206f66206c656e67746820604b60ac20202d20604f284529603a206465636f64696e672f656e636f64696e67206f66206c656e6774682060456039012d20446252656164733a2070616c6c65745f73657373696f6e206056616c696461746f7273602c2070616c6c65745f73657373696f6e206043757272656e74496e646578602c20604b657973602c5820206052656365697665644865617274626561747360802d2044625772697465733a2060526563656976656448656172746265617473602c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ead05084070616c6c65745f696d5f6f6e6c696e6524486561727462656174042c426c6f636b4e756d626572011000140130626c6f636b5f6e756d62657210012c426c6f636b4e756d6265720001346e6574776f726b5f7374617465b10501484f70617175654e6574776f726b537461746500013473657373696f6e5f696e64657810013053657373696f6e496e64657800013c617574686f726974795f696e64657810012441757468496e64657800013876616c696461746f72735f6c656e10010c7533320000b1050c1c73705f636f7265206f6666636861696e484f70617175654e6574776f726b5374617465000008011c706565725f6964b50501304f706171756550656572496400014865787465726e616c5f616464726573736573b90501505665633c4f70617175654d756c7469616464723e0000b505081c73705f636f7265304f70617175655065657249640000040028011c5665633c75383e0000b905000002bd0500bd050c1c73705f636f7265206f6666636861696e3c4f70617175654d756c7469616464720000040028011c5665633c75383e0000c105104070616c6c65745f696d5f6f6e6c696e651c737232353531392c6170705f73723235353139245369676e617475726500000400c5050148737232353531393a3a5369676e61747572650000c5050c1c73705f636f72651c73723235353139245369676e617475726500000400950501205b75383b2036345d0000c9050c4070616c6c65745f626167735f6c6973741870616c6c65741043616c6c0804540004490001081472656261670401286469736c6f6361746564000130543a3a4163636f756e74496400002859014465636c617265207468617420736f6d6520606469736c6f636174656460206163636f756e74206861732c207468726f7567682072657761726473206f722070656e616c746965732c2073756666696369656e746c7951016368616e676564206974732073636f726520746861742069742073686f756c642070726f7065726c792066616c6c20696e746f206120646966666572656e7420626167207468616e206974732063757272656e74106f6e652e001d01416e796f6e652063616e2063616c6c20746869732066756e6374696f6e2061626f757420616e7920706f74656e7469616c6c79206469736c6f6361746564206163636f756e742e00490157696c6c20616c7761797320757064617465207468652073746f7265642073636f7265206f6620606469736c6f63617465646020746f2074686520636f72726563742073636f72652c206261736564206f6e406053636f726550726f7669646572602e00d4496620606469736c6f63617465646020646f6573206e6f74206578697374732c2069742072657475726e7320616e206572726f722e3c7075745f696e5f66726f6e745f6f6604011c6c696768746572000130543a3a4163636f756e744964000120d04d6f7665207468652063616c6c65722773204964206469726563746c7920696e2066726f6e74206f6620606c696768746572602e005901546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642063616e206f6e6c792062652063616c6c656420627920746865204964206f66a0746865206163636f756e7420676f696e6720696e2066726f6e74206f6620606c696768746572602e00344f6e6c7920776f726b73206966942d20626f7468206e6f646573206172652077697468696e207468652073616d65206261672cd02d20616e6420606f726967696e602068617320612067726561746572206053636f726560207468616e20606c696768746572602e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ecd050c3870616c6c65745f76657374696e671870616c6c65741043616c6c0404540001141076657374000034b8556e6c6f636b20616e79207665737465642066756e6473206f66207468652073656e646572206163636f756e742e005d01546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652066756e6473207374696c6c646c6f636b656420756e64657220746869732070616c6c65742e00d0456d69747320656974686572206056657374696e67436f6d706c6574656460206f72206056657374696e6755706461746564602e002823203c7765696768743e242d20604f283129602e742d2044625765696768743a20322052656164732c203220577269746573f8202020202d2052656164733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c205b53656e646572204163636f756e745dfc202020202d205772697465733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c205b53656e646572204163636f756e745d2c23203c2f7765696768743e28766573745f6f7468657204011874617267657400018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500013cb8556e6c6f636b20616e79207665737465642066756e6473206f662061206074617267657460206163636f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0051012d2060746172676574603a20546865206163636f756e742077686f7365207665737465642066756e64732073686f756c6420626520756e6c6f636b65642e204d75737420686176652066756e6473207374696c6c646c6f636b656420756e64657220746869732070616c6c65742e00d0456d69747320656974686572206056657374696e67436f6d706c6574656460206f72206056657374696e6755706461746564602e002823203c7765696768743e242d20604f283129602e742d2044625765696768743a20332052656164732c203320577269746573f0202020202d2052656164733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e74f4202020202d205772697465733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c23203c2f7765696768743e3c7665737465645f7472616e7366657208011874617267657400018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001207363686564756c65d10501a456657374696e67496e666f3c42616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e00024464437265617465206120766573746564207472616e736665722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00cc2d2060746172676574603a20546865206163636f756e7420726563656976696e6720746865207665737465642066756e64732ef02d20607363686564756c65603a205468652076657374696e67207363686564756c6520617474616368656420746f20746865207472616e736665722e005c456d697473206056657374696e6743726561746564602e00fc4e4f54453a20546869732077696c6c20756e6c6f636b20616c6c207363686564756c6573207468726f756768207468652063757272656e7420626c6f636b2e002823203c7765696768743e242d20604f283129602e742d2044625765696768743a20332052656164732c2033205772697465733901202020202d2052656164733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c205b53656e646572204163636f756e745d3d01202020202d205772697465733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c205b53656e646572204163636f756e745d2c23203c2f7765696768743e54666f7263655f7665737465645f7472616e736665720c0118736f7572636500018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500011874617267657400018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001207363686564756c65d10501a456657374696e67496e666f3c42616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e00034860466f726365206120766573746564207472616e736665722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e00e82d2060736f75726365603a20546865206163636f756e742077686f73652066756e64732073686f756c64206265207472616e736665727265642e11012d2060746172676574603a20546865206163636f756e7420746861742073686f756c64206265207472616e7366657272656420746865207665737465642066756e64732ef02d20607363686564756c65603a205468652076657374696e67207363686564756c6520617474616368656420746f20746865207472616e736665722e005c456d697473206056657374696e6743726561746564602e00fc4e4f54453a20546869732077696c6c20756e6c6f636b20616c6c207363686564756c6573207468726f756768207468652063757272656e7420626c6f636b2e002823203c7765696768743e242d20604f283129602e742d2044625765696768743a20342052656164732c2034205772697465733101202020202d2052656164733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c20536f75726365204163636f756e743501202020202d205772697465733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c20536f75726365204163636f756e742c23203c2f7765696768743e3c6d657267655f7363686564756c657308013c7363686564756c65315f696e64657810010c75333200013c7363686564756c65325f696e64657810010c7533320004545d014d657267652074776f2076657374696e67207363686564756c657320746f6765746865722c206372656174696e672061206e65772076657374696e67207363686564756c65207468617420756e6c6f636b73206f7665725501746865206869676865737420706f737369626c6520737461727420616e6420656e6420626c6f636b732e20496620626f7468207363686564756c6573206861766520616c7265616479207374617274656420746865590163757272656e7420626c6f636b2077696c6c206265207573656420617320746865207363686564756c652073746172743b207769746820746865206361766561742074686174206966206f6e65207363686564756c655d0169732066696e6973686564206279207468652063757272656e7420626c6f636b2c20746865206f746865722077696c6c206265207472656174656420617320746865206e6577206d6572676564207363686564756c652c2c756e6d6f6469666965642e00f84e4f54453a20496620607363686564756c65315f696e646578203d3d207363686564756c65325f696e6465786020746869732069732061206e6f2d6f702e41014e4f54453a20546869732077696c6c20756e6c6f636b20616c6c207363686564756c6573207468726f756768207468652063757272656e7420626c6f636b207072696f7220746f206d657267696e672e61014e4f54453a20496620626f7468207363686564756c6573206861766520656e646564206279207468652063757272656e7420626c6f636b2c206e6f206e6577207363686564756c652077696c6c206265206372656174656464616e6420626f74682077696c6c2062652072656d6f7665642e006c4d6572676564207363686564756c6520617474726962757465733a35012d20607374617274696e675f626c6f636b603a20604d4158287363686564756c65312e7374617274696e675f626c6f636b2c207363686564756c6564322e7374617274696e675f626c6f636b2c48202063757272656e745f626c6f636b29602e21012d2060656e64696e675f626c6f636b603a20604d4158287363686564756c65312e656e64696e675f626c6f636b2c207363686564756c65322e656e64696e675f626c6f636b29602e59012d20606c6f636b6564603a20607363686564756c65312e6c6f636b65645f61742863757272656e745f626c6f636b29202b207363686564756c65322e6c6f636b65645f61742863757272656e745f626c6f636b29602e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00e82d20607363686564756c65315f696e646578603a20696e646578206f6620746865206669727374207363686564756c6520746f206d657267652eec2d20607363686564756c65325f696e646578603a20696e646578206f6620746865207365636f6e64207363686564756c6520746f206d657267652e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ed1050c3870616c6c65745f76657374696e673076657374696e675f696e666f2c56657374696e67496e666f081c42616c616e636501182c426c6f636b4e756d6265720110000c01186c6f636b656418011c42616c616e63650001247065725f626c6f636b18011c42616c616e63650001387374617274696e675f626c6f636b10012c426c6f636b4e756d6265720000d5050c3c70616c6c65745f6d756c74697369671870616c6c65741043616c6c0404540001105061735f6d756c74695f7468726573686f6c645f310801446f746865725f7369676e61746f72696573510501445665633c543a3a4163636f756e7449643e00011063616c6c1d040160426f783c3c5420617320436f6e6669673e3a3a43616c6c3e0000405101496d6d6564696174656c792064697370617463682061206d756c74692d7369676e61747572652063616c6c207573696e6720612073696e676c6520617070726f76616c2066726f6d207468652063616c6c65722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003d012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f206172652070617274206f662074686501016d756c74692d7369676e61747572652c2062757420646f206e6f7420706172746963697061746520696e2074686520617070726f76616c2070726f636573732e882d206063616c6c603a205468652063616c6c20746f2062652065786563757465642e00b8526573756c74206973206571756976616c656e7420746f20746865206469737061746368656420726573756c742e002823203c7765696768743e19014f285a202b204329207768657265205a20697320746865206c656e677468206f66207468652063616c6c20616e6420432069747320657865637574696f6e207765696768742e7c2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d442d204442205765696768743a204e6f6e65482d20506c75732043616c6c205765696768742c23203c2f7765696768743e2061735f6d756c74691801247468726573686f6c640d04010c7531360001446f746865725f7369676e61746f72696573510501445665633c543a3a4163636f756e7449643e00013c6d617962655f74696d65706f696e74d90501844f7074696f6e3c54696d65706f696e743c543a3a426c6f636b4e756d6265723e3e00011063616c6cdd0501344f706171756543616c6c3c543e00012873746f72655f63616c6c880110626f6f6c0001286d61785f7765696768742001185765696768740001b45501526567697374657220617070726f76616c20666f72206120646973706174636820746f206265206d6164652066726f6d20612064657465726d696e697374696320636f6d706f73697465206163636f756e74206966f8617070726f766564206279206120746f74616c206f6620607468726573686f6c64202d203160206f6620606f746865725f7369676e61746f72696573602e00b049662074686572652061726520656e6f7567682c207468656e206469737061746368207468652063616c6c2e002d015061796d656e743a20604465706f73697442617365602077696c6c20626520726573657276656420696620746869732069732074686520666972737420617070726f76616c2c20706c75733d01607468726573686f6c64602074696d657320604465706f736974466163746f72602e2049742069732072657475726e6564206f6e636520746869732064697370617463682068617070656e73206f723469732063616e63656c6c65642e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0055012d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e41012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f766520746869736c64697370617463682e204d6179206e6f7420626520656d7074792e59012d20606d617962655f74696d65706f696e74603a20496620746869732069732074686520666972737420617070726f76616c2c207468656e2074686973206d75737420626520604e6f6e65602e20496620697420697351016e6f742074686520666972737420617070726f76616c2c207468656e206974206d7573742062652060536f6d65602c2077697468207468652074696d65706f696e742028626c6f636b206e756d62657220616e64d47472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c207472616e73616374696f6e2e882d206063616c6c603a205468652063616c6c20746f2062652065786563757465642e001d014e4f54453a20556e6c6573732074686973206973207468652066696e616c20617070726f76616c2c20796f752077696c6c2067656e6572616c6c792077616e7420746f20757365190160617070726f76655f61735f6d756c74696020696e73746561642c2073696e6365206974206f6e6c7920726571756972657320612068617368206f66207468652063616c6c2e005901526573756c74206973206571756976616c656e7420746f20746865206469737061746368656420726573756c7420696620607468726573686f6c64602069732065786163746c79206031602e204f746865727769736555016f6e20737563636573732c20726573756c7420697320604f6b6020616e642074686520726573756c742066726f6d2074686520696e746572696f722063616c6c2c206966206974207761732065786563757465642cdc6d617920626520666f756e6420696e20746865206465706f736974656420604d756c7469736967457865637574656460206576656e742e002823203c7765696768743e502d20604f2853202b205a202b2043616c6c29602ecc2d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e3d012d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f66450120207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2e21012d204f6e652063616c6c20656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285a296020776865726520605a602069732074782d6c656e2ebc2d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602ed42d20557020746f206f6e652062696e6172792073656172636820616e6420696e736572742028604f286c6f6753202b20532960292ef82d20492f4f3a2031207265616420604f285329602c20757020746f2031206d757461746520604f285329602e20557020746f206f6e652072656d6f76652e302d204f6e65206576656e742e6c2d2054686520776569676874206f6620746865206063616c6c602e4d012d2053746f726167653a20696e7365727473206f6e65206974656d2c2076616c75652073697a6520626f756e64656420627920604d61785369676e61746f72696573602c20776974682061206465706f7369741901202074616b656e20666f7220697473206c69666574696d65206f6620604465706f73697442617365202b207468726573686f6c64202a204465706f736974466163746f72602e7c2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d302d204442205765696768743a2101202020202d2052656164733a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c2043616c6c7320286966206073746f72655f63616c6c60292501202020202d205772697465733a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c2043616c6c7320286966206073746f72655f63616c6c6029482d20506c75732043616c6c205765696768742c23203c2f7765696768743e40617070726f76655f61735f6d756c74691401247468726573686f6c640d04010c7531360001446f746865725f7369676e61746f72696573510501445665633c543a3a4163636f756e7449643e00013c6d617962655f74696d65706f696e74d90501844f7074696f6e3c54696d65706f696e743c543a3a426c6f636b4e756d6265723e3e00012463616c6c5f686173680401205b75383b2033325d0001286d61785f77656967687420011857656967687400028c5501526567697374657220617070726f76616c20666f72206120646973706174636820746f206265206d6164652066726f6d20612064657465726d696e697374696320636f6d706f73697465206163636f756e74206966f8617070726f766564206279206120746f74616c206f6620607468726573686f6c64202d203160206f6620606f746865725f7369676e61746f72696573602e002d015061796d656e743a20604465706f73697442617365602077696c6c20626520726573657276656420696620746869732069732074686520666972737420617070726f76616c2c20706c75733d01607468726573686f6c64602074696d657320604465706f736974466163746f72602e2049742069732072657475726e6564206f6e636520746869732064697370617463682068617070656e73206f723469732063616e63656c6c65642e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0055012d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e41012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f766520746869736c64697370617463682e204d6179206e6f7420626520656d7074792e59012d20606d617962655f74696d65706f696e74603a20496620746869732069732074686520666972737420617070726f76616c2c207468656e2074686973206d75737420626520604e6f6e65602e20496620697420697351016e6f742074686520666972737420617070726f76616c2c207468656e206974206d7573742062652060536f6d65602c2077697468207468652074696d65706f696e742028626c6f636b206e756d62657220616e64d47472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c207472616e73616374696f6e2ecc2d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f2062652065786563757465642e0035014e4f54453a2049662074686973206973207468652066696e616c20617070726f76616c2c20796f752077696c6c2077616e7420746f20757365206061735f6d756c74696020696e73746561642e002823203c7765696768743e242d20604f285329602ecc2d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e3d012d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f66450120207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2ebc2d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602ed42d20557020746f206f6e652062696e6172792073656172636820616e6420696e736572742028604f286c6f6753202b20532960292ef82d20492f4f3a2031207265616420604f285329602c20757020746f2031206d757461746520604f285329602e20557020746f206f6e652072656d6f76652e302d204f6e65206576656e742e4d012d2053746f726167653a20696e7365727473206f6e65206974656d2c2076616c75652073697a6520626f756e64656420627920604d61785369676e61746f72696573602c20776974682061206465706f7369741901202074616b656e20666f7220697473206c69666574696d65206f6620604465706f73697442617365202b207468726573686f6c64202a204465706f736974466163746f72602e882d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d302d204442205765696768743ab8202020202d20526561643a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745dbc202020202d2057726974653a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c23203c2f7765696768743e3c63616e63656c5f61735f6d756c74691001247468726573686f6c640d04010c7531360001446f746865725f7369676e61746f72696573510501445665633c543a3a4163636f756e7449643e00012474696d65706f696e74f0016454696d65706f696e743c543a3a426c6f636b4e756d6265723e00012463616c6c5f686173680401205b75383b2033325d000368550143616e63656c2061207072652d6578697374696e672c206f6e2d676f696e67206d756c7469736967207472616e73616374696f6e2e20416e79206465706f7369742072657365727665642070726576696f75736c79c4666f722074686973206f7065726174696f6e2077696c6c20626520756e7265736572766564206f6e20737563636573732e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0055012d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e41012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f766520746869736c64697370617463682e204d6179206e6f7420626520656d7074792e5d012d206074696d65706f696e74603a205468652074696d65706f696e742028626c6f636b206e756d62657220616e64207472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c787472616e73616374696f6e20666f7220746869732064697370617463682ecc2d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f2062652065786563757465642e002823203c7765696768743e242d20604f285329602ecc2d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e3d012d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f66450120207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2ebc2d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602e302d204f6e65206576656e742e842d20492f4f3a2031207265616420604f285329602c206f6e652072656d6f76652e702d2053746f726167653a2072656d6f766573206f6e65206974656d2e882d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d302d204442205765696768743a1501202020202d20526561643a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c20526566756e64204163636f756e742c2043616c6c731901202020202d2057726974653a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c20526566756e64204163636f756e742c2043616c6c732c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ed90504184f7074696f6e04045401f00108104e6f6e6500000010536f6d650400f00000010000dd0510346672616d655f737570706f727418747261697473106d69736344577261707065724b6565704f7061717565040454011d04000800cd030000001d040104540000e105083870616c6c65745f636f756e63696c1043616c6c04045400013048616e6e6f756e63655f63616e6469646163791001346d656d626572736869705f696420012c543a3a4d656d62657249640001487374616b696e675f6163636f756e745f6964000130543a3a4163636f756e7449640001447265776172645f6163636f756e745f6964000130543a3a4163636f756e7449640001147374616b6518012842616c616e63653c543e0000244c5375627363726962652063616e646964617465002823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5c72656c656173655f63616e6469646163795f7374616b650401346d656d626572736869705f696420012c543a3a4d656d6265724964000124c452656c656173652063616e646964616379207374616b652074686174206973206e6f206c6f6e676572206e65656465642e002823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e4877697468647261775f63616e6469646163790401346d656d626572736869705f696420012c543a3a4d656d6265724964000224bc57697468647261772063616e64696461637920616e642072656c656173652063616e646964616379207374616b652e002823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e487365745f63616e6469646163795f6e6f74650801346d656d626572736869705f696420012c543a3a4d656d62657249640001106e6f746528011c5665633c75383e00032879015365742073686f7274206465736372697074696f6e20666f7220746865207573657227732063616e6469646163792e2043616e2062652063616c6c656420616e7974696d6520647572696e67207573657227732063616e6469646163792e002823203c7765696768743e002423232077656967687438604f20284e29602077686572653a98604e60206973207468652073697a65206f6620606e6f74656020696e206b696c6f6279746573142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e287365745f62756467657404011c62616c616e636518012842616c616e63653c543e000424605365747320746865206275646765742062616c616e63652e002823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e48706c616e5f6275646765745f726566696c6c04012c6e6578745f726566696c6c100138543a3a426c6f636b4e756d62657200052470506c616e20746865206e6578742062756467657420726566696c6c2e002823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e507365745f6275646765745f696e6372656d656e740401406275646765745f696e6372656d656e7418012842616c616e63653c543e0006247453657473207468652062756467657420726566696c6c20616d6f756e74002823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e507365745f636f756e63696c6f725f726577617264040140636f756e63696c6f725f72657761726418012842616c616e63653c543e0007248c536574732074686520636f756e63696c6f72207265776172642070657220626c6f636b002823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3c66756e64696e675f7265717565737404014066756e64696e675f72657175657374733d0301dc5665633c46756e64696e6752657175657374506172616d65746572733c42616c616e63653c543e2c20543a3a4163636f756e7449643e3e000828b85472616e73666572732066756e64732066726f6d20636f756e63696c2062756467657420746f206163636f756e74002823203c7765696768743e002423232077656967687438604f20284629602077686572653a9c60466020697320746865206c656e677468206f66206066756e64696e675f726571756573747360142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e4c66756e645f636f756e63696c5f6275646765740c01246d656d6265725f696420012c4d656d62657249643c543e000118616d6f756e7418012842616c616e63653c543e000124726174696f6e616c6528011c5665633c75383e0009209046756e642074686520636f756e63696c206275646765742062792061206d656d6265722e203c7765696768743e0024232320576569676874c4604f202831296020446f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e40636f756e63696c6f725f72656d61726b080130636f756e63696c6f725f696420012c543a3a4d656d626572496400010c6d736728011c5665633c75383e000a2480436f756e63696c6f72206d616b657320612072656d61726b206d657373616765002823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e4063616e6469646174655f72656d61726b08013063616e6469646174655f696420012c543a3a4d656d626572496400010c6d736728011c5665633c75383e000b248043616e646964617465206d616b657320612072656d61726b206d657373616765002823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652ee505084470616c6c65745f7265666572656e64756d1043616c6c08045400044900011010766f7465080128636f6d6d69746d656e7424011c543a3a486173680001147374616b6518013042616c616e63654f663c543e00002494436173742061207365616c656420766f746520696e20746865207265666572656e64756d2e002823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c72657665616c5f766f746508011073616c7428011c5665633c75383e000138766f74655f6f7074696f6e5f69642001d03c5420617320636f6d6d6f6e3a3a6d656d626572736869703a3a4d656d6265727368697054797065733e3a3a4d656d626572496400012c9c52657665616c2061207365616c656420766f746520696e20746865207265666572656e64756d2e002823203c7765696768743e002423232057656967687438604f20285729602077686572653a0d012d2060576020697320746865206e756d626572206f662060696e7465726d6564696174655f77696e6e657273602073746f72656420696e207468652063757272656e7468202020206053746167653a3a3c542c20493e3a3a676574282960142d2044423ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e4872656c656173655f766f74655f7374616b650002205c52656c656173652061206c6f636b6564207374616b652e2823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e446f70745f6f75745f6f665f766f74696e67000324cc5065726d616e656e746c79206f7074206f7574206f6620766f74696e672066726f6d206120676976656e206163636f756e742e002823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652ee905084470616c6c65745f6d656d626572736869701043616c6c040454000144386275795f6d656d62657273686970040118706172616d73110101c84275794d656d62657273686970506172616d65746572733c543a3a4163636f756e7449642c20543a3a4d656d62657249643e00002c7c4e6f6e2d6d656d626572732063616e20627579206d656d626572736869702e00203c7765696768743e002423232057656967687448604f202857202b204d29602077686572653a942d20605760206973207468652068616e646c652073697a6520696e206b696c6f62797465739c2d20604d6020697320746865206d657461646174612073697a6520696e206b696c6f6279746573142d2044423a242020202d204f2831292c23203c2f7765696768743e387570646174655f70726f66696c650c01246d656d6265725f696420012c543a3a4d656d626572496400011868616e646c651501013c4f7074696f6e3c5665633c75383e3e0001206d657461646174611501013c4f7074696f6e3c5665633c75383e3e0001300d01557064617465206d656d626572277320616c6c206f7220736f6d65206f66206e616d652c2068616e646c652c2061766174617220616e642061626f757420746578742e7c4e6f20656666656374206966206e6f206368616e676564206669656c64732e00203c7765696768743e002423232057656967687448604f202857202b204d29602077686572653a942d20605760206973207468652068616e646c652073697a6520696e206b696c6f62797465739c2d20604d6020697320746865206d657461646174612073697a6520696e206b696c6f6279746573142d2044423a242020202d204f2831292c23203c2f7765696768743e3c7570646174655f6163636f756e74730c01246d656d6265725f696420012c543a3a4d656d62657249640001406e65775f726f6f745f6163636f756e742d0101504f7074696f6e3c543a3a4163636f756e7449643e0001586e65775f636f6e74726f6c6c65725f6163636f756e742d0101504f7074696f6e3c543a3a4163636f756e7449643e00022c550155706461746573206d656d62657220726f6f74206f7220636f6e74726f6c6c6572206163636f756e74732e204e6f2065666665637420696620626f7468206e6577206163636f756e74732061726520656d7074792e00203c7765696768743e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6c7570646174655f70726f66696c655f766572696669636174696f6e0c0124776f726b65725f6964200128543a3a4163746f7249640001407461726765745f6d656d6265725f696420012c543a3a4d656d626572496400012c69735f7665726966696564880110626f6f6c000324450155706461746573206d656d6265722070726f66696c6520766572696669636174696f6e207374617475732e20526571756972657320776f726b696e672067726f7570206d656d626572206f726967696e2e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e407365745f726566657272616c5f63757404013470657263656e745f76616c75650801087538000424110155706461746573206d656d6265727368697020726566657272616c206375742070657263656e742076616c75652e20526571756972657320726f6f74206f726967696e2e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e407472616e736665725f696e76697465730c0140736f757263655f6d656d6265725f696420012c543a3a4d656d62657249640001407461726765745f6d656d6265725f696420012c543a3a4d656d62657249640001446e756d6265725f6f665f696e766974657310010c753332000524b45472616e736665727320696e76697465732066726f6d206f6e65206d656d62657220746f20616e6f746865722e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e34696e766974655f6d656d626572040118706172616d731d0101d4496e766974654d656d62657273686970506172616d65746572733c543a3a4163636f756e7449642c20543a3a4d656d62657249643e00062c50496e766974652061206e6577206d656d6265722e00203c7765696768743e002423232057656967687448604f202857202b204d29602077686572653a942d20605760206973207468652068616e646c652073697a6520696e206b696c6f62797465739c2d20604d6020697320746865206d657461646174612073697a6520696e206b696c6f6279746573142d2044423a242020202d204f2831292c23203c2f7765696768743e3c676966745f6d656d62657273686970040118706172616d73250101d0476966744d656d62657273686970506172616d65746572733c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e00070c1d01476966742061206d656d62657273686970207573696e67206f776e2066756e64732e2047696674657220646f6573206e6f74206e65656420746f2062652061206d656d6265722e5d0143616e206f7074696e616c6c79206170706c792061206c6f636b206f6e206120706f7274696f6e206f66207468652066756e6473207472616e7366657272656420746f20726f6f7420616e6420636f6e74726f6c6c6572b86163636f756e74732e2047696674657220616c736f207061797320746865206d656d62657273686970206665652e507365745f6d656d626572736869705f70726963650401246e65775f707269636518013042616c616e63654f663c543e000824bc55706461746573206d656d626572736869702070726963652e20526571756972657320726f6f74206f726967696e2e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6c7365745f6c65616465725f696e7669746174696f6e5f71756f7461040140696e7669746174696f6e5f71756f746110010c753332000924d855706461746573206c656164657220696e7669746174696f6e2071756f74612e20526571756972657320726f6f74206f726967696e2e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e787365745f696e697469616c5f696e7669746174696f6e5f62616c616e636504014c6e65775f696e697469616c5f62616c616e636518013042616c616e63654f663c543e000a2439015570646174657320696e697469616c20696e7669746174696f6e2062616c616e636520666f72206120696e7669746564206d656d6265722e20526571756972657320726f6f74206f726967696e2e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e707365745f696e697469616c5f696e7669746174696f6e5f636f756e740401506e65775f696e7669746174696f6e5f636f756e7410010c753332000b2411015570646174657320696e697469616c20696e7669746174696f6e20636f756e7420666f722061206d656d6265722e20526571756972657320726f6f74206f726967696e2e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e746164645f7374616b696e675f6163636f756e745f63616e6469646174650401246d656d6265725f696420012c543a3a4d656d6265724964000c28ac416464207374616b696e67206163636f756e742063616e64696461746520666f722061206d656d6265722eb8546865206d656d62657273686970206d75737420626520636f6e6669726d6564206265666f72652075736167652e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5872656d6f76655f7374616b696e675f6163636f756e740401246d656d6265725f696420012c543a3a4d656d6265724964000d249052656d6f7665207374616b696e67206163636f756e7420666f722061206d656d6265722e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5c636f6e6669726d5f7374616b696e675f6163636f756e740801246d656d6265725f696420012c543a3a4d656d62657249640001487374616b696e675f6163636f756e745f6964000130543a3a4163636f756e744964000e24bc436f6e6669726d207374616b696e67206163636f756e742063616e64696461746520666f722061206d656d6265722e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e346d656d6265725f72656d61726b0c01246d656d6265725f696420012c543a3a4d656d626572496400010c6d736728011c5665633c75383e00011c7061796d656e74310101884f7074696f6e3c28543a3a4163636f756e7449642c20543a3a42616c616e6365293e000f24544d656d626572206d616b657320612072656d61726b00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e346372656174655f6d656d626572040118706172616d73210101904372656174654d656d626572506172616d65746572733c543a3a4163636f756e7449643e00102c804372656174652061206d656d6265722070726f66696c6520617320726f6f742e00203c7765696768743e002423232057656967687448604f202849202b204a29602077686572653a942d20604960206973207468652068616e646c652073697a6520696e206b696c6f62797465739c2d20604a6020697320746865206d657461646174612073697a6520696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652eed05083070616c6c65745f666f72756d1043616c6c0404540001409c7570646174655f63617465676f72795f6d656d626572736869705f6f665f6d6f64657261746f720c01306d6f64657261746f725f69642001384d6f64657261746f7249643c543e00012c63617465676f72795f6964200134543a3a43617465676f727949640001246e65775f76616c7565880110626f6f6c0000240901456e61626c652061206d6f64657261746f722063616e206d6f64657261746520612063617465676f727920616e6420697473207375622063617465676f726965732e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3c6372656174655f63617465676f72790c0148706172656e745f63617465676f72795f6964190101544f7074696f6e3c543a3a43617465676f727949643e0001147469746c6528011c5665633c75383e00012c6465736372697074696f6e28011c5665633c75383e0001304c4164642061206e65772063617465676f72792e00203c7765696768743e002423232057656967687458604f202857202b2056202b205829602077686572653a6c2d20605760206973207468652063617465676f7279206465707468d42d20605660206973207468652073697a65206f66207468652063617465676f7279207469746c6520696e206b696c6f62797465732eec2d20605860206973207468652073697a65206f66207468652063617465676f7279206465736372697074696f6e20696e206b696c6f62797465732e142d2044423a242020202d204f2857292c23203c2f7765696768743e7c7570646174655f63617465676f72795f617263686976616c5f7374617475730c01146163746f723d01014850726976696c656765644163746f723c543e00012c63617465676f72795f6964200134543a3a43617465676f7279496400014c6e65775f617263686976616c5f737461747573880110626f6f6c0002285855706461746520617263686976616c2073746174757300203c7765696768743e002423232057656967687438604f20285729602077686572653a6c2d20605760206973207468652063617465676f7279206465707468142d2044423a242020202d204f2857292c23203c2f7765696768743e547570646174655f63617465676f72795f7469746c650c01146163746f723d01014850726976696c656765644163746f723c543e00012c63617465676f72795f6964200134543a3a43617465676f727949640001147469746c6528011c5665633c75383e00032c545570646174652063617465676f7279207469746c6500203c7765696768743e002423232057656967687448604f202857202b205629602077686572653a6c2d20605760206973207468652063617465676f7279206465707468d42d20605660206973207468652073697a65206f66207468652063617465676f7279207469746c6520696e206b696c6f62797465732e142d2044423a242020202d204f2857292c23203c2f7765696768743e6c7570646174655f63617465676f72795f6465736372697074696f6e0c01146163746f723d01014850726976696c656765644163746f723c543e00012c63617465676f72795f6964200134543a3a43617465676f7279496400012c6465736372697074696f6e28011c5665633c75383e00042c6c5570646174652063617465676f7279206465736372697074696f6e00203c7765696768743e002423232057656967687438604f20285729602077686572653a6c2d20605760206973207468652063617465676f7279206465707468ec2d20605660206973207468652073697a65206f66207468652063617465676f7279206465736372697074696f6e20696e206b696c6f62797465732e142d2044423a242020202d204f2857292c23203c2f7765696768743e3c64656c6574655f63617465676f72790801146163746f723d01014850726976696c656765644163746f723c543e00012c63617465676f72795f6964200134543a3a43617465676f727949640005283c44656c6574652063617465676f727900203c7765696768743e002423232057656967687438604f20285729602077686572653a6c2d20605760206973207468652063617465676f7279206465707468142d2044423a242020202d204f2857292c23203c2f7765696768743e346372656174655f746872656164100134666f72756d5f757365725f6964200138466f72756d5573657249643c543e00012c63617465676f72795f6964200134543a3a43617465676f727949640001206d6574616461746128011c5665633c75383e0001107465787428011c5665633c75383e00063074437265617465206e65772074687265616420696e2063617465676f727900203c7765696768743e002423232057656967687458604f202857202b2056202b205829602077686572653a6c2d20605760206973207468652063617465676f7279206465707468cc2d20605660206973207468652073697a65206f662074686520746872656164207469746c6520696e206b696c6f62797465732ec82d20605860206973207468652073697a65206f662074686520746872656164207465787420696e206b696c6f62797465732e142d2044423a242020202d204f2857292c23203c2f7765696768743e50656469745f7468726561645f6d65746164617461100134666f72756d5f757365725f6964200138466f72756d5573657249643c543e00012c63617465676f72795f6964200134543a3a43617465676f727949640001247468726561645f696420012c543a3a54687265616449640001306e65775f6d6574616461746128011c5665633c75383e00072c504564697420746872656164206d6574616461746100203c7765696768743e002423232057656967687448604f202857202b205629602077686572653a6c2d20605760206973207468652063617465676f7279206465707468d82d20605660206973207468652073697a65206f662074686520746872656164206d6574616461746120696e206b696c6f62797465732e142d2044423a242020202d204f2857292c23203c2f7765696768743e3464656c6574655f746872656164100134666f72756d5f757365725f6964200138466f72756d5573657249643c543e00012c63617465676f72795f6964200134543a3a43617465676f727949640001247468726561645f696420012c543a3a546872656164496400011068696465880110626f6f6c0008283444656c6574652074687265616400203c7765696768743e002423232057656967687438604f20285729602077686572653a6c2d20605760206973207468652063617465676f7279206465707468142d2044423a242020202d204f2857292c23203c2f7765696768743e5c6d6f76655f7468726561645f746f5f63617465676f72791001146163746f723d01014850726976696c656765644163746f723c543e00012c63617465676f72795f6964200134543a3a43617465676f727949640001247468726561645f696420012c543a3a546872656164496400013c6e65775f63617465676f72795f6964200134543a3a43617465676f727949640009287c4d6f76652074687265616420746f20616e6f746865722063617465676f727900203c7765696768743e002423232057656967687438604f20285729602077686572653a6c2d20605760206973207468652063617465676f7279206465707468142d2044423a242020202d204f2857292c23203c2f7765696768743e3c6d6f6465726174655f7468726561641001146163746f723d01014850726976696c656765644163746f723c543e00012c63617465676f72795f6964200134543a3a43617465676f727949640001247468726561645f696420012c543a3a5468726561644964000124726174696f6e616c6528011c5665633c75383e000a303c4d6f6465726174652074687265616400203c7765696768743e002423232057656967687458604f202857202b2056202b205829602077686572653a702d20605760206973207468652063617465676f72792064657074682c902d2060566020697320746865206e756d626572206f662074687265616420706f7374732cbc2d20605860206973207468652073697a65206f662074686520726174696f6e616c6520696e206b696c6f6279746573142d2044423a342020202d204f2857202b2056292c23203c2f7765696768743e206164645f706f7374140134666f72756d5f757365725f6964200138466f72756d5573657249643c543e00012c63617465676f72795f6964200134543a3a43617465676f727949640001247468726561645f696420012c543a3a54687265616449640001107465787428011c5665633c75383e0001206564697461626c65880110626f6f6c000b2c2041646420706f737400203c7765696768743e002423232057656967687448604f202857202b205629602077686572653a702d20605760206973207468652063617465676f72792064657074682ca82d20605660206973207468652073697a65206f6620746865207465787420696e206b696c6f6279746573142d2044423a242020202d204f2857292c23203c2f7765696768743e38656469745f706f73745f74657874140134666f72756d5f757365725f6964200138466f72756d5573657249643c543e00012c63617465676f72795f6964200134543a3a43617465676f727949640001247468726561645f696420012c543a3a546872656164496400011c706f73745f6964200124543a3a506f737449640001206e65775f7465787428011c5665633c75383e000c2c384564697420706f7374207465787400203c7765696768743e002423232057656967687448604f202857202b205629602077686572653a702d20605760206973207468652063617465676f72792064657074682cb82d20605660206973207468652073697a65206f6620746865206e6577207465787420696e206b696c6f6279746573142d2044423a242020202d204f2857292c23203c2f7765696768743e346d6f6465726174655f706f73741401146163746f723d01014850726976696c656765644163746f723c543e00012c63617465676f72795f6964200134543a3a43617465676f727949640001247468726561645f696420012c543a3a546872656164496400011c706f73745f6964200124543a3a506f73744964000124726174696f6e616c6528011c5665633c75383e000d2c344d6f64657261746520706f737400203c7765696768743e002423232057656967687448604f202857202b205629602077686572653a702d20605760206973207468652063617465676f72792064657074682cbc2d20605660206973207468652073697a65206f662074686520726174696f6e616c6520696e206b696c6f6279746573142d2044423a242020202d204f2857292c23203c2f7765696768743e3064656c6574655f706f7374730c0134666f72756d5f757365725f6964200138466f72756d5573657249643c543e000114706f7374734501018442547265654d61703c457874656e646564506f737449643c543e2c20626f6f6c3e000124726174696f6e616c6528011c5665633c75383e000e346444656c65746520706f73742066726f6d2073746f726167652eec596f75206e65656420746f2070726f76696465206120766563746f72206f6620706f73747320746f2064656c65746520696e2074686520666f726db428543a3a43617465676f727949642c20543a3a54687265616449642c20543a3a506f737449642c20626f6f6c292501776865726520746865206c61737420626f6f6c206973207768657468657220796f752077616e7420746f20686964652069742061706172742066726f6d2064656c6574696e67206974002423232057656967687458604f202857202b2056202b205029602077686572653a702d20605760206973207468652063617465676f72792064657074682cbc2d20605660206973207468652073697a65206f662074686520726174696f6e616c6520696e206b696c6f6279746573982d2060506020697320746865206e756d626572206f6620706f73747320746f2064656c657465142d2044423a342020202d204f2857202b2050292c23203c2f7765696768743e507365745f737469636b6965645f746872656164730c01146163746f723d01014850726976696c656765644163746f723c543e00012c63617465676f72795f6964200134543a3a43617465676f72794964000130737469636b6965645f6964735101015442547265655365743c543a3a54687265616449643e000f2c8453657420737469636b696564207468726561647320666f722063617465676f727900203c7765696768743e002423232057656967687448604f202857202b205629602077686572653a702d20605760206973207468652063617465676f72792064657074682c9c2d2060566020697320746865206c656e677468206f662074686520737469636b6965645f696473142d2044423a342020202d204f2857202b2056292c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652ef105084c70616c6c65745f636f6e737469747574696f6e1043616c6c04045400010448616d656e645f636f6e737469747574696f6e040144636f6e737469747574696f6e5f7465787428011c5665633c75383e000018e453657473207468652063757272656e7420636f6e737469747574696f6e20686173682e20526571756972657320726f6f74206f726967696e2e2823203c7765696768743e11012d20436f6d706c65786974793a20604f28432960207768657265204320697320746865206c656e677468206f662074686520636f6e737469747574696f6e20746578742e342d2044622072656164733a20307c2d204462207772697465733a20312028636f6e7374616e742076616c7565292c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652ef505083470616c6c65745f626f756e74791043616c6c04045400013c346372656174655f626f756e7479080118706172616d735d01016c426f756e74794372656174696f6e506172616d65746572733c543e0001206d6574616461746128011c5665633c75383e000028490143726561746573206120626f756e74792e204d657461646174612073746f72656420696e20746865207472616e73616374696f6e206c6f67206275742064697363617264656420616674657220746861742e203c7765696768743e002423232057656967687438604f20285729602077686572653aa42d2060576020697320746865205f6d657461646174612073697a6520696e206b696c6f62797465732eb02d20604d6020697320636c6f73656420636f6e7472616374206d656d626572206c697374206c656e6774682e142d2044423a842020202d204f284d2920284f283129206f6e206f70656e20636f6e7472616374292c23203c2f7765696768743e2c66756e645f626f756e74790c011866756e64657261010160426f756e74794163746f723c4d656d62657249643c543e3e000124626f756e74795f696420012c543a3a426f756e74794964000118616d6f756e7418013042616c616e63654f663c543e0001206050726f766964657320626f756e74792066756e64696e672e2823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e407465726d696e6174655f626f756e7479040124626f756e74795f696420012c543a3a426f756e74794964000224c05465726d696e61746573206120626f756e747920696e2066756e64696e672c2066756e64696e6720657870697265642c7c776f726b7375626d697373696f6e2c206a756467696e6720706572696f642e2823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e347377697463685f6f7261636c650801286e65775f6f7261636c6561010160426f756e74794163746f723c4d656d62657249643c543e3e000124626f756e74795f696420012c543a3a426f756e74794964000324904f7261636c652073776974636865732068696d73656c6620746f2061206e6577206f6e652823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e004077697468647261775f66756e64696e6708011866756e64657261010160426f756e74794163746f723c4d656d62657249643c543e3e000124626f756e74795f696420012c543a3a426f756e74794964000420c4576974686472617720626f756e74792066756e64696e672062792061206d656d626572206f72206120636f756e63696c2e2823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e4c616e6e6f756e63655f776f726b5f656e7472791001246d656d6265725f696420012c4d656d62657249643c543e000124626f756e74795f696420012c543a3a426f756e747949640001487374616b696e675f6163636f756e745f6964000130543a3a4163636f756e744964000140776f726b5f6465736372697074696f6e28011c5665633c75383e000528b0416e6e6f756e636520776f726b20656e74727920666f722061207375636365737366756c20626f756e74792e2823203c7765696768743e002423232077656967687448604f202857202b204d29602077686572653ac02d206057602069732074686520776f726b5f6465736372697074696f6e2073697a6520696e206b696c6f62797465732eb02d20604d6020697320636c6f73656420636f6e7472616374206d656d626572206c697374206c656e6774682e142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c7375626d69745f776f726b1001246d656d6265725f696420012c4d656d62657249643c543e000124626f756e74795f696420012c543a3a426f756e74794964000120656e7472795f6964200128543a3a456e7472794964000124776f726b5f6461746128011c5665633c75383e000624645375626d697420776f726b20666f72206120626f756e74792e2823203c7765696768743e00242323207765696768741c604f20284e2960a42d20604e602069732074686520776f726b5f646174612073697a6520696e206b696c6f62797465732c142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e48656e645f776f726b696e675f706572696f64040124626f756e74795f696420012c543a3a426f756e7479496400072068656e6420626f756e747920776f726b696e6720706572696f642e2823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e587375626d69745f6f7261636c655f6a7564676d656e740c0124626f756e74795f696420012c543a3a426f756e747949640001206a7564676d656e746d0101a04f7261636c654a7564676d656e743c543a3a456e74727949642c2042616c616e63654f663c543e3e000124726174696f6e616c6528011c5665633c75383e00083819015375626d69747320616e206f7261636c65206a7564676d656e7420666f72206120626f756e74792c20736c617368696e672074686520656e74726965732072656a65637465642d01627920616e206172626974726172792070657263656e7461676520616e6420726577617264696e67207468652077696e6e65727320627920616e2061726269747261727920616d6f756e7498286e6f742073757270617373696e672074686520746f74616c2066756e6420616d6f756e74292823203c7765696768743e00242323207765696768744c604f20284a202b204b202b2057202b20522960942d20604a6020697320726174696f6e616c652073697a6520696e206b696c6f62797465732c61012d20604b60206973207468652073756d206f6620616c6c20616374696f6e5f6a757374696669636174696f6e2073697a65732028696e206b696c6f62797465732920696e73696465204f7261636c654a7564676d656e742cac2d20605760206973206e756d626572206f662077696e6e6572206a7564676d656e7420656e74726965732cb42d20605260206973206e756d626572206f662072656a6563746564206a7564676d656e7420656e74726965732c142d2064623a3c2020202d20604f2857202b205229602c23203c2f7765696768743e5877697468647261775f656e7472616e745f7374616b650c01246d656d6265725f696420012c4d656d62657249643c543e000124626f756e74795f696420012c543a3a426f756e74794964000120656e7472795f6964200128543a3a456e7472794964000928a4556e6c6f636b7320746865207374616b652072656c6174656420746f206120776f726b20656e747279a901416674657220746865206f7261636c65206d616b657320746865206a7564676d656e74206f722074686520636f756e63696c207465726d696e617465732074686520626f756e74792062792063616c6c696e67207465726d696e6174655f626f756e7479282e2e2e292c51016561636820776f726b65722077686f736520656e74727920686173206e6f74206265656e206a75646765642c2063616e20756e6c6f636b2074686520746f74616c697479206f66207468656972207374616b652e2823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5877697468647261775f6f7261636c655f726577617264040124626f756e74795f696420012c543a3a426f756e74794964000a2890576974687261777320746865206f7261636c652072657761726420746f206f7261636c651101496620626f756e7479206973207375636365737366756c6c792c204661696c6564206f722043616e63656c6c6564206f7261636c65206d7573742063616c6c2074686973a065787472696e73696320746f20776974686472617720746865206f7261636c65207265776172642c2823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e48636f6e7472696275746f725f72656d61726b0c012c636f6e7472696275746f7261010160426f756e74794163746f723c4d656d62657249643c543e3e000124626f756e74795f696420012c543a3a426f756e7479496400010c6d736728011c5665633c75383e000b2880426f756e747920436f6e7472696275746f72206d61646520612072656d61726b002823203c7765696768743e00242323207765696768741c604f20284e2960782d20604e60206973206d73672073697a6520696e206b696c6f6279746573142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e346f7261636c655f72656d61726b0c01186f7261636c6561010160426f756e74794163746f723c4d656d62657249643c543e3e000124626f756e74795f696420012c543a3a426f756e7479496400010c6d736728011c5665633c75383e000c286c426f756e7479204f7261636c65206d61646520612072656d61726b002823203c7765696768743e00242323207765696768741c604f20284e2960782d20604e60206973206d73672073697a6520696e206b696c6f6279746573142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e38656e7472616e745f72656d61726b100128656e7472616e745f696420012c4d656d62657249643c543e000124626f756e74795f696420012c543a3a426f756e74794964000120656e7472795f6964200128543a3a456e747279496400010c6d736728011c5665633c75383e000d288c426f756e747920456e7472616e7420576f726b6572206d61646520612072656d61726b002823203c7765696768743e00242323207765696768741c604f20284e2960782d20604e60206973206d73672073697a6520696e206b696c6f6279746573142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3863726561746f725f72656d61726b0c011c63726561746f7261010160426f756e74794163746f723c4d656d62657249643c543e3e000124626f756e74795f696420012c543a3a426f756e7479496400010c6d736728011c5665633c75383e000e286c426f756e7479204f7261636c65206d61646520612072656d61726b002823203c7765696768743e00242323207765696768741c604f20284e2960782d20604e60206973206d73672073697a6520696e206b696c6f6279746573142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652ef905083870616c6c65745f7574696c6974791043616c6c0404540001105c657865637574655f7369676e616c5f70726f706f73616c0401187369676e616c28011c5665633c75383e00002871015369676e616c2070726f706f73616c2065787472696e7369632e2053686f756c6420626520757365642061732063616c6c61626c65206f626a65637420746f207061737320746f207468652060656e67696e6560206d6f64756c652e00203c7765696768743e002423232057656967687438604f20285329602077686572653ab02d20605360206973207468652073697a65206f6620746865207369676e616c20696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e80657865637574655f72756e74696d655f757067726164655f70726f706f73616c0401107761736d28011c5665633c75383e0001288c52756e74696d6520757067726164652070726f706f73616c2065787472696e7369632e050153686f756c6420626520757365642061732063616c6c61626c65206f626a65637420746f207061737320746f207468652060656e67696e6560206d6f64756c652e203c7765696768743e002423232057656967687438604f20284329602077686572653a742d2060436020697320746865206c656e677468206f6620607761736d603d01486f77657665722c207765207472656174207468697320617320612066756c6c20626c6f636b20617320606672616d655f73797374656d3a3a4d6f64756c653a3a7365745f636f64656020646f65732c23203c2f7765696768743ebd01235b776569676874203d2028543a3a426c6f636b576569676874733a3a67657428292e676574284469737061746368436c6173733a3a4f7065726174696f6e616c292e626173655f65787472696e7369632c204469737061746368436c6173733a3a4f7065726174696f6e616c295d6c7570646174655f776f726b696e675f67726f75705f6275646765740c0134776f726b696e675f67726f757081010130576f726b696e6747726f7570000118616d6f756e7418013042616c616e63654f663c543e00013062616c616e63655f6b696e648501012c42616c616e63654b696e640002206c55706461746520776f726b696e672067726f757020627564676574203c7765696768743e0024232320576569676874c4604f202831296020446f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e4c6275726e5f6163636f756e745f746f6b656e73040118616d6f756e7418013042616c616e63654f663c543e000320784275726e7320746f6b656e20666f722063616c6c6572206163636f756e74203c7765696768743e0024232320576569676874c4604f202831296020446f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652efd05083870616c6c65745f636f6e74656e741043616c6c04045400010101506372656174655f63757261746f725f67726f757008012469735f616374697665880110626f6f6c0001507065726d697373696f6e735f62795f6c6576656c3d02017c4d6f6465726174696f6e5065726d697373696f6e7342794c6576656c3c543e000028a0416464206e65772063757261746f722067726f757020746f2072756e74696d652073746f7261676500203c7765696768743e002423232057656967687438604f20284129602077686572653af02d2060416020697320746865206e756d626572206f6620656e747269657320696e20607065726d697373696f6e735f62795f6c6576656c60206d6170142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e807570646174655f63757261746f725f67726f75705f7065726d697373696f6e7308014063757261746f725f67726f75705f6964200144543a3a43757261746f7247726f757049640001507065726d697373696f6e735f62795f6c6576656c3d02017c4d6f6465726174696f6e5065726d697373696f6e7342794c6576656c3c543e000128ac557064617465206578697374696e672063757261746f722067726f75702773207065726d697373696f6e7300203c7765696768743e002423232057656967687438604f20284129602077686572653af02d2060416020697320746865206e756d626572206f6620656e747269657320696e20607065726d697373696f6e735f62795f6c6576656c60206d6170142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e607365745f63757261746f725f67726f75705f73746174757308014063757261746f725f67726f75705f6964200144543a3a43757261746f7247726f7570496400012469735f616374697665880110626f6f6c0002241d01536574206069735f616374697665602073746174757320666f722063757261746f722067726f757020756e64657220676976656e206063757261746f725f67726f75705f69646000203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e506164645f63757261746f725f746f5f67726f75700c014063757261746f725f67726f75705f6964200144543a3a43757261746f7247726f7570496400012863757261746f725f6964200130543a3a43757261746f72496400012c7065726d697373696f6e73a501015c4368616e6e656c4167656e745065726d697373696f6e73000324ec4164642063757261746f7220746f2063757261746f722067726f757020756e64657220676976656e206063757261746f725f67726f75705f69646000203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6472656d6f76655f63757261746f725f66726f6d5f67726f757008014063757261746f725f67726f75705f6964200144543a3a43757261746f7247726f7570496400012863757261746f725f6964200130543a3a43757261746f724964000424a452656d6f76652063757261746f722066726f6d206120676976656e2063757261746f722067726f757000203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e386372656174655f6368616e6e656c0801346368616e6e656c5f6f776e6572cd0101b04368616e6e656c4f776e65723c543a3a4d656d62657249642c20543a3a43757261746f7247726f757049643e000118706172616d73fd0101704368616e6e656c4372656174696f6e506172616d65746572733c543e000530203c7765696768743e002423232057656967687478604f202841202b2042202b2043202b2044202b204529602077686572653ae02d2060416020697320746865206e756d626572206f6620656e747269657320696e2060706172616d732e636f6c6c61626f7261746f727360e02d2060426020697320746865206e756d626572206f66206974656d7320696e2060706172616d732e73746f726167655f6275636b65747360f42d2060436020697320746865206e756d626572206f66206974656d7320696e2060706172616d732e646973747269627574696f6e5f6275636b6574736011012d2060446020697320746865206e756d626572206f66206974656d7320696e2060706172616d732e6173736574732e6f626a6563745f6372656174696f6e5f6c69737460c02d20604560206973207468652073697a65206f66202060706172616d732e6d6574616020696e206b696c6f6279746573142d2044423ae02020202d20604f2841202b2042202b2043202b20442960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e387570646174655f6368616e6e656c0c01146163746f728d0101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964200130543a3a4368616e6e656c4964000118706172616d73290201684368616e6e656c557064617465506172616d65746572733c543e000630203c7765696768743e002423232057656967687478604f202841202b2042202b2043202b2044202b204529602077686572653ae02d2060416020697320746865206e756d626572206f6620656e747269657320696e2060706172616d732e636f6c6c61626f7261746f72736071012d2060426020697320746865206e756d626572206f66206974656d7320696e2060706172616d732e6173736574735f746f5f75706c6f61642e6f626a6563745f6372656174696f6e5f6c69737460202869662070726f766964656429e42d2060436020697320746865206e756d626572206f66206974656d7320696e2060706172616d732e6173736574735f746f5f72656d6f766560cc2d20604460206973207468652073697a65206f662060706172616d732e6e65775f6d6574616020696e206b696c6f6279746573ec2d206045602069732060706172616d732e73746f726167655f6275636b6574735f6e756d5f7769746e65737360202869662070726f766964656429142d2044423ae02020202d20604f2841202b2042202b2043202b20452960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e787570646174655f6368616e6e656c5f70726976696c6567655f6c6576656c0801286368616e6e656c5f6964200130543a3a4368616e6e656c496400014c6e65775f70726976696c6567655f6c6576656c080160543a3a4368616e6e656c50726976696c6567654c6576656c000724150145787472696e73696320666f72207570646174696e67206368616e6e656c2070726976696c656765206c6576656c20287265717569726573206c656164206163636573732900203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743ea07365745f6368616e6e656c5f7061757365645f66656174757265735f61735f6d6f64657261746f721001146163746f728d0101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964200130543a3a4368616e6e656c496400014c6e65775f7061757365645f6665617475726573c101018042547265655365743c5061757361626c654368616e6e656c466561747572653e000124726174696f6e616c6528011c5665633c75383e000828c845787472696e73696320666f722070617573696e672f72652d656e61626c696e67206368616e6e656c20666561747572657300203c7765696768743e002423232057656967687438604f20284129602077686572653ab42d20604160206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3864656c6574655f6368616e6e656c1001146163746f728d0101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964200130543a3a4368616e6e656c496400014c6368616e6e656c5f6261675f7769746e657373010601444368616e6e656c4261675769746e6573730001546e756d5f6f626a656374735f746f5f64656c65746520010c753634000928203c7765696768743e002423232057656967687458604f202841202b2042202b204329602077686572653a802d2060416020697320606e756d5f6f626a656374735f746f5f64656c65746560c82d2060426020697320606368616e6e656c5f6261675f7769746e6573732e73746f726167655f6275636b6574735f6e756d60dc2d2060436020697320606368616e6e656c5f6261675f7769746e6573732e646973747269627574696f6e5f6275636b6574735f6e756d60142d2044423ad02020202d20604f2841202b2042202b20432960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e8864656c6574655f6368616e6e656c5f6173736574735f61735f6d6f64657261746f721401146163746f728d0101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964200130543a3a4368616e6e656c49640001406173736574735f746f5f72656d6f76655101016442547265655365743c446174614f626a65637449643c543e3e00016c73746f726167655f6275636b6574735f6e756d5f7769746e65737310010c753332000124726174696f6e616c6528011c5665633c75383e000a28203c7765696768743e002423232057656967687458604f202841202b2042202b204329602077686572653aa42d2060416020697320746865206c656e677468206f6620606173736574735f746f5f72656d6f766560cc2d20604260206973207468652076616c7565206f66206073746f726167655f6275636b6574735f6e756d5f7769746e65737360b42d20604360206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423ac02020202d20604f2841202b20422960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e6c64656c6574655f6368616e6e656c5f61735f6d6f64657261746f721401146163746f728d0101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964200130543a3a4368616e6e656c496400014c6368616e6e656c5f6261675f7769746e657373010601444368616e6e656c4261675769746e6573730001546e756d5f6f626a656374735f746f5f64656c65746520010c753634000124726174696f6e616c6528011c5665633c75383e000b008c7365745f6368616e6e656c5f7669736962696c6974795f61735f6d6f64657261746f721001146163746f728d0101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964200130543a3a4368616e6e656c496400012469735f68696464656e880110626f6f6c000124726174696f6e616c6528011c5665633c75383e000c28350145787472696e73696320666f722073657474696e67206368616e6e656c207669736962696c69747920737461747573202868696464656e2f76697369626c6529206279206d6f64657261746f7200203c7765696768743e002423232057656967687438604f20284129602077686572653ab42d20604160206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e306372656174655f766964656f0c01146163746f728d0101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964200130543a3a4368616e6e656c4964000118706172616d7331020168566964656f4372656174696f6e506172616d65746572733c543e000d2c203c7765696768743e002423232057656967687468604f202841202b2042202b2043202b204429602077686572653a11012d2060416020697320746865206e756d626572206f66206974656d7320696e2060706172616d732e6173736574732e6f626a6563745f6372656174696f6e5f6c69737460b42d206042602069732060706172616d732e73746f726167655f6275636b6574735f6e756d5f7769746e6573736035012d2060436020697320746865206c656e677468206f66206f70656e2061756374696f6e202f20656e676c6973682061756374696f6e2077686974656c697374202869662070726f766964656429f42d20604460206973207468652073697a65206f662060706172616d732e6d6574616020696e206b696c6f6279746573202869662070726f766964656429142d2044423ad02020202d20604f2841202b2042202b20432960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e307570646174655f766964656f0c01146163746f728d0101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964200128543a3a566964656f4964000118706172616d7339020160566964656f557064617465506172616d65746572733c543e000e30203c7765696768743e002423232057656967687478604f202841202b2042202b2043202b2044202b204529602077686572653a25012d2060416020697320706172616d732e6173736574735f746f5f75706c6f61642e6f626a6563745f6372656174696f6e5f6c6973742e6c656e2829202869662070726f766964656429982d2060426020697320706172616d732e6173736574735f746f5f72656d6f76652e6c656e2829ec2d206043602069732060706172616d732e73746f726167655f6275636b6574735f6e756d5f7769746e65737360202869662070726f76696465642935012d2060446020697320746865206c656e677468206f66206f70656e2061756374696f6e202f20656e676c6973682061756374696f6e2077686974656c697374202869662070726f76696465642905012d20604560206973207468652073697a65206f662060706172616d732e6e65775f6d6574616020696e206b696c6f6279746573202869662070726f766964656429142d2044423ae02020202d20604f2841202b2042202b2043202b20442960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e3064656c6574655f766964656f1001146163746f728d0101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964200128543a3a566964656f49640001546e756d5f6f626a656374735f746f5f64656c65746520010c75363400016c73746f726167655f6275636b6574735f6e756d5f7769746e657373e901012c4f7074696f6e3c7533323e000f24203c7765696768743e002423232057656967687448604f202841202b204229602077686572653a782d20604160206973206e756d5f6f626a656374735f746f5f64656c657465ec2d206042602069732060706172616d732e73746f726167655f6275636b6574735f6e756d5f7769746e65737360202869662070726f766964656429142d2044423ac02020202d20604f2841202b20422960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e8064656c6574655f766964656f5f6173736574735f61735f6d6f64657261746f721401146163746f728d0101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964200128543a3a566964656f496400016c73746f726167655f6275636b6574735f6e756d5f7769746e65737310010c7533320001406173736574735f746f5f72656d6f76655101016442547265655365743c446174614f626a65637449643c543e3e000124726174696f6e616c6528011c5665633c75383e001028203c7765696768743e002423232057656967687458604f202841202b2042202b204329602077686572653aa42d2060416020697320746865206c656e677468206f6620606173736574735f746f5f72656d6f766560cc2d20604260206973207468652076616c7565206f66206073746f726167655f6275636b6574735f6e756d5f7769746e65737360b42d20604360206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423ac02020202d20604f2841202b20422960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e6464656c6574655f766964656f5f61735f6d6f64657261746f721401146163746f728d0101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964200128543a3a566964656f496400016c73746f726167655f6275636b6574735f6e756d5f7769746e657373e901012c4f7074696f6e3c7533323e0001546e756d5f6f626a656374735f746f5f64656c65746520010c753634000124726174696f6e616c6528011c5665633c75383e001128203c7765696768743e002423232057656967687458604f202841202b2042202b204329602077686572653ab42d20604160206973207468652076616c7565206f6620606e756d5f6f626a656374735f746f5f64656c65746560cc2d20604260206973207468652076616c7565206f66206073746f726167655f6275636b6574735f6e756d5f7769746e65737360b42d20604360206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423ac02020202d20604f2841202b20422960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e847365745f766964656f5f7669736962696c6974795f61735f6d6f64657261746f721001146163746f728d0101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964200128543a3a566964656f496400012469735f68696464656e880110626f6f6c000124726174696f6e616c6528011c5665633c75383e0012282d0145787472696e73696320666f7220766964656f207669736962696c69747920737461747573202868696464656e2f76697369626c65292073657474696e67206279206d6f64657261746f7200203c7765696768743e002423232057656967687438604f20284129602077686572653ab42d20604160206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e587570646174655f6368616e6e656c5f7061796f757473080118706172616d73590201845570646174654368616e6e656c5061796f757473506172616d65746572733c543e00014075706c6f616465725f6163636f756e74000130543a3a4163636f756e74496400132458557064617465206368616e6e656c207061796f75747300203c7765696768743e002423232057656967687438604f20283129602077686572653a142d2044423a182d204f2831292c23203c2f7765696768743e50636c61696d5f6368616e6e656c5f7265776172640c01146163746f728d0101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e00011470726f6f66050601505665633c50726f6f66456c656d656e743c543e3e0001106974656d1106013850756c6c5061796d656e743c543e001428a0436c61696d2072657761726420696e204a4f592066726f6d206368616e6e656c206163636f756e7400203c7765696768743e002423232057656967687438604f20284829602077686572653ac82d2060486020697320746865206c656e676874206f66207468652070726f7669646564206d65726b6c65206070726f6f6660142d2044423a242020202d204f2831292c23203c2f7765696768743e7477697468647261775f66726f6d5f6368616e6e656c5f62616c616e63650c01146163746f728d0101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964200130543a3a4368616e6e656c4964000118616d6f756e7418013042616c616e63654f663c543e001524845769746864726177204a4f592066726f6d206368616e6e656c206163636f756e7400203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e7c7570646174655f6368616e6e656c5f73746174655f626c6f61745f626f6e640401706e65775f6368616e6e656c5f73746174655f626c6f61745f626f6e6418013042616c616e63654f663c543e0016289c55706461746573206368616e6e656c20737461746520626c6f617420626f6e642076616c75652e7c4f6e6c79206c6561642063616e2075706c6f616420746869732076616c756500203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e747570646174655f766964656f5f73746174655f626c6f61745f626f6e640401686e65775f766964656f5f73746174655f626c6f61745f626f6e6418013042616c616e63654f663c543e001728945570646174657320766964656f20737461746520626c6f617420626f6e642076616c75652e7c4f6e6c79206c6561642063616e2075706c6f616420746869732076616c756500203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e84636c61696d5f616e645f77697468647261775f6368616e6e656c5f7265776172640c01146163746f728d0101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e00011470726f6f66050601505665633c50726f6f66456c656d656e743c543e3e0001106974656d1106013850756c6c5061796d656e743c543e001828d4436c61696d20616e642077697468647261772072657761726420696e204a4f592066726f6d206368616e6e656c206163636f756e7400203c7765696768743e002423232057656967687438604f20284829602077686572653ac82d2060486020697320746865206c656e676874206f66207468652070726f7669646564206d65726b6c65206070726f6f6660142d2044423a242020202d204f2831292c23203c2f7765696768743e2469737375655f6e66740c01146163746f728d0101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964200128543a3a566964656f4964000118706172616d73f10101604e667449737375616e6365506172616d65746572733c543e001930244973737565204e465400203c7765696768743e00242323205765696768742c604f202857202b20422960142d2044423a242020202d204f2857291877686572653a19012020202d2057203a206d656d6265722077686974656c697374206c656e67746820696e2063617365206e667420696e697469616c207374617475732069732061756374696f6ec02020202d2042203a2073697a65206f66206d6574616461746120706172616d6574657220696e206b696c6f62797465732c23203c2f7765696768743e2c64657374726f795f6e66740801146163746f728d0101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964200128543a3a566964656f4964001a242c44657374726f79204e465400203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e4873746172745f6f70656e5f61756374696f6e0c01206f776e65725f69648d0101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964200128543a3a566964656f496400013861756374696f6e5f706172616d73ed0101504f70656e41756374696f6e506172616d733c543e001b2470537461727420766964656f206e6674206f70656e2061756374696f6e203c7765696768743e002423232057656967687438604f20285729602077686572653a742d2057203a206d656d6265722077686974656c697374206c656e677468142d2044423a242020202d204f2857292c23203c2f7765696768743e5473746172745f656e676c6973685f61756374696f6e0c01206f776e65725f69648d0101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964200128543a3a566964656f496400013861756374696f6e5f706172616d73e501015c456e676c69736841756374696f6e506172616d733c543e001c247c537461727420766964656f206e667420656e676c6973682061756374696f6e203c7765696768743e002423232057656967687438604f20285729602077686572653a882d2057203a2077686974656c697374206d656d626572206c697374206c656e677468142d2044423a242020202d204f2857292c23203c2f7765696768743e5863616e63656c5f656e676c6973685f61756374696f6e0801206f776e65725f69648d0101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964200128543a3a566964656f4964001d208043616e63656c20766964656f206e667420656e676c6973682061756374696f6e203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e4c63616e63656c5f6f70656e5f61756374696f6e0801206f776e65725f69648d0101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964200128543a3a566964656f4964001e207443616e63656c20766964656f206e6674206f70656e2061756374696f6e203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e3063616e63656c5f6f666665720801206f776e65725f69648d0101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964200128543a3a566964656f4964001f244043616e63656c204e6674206f6666657200203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e3863616e63656c5f6275795f6e6f770801206f776e65725f69648d0101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964200128543a3a566964656f49640020245443616e63656c204e66742073656c6c206f7264657200203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f283129243c2f7765696768743e507570646174655f6275795f6e6f775f70726963650c01206f776e65725f69648d0101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964200128543a3a566964656f49640001246e65775f707269636518013042616c616e63654f663c543e0021246055706461746520427579206e6f77206e667420707269636500203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e546d616b655f6f70656e5f61756374696f6e5f6269640c01387061727469636970616e745f696420012c543a3a4d656d6265724964000120766964656f5f6964200128543a3a566964656f49640001286269645f616d6f756e7418013042616c616e63654f663c543e002220404d616b652061756374696f6e20626964203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e606d616b655f656e676c6973685f61756374696f6e5f6269640c01387061727469636970616e745f696420012c543a3a4d656d6265724964000120766964656f5f6964200128543a3a566964656f49640001286269645f616d6f756e7418013042616c616e63654f663c543e002320604d616b6520656e676c6973682061756374696f6e20626964203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e5c63616e63656c5f6f70656e5f61756374696f6e5f6269640801387061727469636970616e745f696420012c543a3a4d656d6265724964000120766964656f5f6964200128543a3a566964656f49640024205c43616e63656c206f70656e2061756374696f6e20626964203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e58736574746c655f656e676c6973685f61756374696f6e040120766964656f5f6964200128543a3a566964656f496400252464436c61696d20776f6e20656e676c6973682061756374696f6e5c43616e2062652063616c6c656420627920616e796f6e65203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e607069636b5f6f70656e5f61756374696f6e5f77696e6e65721001206f776e65725f69648d0101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964200128543a3a566964656f496400012477696e6e65725f696420012c543a3a4d656d6265724964000118636f6d6d697418013042616c616e63654f663c543e0026245c416363657074206f70656e2061756374696f6e206269648c53686f756c64206f6e6c792062652063616c6c65642062792061756374696f6e656572203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e246f666665725f6e6674100120766964656f5f6964200128543a3a566964656f49640001206f776e65725f69648d0101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000108746f20012c543a3a4d656d62657249640001147072696365290101504f7074696f6e3c42616c616e63654f663c543e3e002724244f66666572204e667400203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e38736c696e675f6e66745f6261636b080120766964656f5f6964200128543a3a566964656f49640001206f776e65725f69648d0101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e002824c452657475726e204e6674206261636b20746f20746865206f726967696e616c20617274697374206174206e6f20636f737400203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e546163636570745f696e636f6d696e675f6f66666572080120766964656f5f6964200128543a3a566964656f49640001347769746e6573735f7072696365290101a04f7074696f6e3c3c542061732062616c616e6365733a3a436f6e6669673e3a3a42616c616e63653e0029246441636365707420696e636f6d696e67204e6674206f6666657200203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e2073656c6c5f6e66740c0120766964656f5f6964200128543a3a566964656f49640001206f776e65725f69648d0101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000114707269636518013042616c616e63654f663c543e002a202053656c6c204e6674203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e1c6275795f6e66740c0120766964656f5f6964200128543a3a566964656f49640001387061727469636970616e745f696420012c543a3a4d656d62657249640001347769746e6573735f707269636518013042616c616e63654f663c543e002b241c427579204e667400203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e44746f67676c655f6e66745f6c696d69747304011c656e61626c6564880110626f6f6c002c20dc4f6e6c7920436f756e63696c2063616e20746f67676c65206e66742069737375616e6365206c696d69747320636f6e73747261696e7473203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e506368616e6e656c5f6f776e65725f72656d61726b0801286368616e6e656c5f6964200130543a3a4368616e6e656c496400010c6d736728011c5665633c75383e002d28504368616e6e656c206f776e65722072656d61726b203c7765696768743e00242323205765696768741c604f2028422960142d2044423a242020202d204f2831291877686572653a8c2d204220697320746865206b696c6f62797465206c656e676874206f6620606d7367602c23203c2f7765696768743e506368616e6e656c5f6167656e745f72656d61726b0c01146163746f728d0101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964200130543a3a4368616e6e656c496400010c6d736728011c5665633c75383e002e286c4368616e6e656c20636f6c6c61626f7261746f722072656d61726b203c7765696768743e00242323205765696768741c604f2028422960142d2044423a242020202d204f2831291877686572653a8420202d2042206973207468652062797465206c656e676874206f6620606d7367602c23203c2f7765696768743e406e66745f6f776e65725f72656d61726b0c01146163746f728d0101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964200128543a3a566964656f496400010c6d736728011c5665633c75383e002f28404e4654206f776e65722072656d61726b203c7765696768743e00242323205765696768741c604f2028422960142d2044423a2020202d204f2831291877686572653a8420202d2042206973207468652062797465206c656e676874206f6620606d7367602c23203c2f7765696768743e6c696e697469616c697a655f6368616e6e656c5f7472616e736665720c01286368616e6e656c5f6964200130543a3a4368616e6e656c49640001146163746f728d0101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e00013c7472616e736665725f706172616d731506016c496e69745472616e73666572506172616d65746572734f663c543e003028dc53746172742061206368616e6e656c207472616e736665722077697468207370656369666965642063686172616374657269737469637300203c7765696768743e002423232057656967687438604f20284129602077686572653a25012d2060416020697320746865206e756d626572206f6620656e747269657320696e20607472616e736665725f706172616d732e6e65775f636f6c6c61626f7261746f727360206d6170142d2044423aa82020202d204f284129202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e5c63616e63656c5f6368616e6e656c5f7472616e736665720801286368616e6e656c5f6964200130543a3a4368616e6e656c49640001146163746f728d0101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0031245c63616e63656c206368616e6e656c207472616e7366657200203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5c6163636570745f6368616e6e656c5f7472616e736665720801286368616e6e656c5f6964200130543a3a4368616e6e656c4964000144636f6d6d69746d656e745f706172616d73550201785472616e73666572436f6d6d69746d656e745769746e6573734f663c543e00322c6441636365707473206368616e6e656c207472616e736665722e310160636f6d6d69746d656e745f706172616d736020697320726571756972656420746f2070726576656e74206368616e67696e6720746865207472616e7366657220636f6e646974696f6e732e00203c7765696768743e002423232057656967687438604f20284129602077686572653a2d012d2060416020697320746865206e756d626572206f6620656e747269657320696e2060636f6d6d69746d656e745f706172616d732e6e65775f636f6c6c61626f7261746f727360206d6170142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5c7570646174655f676c6f62616c5f6e66745f6c696d69740801406e66745f6c696d69745f706572696f64710201384e66744c696d6974506572696f640001146c696d697420010c753634003320605570646174657320676c6f62616c204e4654206c696d6974203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e607570646174655f6368616e6e656c5f6e66745f6c696d69741001146163746f728d0101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001406e66745f6c696d69745f706572696f64710201384e66744c696d6974506572696f640001286368616e6e656c5f6964200130543a3a4368616e6e656c49640001146c696d697420010c7536340034207055706461746573206368616e6e656c2773204e4654206c696d69742e203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e4c69737375655f63726561746f725f746f6b656e0c01146163746f728d0101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964200130543a3a4368616e6e656c4964000118706172616d73b1020170546f6b656e49737375616e6365506172616d65746572734f663c543e0035284c49737375652063726561746f7220746f6b656e00203c7765696768743e002423232057656967687438604f20284129602077686572653a05012d2060416020697320746865206e756d626572206f6620656e747269657320696e2060706172616d732e696e697469616c5f616c6c6f636174696f6e60206d6170142d2044423ab02020202d20604f28412960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e5c696e69745f63726561746f725f746f6b656e5f73616c650c01146163746f728d0101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964200130543a3a4368616e6e656c4964000118706172616d7319060150546f6b656e53616c65506172616d734f663c543e00362874496e697469616c697a652063726561746f7220746f6b656e2073616c6500203c7765696768743e002423232057656967687438604f20284129602077686572653a29012d20604160206973207468652073697a65206f662060706172616d732e6d657461646174616020696e206b696c6f627974657320286f722030206966206e6f742070726f766964656429142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e887570646174655f7570636f6d696e675f63726561746f725f746f6b656e5f73616c651001146163746f728d0101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964200130543a3a4368616e6e656c496400013c6e65775f73746172745f626c6f636be90101584f7074696f6e3c543a3a426c6f636b4e756d6265723e0001306e65775f6475726174696f6ee90101584f7074696f6e3c543a3a426c6f636b4e756d6265723e00372488557064617465207570636f6d696e672063726561746f7220746f6b656e2073616c6500203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e7463726561746f725f746f6b656e5f6973737565725f7472616e736665721001146163746f728d0101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964200130543a3a4368616e6e656c496400011c6f7574707574731d0601645472616e73666572735769746856657374696e674f663c543e0001206d6574616461746128011c5665633c75383e00382cc8506572666f726d207472616e73666572206f6620746f6b656e732061732063726561746f7220746f6b656e2069737375657200203c7765696768743e002423232057656967687448604f202841202b204229602077686572653aac2d2060416020697320746865206e756d626572206f6620656e747269657320696e20606f75747075747360c02d20604260206973207468652073697a65206f662074686520606d657461646174616020696e206b696c6f6279746573142d2044423ab02020202d20604f28412960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e846d616b655f63726561746f725f746f6b656e5f7065726d697373696f6e6c6573730801146163746f728d0101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964200130543a3a4368616e6e656c4964003924ac4d616b65206368616e6e656c27732063726561746f7220746f6b656e207065726d697373696f6e6c65737300203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e987265647563655f63726561746f725f746f6b656e5f706174726f6e6167655f726174655f746f0c01146163746f728d0101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964200130543a3a4368616e6e656c496400012c7461726765745f72617465e1020128596561726c7952617465003a24f0526564756365206368616e6e656c27732063726561746f7220746f6b656e20706174726f6e616765207261746520746f20676976656e2076616c756500203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e90636c61696d5f63726561746f725f746f6b656e5f706174726f6e6167655f6372656469740801146163746f728d0101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964200130543a3a4368616e6e656c4964003b24b8436c61696d206368616e6e656c27732063726561746f7220746f6b656e20706174726f6e6167652063726564697400203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e4c69737375655f726576656e75655f73706c69741001146163746f728d0101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964200130543a3a4368616e6e656c49640001147374617274e90101584f7074696f6e3c543a3a426c6f636b4e756d6265723e0001206475726174696f6e100138543a3a426c6f636b4e756d626572003c2484497373756520726576656e75652073706c697420666f722061206368616e6e656c00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5866696e616c697a655f726576656e75655f73706c69740801146163746f728d0101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964200130543a3a4368616e6e656c4964003d247c46696e616c697a6520616e20656e64656420726576656e75652073706c697400203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6c66696e616c697a655f63726561746f725f746f6b656e5f73616c650801146163746f728d0101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964200130543a3a4368616e6e656c4964003e249046696e616c697a6520616e20656e6465642063726561746f7220746f6b656e2073616c6500203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e54646569737375655f63726561746f725f746f6b656e0801146163746f728d0101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964200130543a3a4368616e6e656c4964003f247c44656973737565206368616e6e656c27732063726561746f7220746f6b656e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e01060c3870616c6c65745f636f6e74656e74147479706573444368616e6e656c4261675769746e657373000008014c73746f726167655f6275636b6574735f6e756d10010c753332000160646973747269627574696f6e5f6275636b6574735f6e756d10010c7533320000050600000209060009060c3470616c6c65745f636f6d6d6f6e2c6d65726b6c655f747265654850726f6f66456c656d656e745265636f726408104861736801241053696465010d06000801106861736824011048617368000110736964650d0601105369646500000d060c3470616c6c65745f636f6d6d6f6e2c6d65726b6c655f747265651053696465000108104c6566740000001452696768740001000011060c3870616c6c65745f636f6e74656e741474797065734850756c6c5061796d656e74456c656d656e740c244368616e6e656c496401201c42616c616e6365011810486173680124000c01286368616e6e656c5f69642001244368616e6e656c496400016063756d756c61746976655f7265776172645f6561726e656418011c42616c616e6365000118726561736f6e24011048617368000015060c3870616c6c65745f636f6e74656e7414747970657358496e69745472616e73666572506172616d65746572730c204d656d626572496401203843757261746f7247726f7570496401201c42616c616e63650118000c01446e65775f636f6c6c61626f7261746f7273150201ac42547265654d61703c4d656d62657249642c204368616e6e656c4167656e745065726d697373696f6e733e000114707269636518011c42616c616e63650001246e65775f6f776e6572cd0101984368616e6e656c4f776e65723c4d656d62657249642c2043757261746f7247726f757049643e000019060c5070616c6c65745f70726f6a6563745f746f6b656e1474797065733c546f6b656e53616c65506172616d7310284a6f7942616c616e636501181c42616c616e636501182c426c6f636b4e756d62657201105456657374696e675363686564756c65506172616d7301b902001c0128756e69745f70726963651801284a6f7942616c616e636500015075707065725f626f756e645f7175616e7469747918011c42616c616e63650001247374617274735f6174e901014c4f7074696f6e3c426c6f636b4e756d6265723e0001206475726174696f6e10012c426c6f636b4e756d62657200015c76657374696e675f7363686564756c655f706172616d73c10201744f7074696f6e3c56657374696e675363686564756c65506172616d733e0001386361705f7065725f6d656d6265722901013c4f7074696f6e3c42616c616e63653e0001206d657461646174611501013c4f7074696f6e3c5665633c75383e3e00001d060c5070616c6c65745f70726f6a6563745f746f6b656e147479706573245472616e736665727308204d656d626572496401201c5061796d656e7401f1020004002106016c42547265654d61703c4d656d62657249642c205061796d656e743e00002106042042547265654d617008044b0120045601f1020004002506000000250600000229060029060000040820f102002d06083870616c6c65745f73746f726167651043616c6c04045400018c5464656c6574655f73746f726167655f6275636b657404014473746f726167655f6275636b65745f6964200148543a3a53746f726167654275636b657449640000201d0144656c6574652073746f72616765206275636b65742e204d75737420626520656d7074792e2053746f72616765206f70657261746f72206d757374206265206d697373696e672e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e7c7570646174655f75706c6f6164696e675f626c6f636b65645f7374617475730401286e65775f737461747573880110626f6f6c000120785570646174657320676c6f62616c2075706c6f6164696e6720666c61672e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e507570646174655f646174615f73697a655f6665650401446e65775f646174615f73697a655f66656518013042616c616e63654f663c543e000220cc557064617465732073697a652d62617365642070726963696e67206f66206e6577206f626a656374732075706c6f616465642e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e907570646174655f73746f726167655f6275636b6574735f7065725f6261675f6c696d69740401246e65775f6c696d697410010c753332000320bc55706461746573202253746f72616765206275636b657473207065722062616722206e756d626572206c696d69742e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743ea47570646174655f73746f726167655f6275636b6574735f766f75636865725f6d61785f6c696d6974730801406e65775f6f626a656374735f73697a6520010c7536340001486e65775f6f626a656374735f6e756d62657220010c753634000420b455706461746573202253746f72616765206275636b65747320766f7563686572206d6178206c696d697473222e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e8c7570646174655f646174615f6f626a6563745f73746174655f626c6f61745f626f6e6404014073746174655f626c6f61745f626f6e6418013042616c616e63654f663c543e000520ac557064617465732064617461206f626a65637420737461746520626c6f617420626f6e642076616c75652e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743efc7570646174655f6e756d6265725f6f665f73746f726167655f6275636b6574735f696e5f64796e616d69635f6261675f6372656174696f6e5f706f6c69637908014064796e616d69635f6261675f747970659902013844796e616d6963426167547970650001646e756d6265725f6f665f73746f726167655f6275636b65747310010c7533320006202d01557064617465206e756d626572206f662073746f72616765206275636b657473207573656420696e20676976656e2064796e616d696320626167206372656174696f6e20706f6c6963792e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e407570646174655f626c61636b6c69737408013472656d6f76655f6861736865738d02014442547265655365743c5665633c75383e3e0001286164645f6861736865738d02014442547265655365743c5665633c75383e3e000728bc41646420616e642072656d6f76652068617368657320746f207468652063757272656e7420626c61636b6c6973742e203c7765696768743e002423232057656967687448604f202857202b205629602077686572653abc2d2060576020697320746865206e756d626572206f66206974656d7320696e206072656d6f76655f68617368657360b02d2060566020697320746865206e756d626572206f66206974656d7320696e20606164645f68617368657360142d2044423ab02020202d20604f28572960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e546372656174655f73746f726167655f6275636b6574100134696e766974655f776f726b65721901014c4f7074696f6e3c576f726b657249643c543e3e000148616363657074696e675f6e65775f62616773880110626f6f6c00012873697a655f6c696d697420010c7536340001346f626a656374735f6c696d697420010c753634000820584372656174652073746f72616765206275636b65742e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e787570646174655f73746f726167655f6275636b6574735f666f725f6261670c01186261675f69647d02012042616749643c543e00012c6164645f6275636b6574735101017042547265655365743c543a3a53746f726167654275636b657449643e00013872656d6f76655f6275636b6574735101017042547265655365743c543a3a53746f726167654275636b657449643e00092888557064617465732073746f72616765206275636b65747320666f722061206261672e203c7765696768743e002423232057656967687448604f202857202b205629602077686572653ab42d2060576020697320746865206e756d626572206f66206974656d7320696e20606164645f6275636b65747360c02d2060566020697320746865206e756d626572206f66206974656d7320696e206072656d6f76655f6275636b65747360142d2044423ac02020202d20604f2856202b20572960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e9463616e63656c5f73746f726167655f6275636b65745f6f70657261746f725f696e7669746504014473746f726167655f6275636b65745f6964200148543a3a53746f726167654275636b65744964000a20110143616e63656c2070656e64696e672073746f72616765206275636b657420696e766974652e20416e20696e7669746174696f6e206d7573742062652070656e64696e672e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e78696e766974655f73746f726167655f6275636b65745f6f70657261746f7208014473746f726167655f6275636b65745f6964200148543a3a53746f726167654275636b6574496400012c6f70657261746f725f696420012c576f726b657249643c543e000b20c0496e766974652073746f72616765206275636b6574206f70657261746f722e204d757374206265206d697373696e672e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e7872656d6f76655f73746f726167655f6275636b65745f6f70657261746f7204014473746f726167655f6275636b65745f6964200148543a3a53746f726167654275636b65744964000c208052656d6f7665732073746f72616765206275636b6574206f70657261746f722e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e707570646174655f73746f726167655f6275636b65745f73746174757308014473746f726167655f6275636b65745f6964200148543a3a53746f726167654275636b65744964000148616363657074696e675f6e65775f62616773880110626f6f6c000d20dc5570646174652077686574686572206e6577206261677320617265206265696e6720616363657074656420666f722073746f726167652e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e847365745f73746f726167655f6275636b65745f766f75636865725f6c696d6974730c014473746f726167655f6275636b65745f6964200148543a3a53746f726167654275636b657449640001586e65775f6f626a656374735f73697a655f6c696d697420010c7536340001606e65775f6f626a656374735f6e756d6265725f6c696d697420010c753634000e208c536574732073746f72616765206275636b657420766f7563686572206c696d6974732e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e806163636570745f73746f726167655f6275636b65745f696e7669746174696f6e0c0124776f726b65725f696420012c576f726b657249643c543e00014473746f726167655f6275636b65745f6964200148543a3a53746f726167654275636b657449640001547472616e736163746f725f6163636f756e745f6964000130543a3a4163636f756e744964000f285d01416363657074207468652073746f72616765206275636b657420696e7669746174696f6e2e20416e20696e7669746174696f6e206d757374206d617463682074686520776f726b65725f696420706172616d657465722e59014974206163636570747320616e206164646974696f6e616c206163636f756e7420494420287472616e736163746f722920666f7220616363657074696e672064617461206f626a6563747320746f2070726576656e74747472616e73616374696f6e206e6f6e636520636f6c6c6973696f6e732e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e747365745f73746f726167655f6f70657261746f725f6d657461646174610c0124776f726b65725f696420012c576f726b657249643c543e00014473746f726167655f6275636b65745f6964200148543a3a53746f726167654275636b657449640001206d6574616461746128011c5665633c75383e001024dc536574732073746f72616765206f70657261746f72206d65746164617461202865672e3a2073746f72616765206e6f64652055524c292e203c7765696768743e002423232057656967687438604f20285729602077686572653aa02d206057602069732073697a65206f6620606d657461646174616020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6c6163636570745f70656e64696e675f646174615f6f626a65637473100124776f726b65725f696420012c576f726b657249643c543e00014473746f726167655f6275636b65745f6964200148543a3a53746f726167654275636b657449640001186261675f69647d02012042616749643c543e000130646174615f6f626a656374735101016442547265655365743c543a3a446174614f626a65637449643e0011246501412073746f726167652070726f7669646572207369676e616c732074686174207468652064617461206f626a65637420776173207375636365737366756c6c792075706c6f6164656420746f206974732073746f726167652e203c7765696768743e00242323205765696768743c604f2028572029602077686572653ab82d2060576020697320746865206e756d626572206f66206974656d7320696e2060646174615f6f626a6563747360142d2044423ab02020202d20604f28572960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e846372656174655f646973747269627574696f6e5f6275636b65745f66616d696c7900122090437265617465206120646973747269627574696f6e206275636b65742066616d696c792e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e8464656c6574655f646973747269627574696f6e5f6275636b65745f66616d696c7904012466616d696c795f6964200174543a3a446973747269627574696f6e4275636b657446616d696c7949640013209444656c65746573206120646973747269627574696f6e206275636b65742066616d696c792e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e686372656174655f646973747269627574696f6e5f6275636b657408012466616d696c795f6964200174543a3a446973747269627574696f6e4275636b657446616d696c794964000148616363657074696e675f6e65775f62616773880110626f6f6c00142074437265617465206120646973747269627574696f6e206275636b65742e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e847570646174655f646973747269627574696f6e5f6275636b65745f7374617475730801246275636b65745f69640d02015c446973747269627574696f6e4275636b657449643c543e000148616363657074696e675f6e65775f62616773880110626f6f6c001520d855706461746573206120646973747269627574696f6e206275636b6574202761636365707473206e657720626167732720666c61672e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6864656c6574655f646973747269627574696f6e5f6275636b65740401246275636b65745f69640d02015c446973747269627574696f6e4275636b657449643c543e001620a844656c65746520646973747269627574696f6e206275636b65742e204d75737420626520656d7074792e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e8c7570646174655f646973747269627574696f6e5f6275636b6574735f666f725f6261671001186261675f69647d02012042616749643c543e00012466616d696c795f6964200174543a3a446973747269627574696f6e4275636b657446616d696c79496400014c6164645f6275636b6574735f696e64696365735101019042547265655365743c543a3a446973747269627574696f6e4275636b6574496e6465783e00015872656d6f76655f6275636b6574735f696e64696365735101019042547265655365743c543a3a446973747269627574696f6e4275636b6574496e6465783e0017289c5570646174657320646973747269627574696f6e206275636b65747320666f722061206261672e203c7765696768743e002423232057656967687448604f202857202b205629602077686572653ad42d2060576020697320746865206e756d626572206f66206974656d7320696e20606164645f6275636b6574735f696e646963657360e02d2060566020697320746865206e756d626572206f66206974656d7320696e206072656d6f76655f6275636b6574735f696e646963657360142d2044423ac02020202d20604f2856202b20572960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743ea47570646174655f646973747269627574696f6e5f6275636b6574735f7065725f6261675f6c696d69740401246e65775f6c696d697410010c753332001820d0557064617465732022446973747269627574696f6e206275636b657473207065722062616722206e756d626572206c696d69742e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e7c7570646174655f646973747269627574696f6e5f6275636b65745f6d6f64650801246275636b65745f69640d02015c446973747269627574696f6e4275636b657449643c543e000130646973747269627574696e67880110626f6f6c001920d8557064617465732027646973747269627574696e672720666c616720666f722074686520646973747269627574696e6720666c61672e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743eb87570646174655f66616d696c6965735f696e5f64796e616d69635f6261675f6372656174696f6e5f706f6c69637908014064796e616d69635f6261675f747970659902013844796e616d69634261675479706500012066616d696c6965739d0201b042547265654d61703c543a3a446973747269627574696f6e4275636b657446616d696c7949642c207533323e001a283d01557064617465206e756d626572206f66206469737472696275746564206275636b657473207573656420696e20676976656e2064796e616d696320626167206372656174696f6e20706f6c6963792e9c5570646174657320646973747269627574696f6e206275636b65747320666f722061206261672e203c7765696768743e002423232057656967687438604f20285729602077686572653aa82d2060576020697320746865206e756d626572206f66206974656d7320696e206066616d696c69657360142d2044423ab02020202d20604f28572960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e8c696e766974655f646973747269627574696f6e5f6275636b65745f6f70657261746f720801246275636b65745f69640d02015c446973747269627574696f6e4275636b657449643c543e0001486f70657261746f725f776f726b65725f696420012c576f726b657249643c543e001b2090496e7669746520616e206f70657261746f722e204d757374206265206d697373696e672e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743ea863616e63656c5f646973747269627574696f6e5f6275636b65745f6f70657261746f725f696e766974650801246275636b65745f69640d02015c446973747269627574696f6e4275636b657449643c543e0001486f70657261746f725f776f726b65725f696420012c576f726b657249643c543e001c209c43616e63656c2070656e64696e6720696e766974652e204d7573742062652070656e64696e672e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e8c72656d6f76655f646973747269627574696f6e5f6275636b65745f6f70657261746f720801246275636b65745f69640d02015c446973747269627574696f6e4275636b657449643c543e0001486f70657261746f725f776f726b65725f696420012c576f726b657249643c543e001d209452656d6f76657320646973747269627574696f6e206275636b6574206f70657261746f722e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e9c7365745f646973747269627574696f6e5f6275636b65745f66616d696c795f6d6574616461746108012466616d696c795f6964200174543a3a446973747269627574696f6e4275636b657446616d696c7949640001206d6574616461746128011c5665633c75383e001e24a053657420646973747269627574696f6e206275636b65742066616d696c79206d657461646174612e203c7765696768743e002423232057656967687438604f20285729602077686572653aa02d206057602069732073697a65206f6620606d657461646174616020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e946163636570745f646973747269627574696f6e5f6275636b65745f696e7669746174696f6e080124776f726b65725f696420012c576f726b657249643c543e0001246275636b65745f69640d02015c446973747269627574696f6e4275636b657449643c543e001f20584163636570742070656e64696e6720696e766974652e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e887365745f646973747269627574696f6e5f6f70657261746f725f6d657461646174610c0124776f726b65725f696420012c576f726b657249643c543e0001246275636b65745f69640d02015c446973747269627574696f6e4275636b657449643c543e0001206d6574616461746128011c5665633c75383e002024fc53657420646973747269627574696f6e206f70657261746f72206d6574616461746120666f722074686520646973747269627574696f6e206275636b65742e203c7765696768743e002423232057656967687438604f20285729602077686572653aa02d206057602069732073697a65206f6620606d657461646174616020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5c73746f726167655f6f70657261746f725f72656d61726b0c0124776f726b65725f696420012c576f726b657249643c543e00014473746f726167655f6275636b65745f6964200148543a3a53746f726167654275636b6574496400010c6d736728011c5665633c75383e0021289c4465706f73697420612053746f726167654f70657261746f7252656d61726b6564206576656e7474636f6e7461696e696e6720612067656e65726963206d6573736167652e203c7765696768743e002423232057656967687438604f20285729602077686572653a9c2d206057602069732073697a65206f6620606d6573736167656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e70646973747269627574696f6e5f6f70657261746f725f72656d61726b0c0124776f726b65725f696420012c576f726b657249643c543e000158646973747269627574696f6e5f6275636b65745f69640d02015c446973747269627574696f6e4275636b657449643c543e00010c6d736728011c5665633c75383e0022249c43726561746520612064796e616d6963206261672e20446576656c6f706d656e74206d6f64652e203c7765696768743e002423232057656967687438604f20285729602077686572653a9c2d206057602069732073697a65206f6620606d6573736167656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e3106085070616c6c65745f70726f6a6563745f746f6b656e1043616c6c04045400011c207472616e736665721001347372635f6d656d6265725f696420012c543a3a4d656d6265724964000120746f6b656e5f6964200128543a3a546f6b656e496400011c6f757470757473350601385472616e73666572734f663c543e0001206d6574616461746128011c5665633c75383e0000685501416c6c6f7720746f207472616e736665722066726f6d20607372635f6d656d6265725f696460206163636f756e7420746f2074686520766172696f757320606f757470757473602062656e6566696369617269657364696e207468652073706563696669656420616d6f756e74732e0038507265636f6e646974696f6e733ae82d206f726967696e207369676e6572206d75737420626520607372635f6d656d6265725f69646020636f6e74726f6c6c6572206163636f756e74842d20746f6b656e2062792060746f6b656e5f696460206d75737420657869737473d82d206163636f756e74206f6620607372635f6d656d6265725f696460206d75737420657869737420666f722060746f6b656e5f69646041012d2073656e646572206d757374206861766520656e6f756768204a4f597320746f20636f7665722074686520746f74616c20626c6f617420626f6e6420726571756972656420696e2063617365206f6678202064657374696e6174696f6e287329206e6f74206578697374696e672e29012d20736f75726365206163636f756e74206d757374206861766520656e6f75676820746f6b656e2066756e647320746f20636f76657220616c6c20746865207472616e7366657228732941012d20606f75747075747360206d7573742064657369676e617465206578697374696e672064657374696e6174696f6e28732920666f7220225065726d697373696f6e656422207472616e73666572732e3c506f7374636f6e646974696f6e733ae82d20736f75726365206163636f756e74277320746f6b656e7320616d6f756e74206973206465637265617365642062792060616d6f756e74602e49012d20746f74616c20626c6f617420626f6e64207472616e736665727265642066726f6d2073656e6465722773204a4f592062616c616e636520696e746f20746865207472656173757279206163636f756e74cc2020696e20636173652064657374696e6174696f6e2873292068617665206265656e20616464656420746f2073746f72616765ec2d20606f7574707574732e62656e65666963696172796020746f6b656e7320616d6f756e7420696e637265617365642062792060616d6f756e746000203c7765696768743e002423232057656967687448604f202854202b204d29602077686572653a802d2060546020697320746865206c656e677468206f6620606f75747075747360b02d20604d60206973207468652073697a65206f6620606d657461646174616020696e206b696c6f6279746573142d2044423aac20202d20604f28542960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e106275726e0c0120746f6b656e5f6964200128543a3a546f6b656e49640001246d656d6265725f696420012c543a3a4d656d6265724964000118616d6f756e74180144546f6b656e42616c616e63654f663c543e000178884275726e20746f6b656e732066726f6d20737065636966696564206163636f756e740038507265636f6e646974696f6e733a442d2060616d6f756e7460206973203e2030f42d206f726967696e207369676e6572206973206120636f6e74726f6c6c6572206163636f756e74206f6620606d656d6265725f696460206d656d626572702d20746f6b656e2062792060746f6b656e5f69646020657869737473c02d20616e206163636f756e742065786973747320666f722060746f6b656e5f696460207820606d656d6265725f696460a02d206163636f756e74277320746f6b656e7320616d6f756e74206973203e3d2060616d6f756e746005012d20746f6b656e20737570706c792063616e206265206d6f64696669656420287468657265206973206e6f2061637469766520726576656e75652073706c697429003c506f7374636f6e646974696f6e733a4d012d207374617274696e6720776974682060756e70726f6365737365646020626565696e6720657175616c20746f2060616d6f756e74602c206163636f756e7427732076657374696e67207363686564756c6573602020617265206974657261746564206f76657220616e643a5d0120202d2075706461746564207769746820606275726e65645f616d6f756e74202b3d207570726f636573736564602069662076657374696e67207363686564756c65277320756e76657374656420616d6f756e74206973742020202067726561746572207468616e20607570726f636573736564605420202d2072656d6f766564206f746865727769736545012020286166746572206561636820697465726174696f6e2060756e70726f6365737365646020697320726564756365642062792074686520616d6f756e74206f6620756e76657374656420746f6b656e737c20206275726e656420647572696e67207468617420697465726174696f6e2949012d20696620746865206163636f756e742068617320616e79206073706c69745f7374616b696e675f737461747573602c20746865206073706c69745f7374616b696e675f7374617475732e616d6f756e7460e820206973207265647563656420627920606d696e28616d6f756e742c2073706c69745f7374616b696e675f7374617475732e616d6f756e742960a42d20606163636f756e742e616d6f756e746020697320726564756365642062792060616d6f756e7460942d20746f6b656e20737570706c7920697320726564756365642062792060616d6f756e746000203c7765696768743e00242323205765696768741c604f2028312960142d2044423ad820202d20604f28312960202d20646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e30647573745f6163636f756e74080120746f6b656e5f6964200128543a3a546f6b656e49640001246d656d6265725f696420012c543a3a4d656d62657249640002508c416c6c6f7720616e79207573657220746f2072656d6f766520616e206163636f756e740038507265636f6e646974696f6e733a802d20746f6b656e2062792060746f6b656e5f696460206d757374206578697374d02d20616e206163636f756e74206d75737420657869737420666f722060746f6b656e5f696460207820606d656d6265725f69646015012d206966205065726d697373696f6e656420746f6b656e3a20606f726967696e60207369676e6572206d75737420626520606d656d6265725f696460206d656d6265722773502020636f6e74726f6c6c6572206163636f756e74ec2d2060746f6b656e5f696460207820606d656d6265725f696460206163636f756e74206d75737420626520616e20656d707479206163636f756e7478202028606163636f756e745f646174612e616d6f756e7460203d3d2030293c506f7374636f6e646974696f6e733a1d012d204163636f756e7420696e666f726d6174696f6e20666f722060746f6b656e5f696460207820606d656d6265725f6964602072656d6f7665642066726f6d2073746f72616765dc2d20626c6f617420626f6e6420726566756e64656420746f20606d656d6265725f69646020636f6e74726f6c6c6572206163636f756e74cc2020286f722060626c6f61745f626f6e642e72657061796d656e745f726573747269637465645f746f60206163636f756e742900203c7765696768743e001c604f2028312960142d2044423ad820202d20604f28312960202d20646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e386a6f696e5f77686974656c6973740c01246d656d6265725f696420012c543a3a4d656d6265724964000120746f6b656e5f6964200128543a3a546f6b656e496400011470726f6f66490601404d65726b6c6550726f6f664f663c543e00034c11014a6f696e2077686974656c69737420666f72207065726d697373696f6e656420636173653a207573656420746f20616464206163636f756e747320666f7220746f6b656e38507265636f6e646974696f6e733a682d2027746f6b656e5f696427206d7573742062652076616c6964f42d20606f726967696e60207369676e6572206d757374206265206120636f6e74726f6c6c6572206163636f756e74206f6620606d656d6265725f696460c02d206163636f756e7420666f7220606d656d6265725f696460206d757374206e6f7420616c726561647920657869737409012d207472616e7366657220706f6c69637920697320605065726d697373696f6e65646020616e64206d65726b6c652070726f6f66206d7573742062652076616c6964003c506f7374636f6e646974696f6e733af42d206163636f756e7420666f7220606d656d6265725f696460206372656174656420616e6420616464656420746f2070616c6c65742073746f72616765e82d2060626c6f61745f626f6e6460207472616e736665727265642066726f6d2073656e64657220746f207472656173757279206163636f756e7400203c7765696768743e002423232057656967687438604f20284829602077686572653a802d2060486020697320746865206c656e677468206f66206070726f6f662e3060142d2044423ad820202d20604f28312960202d20646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5c70757263686173655f746f6b656e735f6f6e5f73616c650c0120746f6b656e5f6964200128543a3a546f6b656e49640001246d656d6265725f696420012c543a3a4d656d6265724964000118616d6f756e74180144546f6b656e42616c616e63654f663c543e0004ec94507572636861736520746f6b656e73206f6e2061637469766520746f6b656e2073616c652e0038507265636f6e646974696f6e733a802d20746f6b656e2062792060746f6b656e5f696460206d757374206578697374d02d20746f6b656e2062792060746f6b656e5f696460206d75737420626520696e204f66666572696e6753746174653a3a53616c65ec2d2060616d6f756e74602063616e6e6f7420657863656564206e756d626572206f6620746f6b656e732072656d61696e696e67206f6e2073616c6509012d20606f726967696e60207369676e6572206d75737420626520636f6e74726f6c6c6572206163636f756e74206f6620606d656d6265725f696460206d656d626572a42d2073656e646572277320617661696c61626c65204a4f592062616c616e6365206d7573742062653aec20202d203e3d20606a6f795f6578697374656e7469616c5f6465706f736974202b20616d6f756e74202a2073616c652e756e69745f70726963656080202020206966204163636f756e744461746120616c7265616479206578697374210120202d203e3d20606a6f795f6578697374656e7469616c5f6465706f736974202b20616d6f756e74202a2073616c652e756e69745f7072696365202b20626c6f61745f626f6e646084202020206966204163636f756e744461746120646f6573206e6f7420657869737435012d206c657420606665655f616d6f756e7460206265206073616c655f706c6174666f726d5f6665652e6d756c5f666c6f6f7228616d6f756e74202a2073616c652e756e69745f7072696365296059012d206966206073616c652e6561726e696e67735f64657374696e6174696f6e2e69735f736f6d6528296020616e64206073616c652e6561726e696e67735f64657374696e6174696f6e60206163636f756e74206861733c20207a65726f2062616c616e63653a390120202d2074686520616d6f756e7420746f206265207472616e736665727265642066726f6d206073656e6465726020746f206073616c652e6561726e696e67735f64657374696e6174696f6e602c4d0120202020776869636820697320657175616c20746f2060616d6f756e74202a2073616c652e756e69745f7072696365202d206665655f616d6f756e74602c206d7573742062652067726561746572207468616e7420202020606a6f795f6578697374656e7469616c5f6465706f7369746031012d20746f74616c206e756d626572206f6620746f6b656e7320616c72656164792070757263686173656420627920746865206d656d626572206f6e207468652063757272656e742073616c65f82020504c55532060616d6f756e7460206d757374206e6f74206578636565642073616c6527732070757263686173652063617020706572206d656d626572602d206966205065726d697373696f6e656420746f6b656e3a010120202d204163636f756e74496e666f4279546f6b656e416e644d656d62657228746f6b656e5f69642c20266d656d6265725f696429206d7573742065786973749c2d206966206073616c652e76657374696e675f7363686564756c652e69735f736f6d652829603ae020202d206e756d626572206f662073656e646572206163636f756e742773206f6e676f696e672076657374696e67207363686564756c6573cc202020206d757374206265203c204d617856657374696e675363686564756c65735065724163636f756e74506572546f6b656e003c506f7374636f6e646974696f6e733aac2d206966206073616c652e6561726e696e67735f64657374696e6174696f6e2e69735f736f6d652829603a4d0120202d2060616d6f756e74202a2073616c652e756e69745f7072696365202d206665655f616d6f756e7460204a4f5920746f6b656e7320617265207472616e7366657265642066726f6d206073656e646572608820202020746f206073616c652e6561726e696e67735f64657374696e6174696f6e60d420202d20606665655f616d6f756e7460204a4f5920697320736c61736865642066726f6d206073656e646572602062616c616e6365ac2d206966206073616c652e6561726e696e67735f64657374696e6174696f6e2e69735f6e6f6e652829603a0d0120202d2060616d6f756e74202a2073616c652e756e69745f707269636560204a4f5920697320736c61736865642066726f6d206073656e646572602062616c616e636549012d206966206e657720746f6b656e206163636f756e7420637265617465643a2060626c6f61745f626f6e6460207472616e736665727265642066726f6d206073656e6465726020746f2074726561737572799c2d206966206073616c652e76657374696e675f7363686564756c652e69735f736f6d652829603a0d0120202d20696620627579657220686173206e6f206076657374696e675f7363686564756c65602072656c6174656420746f207468652063757272656e742073616c653a5d01202020202d2061206e65772076657374696e67207363686564756c6520286073616c652e6765745f76657374696e675f7363686564756c652870757263686173655f616d6f756e7429602920697320616464656420746f80202020202020627579657227732060766573696e675f7363686564756c6573605501202020202d20736f6d652066696e69736865642076657374696e67207363686564756c652069732072656d6f7665642066726f6d2062757965722773206163636f756e745f6461746120696e20636173652074686559012020202020206e756d626572206f6620627579657227732076657374696e675f7363686564756c657320776173203d3d204d617856657374696e675363686564756c65735065724163636f756e74506572546f6b656e290120202d20696620627579657220616c7265616479206861732061206076657374696e675f7363686564756c65602072656c6174656420746f207468652063757272656e742073616c653afc202020202d2063757272656e742076657374696e67207363686564756c6527732060636c6966665f616d6f756e746020697320696e63726561736564206279fc2020202020206073616c652e6765745f76657374696e675f7363686564756c652870757263686173655f616d6f756e74292e636c6966665f616d6f756e74602901202020202d2063757272656e742076657374696e67207363686564756c6527732060706f73745f636c6966665f746f74616c5f616d6f756e746020697320696e6372656173656420627929012020202020206073616c652e6765745f76657374696e675f7363686564756c652870757263686173655f616d6f756e74292e706f73745f636c6966665f746f74616c5f616d6f756e74609c2d206966206073616c652e76657374696e675f7363686564756c652e69735f6e6f6e652829603ad820202d2062757965722773206163636f756e7420746f6b656e20616d6f756e7420696e637265617365642062792060616d6f756e746055012d2069662060746f6b656e5f646174612e73616c652e7175616e746974795f6c656674202d20616d6f756e74203d3d20306020616e64206073616c652e6175746f5f66696e616c697a6560206973206074727565604101202060746f6b656e5f646174612e73616c65602069732073657420746f204e6f6e652c206f74686572776973652060746f6b656e5f646174612e73616c652e7175616e746974795f6c65667460206973350120206465637265617365642062792060616d6f756e746020616e642060746f6b656e5f646174612e73616c652e66756e64735f636f6c6c65637465646020696e20696e6372656173656420627970202060616d6f756e74202a2073616c652e756e69745f70726963656000203c7765696768743e00242323205765696768741c604f2028312960142d2044423ad820202d20604f28312960202d20646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5070617274696369706174655f696e5f73706c69740c0120746f6b656e5f6964200128543a3a546f6b656e49640001246d656d6265725f696420012c543a3a4d656d6265724964000118616d6f756e74180144546f6b656e42616c616e63654f663c543e000568f0506172746963697061746520696e20746865202a6c61746573742a20746f6b656e20726576656e75652073706c697420286966206f6e676f696e672938507265636f6e646974696f6e733a8c2d2060746f6b656e60206d75737420657869737420666f722060746f6b656e5f696460fc2d20606f726967696e60207369676e6572206d75737420626520606d656d6265725f696460206d656d62657220636f6e74726f6c6c6572206163636f756e74582d2060616d6f756e7460206d757374206265203e2030cc2d20606163636f756e7460206d7573742065786973742020666f72206028746f6b656e5f69642c206d656d6265725f69642960fc2d2060746f6b656e2e73706c69745f73746174757360206d7573742062652061637469766520414e44205448454e2063757272656e745f626c6f636b20696eb82020205b73706c69742e73746172742c2073706c69742e7374617274202b2073706c69745f6475726174696f6e2981012d20606163636f756e742e7374616b696e675f7374617475732e69735f6e6f6e65282960204f5220606163636f756e742e7374616b696e675f7374617475732e73706c69745f6964602072656665727320746f206120706173742073706c6974782d20606163636f756e742e616d6f756e7460203e3d2060616d6f756e74602d012d206c657420606469766964656e64203d2073706c69745f616c6c6f636174696f6e202a206163636f756e742e7374616b65645f616d6f756e74202f20746f6b656e2e737570706c79606015012020207468656e2060747265617375727960206d7573742062652061626c6520746f207472616e7366657220606469766964656e646020616d6f756e74206f66204a4f592eec202020285468697320636f6e646974696f6e20746563686e6963616c6c792c2073686f756c6420616c7761797320626520736174697366696564290038506f7374636f6e646974696f6e732d012d20606469766964656e646020616d6f756e74206f66204a4f5973207472616e736665727265642066726f6d206074726561737572795f6163636f756e746020746f206073656e6465726045012d2060746f6b656e6020726576656e75652073706c6974206469766964656e647320706179656420747261636b696e67207661726961626c6520696e6372656173656420627920606469766964656e646045012d20606163636f756e742e7374616b696e675f737461747573602073657420746f20536f6d65282e2e2920776974682060616d6f756e746020616e642060746f6b656e2e6c61746573745f73706c69746000203c7765696768743e00242323205765696768741c604f2028312960142d2044423ad820202d20604f28312960202d20646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e48657869745f726576656e75655f73706c6974080120746f6b656e5f6964200128543a3a546f6b656e49640001246d656d6265725f696420012c543a3a4d656d626572496400064cb453706c69742d70617274696369706174696e672075736572206c656176657320726576656e75652073706c697434507265636f6e646974696f6e738c2d2060746f6b656e60206d75737420657869737420666f722060746f6b656e5f696460fc2d20606f726967696e60207369676e6572206d75737420626520606d656d6265725f696460206d656d62657220636f6e74726f6c6c6572206163636f756e74c82d20606163636f756e7460206d75737420657869737420666f72206028746f6b656e5f69642c206d656d6265725f69642960902d20606163636f756e742e7374616b696e67207374617475732e69735f736f6d6528292729012d2069662060286163636f756e742e7374616b696e675f7374617475732e73706c69745f6964203d3d20746f6b656e2e6e6578745f726576656e75655f73706c69745f6964202d2031604101202020414e442060746f6b656e2e726576656e75655f73706c6974602069732061637469766529205448454e2073706c6974207374616b696e6720706572696f6420206d75737420626520656e6465640038506f7374636f6e646974696f6e73982d20606163636f756e742e7374616b696e675f737461747573602073657420746f204e6f6e6500203c7765696768743e00242323205765696768741c604f2028312960142d2044423ad820202d20604f28312960202d20646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e35060c5070616c6c65745f70726f6a6563745f746f6b656e147479706573245472616e736665727308204d656d626572496401201c5061796d656e740139060004003d06016c42547265654d61703c4d656d62657249642c205061796d656e743e000039060c5070616c6c65745f70726f6a6563745f746f6b656e1474797065731c5061796d656e74041c42616c616e6365011800040118616d6f756e7418011c42616c616e636500003d06042042547265654d617008044b01200456013906000400410600000041060000024506004506000004082039060049060c5070616c6c65745f70726f6a6563745f746f6b656e1474797065732c4d65726b6c6550726f6f660418486173686572012d040004004d0601845665633c284861736865723a3a4f75747075742c204d65726b6c6553696465293e00004d060000025106005106000004082455060055060c5070616c6c65745f70726f6a6563745f746f6b656e147479706573284d65726b6c6553696465000108145269676874000000104c656674000100005906085c70616c6c65745f70726f706f73616c735f656e67696e651043616c6c04045400011010766f7465100120766f7465725f696420012c4d656d62657249643c543e00012c70726f706f73616c5f6964100134543a3a50726f706f73616c4964000110766f746525030120566f74654b696e64000124726174696f6e616c6528011c5665633c75383e000028d4566f74652065787472696e7369632e20436f6e646974696f6e733a20206f726967696e206d75737420616c6c6f7720766f7465732e00203c7765696768743e002423232057656967687438604f20285229602077686572653ab42d20605260206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f722070617261656d746572732c23203c2f7765696768743e3c63616e63656c5f70726f706f73616c08012c70726f706f7365725f696420012c4d656d62657249643c543e00012c70726f706f73616c5f6964100134543a3a50726f706f73616c4964000128ac43616e63656c20612070726f706f73616c20627920697473206f726967696e616c2070726f706f7365722e00203c7765696768743e002423232057656967687438604f20284c29602077686572653ac02d20604c602069732074686520746f74616c206e756d626572206f66206c6f636b7320696e206042616c616e63657360142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e347665746f5f70726f706f73616c04012c70726f706f73616c5f6964100134543a3a50726f706f73616c4964000224785665746f20612070726f706f73616c2e204d75737420626520726f6f742e00203c7765696768743e0024232320576569676874c4604f202831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3c70726f706f7365725f72656d61726b0c012c70726f706f73616c5f6964100134543a3a50726f706f73616c496400012c70726f706f7365725f696420012c4d656d62657249643c543e00010c6d736728011c5665633c75383e0003243c50726f706f7365722052656d61726b00203c7765696768743e0024232320576569676874c4604f202831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e5d06086c70616c6c65745f70726f706f73616c735f64697363757373696f6e1043616c6c040454000110206164645f706f7374100138706f73745f617574686f725f696420012c4d656d62657249643c543e0001247468726561645f696420012c543a3a54687265616449640001107465787428011c5665633c75383e0001206564697461626c65880110626f6f6c0000289441646473206120706f7374207769746820617574686f72206f726967696e20636865636b2e00203c7765696768743e002423232057656967687438604f20284c29602077686572653aa02d20604c60206973207468652073697a65206f662060746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c64656c6574655f706f737410012864656c657465725f696420012c4d656d62657249643c543e00011c706f73745f6964200124543a3a506f737449640001247468726561645f696420012c543a3a546872656164496400011068696465880110626f6f6c000128510152656d6f766520706f73742066726f6d2073746f726167652c207769746820746865206c61737420706172616d6574657220696e6469636174696e67207768657468657220746f20616c736f206869646520697428696e207468652055492e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c7570646174655f706f73740c01247468726561645f696420012c543a3a546872656164496400011c706f73745f6964200124543a3a506f737449640001107465787428011c5665633c75383e0002282d0155706461746573206120706f7374207769746820617574686f72206f726967696e20636865636b2e2055706461746520617474656d707473206e756d626572206973206c696d697465642e00203c7765696768743e002423232057656967687438604f20284c29602077686572653aa02d20604c60206973207468652073697a65206f662060746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e486368616e67655f7468726561645f6d6f64650c01246d656d6265725f696420012c4d656d62657249643c543e0001247468726561645f696420012c543a3a54687265616449640001106d6f64652d0301d85468726561644d6f64653c42547265655365743c3c54206173204d656d6265727368697054797065733e3a3a4d656d62657249643e3e0003287c4368616e67657320746872656164207065726d697373696f6e206d6f64652e00203c7765696768743e0024232320576569676874dc604f2028572960206966205468726561644d6f646520697320636c6f7365206f72204f283129206f74686572776973652077686572653ad02d2060576020697320746865206e756d626572206f662077686974656c6973746564206d656d6265727320696e20606d6f646560142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e6106085870616c6c65745f70726f706f73616c735f636f6465781043616c6c0404540001043c6372656174655f70726f706f73616c08016c67656e6572616c5f70726f706f73616c5f706172616d65746572733503017047656e6572616c50726f706f73616c506172616d65746572733c543e00014070726f706f73616c5f64657461696c733903015050726f706f73616c44657461696c734f663c543e000034450143726561746520612070726f706f73616c2c207468652074797065206f662070726f706f73616c20646570656e6473206f6e20746865206070726f706f73616c5f64657461696c73602076617269616e7400203c7765696768743e002423232057656967687458604f202854202b2044202b204929602077686572653a902d2060546020697320746865207469746c652073697a6520696e206b696c6f6279746573a82d2060446020697320746865206465736372697074696f6e2073697a6520696e206b696c6f6279746573e02d20604960206973207468652073697a65206f6620616e7920706172616d6574657220696e206070726f706f73616c5f64657461696c736084202028696e206b696c6f62797465732069662069742773206d6574616461746129142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e6506085070616c6c65745f776f726b696e675f67726f75701043616c6c08045400044900014c2c6164645f6f70656e696e6710012c6465736372697074696f6e28011c5665633c75383e0001306f70656e696e675f747970656503012c4f70656e696e67547970650001307374616b655f706f6c696379490301a45374616b65506f6c6963793c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e3e0001407265776172645f7065725f626c6f636b290101504f7074696f6e3c42616c616e63654f663c543e3e00002cc44164642061206a6f62206f70656e696e6720666f72206120726567756c617220776f726b65722f6c65616420726f6c652e490152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20616464206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e002423232057656967687438604f20284429602077686572653abc2d20604460206973207468652073697a65206f6620606465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e406170706c795f6f6e5f6f70656e696e67040104706903016c4170706c794f6e4f70656e696e67506172616d65746572733c543e000128684170706c79206f6e206120776f726b6572206f70656e696e672e002823203c7765696768743e002423232057656967687438604f20284429602077686572653ac42d20604460206973207468652073697a65206f662060702e6465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3066696c6c5f6f70656e696e670801286f70656e696e675f69642001244f70656e696e6749640001687375636365737366756c5f6170706c69636174696f6e5f6964735101015c42547265655365743c4170706c69636174696f6e49643e000228ac46696c6c206f70656e696e6720666f722074686520726567756c61722f6c65616420706f736974696f6e2e4d0152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2066696c6c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e2823203c7765696768743e002423232057656967687438604f20284129602077686572653acc2d2060416020697320746865206c656e677468206f6620607375636365737366756c5f6170706c69636174696f6e5f69647360142d2044423a242020202d204f2841292c23203c2f7765696768743e4c7570646174655f726f6c655f6163636f756e74080124776f726b65725f696420012c576f726b657249643c543e00014c6e65775f726f6c655f6163636f756e745f6964000130543a3a4163636f756e744964000324150155706461746520746865206173736f63696174656420726f6c65206163636f756e74206f66207468652061637469766520726567756c617220776f726b65722f6c6561642e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e286c656176655f726f6c65080124776f726b65725f696420012c576f726b657249643c543e000124726174696f6e616c651501013c4f7074696f6e3c5665633c75383e3e000424904c656176652074686520726f6c65206279207468652061637469766520776f726b65722e2823203c7765696768743e002423232057656967687438604f20285229602077686572653ab42d20605260206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e387465726d696e6174655f726f6c650c0124776f726b65725f696420012c576f726b657249643c543e00011c70656e616c7479290101504f7074696f6e3c42616c616e63654f663c543e3e000124726174696f6e616c651501013c4f7074696f6e3c5665633c75383e3e000528a05465726d696e617465207468652061637469766520776f726b657220627920746865206c6561642e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f207465726d696e61746520746865206c656164657220726f6c65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ad82d20605060206973207468652073697a65206070656e616c74792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c736c6173685f7374616b650c0124776f726b65725f696420012c576f726b657249643c543e00011c70656e616c747918013042616c616e63654f663c543e000124726174696f6e616c651501013c4f7074696f6e3c5665633c75383e3e00062c7d01536c61736865732074686520726567756c617220776f726b6572207374616b652c2064656d616e64732061206c6561646572206f726967696e2e204e6f206c696d6974732c206e6f20616374696f6e73206f6e207a65726f207374616b652e3d01496620736c617368696e672062616c616e63652067726561746572207468616e20746865206578697374696e67207374616b65202d207374616b6520697320736c617368656420746f207a65726f2e19015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20736c61736820746865206c6561646572207374616b65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ae82d20605060206973207468652073697a65206f66206070656e616c6974792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3864656372656173655f7374616b65080124776f726b65725f696420012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e00073021014465637265617365732074686520726567756c617220776f726b65722f6c656164207374616b6520616e642072657475726e73207468652072656d61696e64657220746f207468653901776f726b6572207374616b696e675f6163636f756e745f69642e2043616e2062652064656372656173656420746f207a65726f2c206e6f20616374696f6e73206f6e207a65726f207374616b652e944163636570747320746865207374616b6520616d6f756e7420746f2064656372656173652e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20646563726561736520746865206c6561646572207374616b65292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e38696e6372656173655f7374616b65080124776f726b65725f696420012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e0008280501496e637265617365732074686520726567756c617220776f726b65722f6c656164207374616b652c2064656d616e6473206120776f726b6572206f726967696e2e6d014c6f636b7320746f6b656e732066726f6d2074686520776f726b6572207374616b696e675f6163636f756e745f696420657175616c20746f206e6577207374616b652e204e6f206c696d697473206f6e20746865207374616b652e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5077697468647261775f6170706c69636174696f6e0401386170706c69636174696f6e5f69642001344170706c69636174696f6e4964000924010157697468647261772074686520776f726b6572206170706c69636174696f6e2e2043616e20626520646f6e652062792074686520776f726b6572206f6e6c792e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3863616e63656c5f6f70656e696e670401286f70656e696e675f69642001244f70656e696e674964000a28dc43616e63656c20616e206f70656e696e6720666f722074686520726567756c617220776f726b65722f6c65616420706f736974696f6e2e550152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2063616e63656c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e287365745f6275646765740401286e65775f62756467657418013042616c616e63654f663c543e000b28a0536574732061206e65772062756467657420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e547570646174655f7265776172645f6163636f756e74080124776f726b65725f696420012c576f726b657249643c543e0001546e65775f7265776172645f6163636f756e745f6964000130543a3a4163636f756e744964000c2469015570646174652074686520726577617264206163636f756e74206173736f6369617465642077697468206120736574207265776172642072656c6174696f6e7368697020666f72207468652061637469766520776f726b65722e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e507570646174655f7265776172645f616d6f756e74080124776f726b65725f696420012c576f726b657249643c543e0001407265776172645f7065725f626c6f636b290101504f7074696f6e3c42616c616e63654f663c543e3e000d28c855706461746520746865207265776172642070657220626c6f636b20666f72207468652061637469766520776f726b65722e310152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20757064617465206c656164657227732072657761726420616d6f756e74292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3c7365745f7374617475735f7465787404012c7374617475735f746578741501013c4f7074696f6e3c5665633c75383e3e000e30b4536574732061206e657720737461747573207465787420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e002423232057656967687438604f20285329602077686572653a4d012d20605360206973207468652073697a65206f662074686520636f6e74656e7473206f6620607374617475735f746578746020696e206b696c6f6279746573207768656e206974206973206e6f74206e6f6e6500142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e447370656e645f66726f6d5f6275646765740c01286163636f756e745f6964000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c651501013c4f7074696f6e3c5665633c75383e3e000f28a85472616e73666572732073706563696669656420616d6f756e7420746f20616e79206163636f756e742e5c5265717569726573206c6561646572206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6466756e645f776f726b696e675f67726f75705f6275646765740c01246d656d6265725f696420012c4d656d62657249643c543e000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c6528011c5665633c75383e0010209846756e6420776f726b696e672067726f7570206275646765742062792061206d656d6265722e203c7765696768743e0024232320576569676874c4604f202831296020446f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c6c6561645f72656d61726b04010c6d736728011c5665633c75383e0011284c4c6561642072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e34776f726b65725f72656d61726b080124776f726b65725f696420012c576f726b657249643c543e00010c6d736728011c5665633c75383e00122854576f726b65722072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e6906085070616c6c65745f776f726b696e675f67726f75701043616c6c08045400044900014c2c6164645f6f70656e696e6710012c6465736372697074696f6e28011c5665633c75383e0001306f70656e696e675f747970656503012c4f70656e696e67547970650001307374616b655f706f6c696379490301a45374616b65506f6c6963793c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e3e0001407265776172645f7065725f626c6f636b290101504f7074696f6e3c42616c616e63654f663c543e3e00002cc44164642061206a6f62206f70656e696e6720666f72206120726567756c617220776f726b65722f6c65616420726f6c652e490152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20616464206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e002423232057656967687438604f20284429602077686572653abc2d20604460206973207468652073697a65206f6620606465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e406170706c795f6f6e5f6f70656e696e67040104706903016c4170706c794f6e4f70656e696e67506172616d65746572733c543e000128684170706c79206f6e206120776f726b6572206f70656e696e672e002823203c7765696768743e002423232057656967687438604f20284429602077686572653ac42d20604460206973207468652073697a65206f662060702e6465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3066696c6c5f6f70656e696e670801286f70656e696e675f69642001244f70656e696e6749640001687375636365737366756c5f6170706c69636174696f6e5f6964735101015c42547265655365743c4170706c69636174696f6e49643e000228ac46696c6c206f70656e696e6720666f722074686520726567756c61722f6c65616420706f736974696f6e2e4d0152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2066696c6c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e2823203c7765696768743e002423232057656967687438604f20284129602077686572653acc2d2060416020697320746865206c656e677468206f6620607375636365737366756c5f6170706c69636174696f6e5f69647360142d2044423a242020202d204f2841292c23203c2f7765696768743e4c7570646174655f726f6c655f6163636f756e74080124776f726b65725f696420012c576f726b657249643c543e00014c6e65775f726f6c655f6163636f756e745f6964000130543a3a4163636f756e744964000324150155706461746520746865206173736f63696174656420726f6c65206163636f756e74206f66207468652061637469766520726567756c617220776f726b65722f6c6561642e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e286c656176655f726f6c65080124776f726b65725f696420012c576f726b657249643c543e000124726174696f6e616c651501013c4f7074696f6e3c5665633c75383e3e000424904c656176652074686520726f6c65206279207468652061637469766520776f726b65722e2823203c7765696768743e002423232057656967687438604f20285229602077686572653ab42d20605260206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e387465726d696e6174655f726f6c650c0124776f726b65725f696420012c576f726b657249643c543e00011c70656e616c7479290101504f7074696f6e3c42616c616e63654f663c543e3e000124726174696f6e616c651501013c4f7074696f6e3c5665633c75383e3e000528a05465726d696e617465207468652061637469766520776f726b657220627920746865206c6561642e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f207465726d696e61746520746865206c656164657220726f6c65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ad82d20605060206973207468652073697a65206070656e616c74792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c736c6173685f7374616b650c0124776f726b65725f696420012c576f726b657249643c543e00011c70656e616c747918013042616c616e63654f663c543e000124726174696f6e616c651501013c4f7074696f6e3c5665633c75383e3e00062c7d01536c61736865732074686520726567756c617220776f726b6572207374616b652c2064656d616e64732061206c6561646572206f726967696e2e204e6f206c696d6974732c206e6f20616374696f6e73206f6e207a65726f207374616b652e3d01496620736c617368696e672062616c616e63652067726561746572207468616e20746865206578697374696e67207374616b65202d207374616b6520697320736c617368656420746f207a65726f2e19015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20736c61736820746865206c6561646572207374616b65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ae82d20605060206973207468652073697a65206f66206070656e616c6974792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3864656372656173655f7374616b65080124776f726b65725f696420012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e00073021014465637265617365732074686520726567756c617220776f726b65722f6c656164207374616b6520616e642072657475726e73207468652072656d61696e64657220746f207468653901776f726b6572207374616b696e675f6163636f756e745f69642e2043616e2062652064656372656173656420746f207a65726f2c206e6f20616374696f6e73206f6e207a65726f207374616b652e944163636570747320746865207374616b6520616d6f756e7420746f2064656372656173652e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20646563726561736520746865206c6561646572207374616b65292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e38696e6372656173655f7374616b65080124776f726b65725f696420012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e0008280501496e637265617365732074686520726567756c617220776f726b65722f6c656164207374616b652c2064656d616e6473206120776f726b6572206f726967696e2e6d014c6f636b7320746f6b656e732066726f6d2074686520776f726b6572207374616b696e675f6163636f756e745f696420657175616c20746f206e6577207374616b652e204e6f206c696d697473206f6e20746865207374616b652e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5077697468647261775f6170706c69636174696f6e0401386170706c69636174696f6e5f69642001344170706c69636174696f6e4964000924010157697468647261772074686520776f726b6572206170706c69636174696f6e2e2043616e20626520646f6e652062792074686520776f726b6572206f6e6c792e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3863616e63656c5f6f70656e696e670401286f70656e696e675f69642001244f70656e696e674964000a28dc43616e63656c20616e206f70656e696e6720666f722074686520726567756c617220776f726b65722f6c65616420706f736974696f6e2e550152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2063616e63656c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e287365745f6275646765740401286e65775f62756467657418013042616c616e63654f663c543e000b28a0536574732061206e65772062756467657420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e547570646174655f7265776172645f6163636f756e74080124776f726b65725f696420012c576f726b657249643c543e0001546e65775f7265776172645f6163636f756e745f6964000130543a3a4163636f756e744964000c2469015570646174652074686520726577617264206163636f756e74206173736f6369617465642077697468206120736574207265776172642072656c6174696f6e7368697020666f72207468652061637469766520776f726b65722e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e507570646174655f7265776172645f616d6f756e74080124776f726b65725f696420012c576f726b657249643c543e0001407265776172645f7065725f626c6f636b290101504f7074696f6e3c42616c616e63654f663c543e3e000d28c855706461746520746865207265776172642070657220626c6f636b20666f72207468652061637469766520776f726b65722e310152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20757064617465206c656164657227732072657761726420616d6f756e74292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3c7365745f7374617475735f7465787404012c7374617475735f746578741501013c4f7074696f6e3c5665633c75383e3e000e30b4536574732061206e657720737461747573207465787420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e002423232057656967687438604f20285329602077686572653a4d012d20605360206973207468652073697a65206f662074686520636f6e74656e7473206f6620607374617475735f746578746020696e206b696c6f6279746573207768656e206974206973206e6f74206e6f6e6500142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e447370656e645f66726f6d5f6275646765740c01286163636f756e745f6964000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c651501013c4f7074696f6e3c5665633c75383e3e000f28a85472616e73666572732073706563696669656420616d6f756e7420746f20616e79206163636f756e742e5c5265717569726573206c6561646572206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6466756e645f776f726b696e675f67726f75705f6275646765740c01246d656d6265725f696420012c4d656d62657249643c543e000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c6528011c5665633c75383e0010209846756e6420776f726b696e672067726f7570206275646765742062792061206d656d6265722e203c7765696768743e0024232320576569676874c4604f202831296020446f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c6c6561645f72656d61726b04010c6d736728011c5665633c75383e0011284c4c6561642072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e34776f726b65725f72656d61726b080124776f726b65725f696420012c576f726b657249643c543e00010c6d736728011c5665633c75383e00122854576f726b65722072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e6d06085070616c6c65745f776f726b696e675f67726f75701043616c6c08045400044900014c2c6164645f6f70656e696e6710012c6465736372697074696f6e28011c5665633c75383e0001306f70656e696e675f747970656503012c4f70656e696e67547970650001307374616b655f706f6c696379490301a45374616b65506f6c6963793c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e3e0001407265776172645f7065725f626c6f636b290101504f7074696f6e3c42616c616e63654f663c543e3e00002cc44164642061206a6f62206f70656e696e6720666f72206120726567756c617220776f726b65722f6c65616420726f6c652e490152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20616464206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e002423232057656967687438604f20284429602077686572653abc2d20604460206973207468652073697a65206f6620606465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e406170706c795f6f6e5f6f70656e696e67040104706903016c4170706c794f6e4f70656e696e67506172616d65746572733c543e000128684170706c79206f6e206120776f726b6572206f70656e696e672e002823203c7765696768743e002423232057656967687438604f20284429602077686572653ac42d20604460206973207468652073697a65206f662060702e6465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3066696c6c5f6f70656e696e670801286f70656e696e675f69642001244f70656e696e6749640001687375636365737366756c5f6170706c69636174696f6e5f6964735101015c42547265655365743c4170706c69636174696f6e49643e000228ac46696c6c206f70656e696e6720666f722074686520726567756c61722f6c65616420706f736974696f6e2e4d0152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2066696c6c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e2823203c7765696768743e002423232057656967687438604f20284129602077686572653acc2d2060416020697320746865206c656e677468206f6620607375636365737366756c5f6170706c69636174696f6e5f69647360142d2044423a242020202d204f2841292c23203c2f7765696768743e4c7570646174655f726f6c655f6163636f756e74080124776f726b65725f696420012c576f726b657249643c543e00014c6e65775f726f6c655f6163636f756e745f6964000130543a3a4163636f756e744964000324150155706461746520746865206173736f63696174656420726f6c65206163636f756e74206f66207468652061637469766520726567756c617220776f726b65722f6c6561642e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e286c656176655f726f6c65080124776f726b65725f696420012c576f726b657249643c543e000124726174696f6e616c651501013c4f7074696f6e3c5665633c75383e3e000424904c656176652074686520726f6c65206279207468652061637469766520776f726b65722e2823203c7765696768743e002423232057656967687438604f20285229602077686572653ab42d20605260206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e387465726d696e6174655f726f6c650c0124776f726b65725f696420012c576f726b657249643c543e00011c70656e616c7479290101504f7074696f6e3c42616c616e63654f663c543e3e000124726174696f6e616c651501013c4f7074696f6e3c5665633c75383e3e000528a05465726d696e617465207468652061637469766520776f726b657220627920746865206c6561642e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f207465726d696e61746520746865206c656164657220726f6c65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ad82d20605060206973207468652073697a65206070656e616c74792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c736c6173685f7374616b650c0124776f726b65725f696420012c576f726b657249643c543e00011c70656e616c747918013042616c616e63654f663c543e000124726174696f6e616c651501013c4f7074696f6e3c5665633c75383e3e00062c7d01536c61736865732074686520726567756c617220776f726b6572207374616b652c2064656d616e64732061206c6561646572206f726967696e2e204e6f206c696d6974732c206e6f20616374696f6e73206f6e207a65726f207374616b652e3d01496620736c617368696e672062616c616e63652067726561746572207468616e20746865206578697374696e67207374616b65202d207374616b6520697320736c617368656420746f207a65726f2e19015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20736c61736820746865206c6561646572207374616b65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ae82d20605060206973207468652073697a65206f66206070656e616c6974792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3864656372656173655f7374616b65080124776f726b65725f696420012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e00073021014465637265617365732074686520726567756c617220776f726b65722f6c656164207374616b6520616e642072657475726e73207468652072656d61696e64657220746f207468653901776f726b6572207374616b696e675f6163636f756e745f69642e2043616e2062652064656372656173656420746f207a65726f2c206e6f20616374696f6e73206f6e207a65726f207374616b652e944163636570747320746865207374616b6520616d6f756e7420746f2064656372656173652e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20646563726561736520746865206c6561646572207374616b65292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e38696e6372656173655f7374616b65080124776f726b65725f696420012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e0008280501496e637265617365732074686520726567756c617220776f726b65722f6c656164207374616b652c2064656d616e6473206120776f726b6572206f726967696e2e6d014c6f636b7320746f6b656e732066726f6d2074686520776f726b6572207374616b696e675f6163636f756e745f696420657175616c20746f206e6577207374616b652e204e6f206c696d697473206f6e20746865207374616b652e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5077697468647261775f6170706c69636174696f6e0401386170706c69636174696f6e5f69642001344170706c69636174696f6e4964000924010157697468647261772074686520776f726b6572206170706c69636174696f6e2e2043616e20626520646f6e652062792074686520776f726b6572206f6e6c792e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3863616e63656c5f6f70656e696e670401286f70656e696e675f69642001244f70656e696e674964000a28dc43616e63656c20616e206f70656e696e6720666f722074686520726567756c617220776f726b65722f6c65616420706f736974696f6e2e550152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2063616e63656c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e287365745f6275646765740401286e65775f62756467657418013042616c616e63654f663c543e000b28a0536574732061206e65772062756467657420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e547570646174655f7265776172645f6163636f756e74080124776f726b65725f696420012c576f726b657249643c543e0001546e65775f7265776172645f6163636f756e745f6964000130543a3a4163636f756e744964000c2469015570646174652074686520726577617264206163636f756e74206173736f6369617465642077697468206120736574207265776172642072656c6174696f6e7368697020666f72207468652061637469766520776f726b65722e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e507570646174655f7265776172645f616d6f756e74080124776f726b65725f696420012c576f726b657249643c543e0001407265776172645f7065725f626c6f636b290101504f7074696f6e3c42616c616e63654f663c543e3e000d28c855706461746520746865207265776172642070657220626c6f636b20666f72207468652061637469766520776f726b65722e310152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20757064617465206c656164657227732072657761726420616d6f756e74292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3c7365745f7374617475735f7465787404012c7374617475735f746578741501013c4f7074696f6e3c5665633c75383e3e000e30b4536574732061206e657720737461747573207465787420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e002423232057656967687438604f20285329602077686572653a4d012d20605360206973207468652073697a65206f662074686520636f6e74656e7473206f6620607374617475735f746578746020696e206b696c6f6279746573207768656e206974206973206e6f74206e6f6e6500142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e447370656e645f66726f6d5f6275646765740c01286163636f756e745f6964000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c651501013c4f7074696f6e3c5665633c75383e3e000f28a85472616e73666572732073706563696669656420616d6f756e7420746f20616e79206163636f756e742e5c5265717569726573206c6561646572206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6466756e645f776f726b696e675f67726f75705f6275646765740c01246d656d6265725f696420012c4d656d62657249643c543e000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c6528011c5665633c75383e0010209846756e6420776f726b696e672067726f7570206275646765742062792061206d656d6265722e203c7765696768743e0024232320576569676874c4604f202831296020446f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c6c6561645f72656d61726b04010c6d736728011c5665633c75383e0011284c4c6561642072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e34776f726b65725f72656d61726b080124776f726b65725f696420012c576f726b657249643c543e00010c6d736728011c5665633c75383e00122854576f726b65722072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e7106085070616c6c65745f776f726b696e675f67726f75701043616c6c08045400044900014c2c6164645f6f70656e696e6710012c6465736372697074696f6e28011c5665633c75383e0001306f70656e696e675f747970656503012c4f70656e696e67547970650001307374616b655f706f6c696379490301a45374616b65506f6c6963793c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e3e0001407265776172645f7065725f626c6f636b290101504f7074696f6e3c42616c616e63654f663c543e3e00002cc44164642061206a6f62206f70656e696e6720666f72206120726567756c617220776f726b65722f6c65616420726f6c652e490152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20616464206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e002423232057656967687438604f20284429602077686572653abc2d20604460206973207468652073697a65206f6620606465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e406170706c795f6f6e5f6f70656e696e67040104706903016c4170706c794f6e4f70656e696e67506172616d65746572733c543e000128684170706c79206f6e206120776f726b6572206f70656e696e672e002823203c7765696768743e002423232057656967687438604f20284429602077686572653ac42d20604460206973207468652073697a65206f662060702e6465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3066696c6c5f6f70656e696e670801286f70656e696e675f69642001244f70656e696e6749640001687375636365737366756c5f6170706c69636174696f6e5f6964735101015c42547265655365743c4170706c69636174696f6e49643e000228ac46696c6c206f70656e696e6720666f722074686520726567756c61722f6c65616420706f736974696f6e2e4d0152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2066696c6c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e2823203c7765696768743e002423232057656967687438604f20284129602077686572653acc2d2060416020697320746865206c656e677468206f6620607375636365737366756c5f6170706c69636174696f6e5f69647360142d2044423a242020202d204f2841292c23203c2f7765696768743e4c7570646174655f726f6c655f6163636f756e74080124776f726b65725f696420012c576f726b657249643c543e00014c6e65775f726f6c655f6163636f756e745f6964000130543a3a4163636f756e744964000324150155706461746520746865206173736f63696174656420726f6c65206163636f756e74206f66207468652061637469766520726567756c617220776f726b65722f6c6561642e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e286c656176655f726f6c65080124776f726b65725f696420012c576f726b657249643c543e000124726174696f6e616c651501013c4f7074696f6e3c5665633c75383e3e000424904c656176652074686520726f6c65206279207468652061637469766520776f726b65722e2823203c7765696768743e002423232057656967687438604f20285229602077686572653ab42d20605260206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e387465726d696e6174655f726f6c650c0124776f726b65725f696420012c576f726b657249643c543e00011c70656e616c7479290101504f7074696f6e3c42616c616e63654f663c543e3e000124726174696f6e616c651501013c4f7074696f6e3c5665633c75383e3e000528a05465726d696e617465207468652061637469766520776f726b657220627920746865206c6561642e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f207465726d696e61746520746865206c656164657220726f6c65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ad82d20605060206973207468652073697a65206070656e616c74792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c736c6173685f7374616b650c0124776f726b65725f696420012c576f726b657249643c543e00011c70656e616c747918013042616c616e63654f663c543e000124726174696f6e616c651501013c4f7074696f6e3c5665633c75383e3e00062c7d01536c61736865732074686520726567756c617220776f726b6572207374616b652c2064656d616e64732061206c6561646572206f726967696e2e204e6f206c696d6974732c206e6f20616374696f6e73206f6e207a65726f207374616b652e3d01496620736c617368696e672062616c616e63652067726561746572207468616e20746865206578697374696e67207374616b65202d207374616b6520697320736c617368656420746f207a65726f2e19015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20736c61736820746865206c6561646572207374616b65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ae82d20605060206973207468652073697a65206f66206070656e616c6974792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3864656372656173655f7374616b65080124776f726b65725f696420012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e00073021014465637265617365732074686520726567756c617220776f726b65722f6c656164207374616b6520616e642072657475726e73207468652072656d61696e64657220746f207468653901776f726b6572207374616b696e675f6163636f756e745f69642e2043616e2062652064656372656173656420746f207a65726f2c206e6f20616374696f6e73206f6e207a65726f207374616b652e944163636570747320746865207374616b6520616d6f756e7420746f2064656372656173652e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20646563726561736520746865206c6561646572207374616b65292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e38696e6372656173655f7374616b65080124776f726b65725f696420012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e0008280501496e637265617365732074686520726567756c617220776f726b65722f6c656164207374616b652c2064656d616e6473206120776f726b6572206f726967696e2e6d014c6f636b7320746f6b656e732066726f6d2074686520776f726b6572207374616b696e675f6163636f756e745f696420657175616c20746f206e6577207374616b652e204e6f206c696d697473206f6e20746865207374616b652e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5077697468647261775f6170706c69636174696f6e0401386170706c69636174696f6e5f69642001344170706c69636174696f6e4964000924010157697468647261772074686520776f726b6572206170706c69636174696f6e2e2043616e20626520646f6e652062792074686520776f726b6572206f6e6c792e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3863616e63656c5f6f70656e696e670401286f70656e696e675f69642001244f70656e696e674964000a28dc43616e63656c20616e206f70656e696e6720666f722074686520726567756c617220776f726b65722f6c65616420706f736974696f6e2e550152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2063616e63656c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e287365745f6275646765740401286e65775f62756467657418013042616c616e63654f663c543e000b28a0536574732061206e65772062756467657420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e547570646174655f7265776172645f6163636f756e74080124776f726b65725f696420012c576f726b657249643c543e0001546e65775f7265776172645f6163636f756e745f6964000130543a3a4163636f756e744964000c2469015570646174652074686520726577617264206163636f756e74206173736f6369617465642077697468206120736574207265776172642072656c6174696f6e7368697020666f72207468652061637469766520776f726b65722e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e507570646174655f7265776172645f616d6f756e74080124776f726b65725f696420012c576f726b657249643c543e0001407265776172645f7065725f626c6f636b290101504f7074696f6e3c42616c616e63654f663c543e3e000d28c855706461746520746865207265776172642070657220626c6f636b20666f72207468652061637469766520776f726b65722e310152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20757064617465206c656164657227732072657761726420616d6f756e74292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3c7365745f7374617475735f7465787404012c7374617475735f746578741501013c4f7074696f6e3c5665633c75383e3e000e30b4536574732061206e657720737461747573207465787420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e002423232057656967687438604f20285329602077686572653a4d012d20605360206973207468652073697a65206f662074686520636f6e74656e7473206f6620607374617475735f746578746020696e206b696c6f6279746573207768656e206974206973206e6f74206e6f6e6500142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e447370656e645f66726f6d5f6275646765740c01286163636f756e745f6964000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c651501013c4f7074696f6e3c5665633c75383e3e000f28a85472616e73666572732073706563696669656420616d6f756e7420746f20616e79206163636f756e742e5c5265717569726573206c6561646572206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6466756e645f776f726b696e675f67726f75705f6275646765740c01246d656d6265725f696420012c4d656d62657249643c543e000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c6528011c5665633c75383e0010209846756e6420776f726b696e672067726f7570206275646765742062792061206d656d6265722e203c7765696768743e0024232320576569676874c4604f202831296020446f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c6c6561645f72656d61726b04010c6d736728011c5665633c75383e0011284c4c6561642072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e34776f726b65725f72656d61726b080124776f726b65725f696420012c576f726b657249643c543e00010c6d736728011c5665633c75383e00122854576f726b65722072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e7506085070616c6c65745f776f726b696e675f67726f75701043616c6c08045400044900014c2c6164645f6f70656e696e6710012c6465736372697074696f6e28011c5665633c75383e0001306f70656e696e675f747970656503012c4f70656e696e67547970650001307374616b655f706f6c696379490301a45374616b65506f6c6963793c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e3e0001407265776172645f7065725f626c6f636b290101504f7074696f6e3c42616c616e63654f663c543e3e00002cc44164642061206a6f62206f70656e696e6720666f72206120726567756c617220776f726b65722f6c65616420726f6c652e490152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20616464206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e002423232057656967687438604f20284429602077686572653abc2d20604460206973207468652073697a65206f6620606465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e406170706c795f6f6e5f6f70656e696e67040104706903016c4170706c794f6e4f70656e696e67506172616d65746572733c543e000128684170706c79206f6e206120776f726b6572206f70656e696e672e002823203c7765696768743e002423232057656967687438604f20284429602077686572653ac42d20604460206973207468652073697a65206f662060702e6465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3066696c6c5f6f70656e696e670801286f70656e696e675f69642001244f70656e696e6749640001687375636365737366756c5f6170706c69636174696f6e5f6964735101015c42547265655365743c4170706c69636174696f6e49643e000228ac46696c6c206f70656e696e6720666f722074686520726567756c61722f6c65616420706f736974696f6e2e4d0152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2066696c6c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e2823203c7765696768743e002423232057656967687438604f20284129602077686572653acc2d2060416020697320746865206c656e677468206f6620607375636365737366756c5f6170706c69636174696f6e5f69647360142d2044423a242020202d204f2841292c23203c2f7765696768743e4c7570646174655f726f6c655f6163636f756e74080124776f726b65725f696420012c576f726b657249643c543e00014c6e65775f726f6c655f6163636f756e745f6964000130543a3a4163636f756e744964000324150155706461746520746865206173736f63696174656420726f6c65206163636f756e74206f66207468652061637469766520726567756c617220776f726b65722f6c6561642e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e286c656176655f726f6c65080124776f726b65725f696420012c576f726b657249643c543e000124726174696f6e616c651501013c4f7074696f6e3c5665633c75383e3e000424904c656176652074686520726f6c65206279207468652061637469766520776f726b65722e2823203c7765696768743e002423232057656967687438604f20285229602077686572653ab42d20605260206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e387465726d696e6174655f726f6c650c0124776f726b65725f696420012c576f726b657249643c543e00011c70656e616c7479290101504f7074696f6e3c42616c616e63654f663c543e3e000124726174696f6e616c651501013c4f7074696f6e3c5665633c75383e3e000528a05465726d696e617465207468652061637469766520776f726b657220627920746865206c6561642e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f207465726d696e61746520746865206c656164657220726f6c65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ad82d20605060206973207468652073697a65206070656e616c74792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c736c6173685f7374616b650c0124776f726b65725f696420012c576f726b657249643c543e00011c70656e616c747918013042616c616e63654f663c543e000124726174696f6e616c651501013c4f7074696f6e3c5665633c75383e3e00062c7d01536c61736865732074686520726567756c617220776f726b6572207374616b652c2064656d616e64732061206c6561646572206f726967696e2e204e6f206c696d6974732c206e6f20616374696f6e73206f6e207a65726f207374616b652e3d01496620736c617368696e672062616c616e63652067726561746572207468616e20746865206578697374696e67207374616b65202d207374616b6520697320736c617368656420746f207a65726f2e19015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20736c61736820746865206c6561646572207374616b65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ae82d20605060206973207468652073697a65206f66206070656e616c6974792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3864656372656173655f7374616b65080124776f726b65725f696420012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e00073021014465637265617365732074686520726567756c617220776f726b65722f6c656164207374616b6520616e642072657475726e73207468652072656d61696e64657220746f207468653901776f726b6572207374616b696e675f6163636f756e745f69642e2043616e2062652064656372656173656420746f207a65726f2c206e6f20616374696f6e73206f6e207a65726f207374616b652e944163636570747320746865207374616b6520616d6f756e7420746f2064656372656173652e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20646563726561736520746865206c6561646572207374616b65292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e38696e6372656173655f7374616b65080124776f726b65725f696420012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e0008280501496e637265617365732074686520726567756c617220776f726b65722f6c656164207374616b652c2064656d616e6473206120776f726b6572206f726967696e2e6d014c6f636b7320746f6b656e732066726f6d2074686520776f726b6572207374616b696e675f6163636f756e745f696420657175616c20746f206e6577207374616b652e204e6f206c696d697473206f6e20746865207374616b652e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5077697468647261775f6170706c69636174696f6e0401386170706c69636174696f6e5f69642001344170706c69636174696f6e4964000924010157697468647261772074686520776f726b6572206170706c69636174696f6e2e2043616e20626520646f6e652062792074686520776f726b6572206f6e6c792e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3863616e63656c5f6f70656e696e670401286f70656e696e675f69642001244f70656e696e674964000a28dc43616e63656c20616e206f70656e696e6720666f722074686520726567756c617220776f726b65722f6c65616420706f736974696f6e2e550152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2063616e63656c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e287365745f6275646765740401286e65775f62756467657418013042616c616e63654f663c543e000b28a0536574732061206e65772062756467657420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e547570646174655f7265776172645f6163636f756e74080124776f726b65725f696420012c576f726b657249643c543e0001546e65775f7265776172645f6163636f756e745f6964000130543a3a4163636f756e744964000c2469015570646174652074686520726577617264206163636f756e74206173736f6369617465642077697468206120736574207265776172642072656c6174696f6e7368697020666f72207468652061637469766520776f726b65722e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e507570646174655f7265776172645f616d6f756e74080124776f726b65725f696420012c576f726b657249643c543e0001407265776172645f7065725f626c6f636b290101504f7074696f6e3c42616c616e63654f663c543e3e000d28c855706461746520746865207265776172642070657220626c6f636b20666f72207468652061637469766520776f726b65722e310152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20757064617465206c656164657227732072657761726420616d6f756e74292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3c7365745f7374617475735f7465787404012c7374617475735f746578741501013c4f7074696f6e3c5665633c75383e3e000e30b4536574732061206e657720737461747573207465787420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e002423232057656967687438604f20285329602077686572653a4d012d20605360206973207468652073697a65206f662074686520636f6e74656e7473206f6620607374617475735f746578746020696e206b696c6f6279746573207768656e206974206973206e6f74206e6f6e6500142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e447370656e645f66726f6d5f6275646765740c01286163636f756e745f6964000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c651501013c4f7074696f6e3c5665633c75383e3e000f28a85472616e73666572732073706563696669656420616d6f756e7420746f20616e79206163636f756e742e5c5265717569726573206c6561646572206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6466756e645f776f726b696e675f67726f75705f6275646765740c01246d656d6265725f696420012c4d656d62657249643c543e000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c6528011c5665633c75383e0010209846756e6420776f726b696e672067726f7570206275646765742062792061206d656d6265722e203c7765696768743e0024232320576569676874c4604f202831296020446f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c6c6561645f72656d61726b04010c6d736728011c5665633c75383e0011284c4c6561642072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e34776f726b65725f72656d61726b080124776f726b65725f696420012c576f726b657249643c543e00010c6d736728011c5665633c75383e00122854576f726b65722072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e7906085070616c6c65745f776f726b696e675f67726f75701043616c6c08045400044900014c2c6164645f6f70656e696e6710012c6465736372697074696f6e28011c5665633c75383e0001306f70656e696e675f747970656503012c4f70656e696e67547970650001307374616b655f706f6c696379490301a45374616b65506f6c6963793c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e3e0001407265776172645f7065725f626c6f636b290101504f7074696f6e3c42616c616e63654f663c543e3e00002cc44164642061206a6f62206f70656e696e6720666f72206120726567756c617220776f726b65722f6c65616420726f6c652e490152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20616464206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e002423232057656967687438604f20284429602077686572653abc2d20604460206973207468652073697a65206f6620606465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e406170706c795f6f6e5f6f70656e696e67040104706903016c4170706c794f6e4f70656e696e67506172616d65746572733c543e000128684170706c79206f6e206120776f726b6572206f70656e696e672e002823203c7765696768743e002423232057656967687438604f20284429602077686572653ac42d20604460206973207468652073697a65206f662060702e6465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3066696c6c5f6f70656e696e670801286f70656e696e675f69642001244f70656e696e6749640001687375636365737366756c5f6170706c69636174696f6e5f6964735101015c42547265655365743c4170706c69636174696f6e49643e000228ac46696c6c206f70656e696e6720666f722074686520726567756c61722f6c65616420706f736974696f6e2e4d0152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2066696c6c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e2823203c7765696768743e002423232057656967687438604f20284129602077686572653acc2d2060416020697320746865206c656e677468206f6620607375636365737366756c5f6170706c69636174696f6e5f69647360142d2044423a242020202d204f2841292c23203c2f7765696768743e4c7570646174655f726f6c655f6163636f756e74080124776f726b65725f696420012c576f726b657249643c543e00014c6e65775f726f6c655f6163636f756e745f6964000130543a3a4163636f756e744964000324150155706461746520746865206173736f63696174656420726f6c65206163636f756e74206f66207468652061637469766520726567756c617220776f726b65722f6c6561642e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e286c656176655f726f6c65080124776f726b65725f696420012c576f726b657249643c543e000124726174696f6e616c651501013c4f7074696f6e3c5665633c75383e3e000424904c656176652074686520726f6c65206279207468652061637469766520776f726b65722e2823203c7765696768743e002423232057656967687438604f20285229602077686572653ab42d20605260206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e387465726d696e6174655f726f6c650c0124776f726b65725f696420012c576f726b657249643c543e00011c70656e616c7479290101504f7074696f6e3c42616c616e63654f663c543e3e000124726174696f6e616c651501013c4f7074696f6e3c5665633c75383e3e000528a05465726d696e617465207468652061637469766520776f726b657220627920746865206c6561642e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f207465726d696e61746520746865206c656164657220726f6c65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ad82d20605060206973207468652073697a65206070656e616c74792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c736c6173685f7374616b650c0124776f726b65725f696420012c576f726b657249643c543e00011c70656e616c747918013042616c616e63654f663c543e000124726174696f6e616c651501013c4f7074696f6e3c5665633c75383e3e00062c7d01536c61736865732074686520726567756c617220776f726b6572207374616b652c2064656d616e64732061206c6561646572206f726967696e2e204e6f206c696d6974732c206e6f20616374696f6e73206f6e207a65726f207374616b652e3d01496620736c617368696e672062616c616e63652067726561746572207468616e20746865206578697374696e67207374616b65202d207374616b6520697320736c617368656420746f207a65726f2e19015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20736c61736820746865206c6561646572207374616b65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ae82d20605060206973207468652073697a65206f66206070656e616c6974792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3864656372656173655f7374616b65080124776f726b65725f696420012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e00073021014465637265617365732074686520726567756c617220776f726b65722f6c656164207374616b6520616e642072657475726e73207468652072656d61696e64657220746f207468653901776f726b6572207374616b696e675f6163636f756e745f69642e2043616e2062652064656372656173656420746f207a65726f2c206e6f20616374696f6e73206f6e207a65726f207374616b652e944163636570747320746865207374616b6520616d6f756e7420746f2064656372656173652e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20646563726561736520746865206c6561646572207374616b65292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e38696e6372656173655f7374616b65080124776f726b65725f696420012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e0008280501496e637265617365732074686520726567756c617220776f726b65722f6c656164207374616b652c2064656d616e6473206120776f726b6572206f726967696e2e6d014c6f636b7320746f6b656e732066726f6d2074686520776f726b6572207374616b696e675f6163636f756e745f696420657175616c20746f206e6577207374616b652e204e6f206c696d697473206f6e20746865207374616b652e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5077697468647261775f6170706c69636174696f6e0401386170706c69636174696f6e5f69642001344170706c69636174696f6e4964000924010157697468647261772074686520776f726b6572206170706c69636174696f6e2e2043616e20626520646f6e652062792074686520776f726b6572206f6e6c792e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3863616e63656c5f6f70656e696e670401286f70656e696e675f69642001244f70656e696e674964000a28dc43616e63656c20616e206f70656e696e6720666f722074686520726567756c617220776f726b65722f6c65616420706f736974696f6e2e550152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2063616e63656c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e287365745f6275646765740401286e65775f62756467657418013042616c616e63654f663c543e000b28a0536574732061206e65772062756467657420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e547570646174655f7265776172645f6163636f756e74080124776f726b65725f696420012c576f726b657249643c543e0001546e65775f7265776172645f6163636f756e745f6964000130543a3a4163636f756e744964000c2469015570646174652074686520726577617264206163636f756e74206173736f6369617465642077697468206120736574207265776172642072656c6174696f6e7368697020666f72207468652061637469766520776f726b65722e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e507570646174655f7265776172645f616d6f756e74080124776f726b65725f696420012c576f726b657249643c543e0001407265776172645f7065725f626c6f636b290101504f7074696f6e3c42616c616e63654f663c543e3e000d28c855706461746520746865207265776172642070657220626c6f636b20666f72207468652061637469766520776f726b65722e310152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20757064617465206c656164657227732072657761726420616d6f756e74292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3c7365745f7374617475735f7465787404012c7374617475735f746578741501013c4f7074696f6e3c5665633c75383e3e000e30b4536574732061206e657720737461747573207465787420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e002423232057656967687438604f20285329602077686572653a4d012d20605360206973207468652073697a65206f662074686520636f6e74656e7473206f6620607374617475735f746578746020696e206b696c6f6279746573207768656e206974206973206e6f74206e6f6e6500142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e447370656e645f66726f6d5f6275646765740c01286163636f756e745f6964000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c651501013c4f7074696f6e3c5665633c75383e3e000f28a85472616e73666572732073706563696669656420616d6f756e7420746f20616e79206163636f756e742e5c5265717569726573206c6561646572206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6466756e645f776f726b696e675f67726f75705f6275646765740c01246d656d6265725f696420012c4d656d62657249643c543e000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c6528011c5665633c75383e0010209846756e6420776f726b696e672067726f7570206275646765742062792061206d656d6265722e203c7765696768743e0024232320576569676874c4604f202831296020446f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c6c6561645f72656d61726b04010c6d736728011c5665633c75383e0011284c4c6561642072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e34776f726b65725f72656d61726b080124776f726b65725f696420012c576f726b657249643c543e00010c6d736728011c5665633c75383e00122854576f726b65722072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e7d06085070616c6c65745f776f726b696e675f67726f75701043616c6c08045400044900014c2c6164645f6f70656e696e6710012c6465736372697074696f6e28011c5665633c75383e0001306f70656e696e675f747970656503012c4f70656e696e67547970650001307374616b655f706f6c696379490301a45374616b65506f6c6963793c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e3e0001407265776172645f7065725f626c6f636b290101504f7074696f6e3c42616c616e63654f663c543e3e00002cc44164642061206a6f62206f70656e696e6720666f72206120726567756c617220776f726b65722f6c65616420726f6c652e490152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20616464206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e002423232057656967687438604f20284429602077686572653abc2d20604460206973207468652073697a65206f6620606465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e406170706c795f6f6e5f6f70656e696e67040104706903016c4170706c794f6e4f70656e696e67506172616d65746572733c543e000128684170706c79206f6e206120776f726b6572206f70656e696e672e002823203c7765696768743e002423232057656967687438604f20284429602077686572653ac42d20604460206973207468652073697a65206f662060702e6465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3066696c6c5f6f70656e696e670801286f70656e696e675f69642001244f70656e696e6749640001687375636365737366756c5f6170706c69636174696f6e5f6964735101015c42547265655365743c4170706c69636174696f6e49643e000228ac46696c6c206f70656e696e6720666f722074686520726567756c61722f6c65616420706f736974696f6e2e4d0152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2066696c6c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e2823203c7765696768743e002423232057656967687438604f20284129602077686572653acc2d2060416020697320746865206c656e677468206f6620607375636365737366756c5f6170706c69636174696f6e5f69647360142d2044423a242020202d204f2841292c23203c2f7765696768743e4c7570646174655f726f6c655f6163636f756e74080124776f726b65725f696420012c576f726b657249643c543e00014c6e65775f726f6c655f6163636f756e745f6964000130543a3a4163636f756e744964000324150155706461746520746865206173736f63696174656420726f6c65206163636f756e74206f66207468652061637469766520726567756c617220776f726b65722f6c6561642e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e286c656176655f726f6c65080124776f726b65725f696420012c576f726b657249643c543e000124726174696f6e616c651501013c4f7074696f6e3c5665633c75383e3e000424904c656176652074686520726f6c65206279207468652061637469766520776f726b65722e2823203c7765696768743e002423232057656967687438604f20285229602077686572653ab42d20605260206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e387465726d696e6174655f726f6c650c0124776f726b65725f696420012c576f726b657249643c543e00011c70656e616c7479290101504f7074696f6e3c42616c616e63654f663c543e3e000124726174696f6e616c651501013c4f7074696f6e3c5665633c75383e3e000528a05465726d696e617465207468652061637469766520776f726b657220627920746865206c6561642e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f207465726d696e61746520746865206c656164657220726f6c65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ad82d20605060206973207468652073697a65206070656e616c74792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c736c6173685f7374616b650c0124776f726b65725f696420012c576f726b657249643c543e00011c70656e616c747918013042616c616e63654f663c543e000124726174696f6e616c651501013c4f7074696f6e3c5665633c75383e3e00062c7d01536c61736865732074686520726567756c617220776f726b6572207374616b652c2064656d616e64732061206c6561646572206f726967696e2e204e6f206c696d6974732c206e6f20616374696f6e73206f6e207a65726f207374616b652e3d01496620736c617368696e672062616c616e63652067726561746572207468616e20746865206578697374696e67207374616b65202d207374616b6520697320736c617368656420746f207a65726f2e19015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20736c61736820746865206c6561646572207374616b65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ae82d20605060206973207468652073697a65206f66206070656e616c6974792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3864656372656173655f7374616b65080124776f726b65725f696420012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e00073021014465637265617365732074686520726567756c617220776f726b65722f6c656164207374616b6520616e642072657475726e73207468652072656d61696e64657220746f207468653901776f726b6572207374616b696e675f6163636f756e745f69642e2043616e2062652064656372656173656420746f207a65726f2c206e6f20616374696f6e73206f6e207a65726f207374616b652e944163636570747320746865207374616b6520616d6f756e7420746f2064656372656173652e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20646563726561736520746865206c6561646572207374616b65292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e38696e6372656173655f7374616b65080124776f726b65725f696420012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e0008280501496e637265617365732074686520726567756c617220776f726b65722f6c656164207374616b652c2064656d616e6473206120776f726b6572206f726967696e2e6d014c6f636b7320746f6b656e732066726f6d2074686520776f726b6572207374616b696e675f6163636f756e745f696420657175616c20746f206e6577207374616b652e204e6f206c696d697473206f6e20746865207374616b652e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5077697468647261775f6170706c69636174696f6e0401386170706c69636174696f6e5f69642001344170706c69636174696f6e4964000924010157697468647261772074686520776f726b6572206170706c69636174696f6e2e2043616e20626520646f6e652062792074686520776f726b6572206f6e6c792e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3863616e63656c5f6f70656e696e670401286f70656e696e675f69642001244f70656e696e674964000a28dc43616e63656c20616e206f70656e696e6720666f722074686520726567756c617220776f726b65722f6c65616420706f736974696f6e2e550152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2063616e63656c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e287365745f6275646765740401286e65775f62756467657418013042616c616e63654f663c543e000b28a0536574732061206e65772062756467657420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e547570646174655f7265776172645f6163636f756e74080124776f726b65725f696420012c576f726b657249643c543e0001546e65775f7265776172645f6163636f756e745f6964000130543a3a4163636f756e744964000c2469015570646174652074686520726577617264206163636f756e74206173736f6369617465642077697468206120736574207265776172642072656c6174696f6e7368697020666f72207468652061637469766520776f726b65722e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e507570646174655f7265776172645f616d6f756e74080124776f726b65725f696420012c576f726b657249643c543e0001407265776172645f7065725f626c6f636b290101504f7074696f6e3c42616c616e63654f663c543e3e000d28c855706461746520746865207265776172642070657220626c6f636b20666f72207468652061637469766520776f726b65722e310152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20757064617465206c656164657227732072657761726420616d6f756e74292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3c7365745f7374617475735f7465787404012c7374617475735f746578741501013c4f7074696f6e3c5665633c75383e3e000e30b4536574732061206e657720737461747573207465787420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e002423232057656967687438604f20285329602077686572653a4d012d20605360206973207468652073697a65206f662074686520636f6e74656e7473206f6620607374617475735f746578746020696e206b696c6f6279746573207768656e206974206973206e6f74206e6f6e6500142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e447370656e645f66726f6d5f6275646765740c01286163636f756e745f6964000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c651501013c4f7074696f6e3c5665633c75383e3e000f28a85472616e73666572732073706563696669656420616d6f756e7420746f20616e79206163636f756e742e5c5265717569726573206c6561646572206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6466756e645f776f726b696e675f67726f75705f6275646765740c01246d656d6265725f696420012c4d656d62657249643c543e000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c6528011c5665633c75383e0010209846756e6420776f726b696e672067726f7570206275646765742062792061206d656d6265722e203c7765696768743e0024232320576569676874c4604f202831296020446f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c6c6561645f72656d61726b04010c6d736728011c5665633c75383e0011284c4c6561642072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e34776f726b65725f72656d61726b080124776f726b65725f696420012c576f726b657249643c543e00010c6d736728011c5665633c75383e00122854576f726b65722072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e8106085070616c6c65745f776f726b696e675f67726f75701043616c6c08045400044900014c2c6164645f6f70656e696e6710012c6465736372697074696f6e28011c5665633c75383e0001306f70656e696e675f747970656503012c4f70656e696e67547970650001307374616b655f706f6c696379490301a45374616b65506f6c6963793c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e3e0001407265776172645f7065725f626c6f636b290101504f7074696f6e3c42616c616e63654f663c543e3e00002cc44164642061206a6f62206f70656e696e6720666f72206120726567756c617220776f726b65722f6c65616420726f6c652e490152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20616464206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e002423232057656967687438604f20284429602077686572653abc2d20604460206973207468652073697a65206f6620606465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e406170706c795f6f6e5f6f70656e696e67040104706903016c4170706c794f6e4f70656e696e67506172616d65746572733c543e000128684170706c79206f6e206120776f726b6572206f70656e696e672e002823203c7765696768743e002423232057656967687438604f20284429602077686572653ac42d20604460206973207468652073697a65206f662060702e6465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3066696c6c5f6f70656e696e670801286f70656e696e675f69642001244f70656e696e6749640001687375636365737366756c5f6170706c69636174696f6e5f6964735101015c42547265655365743c4170706c69636174696f6e49643e000228ac46696c6c206f70656e696e6720666f722074686520726567756c61722f6c65616420706f736974696f6e2e4d0152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2066696c6c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e2823203c7765696768743e002423232057656967687438604f20284129602077686572653acc2d2060416020697320746865206c656e677468206f6620607375636365737366756c5f6170706c69636174696f6e5f69647360142d2044423a242020202d204f2841292c23203c2f7765696768743e4c7570646174655f726f6c655f6163636f756e74080124776f726b65725f696420012c576f726b657249643c543e00014c6e65775f726f6c655f6163636f756e745f6964000130543a3a4163636f756e744964000324150155706461746520746865206173736f63696174656420726f6c65206163636f756e74206f66207468652061637469766520726567756c617220776f726b65722f6c6561642e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e286c656176655f726f6c65080124776f726b65725f696420012c576f726b657249643c543e000124726174696f6e616c651501013c4f7074696f6e3c5665633c75383e3e000424904c656176652074686520726f6c65206279207468652061637469766520776f726b65722e2823203c7765696768743e002423232057656967687438604f20285229602077686572653ab42d20605260206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e387465726d696e6174655f726f6c650c0124776f726b65725f696420012c576f726b657249643c543e00011c70656e616c7479290101504f7074696f6e3c42616c616e63654f663c543e3e000124726174696f6e616c651501013c4f7074696f6e3c5665633c75383e3e000528a05465726d696e617465207468652061637469766520776f726b657220627920746865206c6561642e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f207465726d696e61746520746865206c656164657220726f6c65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ad82d20605060206973207468652073697a65206070656e616c74792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c736c6173685f7374616b650c0124776f726b65725f696420012c576f726b657249643c543e00011c70656e616c747918013042616c616e63654f663c543e000124726174696f6e616c651501013c4f7074696f6e3c5665633c75383e3e00062c7d01536c61736865732074686520726567756c617220776f726b6572207374616b652c2064656d616e64732061206c6561646572206f726967696e2e204e6f206c696d6974732c206e6f20616374696f6e73206f6e207a65726f207374616b652e3d01496620736c617368696e672062616c616e63652067726561746572207468616e20746865206578697374696e67207374616b65202d207374616b6520697320736c617368656420746f207a65726f2e19015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20736c61736820746865206c6561646572207374616b65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ae82d20605060206973207468652073697a65206f66206070656e616c6974792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3864656372656173655f7374616b65080124776f726b65725f696420012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e00073021014465637265617365732074686520726567756c617220776f726b65722f6c656164207374616b6520616e642072657475726e73207468652072656d61696e64657220746f207468653901776f726b6572207374616b696e675f6163636f756e745f69642e2043616e2062652064656372656173656420746f207a65726f2c206e6f20616374696f6e73206f6e207a65726f207374616b652e944163636570747320746865207374616b6520616d6f756e7420746f2064656372656173652e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20646563726561736520746865206c6561646572207374616b65292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e38696e6372656173655f7374616b65080124776f726b65725f696420012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e0008280501496e637265617365732074686520726567756c617220776f726b65722f6c656164207374616b652c2064656d616e6473206120776f726b6572206f726967696e2e6d014c6f636b7320746f6b656e732066726f6d2074686520776f726b6572207374616b696e675f6163636f756e745f696420657175616c20746f206e6577207374616b652e204e6f206c696d697473206f6e20746865207374616b652e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5077697468647261775f6170706c69636174696f6e0401386170706c69636174696f6e5f69642001344170706c69636174696f6e4964000924010157697468647261772074686520776f726b6572206170706c69636174696f6e2e2043616e20626520646f6e652062792074686520776f726b6572206f6e6c792e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3863616e63656c5f6f70656e696e670401286f70656e696e675f69642001244f70656e696e674964000a28dc43616e63656c20616e206f70656e696e6720666f722074686520726567756c617220776f726b65722f6c65616420706f736974696f6e2e550152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2063616e63656c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e287365745f6275646765740401286e65775f62756467657418013042616c616e63654f663c543e000b28a0536574732061206e65772062756467657420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e547570646174655f7265776172645f6163636f756e74080124776f726b65725f696420012c576f726b657249643c543e0001546e65775f7265776172645f6163636f756e745f6964000130543a3a4163636f756e744964000c2469015570646174652074686520726577617264206163636f756e74206173736f6369617465642077697468206120736574207265776172642072656c6174696f6e7368697020666f72207468652061637469766520776f726b65722e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e507570646174655f7265776172645f616d6f756e74080124776f726b65725f696420012c576f726b657249643c543e0001407265776172645f7065725f626c6f636b290101504f7074696f6e3c42616c616e63654f663c543e3e000d28c855706461746520746865207265776172642070657220626c6f636b20666f72207468652061637469766520776f726b65722e310152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20757064617465206c656164657227732072657761726420616d6f756e74292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3c7365745f7374617475735f7465787404012c7374617475735f746578741501013c4f7074696f6e3c5665633c75383e3e000e30b4536574732061206e657720737461747573207465787420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e002423232057656967687438604f20285329602077686572653a4d012d20605360206973207468652073697a65206f662074686520636f6e74656e7473206f6620607374617475735f746578746020696e206b696c6f6279746573207768656e206974206973206e6f74206e6f6e6500142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e447370656e645f66726f6d5f6275646765740c01286163636f756e745f6964000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c651501013c4f7074696f6e3c5665633c75383e3e000f28a85472616e73666572732073706563696669656420616d6f756e7420746f20616e79206163636f756e742e5c5265717569726573206c6561646572206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6466756e645f776f726b696e675f67726f75705f6275646765740c01246d656d6265725f696420012c4d656d62657249643c543e000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c6528011c5665633c75383e0010209846756e6420776f726b696e672067726f7570206275646765742062792061206d656d6265722e203c7765696768743e0024232320576569676874c4604f202831296020446f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c6c6561645f72656d61726b04010c6d736728011c5665633c75383e0011284c4c6561642072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e34776f726b65725f72656d61726b080124776f726b65725f696420012c576f726b657249643c543e00010c6d736728011c5665633c75383e00122854576f726b65722072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e8506085070616c6c65745f776f726b696e675f67726f75701043616c6c08045400044900014c2c6164645f6f70656e696e6710012c6465736372697074696f6e28011c5665633c75383e0001306f70656e696e675f747970656503012c4f70656e696e67547970650001307374616b655f706f6c696379490301a45374616b65506f6c6963793c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e3e0001407265776172645f7065725f626c6f636b290101504f7074696f6e3c42616c616e63654f663c543e3e00002cc44164642061206a6f62206f70656e696e6720666f72206120726567756c617220776f726b65722f6c65616420726f6c652e490152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20616464206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e002423232057656967687438604f20284429602077686572653abc2d20604460206973207468652073697a65206f6620606465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e406170706c795f6f6e5f6f70656e696e67040104706903016c4170706c794f6e4f70656e696e67506172616d65746572733c543e000128684170706c79206f6e206120776f726b6572206f70656e696e672e002823203c7765696768743e002423232057656967687438604f20284429602077686572653ac42d20604460206973207468652073697a65206f662060702e6465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3066696c6c5f6f70656e696e670801286f70656e696e675f69642001244f70656e696e6749640001687375636365737366756c5f6170706c69636174696f6e5f6964735101015c42547265655365743c4170706c69636174696f6e49643e000228ac46696c6c206f70656e696e6720666f722074686520726567756c61722f6c65616420706f736974696f6e2e4d0152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2066696c6c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e2823203c7765696768743e002423232057656967687438604f20284129602077686572653acc2d2060416020697320746865206c656e677468206f6620607375636365737366756c5f6170706c69636174696f6e5f69647360142d2044423a242020202d204f2841292c23203c2f7765696768743e4c7570646174655f726f6c655f6163636f756e74080124776f726b65725f696420012c576f726b657249643c543e00014c6e65775f726f6c655f6163636f756e745f6964000130543a3a4163636f756e744964000324150155706461746520746865206173736f63696174656420726f6c65206163636f756e74206f66207468652061637469766520726567756c617220776f726b65722f6c6561642e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e286c656176655f726f6c65080124776f726b65725f696420012c576f726b657249643c543e000124726174696f6e616c651501013c4f7074696f6e3c5665633c75383e3e000424904c656176652074686520726f6c65206279207468652061637469766520776f726b65722e2823203c7765696768743e002423232057656967687438604f20285229602077686572653ab42d20605260206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e387465726d696e6174655f726f6c650c0124776f726b65725f696420012c576f726b657249643c543e00011c70656e616c7479290101504f7074696f6e3c42616c616e63654f663c543e3e000124726174696f6e616c651501013c4f7074696f6e3c5665633c75383e3e000528a05465726d696e617465207468652061637469766520776f726b657220627920746865206c6561642e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f207465726d696e61746520746865206c656164657220726f6c65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ad82d20605060206973207468652073697a65206070656e616c74792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c736c6173685f7374616b650c0124776f726b65725f696420012c576f726b657249643c543e00011c70656e616c747918013042616c616e63654f663c543e000124726174696f6e616c651501013c4f7074696f6e3c5665633c75383e3e00062c7d01536c61736865732074686520726567756c617220776f726b6572207374616b652c2064656d616e64732061206c6561646572206f726967696e2e204e6f206c696d6974732c206e6f20616374696f6e73206f6e207a65726f207374616b652e3d01496620736c617368696e672062616c616e63652067726561746572207468616e20746865206578697374696e67207374616b65202d207374616b6520697320736c617368656420746f207a65726f2e19015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20736c61736820746865206c6561646572207374616b65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ae82d20605060206973207468652073697a65206f66206070656e616c6974792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3864656372656173655f7374616b65080124776f726b65725f696420012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e00073021014465637265617365732074686520726567756c617220776f726b65722f6c656164207374616b6520616e642072657475726e73207468652072656d61696e64657220746f207468653901776f726b6572207374616b696e675f6163636f756e745f69642e2043616e2062652064656372656173656420746f207a65726f2c206e6f20616374696f6e73206f6e207a65726f207374616b652e944163636570747320746865207374616b6520616d6f756e7420746f2064656372656173652e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20646563726561736520746865206c6561646572207374616b65292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e38696e6372656173655f7374616b65080124776f726b65725f696420012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e0008280501496e637265617365732074686520726567756c617220776f726b65722f6c656164207374616b652c2064656d616e6473206120776f726b6572206f726967696e2e6d014c6f636b7320746f6b656e732066726f6d2074686520776f726b6572207374616b696e675f6163636f756e745f696420657175616c20746f206e6577207374616b652e204e6f206c696d697473206f6e20746865207374616b652e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5077697468647261775f6170706c69636174696f6e0401386170706c69636174696f6e5f69642001344170706c69636174696f6e4964000924010157697468647261772074686520776f726b6572206170706c69636174696f6e2e2043616e20626520646f6e652062792074686520776f726b6572206f6e6c792e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3863616e63656c5f6f70656e696e670401286f70656e696e675f69642001244f70656e696e674964000a28dc43616e63656c20616e206f70656e696e6720666f722074686520726567756c617220776f726b65722f6c65616420706f736974696f6e2e550152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2063616e63656c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e287365745f6275646765740401286e65775f62756467657418013042616c616e63654f663c543e000b28a0536574732061206e65772062756467657420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e547570646174655f7265776172645f6163636f756e74080124776f726b65725f696420012c576f726b657249643c543e0001546e65775f7265776172645f6163636f756e745f6964000130543a3a4163636f756e744964000c2469015570646174652074686520726577617264206163636f756e74206173736f6369617465642077697468206120736574207265776172642072656c6174696f6e7368697020666f72207468652061637469766520776f726b65722e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e507570646174655f7265776172645f616d6f756e74080124776f726b65725f696420012c576f726b657249643c543e0001407265776172645f7065725f626c6f636b290101504f7074696f6e3c42616c616e63654f663c543e3e000d28c855706461746520746865207265776172642070657220626c6f636b20666f72207468652061637469766520776f726b65722e310152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20757064617465206c656164657227732072657761726420616d6f756e74292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3c7365745f7374617475735f7465787404012c7374617475735f746578741501013c4f7074696f6e3c5665633c75383e3e000e30b4536574732061206e657720737461747573207465787420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e002423232057656967687438604f20285329602077686572653a4d012d20605360206973207468652073697a65206f662074686520636f6e74656e7473206f6620607374617475735f746578746020696e206b696c6f6279746573207768656e206974206973206e6f74206e6f6e6500142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e447370656e645f66726f6d5f6275646765740c01286163636f756e745f6964000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c651501013c4f7074696f6e3c5665633c75383e3e000f28a85472616e73666572732073706563696669656420616d6f756e7420746f20616e79206163636f756e742e5c5265717569726573206c6561646572206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6466756e645f776f726b696e675f67726f75705f6275646765740c01246d656d6265725f696420012c4d656d62657249643c543e000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c6528011c5665633c75383e0010209846756e6420776f726b696e672067726f7570206275646765742062792061206d656d6265722e203c7765696768743e0024232320576569676874c4604f202831296020446f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c6c6561645f72656d61726b04010c6d736728011c5665633c75383e0011284c4c6561642072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e34776f726b65725f72656d61726b080124776f726b65725f696420012c576f726b657249643c543e00010c6d736728011c5665633c75383e00122854576f726b65722072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e890608586a6f7973747265616d5f6e6f64655f72756e74696d65304f726967696e43616c6c65720001081873797374656d04008d0601746672616d655f73797374656d3a3a4f726967696e3c52756e74696d653e00000010566f69640400910601110173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a566f6964000100008d060c346672616d655f737570706f7274206469737061746368245261774f726967696e04244163636f756e7449640100010c10526f6f74000000185369676e656404000001244163636f756e744964000100104e6f6e65000200009106081c73705f636f726510566f69640001000095060c3870616c6c65745f7574696c6974791870616c6c6574144572726f7204045400010430546f6f4d616e7943616c6c730000045c546f6f206d616e792063616c6c7320626174636865642e04ad010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f76332f72756e74696d652f6576656e74732d616e642d6572726f7273290a0909096f6620746869732070616c6c65742e0a090909990610346672616d655f737570706f72741c73746f72616765407765616b5f626f756e6465645f766563385765616b426f756e646564566563080454019d06045300000400a10601185665633c543e00009d060000040831042000a1060000029d0600a50610346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e6465645665630804540104045300000400a90601185665633c543e0000a9060000020400ad0604184f7074696f6e04045401b1060108104e6f6e6500000010536f6d650400b1060000010000b1060c4473705f636f6e73656e7375735f626162651c646967657374732450726544696765737400010c1c5072696d6172790400b50601405072696d617279507265446967657374000100385365636f6e64617279506c61696e0400b906015c5365636f6e64617279506c61696e507265446967657374000200305365636f6e646172795652460400bd0601545365636f6e6461727956524650726544696765737400030000b5060c4473705f636f6e73656e7375735f626162651c64696765737473405072696d617279507265446967657374000010013c617574686f726974795f696e64657810015473757065723a3a417574686f72697479496e646578000110736c6f7435040110536c6f740001287672665f6f75747075740401245652464f75747075740001247672665f70726f6f669505012056524650726f6f660000b9060c4473705f636f6e73656e7375735f626162651c646967657374735c5365636f6e64617279506c61696e507265446967657374000008013c617574686f726974795f696e64657810015473757065723a3a417574686f72697479496e646578000110736c6f7435040110536c6f740000bd060c4473705f636f6e73656e7375735f626162651c64696765737473545365636f6e64617279565246507265446967657374000010013c617574686f726974795f696e64657810015473757065723a3a417574686f72697479496e646578000110736c6f7435040110536c6f740001287672665f6f75747075740401245652464f75747075740001247672665f70726f6f669505012056524650726f6f660000c10604184f7074696f6e04045401040108104e6f6e6500000010536f6d650400040000010000c506084473705f636f6e73656e7375735f62616265584261626545706f6368436f6e66696775726174696f6e00000801046361030128287536342c2075363429000134616c6c6f7765645f736c6f747341040130416c6c6f776564536c6f74730000c9060c2c70616c6c65745f626162651870616c6c6574144572726f7204045400011060496e76616c696445717569766f636174696f6e50726f6f660000043101416e2065717569766f636174696f6e2070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e60496e76616c69644b65794f776e65727368697050726f6f66000104310141206b6579206f776e6572736869702070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e584475706c69636174654f6666656e63655265706f727400020415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e50496e76616c6964436f6e66696775726174696f6e0003048c5375626d697474656420636f6e66696775726174696f6e20697320696e76616c69642e04ad010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f76332f72756e74696d652f6576656e74732d616e642d6572726f7273290a0909096f6620746869732070616c6c65742e0a090909cd06000002d10600d106084470616c6c65745f617574686f727368697038556e636c65456e7472794974656d0c2c426c6f636b4e756d62657201101048617368012418417574686f72010001083c496e636c7573696f6e486569676874040010012c426c6f636b4e756d62657200000014556e636c6508002401104861736800002d0101384f7074696f6e3c417574686f723e00010000d5060c4470616c6c65745f617574686f72736869701870616c6c6574144572726f7204045400011c48496e76616c6964556e636c65506172656e740000048854686520756e636c6520706172656e74206e6f7420696e2074686520636861696e2e40556e636c6573416c726561647953657400010480556e636c657320616c72656164792073657420696e2074686520626c6f636b2e34546f6f4d616e79556e636c657300020440546f6f206d616e7920756e636c65732e3047656e65736973556e636c650003045454686520756e636c652069732067656e657369732e30546f6f48696768556e636c650004047c54686520756e636c6520697320746f6f206869676820696e20636861696e2e50556e636c65416c7265616479496e636c756465640005047854686520756e636c6520697320616c726561647920696e636c756465642e204f6c64556e636c65000604b454686520756e636c652069736e277420726563656e7420656e6f75676820746f20626520696e636c756465642e04ad010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f76332f72756e74696d652f6576656e74732d616e642d6572726f7273290a0909096f6620746869732070616c6c65742e0a090909d90610346672616d655f737570706f72741c73746f72616765407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401dd06045300000400e50601185665633c543e0000dd06083c70616c6c65745f62616c616e6365732c42616c616e63654c6f636b041c42616c616e63650118000c01086964090401384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e73e106011c526561736f6e730000e106083c70616c6c65745f62616c616e6365731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c00020000e506000002dd0600e90610346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e64656456656308045401ed06045300000400f10601185665633c543e0000ed06083c70616c6c65745f62616c616e6365732c52657365727665446174610844526573657276654964656e7469666965720109041c42616c616e6365011800080108696409040144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e63650000f106000002ed0600f506083c70616c6c65745f62616c616e6365732052656c65617365730001081856315f305f300000001856325f305f3000010000f9060c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001203856657374696e6742616c616e63650000049856657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c7565544c69717569646974795265737472696374696f6e73000104c44163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c4c496e73756666696369656e7442616c616e63650002047442616c616e636520746f6f206c6f7720746f2073656e642076616c7565484578697374656e7469616c4465706f736974000304e856616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f736974244b656570416c6976650004048c5472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e745c4578697374696e6756657374696e675363686564756c65000504c8412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742c446561644163636f756e740006048842656e6566696369617279206163636f756e74206d757374207072652d65786973743c546f6f4d616e795265736572766573000704ac4e756d626572206f66206e616d656420726573657276657320657863656564204d6178526573657276657304ad010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f76332f72756e74696d652f6576656e74732d616e642d6572726f7273290a0909096f6620746869732070616c6c65742e0a090909fd060c3473705f61726974686d657469632c66697865645f706f696e7424466978656455313238000004001801107531323800000107086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e74000000085632000100000507089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173651450686173650408426e011001100c4f6666000000185369676e656400010020556e7369676e656404000907012828626f6f6c2c20426e2900020024456d657267656e6379000300000907000004088810000d07089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f7068617365345265616479536f6c7574696f6e0404410100000c0120737570706f7274733905012c537570706f7274733c413e00011473636f72652d050134456c656374696f6e53636f726500011c636f6d7075746584013c456c656374696f6e436f6d7075746500001107089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f706861736534526f756e64536e617073686f740404540000080118766f746572731507013c5665633c566f7465724f663c543e3e00011c74617267657473510501445665633c543a3a4163636f756e7449643e0000150700000219070019070000040c00201d07001d0710346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e6465645665630804540100045300000400510501185665633c543e0000210710346672616d655f737570706f72741c73746f7261676544626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b012d05045601100453000004002507013842547265654d61703c4b2c20563e00002507042042547265654d617008044b012d0504560110000400290700000029070000022d07002d07000004082d05100031070c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f7068617365187369676e6564405369676e65645375626d697373696f6e0c244163636f756e74496401001c42616c616e6365011820536f6c7574696f6e0161040010010c77686f0001244163636f756e74496400011c6465706f73697418011c42616c616e63650001307261775f736f6c7574696f6e5d040154526177536f6c7574696f6e3c536f6c7574696f6e3e00012063616c6c5f66656518011c42616c616e6365000035070c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173651870616c6c6574144572726f720404540001306850726544697370617463684561726c795375626d697373696f6e000004645375626d697373696f6e2077617320746f6f206561726c792e6c507265446973706174636857726f6e6757696e6e6572436f756e740001048857726f6e67206e756d626572206f662077696e6e6572732070726573656e7465642e6450726544697370617463685765616b5375626d697373696f6e000204905375626d697373696f6e2077617320746f6f207765616b2c2073636f72652d776973652e3c5369676e6564517565756546756c6c0003044901546865207175657565207761732066756c6c2c20616e642074686520736f6c7574696f6e20776173206e6f7420626574746572207468616e20616e79206f6620746865206578697374696e67206f6e65732e585369676e656443616e6e6f745061794465706f73697400040494546865206f726967696e206661696c656420746f2070617920746865206465706f7369742e505369676e6564496e76616c69645769746e657373000504a05769746e657373206461746120746f20646973706174636861626c6520697320696e76616c69642e4c5369676e6564546f6f4d756368576569676874000604b8546865207369676e6564207375626d697373696f6e20636f6e73756d657320746f6f206d756368207765696768743c4f637743616c6c57726f6e67457261000704984f4357207375626d697474656420736f6c7574696f6e20666f722077726f6e6720726f756e645c4d697373696e67536e617073686f744d65746164617461000804a8536e617073686f74206d657461646174612073686f756c6420657869737420627574206469646e27742e58496e76616c69645375626d697373696f6e496e646578000904d06053656c663a3a696e736572745f7375626d697373696f6e602072657475726e656420616e20696e76616c696420696e6465782e3843616c6c4e6f74416c6c6f776564000a04985468652063616c6c206973206e6f7420616c6c6f776564206174207468697320706f696e742e3846616c6c6261636b4661696c6564000b044c5468652066616c6c6261636b206661696c6564040d014572726f72206f66207468652070616c6c657420746861742063616e2062652072657475726e656420696e20726573706f6e736520746f20646973706174636865732e3907083870616c6c65745f7374616b696e67345374616b696e674c656467657204045400001401147374617368000130543a3a4163636f756e744964000114746f74616cd0013042616c616e63654f663c543e000118616374697665d0013042616c616e63654f663c543e000124756e6c6f636b696e673d0701e4426f756e6465645665633c556e6c6f636b4368756e6b3c42616c616e63654f663c543e3e2c204d6178556e6c6f636b696e674368756e6b733e00013c636c61696d65645f72657761726473590501345665633c457261496e6465783e00003d0710346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e646564566563080454014107045300000400450701185665633c543e00004107083870616c6c65745f7374616b696e672c556e6c6f636b4368756e6b041c42616c616e636501180008011476616c7565d0011c42616c616e636500010c657261cd030120457261496e646578000045070000024107004907083870616c6c65745f7374616b696e672c4e6f6d696e6174696f6e7304045400000c011c746172676574731d0701ac426f756e6465645665633c543a3a4163636f756e7449642c20543a3a4d61784e6f6d696e6174696f6e733e0001307375626d69747465645f696e100120457261496e64657800012873757070726573736564880110626f6f6c00004d07083870616c6c65745f7374616b696e6734416374697665457261496e666f0000080114696e646578100120457261496e64657800011473746172741901012c4f7074696f6e3c7536343e00005107000004081000005507083870616c6c65745f7374616b696e673c457261526577617264506f696e747304244163636f756e744964010000080114746f74616c10012c526577617264506f696e74000128696e646976696475616c5907018042547265654d61703c4163636f756e7449642c20526577617264506f696e743e00005907042042547265654d617008044b0100045601100004005d070000005d070000026107006107000004080010006507083870616c6c65745f7374616b696e671c466f7263696e67000110284e6f74466f7263696e6700000020466f7263654e657700010024466f7263654e6f6e650002002c466f726365416c776179730003000069070000026d07006d07083870616c6c65745f7374616b696e6738556e6170706c696564536c61736808244163636f756e74496401001c42616c616e636501180014012476616c696461746f720001244163636f756e74496400010c6f776e18011c42616c616e63650001186f7468657273450501645665633c284163636f756e7449642c2042616c616e6365293e0001247265706f7274657273510501385665633c4163636f756e7449643e0001187061796f757418011c42616c616e636500007107000004089c180075070c3870616c6c65745f7374616b696e6720736c617368696e6734536c617368696e675370616e7300001001287370616e5f696e6465781001245370616e496e6465780001286c6173745f7374617274100120457261496e6465780001486c6173745f6e6f6e7a65726f5f736c617368100120457261496e6465780001147072696f72590501345665633c457261496e6465783e000079070c3870616c6c65745f7374616b696e6720736c617368696e67285370616e5265636f7264041c42616c616e636501180008011c736c617368656418011c42616c616e6365000120706169645f6f757418011c42616c616e636500007d070000028107008107000004081088008507083870616c6c65745f7374616b696e672052656c65617365730001243456315f305f30416e6369656e740000001856325f305f300001001856335f305f300002001856345f305f300003001856355f305f300004001856365f305f300005001856375f305f300006001856385f305f300007001856395f305f30000800008907103870616c6c65745f7374616b696e671870616c6c65741870616c6c6574144572726f72040454000164344e6f74436f6e74726f6c6c6572000004644e6f74206120636f6e74726f6c6c6572206163636f756e742e204e6f745374617368000104504e6f742061207374617368206163636f756e742e34416c7265616479426f6e64656400020460537461736820697320616c726561647920626f6e6465642e34416c726561647950616972656400030474436f6e74726f6c6c657220697320616c7265616479207061697265642e30456d7074795461726765747300040460546172676574732063616e6e6f7420626520656d7074792e384475706c6963617465496e646578000504404475706c696361746520696e6465782e44496e76616c6964536c617368496e64657800060484536c617368207265636f726420696e646578206f7574206f6620626f756e64732e40496e73756666696369656e74426f6e6400070c590143616e6e6f74206861766520612076616c696461746f72206f72206e6f6d696e61746f7220726f6c652c20776974682076616c7565206c657373207468616e20746865206d696e696d756d20646566696e65642062793d01676f7665726e616e6365202873656520604d696e56616c696461746f72426f6e646020616e6420604d696e4e6f6d696e61746f72426f6e6460292e20496620756e626f6e64696e67206973207468651501696e74656e74696f6e2c20606368696c6c6020666972737420746f2072656d6f7665206f6e65277320726f6c652061732076616c696461746f722f6e6f6d696e61746f722e304e6f4d6f72654368756e6b730008049043616e206e6f74207363686564756c65206d6f726520756e6c6f636b206368756e6b732e344e6f556e6c6f636b4368756e6b000904a043616e206e6f74207265626f6e6420776974686f757420756e6c6f636b696e67206368756e6b732e3046756e646564546172676574000a04c8417474656d7074696e6720746f2074617267657420612073746173682074686174207374696c6c206861732066756e64732e48496e76616c6964457261546f526577617264000b0458496e76616c69642065726120746f207265776172642e68496e76616c69644e756d6265724f664e6f6d696e6174696f6e73000c0478496e76616c6964206e756d626572206f66206e6f6d696e6174696f6e732e484e6f74536f72746564416e64556e69717565000d04804974656d7320617265206e6f7420736f7274656420616e6420756e697175652e38416c7265616479436c61696d6564000e0409015265776172647320666f72207468697320657261206861766520616c7265616479206265656e20636c61696d656420666f7220746869732076616c696461746f722e54496e636f7272656374486973746f72794465707468000f04c0496e636f72726563742070726576696f757320686973746f727920646570746820696e7075742070726f76696465642e58496e636f7272656374536c617368696e675370616e73001004b0496e636f7272656374206e756d626572206f6620736c617368696e67207370616e732070726f76696465642e2042616453746174650011043901496e7465726e616c20737461746520686173206265636f6d6520736f6d65686f7720636f7272757074656420616e6420746865206f7065726174696f6e2063616e6e6f7420636f6e74696e75652e38546f6f4d616e795461726765747300120494546f6f206d616e79206e6f6d696e6174696f6e207461726765747320737570706c6965642e244261645461726765740013043d0141206e6f6d696e6174696f6e207461726765742077617320737570706c69656420746861742077617320626c6f636b6564206f72206f7468657277697365206e6f7420612076616c696461746f722e4043616e6e6f744368696c6c4f74686572001404550154686520757365722068617320656e6f75676820626f6e6420616e6420746875732063616e6e6f74206265206368696c6c656420666f72636566756c6c7920627920616e2065787465726e616c20706572736f6e2e44546f6f4d616e794e6f6d696e61746f72730015084d0154686572652061726520746f6f206d616e79206e6f6d696e61746f727320696e207468652073797374656d2e20476f7665726e616e6365206e6565647320746f2061646a75737420746865207374616b696e67b473657474696e677320746f206b656570207468696e6773207361666520666f72207468652072756e74696d652e44546f6f4d616e7956616c696461746f72730016084d0154686572652061726520746f6f206d616e792076616c696461746f727320696e207468652073797374656d2e20476f7665726e616e6365206e6565647320746f2061646a75737420746865207374616b696e67b473657474696e677320746f206b656570207468696e6773207361666520666f72207468652072756e74696d652e40436f6d6d697373696f6e546f6f4c6f77001704e0436f6d6d697373696f6e20697320746f6f206c6f772e204d757374206265206174206c6561737420604d696e436f6d6d697373696f6e602e44426f6e64696e6752657374726963746564001804e045787465726e616c207265737472696374696f6e2070726576656e747320626f6e64696e67207769746820676976656e206163636f756e7404ad010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f76332f72756e74696d652f6576656e74732d616e642d6572726f7273290a0909096f6620746869732070616c6c65742e0a0909098d07000002910700910700000408007105009507000004089907280099070c1c73705f636f72651863727970746f244b65795479706549640000040038011c5b75383b20345d00009d070c3870616c6c65745f73657373696f6e1870616c6c6574144572726f7204045400011430496e76616c696450726f6f6600000460496e76616c6964206f776e6572736869702070726f6f662e5c4e6f4173736f63696174656456616c696461746f7249640001049c4e6f206173736f6369617465642076616c696461746f7220494420666f72206163636f756e742e344475706c6963617465644b65790002046452656769737465726564206475706c6963617465206b65792e184e6f4b657973000304a44e6f206b65797320617265206173736f63696174656420776974682074686973206163636f756e742e244e6f4163636f756e7400040419014b65792073657474696e67206163636f756e74206973206e6f74206c6976652c20736f206974277320696d706f737369626c6520746f206173736f6369617465206b6579732e04744572726f7220666f72207468652073657373696f6e2070616c6c65742ea10700000408241000a507083870616c6c65745f6772616e6470612c53746f726564537461746504044e01100110104c6976650000003050656e64696e6750617573650801307363686564756c65645f61741001044e00011464656c61791001044e000100185061757365640002003450656e64696e67526573756d650801307363686564756c65645f61741001044e00011464656c61791001044e00030000a907083870616c6c65745f6772616e6470614c53746f72656450656e64696e674368616e676508044e0110144c696d697400001001307363686564756c65645f61741001044e00011464656c61791001044e0001406e6578745f617574686f726974696573ad07016c426f756e646564417574686f726974794c6973743c4c696d69743e000118666f72636564e90101244f7074696f6e3c4e3e0000ad0710346672616d655f737570706f72741c73746f72616765407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401ac045300000400a801185665633c543e0000b1070c3870616c6c65745f6772616e6470611870616c6c6574144572726f7204045400011c2c50617573654661696c65640000080501417474656d707420746f207369676e616c204752414e445041207061757365207768656e2074686520617574686f72697479207365742069736e2774206c697665a42865697468657220706175736564206f7220616c72656164792070656e64696e67207061757365292e30526573756d654661696c65640001081101417474656d707420746f207369676e616c204752414e44504120726573756d65207768656e2074686520617574686f72697479207365742069736e277420706175736564a028656974686572206c697665206f7220616c72656164792070656e64696e6720726573756d65292e344368616e676550656e64696e67000204e8417474656d707420746f207369676e616c204752414e445041206368616e67652077697468206f6e6520616c72656164792070656e64696e672e1c546f6f536f6f6e000304bc43616e6e6f74207369676e616c20666f72636564206368616e676520736f20736f6f6e206166746572206c6173742e60496e76616c69644b65794f776e65727368697050726f6f66000404310141206b6579206f776e6572736869702070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e60496e76616c696445717569766f636174696f6e50726f6f660005043101416e2065717569766f636174696f6e2070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e584475706c69636174654f6666656e63655265706f727400060415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e04ad010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f76332f72756e74696d652f6576656e74732d616e642d6572726f7273290a0909096f6620746869732070616c6c65742e0a090909b50710346672616d655f737570706f72741c73746f72616765407765616b5f626f756e6465645f766563385765616b426f756e646564566563080454017505045300000400b90701185665633c543e0000b907000002750500bd0710346672616d655f737570706f72741c73746f72616765407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401bc045300000400c10701185665633c543e0000c107000002bc00c50710346672616d655f737570706f727418747261697473106d69736334577261707065724f706171756504045401c907000800cd03000000c9070104540000c907084070616c6c65745f696d5f6f6e6c696e6564426f756e6465644f70617175654e6574776f726b53746174650c4c506565724964456e636f64696e674c696d697400584d756c746941646472456e636f64696e674c696d697400384164647265737365734c696d6974000008011c706565725f6964cd07019c5765616b426f756e6465645665633c75382c20506565724964456e636f64696e674c696d69743e00014865787465726e616c5f616464726573736573d107012d015765616b426f756e6465645665633c5765616b426f756e6465645665633c75382c204d756c746941646472456e636f64696e674c696d69743e2c204164647265737365734c696d69740a3e0000cd0710346672616d655f737570706f72741c73746f72616765407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401080453000004002801185665633c543e0000d10710346672616d655f737570706f72741c73746f72616765407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401cd07045300000400d50701185665633c543e0000d507000002cd0700d9070c4070616c6c65745f696d5f6f6e6c696e651870616c6c6574144572726f7204045400010828496e76616c69644b6579000004604e6f6e206578697374656e74207075626c6963206b65792e4c4475706c696361746564486561727462656174000104544475706c696361746564206865617274626561742e04ad010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f76332f72756e74696d652f6576656e74732d616e642d6572726f7273290a0909096f6620746869732070616c6c65742e0a090909dd070c2873705f7374616b696e671c6f6666656e6365384f6666656e636544657461696c7308205265706f727465720100204f6666656e64657201c8000801206f6666656e646572c801204f6666656e6465720001247265706f7274657273510501345665633c5265706f727465723e0000e10700000408e02800e50710346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e6465645665630804540124045300000400bd0301185665633c543e0000e9070c4070616c6c65745f626167735f6c697374106c697374104e6f646508045400044900001401086964000130543a3a4163636f756e744964000110707265762d0101504f7074696f6e3c543a3a4163636f756e7449643e0001106e6578742d0101504f7074696f6e3c543a3a4163636f756e7449643e0001246261675f7570706572200120543a3a53636f726500011473636f7265200120543a3a53636f72650000ed070c4070616c6c65745f626167735f6c697374106c6973740c4261670804540004490000080110686561642d0101504f7074696f6e3c543a3a4163636f756e7449643e0001107461696c2d0101504f7074696f6e3c543a3a4163636f756e7449643e0000f1070c4070616c6c65745f626167735f6c6973741870616c6c6574144572726f72080454000449000104104c6973740400f50701244c6973744572726f72000004b441206572726f7220696e20746865206c69737420696e7465726661636520696d706c656d656e746174696f6e2e04ad010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f76332f72756e74696d652f6576656e74732d616e642d6572726f7273290a0909096f6620746869732070616c6c65742e0a090909f5070c4070616c6c65745f626167735f6c697374106c697374244c6973744572726f72000110244475706c6963617465000000284e6f7448656176696572000100304e6f74496e53616d65426167000200304e6f64654e6f74466f756e6400030000f90710346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e64656456656308045401d105045300000400fd0701185665633c543e0000fd07000002d105000108083870616c6c65745f76657374696e672052656c65617365730001080856300000000856310001000005080c3870616c6c65745f76657374696e671870616c6c6574144572726f72040454000114284e6f7456657374696e6700000484546865206163636f756e7420676976656e206973206e6f742076657374696e672e5441744d617856657374696e675363686564756c65730001082501546865206163636f756e7420616c72656164792068617320604d617856657374696e675363686564756c65736020636f756e74206f66207363686564756c657320616e642074687573510163616e6e6f742061646420616e6f74686572206f6e652e20436f6e7369646572206d657267696e67206578697374696e67207363686564756c657320696e206f7264657220746f2061646420616e6f746865722e24416d6f756e744c6f770002040501416d6f756e74206265696e67207472616e7366657272656420697320746f6f206c6f7720746f2063726561746520612076657374696e67207363686564756c652e605363686564756c65496e6465784f75744f66426f756e6473000304d0416e20696e64657820776173206f7574206f6620626f756e6473206f66207468652076657374696e67207363686564756c65732e54496e76616c69645363686564756c65506172616d730004040d014661696c656420746f206372656174652061206e6577207363686564756c65206265636175736520736f6d6520706172616d657465722077617320696e76616c69642e04744572726f7220666f72207468652076657374696e672070616c6c65742e0908000004080004000d08083c70616c6c65745f6d756c7469736967204d756c74697369670c2c426c6f636b4e756d62657201101c42616c616e63650118244163636f756e7449640100001001107768656ef0015854696d65706f696e743c426c6f636b4e756d6265723e00011c6465706f73697418011c42616c616e63650001246465706f7369746f720001244163636f756e744964000124617070726f76616c73510501385665633c4163636f756e7449643e000011080000040cdd0500180015080c3c70616c6c65745f6d756c74697369671870616c6c6574144572726f72040454000138404d696e696d756d5468726573686f6c640000047c5468726573686f6c64206d7573742062652032206f7220677265617465722e3c416c7265616479417070726f766564000104ac43616c6c20697320616c726561647920617070726f7665642062792074686973207369676e61746f72792e444e6f417070726f76616c734e65656465640002049c43616c6c20646f65736e2774206e65656420616e7920286d6f72652920617070726f76616c732e44546f6f4665775369676e61746f72696573000304a854686572652061726520746f6f20666577207369676e61746f7269657320696e20746865206c6973742e48546f6f4d616e795369676e61746f72696573000404ac54686572652061726520746f6f206d616e79207369676e61746f7269657320696e20746865206c6973742e545369676e61746f726965734f75744f664f726465720005040d01546865207369676e61746f7269657320776572652070726f7669646564206f7574206f66206f726465723b20746865792073686f756c64206265206f7264657265642e4c53656e646572496e5369676e61746f726965730006040d015468652073656e6465722077617320636f6e7461696e656420696e20746865206f74686572207369676e61746f726965733b2069742073686f756c646e27742062652e204e6f74466f756e64000704dc4d756c7469736967206f7065726174696f6e206e6f7420666f756e64207768656e20617474656d7074696e6720746f2063616e63656c2e204e6f744f776e65720008042d014f6e6c7920746865206163636f756e742074686174206f726967696e616c6c79206372656174656420746865206d756c74697369672069732061626c6520746f2063616e63656c2069742e2c4e6f54696d65706f696e740009041d014e6f2074696d65706f696e742077617320676976656e2c2079657420746865206d756c7469736967206f7065726174696f6e20697320616c726561647920756e6465727761792e3857726f6e6754696d65706f696e74000a042d014120646966666572656e742074696d65706f696e742077617320676976656e20746f20746865206d756c7469736967206f7065726174696f6e207468617420697320756e6465727761792e4c556e657870656374656454696d65706f696e74000b04f4412074696d65706f696e742077617320676976656e2c20796574206e6f206d756c7469736967206f7065726174696f6e20697320756e6465727761792e3c4d6178576569676874546f6f4c6f77000c04d0546865206d6178696d756d2077656967687420696e666f726d6174696f6e2070726f76696465642077617320746f6f206c6f772e34416c726561647953746f726564000d04a0546865206461746120746f2062652073746f72656420697320616c72656164792073746f7265642e04ad010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f76332f72756e74696d652f6576656e74732d616e642d6572726f7273290a0909096f6620746869732070616c6c65742e0a0909091908083870616c6c65745f636f756e63696c48436f756e63696c5374616765557064617465042c426c6f636b4e756d62657201100008011473746167651d080164436f756e63696c53746167653c426c6f636b4e756d6265723e0001286368616e6765645f617410012c426c6f636b4e756d62657200001d08083870616c6c65745f636f756e63696c30436f756e63696c5374616765042c426c6f636b4e756d6265720110010c28416e6e6f756e63696e6704002108018c436f756e63696c5374616765416e6e6f756e63696e673c426c6f636b4e756d6265723e00000020456c656374696f6e040025080150436f756e63696c5374616765456c656374696f6e0001001049646c65040029080174436f756e63696c537461676549646c653c426c6f636b4e756d6265723e000200002108083870616c6c65745f636f756e63696c58436f756e63696c5374616765416e6e6f756e63696e67042c426c6f636b4e756d62657201100008014063616e646964617465735f636f756e7410010c75333200011c656e64735f617410012c426c6f636b4e756d62657200002508083870616c6c65745f636f756e63696c50436f756e63696c5374616765456c656374696f6e000004014063616e646964617465735f636f756e7410010c75333200002908083870616c6c65745f636f756e63696c40436f756e63696c537461676549646c65042c426c6f636b4e756d62657201100004011c656e64735f617410012c426c6f636b4e756d62657200002d0810346672616d655f737570706f72741c73746f72616765407765616b5f626f756e6465645f766563385765616b426f756e646564566563080454013108045300000400350801185665633c543e00003108083870616c6c65745f636f756e63696c34436f756e63696c4d656d62657210244163636f756e7449640100204d656d626572496401201c42616c616e636501182c426c6f636b4e756d6265720110001801487374616b696e675f6163636f756e745f69640001244163636f756e7449640001447265776172645f6163636f756e745f69640001244163636f756e7449640001346d656d626572736869705f69642001204d656d62657249640001147374616b6518011c42616c616e63650001486c6173745f7061796d656e745f626c6f636b10012c426c6f636b4e756d626572000134756e706169645f72657761726418011c42616c616e6365000035080000023108003908083870616c6c65745f636f756e63696c2443616e64696461746510244163636f756e74496401001c42616c616e636501181048617368012424566f7465506f7765720118001801487374616b696e675f6163636f756e745f69640001244163636f756e7449640001447265776172645f6163636f756e745f69640001244163636f756e7449640001206379636c655f696420010c7536340001147374616b6518011c42616c616e6365000128766f74655f706f776572180124566f7465506f7765720001246e6f74655f68617368610201304f7074696f6e3c486173683e00003d08083870616c6c65745f636f756e63696c144572726f720404540001603c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f7729244261644f726967696e000104484f726967696e20697320696e76616c69642e4043616e7443616e6469646174654e6f7700020439015573657220747269656420746f20616e6e6f756e63652063616e646964616379206f757473696465206f66207468652063616e64696461637920616e6e6f756e63656d656e7420706572696f642e4c43616e7452656c656173655374616b654e6f77000304f05573657220747269656420746f2072656c65617365207374616b65206f757473696465206f66207468652072657665616c696e6720706572696f642e5043616e6469646163795374616b65546f6f4c6f77000404b043616e64696461746520686176656e27742070726f76696465642073756666696369656e74207374616b652e4843616e7443616e6469646174655477696365000504f45573657220747269656420746f20616e6e6f756e63652063616e64696461637920747769636520696e207468652073616d6520656c656374696f6e732e40436f6e666c696374696e675374616b650006085d015573657220747269656420746f20616e6e6f756e63652063616e646964616379207769746820616e206163636f756e742074686174206861732074686520636f6e666c696374696e672074797065206f66207374616b653901776974682063616e646964616379207374616b6520616e6420686173206e6f7420656e6f7567682062616c616e636520666f72207374616b696e6720666f7220626f746820707572706f7365732e405374616b655374696c6c4e6565646564000704dc436f756e63696c206d656d62657220616e642063616e646964617465732063616e2774207769746864726177207374616b65207965742e1c4e6f5374616b65000804c45573657220747269656420746f2072656c65617365207374616b65207768656e206e6f207374616b65206578697374732e74496e73756666696369656e7442616c616e6365466f725374616b696e67000904ac496e73756666696369656e742062616c616e636520666f722063616e646964616379207374616b696e672e4c43616e74566f7465466f72596f757273656c66000a048443616e6469646174652063616e277420766f746520666f722068696d73656c662e5c4d656d62657249644e6f744d617463684163636f756e74000b044c496e76616c6964206d656d626572736869702e68496e76616c69644163636f756e74546f5374616b655265757365000c08510154686520636f6d62696e6174696f6e206f66206d656d6265727368697020696420616e64206163636f756e7420696420697320696e76616c696420666f7220756e7374616b696e6720616e206578697374696e674063616e646964616379207374616b652e444e6f7443616e6469646174696e674e6f77000d04d85573657220747269656420746f2077697468647261772063616e646964616379207768656e206e6f742063616e6469646174696e672e6043616e74576974686472617743616e6469646163794e6f77000e04190143616e27742077697468647261772063616e646964616379206f757473696465206f66207468652063616e64696461637920616e6e6f756e63656d656e7420706572696f642e304e6f74436f756e63696c6f72000f0478546865206d656d626572206973206e6f74206120636f756e63696c6f722e88496e73756666696369656e7446756e6473466f7246756e64696e6752657175657374001004f0496e737566666963656e742066756e647320696e20636f756e63696c20666f7220657865637574696e67202746756e64696e67205265717565737427585a65726f42616c616e636546756e64526571756573740011045c46756e642072657175657374206e6f2062616c616e636568526570656174656446756e64526571756573744163636f756e74001204fc5468652073616d65206163636f756e7420697320726563696576696e672066756e64732066726f6d207468652073616d65207265717565737420747769636550456d70747946756e64696e675265717565737473001304ac46756e64696e6720726571756573747320776974686f757420726563696576696e67206163636f756e747370496e73756666696369656e74546f6b656e73466f7246756e64696e67001404f8496e73756666696369656e7420746f6b656e7320666f722066756e64696e6720286f6e206d656d62657220636f6e74726f6c6c6572206163636f756e7429445a65726f546f6b656e7346756e64696e670015047c547279696e6720746f2066756e642077697468207a65726f20746f6b656e735443616e646964617465446f65734e6f7445786973740016045843616e646964617465206964206e6f7420666f756e6478496e73756666696369656e7442616c616e6365466f725472616e73666572001704b443616e6e6f742077697468647261773a20696e73756666696369656e74206275646765742062616c616e63652e0438436f756e63696c206572726f72734108084470616c6c65745f7265666572656e64756d3c5265666572656e64756d5374616765082c426c6f636b4e756d62657201104c496e7465726d65646961746557696e6e657273014508010c20496e61637469766500000018566f74696e670400490801885265666572656e64756d5374616765566f74696e673c426c6f636b4e756d6265723e0001002452657665616c696e6704004d0801e85265666572656e64756d537461676552657665616c696e673c426c6f636b4e756d6265722c20496e7465726d65646961746557696e6e6572733e00020000450810346672616d655f737570706f72741c73746f72616765407765616b5f626f756e6465645f766563385765616b426f756e646564566563080454010901045300000400050101185665633c543e00004908084470616c6c65745f7265666572656e64756d545265666572656e64756d5374616765566f74696e67042c426c6f636b4e756d62657201100010011c7374617274656410012c426c6f636b4e756d62657200015077696e6e696e675f7461726765745f636f756e7410010c75333200014063757272656e745f6379636c655f696420010c75363400011c656e64735f617410012c426c6f636b4e756d62657200004d08084470616c6c65745f7265666572656e64756d605265666572656e64756d537461676552657665616c696e67082c426c6f636b4e756d62657201104c496e7465726d65646961746557696e6e6572730145080014011c7374617274656410012c426c6f636b4e756d62657200015077696e6e696e675f7461726765745f636f756e7410010c753332000150696e7465726d6564696174655f77696e6e6572734508014c496e7465726d65646961746557696e6e65727300014063757272656e745f6379636c655f696420010c75363400011c656e64735f617410012c426c6f636b4e756d62657200005108084470616c6c65745f7265666572656e64756d2043617374566f74650c104861736801242043757272656e63790118204d656d6265724964012000100128636f6d6d69746d656e74240110486173680001206379636c655f696420010c7536340001147374616b6518012043757272656e6379000120766f74655f666f72190101404f7074696f6e3c4d656d62657249643e00005508084470616c6c65745f7265666572656e64756d144572726f72080454000449000138244261644f726967696e000004444f726967696e20697320696e76616c6964505265666572656e64756d4e6f7452756e6e696e67000104a85265666572656e64756d206973206e6f742072756e6e696e67207768656e20657870656374656420746f5852657665616c696e674e6f74496e50726f6772657373000204b052657665616c696e67207374616765206973206e6f7420696e2070726f6772657373207269676874206e6f775c436f6e666c6963745374616b65734f6e4163636f756e74000304b05374616b696e67206163636f756e7420636f6e7461696e7320636f6e666c696374696e67207374616b65732e68496e73756666696369656e7442616c616e6365546f5374616b650004049c4163636f756e7420496e73756666696369656e7420467265652042616c616e636520286e6f772944496e73756666696369656e745374616b65000504a8496e73756666696369656e74207374616b652070726f766964656420746f2063617374206120766f746534496e76616c696452657665616c000604190153616c7420616e64207265666572656e64756d206f7074696f6e2070726f766964656420646f6e277420636f72726573706f6e6420746f2074686520636f6d6d69746d656e742c496e76616c6964566f7465000704a4566f746520666f72206e6f74206578697374696e67206f7074696f6e207761732072657665616c65643c566f74654e6f744578697374696e670008049c547279696e6720746f2072657665616c20766f7465207468617420776173206e6f74206361737454416c7265616479566f746564546869734379636c65000904b8547279696e6720746f20766f7465206d756c7469706c652074696d6520696e207468652073616d65206379636c6560556e7374616b696e67566f7465496e53616d654379636c65000a04a0496e76616c69642074696d6520746f2072656c6561736520746865206c6f636b6564207374616b652c53616c74546f6f4c6f6e67000b044053616c7420697320746f6f206c6f6e6748556e7374616b696e67466f7262696464656e000c04f0556e7374616b696e6720686173206265656e20666f7262696464656e20666f7220746865207573657220286174206c6561737420666f72206e6f7729784163636f756e74416c72656164794f707465644f75744f66566f74696e67000d041d014120766f74652063616e6e6f7420626520636173742066726f6d20616e206163636f756e74207468617420616c7265616479206f70746564206f7574206f6620766f74696e672e04445265666572656e64756d206572726f72735908084470616c6c65745f6d656d62657273686970404d656d626572736869704f626a65637408244163636f756e7449640100104861736801240014012c68616e646c655f6861736824011048617368000130726f6f745f6163636f756e740001244163636f756e744964000148636f6e74726f6c6c65725f6163636f756e740001244163636f756e7449640001207665726966696564880110626f6f6c00011c696e766974657310010c75333200005d08084470616c6c65745f6d656d626572736869706c5374616b696e674163636f756e744d656d62657242696e64696e6704204d656d62657249640120000801246d656d6265725f69642001204d656d6265724964000124636f6e6669726d6564880110626f6f6c00006108084470616c6c65745f6d656d62657273686970144572726f720404540001587c4e6f74456e6f75676842616c616e6365546f4275794d656d62657273686970000004944e6f7420656e6f7567682062616c616e636520746f20627579206d656d626572736869702e64436f6e74726f6c6c65724163636f756e74526571756972656400010470436f6e74726f6c6c6572206163636f756e742072657175697265642e4c526f6f744163636f756e74526571756972656400020458526f6f74206163636f756e742072657175697265642e38556e7369676e65644f726967696e00030440556e7369676e6564206f726967696e2e544d656d62657250726f66696c654e6f74466f756e64000404b44d656d6265722070726f66696c65206e6f7420666f756e642028696e76616c6964206d656d626572206964292e5c48616e646c65416c7265616479526567697374657265640005046848616e646c6520616c726561647920726567697374657265642e9848616e646c654d757374426550726f7669646564447572696e67526567697374726174696f6e000604b048616e646c65206d7573742062652070726f766964656420647572696e6720726567697374726174696f6e2e4c526566657272657249734e6f744d656d626572000704d043616e6e6f742066696e642061206d656d6265727368697020666f7220612070726f76696465642072656665727265722069642e8443616e6e6f745472616e73666572496e7669746573466f724e6f744d656d6265720008049853686f756c642062652061206d656d62657220746f207265636569766520696e76697465732e404e6f74456e6f756768496e7669746573000904ac4e6f7420656e6f75676820696e766974657320746f20706572666f726d20616e206f7065726174696f6e2e60576f726b696e6747726f75704c65616465724e6f74536574000a04ac4d656d6265727368697020776f726b696e672067726f7570206c6561646572206973206e6f74207365742e845374616b696e674163636f756e744973416c726561647952656769737465726564000b04b85374616b696e67206163636f756e74206973207265676973746572656420666f7220736f6d65206d656d6265722e645374616b696e674163636f756e74446f65736e744578697374000c04b45374616b696e67206163636f756e7420666f72206d656d6265727368697020646f65736e27742065786973742e785374616b696e674163636f756e74416c7265616479436f6e6669726d6564000d04ac5374616b696e67206163636f756e742068617320616c7265616479206265656e20636f6e6669726d65642eb0576f726b696e6747726f757042756467657449734e6f7453756666696369656e74466f72496e766974696e67000e08490143616e6e6f7420696e766974652061206d656d6265722e20576f726b696e672067726f75702062616c616e6365206973206e6f742073756666696369656e7420746f20736574207468652064656661756c742062616c616e63652e3c436f6e666c696374696e674c6f636b000f04410143616e6e6f7420696e766974652061206d656d6265722e2054686520636f6e74726f6c6c6572206163636f756e742068617320616e206578697374696e6720636f6e666c696374696e67206c6f636b2e8c43616e6e6f74457863656564526566657272616c43757450657263656e744c696d6974001004010143616e6e6f7420736574206120726566657272616c206375742070657263656e742076616c75652e20546865206c696d6974207761732065786365656465642e5c436f6e666c6963745374616b65734f6e4163636f756e74001104b05374616b696e67206163636f756e7420636f6e7461696e7320636f6e666c696374696e67207374616b65732e7c496e73756666696369656e7442616c616e6365546f436f7665725374616b6500120490496e73756666696369656e742062616c616e636520746f20636f766572207374616b652e504769664c6f636b45786365656473437265646974001304ac4c6f636b656420616d6f756e742069732067726561746572207468616e2063726564697420616d6f756e7464496e73756666696369656e7442616c616e6365546f47696674001404c047696674657220646f65736e277420686176652073756666696369656e742062616c616e636520746f2063726564697484496e73756666696369656e7442616c616e6365546f436f7665725061796d656e7400150498496e73756666696369656e742062616c616e636520746f20636f766572207061796d656e742e048c4d656d62657273686970206d6f64756c6520707265646566696e6564206572726f72736508083070616c6c65745f666f72756d2043617465676f72790c2843617465676f7279496401201048617368012444537469636b696564546872656164496473016908002001287469746c655f68617368240110486173680001406465736372697074696f6e5f68617368240110486173680001206172636869766564880110626f6f6c0001606e756d5f6469726563745f73756263617465676f7269657310010c7533320001486e756d5f6469726563745f7468726561647310010c7533320001546e756d5f6469726563745f6d6f64657261746f727310010c753332000148706172656e745f63617465676f72795f6964190101484f7074696f6e3c43617465676f727949643e000144737469636b795f7468726561645f69647369080144537469636b6965645468726561644964730000690810346672616d655f737570706f72741c73746f7261676544626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401200453000004005101012c42547265655365743c543e00006d08083070616c6c65745f666f72756d185468726561640c2c466f72756d55736572496401202843617465676f72794964012048526570617961626c65426c6f6174426f6e6401c9010010012c63617465676f72795f696420012843617465676f72794964000124617574686f725f696420012c466f72756d55736572496400013c636c65616e75705f7061795f6f6666c9010148526570617961626c65426c6f6174426f6e640001606e756d6265725f6f665f6564697461626c655f706f7374732001344e756d6265724f66506f73747300007108083070616c6c65745f666f72756d10506f7374142c466f72756d55736572496401202054687265616449640120104861736801242c426c6f636b4e756d626572011048526570617961626c65426c6f6174426f6e6401c901001401247468726561645f69642001205468726561644964000124746578745f6861736824011048617368000124617574686f725f696420012c466f72756d55736572496400013c636c65616e75705f7061795f6f6666c9010148526570617961626c65426c6f6174426f6e6400012c6c6173745f65646974656410012c426c6f636b4e756d62657200007508083070616c6c65745f666f72756d144572726f7204045400016c3c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f7729484f726967696e4e6f74466f72756d4c656164000104b44f726967696e20646f65736e277420636f72726573706f6e6420746f20616e79206c656164206163636f756e7468466f72756d5573657249644e6f744d617463684163636f756e7400020490466f72756d2075736572206964206e6f74206d6174636820697473206163636f756e742e684d6f64657261746f7249644e6f744d617463684163636f756e740003048c4d6f64657261746f72206964206e6f74206d6174636820697473206163636f756e742e7c4163636f756e74446f65734e6f744d61746368546872656164417574686f7200040498546872656164206e6f7420617574686f7265642062792074686520676976656e20757365722e48546872656164446f65734e6f7445786973740005045454687265616420646f6573206e6f742065786973747c4d6f64657261746f724d6f6465726174654f726967696e43617465676f7279000604d04d6f64657261746f722063616e2774206d6f6465726174652063617465676f727920636f6e7461696e696e67207468726561642e904d6f64657261746f724d6f64657261746544657374696e6174696f6e43617465676f7279000704b84d6f64657261746f722063616e2774206d6f6465726174652064657374696e6174696f6e2063617465676f72792e445468726561644d6f7665496e76616c6964000804984f726967696e206973207468652073616d65206173207468652064657374696e6174696f6e2e545468726561644e6f744265696e675570646174656400090464546872656164206e6f74206265696e6720757064617465642e90496e73756666696369656e7442616c616e6365466f725468726561644372656174696f6e000a048c4e6f7420656e6f7567682062616c616e636520746f20637265617465207468726561649843616e6e6f7444656c657465546872656164576974684f75747374616e64696e67506f737473000b04c441207468726561642077697468206f75747374616e64696e6720706f7374732063616e6e6f742062652072656d6f76656440506f7374446f65734e6f744578697374000c0450506f737420646f6573206e6f742065786973742e744163636f756e74446f65734e6f744d61746368506f7374417574686f72000d048c4163636f756e7420646f6573206e6f74206d6174636820706f737420617574686f722e68496e73756666696369656e7442616c616e6365466f72506f7374000e04684e6f7420656e6f7567682062616c616e636520746f20706f73745c43617465676f72794e6f744265696e6755706461746564000f046c43617465676f7279206e6f74206265696e6720757064617465642e64416e636573746f7243617465676f7279496d6d757461626c65001004d4416e636573746f722063617465676f727920696d6d757461626c652c20692e652e2064656c65746564206f72206172636869766564744d617856616c696443617465676f727944657074684578636565646564001104984d6178696d756d2076616c69642063617465676f72792064657074682065786365656465642e5043617465676f7279446f65734e6f7445786973740012046043617465676f727920646f6573206e6f742065786973742e7443617465676f72794d6f64657261746f72446f65734e6f744578697374001304c850726f7669646564206d6f64657261746f72206973206e6f7420676976656e2063617465676f7279206d6f64657261746f725c43617465676f72794e6f74456d707479546872656164730014049443617465676f7279207374696c6c20636f6e7461696e7320736f6d6520746872656164732e6843617465676f72794e6f74456d70747943617465676f72696573001504ac43617465676f7279207374696c6c20636f6e7461696e7320736f6d652073756263617465676f726965732e6c4d6f64657261746f7243616e7444656c65746543617465676f7279001604884e6f207065726d697373696f6e7320746f2064656c6574652063617465676f72792e6c4d6f64657261746f7243616e7455706461746543617465676f7279001704884e6f207065726d697373696f6e7320746f207570646174652063617465676f72792e304d617053697a654c696d6974001804904d6178696d756d2073697a65206f662073746f72616765206d617020657863656564656484506174684c656e67746853686f756c644265477265617465725468616e5a65726f001904b443617465676f72792070617468206c656e2073686f756c642062652067726561746572207468616e207a65726f884d61784e756d6265724f66537469636b696564546872656164734578636565646564001a04e04d6178696d756d206e756d626572206f6620737469636b6965642074687265616473207065722063617465676f7279206578636565646564045c466f72756d20707265646566696e6564206572726f72737908084c70616c6c65745f636f6e737469747574696f6e40436f6e737469747574696f6e496e666f041048617368012400040124746578745f686173682401104861736800007d08083470616c6c65745f626f756e747930426f756e74795265636f7264101c42616c616e636501182c426c6f636b4e756d6265720110204d656d626572496401205c436c6f736564436f6e747261637457686974656c6973740181080014013c6372656174696f6e5f706172616d738508012501426f756e7479506172616d65746572733c42616c616e63652c20426c6f636b4e756d6265722c204d656d62657249642c20436c6f736564436f6e747261637457686974656c6973743e000134746f74616c5f66756e64696e6718011c42616c616e63650001246d696c6573746f6e658d080170426f756e74794d696c6573746f6e653c426c6f636b4e756d6265723e00015c6163746976655f776f726b5f656e7472795f636f756e7410010c7533320001606861735f756e706169645f6f7261636c655f726577617264880110626f6f6c0000810810346672616d655f737570706f72741c73746f7261676544626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401200453000004005101012c42547265655365743c543e00008508083470616c6c65745f626f756e747940426f756e7479506172616d6574657273101c42616c616e636501182c426c6f636b4e756d6265720110204d656d626572496401205c436c6f736564436f6e747261637457686974656c697374018108001c01186f7261636c6561010154426f756e74794163746f723c4d656d62657249643e000134636f6e74726163745f74797065890801b84173737572616e6365436f6e7472616374547970653c436c6f736564436f6e747261637457686974656c6973743e00011c63726561746f7261010154426f756e74794163746f723c4d656d62657249643e00011863686572727918011c42616c616e63650001346f7261636c655f72657761726418011c42616c616e6365000134656e7472616e745f7374616b6518011c42616c616e636500013066756e64696e675f747970656901018446756e64696e67547970653c426c6f636b4e756d6265722c2042616c616e63653e00008908083470616c6c65745f626f756e7479544173737572616e6365436f6e747261637454797065045c436c6f736564436f6e747261637457686974656c6973740181080108104f70656e00000018436c6f73656404008108015c436c6f736564436f6e747261637457686974656c697374000100008d08083470616c6c65745f626f756e74793c426f756e74794d696c6573746f6e65042c426c6f636b4e756d626572011001141c43726561746564080128637265617465645f617410012c426c6f636b4e756d6265720001446861735f636f6e747269627574696f6e73880110626f6f6c0000005c426f756e74794d617846756e64696e675265616368656400010034576f726b5375626d6974746564000200285465726d696e61746564000300444a7564676d656e745375626d69747465640401447375636365737366756c5f626f756e7479880110626f6f6c00040000910800000408206101009508083470616c6c65745f626f756e747930436f6e747269627574696f6e0404540000080118616d6f756e7418013042616c616e63654f663c543e00017866756e6465725f73746174655f626c6f61745f626f6e645f616d6f756e7418013042616c616e63654f663c543e00009908083470616c6c65745f626f756e74792c456e7472795265636f72640c244163636f756e7449640100204d656d626572496401202c426c6f636b4e756d6265720110001001246d656d6265725f69642001204d656d62657249640001487374616b696e675f6163636f756e745f69640001244163636f756e7449640001307375626d69747465645f617410012c426c6f636b4e756d626572000138776f726b5f7375626d6974746564880110626f6f6c00009d08083470616c6c65745f626f756e7479144572726f7204045400018c3c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f7729b04d696e46756e64696e67416d6f756e7443616e6e6f744265477265617465725468616e4d6178416d6f756e74000104d44d696e2066756e64696e6720616d6f756e742063616e6e6f742062652067726561746572207468616e206d617820616d6f756e742e44426f756e7479446f65736e74457869737400020450426f756e747920646f65736e742065786973742e605377697463684f7261636c654f726967696e4973526f6f7400030489014f726967696e20697320726f6f742c20736f20737769746368696e67206f7261636c65206973206e6f7420616c6c6f77656420696e20746869732065787472696e7369632e202863616c6c207377697463685f6f7261636c655f61735f726f6f742974496e76616c69645374616765556e657870656374656446756e64696e67000404c8556e657870656374656420626f756e747920737461676520666f7220616e206f7065726174696f6e3a2046756e64696e672ea8496e76616c69645374616765556e65787065637465644e6f46756e64696e67436f6e7472696275746564000504fc556e657870656374656420626f756e747920737461676520666f7220616e206f7065726174696f6e3a204e6f46756e64696e67436f6e74726962757465642e7c496e76616c69645374616765556e657870656374656443616e63656c6c6564000604d0556e657870656374656420626f756e747920737461676520666f7220616e206f7065726174696f6e3a2043616e63656c6c65642e90496e76616c69645374616765556e6578706563746564576f726b5375626d697373696f6e000704e4556e657870656374656420626f756e747920737461676520666f7220616e206f7065726174696f6e3a20576f726b5375626d697373696f6e2e78496e76616c69645374616765556e65787065637465644a7564676d656e74000804cc556e657870656374656420626f756e747920737461676520666f7220616e206f7065726174696f6e3a204a7564676d656e742ec0496e76616c69645374616765556e65787065637465645375636365737366756c426f756e74795769746864726177616c0009041501556e657870656374656420626f756e747920737461676520666f7220616e206f7065726174696f6e3a205375636365737366756c426f756e74795769746864726177616c2eb0496e76616c69645374616765556e65787065637465644661696c6564426f756e74795769746864726177616c000a040501556e657870656374656420626f756e747920737461676520666f7220616e206f7065726174696f6e3a204661696c6564426f756e74795769746864726177616c2e70496e73756666696369656e7442616c616e6365466f72426f756e7479000b04a4496e73756666696369656e742062616c616e636520666f72206120626f756e7479206368657272792e644e6f426f756e7479436f6e747269627574696f6e466f756e64000c048443616e6e6f7420666f756e6420626f756e747920636f6e747269627574696f6e2e6c496e73756666696369656e7442616c616e6365466f725374616b65000d04a05468657265206973206e6f7420656e6f7567682062616c616e636520666f722061207374616b652e44436f6e666c696374696e675374616b6573000e04bc54686520636f6e666c696374696e67207374616b6520646973636f76657265642e2043616e6e6f74207374616b652e50576f726b456e747279446f65736e744578697374000f0460576f726b20656e74727920646f65736e742065786973742e704368657272794c6573735468656e4d696e696d756d416c6c6f77656400100484436865727279206c657373207468616e206d696e696d756d20616c6c6f7765642e9843616e6e6f745375626d6974576f726b546f436c6f736564436f6e7472616374426f756e74790011085101496e636f6d70617469626c65206173737572616e636520636f6e7472616374207479706520666f722061206d656d6265723a2063616e6e6f74207375626d697420776f726b20746f207468652027636c6f7365646c6173737572616e63652720626f756e747920636f6e74726163742e7c436c6f736564436f6e74726163744d656d6265724c6973744973456d707479001204290143616e6e6f742063726561746520612027636c6f736564206173737572616e636520636f6e74726163742720626f756e7479207769746820656d707479206d656d626572206c6973742e88436c6f736564436f6e74726163744d656d6265724c6973744973546f6f4c61726765001308290143616e6e6f742063726561746520612027636c6f736564206173737572616e636520636f6e74726163742720626f756e74792077697468206d656d626572206c697374206c6172676572887468616e20616c6c6f776564206d617820776f726b20656e747279206c696d69742e70436c6f736564436f6e74726163744d656d6265724e6f74466f756e64001404410127636c6f736564206173737572616e636520636f6e74726163742720626f756e7479206d656d626572206c6973742063616e206f6e6c7920696e636c756465206578697374696e67206d656d6265727354496e76616c69644f7261636c654d656d6265724964001504fc50726f7669646564206f7261636c65206d656d62657220696420646f6573206e6f742062656c6f6e6720746f20616e206578697374696e67206d656d62657278496e76616c69645374616b696e674163636f756e74466f724d656d626572001604ac5374616b696e67206163636f756e7420646f65736e27742062656c6f6e6720746f2061206d656d6265722e405a65726f57696e6e65725265776172640017048c43616e6e6f7420736574207a65726f2072657761726420666f722077696e6e6572732e98546f74616c52657761726453686f756c644265457175616c546f546f74616c46756e64696e67001804150154686520746f74616c2072657761726420666f722077696e6e6572732073686f756c6420626520657175616c20746f20746f74616c20626f756e74792066756e64696e672e74456e7472616e745374616b6549734c6573735468616e4d696e696e756d0019042d0143616e6e6f7420637265617465206120626f756e7479207769746820616e20656e7472616e74207374616b65206973206c657373207468616e207265717569726564206d696e696d756d2e6446756e64696e67416d6f756e7443616e6e6f7442655a65726f001a04e843616e6e6f7420637265617465206120626f756e74792077697468207a65726f2066756e64696e6720616d6f756e7420706172616d657465722e6446756e64696e67506572696f6443616e6e6f7442655a65726f001b04e843616e6e6f7420637265617465206120626f756e74792077697468207a65726f2066756e64696e6720706572696f6420706172616d657465722e7457696e6e657253686f756c64486173576f726b5375626d697373696f6e001c04f0496e76616c6964206a7564676d656e74202d20616c6c2077696e6e6572732073686f756c64206861766520776f726b207375626d697373696f6e732e80496e76616c6964436f6e7472696275746f724163746f72537065636966696564001d0470426f756e747920636f6e7472696275746f72206e6f7420666f756e646c496e76616c69644f7261636c654163746f72537065636966696564001e045c426f756e7479206f7261636c65206e6f7420666f756e6474496e76616c6964456e7472616e74576f726b6572537065636966696564001f04a44d656d62657220737065636966696564206973206e6f7420616e20656e7472616e7420776f726b657270496e76616c696443726561746f724163746f72537065636966696564002004a8496e76616c69642043726561746f72204163746f7220666f7220426f756e74792073706563696669656474576f726b456e747279446f65736e7442656c6f6e67546f576f726b6572002104f8576f726b657220747269656420746f20616363657373206120776f726b20656e747279207468617420646f65736e27742062656c6f6e6720746f2068696d704f7261636c65526577617264416c726561647957697468647261776e002204884f7261636c65206861766520616c7265616479206265656e2077697468647261776e047c426f756e74792070616c6c657420707265646566696e6564206572726f7273a108083870616c6c65745f7574696c697479144572726f7204045400010c80496e73756666696369656e7446756e6473466f724275646765745570646174650000041d01496e73756666696369656e742066756e647320666f72202755706461746520576f726b696e672047726f757020427564676574272070726f706f73616c20657865637574696f6e385a65726f546f6b656e734275726e00010468547279696e6720746f206275726e207a65726f20746f6b656e7360496e73756666696369656e7446756e6473466f724275726e00020478496e73756666696369656e742066756e647320666f72206275726e696e670478436f646578206d6f64756c6520707265646566696e6564206572726f7273a5080c3870616c6c65745f636f6e74656e741474797065732c566964656f5265636f726410244368616e6e656c49640120204f776e65644e667401a90838566964656f41737365747353657401c90848526570617961626c65426c6f6174426f6e6401c90100100128696e5f6368616e6e656c2001244368616e6e656c49640001286e66745f737461747573cd0801404f7074696f6e3c4f776e65644e66743e000130646174615f6f626a65637473c9080138566964656f417373657473536574000158766964656f5f73746174655f626c6f61745f626f6e64c9010148526570617961626c65426c6f6174426f6e640000a908103870616c6c65745f636f6e74656e740c6e6674147479706573204f776e65644e66740c4c5472616e73616374696f6e616c53746174757301ad08204d656d626572496401202441756374696f6e49640120001001146f776e6572c50801484e66744f776e65723c4d656d62657249643e0001507472616e73616374696f6e616c5f737461747573ad08014c5472616e73616374696f6e616c53746174757300013c63726561746f725f726f79616c7479f901013c4f7074696f6e3c526f79616c74793e00014c6f70656e5f61756374696f6e735f6e6f6e636520012441756374696f6e49640000ad08103870616c6c65745f636f6e74656e740c6e6674147479706573645472616e73616374696f6e616c5374617475735265636f726410204d656d626572496401201c42616c616e6365011848456e676c69736841756374696f6e5479706501b1083c4f70656e41756374696f6e5479706501c10801141049646c6500000058496e697469617465644f66666572546f4d656d62657208002001204d656d626572496400002901013c4f7074696f6e3c42616c616e63653e00010038456e676c69736841756374696f6e0400b1080148456e676c69736841756374696f6e547970650002002c4f70656e41756374696f6e0400c108013c4f70656e41756374696f6e54797065000300184275794e6f77040018011c42616c616e636500040000b108103870616c6c65745f636f6e74656e740c6e667414747970657350456e676c69736841756374696f6e5265636f7264102c426c6f636b4e756d62657201101c42616c616e63650118204d656d626572496401204c4e667441756374696f6e57686974656c69737401b508002001387374617274696e675f707269636518011c42616c616e63650001346275795f6e6f775f70726963652901013c4f7074696f6e3c42616c616e63653e00012477686974656c697374b508014c4e667441756374696f6e57686974656c69737400010c656e6410012c426c6f636b4e756d626572000114737461727410012c426c6f636b4e756d626572000140657874656e73696f6e5f706572696f6410012c426c6f636b4e756d6265720001306d696e5f6269645f7374657018011c42616c616e636500011c746f705f626964b90801b04f7074696f6e3c456e676c69736841756374696f6e4269643c42616c616e63652c204d656d62657249643e3e0000b50810346672616d655f737570706f72741c73746f7261676544626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401200453000004005101012c42547265655365743c543e0000b90804184f7074696f6e04045401bd080108104e6f6e6500000010536f6d650400bd080000010000bd08103870616c6c65745f636f6e74656e740c6e667414747970657344456e676c69736841756374696f6e426964081c42616c616e63650118204d656d6265724964012000080118616d6f756e7418011c42616c616e63650001246269646465725f69642001204d656d62657249640000c108103870616c6c65745f636f6e74656e740c6e6674147479706573444f70656e41756374696f6e5265636f7264102c426c6f636b4e756d62657201102441756374696f6e496401201c42616c616e636501184c4e667441756374696f6e57686974656c69737401b508001801387374617274696e675f707269636518011c42616c616e63650001346275795f6e6f775f70726963652901013c4f7074696f6e3c42616c616e63653e00012477686974656c697374b508014c4e667441756374696f6e57686974656c6973740001446269645f6c6f636b5f6475726174696f6e10012c426c6f636b4e756d62657200012861756374696f6e5f696420012441756374696f6e4964000114737461727410012c426c6f636b4e756d6265720000c508103870616c6c65745f636f6e74656e740c6e6674147479706573204e66744f776e657204204d656d626572496401200108304368616e6e656c4f776e6572000000184d656d62657204002001204d656d626572496400010000c90810346672616d655f737570706f72741c73746f7261676544626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401200453000004005101012c42547265655365743c543e0000cd0804184f7074696f6e04045401a9080108104e6f6e6500000010536f6d650400a9080000010000d108103870616c6c65745f636f6e74656e742c7065726d697373696f6e733463757261746f725f67726f75704843757261746f7247726f75705265636f7264085c43757261746f7247726f757043757261746f72734d617001d508704d6f6465726174696f6e5065726d697373696f6e7342794c6576656c01d908000c012063757261746f7273d508015c43757261746f7247726f757043757261746f72734d6170000118616374697665880110626f6f6c0001507065726d697373696f6e735f62795f6c6576656cd90801704d6f6465726174696f6e5065726d697373696f6e7342794c6576656c0000d50810346672616d655f737570706f72741c73746f7261676544626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b01200456019d01045300000400ad01013842547265654d61703c4b2c20563e0000d90810346672616d655f737570706f72741c73746f7261676544626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b0108045601dd08045300000400e108013842547265654d61703c4b2c20563e0000dd0810346672616d655f737570706f72741c73746f7261676544626f756e6465645f62747265655f7365743c426f756e64656442547265655365740804540145020453000004004102012c42547265655365743c543e0000e108042042547265654d617008044b0108045601dd08000400e508000000e508000002e90800e9080000040808dd0800ed08103870616c6c65745f636f6e74656e740c6e6674147479706573504f70656e41756374696f6e4269645265636f72640c1c42616c616e636501182c426c6f636b4e756d62657201102441756374696f6e49640120000c0118616d6f756e7418011c42616c616e63650001346d6164655f61745f626c6f636b10012c426c6f636b4e756d62657200012861756374696f6e5f696420012441756374696f6e49640000f1080c3870616c6c65745f636f6e74656e74186572726f7273144572726f7204045400010102704368616e6e656c5374617465426c6f6174426f6e644368616e676564000004e4496e76616c69642065787472696e7369632063616c6c3a204368616e6e656c20737461746520626c6f617420626f6e64206368616e6765642e68566964656f5374617465426c6f6174426f6e644368616e676564000104dc496e76616c69642065787472696e7369632063616c6c3a20766964656f20737461746520626c6f617420626f6e64206368616e6765642e544d696e436173686f757456616c7565546f6f4c6f77000204d8417474656d707420746f20736574206d696e696d756d20636173686f757420616c6c6f7765642062656c6f7720746865206c696d6974584d6178436173686f757456616c7565546f6f48696768000304d8417474656d707420746f20736574206d696e696d756d20636173686f757420616c6c6f7765642061626f766520746865206c696d69749c4d61784e756d6265724f664368616e6e656c436f6c6c61626f7261746f7273457863656564656400040429014e756d626572206f66206368616e6e656c20636f6c6c61626f7261746f72732065786365656473204d61784e756d6265724f66436f6c6c61626f7261746f72735065724368616e6e656c804d61784e756d6265724f664368616e6e656c4173736574734578636565646564000504f04e756d626572206f66206368616e6e656c206173736574732065786365656473204d61784e756d6265724f664173736574735065724368616e6e656c784d61784e756d6265724f66566964656f4173736574734578636565646564000604ec4e756d626572206f6620766964656f206173736574732065786365656473204d61784d61784e756d6265724f66417373657473506572566964656fa84d61784e756d6265724f664368616e6e656c4167656e745065726d697373696f6e73457863656564656400070419014d6178696d756d206e756d626572206f66206368616e6e656c206167656e74207065726d697373696f6e7320666f72206368616e6e656c206167656e74206578636565646564ac4d61784e756d6265724f6650617573656446656174757265735065724368616e6e656c4578636565646564000804d84d6178696d756d206e756d626572206f662070617573656420666561747572657320706572206368616e6e656c20657863656564656480496e76616c69644368616e6e656c4261675769746e65737350726f766964656400090411014368616e6e656c20626167207769746e65737320706172616d657465727320646f6e2774206d61746368207468652063757272656e742072756e74696d652073746174659c496e76616c696453746f726167654275636b6574734e756d5769746e65737350726f7669646564000a04450153746f72616765206275636b657473206e756d626572207769746e65737320706172616d6574657220646f6573206e6f74206d61746368207468652063757272656e742072756e74696d652073746174657c4d697373696e6753746f726167654275636b6574734e756d5769746e657373000b084d0153746f72616765206275636b657473206e756d626572207769746e65737320706172616d65746572206d7573742062652070726f7669646564207768656e206368616e6e656c2f766964656f2061737365747348617265206265696e6720757064617465642e784368616e6e656c4f776e65724d656d626572446f65734e6f744578697374000c04b850726f7669646564206368616e6e656c206f776e657220286d656d6265722920646f6573206e6f74206578697374904368616e6e656c4f776e657243757261746f7247726f7570446f65734e6f744578697374000d04d450726f7669646564206368616e6e656c206f776e6572202863757261746f722067726f75702920646f6573206e6f74206578697374b04368616e6e656c5374617465426c6f6174426f6e6442656c6f774578697374656e7469616c4465706f736974000e0809014368616e6e656c20737461746520626c6f617420626f6e642063616e6e6f74206265206c6f776572207468616e206578697374656e7469616c206465706f7369742c050162656361757365206974206d7573742073656375726520746865206368616e6e656c206d6f64756c65206163636f756e7420616761696e73742064757374696e67704e756d6265724f66417373657473546f52656d6f766549735a65726f000f04a90144656c657465206368616e6e656c20616e642061737365747320616e642064656c65746520766964656f20617373657473206d75737420686176652061206e756d626572206f662061737365747320746f2072656d6f76652067726561746572207468616e207a65726f9843757261746f7249734e6f74414d656d6265724f66476976656e43757261746f7247726f7570001004450143757261746f7220756e6465722070726f76696465642063757261746f72206964206973206e6f742061206d656d626572206f662063757261726f722067726f757020756e64657220676976656e206964a843757261746f724973416c7265616479414d656d6265724f66476976656e43757261746f7247726f7570001104550143757261746f7220756e6465722070726f76696465642063757261746f7220696420697320616c72656164792061206d656d626572206f662063757261726f722067726f757020756e64657220676976656e2069646043757261746f7247726f7570446f65734e6f74457869737400120488476976656e2063757261746f722067726f757020646f6573206e6f742065786973747043757261746f727350657247726f75704c696d697452656163686564001304b84d6178206e756d626572206f662063757261746f7273207065722067726f7570206c696d697420726561636865645c43757261746f7247726f757049734e6f744163746976650014046c43757261746f722067726f7570206973206e6f74206163746976654043757261746f724964496e76616c6964001504d843757261746f72206964206973206e6f74206120776f726b657220696420696e20636f6e74656e7420776f726b696e672067726f7570384c656164417574684661696c6564001604684c6561642061757468656e7469636174696f6e206661696c6564404d656d626572417574684661696c6564001704704d656d6265722061757468656e7469636174696f6e206661696c65644443757261746f72417574684661696c65640018047443757261746f722061757468656e7469636174696f6e206661696c6564244261644f726967696e00190478457870656374656420726f6f74206f72207369676e6564206f726967696e484163746f724e6f74417574686f72697a6564001a04b04f7065726174696f6e2063616e6e6f7420626520706572666f6d656420776974682074686973204163746f725043617465676f7279446f65734e6f744578697374001b04ac41204368616e6e656c206f7220566964656f2043617465676f727920646f6573206e6f742065786973742e4c4368616e6e656c446f65734e6f744578697374001c04584368616e6e656c20646f6573206e6f7420657869737444566964656f446f65734e6f744578697374001d0450566964656f20646f6573206e6f7420657869737434566964656f496e536561736f6e001e04f4566664656f20696e20736561736f6e2063616e60742062652072656d6f766564202862656361757365206f7264657220697320696d706f7274616e7429444163746f7243616e6e6f7442654c656164001f04c84163746f722063616e6e6f7420617574686f72697a65206173206c65616420666f7220676976656e2065787472696e736963544163746f7243616e6e6f744f776e4368616e6e656c002004604163746f722063616e6e6f74204f776e206368616e6e656c604e6674416c72656164794f776e656442794368616e6e656c002104a4417474656d707420746f20736c696e67206261636b2061206368616e6e656c206f776e6564206e6674404e6674416c7265616479457869737473002204944e667420666f7220676976656e20766964656f20696420616c7265616479206578697374733c4e6674446f65734e6f744578697374002304944e667420666f7220676976656e20766964656f20696420646f6573206e6f742065786973746c4f766572666c6f774f72556e646572666c6f7748617070656e6564002404904f766572666c6f77206f7220756e646572666c6f77206572726f722068617070656e656434446f65734e6f744f776e4e667400250474476976656e206f726967696e20646f6573206e6f74206f776e206e667464526f79616c74795570706572426f756e64457863656564656400260470526f79616c747920557070657220426f756e6420457863656564656464526f79616c74794c6f776572426f756e64457863656564656400270470526f79616c7479204c6f77657220426f756e642045786365656465648441756374696f6e4475726174696f6e5570706572426f756e6445786365656465640028049441756374696f6e206475726174696f6e20757070657220626f756e642065786365656465648441756374696f6e4475726174696f6e4c6f776572426f756e6445786365656465640029049441756374696f6e206475726174696f6e206c6f77657220626f756e6420657863656564656484457874656e73696f6e506572696f645570706572426f756e644578636565646564002a04b441756374696f6e20657874656e73696f6e20706572696f6420757070657220626f756e6420657863656564656484457874656e73696f6e506572696f644c6f776572426f756e644578636565646564002b04b441756374696f6e20657874656e73696f6e20706572696f64206c6f77657220626f756e64206578636565646564844269644c6f636b4475726174696f6e5570706572426f756e644578636565646564002c0498426964206c6f636b206475726174696f6e20757070657220626f756e64206578636565646564844269644c6f636b4475726174696f6e4c6f776572426f756e644578636565646564002d0498426964206c6f636b206475726174696f6e206c6f77657220626f756e642065786365656465647c5374617274696e6750726963655570706572426f756e644578636565646564002e048c5374617274696e6720707269636520757070657220626f756e642065786365656465647c5374617274696e6750726963654c6f776572426f756e644578636565646564002f048c5374617274696e67207072696365206c6f77657220626f756e642065786365656465648041756374696f6e426964537465705570706572426f756e6445786365656465640030049441756374696f6e20626964207374657020757070657220626f756e642065786365656465648041756374696f6e426964537465704c6f776572426f756e6445786365656465640031049441756374696f6e206269642073746570206c6f77657220626f756e642065786365656465644c496e73756666696369656e7442616c616e636500320450496e73756666696369656e742062616c616e63656442696453746570436f6e73747261696e7456696f6c61746564003304b44d696e696d616c2061756374696f6e20626964207374657020636f6e73747261696e742076696f6c617465642e64496e76616c6964426964416d6f756e7453706563696669656400340488436f6d6d697420766572696669636174696f6e20666f722062696420616d6f756e747c5374617274696e675072696365436f6e73747261696e7456696f6c61746564003504ac41756374696f6e207374617274696e6720707269636520636f6e73747261696e742076696f6c617465642e50416374696f6e48617342696473416c7265616479003604a8416c7265616479206163746976652061756374696f6e2063616e6e6f742062652063616e63656c6c6564304e667449734e6f7449646c65003704990143616e206e6f74206372656174652061756374696f6e20666f72204e66742c2069662061756374696f6e2068617665206265656e20616c72656164792073746172746564206f72206e6674206973206c6f636b656420666f7220746865207472616e736665726050656e64696e674f66666572446f65734e6f7445786973740038047c4e6f2070656e64696e67206f666665727320666f7220676976656e204e6674545265776172644163636f756e7449734e6f74536574003904c843726561746f7220726f79616c747920726571756972657320726577617264206163636f756e7420746f206265207365742e404163746f7249734e6f74426964646572003a04684163746f72206973206e6f742061206c617374206269646465726041756374696f6e43616e6e6f744265436f6d706c65746564003b046c41756374696f6e2063616e6e6f7420626520636f6d706c657465643c426964446f65734e6f744578697374003c046841756374696f6e20646f6573206e6f74206861766520626964734c4269644973466f725061737441756374696f6e003d049453656c65637465642042696420697320666f722070617374206f70656e2061756374696f6e6853746172747341744c6f776572426f756e644578636565646564003e049841756374696f6e20737461727473206174206c6f77657220626f756e642065786365656465646853746172747341745570706572426f756e644578636565646564003f049841756374696f6e2073746172747320617420757070657220626f756e642065786365656465644841756374696f6e4469644e6f7453746172740040045c41756374696f6e20646964206e6f742073746172746564444e6f74496e41756374696f6e53746174650041046c4e6674206973206e6f7420696e2061756374696f6e2073746174657c4d656d62657249734e6f74416c6c6f776564546f5061727469636970617465004204bc4d656d626572206973206e6f7420616c6c6f77656420746f20706172746963697061746520696e2061756374696f6e544d656d62657250726f66696c654e6f74466f756e64004304604d656d6265722070726f66696c65206e6f7420666f756e644c4e66744e6f74496e4275794e6f7753746174650044049c476976656e20766964656f206e6674206973206e6f7420696e20627579206e6f7720737461746584496e76616c69644275794e6f775769746e657373507269636550726f76696465640045045501607769746e6573735f7072696365602070726f766964656420746f20606275795f6e6f77602065787472696e73696320646f6573206e6f74206d61746368207468652063757272656e742073656c6c2070726963655049734e6f744f70656e41756374696f6e547970650046046841756374696f6e2074797065206973206e6f7420604f70656e605c49734e6f74456e676c69736841756374696f6e547970650047047441756374696f6e2074797065206973206e6f742060456e676c697368606c4269644c6f636b4475726174696f6e49734e6f744578706972656400480480426964206c6f636b206475726174696f6e206973206e6f742065787069726564684e667441756374696f6e4973416c726561647945787069726564004904784e66742061756374696f6e20697320616c72656164792065787069726564904275794e6f774d7573744265477265617465725468616e5374617274696e675072696365004a04ac41756374696f6e20627579206e6f77206973206c657373207468656e207374617274696e67207072696365605461726765744d656d626572446f65734e6f744578697374004b04984e6674206f6666657220746172676574206d656d62657220646f6573206e6f742065786973748c496e76616c69644e66744f666665725769746e657373507269636550726f7669646564004c040d0143757272656e74206e6674206f6666657220707269636520646f6573206e6f74206d61746368207468652070726f766964656420607769746e6573735f707269636560ac4d617841756374696f6e57686974654c6973744c656e6774685570706572426f756e644578636565646564004d04c44d61782061756374696f6e2077686974656c697374206c656e67746820757070657220626f756e642065786365656465646457686974656c6973744861734f6e6c794f6e654d656d626572004e049441756374696f6e2077686974656c69737420686173206f6e6c79206f6e65206d656d6265727457686974656c69737465644d656d626572446f65734e6f744578697374004f04d84174206c65617374206f6e65206f66207468652077686974656c6973746564206d656d6265727320646f6573206e6f74206578697374784e66744e6f6e4368616e6e656c4f776e6572446f65734e6f744578697374005004f84e6f6e2d6368616e6e656c206f776e65722073706563696669656420647572696e67206e66742069737375616e636520646f6573206e6f74206578697374ac457874656e73696f6e506572696f644973477265617465725468656e41756374696f6e4475726174696f6e005104c4457874656e73696f6e20706572696f642069732067726561746572207468656e2061756374696f6e206475726174696f6e444e6f417373657473537065636966696564005204ac4e6f2061737365747320746f2062652072656d6f7665642068617665206265656e2073706563696669656454496e76616c696441737365747350726f7669646564005304684368616e6e656c2061737365747320666561736962696c697479544368616e6e656c436f6e7461696e73566964656f73005404584368616e6e656c20436f6e7461696e7320566964656f544368616e6e656c436f6e7461696e734173736574730055045c4368616e6e656c20436f6e7461696e73204173736574735c496e76616c696442616753697a655370656369666965640056047c4261672053697a6520737065636966696564206973206e6f742076616c6964504d6967726174696f6e4e6f7446696e6973686564005704584d6967726174696f6e206e6f7420646f6e6520796574445265706c79446f65734e6f7445786973740058046c5061727465636970616e74206973206e6f742061206d656d6265724c556e73756666696369656e7442616c616e636500590450496e73756666696369656e742062616c616e63656c496e73756666696369656e74547265617375727942616c616e6365005a0474496e73756666696369656e742074726561737572792062616c616e636554496e76616c69644d656d62657250726f7669646564005b0470496e76616c6964206d656d62657220696420207370656369666965643c4163746f724e6f74414d656d626572005c04544163746f72206973206e6f742041204d656d626572785061796d656e7450726f6f66566572696669636174696f6e4661696c6564005d04845061796d656e742050726f6f6620766572696669636174696f6e206661696c656484436173686f7574416d6f756e74457863656564734d6178696d756d416d6f756e74005e04c04368616e6e656c20636173686f757420616d6f756e7420697320746f6f206869676820746f20626520636c61696d65647c436173686f7574416d6f756e7442656c6f774d696e696d756d416d6f756e74005f04bc4368616e6e656c20636173686f757420616d6f756e7420697320746f6f206c6f7720746f20626520636c61696d6564e05769746864726177616c416d6f756e74457863656564734368616e6e656c4163636f756e74576974686472617761626c6542616c616e63650060085901416e20617474656d707420746f2077697468647261772066756e64732066726f6d206368616e6e656c206163636f756e74206661696c65642c2062656361757365207468652073706563696669656420616d6f756e744901657863656564732074686520776974686472617761626c6520616d6f756e7420286368616e6e656c206163636f756e742062616c616e6365206d696e7573206368616e6e656c20626c6f617420626f6e64297c576974686472617746726f6d4368616e6e656c416d6f756e7449735a65726f0061085901416e20617474656d707420746f2077697468647261772066756e64732066726f6d206368616e6e656c206163636f756e74206661696c65642c2062656361757365207468652073706563696669656420616d6f756e741c6973207a65726f5c4368616e6e656c436173686f75747344697361626c65640062049c4368616e6e656c20636173686f757473206172652063757272656e746c792064697361626c6564a44d696e436173686f7574416c6c6f776564457863656564734d6178436173686f7574416c6c6f77656400630809014e65772076616c75657320666f72206d696e5f636173686f75745f616c6c6f7765642f6d61785f636173686f75745f616c6c6f7765642061726520696e76616c6964d46d696e5f636173686f75745f616c6c6f7765642063616e6e6f7420657863656564206d61785f636173686f75745f616c6c6f7765648443757261746f724d6f6465726174696f6e416374696f6e4e6f74416c6c6f776564006404110143757261746f7220646f6573206e6f742068617665207065726d697373696f6e7320746f20706572666f726d20676976656e206d6f6465726174696f6e20616374696f6e944d617843757261746f725065726d697373696f6e735065724c6576656c457863656564656400650441014d6178696d756d206e756d626572206f662063757261746f72207065726d697373696f6e732070657220676976656e206368616e6e656c2070726976696c656765206c6576656c206578636565646564c043757261746f7247726f75704d61785065726d697373696f6e7342794c6576656c4d617053697a654578636565646564006604290143757261746f722067726f75702773207065726d697373696f6e73206279206c6576656c206d617020657863656564656420746865206d6178696d756d20616c6c6f7765642073697a65504368616e6e656c466561747572655061757365640067045d014f7065726174696f6e2063616e6e6f742062652065786563757465642c20626563617573652074686973206368616e6e656c206665617475726520686173206265656e2070617573656420627920612063757261746f72444368616e6e656c4261674d697373696e670068042d01556e65787065637465642072756e74696d652073746174653a206d697373696e67206368616e6e656c2062616720647572696e672064656c6574655f6368616e6e656c20617474656d70748c417373657473546f52656d6f76654265796f6e64456e74697479417373657473536574006904f5014c697374206f662061737365747320746f2072656d6f76652070726f766964656420666f72207570646174655f6368616e6e656c202f207570646174655f766964656f20636f6e7461696e7320617373657473207468617420646f6e27742062656c6f6e6720746f207468652073706563696669656420656e7469747990496e76616c6964566964656f446174614f626a65637473436f756e7450726f7669646564006a04f4496e76616c6964206e756d626572206f66206f626a6563747320746f2064656c6574652070726f766964656420666f722064656c6574655f766964656f70496e76616c69644368616e6e656c5472616e73666572537461747573006b04bc496e76616c6964206368616e6e656c207472616e736665722073746174757320666f72206f7065726174696f6e732e78496e76616c69644368616e6e656c5472616e736665724163636570746f72006c04d4496e636f7272656374206163746f7220747269657320746f2061636365707420746865206368616e6e656c207472616e736665722e98496e76616c69644368616e6e656c5472616e73666572436f6d6d69746d656e74506172616d73006d08550143616e6e6f742061636365707420746865206368616e6e656c207472616e736665723a2070726f766964656420636f6d6d69746d656e7420706172616d657465727320646f65736e2774206d617463682077697468906368616e6e656c2070656e64696e67207472616e7366657220706172616d65746572732e8c4368616e6e656c4167656e74496e73756666696369656e745065726d697373696f6e73006e004c496e76616c69644368616e6e656c4f776e6572006f04a4496e636f7272656374206368616e6e656c206f776e657220666f7220616e206f7065726174696f6e2e285a65726f5265776172640070046443616e6e6f7420636c61696d207a65726f207265776172642e78496e73756666696369656e7442616c616e6365466f725472616e73666572007104510143616e6e6f74207472616e7366657220746865206368616e6e656c3a206368616e6e656c206f776e65722068617320696e73756666696369656e742062616c616e6365202862756467657420666f72205747732994496e73756666696369656e7442616c616e6365466f724368616e6e656c4372656174696f6e0072080d0143616e6e6f742063726561746520746865206368616e6e656c3a206368616e6e656c2063726561746f722068617320696e73756666696369656e742062616c616e6365e9012862756467657420666f72206368616e6e656c20737461746520626c6f617420626f6e64202b206368616e6e656c2064617461206f626a7320737461746520626c6f617420626f6e6473202b2064617461206f626a732073746f726167652066656573202b206578697374656e7469616c206465706f736974298c496e73756666696369656e7442616c616e6365466f72566964656f4372656174696f6e007308fc43616e6e6f74206372656174652074686520766964656f3a20766964656f2063726561746f722068617320696e73756666696369656e742062616c616e6365d9012862756467657420666f7220766964656f20737461746520626c6f617420626f6e64202b20766964656f2064617461206f626a7320737461746520626c6f617420626f6e6473202b2064617461206f626a732073746f726167652066656573202b206578697374656e7469616c206465706f7369742964496e73756666696369656e74436f756e63696c4275646765740074006c476c6f62616c4e66744461696c794c696d6974457863656564656400750070476c6f62616c4e66745765656b6c794c696d69744578636565646564007600704368616e6e656c4e66744461696c794c696d69744578636565646564007700744368616e6e656c4e66745765656b6c794c696d697445786365656465640078006443726561746f72546f6b656e416c7265616479497373756564007904c443726561746f7220746f6b656e2077617320616c72656164792069737375656420666f722074686973206368616e6e656c5443726561746f72546f6b656e4e6f74497373756564007a04b043726561746f7220746f6b656e207761736e27742069737375656420666f722074686973206368616e6e656c884d656d6265724964436f756c644e6f7442654465726976656446726f6d4163746f72007b0415014d656d62657220696420636f756c64206e6f7420626520646572697665642066726f6d207468652070726f766964656420436f6e74656e744163746f7220636f6e74657874bc43616e6e6f74576974686472617746726f6d4368616e6e656c5769746843726561746f72546f6b656e497373756564007c08290143616e6e6f74206469726563746c792077697468647261772066756e64732066726f6d2061206368616e6e656c206163636f756e74207768656e20746865206368616e6e656c2068617358612063726561746f7220746f6b656e20697373756564bc506174726f6e61676543616e4f6e6c794265436c61696d6564466f724d656d6265724f776e65644368616e6e656c73007d04f4506174726f6e6167652063616e206f6e6c7920626520636c61696d6564206966206368616e6e656c206973206f776e65642062792061206d656d626572a84368616e6e656c5472616e7366657273426c6f636b6564447572696e67526576656e756553706c697473007e04cc4368616e6e656c205472616e73666572732061726520626c6f636b656420647572696e6720726576656e75652073706c6974739c4368616e6e656c5472616e7366657273426c6f636b6564447572696e67546f6b656e53616c6573007f04c04368616e6e656c205472616e73666572732061726520626c6f636b656420647572696e6720746f6b656e2073616c65730460436f6e74656e74206469726563746f7279206572726f7273f508083870616c6c65745f73746f72616765244261675265636f7264084c53746f726167654275636b657449647353657401f90860446973747269627574696f6e4275636b657449647353657401fd080010012473746f7265645f6279f908014c53746f726167654275636b657449647353657400013864697374726962757465645f6279fd080160446973747269627574696f6e4275636b65744964735365740001486f626a656374735f746f74616c5f73697a6520010c7536340001386f626a656374735f6e756d62657220010c7536340000f90810346672616d655f737570706f72741c73746f7261676544626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401200453000004005101012c42547265655365743c543e0000fd0810346672616d655f737570706f72741c73746f7261676544626f756e6465645f62747265655f7365743c426f756e6465644254726565536574080454010d020453000004002102012c42547265655365743c543e00000109083870616c6c65745f73746f726167654c53746f726167654275636b65745265636f72640820576f726b657249640120244163636f756e74496401000010013c6f70657261746f725f737461747573050901c053746f726167654275636b65744f70657261746f725374617475733c576f726b657249642c204163636f756e7449643e000148616363657074696e675f6e65775f62616773880110626f6f6c00011c766f75636865729502011c566f756368657200013461737369676e65645f6261677320010c75363400000509083870616c6c65745f73746f726167656c53746f726167654275636b65744f70657261746f725374617475730820576f726b657249640120244163636f756e7449640100010c1c4d697373696e6700000050496e766974656453746f72616765576f726b65720400200120576f726b657249640001003453746f72616765576f726b65720800200120576f726b6572496400000001244163636f756e74496400020000090910346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e64656456656308045401080453000004002801185665633c543e00000d09083870616c6c65745f73746f726167656044796e616d69634261674372656174696f6e506f6c69637904b0446973747269627574696f6e4275636b657446616d696c79546f4e756d6265724f664275636b6574734d6170011109000801646e756d6265725f6f665f73746f726167655f6275636b65747310010c75333200012066616d696c696573110901b0446973747269627574696f6e4275636b657446616d696c79546f4e756d6265724f664275636b6574734d61700000110910346672616d655f737570706f72741c73746f7261676544626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b0120045601100453000004009d02013842547265654d61703c4b2c20563e00001509000004087d0220001909083870616c6c65745f73746f7261676528446174614f626a6563740448526570617961626c65426c6f6174426f6e6401c901001001206163636570746564880110626f6f6c00014073746174655f626c6f61745f626f6e64c9010148526570617961626c65426c6f6174426f6e6400011073697a6520010c75363400013c697066735f636f6e74656e745f69640909013c4261736535384d756c74696861736800001d09083870616c6c65745f73746f7261676578446973747269627574696f6e4275636b657446616d696c795265636f7264045c446973747269627574696f6e4275636b6574496e6465780120000401786e6578745f646973747269627574696f6e5f6275636b65745f696e64657820015c446973747269627574696f6e4275636b6574496e64657800002109083870616c6c65745f73746f7261676560446973747269627574696f6e4275636b65745265636f72640888446973747269627574696f6e4275636b6574496e76697465644f70657261746f72730125096c446973747269627574696f6e4275636b65744f70657261746f727301290900140148616363657074696e675f6e65775f62616773880110626f6f6c000130646973747269627574696e67880110626f6f6c00014c70656e64696e675f696e7669746174696f6e7325090188446973747269627574696f6e4275636b6574496e76697465644f70657261746f72730001246f70657261746f72732909016c446973747269627574696f6e4275636b65744f70657261746f727300013461737369676e65645f6261677320010c7536340000250910346672616d655f737570706f72741c73746f7261676544626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401200453000004005101012c42547265655365743c543e0000290910346672616d655f737570706f72741c73746f7261676544626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401200453000004005101012c42547265655365743c543e00002d09083870616c6c65745f73746f72616765144572726f72040454000105013c41726974686d657469634572726f72000004f447656e657269632041726974686d65746963204572726f722064756520746f20696e7465726e616c206163636f756e74696e67206f7065726174696f6e40496e76616c69644369644c656e67746800010494496e76616c696420434944206c656e67746820286d75737420626520343620627974657329444e6f4f626a656374734f6e55706c6f6164000204a0456d707479202264617461206f626a656374206372656174696f6e2220636f6c6c656374696f6e2e6053746f726167654275636b6574446f65736e744578697374000304ac546865207265717565737465642073746f72616765206275636b657420646f65736e27742065786973742e7053746f726167654275636b657449734e6f74426f756e64546f426167000404cc546865207265717565737465642073746f72616765206275636b6574206973206e6f7420626f756e6420746f2061206261672e6453746f726167654275636b65744973426f756e64546f426167000504dc546865207265717565737465642073746f72616765206275636b657420697320616c726561647920626f756e6420746f2061206261672e644e6f53746f726167654275636b6574496e7669746174696f6e0006041901496e76616c6964206f7065726174696f6e207769746820696e76697465733a207468657265206973206e6f2073746f72616765206275636b657420696e7669746174696f6e2e6453746f7261676550726f7669646572416c72656164795365740007040501496e76616c6964206f7065726174696f6e207769746820696e76697465733a2073746f726167652070726f76696465722077617320616c7265616479207365742e6053746f7261676550726f76696465724d75737442655365740008047453746f726167652070726f7669646572206d757374206265207365742e7c446966666572656e7453746f7261676550726f7669646572496e76697465640009041501496e76616c6964206f7065726174696f6e207769746820696e76697465733a20616e6f746865722073746f726167652070726f76696465722077617320696e76697465642e58496e766974656453746f7261676550726f7669646572000a041501496e76616c6964206f7065726174696f6e207769746820696e76697465733a2073746f726167652070726f76696465722077617320616c726561647920696e76697465642e8853746f726167654275636b65744964436f6c6c656374696f6e73417265456d707479000b04a053746f72616765206275636b657420696420636f6c6c656374696f6e732061726520656d7074792ed053746f726167654275636b6574734e756d62657256696f6c6174657344796e616d69634261674372656174696f6e506f6c696379000c08290153746f72616765206275636b657420696420636f6c6c656374696f6e2070726f766964656420636f6e747261646963747320746865206578697374696e672064796e616d696320626167406372656174696f6e20706f6c6963792ecc446973747269627574696f6e4275636b65747356696f6c6174657344796e616d69634261674372656174696f6e506f6c696379000d083d01446973747269627574696f6e206275636b657420696420636f6c6c656374696f6e2070726f766964656420636f6e747261646963747320746865206578697374696e672064796e616d696320626167406372656174696f6e20706f6c6963792e38456d707479436f6e74656e744964000e04b455706c6f61642064617461206572726f723a20656d70747920636f6e74656e742049442070726f76696465642e385a65726f4f626a65637453697a65000f049055706c6f61642064617461206572726f723a207a65726f206f626a6563742073697a652e88496e76616c69645374617465426c6f6174426f6e64536f757263654163636f756e74001004ec55706c6f61642064617461206572726f723a20696e76616c696420737461746520626c6f617420626f6e6420736f75726365206163636f756e742e58496e76616c696453746f7261676550726f766964657200110490496e76616c69642073746f726167652070726f766964657220666f72206275636b65742e4c496e73756666696369656e7442616c616e636500120498496e73756666696369656e742062616c616e636520666f7220616e206f7065726174696f6e2e54446174614f626a656374446f65736e7445786973740013046844617461206f626a65637420646f65736e27742065786973742e4055706c6f6164696e67426c6f636b65640014049c55706c6f6164696e67206f6620746865206e6577206f626a65637420697320626c6f636b65642e74446174614f626a6563744964436f6c6c656374696f6e4973456d7074790015048c44617461206f626a65637420696420636f6c6c656374696f6e20697320656d7074792e80536f75726365416e6444657374696e6174696f6e42616773417265457175616c001604a043616e6e6f74206d6f7665206f626a656374732077697468696e207468652073616d65206261672e54446174614f626a656374426c61636b6c6973746564001704a844617461206f626a65637420686173682069732070617274206f662074686520626c61636b6c6973742e68426c61636b6c69737453697a654c696d6974457863656564656400180478426c61636b6c6973742073697a65206c696d69742065786365656465642e84566f75636865724d61784f626a65637453697a654c696d69744578636565646564001904ac4d6178206f626a6563742073697a65206c696d697420657863656564656420666f7220766f75636865722e8c566f75636865724d61784f626a6563744e756d6265724c696d69744578636565646564001a04b44d6178206f626a656374206e756d626572206c696d697420657863656564656420666f7220766f75636865722e9453746f726167654275636b65744f626a6563744e756d6265724c696d697452656163686564001b04cc4f626a656374206e756d626572206c696d697420666f72207468652073746f72616765206275636b657420726561636865642e8c53746f726167654275636b65744f626a65637453697a654c696d697452656163686564001c04e04f626a6563747320746f74616c2073697a65206c696d697420666f72207468652073746f72616765206275636b657420726561636865642e6c496e73756666696369656e74547265617375727942616c616e6365001d04d8496e73756666696369656e74206d6f64756c652074726561737572792062616c616e636520666f7220616e206f7065726174696f6e2e8443616e6e6f7444656c6574654e6f6e456d70747953746f726167654275636b6574001e04a443616e6e6f742064656c6574652061206e6f6e2d656d7074792073746f72616765206275636b65742e68446174614f626a6563744964506172616d73417265456d707479001f04f85468652060646174615f6f626a6563745f696473602065787472696e73696320706172616d6574657220636f6c6c656374696f6e20697320656d7074792e7c53746f726167654275636b6574735065724261674c696d6974546f6f4c6f77002004d8546865206e6577206053746f726167654275636b6574735065724261674c696d697460206e756d62657220697320746f6f206c6f772e8053746f726167654275636b6574735065724261674c696d6974546f6f48696768002104dc546865206e6577206053746f726167654275636b6574735065724261674c696d697460206e756d62657220697320746f6f20686967682e8053746f726167654275636b65745065724261674c696d69744578636565646564002204cc6053746f726167654275636b6574735065724261674c696d6974602077617320657863656564656420666f722061206261672e8053746f726167654275636b6574446f65736e744163636570744e657742616773002304ac5468652073746f72616765206275636b657420646f65736e277420616363657074206e657720626167732e4044796e616d6963426167457869737473002404c843616e6e6f7420637265617465207468652064796e616d6963206261673a2064796e616d696320626167206578697374732e5444796e616d6963426167446f65736e7445786973740025046844796e616d69632062616720646f65736e27742065786973742e8853746f7261676550726f76696465724f70657261746f72446f65736e744578697374002604a053746f726167652070726f7669646572206f70657261746f7220646f65736e27742065786973742e484461746153697a654665654368616e676564002704b8496e76616c69642065787472696e7369632063616c6c3a20646174612073697a6520666565206368616e6765642e7c446174614f626a6563745374617465426c6f6174426f6e644368616e676564002804f4496e76616c69642065787472696e7369632063616c6c3a2064617461206f626a65637420737461746520626c6f617420626f6e64206368616e6765642e7843616e6e6f7444656c6574654e6f6e456d70747944796e616d69634261670029049043616e6e6f742064656c657465206e6f6e20656d7074792064796e616d6963206261672eb84d6178446973747269627574696f6e4275636b657446616d696c794e756d6265724c696d69744578636565646564002a04d44d617820646973747269627574696f6e206275636b65742066616d696c79206e756d626572206c696d69742065786365656465642e8c446973747269627574696f6e4275636b657446616d696c79446f65736e744578697374002b04a4446973747269627574696f6e206275636b65742066616d696c7920646f65736e27742065786973742e74446973747269627574696f6e4275636b6574446f65736e744578697374002c0488446973747269627574696f6e206275636b657420646f65736e27742065786973742e9c446973747269627574696f6e4275636b65744964436f6c6c656374696f6e73417265456d707479002d04b4446973747269627574696f6e206275636b657420696420636f6c6c656374696f6e732061726520656d7074792e94446973747269627574696f6e4275636b6574446f65736e744163636570744e657742616773002e04b0446973747269627574696f6e206275636b657420646f65736e277420616363657074206e657720626167732eb84d6178446973747269627574696f6e4275636b65744e756d6265725065724261674c696d69744578636565646564002f04d84d617820646973747269627574696f6e206275636b6574206e756d6265722070657220626167206c696d69742065786365656465642e84446973747269627574696f6e4275636b657449734e6f74426f756e64546f426167003004a8446973747269627574696f6e206275636b6574206973206e6f7420626f756e6420746f2061206261672e78446973747269627574696f6e4275636b65744973426f756e64546f42616700310498446973747269627574696f6e206275636b657420697320626f756e6420746f2061206261672e90446973747269627574696f6e4275636b6574735065724261674c696d6974546f6f4c6f77003204ec546865206e65772060446973747269627574696f6e4275636b6574735065724261674c696d697460206e756d62657220697320746f6f206c6f772e94446973747269627574696f6e4275636b6574735065724261674c696d6974546f6f48696768003304f0546865206e65772060446973747269627574696f6e4275636b6574735065724261674c696d697460206e756d62657220697320746f6f20686967682e9c446973747269627574696f6e50726f76696465724f70657261746f72446f65736e744578697374003404b4446973747269627574696f6e2070726f7669646572206f70657261746f7220646f65736e27742065786973742ea8446973747269627574696f6e50726f76696465724f70657261746f72416c7265616479496e7669746564003504bc446973747269627574696f6e2070726f7669646572206f70657261746f7220616c726561647920696e76697465642e7c446973747269627574696f6e50726f76696465724f70657261746f72536574003604ac446973747269627574696f6e2070726f7669646572206f70657261746f7220616c7265616479207365742e784e6f446973747269627574696f6e4275636b6574496e7669746174696f6e003704884e6f20646973747269627574696f6e206275636b657420696e7669746174696f6e2eac4d7573744265446973747269627574696f6e50726f76696465724f70657261746f72466f724275636b65740038042901496e76616c6964206f7065726174696f6e733a206d757374206265206120646973747269627574696f6e2070726f7669646572206f70657261746f7220666f722061206275636b65742ef84d61784e756d6265724f6650656e64696e67496e7669746174696f6e734c696d6974466f72446973747269627574696f6e4275636b65745265616368656400390429014d6178206e756d626572206f662070656e64696e6720696e7669746174696f6e73206c696d697420666f72206120646973747269627574696f6e206275636b657420726561636865642ec04d61784e756d6265724f664f70657261746f7273506572446973747269627574696f6e4275636b657452656163686564003a04e84d6178206e756d626572206f66206f70657261746f727320666f72206120646973747269627574696f6e206275636b657420726561636865642ea8446973747269627574696f6e46616d696c79426f756e64546f4261674372656174696f6e506f6c696379003b04cc446973747269627574696f6e2066616d696c7920626f756e6420746f206120626167206372656174696f6e20706f6c6963792e644d6178446174614f626a65637453697a654578636565646564003c04784d61782064617461206f626a6563742073697a652065786365656465642e60496e76616c69645472616e736163746f724163636f756e74003d04b8496e76616c6964207472616e736163746f72206163636f756e7420494420666f722074686973206275636b65742ec04e756d6265724f6653746f726167654275636b6574734f7574736964654f66416c6c6f776564436f6e747261696e7473003e049c4e6f7420616c6c6f77656420276e756d626572206f662073746f72616765206275636b65747327d44e756d6265724f66446973747269627574696f6e4275636b6574734f7574736964654f66416c6c6f776564436f6e747261696e7473003f04b04e6f7420616c6c6f77656420276e756d626572206f6620646973747269627574696f6e206275636b657473273043616c6c44697361626c65640040043443616c6c2044697361626c6564048053746f72616765206d6f64756c6520707265646566696e6564206572726f727331090c5070616c6c65745f70726f6a6563745f746f6b656e1474797065732c4163636f756e7444617461101c42616c616e63650118345374616b696e6753746174757301350948526570617961626c65426c6f6174426f6e6401c9014056657374696e675363686564756c65730139090018014476657374696e675f7363686564756c65733909014056657374696e675363686564756c6573000118616d6f756e7418011c42616c616e636500015073706c69745f7374616b696e675f7374617475734d0901544f7074696f6e3c5374616b696e675374617475733e000128626c6f61745f626f6e64c9010148526570617961626c65426c6f6174426f6e640001606e6578745f76657374696e675f7472616e736665725f696420010c7536340001806c6173745f73616c655f746f74616c5f7075726368617365645f616d6f756e74510901784f7074696f6e3c28546f6b656e53616c6549642c2042616c616e6365293e000035090c5070616c6c65745f70726f6a6563745f746f6b656e147479706573345374616b696e67537461747573041c42616c616e636501180008012073706c69745f6964100138526576656e756553706c69744964000118616d6f756e7418011c42616c616e63650000390910346672616d655f737570706f72741c73746f7261676544626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b01f9020456013d090453000004004109013842547265654d61703c4b2c20563e00003d090c5070616c6c65745f70726f6a6563745f746f6b656e1474797065733c56657374696e675363686564756c65082c426c6f636b4e756d62657201101c42616c616e63650118001401686c696e6561725f76657374696e675f73746172745f626c6f636b10012c426c6f636b4e756d62657200015c6c696e6561725f76657374696e675f6475726174696f6e10012c426c6f636b4e756d626572000130636c6966665f616d6f756e7418011c42616c616e636500015c706f73745f636c6966665f746f74616c5f616d6f756e7418011c42616c616e63650001346275726e65645f616d6f756e7418011c42616c616e636500004109042042547265654d617008044b01f9020456013d0900040045090000004509000002490900490900000408f9023d09004d0904184f7074696f6e0404540135090108104e6f6e6500000010536f6d65040035090000010000510904184f7074696f6e0404540155090108104e6f6e6500000010536f6d6504005509000001000055090000040810180059090c5070616c6c65745f70726f6a6563745f746f6b656e14747970657324546f6b656e44617461141c42616c616e63650118104861736801242c426c6f636b4e756d626572011024546f6b656e53616c6501090344526576656e756553706c69745374617465015d09002c0130746f74616c5f737570706c7918011c42616c616e6365000134746f6b656e735f69737375656418011c42616c616e63650001306e6578745f73616c655f696410012c546f6b656e53616c65496400011073616c65690901444f7074696f6e3c546f6b656e53616c653e00013c7472616e736665725f706f6c696379ad0201505472616e73666572506f6c6963793c486173683e00011873796d626f6c24011048617368000138706174726f6e6167655f696e666f6d09018c506174726f6e616765446174613c42616c616e63652c20426c6f636b4e756d6265723e00013c6163636f756e74735f6e756d62657220010c753634000148726576656e75655f73706c69745f72617465bd02011c5065726d696c6c000134726576656e75655f73706c69745d090144526576656e756553706c697453746174650001546e6578745f726576656e75655f73706c69745f6964100138526576656e756553706c6974496400005d090c5070616c6c65745f70726f6a6563745f746f6b656e14747970657344526576656e756553706c6974537461746508284a6f7942616c616e636501182c426c6f636b4e756d6265720110010820496e616374697665000000184163746976650400610901a4526576656e756553706c6974496e666f3c4a6f7942616c616e63652c20426c6f636b4e756d6265723e0001000061090c5070616c6c65745f70726f6a6563745f746f6b656e14747970657340526576656e756553706c6974496e666f08284a6f7942616c616e636501182c426c6f636b4e756d6265720110000c0128616c6c6f636174696f6e1801284a6f7942616c616e636500012074696d656c696e656509015454696d656c696e653c426c6f636b4e756d6265723e0001446469766964656e64735f636c61696d65641801284a6f7942616c616e6365000065090c5070616c6c65745f70726f6a6563745f746f6b656e1474797065732054696d656c696e65042c426c6f636b4e756d626572011000080114737461727410012c426c6f636b4e756d6265720001206475726174696f6e10012c426c6f636b4e756d6265720000690904184f7074696f6e0404540109030108104e6f6e6500000010536f6d650400090300000100006d090c5070616c6c65745f70726f6a6563745f746f6b656e14747970657334506174726f6e61676544617461081c42616c616e636501182c426c6f636b4e756d6265720110000c01107261746571090124426c6f636b52617465000180756e636c61696d65645f706174726f6e6167655f74616c6c795f616d6f756e7418011c42616c616e63650001906c6173745f756e636c61696d65645f706174726f6e6167655f74616c6c795f626c6f636b10012c426c6f636b4e756d626572000071090c5070616c6c65745f70726f6a6563745f746f6b656e14747970657324426c6f636b52617465000004000d03012c5065727175696e74696c6c000075090c5070616c6c65745f70726f6a6563745f746f6b656e186572726f7273144572726f720404540001c43c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f772980496e73756666696369656e745472616e736665727261626c6542616c616e636500010481014163636f756e742773207472616e736665727261626c652062616c616e636520697320696e73756666696369656e7420746f20706572666f726d20746865207472616e73666572206f7220696e697469616c697a6520746f6b656e2073616c6544546f6b656e446f65734e6f7445786973740002047852657175657374656420746f6b656e20646f6573206e6f74206578697374784163636f756e74496e666f726d6174696f6e446f65734e6f74457869737400030494526571756573746564206163636f756e74206461746120646f6573206e6f74206578697374945472616e7366657244657374696e6174696f6e4d656d626572446f65734e6f74457869737400040419014174206c65617374206f6e65206f6620746865207472616e736665722064657374696e6174696f6e73206973206e6f7420616e206578697374696e67206d656d626572206964784d65726b6c6550726f6f66566572696669636174696f6e4661696c757265000504804d65726b6c652070726f6f6620766572696669636174696f6e206661696c6564a8546172676574506174726f6e6167655261746549734869676865725468616e43757272656e7452617465000604c4546172676574205261746520697320686967686572207468616e2063757272656e7420706174726f6e61676520726174655c546f6b656e53796d626f6c416c7265616479496e5573650007045453796d626f6c20616c726561647920696e2075736590496e697469616c416c6c6f636174696f6e546f4e6f6e4578697374696e674d656d62657200080441014174206c65617374206f6e65206f6620746865206d656d626572732070726f76696465642061732070617274206f6620496e697469616c416c6c6f636174696f6e20646f6573206e6f74206578697374504163636f756e74416c7265616479457869737473000904584163636f756e7420416c7265616479206578697374736c546f6b656e49737375616e63654e6f74496e49646c655374617465000a04a8546f6b656e27732063757272656e74206f66666572696e67207374617465206973206e6f742049646c6558496e73756666696369656e744a6f7942616c616e6365000b04dc496e73756666696369656e74204a4f592042616c616e636520746f20636f76657220746865207472616e73616374696f6e20636f7374736c4a6f795472616e736665725375626a656374546f44757374696e67000c045d0154686520616d6f756e74206f66204a4f5920746f206265207472616e73666572726564206973206e6f7420656e6f75676820746f206b656570207468652064657374696e6174696f6e206163636f756e7420616c697665cc417474656d7074546f52656d6f76654e6f6e4f776e65644163636f756e74556e6465725065726d697373696f6e65644d6f6465000d04ec417474656d707420746f2072656d6f7665206e6f6e206f776e6564206163636f756e7420756e646572207065726d697373696f6e6564206d6f646578417474656d7074546f52656d6f76654e6f6e456d7074794163636f756e74000e04e4417474656d707420746f2072656d6f766520616e206163636f756e74207769746820736f6d65206f75747374616e64696e6720746f6b656e739c43616e6e6f744a6f696e57686974656c697374496e5065726d697373696f6e6c6573734d6f6465000f04b043616e6e6f74206a6f696e2077686974656c69737420696e207065726d697373696f6e6c657373206d6f6465a443616e6e6f7444656973737565546f6b656e576974684f75747374616e64696e674163636f756e7473001004b843616e6e6f74204465697373756520546f6b656e2077697468206f75747374616e64696e67206163636f756e7473384e6f5570636f6d696e6753616c650011047854686520746f6b656e20686173206e6f207570636f6d696e672073616c65304e6f41637469766553616c65001204a854686520746f6b656e20686173206e6f206163746976652073616c6520617420746865206d6f6d656e748c496e73756666696369656e7442616c616e6365466f72546f6b656e507572636861736500130401014163636f756e742773204a4f592062616c616e636520697320696e73756666696369656e7420746f206d616b652074686520746f6b656e207075726368617365544e6f74456e6f756768546f6b656e734f6e53616c650014047d01416d6f756e74206f6620746f6b656e7320746f207075726368617365206f6e2073616c65206578636565647320746865207175616e74697479206f6620746f6b656e73207374696c6c20617661696c61626c65206f6e207468652073616c656853616c655374617274696e67426c6f636b496e54686550617374001504b05370656369666965642073616c65207374617274696e6720626c6f636b20697320696e2074686520706173745c53616c6541636365737350726f6f66526571756972656400160481014f6e6c792077686974656c6973746564207061727469636970616e74732061726520616c6c6f77656420746f20616363657373207468652073616c652c207468657265666f7265206163636573732070726f6f662069732072657175697265649453616c6541636365737350726f6f665061727469636970616e7449734e6f7453656e64657200170829015061727469636970616e7420696e2073616c65206163636573732070726f6f662070726f766964656420647572696e67206070757263686173655f746f6b656e735f6f6e5f73616c656084646f6573206e6f74206d61746368207468652073656e646572206163636f756e745c53616c6550757263686173654361704578636565646564001808610153616c65207061727469636970616e742773206361702028656974686572206361705f7065725f6d656d626572206f722077686974656c6973746564207061727469636970616e742773207370656369666963206361702978776173206578636565646564207769746820746865207075726368617365b04d617856657374696e675363686564756c65735065724163636f756e74506572546f6b656e52656163686564001908c843616e6e6f742061646420616e6f746865722076657374696e67207363686564756c6520746f20616e206163636f756e742e31014d6178696d756d206e756d626572206f662076657374696e67207363686564756c657320666f722074686973206163636f756e742d746f6b656e20706169722077617320726561636865642e6050726576696f757353616c654e6f7446696e616c697a6564001a04e450726576696f75732073616c6520776173207374696c6c206e6f742066696e616c697a65642c2066696e616c697a652069742066697273742e444e6f546f6b656e73546f5265636f766572001b041501546865726520617265206e6f2072656d61696e696e6720746f6b657320746f207265636f7665722066726f6d207468652070726576696f757320746f6b656e2073616c652e5053616c654475726174696f6e546f6f53686f7274001c04dc5370656369666965642073616c65206475726174696f6e2069732073686f72746572207468616e204d696e53616c654475726174696f6e4853616c654475726174696f6e49735a65726f001d047053616c65206475726174696f6e2063616e6e6f74206265207a65726f7053616c655570706572426f756e645175616e7469747949735a65726f001e048c557070657220626f756e64207175616e746974792063616e6e6f74206265207a65726f5853616c654361705065724d656d62657249735a65726f001f049850757263686173652063617020706572206d656d6265722063616e6e6f74206265207a65726f4c53616c65556e6974507269636549735a65726f00200484546f6b656e277320756e69742070726963652063616e6e6f74206265207a65726f6053616c655075726368617365416d6f756e7449735a65726f002104cc416d6f756e74206f6620746f6b656e7320746f207075726368617365206f6e2073616c652063616e6e6f74206265207a65726f7c526576656e756553706c697454696d65546f5374617274546f6f53686f7274002204d453706563696669656420726576656e75652073706c6974207374617274696e6720626c6f636b20697320696e20746865207061737470526576656e756553706c69744475726174696f6e546f6f53686f72740023048c526576656e75652053706c6974206475726174696f6e20697320746f6f2073686f727484526576656e756553706c6974416c7265616479416374697665466f72546f6b656e002404a8417474656d707420746f2061637469766174652073706c69742077697468206f6e65206f6e676f696e6774526576656e756553706c69744e6f74416374697665466f72546f6b656e0025043501417474656d707420746f206d616b6520726576656e75652073706c6974206f7065726174696f6e73207769746820746f6b656e206e6f7420696e206163746976652073706c697420737461746554526576656e756553706c69744469644e6f74456e640026047c526576656e75652053706c697420686173206e6f7420656e6465642079657458526576656e756553706c69744e6f744f6e676f696e67002704bc526576656e75652053706c697420666f7220746f6b656e206163746976652c20627574206e6f74206f6e676f696e676055736572416c726561647950617274696369706174696e67002804bc5573657220616c72656164792070617274696369706174696e6720696e2074686520726576656e75652073706c6974a0496e73756666696369656e7442616c616e6365466f7253706c697450617274696369706174696f6e0029041d015573657220646f6573206e6f7420706f7373657320656e6f7567682062616c616e636520746f20706172746963697061746520696e2074686520726576656e75652073706c69747c557365724e6f745061727469636970616e74696e67496e416e7953706c6974002a049855736572206973206e6f742070617274696369706174696e6720696e20616e792073706c69749843616e6e6f745061727469636970617465496e53706c6974576974685a65726f416d6f756e74002b04e8417474656d707420746f20706172746963697061746520696e20612073706c69742077697468207a65726f20746f6b656e20746f207374616b65a043616e6e6f74497373756553706c6974576974685a65726f416c6c6f636174696f6e416d6f756e74002c04dc417474656d707420746f20697373756520696e20612073706c69742077697468207a65726f20616c6c6f636174696f6e20616d6f756e74b043616e6e6f744d6f64696679537570706c795768656e526576656e756553706c697473417265416374697665002d04d4417474656d707420746f206d6f6469667920737570706c79207768656e20726576656e75652073706c69742069732061637469766558526576656e756553706c69745261746549735a65726f002e0478526576656e75652073706c697420726174652063616e6e6f742062652030404275726e416d6f756e7449735a65726f002f047c50726f766964656420616d6f756e7420746f206275726e206973203d3d2030a04275726e416d6f756e74477265617465725468616e4163636f756e74546f6b656e73416d6f756e740030043101416d6f756e74206f6620746f6b656e7320746f206275726e206578636565647320746f74616c20616d6f756e74206f6620746f6b656e73206f776e656420627920746865206163636f756e740079090c5c70616c6c65745f70726f706f73616c735f656e67696e651474797065732050726f706f73616c102c426c6f636b4e756d62657201102850726f706f736572496401201c42616c616e63650118244163636f756e744964010000200128706172616d65746572737d0901a050726f706f73616c506172616d65746572733c426c6f636b4e756d6265722c2042616c616e63653e00012c70726f706f7365725f696420012850726f706f73657249640001306163746976617465645f617410012c426c6f636b4e756d6265720001187374617475731503016c50726f706f73616c5374617475733c426c6f636b4e756d6265723e000138766f74696e675f726573756c747381090134566f74696e67526573756c747300015465786163745f657865637574696f6e5f626c6f636be901014c4f7074696f6e3c426c6f636b4e756d6265723e00016c6e725f6f665f636f756e63696c5f636f6e6669726d6174696f6e7310010c7533320001487374616b696e675f6163636f756e745f69642d0101444f7074696f6e3c4163636f756e7449643e00007d090c5c70616c6c65745f70726f706f73616c735f656e67696e651474797065734850726f706f73616c506172616d6574657273082c426c6f636b4e756d62657201101c42616c616e6365011800200134766f74696e675f706572696f6410012c426c6f636b4e756d62657200013067726163655f706572696f6410012c426c6f636b4e756d626572000168617070726f76616c5f71756f72756d5f70657263656e7461676510010c753332000174617070726f76616c5f7468726573686f6c645f70657263656e7461676510010c753332000168736c617368696e675f71756f72756d5f70657263656e7461676510010c753332000174736c617368696e675f7468726573686f6c645f70657263656e7461676510010c75333200013872657175697265645f7374616b652901013c4f7074696f6e3c42616c616e63653e000144636f6e737469747574696f6e616c69747910010c753332000081090c5c70616c6c65745f70726f706f73616c735f656e67696e6514747970657334566f74696e67526573756c7473000010012c61627374656e74696f6e7310010c753332000124617070726f76616c7310010c75333200012872656a656374696f6e7310010c75333200011c736c617368657310010c7533320000850910346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e64656456656308045401080453000004002801185665633c543e00008909000004081020008d09085c70616c6c65745f70726f706f73616c735f656e67696e65144572726f7204045400015c3c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f772948456d7074795469746c6550726f76696465640001049050726f706f73616c2063616e6e6f74206861766520616e20656d707479207469746c652260456d7074794465736372697074696f6e50726f76696465640002048850726f706f73616c2063616e6e6f74206861766520616e20656d70747920626f6479385469746c654973546f6f4c6f6e67000304445469746c6520697320746f6f206c6f6e67504465736372697074696f6e4973546f6f4c6f6e670004045c4465736372697074696f6e20697320746f6f206c6f6e674050726f706f73616c4e6f74466f756e640005046c5468652070726f706f73616c20646f6573206e6f742065786973744450726f706f73616c46696e616c697a65640006047450726f706f73616c2069732066696e616c697a656420616c726561647930416c7265616479566f7465640007049c5468652070726f706f73616c2068617665206265656e20616c726561647920766f746564206f6e244e6f74417574686f72000804344e6f7420616e20617574686f727c4d617841637469766550726f706f73616c4e756d6265724578636565646564000904904d6178206163746976652070726f706f73616c73206e756d62657220657863656564656428456d7074795374616b65000a04a05374616b652063616e6e6f7420626520656d707479207769746820746869732070726f706f73616c485374616b6553686f756c644265456d707479000b049c5374616b652073686f756c6420626520656d70747920666f7220746869732070726f706f73616c605374616b654469666665727346726f6d5265717569726564000c04b05374616b6520646966666572732066726f6d207468652070726f706f73616c20726571756972656d656e747384496e76616c6964506172616d65746572417070726f76616c5468726573686f6c64000d0484417070726f76616c207468726573686f6c642063616e6e6f74206265207a65726f84496e76616c6964506172616d65746572536c617368696e675468726573686f6c64000e0484536c617368696e67207468726573686f6c642063616e6e6f74206265207a65726f4452657175697265526f6f744f726967696e000f04845265717569726520726f6f74206f726967696e20696e2065787472696e736963734050726f706f73616c486173566f746573001004f4446973616c6c6f7720746f2063616e63656c207468652070726f706f73616c2069662074686572652061726520616e7920766f746573206f6e2069742e5c5a65726f4578616374457865637574696f6e426c6f636b00110494457861637420657865637574696f6e20626c6f636b2063616e6e6f74206265207a65726f2e68496e76616c69644578616374457865637574696f6e426c6f636b001204e0457861637420657865637574696f6e20626c6f636b2063616e6e6f74206265206c657373207468616e2063757272656e745f626c6f636b2e6c496e73756666696369656e7442616c616e6365466f725374616b65001304a05468657265206973206e6f7420656e6f7567682062616c616e636520666f722061207374616b652e44436f6e666c696374696e675374616b6573001404bc54686520636f6e666c696374696e67207374616b6520646973636f76657265642e2043616e6e6f74207374616b652e78496e76616c69645374616b696e674163636f756e74466f724d656d626572001504ac5374616b696e67206163636f756e7420646f65736e27742062656c6f6e6720746f2061206d656d6265722e8c4d6178446973706174636861626c6543616c6c436f646553697a6545786365656465640016043d015468652073697a65206f6620656e636f64656420646973706174636861626c652063616c6c20746f206265206578656375746564206279207468652070726f706f73616c20697320746f6f20626967047c456e67696e65206d6f64756c6520707265646566696e6564206572726f727391090c6c70616c6c65745f70726f706f73616c735f64697363757373696f6e1474797065734044697363757373696f6e5468726561640c204d656d626572496401202c426c6f636b4e756d62657201103c54687265616457686974656c697374019509000c01306163746976617465645f617410012c426c6f636b4e756d626572000124617574686f725f69642001204d656d62657249640001106d6f64659909016c5468726561644d6f64653c54687265616457686974656c6973743e0000950910346672616d655f737570706f72741c73746f7261676544626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401200453000004005101012c42547265655365743c543e000099090c6c70616c6c65745f70726f706f73616c735f64697363757373696f6e147479706573285468726561644d6f6465043c54687265616457686974656c6973740195090108104f70656e00000018436c6f73656404009509013c54687265616457686974656c697374000100009d090c6c70616c6c65745f70726f706f73616c735f64697363757373696f6e1474797065733844697363757373696f6e506f73740c204d656d626572496401202c426c6f636b4e756d626572011048526570617961626c65426c6f6174426f6e6401c901000c0124617574686f725f69642001204d656d626572496400013c636c65616e75705f7061795f6f6666c9010148526570617961626c65426c6f6174426f6e6400012c6c6173745f65646974656410012c426c6f636b4e756d6265720000a109086c70616c6c65745f70726f706f73616c735f64697363757373696f6e144572726f720404540001283c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f772944546872656164446f65736e7445786973740001045054687265616420646f65736e27742065786973743c506f7374446f65736e74457869737400020448506f737420646f65736e27742065786973744452657175697265526f6f744f726967696e000304845265717569726520726f6f74206f726967696e20696e2065787472696e736963736043616e6e6f74506f73744f6e436c6f7365645468726561640004046501546865207468726561642068617320436c6f736564206d6f64652e20416e6420706f737420617574686f7220646f65736e27742062656c6f6e6720746f20636f756e63696c206f7220616c6c6f776564206d656d626572732e504e6f74417574686f724f72436f756e63696c6f720005049453686f756c642062652074687265616420617574686f72206f7220636f756e63696c6f722e604d617857686974654c69737453697a654578636565646564000604a04d617820616c6c6f77656420617574686f7273206c697374206c696d69742065786365656465642e7457686974656c69737465644d656d626572446f65734e6f74457869737400070849014174206c65617374206f6e65206f6620746865206d656d626572206964732070726f76696465642061732070617274206f6620636c6f736564207468726561642077686974656c6973742062656c6f6e677364746f2061206e6f6e2d6578697374696e67206d656d6265722e68496e73756666696369656e7442616c616e6365466f72506f7374000804c44163636f756e742068617320696e73756666696369656e742062616c616e636520746f20637265617465206120706f73744043616e6e6f7444656c657465506f73740009049c4163636f756e742063616e27742064656c65746520706f737420617420746865206d6f6d656e74048c44697363757373696f6e206d6f64756c6520707265646566696e6564206572726f7273a509085870616c6c65745f70726f706f73616c735f636f646578144572726f72040454000168545369676e616c50726f706f73616c4973456d707479000004a050726f7669646564207465787420666f7220746578742070726f706f73616c20697320656d7074795852756e74696d6550726f706f73616c4973456d707479000104f050726f7669646564205741534d20636f646520666f72207468652072756e74696d6520757067726164652070726f706f73616c20697320656d70747990496e76616c696446756e64696e675265717565737450726f706f73616c42616c616e6365000204bc496e76616c69642062616c616e63652076616c756520666f7220746865207370656e64696e672070726f706f73616c54496e76616c696456616c696461746f72436f756e74000304f8496e76616c69642076616c696461746f7220636f756e7420666f722074686520277365742076616c696461746f7220636f756e74272070726f706f73616c4452657175697265526f6f744f726967696e000404845265717569726520726f6f74206f726967696e20696e2065787472696e73696373a8496e76616c6964436f756e63696c456c656374696f6e506172616d65746572436f756e63696c53697a65000504c4496e76616c696420636f756e63696c20656c656374696f6e20706172616d65746572202d20636f756e63696c5f73697a65b4496e76616c6964436f756e63696c456c656374696f6e506172616d6574657243616e6469646163794c696d6974000604d0496e76616c696420636f756e63696c20656c656374696f6e20706172616d65746572202d2063616e6469646163792d6c696d6974b4496e76616c6964436f756e63696c456c656374696f6e506172616d657465724d696e566f74696e675374616b65000704d4496e76616c696420636f756e63696c20656c656374696f6e20706172616d65746572202d206d696e2d766f74696e675f7374616b65b8496e76616c6964436f756e63696c456c656374696f6e506172616d657465724e65775465726d4475726174696f6e000804d8496e76616c696420636f756e63696c20656c656374696f6e20706172616d65746572202d206e65775f7465726d5f6475726174696f6eb8496e76616c6964436f756e63696c456c656374696f6e506172616d657465724d696e436f756e63696c5374616b65000904d8496e76616c696420636f756e63696c20656c656374696f6e20706172616d65746572202d206d696e5f636f756e63696c5f7374616b65b8496e76616c6964436f756e63696c456c656374696f6e506172616d6574657252657665616c696e67506572696f64000a04d4496e76616c696420636f756e63696c20656c656374696f6e20706172616d65746572202d2072657665616c696e675f706572696f64ac496e76616c6964436f756e63696c456c656374696f6e506172616d65746572566f74696e67506572696f64000b04c8496e76616c696420636f756e63696c20656c656374696f6e20706172616d65746572202d20766f74696e675f706572696f64bc496e76616c6964436f756e63696c456c656374696f6e506172616d65746572416e6e6f756e63696e67506572696f64000c04d8496e76616c696420636f756e63696c20656c656374696f6e20706172616d65746572202d20616e6e6f756e63696e675f706572696f6484496e76616c6964576f726b696e6747726f75704275646765744361706163697479000d04bc496e76616c696420776f726b696e672067726f75702062756467657420636170616369747920706172616d65746572a0496e76616c69645365744c656164506172616d6574657243616e6e6f744265436f756e63696c6f72000e042d01496e76616c69642027736574206c6561642070726f706f73616c2720706172616d65746572202d2070726f706f736564206c6561642063616e6e6f74206265206120636f756e63696c6f724c536c617368696e675374616b6549735a65726f000f042101496e76616c69642027736c617368207374616b652070726f706f73616c2720706172616d65746572202d2063616e6e6f7420736c617368206279207a65726f2062616c616e63652e5444656372656173696e675374616b6549735a65726f0010043901496e76616c696420276465637265617365207374616b652070726f706f73616c2720706172616d65746572202d2063616e6e6f74206465637265617365206279207a65726f2062616c616e63652e80496e73756666696369656e7446756e6473466f724275646765745570646174650011041d01496e73756666696369656e742066756e647320666f72202755706461746520576f726b696e672047726f757020427564676574272070726f706f73616c20657865637574696f6eb0496e76616c696446756e64696e675265717565737450726f706f73616c4e756d6265724f664163636f756e740012045101496e76616c6964206e756d626572206f66206163636f756e747320726563696576696e672066756e64696e67207265717565737420666f72202746756e64696e672052657175657374272070726f706f73616c2eb0496e76616c696446756e64696e675265717565737450726f706f73616c52657065617465644163636f756e74001304bc5265706561746564206163636f756e7420696e202746756e64696e672052657175657374272070726f706f73616c2ee0496e76616c69644368616e6e656c5061796f75747350726f706f73616c4d696e436173686f7574457863656564734d6178436173686f7574001404e50154686520737065636966696564206d696e206368616e6e656c20636173686f75742069732067726561746572207468616e2074686520737065636966696564206d6178206368616e6e656c20636173686f757420696e2060557064617465204368616e6e656c205061796f757473602070726f706f73616c2e4c496e76616c69644c656164576f726b657249640015049050726f7669646564206c65616420776f726b6572206964206973206e6f742076616c696450496e76616c69644c6561644f70656e696e6749640016049450726f7669646564206c656164206f70656e696e67206964206973206e6f742076616c696460496e76616c69644c6561644170706c69636174696f6e4964001704a450726f7669646564206c656164206170706c69636174696f6e206964206973206e6f742076616c696444496e76616c696450726f706f73616c49640018048450726f76696465642070726f706f73616c206964206973206e6f742076616c69643c41726974686d657469634572726f720019043c41726974686d656963204572726f720478436f646578206d6f64756c6520707265646566696e6564206572726f7273a9090c5070616c6c65745f776f726b696e675f67726f75701474797065731c4f70656e696e670c2c426c6f636b4e756d62657201101c42616c616e6365011810486173680124001801306f70656e696e675f747970656503012c4f70656e696e675479706500011c6372656174656410012c426c6f636b4e756d6265720001406465736372697074696f6e5f68617368240110486173680001307374616b655f706f6c696379490301845374616b65506f6c6963793c426c6f636b4e756d6265722c2042616c616e63653e0001407265776172645f7065725f626c6f636b2901013c4f7074696f6e3c42616c616e63653e0001386372656174696f6e5f7374616b6518011c42616c616e63650000ad090c5070616c6c65745f776f726b696e675f67726f7570147479706573384a6f624170706c69636174696f6e0c244163636f756e7449640100204d656d62657249640120104861736801240018013c726f6c655f6163636f756e745f69640001244163636f756e7449640001447265776172645f6163636f756e745f69640001244163636f756e7449640001487374616b696e675f6163636f756e745f69640001244163636f756e7449640001246d656d6265725f69642001204d656d62657249640001406465736372697074696f6e5f68617368240110486173680001286f70656e696e675f69642001244f70656e696e6749640000b1090c5070616c6c65745f776f726b696e675f67726f75701474797065732c47726f7570576f726b657210244163636f756e7449640100204d656d626572496401202c426c6f636b4e756d62657201101c42616c616e63650118002401246d656d6265725f69642001204d656d626572496400013c726f6c655f6163636f756e745f69640001244163636f756e7449640001487374616b696e675f6163636f756e745f69640001244163636f756e7449640001447265776172645f6163636f756e745f69640001244163636f756e744964000148737461727465645f6c656176696e675f6174e901014c4f7074696f6e3c426c6f636b4e756d6265723e0001506a6f625f756e7374616b696e675f706572696f6410012c426c6f636b4e756d6265720001407265776172645f7065725f626c6f636b2901013c4f7074696f6e3c42616c616e63653e0001346d69737365645f7265776172642901013c4f7074696f6e3c42616c616e63653e000128637265617465645f617410012c426c6f636b4e756d6265720000b5090c5070616c6c65745f776f726b696e675f67726f7570186572726f7273144572726f720804540004490001803c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f7729605374616b6542616c616e636543616e6e6f7442655a65726f0001049850726f7669646564207374616b652062616c616e63652063616e6e6f74206265207a65726f2e4c4f70656e696e67446f65734e6f7445786973740002045c4f70656e696e6720646f6573206e6f742065786973742e6443616e6e6f74486972654d756c7469706c654c656164657273000304bc43616e6e6f742066696c6c206f70656e696e672077697468206d756c7469706c65206170706c69636174696f6e732e74576f726b65724170706c69636174696f6e446f65734e6f74457869737400040488576f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e744d6178416374697665576f726b65724e756d626572457863656564656400050488576f726b696e672067726f75702073697a65206c696d69742065786365656465642e9c5375636365737366756c576f726b65724170706c69636174696f6e446f65734e6f744578697374000604b45375636365737366756c20776f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e8043616e6e6f74486972654c65616465725768656e4c6561646572457869737473000704c45468657265206973206c656164657220616c72656164792c2063616e6e6f74206869726520616e6f74686572206f6e652e4049734e6f744c6561644163636f756e740008044c4e6f742061206c656164206163636f756e742e4443757272656e744c6561644e6f745365740009046043757272656e74206c656164206973206e6f74207365742e48576f726b6572446f65734e6f744578697374000a0458576f726b657220646f6573206e6f742065786973742e4c496e76616c69644d656d6265724f726967696e000b0470496e76616c6964206f726967696e20666f722061206d656d6265722e705369676e657249734e6f74576f726b6572526f6c654163636f756e74000c04885369676e6572206973206e6f7420776f726b657220726f6c65206163636f756e742e4842656c6f774d696e696d756d5374616b6573000d04885374616b696e67206c657373207468616e20746865206c6f77657220626f756e642e7c496e73756666696369656e7442616c616e6365546f436f7665725374616b65000e0490496e73756666696369656e742062616c616e636520746f20636f766572207374616b652e884170706c69636174696f6e5374616b65446f65736e744d617463684f70656e696e67000f04d84170706c69636174696f6e207374616b65206973206c657373207468616e207265717569726564206f70656e696e67207374616b652e504f726967696e49734e6f744170706c6963616e74001004604f726967696e206973206e6f74206170706c6963616e742e3c576f726b657249734c656176696e6700110498496e76616c6964206f7065726174696f6e202d20776f726b6572206973206c656176696e672e5043616e6e6f74526577617264576974685a65726f0012046452657761726420636f756c64206e6f74206265207a65726f2e78496e76616c69645374616b696e674163636f756e74466f724d656d626572001304ac5374616b696e67206163636f756e7420646f65736e27742062656c6f6e6720746f2061206d656d6265722e5c436f6e666c6963745374616b65734f6e4163636f756e74001404b05374616b696e67206163636f756e7420636f6e7461696e7320636f6e666c696374696e67207374616b65732e44576f726b65724861734e6f5265776172640015047c576f726b657220686173206e6f20726563757272696e67207265776172642e78556e7374616b696e67506572696f644c6573735468616e4d696e696d756d001604090153706563696669656420756e7374616b696e6720706572696f64206973206c657373207468656e206d696e696d756d2073657420666f72207468652067726f75702e3c43616e6e6f745370656e645a65726f00170460496e76616c6964207370656e64696e6720616d6f756e742e74496e73756666696369656e74427564676574466f725370656e64696e67001804a449742773206e6f7420656e6f7567682062756467657420666f722074686973207370656e64696e672e584e6f4170706c69636174696f6e7350726f7669646564001904bc43616e6e6f742066696c6c206f70656e696e67202d206e6f206170706c69636174696f6e732070726f76696465642ea043616e6e6f7444656372656173655374616b6544656c7461477265617465725468616e5374616b65001a04fc43616e6e6f74206465637265617365207374616b65202d207374616b652064656c74612067726561746572207468616e20696e697469616c207374616b652e644170706c69636174696f6e734e6f74466f724f70656e696e67001b04f0547279696e6720746f2066696c6c206f70656e696e67207769746820616e206170706c69636174696f6e20666f72206f74686572206f70656e696e6764576f726b657253746f7261676556616c7565546f6f4c6f6e67001c0480576f726b65722073746f72616765207465787420697320746f6f206c6f6e672e70496e73756666696369656e74546f6b656e73466f7246756e64696e67001d04f8496e73756666696369656e7420746f6b656e7320666f722066756e64696e6720286f6e206d656d62657220636f6e74726f6c6c6572206163636f756e7429445a65726f546f6b656e7346756e64696e67001e047c547279696e6720746f2066756e642077697468207a65726f20746f6b656e7378496e73756666696369656e7442616c616e6365466f725472616e73666572001f04b443616e6e6f742077697468647261773a20696e73756666696369656e74206275646765742062616c616e63652e048c44697363757373696f6e206d6f64756c6520707265646566696e6564206572726f7273b9090c5070616c6c65745f776f726b696e675f67726f7570186572726f7273144572726f720804540004490001803c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f7729605374616b6542616c616e636543616e6e6f7442655a65726f0001049850726f7669646564207374616b652062616c616e63652063616e6e6f74206265207a65726f2e4c4f70656e696e67446f65734e6f7445786973740002045c4f70656e696e6720646f6573206e6f742065786973742e6443616e6e6f74486972654d756c7469706c654c656164657273000304bc43616e6e6f742066696c6c206f70656e696e672077697468206d756c7469706c65206170706c69636174696f6e732e74576f726b65724170706c69636174696f6e446f65734e6f74457869737400040488576f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e744d6178416374697665576f726b65724e756d626572457863656564656400050488576f726b696e672067726f75702073697a65206c696d69742065786365656465642e9c5375636365737366756c576f726b65724170706c69636174696f6e446f65734e6f744578697374000604b45375636365737366756c20776f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e8043616e6e6f74486972654c65616465725768656e4c6561646572457869737473000704c45468657265206973206c656164657220616c72656164792c2063616e6e6f74206869726520616e6f74686572206f6e652e4049734e6f744c6561644163636f756e740008044c4e6f742061206c656164206163636f756e742e4443757272656e744c6561644e6f745365740009046043757272656e74206c656164206973206e6f74207365742e48576f726b6572446f65734e6f744578697374000a0458576f726b657220646f6573206e6f742065786973742e4c496e76616c69644d656d6265724f726967696e000b0470496e76616c6964206f726967696e20666f722061206d656d6265722e705369676e657249734e6f74576f726b6572526f6c654163636f756e74000c04885369676e6572206973206e6f7420776f726b657220726f6c65206163636f756e742e4842656c6f774d696e696d756d5374616b6573000d04885374616b696e67206c657373207468616e20746865206c6f77657220626f756e642e7c496e73756666696369656e7442616c616e6365546f436f7665725374616b65000e0490496e73756666696369656e742062616c616e636520746f20636f766572207374616b652e884170706c69636174696f6e5374616b65446f65736e744d617463684f70656e696e67000f04d84170706c69636174696f6e207374616b65206973206c657373207468616e207265717569726564206f70656e696e67207374616b652e504f726967696e49734e6f744170706c6963616e74001004604f726967696e206973206e6f74206170706c6963616e742e3c576f726b657249734c656176696e6700110498496e76616c6964206f7065726174696f6e202d20776f726b6572206973206c656176696e672e5043616e6e6f74526577617264576974685a65726f0012046452657761726420636f756c64206e6f74206265207a65726f2e78496e76616c69645374616b696e674163636f756e74466f724d656d626572001304ac5374616b696e67206163636f756e7420646f65736e27742062656c6f6e6720746f2061206d656d6265722e5c436f6e666c6963745374616b65734f6e4163636f756e74001404b05374616b696e67206163636f756e7420636f6e7461696e7320636f6e666c696374696e67207374616b65732e44576f726b65724861734e6f5265776172640015047c576f726b657220686173206e6f20726563757272696e67207265776172642e78556e7374616b696e67506572696f644c6573735468616e4d696e696d756d001604090153706563696669656420756e7374616b696e6720706572696f64206973206c657373207468656e206d696e696d756d2073657420666f72207468652067726f75702e3c43616e6e6f745370656e645a65726f00170460496e76616c6964207370656e64696e6720616d6f756e742e74496e73756666696369656e74427564676574466f725370656e64696e67001804a449742773206e6f7420656e6f7567682062756467657420666f722074686973207370656e64696e672e584e6f4170706c69636174696f6e7350726f7669646564001904bc43616e6e6f742066696c6c206f70656e696e67202d206e6f206170706c69636174696f6e732070726f76696465642ea043616e6e6f7444656372656173655374616b6544656c7461477265617465725468616e5374616b65001a04fc43616e6e6f74206465637265617365207374616b65202d207374616b652064656c74612067726561746572207468616e20696e697469616c207374616b652e644170706c69636174696f6e734e6f74466f724f70656e696e67001b04f0547279696e6720746f2066696c6c206f70656e696e67207769746820616e206170706c69636174696f6e20666f72206f74686572206f70656e696e6764576f726b657253746f7261676556616c7565546f6f4c6f6e67001c0480576f726b65722073746f72616765207465787420697320746f6f206c6f6e672e70496e73756666696369656e74546f6b656e73466f7246756e64696e67001d04f8496e73756666696369656e7420746f6b656e7320666f722066756e64696e6720286f6e206d656d62657220636f6e74726f6c6c6572206163636f756e7429445a65726f546f6b656e7346756e64696e67001e047c547279696e6720746f2066756e642077697468207a65726f20746f6b656e7378496e73756666696369656e7442616c616e6365466f725472616e73666572001f04b443616e6e6f742077697468647261773a20696e73756666696369656e74206275646765742062616c616e63652e048c44697363757373696f6e206d6f64756c6520707265646566696e6564206572726f7273bd090c5070616c6c65745f776f726b696e675f67726f7570186572726f7273144572726f720804540004490001803c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f7729605374616b6542616c616e636543616e6e6f7442655a65726f0001049850726f7669646564207374616b652062616c616e63652063616e6e6f74206265207a65726f2e4c4f70656e696e67446f65734e6f7445786973740002045c4f70656e696e6720646f6573206e6f742065786973742e6443616e6e6f74486972654d756c7469706c654c656164657273000304bc43616e6e6f742066696c6c206f70656e696e672077697468206d756c7469706c65206170706c69636174696f6e732e74576f726b65724170706c69636174696f6e446f65734e6f74457869737400040488576f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e744d6178416374697665576f726b65724e756d626572457863656564656400050488576f726b696e672067726f75702073697a65206c696d69742065786365656465642e9c5375636365737366756c576f726b65724170706c69636174696f6e446f65734e6f744578697374000604b45375636365737366756c20776f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e8043616e6e6f74486972654c65616465725768656e4c6561646572457869737473000704c45468657265206973206c656164657220616c72656164792c2063616e6e6f74206869726520616e6f74686572206f6e652e4049734e6f744c6561644163636f756e740008044c4e6f742061206c656164206163636f756e742e4443757272656e744c6561644e6f745365740009046043757272656e74206c656164206973206e6f74207365742e48576f726b6572446f65734e6f744578697374000a0458576f726b657220646f6573206e6f742065786973742e4c496e76616c69644d656d6265724f726967696e000b0470496e76616c6964206f726967696e20666f722061206d656d6265722e705369676e657249734e6f74576f726b6572526f6c654163636f756e74000c04885369676e6572206973206e6f7420776f726b657220726f6c65206163636f756e742e4842656c6f774d696e696d756d5374616b6573000d04885374616b696e67206c657373207468616e20746865206c6f77657220626f756e642e7c496e73756666696369656e7442616c616e6365546f436f7665725374616b65000e0490496e73756666696369656e742062616c616e636520746f20636f766572207374616b652e884170706c69636174696f6e5374616b65446f65736e744d617463684f70656e696e67000f04d84170706c69636174696f6e207374616b65206973206c657373207468616e207265717569726564206f70656e696e67207374616b652e504f726967696e49734e6f744170706c6963616e74001004604f726967696e206973206e6f74206170706c6963616e742e3c576f726b657249734c656176696e6700110498496e76616c6964206f7065726174696f6e202d20776f726b6572206973206c656176696e672e5043616e6e6f74526577617264576974685a65726f0012046452657761726420636f756c64206e6f74206265207a65726f2e78496e76616c69645374616b696e674163636f756e74466f724d656d626572001304ac5374616b696e67206163636f756e7420646f65736e27742062656c6f6e6720746f2061206d656d6265722e5c436f6e666c6963745374616b65734f6e4163636f756e74001404b05374616b696e67206163636f756e7420636f6e7461696e7320636f6e666c696374696e67207374616b65732e44576f726b65724861734e6f5265776172640015047c576f726b657220686173206e6f20726563757272696e67207265776172642e78556e7374616b696e67506572696f644c6573735468616e4d696e696d756d001604090153706563696669656420756e7374616b696e6720706572696f64206973206c657373207468656e206d696e696d756d2073657420666f72207468652067726f75702e3c43616e6e6f745370656e645a65726f00170460496e76616c6964207370656e64696e6720616d6f756e742e74496e73756666696369656e74427564676574466f725370656e64696e67001804a449742773206e6f7420656e6f7567682062756467657420666f722074686973207370656e64696e672e584e6f4170706c69636174696f6e7350726f7669646564001904bc43616e6e6f742066696c6c206f70656e696e67202d206e6f206170706c69636174696f6e732070726f76696465642ea043616e6e6f7444656372656173655374616b6544656c7461477265617465725468616e5374616b65001a04fc43616e6e6f74206465637265617365207374616b65202d207374616b652064656c74612067726561746572207468616e20696e697469616c207374616b652e644170706c69636174696f6e734e6f74466f724f70656e696e67001b04f0547279696e6720746f2066696c6c206f70656e696e67207769746820616e206170706c69636174696f6e20666f72206f74686572206f70656e696e6764576f726b657253746f7261676556616c7565546f6f4c6f6e67001c0480576f726b65722073746f72616765207465787420697320746f6f206c6f6e672e70496e73756666696369656e74546f6b656e73466f7246756e64696e67001d04f8496e73756666696369656e7420746f6b656e7320666f722066756e64696e6720286f6e206d656d62657220636f6e74726f6c6c6572206163636f756e7429445a65726f546f6b656e7346756e64696e67001e047c547279696e6720746f2066756e642077697468207a65726f20746f6b656e7378496e73756666696369656e7442616c616e6365466f725472616e73666572001f04b443616e6e6f742077697468647261773a20696e73756666696369656e74206275646765742062616c616e63652e048c44697363757373696f6e206d6f64756c6520707265646566696e6564206572726f7273c1090c5070616c6c65745f776f726b696e675f67726f7570186572726f7273144572726f720804540004490001803c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f7729605374616b6542616c616e636543616e6e6f7442655a65726f0001049850726f7669646564207374616b652062616c616e63652063616e6e6f74206265207a65726f2e4c4f70656e696e67446f65734e6f7445786973740002045c4f70656e696e6720646f6573206e6f742065786973742e6443616e6e6f74486972654d756c7469706c654c656164657273000304bc43616e6e6f742066696c6c206f70656e696e672077697468206d756c7469706c65206170706c69636174696f6e732e74576f726b65724170706c69636174696f6e446f65734e6f74457869737400040488576f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e744d6178416374697665576f726b65724e756d626572457863656564656400050488576f726b696e672067726f75702073697a65206c696d69742065786365656465642e9c5375636365737366756c576f726b65724170706c69636174696f6e446f65734e6f744578697374000604b45375636365737366756c20776f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e8043616e6e6f74486972654c65616465725768656e4c6561646572457869737473000704c45468657265206973206c656164657220616c72656164792c2063616e6e6f74206869726520616e6f74686572206f6e652e4049734e6f744c6561644163636f756e740008044c4e6f742061206c656164206163636f756e742e4443757272656e744c6561644e6f745365740009046043757272656e74206c656164206973206e6f74207365742e48576f726b6572446f65734e6f744578697374000a0458576f726b657220646f6573206e6f742065786973742e4c496e76616c69644d656d6265724f726967696e000b0470496e76616c6964206f726967696e20666f722061206d656d6265722e705369676e657249734e6f74576f726b6572526f6c654163636f756e74000c04885369676e6572206973206e6f7420776f726b657220726f6c65206163636f756e742e4842656c6f774d696e696d756d5374616b6573000d04885374616b696e67206c657373207468616e20746865206c6f77657220626f756e642e7c496e73756666696369656e7442616c616e6365546f436f7665725374616b65000e0490496e73756666696369656e742062616c616e636520746f20636f766572207374616b652e884170706c69636174696f6e5374616b65446f65736e744d617463684f70656e696e67000f04d84170706c69636174696f6e207374616b65206973206c657373207468616e207265717569726564206f70656e696e67207374616b652e504f726967696e49734e6f744170706c6963616e74001004604f726967696e206973206e6f74206170706c6963616e742e3c576f726b657249734c656176696e6700110498496e76616c6964206f7065726174696f6e202d20776f726b6572206973206c656176696e672e5043616e6e6f74526577617264576974685a65726f0012046452657761726420636f756c64206e6f74206265207a65726f2e78496e76616c69645374616b696e674163636f756e74466f724d656d626572001304ac5374616b696e67206163636f756e7420646f65736e27742062656c6f6e6720746f2061206d656d6265722e5c436f6e666c6963745374616b65734f6e4163636f756e74001404b05374616b696e67206163636f756e7420636f6e7461696e7320636f6e666c696374696e67207374616b65732e44576f726b65724861734e6f5265776172640015047c576f726b657220686173206e6f20726563757272696e67207265776172642e78556e7374616b696e67506572696f644c6573735468616e4d696e696d756d001604090153706563696669656420756e7374616b696e6720706572696f64206973206c657373207468656e206d696e696d756d2073657420666f72207468652067726f75702e3c43616e6e6f745370656e645a65726f00170460496e76616c6964207370656e64696e6720616d6f756e742e74496e73756666696369656e74427564676574466f725370656e64696e67001804a449742773206e6f7420656e6f7567682062756467657420666f722074686973207370656e64696e672e584e6f4170706c69636174696f6e7350726f7669646564001904bc43616e6e6f742066696c6c206f70656e696e67202d206e6f206170706c69636174696f6e732070726f76696465642ea043616e6e6f7444656372656173655374616b6544656c7461477265617465725468616e5374616b65001a04fc43616e6e6f74206465637265617365207374616b65202d207374616b652064656c74612067726561746572207468616e20696e697469616c207374616b652e644170706c69636174696f6e734e6f74466f724f70656e696e67001b04f0547279696e6720746f2066696c6c206f70656e696e67207769746820616e206170706c69636174696f6e20666f72206f74686572206f70656e696e6764576f726b657253746f7261676556616c7565546f6f4c6f6e67001c0480576f726b65722073746f72616765207465787420697320746f6f206c6f6e672e70496e73756666696369656e74546f6b656e73466f7246756e64696e67001d04f8496e73756666696369656e7420746f6b656e7320666f722066756e64696e6720286f6e206d656d62657220636f6e74726f6c6c6572206163636f756e7429445a65726f546f6b656e7346756e64696e67001e047c547279696e6720746f2066756e642077697468207a65726f20746f6b656e7378496e73756666696369656e7442616c616e6365466f725472616e73666572001f04b443616e6e6f742077697468647261773a20696e73756666696369656e74206275646765742062616c616e63652e048c44697363757373696f6e206d6f64756c6520707265646566696e6564206572726f7273c5090c5070616c6c65745f776f726b696e675f67726f7570186572726f7273144572726f720804540004490001803c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f7729605374616b6542616c616e636543616e6e6f7442655a65726f0001049850726f7669646564207374616b652062616c616e63652063616e6e6f74206265207a65726f2e4c4f70656e696e67446f65734e6f7445786973740002045c4f70656e696e6720646f6573206e6f742065786973742e6443616e6e6f74486972654d756c7469706c654c656164657273000304bc43616e6e6f742066696c6c206f70656e696e672077697468206d756c7469706c65206170706c69636174696f6e732e74576f726b65724170706c69636174696f6e446f65734e6f74457869737400040488576f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e744d6178416374697665576f726b65724e756d626572457863656564656400050488576f726b696e672067726f75702073697a65206c696d69742065786365656465642e9c5375636365737366756c576f726b65724170706c69636174696f6e446f65734e6f744578697374000604b45375636365737366756c20776f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e8043616e6e6f74486972654c65616465725768656e4c6561646572457869737473000704c45468657265206973206c656164657220616c72656164792c2063616e6e6f74206869726520616e6f74686572206f6e652e4049734e6f744c6561644163636f756e740008044c4e6f742061206c656164206163636f756e742e4443757272656e744c6561644e6f745365740009046043757272656e74206c656164206973206e6f74207365742e48576f726b6572446f65734e6f744578697374000a0458576f726b657220646f6573206e6f742065786973742e4c496e76616c69644d656d6265724f726967696e000b0470496e76616c6964206f726967696e20666f722061206d656d6265722e705369676e657249734e6f74576f726b6572526f6c654163636f756e74000c04885369676e6572206973206e6f7420776f726b657220726f6c65206163636f756e742e4842656c6f774d696e696d756d5374616b6573000d04885374616b696e67206c657373207468616e20746865206c6f77657220626f756e642e7c496e73756666696369656e7442616c616e6365546f436f7665725374616b65000e0490496e73756666696369656e742062616c616e636520746f20636f766572207374616b652e884170706c69636174696f6e5374616b65446f65736e744d617463684f70656e696e67000f04d84170706c69636174696f6e207374616b65206973206c657373207468616e207265717569726564206f70656e696e67207374616b652e504f726967696e49734e6f744170706c6963616e74001004604f726967696e206973206e6f74206170706c6963616e742e3c576f726b657249734c656176696e6700110498496e76616c6964206f7065726174696f6e202d20776f726b6572206973206c656176696e672e5043616e6e6f74526577617264576974685a65726f0012046452657761726420636f756c64206e6f74206265207a65726f2e78496e76616c69645374616b696e674163636f756e74466f724d656d626572001304ac5374616b696e67206163636f756e7420646f65736e27742062656c6f6e6720746f2061206d656d6265722e5c436f6e666c6963745374616b65734f6e4163636f756e74001404b05374616b696e67206163636f756e7420636f6e7461696e7320636f6e666c696374696e67207374616b65732e44576f726b65724861734e6f5265776172640015047c576f726b657220686173206e6f20726563757272696e67207265776172642e78556e7374616b696e67506572696f644c6573735468616e4d696e696d756d001604090153706563696669656420756e7374616b696e6720706572696f64206973206c657373207468656e206d696e696d756d2073657420666f72207468652067726f75702e3c43616e6e6f745370656e645a65726f00170460496e76616c6964207370656e64696e6720616d6f756e742e74496e73756666696369656e74427564676574466f725370656e64696e67001804a449742773206e6f7420656e6f7567682062756467657420666f722074686973207370656e64696e672e584e6f4170706c69636174696f6e7350726f7669646564001904bc43616e6e6f742066696c6c206f70656e696e67202d206e6f206170706c69636174696f6e732070726f76696465642ea043616e6e6f7444656372656173655374616b6544656c7461477265617465725468616e5374616b65001a04fc43616e6e6f74206465637265617365207374616b65202d207374616b652064656c74612067726561746572207468616e20696e697469616c207374616b652e644170706c69636174696f6e734e6f74466f724f70656e696e67001b04f0547279696e6720746f2066696c6c206f70656e696e67207769746820616e206170706c69636174696f6e20666f72206f74686572206f70656e696e6764576f726b657253746f7261676556616c7565546f6f4c6f6e67001c0480576f726b65722073746f72616765207465787420697320746f6f206c6f6e672e70496e73756666696369656e74546f6b656e73466f7246756e64696e67001d04f8496e73756666696369656e7420746f6b656e7320666f722066756e64696e6720286f6e206d656d62657220636f6e74726f6c6c6572206163636f756e7429445a65726f546f6b656e7346756e64696e67001e047c547279696e6720746f2066756e642077697468207a65726f20746f6b656e7378496e73756666696369656e7442616c616e6365466f725472616e73666572001f04b443616e6e6f742077697468647261773a20696e73756666696369656e74206275646765742062616c616e63652e048c44697363757373696f6e206d6f64756c6520707265646566696e6564206572726f7273c9090c5070616c6c65745f776f726b696e675f67726f7570186572726f7273144572726f720804540004490001803c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f7729605374616b6542616c616e636543616e6e6f7442655a65726f0001049850726f7669646564207374616b652062616c616e63652063616e6e6f74206265207a65726f2e4c4f70656e696e67446f65734e6f7445786973740002045c4f70656e696e6720646f6573206e6f742065786973742e6443616e6e6f74486972654d756c7469706c654c656164657273000304bc43616e6e6f742066696c6c206f70656e696e672077697468206d756c7469706c65206170706c69636174696f6e732e74576f726b65724170706c69636174696f6e446f65734e6f74457869737400040488576f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e744d6178416374697665576f726b65724e756d626572457863656564656400050488576f726b696e672067726f75702073697a65206c696d69742065786365656465642e9c5375636365737366756c576f726b65724170706c69636174696f6e446f65734e6f744578697374000604b45375636365737366756c20776f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e8043616e6e6f74486972654c65616465725768656e4c6561646572457869737473000704c45468657265206973206c656164657220616c72656164792c2063616e6e6f74206869726520616e6f74686572206f6e652e4049734e6f744c6561644163636f756e740008044c4e6f742061206c656164206163636f756e742e4443757272656e744c6561644e6f745365740009046043757272656e74206c656164206973206e6f74207365742e48576f726b6572446f65734e6f744578697374000a0458576f726b657220646f6573206e6f742065786973742e4c496e76616c69644d656d6265724f726967696e000b0470496e76616c6964206f726967696e20666f722061206d656d6265722e705369676e657249734e6f74576f726b6572526f6c654163636f756e74000c04885369676e6572206973206e6f7420776f726b657220726f6c65206163636f756e742e4842656c6f774d696e696d756d5374616b6573000d04885374616b696e67206c657373207468616e20746865206c6f77657220626f756e642e7c496e73756666696369656e7442616c616e6365546f436f7665725374616b65000e0490496e73756666696369656e742062616c616e636520746f20636f766572207374616b652e884170706c69636174696f6e5374616b65446f65736e744d617463684f70656e696e67000f04d84170706c69636174696f6e207374616b65206973206c657373207468616e207265717569726564206f70656e696e67207374616b652e504f726967696e49734e6f744170706c6963616e74001004604f726967696e206973206e6f74206170706c6963616e742e3c576f726b657249734c656176696e6700110498496e76616c6964206f7065726174696f6e202d20776f726b6572206973206c656176696e672e5043616e6e6f74526577617264576974685a65726f0012046452657761726420636f756c64206e6f74206265207a65726f2e78496e76616c69645374616b696e674163636f756e74466f724d656d626572001304ac5374616b696e67206163636f756e7420646f65736e27742062656c6f6e6720746f2061206d656d6265722e5c436f6e666c6963745374616b65734f6e4163636f756e74001404b05374616b696e67206163636f756e7420636f6e7461696e7320636f6e666c696374696e67207374616b65732e44576f726b65724861734e6f5265776172640015047c576f726b657220686173206e6f20726563757272696e67207265776172642e78556e7374616b696e67506572696f644c6573735468616e4d696e696d756d001604090153706563696669656420756e7374616b696e6720706572696f64206973206c657373207468656e206d696e696d756d2073657420666f72207468652067726f75702e3c43616e6e6f745370656e645a65726f00170460496e76616c6964207370656e64696e6720616d6f756e742e74496e73756666696369656e74427564676574466f725370656e64696e67001804a449742773206e6f7420656e6f7567682062756467657420666f722074686973207370656e64696e672e584e6f4170706c69636174696f6e7350726f7669646564001904bc43616e6e6f742066696c6c206f70656e696e67202d206e6f206170706c69636174696f6e732070726f76696465642ea043616e6e6f7444656372656173655374616b6544656c7461477265617465725468616e5374616b65001a04fc43616e6e6f74206465637265617365207374616b65202d207374616b652064656c74612067726561746572207468616e20696e697469616c207374616b652e644170706c69636174696f6e734e6f74466f724f70656e696e67001b04f0547279696e6720746f2066696c6c206f70656e696e67207769746820616e206170706c69636174696f6e20666f72206f74686572206f70656e696e6764576f726b657253746f7261676556616c7565546f6f4c6f6e67001c0480576f726b65722073746f72616765207465787420697320746f6f206c6f6e672e70496e73756666696369656e74546f6b656e73466f7246756e64696e67001d04f8496e73756666696369656e7420746f6b656e7320666f722066756e64696e6720286f6e206d656d62657220636f6e74726f6c6c6572206163636f756e7429445a65726f546f6b656e7346756e64696e67001e047c547279696e6720746f2066756e642077697468207a65726f20746f6b656e7378496e73756666696369656e7442616c616e6365466f725472616e73666572001f04b443616e6e6f742077697468647261773a20696e73756666696369656e74206275646765742062616c616e63652e048c44697363757373696f6e206d6f64756c6520707265646566696e6564206572726f7273cd090c5070616c6c65745f776f726b696e675f67726f7570186572726f7273144572726f720804540004490001803c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f7729605374616b6542616c616e636543616e6e6f7442655a65726f0001049850726f7669646564207374616b652062616c616e63652063616e6e6f74206265207a65726f2e4c4f70656e696e67446f65734e6f7445786973740002045c4f70656e696e6720646f6573206e6f742065786973742e6443616e6e6f74486972654d756c7469706c654c656164657273000304bc43616e6e6f742066696c6c206f70656e696e672077697468206d756c7469706c65206170706c69636174696f6e732e74576f726b65724170706c69636174696f6e446f65734e6f74457869737400040488576f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e744d6178416374697665576f726b65724e756d626572457863656564656400050488576f726b696e672067726f75702073697a65206c696d69742065786365656465642e9c5375636365737366756c576f726b65724170706c69636174696f6e446f65734e6f744578697374000604b45375636365737366756c20776f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e8043616e6e6f74486972654c65616465725768656e4c6561646572457869737473000704c45468657265206973206c656164657220616c72656164792c2063616e6e6f74206869726520616e6f74686572206f6e652e4049734e6f744c6561644163636f756e740008044c4e6f742061206c656164206163636f756e742e4443757272656e744c6561644e6f745365740009046043757272656e74206c656164206973206e6f74207365742e48576f726b6572446f65734e6f744578697374000a0458576f726b657220646f6573206e6f742065786973742e4c496e76616c69644d656d6265724f726967696e000b0470496e76616c6964206f726967696e20666f722061206d656d6265722e705369676e657249734e6f74576f726b6572526f6c654163636f756e74000c04885369676e6572206973206e6f7420776f726b657220726f6c65206163636f756e742e4842656c6f774d696e696d756d5374616b6573000d04885374616b696e67206c657373207468616e20746865206c6f77657220626f756e642e7c496e73756666696369656e7442616c616e6365546f436f7665725374616b65000e0490496e73756666696369656e742062616c616e636520746f20636f766572207374616b652e884170706c69636174696f6e5374616b65446f65736e744d617463684f70656e696e67000f04d84170706c69636174696f6e207374616b65206973206c657373207468616e207265717569726564206f70656e696e67207374616b652e504f726967696e49734e6f744170706c6963616e74001004604f726967696e206973206e6f74206170706c6963616e742e3c576f726b657249734c656176696e6700110498496e76616c6964206f7065726174696f6e202d20776f726b6572206973206c656176696e672e5043616e6e6f74526577617264576974685a65726f0012046452657761726420636f756c64206e6f74206265207a65726f2e78496e76616c69645374616b696e674163636f756e74466f724d656d626572001304ac5374616b696e67206163636f756e7420646f65736e27742062656c6f6e6720746f2061206d656d6265722e5c436f6e666c6963745374616b65734f6e4163636f756e74001404b05374616b696e67206163636f756e7420636f6e7461696e7320636f6e666c696374696e67207374616b65732e44576f726b65724861734e6f5265776172640015047c576f726b657220686173206e6f20726563757272696e67207265776172642e78556e7374616b696e67506572696f644c6573735468616e4d696e696d756d001604090153706563696669656420756e7374616b696e6720706572696f64206973206c657373207468656e206d696e696d756d2073657420666f72207468652067726f75702e3c43616e6e6f745370656e645a65726f00170460496e76616c6964207370656e64696e6720616d6f756e742e74496e73756666696369656e74427564676574466f725370656e64696e67001804a449742773206e6f7420656e6f7567682062756467657420666f722074686973207370656e64696e672e584e6f4170706c69636174696f6e7350726f7669646564001904bc43616e6e6f742066696c6c206f70656e696e67202d206e6f206170706c69636174696f6e732070726f76696465642ea043616e6e6f7444656372656173655374616b6544656c7461477265617465725468616e5374616b65001a04fc43616e6e6f74206465637265617365207374616b65202d207374616b652064656c74612067726561746572207468616e20696e697469616c207374616b652e644170706c69636174696f6e734e6f74466f724f70656e696e67001b04f0547279696e6720746f2066696c6c206f70656e696e67207769746820616e206170706c69636174696f6e20666f72206f74686572206f70656e696e6764576f726b657253746f7261676556616c7565546f6f4c6f6e67001c0480576f726b65722073746f72616765207465787420697320746f6f206c6f6e672e70496e73756666696369656e74546f6b656e73466f7246756e64696e67001d04f8496e73756666696369656e7420746f6b656e7320666f722066756e64696e6720286f6e206d656d62657220636f6e74726f6c6c6572206163636f756e7429445a65726f546f6b656e7346756e64696e67001e047c547279696e6720746f2066756e642077697468207a65726f20746f6b656e7378496e73756666696369656e7442616c616e6365466f725472616e73666572001f04b443616e6e6f742077697468647261773a20696e73756666696369656e74206275646765742062616c616e63652e048c44697363757373696f6e206d6f64756c6520707265646566696e6564206572726f7273d1090c5070616c6c65745f776f726b696e675f67726f7570186572726f7273144572726f720804540004490001803c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f7729605374616b6542616c616e636543616e6e6f7442655a65726f0001049850726f7669646564207374616b652062616c616e63652063616e6e6f74206265207a65726f2e4c4f70656e696e67446f65734e6f7445786973740002045c4f70656e696e6720646f6573206e6f742065786973742e6443616e6e6f74486972654d756c7469706c654c656164657273000304bc43616e6e6f742066696c6c206f70656e696e672077697468206d756c7469706c65206170706c69636174696f6e732e74576f726b65724170706c69636174696f6e446f65734e6f74457869737400040488576f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e744d6178416374697665576f726b65724e756d626572457863656564656400050488576f726b696e672067726f75702073697a65206c696d69742065786365656465642e9c5375636365737366756c576f726b65724170706c69636174696f6e446f65734e6f744578697374000604b45375636365737366756c20776f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e8043616e6e6f74486972654c65616465725768656e4c6561646572457869737473000704c45468657265206973206c656164657220616c72656164792c2063616e6e6f74206869726520616e6f74686572206f6e652e4049734e6f744c6561644163636f756e740008044c4e6f742061206c656164206163636f756e742e4443757272656e744c6561644e6f745365740009046043757272656e74206c656164206973206e6f74207365742e48576f726b6572446f65734e6f744578697374000a0458576f726b657220646f6573206e6f742065786973742e4c496e76616c69644d656d6265724f726967696e000b0470496e76616c6964206f726967696e20666f722061206d656d6265722e705369676e657249734e6f74576f726b6572526f6c654163636f756e74000c04885369676e6572206973206e6f7420776f726b657220726f6c65206163636f756e742e4842656c6f774d696e696d756d5374616b6573000d04885374616b696e67206c657373207468616e20746865206c6f77657220626f756e642e7c496e73756666696369656e7442616c616e6365546f436f7665725374616b65000e0490496e73756666696369656e742062616c616e636520746f20636f766572207374616b652e884170706c69636174696f6e5374616b65446f65736e744d617463684f70656e696e67000f04d84170706c69636174696f6e207374616b65206973206c657373207468616e207265717569726564206f70656e696e67207374616b652e504f726967696e49734e6f744170706c6963616e74001004604f726967696e206973206e6f74206170706c6963616e742e3c576f726b657249734c656176696e6700110498496e76616c6964206f7065726174696f6e202d20776f726b6572206973206c656176696e672e5043616e6e6f74526577617264576974685a65726f0012046452657761726420636f756c64206e6f74206265207a65726f2e78496e76616c69645374616b696e674163636f756e74466f724d656d626572001304ac5374616b696e67206163636f756e7420646f65736e27742062656c6f6e6720746f2061206d656d6265722e5c436f6e666c6963745374616b65734f6e4163636f756e74001404b05374616b696e67206163636f756e7420636f6e7461696e7320636f6e666c696374696e67207374616b65732e44576f726b65724861734e6f5265776172640015047c576f726b657220686173206e6f20726563757272696e67207265776172642e78556e7374616b696e67506572696f644c6573735468616e4d696e696d756d001604090153706563696669656420756e7374616b696e6720706572696f64206973206c657373207468656e206d696e696d756d2073657420666f72207468652067726f75702e3c43616e6e6f745370656e645a65726f00170460496e76616c6964207370656e64696e6720616d6f756e742e74496e73756666696369656e74427564676574466f725370656e64696e67001804a449742773206e6f7420656e6f7567682062756467657420666f722074686973207370656e64696e672e584e6f4170706c69636174696f6e7350726f7669646564001904bc43616e6e6f742066696c6c206f70656e696e67202d206e6f206170706c69636174696f6e732070726f76696465642ea043616e6e6f7444656372656173655374616b6544656c7461477265617465725468616e5374616b65001a04fc43616e6e6f74206465637265617365207374616b65202d207374616b652064656c74612067726561746572207468616e20696e697469616c207374616b652e644170706c69636174696f6e734e6f74466f724f70656e696e67001b04f0547279696e6720746f2066696c6c206f70656e696e67207769746820616e206170706c69636174696f6e20666f72206f74686572206f70656e696e6764576f726b657253746f7261676556616c7565546f6f4c6f6e67001c0480576f726b65722073746f72616765207465787420697320746f6f206c6f6e672e70496e73756666696369656e74546f6b656e73466f7246756e64696e67001d04f8496e73756666696369656e7420746f6b656e7320666f722066756e64696e6720286f6e206d656d62657220636f6e74726f6c6c6572206163636f756e7429445a65726f546f6b656e7346756e64696e67001e047c547279696e6720746f2066756e642077697468207a65726f20746f6b656e7378496e73756666696369656e7442616c616e6365466f725472616e73666572001f04b443616e6e6f742077697468647261773a20696e73756666696369656e74206275646765742062616c616e63652e048c44697363757373696f6e206d6f64756c6520707265646566696e6564206572726f7273d5090c5070616c6c65745f776f726b696e675f67726f7570186572726f7273144572726f720804540004490001803c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f7729605374616b6542616c616e636543616e6e6f7442655a65726f0001049850726f7669646564207374616b652062616c616e63652063616e6e6f74206265207a65726f2e4c4f70656e696e67446f65734e6f7445786973740002045c4f70656e696e6720646f6573206e6f742065786973742e6443616e6e6f74486972654d756c7469706c654c656164657273000304bc43616e6e6f742066696c6c206f70656e696e672077697468206d756c7469706c65206170706c69636174696f6e732e74576f726b65724170706c69636174696f6e446f65734e6f74457869737400040488576f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e744d6178416374697665576f726b65724e756d626572457863656564656400050488576f726b696e672067726f75702073697a65206c696d69742065786365656465642e9c5375636365737366756c576f726b65724170706c69636174696f6e446f65734e6f744578697374000604b45375636365737366756c20776f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e8043616e6e6f74486972654c65616465725768656e4c6561646572457869737473000704c45468657265206973206c656164657220616c72656164792c2063616e6e6f74206869726520616e6f74686572206f6e652e4049734e6f744c6561644163636f756e740008044c4e6f742061206c656164206163636f756e742e4443757272656e744c6561644e6f745365740009046043757272656e74206c656164206973206e6f74207365742e48576f726b6572446f65734e6f744578697374000a0458576f726b657220646f6573206e6f742065786973742e4c496e76616c69644d656d6265724f726967696e000b0470496e76616c6964206f726967696e20666f722061206d656d6265722e705369676e657249734e6f74576f726b6572526f6c654163636f756e74000c04885369676e6572206973206e6f7420776f726b657220726f6c65206163636f756e742e4842656c6f774d696e696d756d5374616b6573000d04885374616b696e67206c657373207468616e20746865206c6f77657220626f756e642e7c496e73756666696369656e7442616c616e6365546f436f7665725374616b65000e0490496e73756666696369656e742062616c616e636520746f20636f766572207374616b652e884170706c69636174696f6e5374616b65446f65736e744d617463684f70656e696e67000f04d84170706c69636174696f6e207374616b65206973206c657373207468616e207265717569726564206f70656e696e67207374616b652e504f726967696e49734e6f744170706c6963616e74001004604f726967696e206973206e6f74206170706c6963616e742e3c576f726b657249734c656176696e6700110498496e76616c6964206f7065726174696f6e202d20776f726b6572206973206c656176696e672e5043616e6e6f74526577617264576974685a65726f0012046452657761726420636f756c64206e6f74206265207a65726f2e78496e76616c69645374616b696e674163636f756e74466f724d656d626572001304ac5374616b696e67206163636f756e7420646f65736e27742062656c6f6e6720746f2061206d656d6265722e5c436f6e666c6963745374616b65734f6e4163636f756e74001404b05374616b696e67206163636f756e7420636f6e7461696e7320636f6e666c696374696e67207374616b65732e44576f726b65724861734e6f5265776172640015047c576f726b657220686173206e6f20726563757272696e67207265776172642e78556e7374616b696e67506572696f644c6573735468616e4d696e696d756d001604090153706563696669656420756e7374616b696e6720706572696f64206973206c657373207468656e206d696e696d756d2073657420666f72207468652067726f75702e3c43616e6e6f745370656e645a65726f00170460496e76616c6964207370656e64696e6720616d6f756e742e74496e73756666696369656e74427564676574466f725370656e64696e67001804a449742773206e6f7420656e6f7567682062756467657420666f722074686973207370656e64696e672e584e6f4170706c69636174696f6e7350726f7669646564001904bc43616e6e6f742066696c6c206f70656e696e67202d206e6f206170706c69636174696f6e732070726f76696465642ea043616e6e6f7444656372656173655374616b6544656c7461477265617465725468616e5374616b65001a04fc43616e6e6f74206465637265617365207374616b65202d207374616b652064656c74612067726561746572207468616e20696e697469616c207374616b652e644170706c69636174696f6e734e6f74466f724f70656e696e67001b04f0547279696e6720746f2066696c6c206f70656e696e67207769746820616e206170706c69636174696f6e20666f72206f74686572206f70656e696e6764576f726b657253746f7261676556616c7565546f6f4c6f6e67001c0480576f726b65722073746f72616765207465787420697320746f6f206c6f6e672e70496e73756666696369656e74546f6b656e73466f7246756e64696e67001d04f8496e73756666696369656e7420746f6b656e7320666f722066756e64696e6720286f6e206d656d62657220636f6e74726f6c6c6572206163636f756e7429445a65726f546f6b656e7346756e64696e67001e047c547279696e6720746f2066756e642077697468207a65726f20746f6b656e7378496e73756666696369656e7442616c616e6365466f725472616e73666572001f04b443616e6e6f742077697468647261773a20696e73756666696369656e74206275646765742062616c616e63652e048c44697363757373696f6e206d6f64756c6520707265646566696e6564206572726f7273d909102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c4164647265737301001043616c6c011d04245369676e617475726501dd0914457874726101e90900040028000000dd09082873705f72756e74696d65384d756c74695369676e617475726500010c1c45643235353139040091050148656432353531393a3a5369676e61747572650000001c537232353531390400c5050148737232353531393a3a5369676e61747572650001001445636473610400e109014065636473613a3a5369676e617475726500020000e1090c1c73705f636f7265146563647361245369676e617475726500000400e50901205b75383b2036355d0000e509000003410000000800e90900000420ed09f109f509f909fd09050a090a0d0a00ed0910306672616d655f73797374656d28657874656e73696f6e7354636865636b5f6e6f6e5f7a65726f5f73656e64657248436865636b4e6f6e5a65726f53656e64657204045400000000f10910306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e04045400000000f50910306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e04045400000000f90910306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e6573697304045400000000fd0910306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c69747904045400000400010a010c4572610000010a102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff0000050a10306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e636504045400000400cd030120543a3a496e6465780000090a10306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b576569676874040454000000000d0a086870616c6c65745f7472616e73616374696f6e5f7061796d656e74604368617267655472616e73616374696f6e5061796d656e7404045400000400d0013042616c616e63654f663c543e0000110a08586a6f7973747265616d5f6e6f64655f72756e74696d651c52756e74696d6500000000a41853797374656d011853797374656d401c4163636f756e7401010402000c4101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e2c426c6f636b57656967687401001c600000000000000000000000000000000000000000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b486173680101040510248000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510280400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801002480000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e1844696765737401002c040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301003c04001ca0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e001d01204e4f54453a20546865206974656d20697320756e626f756e6420616e642073686f756c64207468657265666f7265206e657665722062652072656164206f6e20636861696e2ed020497420636f756c64206f746865727769736520696e666c6174652074686520506f562073697a65206f66206120626c6f636b2e002d01204576656e747320686176652061206c6172676520696e2d6d656d6f72792073697a652e20426f7820746865206576656e747320746f206e6f7420676f206f75742d6f662d6d656d6f7279fc206a75737420696e206361736520736f6d656f6e65207374696c6c207265616473207468656d2066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f706963730101040224c1030400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e004d01205468652076616c756520686173207468652074797065206028543a3a426c6f636b4e756d6265722c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000c90304000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e740100880400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e740100880400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e50686173650000b903040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e01d50301481830426c6f636b57656967687473e103850120f7d6600100000000204aa9d1010000a0035b06000000000160c4aea72e010000010098f73e5d010000010000000000000000a0035b060000000001604c0112a30100000100204aa9d1010000010088526a74000000a0035b060000000000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e677468ed033000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e74101060090000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e204462576569676874f503408848890000000000f0b64603000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6ef903d102386a6f7973747265616d2d6e6f6465386a6f7973747265616d2d6e6f64650c000000d0070000000000002cdf6acb689907609b0400000037e397fc7c91f5e40100000040fe3ad401f8959a06000000d2bc9897eed08f1503000000f78b278be53f454c02000000ed99c5acb25eedf503000000cbca25e39f14238702000000687ad44ad37f03c201000000bc9d89904f5b923f0100000037c8bb1350a9a2a801000000ab3c0572291feb8b0100000001000000010484204765742074686520636861696e27732063757272656e742076657273696f6e2e28535335385072656669780d04087e0014a8205468652064657369676e61746564205353383520707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e011104001c5574696c69747900011504016c044c626174636865645f63616c6c735f6c696d69741010aa2a000004a820546865206c696d6974206f6e20746865206e756d626572206f6620626174636865642063616c6c732e019506011042616265011042616265402845706f6368496e64657801002020000000000000000004542043757272656e742065706f636820696e6465782e2c417574686f726974696573010099060400046c2043757272656e742065706f636820617574686f7269746965732e2c47656e65736973536c6f740100350420000000000000000008f82054686520736c6f74206174207768696368207468652066697273742065706f63682061637475616c6c7920737461727465642e205468697320697320309020756e74696c2074686520666972737420626c6f636b206f662074686520636861696e2e2c43757272656e74536c6f740100350420000000000000000004542043757272656e7420736c6f74206e756d6265722e2852616e646f6d6e65737301000480000000000000000000000000000000000000000000000000000000000000000028b8205468652065706f63682072616e646f6d6e65737320666f7220746865202a63757272656e742a2065706f63682e002c20232053656375726974790005012054686973204d555354204e4f54206265207573656420666f722067616d626c696e672c2061732069742063616e20626520696e666c75656e6365642062792061f8206d616c6963696f75732076616c696461746f7220696e207468652073686f7274207465726d2e204974204d4159206265207573656420696e206d616e7915012063727970746f677261706869632070726f746f636f6c732c20686f77657665722c20736f206c6f6e67206173206f6e652072656d656d6265727320746861742074686973150120286c696b652065766572797468696e6720656c7365206f6e2d636861696e29206974206973207075626c69632e20466f72206578616d706c652c2069742063616e206265050120757365642077686572652061206e756d626572206973206e656564656420746861742063616e6e6f742068617665206265656e2063686f73656e20627920616e0d01206164766572736172792c20666f7220707572706f7365732073756368206173207075626c69632d636f696e207a65726f2d6b6e6f776c656467652070726f6f66732e6050656e64696e6745706f6368436f6e6669674368616e676500003d0404000461012050656e64696e672065706f636820636f6e66696775726174696f6e206368616e676520746861742077696c6c206265206170706c696564207768656e20746865206e6578742065706f636820697320656e61637465642e384e65787452616e646f6d6e657373010004800000000000000000000000000000000000000000000000000000000000000000045c204e6578742065706f63682072616e646f6d6e6573732e3c4e657874417574686f7269746965730100990604000460204e6578742065706f636820617574686f7269746965732e305365676d656e74496e6465780100101000000000247c2052616e646f6d6e65737320756e64657220636f6e737472756374696f6e2e00f8205765206d616b6520612074726164652d6f6666206265747765656e2073746f7261676520616363657373657320616e64206c697374206c656e6774682e01012057652073746f72652074686520756e6465722d636f6e737472756374696f6e2072616e646f6d6e65737320696e207365676d656e7473206f6620757020746f942060554e4445525f434f4e535452554354494f4e5f5345474d454e545f4c454e475448602e00ec204f6e63652061207365676d656e7420726561636865732074686973206c656e6774682c20776520626567696e20746865206e657874206f6e652e090120576520726573657420616c6c207365676d656e747320616e642072657475726e20746f206030602061742074686520626567696e6e696e67206f662065766572791c2065706f63682e44556e646572436f6e737472756374696f6e0101040510a50604000415012054574f582d4e4f54453a20605365676d656e74496e6465786020697320616e20696e6372656173696e6720696e74656765722c20736f2074686973206973206f6b61792e2c496e697469616c697a65640000ad0604000801012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e292077686963682069732060536f6d65601d01206966207065722d626c6f636b20696e697469616c697a6174696f6e2068617320616c7265616479206265656e2063616c6c656420666f722063757272656e7420626c6f636b2e4c417574686f7256726652616e646f6d6e6573730100c10604001015012054686973206669656c642073686f756c6420616c7761797320626520706f70756c6174656420647572696e6720626c6f636b2070726f63657373696e6720756e6c6573731901207365636f6e6461727920706c61696e20736c6f74732061726520656e61626c65642028776869636820646f6e277420636f6e7461696e206120565246206f7574707574292e0049012049742069732073657420696e20606f6e5f66696e616c697a65602c206265666f72652069742077696c6c20636f6e7461696e207468652076616c75652066726f6d20746865206c61737420626c6f636b2e2845706f636853746172740100c503200000000000000000145d012054686520626c6f636b206e756d62657273207768656e20746865206c61737420616e642063757272656e742065706f6368206861766520737461727465642c20726573706563746976656c7920604e2d316020616e641420604e602e4901204e4f54453a20576520747261636b207468697320697320696e206f7264657220746f20616e6e6f746174652074686520626c6f636b206e756d626572207768656e206120676976656e20706f6f6c206f66590120656e74726f7079207761732066697865642028692e652e20697420776173206b6e6f776e20746f20636861696e206f6273657276657273292e2053696e63652065706f6368732061726520646566696e656420696e590120736c6f74732c207768696368206d617920626520736b69707065642c2074686520626c6f636b206e756d62657273206d6179206e6f74206c696e6520757020776974682074686520736c6f74206e756d626572732e204c6174656e657373010010100000000014d820486f77206c617465207468652063757272656e7420626c6f636b20697320636f6d706172656420746f2069747320706172656e742e001501205468697320656e74727920697320706f70756c617465642061732070617274206f6620626c6f636b20657865637574696f6e20616e6420697320636c65616e65642075701101206f6e20626c6f636b2066696e616c697a6174696f6e2e205175657279696e6720746869732073746f7261676520656e747279206f757473696465206f6620626c6f636bb020657865637574696f6e20636f6e746578742073686f756c6420616c77617973207969656c64207a65726f2e2c45706f6368436f6e6669670000c50604000861012054686520636f6e66696775726174696f6e20666f72207468652063757272656e742065706f63682e2053686f756c64206e6576657220626520604e6f6e656020617320697420697320696e697469616c697a656420696e242067656e657369732e3c4e65787445706f6368436f6e6669670000c5060400082d012054686520636f6e66696775726174696f6e20666f7220746865206e6578742065706f63682c20604e6f6e65602069662074686520636f6e6669672077696c6c206e6f74206368616e6765e82028796f752063616e2066616c6c6261636b20746f206045706f6368436f6e6669676020696e737465616420696e20746861742063617365292e012104000c3445706f63684475726174696f6e202058020000000000000cec2054686520616d6f756e74206f662074696d652c20696e20736c6f74732c207468617420656163682065706f63682073686f756c64206c6173742e1901204e4f54453a2043757272656e746c79206974206973206e6f7420706f737369626c6520746f206368616e6765207468652065706f6368206475726174696f6e20616674657221012074686520636861696e2068617320737461727465642e20417474656d7074696e6720746f20646f20736f2077696c6c20627269636b20626c6f636b2070726f64756374696f6e2e444578706563746564426c6f636b54696d652020701700000000000014050120546865206578706563746564206176657261676520626c6f636b2074696d6520617420776869636820424142452073686f756c64206265206372656174696e67110120626c6f636b732e2053696e636520424142452069732070726f626162696c6973746963206974206973206e6f74207472697669616c20746f20666967757265206f75740501207768617420746865206578706563746564206176657261676520626c6f636b2074696d652073686f756c64206265206261736564206f6e2074686520736c6f740901206475726174696f6e20616e642074686520736563757269747920706172616d657465722060636020287768657265206031202d20636020726570726573656e7473a0207468652070726f626162696c697479206f66206120736c6f74206265696e6720656d707479292e384d6178417574686f7269746965731010a08601000488204d6178206e756d626572206f6620617574686f72697469657320616c6c6f77656401c906022454696d657374616d70012454696d657374616d70080c4e6f7701002020000000000000000004902043757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010088040004b420446964207468652074696d657374616d7020676574207570646174656420696e207468697320626c6f636b3f0145040004344d696e696d756d506572696f642020b80b000000000000104d0120546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e204265776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a5d0120706572696f6420746861742074686520626c6f636b2070726f64756374696f6e206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c5d012067656e6572616c6c7920776f726b2077697468207468697320746f2064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20652e672e20466f7220417572612c2069742077696c6c206265a020646f75626c65207468697320706572696f64206f6e2064656661756c742073657474696e67732e000328417574686f72736869700128417574686f72736869700c18556e636c65730100cd060400041c20556e636c657318417574686f720000000400046420417574686f72206f662063757272656e7420626c6f636b2e30446964536574556e636c6573010088040004bc205768657468657220756e636c6573207765726520616c72656164792073657420696e207468697320626c6f636b2e014d04000440556e636c6547656e65726174696f6e731010000000000ccc20546865206e756d626572206f6620626c6f636b73206261636b2077652073686f756c642061636365707420756e636c65732ee42054686973206d65616e7320746861742077652077696c6c206465616c207769746820756e636c652d706172656e7473207468617420617265942060556e636c6547656e65726174696f6e73202b203160206265666f726520606e6f77602e01d506042042616c616e636573012042616c616e6365731434546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e1c4163636f756e74010104020014010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600901205468652042616c616e6365732070616c6c6574206578616d706c65206f662073746f72696e67207468652062616c616e6365206f6620616e206163636f756e742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b19022020202074797065204163636f756e7453746f7265203d2053746f726167654d61705368696d3c53656c663a3a4163636f756e743c52756e74696d653e2c206672616d655f73797374656d3a3a50726f76696465723c52756e74696d653e2c204163636f756e7449642c2053656c663a3a4163636f756e74446174613c42616c616e63653e3e0c20207d102060606000150120596f752063616e20616c736f2073746f7265207468652062616c616e6365206f6620616e206163636f756e7420696e20746865206053797374656d602070616c6c65742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b7420202074797065204163636f756e7453746f7265203d2053797374656d0c20207d102060606000510120427574207468697320636f6d657320776974682074726164656f6666732c2073746f72696e67206163636f756e742062616c616e63657320696e207468652073797374656d2070616c6c65742073746f7265736d0120606672616d655f73797374656d60206461746120616c6f6e677369646520746865206163636f756e74206461746120636f6e747261727920746f2073746f72696e67206163636f756e742062616c616e63657320696e207468652901206042616c616e636573602070616c6c65742c20776869636820757365732061206053746f726167654d61706020746f2073746f72652062616c616e6365732064617461206f6e6c792e4101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b730101040200d906040008b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e2052657365727665730101040200e906040004a4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e3853746f7261676556657273696f6e0100f50604000c7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e00a020546869732069732073657420746f2076322e302e3020666f72206e6577206e6574776f726b732e01550401780c484578697374656e7469616c4465706f73697418404002e50f00000000000000000000000004d420546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d61784c6f636b7310103200000008f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e2c4d61785265736572766573101032000000040d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e01f90605485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100fd0640000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e01000107040000000004604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c6974706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f7269747960004d0120546869732076616c7565206973206d756c7469706c656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e000668456c656374696f6e50726f76696465724d756c746950686173650168456c656374696f6e50726f76696465724d756c746950686173652814526f756e64010010100100000018ac20496e7465726e616c20636f756e74657220666f7220746865206e756d626572206f6620726f756e64732e00550120546869732069732075736566756c20666f722064652d6475706c69636174696f6e206f66207472616e73616374696f6e73207375626d697474656420746f2074686520706f6f6c2c20616e642067656e6572616c6c20646961676e6f7374696373206f66207468652070616c6c65742e004d012054686973206973206d6572656c7920696e6372656d656e746564206f6e6365207065722065766572792074696d65207468617420616e20757073747265616d2060656c656374602069732063616c6c65642e3043757272656e745068617365010005070400043c2043757272656e742070686173652e38517565756564536f6c7574696f6e00000d070400043d012043757272656e74206265737420736f6c7574696f6e2c207369676e6564206f7220756e7369676e65642c2071756575656420746f2062652072657475726e65642075706f6e2060656c656374602e20536e617073686f740000110704000c7020536e617073686f742064617461206f662074686520726f756e642e005d01205468697320697320637265617465642061742074686520626567696e6e696e67206f6620746865207369676e656420706861736520616e6420636c65617265642075706f6e2063616c6c696e672060656c656374602e38446573697265645461726765747300001004000ccc2044657369726564206e756d626572206f66207461726765747320746f20656c65637420666f72207468697320726f756e642e00a8204f6e6c7920657869737473207768656e205b60536e617073686f74605d2069732070726573656e742e40536e617073686f744d657461646174610000310504000c9820546865206d65746164617461206f6620746865205b60526f756e64536e617073686f74605d00a8204f6e6c7920657869737473207768656e205b60536e617073686f74605d2069732070726573656e742e645369676e65645375626d697373696f6e4e657874496e646578010010100000000024010120546865206e65787420696e64657820746f2062652061737369676e656420746f20616e20696e636f6d696e67207369676e6564207375626d697373696f6e2e007501204576657279206163636570746564207375626d697373696f6e2069732061737369676e6564206120756e6971756520696e6465783b207468617420696e64657820697320626f756e6420746f207468617420706172746963756c61726501207375626d697373696f6e20666f7220746865206475726174696f6e206f662074686520656c656374696f6e2e204f6e20656c656374696f6e2066696e616c697a6174696f6e2c20746865206e65787420696e6465782069733020726573657420746f20302e0069012057652063616e2774206a7573742075736520605369676e65645375626d697373696f6e496e64696365732e6c656e2829602c206265636175736520746861742773206120626f756e646564207365743b20706173742069747359012063617061636974792c2069742077696c6c2073696d706c792073617475726174652e2057652063616e2774206a7573742069746572617465206f76657220605369676e65645375626d697373696f6e734d6170602cf4206265636175736520697465726174696f6e20697320736c6f772e20496e73746561642c2077652073746f7265207468652076616c756520686572652e5c5369676e65645375626d697373696f6e496e6469636573010021070400184d01204120736f727465642c20626f756e64656420736574206f6620602873636f72652c20696e64657829602c20776865726520656163682060696e6465786020706f696e747320746f20612076616c756520696e5420605369676e65645375626d697373696f6e73602e007101205765206e65766572206e65656420746f2070726f63657373206d6f7265207468616e20612073696e676c65207369676e6564207375626d697373696f6e20617420612074696d652e205369676e6564207375626d697373696f6e7375012063616e206265207175697465206c617267652c20736f2077652772652077696c6c696e6720746f207061792074686520636f7374206f66206d756c7469706c6520646174616261736520616363657373657320746f206163636573732101207468656d206f6e6520617420612074696d6520696e7374656164206f662072656164696e6720616e64206465636f64696e6720616c6c206f66207468656d206174206f6e63652e505369676e65645375626d697373696f6e734d61700001040510310704001c7420556e636865636b65642c207369676e656420736f6c7574696f6e732e00690120546f676574686572207769746820605375626d697373696f6e496e6469636573602c20746869732073746f726573206120626f756e64656420736574206f6620605369676e65645375626d697373696f6e7360207768696c65ec20616c6c6f77696e6720757320746f206b656570206f6e6c7920612073696e676c65206f6e6520696e206d656d6f727920617420612074696d652e0069012054776f78206e6f74653a20746865206b6579206f6620746865206d617020697320616e206175746f2d696e6372656d656e74696e6720696e6465782077686963682075736572732063616e6e6f7420696e7370656374206f72f4206166666563743b2077652073686f756c646e2774206e65656420612063727970746f67726170686963616c6c7920736563757265206861736865722e544d696e696d756d556e7472757374656453636f726500002d050400105d0120546865206d696e696d756d2073636f7265207468617420656163682027756e747275737465642720736f6c7574696f6e206d7573742061747461696e20696e206f7264657220746f20626520636f6e7369646572656428206665617369626c652e00b82043616e206265207365742076696120607365745f6d696e696d756d5f756e747275737465645f73636f7265602e01590401803c34556e7369676e656450686173651010960000000480204475726174696f6e206f662074686520756e7369676e65642070686173652e2c5369676e656450686173651010960000000478204475726174696f6e206f6620746865207369676e65642070686173652e544265747465725369676e65645468726573686f6c649c1000000000084d0120546865206d696e696d756d20616d6f756e74206f6620696d70726f76656d656e7420746f2074686520736f6c7574696f6e2073636f7265207468617420646566696e6573206120736f6c7574696f6e2061737820226265747465722220696e20746865205369676e65642070686173652e5c426574746572556e7369676e65645468726573686f6c649c1020a10700084d0120546865206d696e696d756d20616d6f756e74206f6620696d70726f76656d656e7420746f2074686520736f6c7574696f6e2073636f7265207468617420646566696e6573206120736f6c7574696f6e2061738020226265747465722220696e2074686520556e7369676e65642070686173652e384f6666636861696e52657065617410101200000010b42054686520726570656174207468726573686f6c64206f6620746865206f6666636861696e20776f726b65722e00610120466f72206578616d706c652c20696620697420697320352c2074686174206d65616e732074686174206174206c65617374203520626c6f636b732077696c6c20656c61707365206265747765656e20617474656d7074738420746f207375626d69742074686520776f726b6572277320736f6c7574696f6e2e3c4d696e657254785072696f726974792020feffffffffffff7f04250120546865207072696f72697479206f662074686520756e7369676e6564207472616e73616374696f6e207375626d697474656420696e2074686520756e7369676e65642d7068617365505369676e65644d61785375626d697373696f6e731010100000001ce4204d6178696d756d206e756d626572206f66207369676e6564207375626d697373696f6e7320746861742063616e206265207175657565642e005501204974206973206265737420746f2061766f69642061646a757374696e67207468697320647572696e6720616e20656c656374696f6e2c20617320697420696d706163747320646f776e73747265616d2064617461650120737472756374757265732e20496e20706172746963756c61722c20605369676e65645375626d697373696f6e496e64696365733c543e6020697320626f756e646564206f6e20746869732076616c75652e20496620796f75f42075706461746520746869732076616c756520647572696e6720616e20656c656374696f6e2c20796f75205f6d7573745f20656e7375726520746861744d0120605369676e65645375626d697373696f6e496e64696365732e6c656e282960206973206c657373207468616e206f7220657175616c20746f20746865206e65772076616c75652e204f74686572776973652cf020617474656d70747320746f207375626d6974206e657720736f6c7574696f6e73206d617920636175736520612072756e74696d652070616e69632e3c5369676e65644d6178576569676874202040cdd7462d0100001494204d6178696d756d20776569676874206f662061207369676e656420736f6c7574696f6e2e005d01204966205b60436f6e6669673a3a4d696e6572436f6e666967605d206973206265696e6720696d706c656d656e74656420746f207375626d6974207369676e656420736f6c7574696f6e7320286f757473696465206f663d0120746869732070616c6c6574292c207468656e205b604d696e6572436f6e6669673a3a736f6c7574696f6e5f776569676874605d206973207573656420746f20636f6d7061726520616761696e73743020746869732076616c75652e405369676e65644d6178526566756e647310100400000004190120546865206d6178696d756d20616d6f756e74206f6620756e636865636b656420736f6c7574696f6e7320746f20726566756e64207468652063616c6c2066656520666f722e405369676e6564526577617264426173651840aa821bce260000000000000000000000048820426173652072657761726420666f722061207369676e656420736f6c7574696f6e445369676e65644465706f736974426173651840a41a130d84010000000000000000000004902042617365206465706f73697420666f722061207369676e656420736f6c7574696f6e2e445369676e65644465706f7369744279746518406a6e190000000000000000000000000004a0205065722d62797465206465706f73697420666f722061207369676e656420736f6c7574696f6e2e4c5369676e65644465706f73697457656967687418400000000000000000000000000000000004a8205065722d776569676874206465706f73697420666f722061207369676e656420736f6c7574696f6e2e444d6178456c656374696e67566f746572731010d43000000c5d0120546865206d6178696d756d206e756d626572206f6620656c656374696e6720766f7465727320746f2070757420696e2074686520736e617073686f742e20417420746865206d6f6d656e742c20736e617073686f7473590120617265206f6e6c79206f76657220612073696e676c6520626c6f636b2c20627574206f6e6365206d756c74692d626c6f636b20656c656374696f6e732061726520696e74726f647563656420746865792077696c6c842074616b6520706c616365206f766572206d756c7469706c6520626c6f636b732e4c4d6178456c65637461626c65546172676574730d0408ffff04010120546865206d6178696d756d206e756d626572206f6620656c65637461626c65207461726765747320746f2070757420696e2074686520736e617073686f742e013507071c5374616b696e67011c5374616b696e679c30486973746f7279446570746801001010540000001c8c204e756d626572206f66206572617320746f206b65657020696e20686973746f72792e00390120496e666f726d6174696f6e206973206b65707420666f72206572617320696e20605b63757272656e745f657261202d20686973746f72795f64657074683b2063757272656e745f6572615d602e006101204d757374206265206d6f7265207468616e20746865206e756d626572206f6620657261732064656c617965642062792073657373696f6e206f74686572776973652e20492e652e2061637469766520657261206d757374390120616c7761797320626520696e20686973746f72792e20492e652e20606163746976655f657261203e2063757272656e745f657261202d20686973746f72795f646570746860206d757374206265302067756172616e746565642e3856616c696461746f72436f756e74010010100000000004a82054686520696465616c206e756d626572206f66207374616b696e67207061727469636970616e74732e544d696e696d756d56616c696461746f72436f756e740100101000000000044101204d696e696d756d206e756d626572206f66207374616b696e67207061727469636970616e7473206265666f726520656d657267656e637920636f6e646974696f6e732061726520696d706f7365642e34496e76756c6e657261626c65730100510504000c590120416e792076616c696461746f72732074686174206d6179206e6576657220626520736c6173686564206f7220666f726369626c79206b69636b65642e20497427732061205665632073696e636520746865792772654d01206561737920746f20696e697469616c697a6520616e642074686520706572666f726d616e636520686974206973206d696e696d616c2028776520657870656374206e6f206d6f7265207468616e20666f7572ac20696e76756c6e657261626c65732920616e64207265737472696374656420746f20746573746e6574732e18426f6e6465640001040500000400040101204d61702066726f6d20616c6c206c6f636b65642022737461736822206163636f756e747320746f2074686520636f6e74726f6c6c6572206163636f756e742e404d696e4e6f6d696e61746f72426f6e64010018400000000000000000000000000000000004210120546865206d696e696d756d2061637469766520626f6e6420746f206265636f6d6520616e64206d61696e7461696e2074686520726f6c65206f662061206e6f6d696e61746f722e404d696e56616c696461746f72426f6e64010018400000000000000000000000000000000004210120546865206d696e696d756d2061637469766520626f6e6420746f206265636f6d6520616e64206d61696e7461696e2074686520726f6c65206f6620612076616c696461746f722e344d696e436f6d6d697373696f6e01009c10000000000ce820546865206d696e696d756d20616d6f756e74206f6620636f6d6d697373696f6e20746861742076616c696461746f72732063616e207365742e00802049662073657420746f206030602c206e6f206c696d6974206578697374732e184c6564676572000104020039070400044501204d61702066726f6d20616c6c2028756e6c6f636b6564292022636f6e74726f6c6c657222206163636f756e747320746f2074686520696e666f20726567617264696e6720746865207374616b696e672e14506179656501010405004d05040004e42057686572652074686520726577617264207061796d656e742073686f756c64206265206d6164652e204b657965642062792073746173682e2856616c696461746f727301010405009408000004450120546865206d61702066726f6d202877616e6e616265292076616c696461746f72207374617368206b657920746f2074686520707265666572656e636573206f6620746861742076616c696461746f722e50436f756e746572466f7256616c696461746f7273010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170484d617856616c696461746f7273436f756e7400001004000c310120546865206d6178696d756d2076616c696461746f7220636f756e74206265666f72652077652073746f7020616c6c6f77696e67206e65772076616c696461746f727320746f206a6f696e2e00d0205768656e20746869732076616c7565206973206e6f74207365742c206e6f206c696d6974732061726520656e666f726365642e284e6f6d696e61746f727300010405004907040040750120546865206d61702066726f6d206e6f6d696e61746f72207374617368206b657920746f207468656972206e6f6d696e6174696f6e20707265666572656e6365732c206e616d656c79207468652076616c696461746f72732074686174582074686579207769736820746f20737570706f72742e003901204e6f7465207468617420746865206b657973206f6620746869732073746f72616765206d6170206d69676874206265636f6d65206e6f6e2d6465636f6461626c6520696e2063617365207468656d01205b60436f6e6669673a3a4d61784e6f6d696e6174696f6e73605d20636f6e66696775726174696f6e206973206465637265617365642e20496e2074686973207261726520636173652c207468657365206e6f6d696e61746f7273650120617265207374696c6c206578697374656e7420696e2073746f726167652c207468656972206b657920697320636f727265637420616e64207265747269657661626c652028692e652e2060636f6e7461696e735f6b657960710120696e6469636174657320746861742074686579206578697374292c206275742074686569722076616c75652063616e6e6f74206265206465636f6465642e205468657265666f72652c20746865206e6f6e2d6465636f6461626c656d01206e6f6d696e61746f72732077696c6c206566666563746976656c79206e6f742d65786973742c20756e74696c20746865792072652d7375626d697420746865697220707265666572656e6365732073756368207468617420697401012069732077697468696e2074686520626f756e6473206f6620746865206e65776c79207365742060436f6e6669673a3a4d61784e6f6d696e6174696f6e73602e006101205468697320696d706c696573207468617420603a3a697465725f6b65797328292e636f756e7428296020616e6420603a3a6974657228292e636f756e74282960206d696768742072657475726e20646966666572656e746d012076616c75657320666f722074686973206d61702e204d6f72656f7665722c20746865206d61696e20603a3a636f756e7428296020697320616c69676e656420776974682074686520666f726d65722c206e616d656c79207468656c206e756d626572206f66206b65797320746861742065786973742e006d01204c6173746c792c20696620616e79206f6620746865206e6f6d696e61746f7273206265636f6d65206e6f6e2d6465636f6461626c652c20746865792063616e206265206368696c6c656420696d6d6564696174656c7920766961b8205b6043616c6c3a3a6368696c6c5f6f74686572605d20646973706174636861626c6520627920616e796f6e652e50436f756e746572466f724e6f6d696e61746f7273010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170484d61784e6f6d696e61746f7273436f756e7400001004000c310120546865206d6178696d756d206e6f6d696e61746f7220636f756e74206265666f72652077652073746f7020616c6c6f77696e67206e65772076616c696461746f727320746f206a6f696e2e00d0205768656e20746869732076616c7565206973206e6f74207365742c206e6f206c696d6974732061726520656e666f726365642e2843757272656e744572610000100400105c205468652063757272656e742065726120696e6465782e006501205468697320697320746865206c617465737420706c616e6e6564206572612c20646570656e64696e67206f6e20686f77207468652053657373696f6e2070616c6c657420717565756573207468652076616c696461746f7280207365742c206974206d6967687420626520616374697665206f72206e6f742e2441637469766545726100004d07040010d820546865206163746976652065726120696e666f726d6174696f6e2c20697420686f6c647320696e64657820616e642073746172742e0059012054686520616374697665206572612069732074686520657261206265696e672063757272656e746c792072657761726465642e2056616c696461746f7220736574206f66207468697320657261206d757374206265ac20657175616c20746f205b6053657373696f6e496e746572666163653a3a76616c696461746f7273605d2e5445726173537461727453657373696f6e496e6465780001040510100400103101205468652073657373696f6e20696e646578206174207768696368207468652065726120737461727420666f7220746865206c6173742060484953544f52595f44455054486020657261732e006101204e6f74653a205468697320747261636b7320746865207374617274696e672073657373696f6e2028692e652e2073657373696f6e20696e646578207768656e20657261207374617274206265696e672061637469766529f020666f7220746865206572617320696e20605b43757272656e74457261202d20484953544f52595f44455054482c2043757272656e744572615d602e2c457261735374616b65727301010805055107cc0c0000001878204578706f73757265206f662076616c696461746f72206174206572612e0061012054686973206973206b65796564206669727374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00a82049732069742072656d6f7665642061667465722060484953544f52595f44455054486020657261732e4101204966207374616b657273206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e20656d707479206578706f737572652069732072657475726e65642e48457261735374616b657273436c697070656401010805055107cc0c0000002c9820436c6970706564204578706f73757265206f662076616c696461746f72206174206572612e00590120546869732069732073696d696c617220746f205b60457261735374616b657273605d20627574206e756d626572206f66206e6f6d696e61746f7273206578706f736564206973207265647563656420746f20746865dc2060543a3a4d61784e6f6d696e61746f72526577617264656450657256616c696461746f72602062696767657374207374616b6572732e1d0120284e6f74653a20746865206669656c642060746f74616c6020616e6420606f776e60206f6620746865206578706f737572652072656d61696e7320756e6368616e676564292ef42054686973206973207573656420746f206c696d69742074686520692f6f20636f737420666f7220746865206e6f6d696e61746f72207061796f75742e005d012054686973206973206b657965642066697374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00a82049732069742072656d6f7665642061667465722060484953544f52595f44455054486020657261732e4101204966207374616b657273206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e20656d707479206578706f737572652069732072657475726e65642e484572617356616c696461746f72507265667301010805055107940800001411012053696d696c617220746f2060457261735374616b657273602c207468697320686f6c64732074686520707265666572656e636573206f662076616c696461746f72732e0061012054686973206973206b65796564206669727374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00a82049732069742072656d6f7665642061667465722060484953544f52595f44455054486020657261732e4c4572617356616c696461746f7252657761726400010405101804000c09012054686520746f74616c2076616c696461746f7220657261207061796f757420666f7220746865206c6173742060484953544f52595f44455054486020657261732e0021012045726173207468617420686176656e27742066696e697368656420796574206f7220686173206265656e2072656d6f76656420646f65736e27742068617665207265776172642e4045726173526577617264506f696e74730101040510550714000000000008ac205265776172647320666f7220746865206c6173742060484953544f52595f44455054486020657261732e250120496620726577617264206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e2030207265776172642069732072657475726e65642e3845726173546f74616c5374616b65010104051018400000000000000000000000000000000008ec2054686520746f74616c20616d6f756e74207374616b656420666f7220746865206c6173742060484953544f52595f44455054486020657261732e1d0120496620746f74616c206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e2030207374616b652069732072657475726e65642e20466f7263654572610100650704000454204d6f6465206f662065726120666f7263696e672e4c536c6173685265776172644672616374696f6e01009c10000000000cf8205468652070657263656e74616765206f662074686520736c617368207468617420697320646973747269627574656420746f207265706f72746572732e00e4205468652072657374206f662074686520736c61736865642076616c75652069732068616e646c6564206279207468652060536c617368602e4c43616e63656c6564536c6173685061796f757401001840000000000000000000000000000000000815012054686520616d6f756e74206f662063757272656e637920676976656e20746f207265706f7274657273206f66206120736c617368206576656e7420776869636820776173ec2063616e63656c65642062792065787472616f7264696e6172792063697263756d7374616e6365732028652e672e20676f7665726e616e6365292e40556e6170706c696564536c617368657301010405106907040004c420416c6c20756e6170706c69656420736c61736865732074686174206172652071756575656420666f72206c617465722e28426f6e646564457261730100c10304001025012041206d617070696e672066726f6d207374696c6c2d626f6e646564206572617320746f207468652066697273742073657373696f6e20696e646578206f662074686174206572612e00c8204d75737420636f6e7461696e7320696e666f726d6174696f6e20666f72206572617320666f72207468652072616e67653abc20605b6163746976655f657261202d20626f756e64696e675f6475726174696f6e3b206163746976655f6572615d604c56616c696461746f72536c617368496e457261000108050551077107040008450120416c6c20736c617368696e67206576656e7473206f6e2076616c696461746f72732c206d61707065642062792065726120746f20746865206869676865737420736c6173682070726f706f7274696f6e7020616e6420736c6173682076616c7565206f6620746865206572612e4c4e6f6d696e61746f72536c617368496e4572610001080505510718040004610120416c6c20736c617368696e67206576656e7473206f6e206e6f6d696e61746f72732c206d61707065642062792065726120746f20746865206869676865737420736c6173682076616c7565206f6620746865206572612e34536c617368696e675370616e73000104050075070400048c20536c617368696e67207370616e7320666f72207374617368206163636f756e74732e245370616e536c6173680101040561077907800000000000000000000000000000000000000000000000000000000000000000083d01205265636f72647320696e666f726d6174696f6e2061626f757420746865206d6178696d756d20736c617368206f6620612073746173682077697468696e206120736c617368696e67207370616e2cb82061732077656c6c20617320686f77206d7563682072657761726420686173206265656e2070616964206f75742e584561726c69657374556e6170706c696564536c617368000010040004fc20546865206561726c696573742065726120666f72207768696368207765206861766520612070656e64696e672c20756e6170706c69656420736c6173682e5443757272656e74506c616e6e656453657373696f6e01001010000000000ce820546865206c61737420706c616e6e65642073657373696f6e207363686564756c6564206279207468652073657373696f6e2070616c6c65742e0071012054686973206973206261736963616c6c7920696e2073796e632077697468207468652063616c6c20746f205b6070616c6c65745f73657373696f6e3a3a53657373696f6e4d616e616765723a3a6e65775f73657373696f6e605d2e4c4f6666656e64696e6756616c696461746f727301007d07040024690120496e6469636573206f662076616c696461746f727320746861742068617665206f6666656e64656420696e20746865206163746976652065726120616e6420776865746865722074686579206172652063757272656e746c79282064697361626c65642e00690120546869732076616c75652073686f756c642062652061207375706572736574206f662064697361626c65642076616c696461746f72732073696e6365206e6f7420616c6c206f6666656e636573206c65616420746f2074686571012076616c696461746f72206265696e672064697361626c65642028696620746865726520776173206e6f20736c617368292e2054686973206973206e656564656420746f20747261636b207468652070657263656e74616765206f6649012076616c696461746f727320746861742068617665206f6666656e64656420696e207468652063757272656e74206572612c20656e737572696e672061206e65772065726120697320666f72636564206966750120604f6666656e64696e6756616c696461746f72735468726573686f6c646020697320726561636865642e205468652076656320697320616c77617973206b65707420736f7274656420736f20746861742077652063616e2066696e6471012077686574686572206120676976656e2076616c696461746f72206861732070726576696f75736c79206f6666656e646564207573696e672062696e617279207365617263682e204974206765747320636c6561726564207768656e38207468652065726120656e64732e3853746f7261676556657273696f6e01008507040710cc2054727565206966206e6574776f726b20686173206265656e20757067726164656420746f20746869732076657273696f6e2e7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e00a020546869732069732073657420746f2076372e302e3020666f72206e6577206e6574776f726b732e384368696c6c5468726573686f6c640000550504000c510120546865207468726573686f6c6420666f72207768656e2075736572732063616e2073746172742063616c6c696e6720606368696c6c5f6f746865726020666f72206f746865722076616c696461746f7273202f5901206e6f6d696e61746f72732e20546865207468726573686f6c6420697320636f6d706172656420746f207468652061637475616c206e756d626572206f662076616c696461746f7273202f206e6f6d696e61746f72732901202860436f756e74466f722a602920696e207468652073797374656d20636f6d706172656420746f2074686520636f6e66696775726564206d61782028604d61782a436f756e7460292e014905019018384d61784e6f6d696e6174696f6e7310101000000004b4204d6178696d756d206e756d626572206f66206e6f6d696e6174696f6e7320706572206e6f6d696e61746f722e3853657373696f6e735065724572611010060000000470204e756d626572206f662073657373696f6e7320706572206572612e3c426f6e64696e674475726174696f6e10107000000004e4204e756d626572206f6620657261732074686174207374616b65642066756e6473206d7573742072656d61696e20626f6e64656420666f722e48536c61736844656665724475726174696f6e10106f000000100101204e756d626572206f662065726173207468617420736c6173686573206172652064656665727265642062792c20616674657220636f6d7075746174696f6e2e000d0120546869732073686f756c64206265206c657373207468616e2074686520626f6e64696e67206475726174696f6e2e2053657420746f203020696620736c617368657315012073686f756c64206265206170706c69656420696d6d6564696174656c792c20776974686f7574206f70706f7274756e69747920666f7220696e74657276656e74696f6e2e804d61784e6f6d696e61746f72526577617264656450657256616c696461746f7210100001000010f820546865206d6178696d756d206e756d626572206f66206e6f6d696e61746f727320726577617264656420666f7220656163682076616c696461746f722e00510120466f7220656163682076616c696461746f72206f6e6c79207468652060244d61784e6f6d696e61746f72526577617264656450657256616c696461746f72602062696767657374207374616b6572732063616e390120636c61696d207468656972207265776172642e2054686973207573656420746f206c696d69742074686520692f6f20636f737420666f7220746865206e6f6d696e61746f72207061796f75742e484d6178556e6c6f636b696e674368756e6b73101020000000084d0120546865206d6178696d756d206e756d626572206f662060756e6c6f636b696e6760206368756e6b732061205b605374616b696e674c6564676572605d2063616e20686176652e204566666563746976656c79f82064657465726d696e657320686f77206d616e7920756e6971756520657261732061207374616b6572206d617920626520756e626f6e64696e6720696e2e018907081c53657373696f6e011c53657373696f6e1c2856616c696461746f7273010051050400047c205468652063757272656e7420736574206f662076616c696461746f72732e3043757272656e74496e646578010010100000000004782043757272656e7420696e646578206f66207468652073657373696f6e2e345175657565644368616e676564010088040008390120547275652069662074686520756e6465726c79696e672065636f6e6f6d6963206964656e746974696573206f7220776569676874696e6720626568696e64207468652076616c696461746f7273a420686173206368616e67656420696e20746865207175657565642076616c696461746f72207365742e285175657565644b65797301008d070400083d012054686520717565756564206b65797320666f7220746865206e6578742073657373696f6e2e205768656e20746865206e6578742073657373696f6e20626567696e732c207468657365206b657973e02077696c6c206265207573656420746f2064657465726d696e65207468652076616c696461746f7227732073657373696f6e206b6579732e4844697361626c656456616c696461746f7273010059050400148020496e6469636573206f662064697361626c65642076616c696461746f72732e003d01205468652076656320697320616c77617973206b65707420736f7274656420736f20746861742077652063616e2066696e642077686574686572206120676976656e2076616c696461746f722069733d012064697361626c6564207573696e672062696e617279207365617263682e204974206765747320636c6561726564207768656e20606f6e5f73657373696f6e5f656e64696e67602072657475726e73642061206e657720736574206f66206964656e7469746965732e204e6578744b657973000104050071050400049c20546865206e6578742073657373696f6e206b65797320666f7220612076616c696461746f722e204b65794f776e657200010405950700040004090120546865206f776e6572206f662061206b65792e20546865206b65792069732074686520604b657954797065496460202b2074686520656e636f646564206b65792e016d0501a000019d070928486973746f726963616c0128486973746f726963616c0848486973746f726963616c53657373696f6e730001040510a1070400045d01204d617070696e672066726f6d20686973746f726963616c2073657373696f6e20696e646963657320746f2073657373696f6e2d6461746120726f6f74206861736820616e642076616c696461746f7220636f756e742e2c53746f72656452616e67650000c503040004e4205468652072616e6765206f6620686973746f726963616c2073657373696f6e732077652073746f72652e205b66697273742c206c61737429000000000a1c4772616e647061011c4772616e647061181453746174650100a50704000490205374617465206f66207468652063757272656e7420617574686f72697479207365742e3450656e64696e674368616e67650000a907040004c42050656e64696e67206368616e67653a20287369676e616c65642061742c207363686564756c6564206368616e6765292e284e657874466f72636564000010040004bc206e65787420626c6f636b206e756d6265722077686572652077652063616e20666f7263652061206368616e67652e1c5374616c6c65640000c5030400049020607472756560206966207765206172652063757272656e746c79207374616c6c65642e3043757272656e745365744964010020200000000000000000085d0120546865206e756d626572206f66206368616e6765732028626f746820696e207465726d73206f66206b65797320616e6420756e6465726c79696e672065636f6e6f6d696320726573706f6e736962696c697469657329c420696e20746865202273657422206f66204772616e6470612076616c696461746f72732066726f6d2067656e657369732e30536574496453657373696f6e00010405201004001059012041206d617070696e672066726f6d206772616e6470612073657420494420746f2074686520696e646578206f6620746865202a6d6f737420726563656e742a2073657373696f6e20666f722077686963682069747368206d656d62657273207765726520726573706f6e7369626c652e00b82054574f582d4e4f54453a2060536574496460206973206e6f7420756e646572207573657220636f6e74726f6c2e01790501a404384d6178417574686f7269746965731010a0860100045c204d617820417574686f72697469657320696e2075736501b1070b48417574686f72697479446973636f766572790148417574686f72697479446973636f7665727908104b6579730100b5070400048c204b657973206f66207468652063757272656e7420617574686f72697479207365742e204e6578744b6579730100b50704000480204b657973206f6620746865206e65787420617574686f72697479207365742e000000000c20496d4f6e6c696e650120496d4f6e6c696e651038486561727462656174416674657201001010000000002c1d012054686520626c6f636b206e756d6265722061667465722077686963682069742773206f6b20746f2073656e64206865617274626561747320696e207468652063757272656e74242073657373696f6e2e0025012041742074686520626567696e6e696e67206f6620656163682073657373696f6e20776520736574207468697320746f20612076616c756520746861742073686f756c642066616c6c350120726f7567686c7920696e20746865206d6964646c65206f66207468652073657373696f6e206475726174696f6e2e20546865206964656120697320746f206669727374207761697420666f721901207468652076616c696461746f727320746f2070726f64756365206120626c6f636b20696e207468652063757272656e742073657373696f6e2c20736f207468617420746865a820686561727462656174206c61746572206f6e2077696c6c206e6f74206265206e65636573736172792e00390120546869732076616c75652077696c6c206f6e6c79206265207573656420617320612066616c6c6261636b206966207765206661696c20746f2067657420612070726f7065722073657373696f6e2d012070726f677265737320657374696d6174652066726f6d20604e65787453657373696f6e526f746174696f6e602c2061732074686f736520657374696d617465732073686f756c642062650101206d6f7265206163637572617465207468656e207468652076616c75652077652063616c63756c61746520666f7220604865617274626561744166746572602e104b6579730100bd07040004d0205468652063757272656e7420736574206f66206b6579732074686174206d61792069737375652061206865617274626561742e485265636569766564486561727462656174730001080505c503c5070400083d0120466f7220656163682073657373696f6e20696e6465782c207765206b6565702061206d617070696e67206f66206053657373696f6e496e6465786020616e64206041757468496e6465786020746fb02060577261707065724f70617175653c426f756e6465644f70617175654e6574776f726b53746174653e602e38417574686f726564426c6f636b730101080505510710100000000008150120466f7220656163682073657373696f6e20696e6465782c207765206b6565702061206d617070696e67206f66206056616c696461746f7249643c543e6020746f20746865c8206e756d626572206f6620626c6f636b7320617574686f7265642062792074686520676976656e20617574686f726974792e01a90501b80440556e7369676e65645072696f726974792020ffffffffffffffff10f0204120636f6e66696775726174696f6e20666f722062617365207072696f72697479206f6620756e7369676e6564207472616e73616374696f6e732e0015012054686973206973206578706f73656420736f20746861742069742063616e2062652074756e656420666f7220706172746963756c61722072756e74696d652c207768656eb4206d756c7469706c652070616c6c6574732073656e6420756e7369676e6564207472616e73616374696f6e732e01d9070d204f6666656e63657301204f6666656e6365730c1c5265706f7274730001040524dd07040004490120546865207072696d61727920737472756374757265207468617420686f6c647320616c6c206f6666656e6365207265636f726473206b65796564206279207265706f7274206964656e746966696572732e58436f6e63757272656e745265706f727473496e6465780101080505e107bd030400042901204120766563746f72206f66207265706f727473206f66207468652073616d65206b696e6420746861742068617070656e6564206174207468652073616d652074696d6520736c6f742e485265706f72747342794b696e64496e64657801010405e028040018110120456e756d65726174657320616c6c207265706f727473206f662061206b696e6420616c6f6e672077697468207468652074696d6520746865792068617070656e65642e00bc20416c6c207265706f7274732061726520736f72746564206279207468652074696d65206f66206f6666656e63652e004901204e6f74652074686174207468652061637475616c2074797065206f662074686973206d617070696e6720697320605665633c75383e602c207468697320697320626563617573652076616c756573206f66690120646966666572656e7420747970657320617265206e6f7420737570706f7274656420617420746865206d6f6d656e7420736f2077652061726520646f696e6720746865206d616e75616c2073657269616c697a6174696f6e2e0001dc00000e6052616e646f6d6e657373436f6c6c656374697665466c6970016052616e646f6d6e657373436f6c6c656374697665466c6970043852616e646f6d4d6174657269616c0100e50704000c610120536572696573206f6620626c6f636b20686561646572732066726f6d20746865206c61737420383120626c6f636b73207468617420616374732061732072616e646f6d2073656564206d6174657269616c2e2054686973610120697320617272616e67656420617320612072696e672062756666657220776974682060626c6f636b5f6e756d626572202520383160206265696e672074686520696e64657820696e746f20746865206056656360206f664420746865206f6c6465737420686173682e000000000f20426167734c6973740120426167734c6973740c244c6973744e6f6465730001040500e90704000c8020412073696e676c65206e6f64652c2077697468696e20736f6d65206261672e000501204e6f6465732073746f7265206c696e6b7320666f727761726420616e64206261636b2077697468696e207468656972207265737065637469766520626167732e4c436f756e746572466f724c6973744e6f646573010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170204c697374426167730001040520ed0704000c642041206261672073746f72656420696e2073746f726167652e0019012053746f7265732061206042616760207374727563742c2077686963682073746f726573206865616420616e64207461696c20706f696e7465727320746f20697473656c662e01c90501e404344261675468726573686f6c6473f80919210300407a10f35a00006a70ccd4a96000009ef3397fbc660000a907ccd5306d00003d9a67fb0c740000a9bfa275577b0000a6fdf73217830000034f5d91538b0000132445651494000078081001629d00000302f63c45a70000392e6f7fc7b10000f59c23c6f2bc00004ae76aafd1c80000598a64846fd50000129fb243d8e200003f22e1ac18f1000033a4844c3e000100e2e51b895710010076a2c0b0732101006789b407a3330100793ed8d7f646010078131b81815b01000c1cf38a567101004437eeb68a8801009eb56d1434a10100335e9f156abb010067c3c7a545d701003218f340e1f40100de0b230d59140200699c11f5ca350200ad50a2c4565902009ae41c471e7f0200d0244e6745a70200f984ad51f2d10200ace7a7984dff0200a118325b822f0300ffa4c76dbe620300580bfd8532990300a9afce6812d30300109ad81b95100400d9caa519f551040038df488970970400bee1727949e10400cc73401fc62f0500b304f91831830500828bffb4d9db05001235383d143a0600a5b42a473a9e060036662d09ab080700f73aeab4cb790700b87e93d707f20700ffec23c0d1710800b84b0beca2f90800c9dcae7afc89090091752ba867230a0064f1cd4f76c60a003609be76c3730b0078655fdff32b0c00a407f5a5b6ef0c0052f61be7c5bf0d00da71bb70e79c0e000de9127eed870f001477987fb7811000ebee65ef328b11001269fe325ca5120033f8428b3fd113008ba57a13fa0f15001b2b60d0ba6216000d1d37d0c3ca17006c64fa5c6b4919002622c7411de01a00045bb9245c901c00233d83f6c25b1e00c8771c79064420003013fddef64a2200aa8b6e848172240082c096c4b2bc260016a3faebb72b29008296524ae1c12b00a636a865a4812e00d0e2d4509e6d31009c0a9a2796883400e4faafb27fd53700e6e64d367e573b000e4bd66de7113f0088b17db746084300b07def72603e470034de249635b84b00d48bd57b077a5000d0bd20ef5b885500b8f0467801e85a0010f88aee139e60003892925301b066009c95e4fc8e236d00b4126d10dffe730028b43e5976487b00a08a1c7a42078300b09ab083a0428b002846b2f463029400c861a42ade4e9d0050d23d4ae630a700805101a7e1b1b10038e501b2ccdbbc002016527844b9c800388924ba9055d50070ca35a4aebce200805fb1355cfbf0008035685d241f0001a0c3dcd96b361001d07862e87e50210160e852d09f7d330190662c5816cf460110274c3340575b01804be277a22971013082b92dfc5a880180d276075a01a101b0f511592b34bb014031745f580cd701802f6cee59a4f40140ff799b521814026075607d2986350260fde999a60d590200e5e71c91d07e02c0df2575cff2a602a07fd975899ad102a067009d4cf0fe0220dc29a1321f2f0320ff526b0a5562038088caa383c29803e05683fb5c9bd203401dd75d9516100400317e39a06e5104c0b071129de1960480b48c9192b1e00480e8124aad242f05c007ca7082858205007c13c45623db0540836fe869523906c0700f81466c9d0640f09c5017d00707c0e624b301e37807c0332ac78510f10780074ca1e4ca700800d5a9eb8c8bf80800a849588ed3880900804254142c220a80a25170e826c50a00e8d5fafc5e720b801df64e00792a0c80d4fe64f923ee0c006dd038ee19be0d001e90a494209b0e0010bf570e0a860f00da6a9db0b57f1000bf64afd810891100bb5b60cd17a31200f963f3aed6ce1300d5f004766a0d1500e099770202601600103d663bdfc71700de3e2d4158461900ecdbadb2d8dc1a0045c70007e38c1c00b8bde0fc11581e00ba5c2a211a402000407de46dcb462200dea55b03136e2400aaf1f3fcfcb7260014226f63b62629006492803e8fbc2b008486a6c7fc7b2e002cf05fc09b673100da63f7ed32823400f0b13fbdb5ce3700f291c41047503b00422a1a3c3c0a3f002c24212f20004300ac9342d4b6354700cc6ed7a400af4b00c4d022773e70500020017d89f57d5500f86387cef3dc5a008c4c7f7e54926000206207f284a36600cc1e05cb49166d00b42a7a70c4f07300d43a90e278397b0038f461ec53f78200a07264b9b1318b0048c9b3d464f09300007fe998bd3b9d0010058f17921ca70000dfaf7f469cb100e80c880bd6c4bc0058bdcb7ddca0c80038d18d37a03bd50030d55bf01ca1e200704ac01a0fdef0ffffffffffffffffacd020546865206c697374206f66207468726573686f6c64732073657061726174696e672074686520766172696f757320626167732e00490120496473206172652073657061726174656420696e746f20756e736f727465642062616773206163636f7264696e6720746f2074686569722073636f72652e205468697320737065636966696573207468656101207468726573686f6c64732073657061726174696e672074686520626167732e20416e20696427732062616720697320746865206c6172676573742062616720666f722077686963682074686520696427732073636f7265b8206973206c657373207468616e206f7220657175616c20746f20697473207570706572207468726573686f6c642e006501205768656e20696473206172652069746572617465642c2068696768657220626167732061726520697465726174656420636f6d706c6574656c79206265666f7265206c6f77657220626167732e2054686973206d65616e735901207468617420697465726174696f6e206973205f73656d692d736f727465645f3a20696473206f66206869676865722073636f72652074656e6420746f20636f6d65206265666f726520696473206f66206c6f7765722d012073636f72652c206275742070656572206964732077697468696e206120706172746963756c6172206261672061726520736f7274656420696e20696e73657274696f6e206f726465722e006820232045787072657373696e672074686520636f6e7374616e74004d01205468697320636f6e7374616e74206d75737420626520736f7274656420696e207374726963746c7920696e6372656173696e67206f726465722e204475706c6963617465206974656d7320617265206e6f742c207065726d69747465642e00410120546865726520697320616e20696d706c696564207570706572206c696d6974206f66206053636f72653a3a4d4158603b20746861742076616c756520646f6573206e6f74206e65656420746f2062652101207370656369666965642077697468696e20746865206261672e20466f7220616e792074776f207468726573686f6c64206c697374732c206966206f6e6520656e647320776974683101206053636f72653a3a4d4158602c20746865206f74686572206f6e6520646f6573206e6f742c20616e64207468657920617265206f746865727769736520657175616c2c207468652074776f7c206c697374732077696c6c20626568617665206964656e746963616c6c792e003820232043616c63756c6174696f6e005501204974206973207265636f6d6d656e64656420746f2067656e65726174652074686520736574206f66207468726573686f6c647320696e20612067656f6d6574726963207365726965732c2073756368207468617441012074686572652065786973747320736f6d6520636f6e7374616e7420726174696f2073756368207468617420607468726573686f6c645b6b202b20315d203d3d20287468726573686f6c645b6b5d202ad020636f6e7374616e745f726174696f292e6d6178287468726573686f6c645b6b5d202b2031296020666f7220616c6c20606b602e005901205468652068656c7065727320696e2074686520602f7574696c732f6672616d652f67656e65726174652d6261677360206d6f64756c652063616e2073696d706c69667920746869732063616c63756c6174696f6e2e002c2023204578616d706c6573005101202d20496620604261675468726573686f6c64733a3a67657428292e69735f656d7074792829602c207468656e20616c6c20696473206172652070757420696e746f207468652073616d65206261672c20616e64b0202020697465726174696f6e206973207374726963746c7920696e20696e73657274696f6e206f726465722e6101202d20496620604261675468726573686f6c64733a3a67657428292e6c656e2829203d3d203634602c20616e6420746865207468726573686f6c6473206172652064657465726d696e6564206163636f7264696e6720746f11012020207468652070726f63656475726520676976656e2061626f76652c207468656e2074686520636f6e7374616e7420726174696f20697320657175616c20746f20322e6501202d20496620604261675468726573686f6c64733a3a67657428292e6c656e2829203d3d20323030602c20616e6420746865207468726573686f6c6473206172652064657465726d696e6564206163636f7264696e6720746f59012020207468652070726f63656475726520676976656e2061626f76652c207468656e2074686520636f6e7374616e7420726174696f20697320617070726f78696d6174656c7920657175616c20746f20312e3234382e6101202d20496620746865207468726573686f6c64206c69737420626567696e7320605b312c20322c20332c202e2e2e5d602c207468656e20616e20696420776974682073636f72652030206f7220312077696c6c2066616c6cf0202020696e746f2062616720302c20616e20696420776974682073636f726520322077696c6c2066616c6c20696e746f2062616720312c206574632e00302023204d6967726174696f6e00610120496e20746865206576656e7420746861742074686973206c6973742065766572206368616e6765732c206120636f7079206f6620746865206f6c642062616773206c697374206d7573742062652072657461696e65642e5d012057697468207468617420604c6973743a3a6d696772617465602063616e2062652063616c6c65642c2077686963682077696c6c20706572666f726d2074686520617070726f707269617465206d6967726174696f6e2e01f107101c56657374696e67011c56657374696e67081c56657374696e670001040200f907040004d820496e666f726d6174696f6e20726567617264696e67207468652076657374696e67206f66206120676976656e206163636f756e742e3853746f7261676556657273696f6e0100010804000c7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e003101204e6577206e6574776f726b732073746172742077697468206c61746573742076657273696f6e2c2061732064657465726d696e6564206279207468652067656e65736973206275696c642e01cd0501e808444d696e5665737465645472616e736665721840aa821bce26000000000000000000000004e820546865206d696e696d756d20616d6f756e74207472616e7366657272656420746f2063616c6c20607665737465645f7472616e73666572602e4c4d617856657374696e675363686564756c657310101c0000000001050811204d756c746973696701204d756c746973696708244d756c746973696773000108050209080d08040004942054686520736574206f66206f70656e206d756c7469736967206f7065726174696f6e732e1443616c6c730001040604110804000001d50501ec0c2c4465706f736974426173651840d042de1300000000000000000000000018590120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e672061206d756c746973696720657865637574696f6e206f7220746f842073746f726520612064697370617463682063616c6c20666f72206c617465722e00010120546869732069732068656c6420666f7220616e206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a652069733101206034202b2073697a656f662828426c6f636b4e756d6265722c2042616c616e63652c204163636f756e74496429296020627974657320616e642077686f7365206b65792073697a652069738020603332202b2073697a656f66284163636f756e74496429602062797465732e344465706f736974466163746f72184040cd2d030000000000000000000000000c55012054686520616d6f756e74206f662063757272656e6379206e65656465642070657220756e6974207468726573686f6c64207768656e206372656174696e672061206d756c746973696720657865637574696f6e2e00250120546869732069732068656c6420666f7220616464696e67203332206279746573206d6f726520696e746f2061207072652d6578697374696e672073746f726167652076616c75652e384d61785369676e61746f726965730d0408640004ec20546865206d6178696d756d20616d6f756e74206f66207369676e61746f7269657320616c6c6f77656420696e20746865206d756c74697369672e011508121c436f756e63696c011c436f756e63696c24145374616765010019082402010000000000000004742043757272656e7420636f756e63696c20766f74696e6720737461676538436f756e63696c4d656d6265727301002d08040004602043757272656e7420636f756e63696c206d656d626572732843616e64696461746573000104022039080400041101204d6170206f6620616c6c2063616e64696461746573207468617420657665722063616e6469646174656420616e6420686176656e277420756e7374616b65207965742e50416e6e6f756e63656d656e74506572696f644e72010020200000000000000000085d0120496e646578206f66207468652063757272656e742063616e64696461637920706572696f642e20497420697320696e6372656d656e74656420657665727974696d6520616e6e6f756e63656d656e7420706572696f6420207374617274732e18427564676574010018400000000000000000000000000000000004c82042756467657420666f722074686520636f756e63696c277320656c6563746564206d656d6265727320726577617264732e484e6578745265776172645061796d656e7473010010100000000004290120546865206e65787420626c6f636b20696e2077686963682074686520656c656374656420636f756e63696c206d656d62657220726577617264732077696c6c2062652070617965642e404e657874427564676574526566696c6c010010100000000004d820546865206e65787420626c6f636b20696e20776869636820746865206275646765742077696c6c20626520696e637265617365642e3c427564676574496e6372656d656e74010018400000000000000000000000000000000004d420416d6f756e74206f662062616c616e636520746f20626520726566696c6c65642065766572792062756467657420706572696f643c436f756e63696c6f725265776172640100184000000000000000000000000000000000046c20436f756e63696c6f72207265776172642070657220626c6f636b01e10501f424684d696e4e756d6265724f66457874726143616e64696461746573101000000000080901204d696e696d756d206e756d626572206f662065787472612063616e64696461746573206e656564656420666f72207468652076616c696420656c656374696f6e2e2d01204e756d626572206f6620746f74616c2063616e6469646174657320697320657175616c20746f20636f756e63696c2073697a6520706c75732065787472612063616e646964617465732e2c436f756e63696c53697a65101003000000045420436f756e63696c206d656d62657220636f756e74444d696e43616e6469646174655374616b651840a010a012d3eb050000000000000000000490204d696e696d756d207374616b652063616e6469646174652068617320746f206c6f636b60416e6e6f756e63696e67506572696f644475726174696f6e101040fa01000474204475726174696f6e206f6620616e6e6f6e63696e6720706572696f644849646c65506572696f644475726174696f6e1010010000000460204475726174696f6e206f662069646c6520706572696f6464456c65637465644d656d626572526577617264506572696f6410104038000004a020496e74657276616c20666f72206175746f6d6174696320726577617264207061796d656e74732e48427564676574526566696c6c506572696f6410104038000004ac20496e74657276616c206265747765656e206175746f6d617469632062756467657420726566696c6c732e3c43616e6469646163794c6f636b496409042063616e6469646163048c204578706f72747320636f6e7374202d2063616e646964616379206c6f636b2069642e3c436f756e63696c6f724c6f636b4964090420636f756e63696c6f048c204578706f72747320636f6e7374202d20636f756e63696c6f72206c6f636b2069642e013d0813285265666572656e64756d014c496e7374616e6365315265666572656e64756d0c14537461676501004108040004682043757272656e74207265666572656e64756d2073746167652e14566f74657301010402005108e400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018510120566f746573206361737420696e20746865207265666572656e64756d2e2041206e6577207265636f726420697320616464656420746f2074686973206d6170207768656e20612075736572206361737473206134207365616c656420766f74652e0101204974206973206d6f646966696564207768656e206120757365722072657665616c732074686520766f7465277320636f6d6d69746d656e742070726f6f662e55012041207265636f72642069732066696e616c6c792072656d6f766564207768656e20746865207573657220756e7374616b65732c2077686963682063616e2068617070656e20647572696e67206120766f74696e679c207374616765206f72206166746572207468652063757272656e74206379636c6520656e64732ef82041207374616b6520666f72206120766f74652063616e2062652072657573656420696e20667574757265207265666572656e64756d206379636c65732e404163636f756e74734f707465644f75740101040200740004f4204163636f756e74732074686174207065726d616e656e746c79206f70746564206f7574206f6620766f74696e6720696e207265666572656e64756d2e01e50501fc14344d617853616c744c656e67746820202000000000000000085d01204d6178696d756d206c656e677468206f6620766f746520636f6d6d69746d656e742073616c742e20557365206c656e677468207468617420656e737572657320756e697175656e65737320666f722068617368696e675020652e672e207374643a3a7536343a3a4d41582e44566f746553746167654475726174696f6e1010c0a8000004b0204475726174696f6e206f6620766f74696e6720737461676520286e756d626572206f6620626c6f636b73294c52657665616c53746167654475726174696f6e1010c0a8000004bc204475726174696f6e206f662072657665616c696e6720737461676520286e756d626572206f6620626c6f636b7329304d696e696d756d5374616b651840a41a130d8401000000000000000000000480204d696e696d756d207374616b65206e656564656420666f7220766f74696e67505374616b696e6748616e646c65724c6f636b4964090420766f74696e67202004a4204578706f72747320636f6e7374202d207374616b696e672068616e646c6572206c6f636b2069642e015508141c4d656d6265727301284d656d6265727368697020304e6578744d656d6265724964010020200000000000000000084501204d656d626572496420746f2061737369676e20746f206e657874206d656d626572207468617420697320616464656420746f207468652072656769737472792c20616e6420697320616c736f20746865e820746f74616c206e756d626572206f66206d656d6265727320637265617465642e204d656d626572496473207374617274206174205a65726f2e384d656d626572736869704279496400010402205908040004d0204d617070696e67206f66206d656d626572277320696420746f207468656972206d656d626572736869702070726f66696c652e504d656d6265724964427948616e646c6548617368010104022420200000000000000000040501205265676973746572656420756e697175652068616e646c6573206861736820616e64207468656972206d617070696e6720746f207468656972206f776e65722e2c526566657272616c437574010008040004410120526566657272616c206375742070657263656e74206f6620746865206d656d626572736869702066656520746f2072656365697665206f6e20627579696e6720746865206d656d626572736869702e3c4d656d62657273686970507269636501001840aa821bce26000000000000000000000004682043757272656e74206d656d626572736869702070726963652e58496e697469616c496e7669746174696f6e436f756e74010010100000000004e820496e697469616c20696e7669746174696f6e20636f756e7420666f7220746865206e65776c7920626f75676874206d656d626572736869702e60496e697469616c496e7669746174696f6e42616c616e63650100184034c10d6713000000000000000000000004cc20496e697469616c20696e7669746174696f6e2062616c616e636520666f722074686520696e7669746564206d656d6265722e705374616b696e674163636f756e7449644d656d62657253746174757301010402005d082400000000000000000004250120446f75626c65206f662061207374616b696e67206163636f756e7420696420616e64206d656d62657220696420746f2074686520636f6e6669726d6174696f6e207374617475732e01e905010d01185844656661756c744d656d6265727368697050726963651840aa821bce26000000000000000000000004a0204578706f72747320636f6e7374202d2064656661756c74206d656d62657273686970206665652e64526566657272616c4375744d6178696d756d50657263656e74080432044901204578706f72747320636f6e7374202d206d6178696d756d2070657263656e742076616c7565206f6620746865206d656d626572736869702066656520666f722074686520726566657272616c206375742e7c44656661756c74496e697469616c496e7669746174696f6e42616c616e6365184034c10d6713000000000000000000000004e0204578706f72747320636f6e7374202d2064656661756c742062616c616e636520666f722074686520696e7669746564206d656d6265722e3843616e6469646174655374616b651840a41a130d84010000000000000000000004f8204578706f72747320636f6e7374202d205374616b65206e656564656420746f2063616e646964617465206173207374616b696e67206163636f756e742e4c496e76697465644d656d6265724c6f636b4964090420696e766974656d6204a0204578706f72747320636f6e7374202d20696e7669746564206d656d626572206c6f636b2069642e585374616b696e6743616e6469646174654c6f636b4964090420626f756e6473746104ac204578706f72747320636f6e7374202d207374616b696e672063616e646964617465206c6f636b2069642e0161081514466f72756d0124466f72756d5f315f31203043617465676f727942794964010104022065083d010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004cc204d61702063617465676f7279206964656e74696669657220746f20636f72726573706f6e64696e672063617465676f72792e384e65787443617465676f727949640100202000000000000000000411012043617465676f7279206964656e7469666965722076616c756520746f206265207573656420666f7220746865206e6578742043617465676f727920637265617465642e3c43617465676f7279436f756e746572010020200000000000000000049420436f756e74657220666f7220616c6c206578697374696e672063617465676f726965732e2854687265616442794964010108020261036d08a4000000000000000000000000000000000000000000000000000000000000000000000000000000000004bc204d617020746872656164206964656e74696669657220746f20636f72726573706f6e64696e67207468726561642e304e657874546872656164496401002020000000000000000004090120546872656164206964656e7469666965722076616c756520746f206265207573656420666f72206e6578742054687265616420696e20746872656164427949642e284e657874506f7374496401002020000000000000000004f020506f7374206964656e7469666965722076616c756520746f206265207573656420666f7220666f72206e65787420706f737420637265617465642e4c43617465676f727942794d6f64657261746f720101080202610374000480204d6f64657261746f722073657420666f7220656163682043617465676f727920506f737442794964010108020261037108150100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004ac204d617020706f7374206964656e74696669657220746f20636f72726573706f6e64696e6720706f73742e01ed05013901102c506f73744465706f736974184083890d730000000000000000000000000838204578706f72747320636f6e737480204465706f736974206e656564656420746f20637265617465206120706f7374345468726561644465706f736974184099b06c6f0000000000000000000000000488204465706f736974206e656564656420746f20637265617465206120746872656164804d617844697265637453756263617465676f72696573496e43617465676f7279202005000000000000000484204d617844697265637453756263617465676f72696573496e43617465676f7279484d6178546f74616c43617465676f7269657320202800000000000000044c204d6178546f74616c43617465676f726965730175081630436f6e737469747574696f6e0130436f6e737469747574696f6e0430436f6e737469747574696f6e010079088000000000000000000000000000000000000000000000000000000000000000000001f10501550100001718426f756e74790118426f756e74791420426f756e7469657301010402207d087d010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044020426f756e74792073746f726167652e4c426f756e7479436f6e747269627574696f6e7301010802029108950880000000000000000000000000000000005084c06c000000000000000000000000044d0120446f75626c65206d617020666f7220626f756e74792066756e64696e672e2049742073746f7265732061206d656d626572206f7220636f756e63696c2066756e64696e6720666f7220626f756e746965732e2c426f756e7479436f756e74010010100000000004b820436f756e74206f6620616c6c20626f756e7469657320746861742068617665206265656e20637265617465642e1c456e74726965730001080202610399080400046020576f726b20656e7472792073746f72616765206d61702e28456e747279436f756e74010010100000000004c820436f756e74206f6620616c6c20776f726b20656e747269657320746861742068617665206265656e20637265617465642e01f505015901105c436c6f736564436f6e747261637453697a654c696d6974101032000000044d01204578706f72747320636f6e7374202d206d617820776f726b20656e747279206e756d62657220666f72206120636c6f736564206173737572616e6365207479706520636f6e747261637420626f756e74792e4c4d696e576f726b456e7472616e745374616b651840958ed36d00000000000000000000000004d4204578706f72747320636f6e7374202d206d696e20776f726b20656e7472616e74207374616b6520666f72206120626f756e74792e6846756e6465725374617465426c6f6174426f6e64416d6f756e7418405084c06c00000000000000000000000004f4204578706f72747320636f6e7374202d2066756e64657220737461746520626c6f617420626f6e6420616d6f756e7420666f72206120626f756e74792e6c43726561746f725374617465426c6f6174426f6e64416d6f756e7418400e16e46c00000000000000000000000004f8204578706f72747320636f6e7374202d2063726561746f7220737461746520626c6f617420626f6e6420616d6f756e7420666f72206120626f756e74792e019d0818404a6f7973747265616d5574696c69747901404a6f7973747265616d5574696c6974790001f905017d010001a108191c436f6e74656e74011c436f6e74656e74842c4368616e6e656c4279496401010402209101a10100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024566964656f427949640101040220a5086c00000000000000000000000000000000000000000000000000000000344e6578744368616e6e656c4964010020200000000000000000002c4e657874566964656f496401002020000000000000000000384e6578745472616e73666572496401002020000000000000000000484e65787443757261746f7247726f75704964010020200000000000000000004043757261746f7247726f7570427949640101040220d1080c0000000028436f6d6d69746d656e7401002480000000000000000000000000000000000000000000000000000000000000000000684368616e6e656c5374617465426c6f6174426f6e6456616c756501001840000000000000000000000000000000000425012054686520737461746520626c6f617420626f6e6420666f7220746865206368616e6e656c202868656c70732070726576656e74696e672074686520737461746520626c6f6174292e60566964656f5374617465426c6f6174426f6e6456616c7565010018400000000000000000000000000000000004190154686520737461746520626c6f617420626f6e6420666f722074686520766964656f202868656c70732070726576656e74696e672074686520737461746520626c6f6174292e444d6178436173686f7574416c6c6f776564010018400000000000000000000000000000000000444d696e436173686f7574416c6c6f776564010018400000000000000000000000000000000000584368616e6e656c436173686f757473456e61626c6564010088040000484d696e41756374696f6e4475726174696f6e01001010000000000454204d696e2061756374696f6e206475726174696f6e484d617841756374696f6e4475726174696f6e01001010000000000454204d61782061756374696f6e206475726174696f6e644d696e41756374696f6e457874656e73696f6e506572696f6401001010000000000474204d696e2061756374696f6e20657874656e73696f6e20706572696f64644d617841756374696f6e457874656e73696f6e506572696f6401001010000000000474204d61782061756374696f6e20657874656e73696f6e20706572696f64484d696e4269644c6f636b4475726174696f6e01001010000000000458204d696e20626964206c6f636b206475726174696f6e484d61784269644c6f636b4475726174696f6e01001010000000000458204d617820626964206c6f636b206475726174696f6e404d696e5374617274696e67507269636501001840000000000000000000000000000000000468204d696e2061756374696f6e2073746172696e67207072696365404d61785374617274696e67507269636501001840000000000000000000000000000000000468204d61782061756374696f6e2073746172696e67207072696365444d696e43726561746f72526f79616c747901009c1000000000047c204d696e2063726561746f7220726f79616c74792070657263656e74616765444d617843726561746f72526f79616c747901009c1000000000047c204d61782063726561746f7220726f79616c74792070657263656e74616765284d696e4269645374657001001840000000000000000000000000000000000454204d696e2061756374696f6e206269642073746570284d61784269645374657001001840000000000000000000000000000000000454204d61782061756374696f6e20626964207374657054506c617466726f6d46656550657263656e7461676501009c1000000000046020506c6174666f726d206665652070657263656e746167655c41756374696f6e53746172747341744d617844656c7461010010100000000004b8204d61782064656c7461206265747765656e2063757272656e7420626c6f636b20616e6420737461727473206174784f70656e41756374696f6e4269644279566964656f416e644d656d62657201010802026103ed087000000000000000000000000000000000000000000000000000000000045c204269647320666f72206f70656e2061756374696f6e7354476c6f62616c4461696c794e6674436f756e7465720100e10130000000000000000000000000046820476c6f62616c206461696c79204e465420636f756e7465722e58476c6f62616c5765656b6c794e6674436f756e7465720100e10130000000000000000000000000046c20476c6f62616c207765656b6c79204e465420636f756e7465722e4c476c6f62616c4461696c794e66744c696d69740100dd0130000000000000000000000000046020476c6f62616c206461696c79204e4654206c696d69742e50476c6f62616c5765656b6c794e66744c696d69740100dd0130000000000000000000000000046420476c6f62616c207765656b6c79204e4654206c696d69742e404e66744c696d697473456e61626c656401008804000868204e4654206c696d69747320656e61626c6564206f72206e6f74a02043616e206265207570646174656420696e20666c696768742062792074686520436f756e63696c01fd05018901246c4d61784e756d6265724f6643757261746f727350657247726f757010100a00000004c4204578706f72747320636f6e7374202d206d6178206e756d626572206f662063757261746f7273207065722067726f7570ac4d61784b65797350657243757261746f7247726f75705065726d697373696f6e7342794c6576656c4d6170101019000000045d01204578706f72747320636f6e7374202d206d6178206e756d626572206f66206b657973207065722063757261746f725f67726f75702e7065726d697373696f6e735f62795f6c6576656c206d617020696e7374616e6365704d61784e667441756374696f6e57686974656c6973744c656e67746810101400000004c4204578706f72747320636f6e7374202d206d6178206e66742061756374696f6e2077686974656c697374206c656e6774686844656661756c74476c6f62616c4461696c794e66744c696d6974dd013064000000000000004038000004c0204578706f72747320636f6e7374202d2064656661756c7420676c6f62616c206461696c79204e4654206c696d69742e6c44656661756c74476c6f62616c5765656b6c794e66744c696d6974dd013064000000000000004038000004c4204578706f72747320636f6e7374202d2064656661756c7420676c6f62616c207765656b6c79204e4654206c696d69742e6c44656661756c744368616e6e656c4461696c794e66744c696d6974dd013064000000000000004038000004c4204578706f72747320636f6e7374202d2064656661756c74206368616e6e656c206461696c79204e4654206c696d69742e7044656661756c744368616e6e656c5765656b6c794e66744c696d6974dd013064000000000000004038000004c8204578706f72747320636f6e7374202d2064656661756c74206368616e6e656c207765656b6c79204e4654206c696d69742e684d696e696d756d436173686f7574416c6c6f7765644c696d69741840a41a130d84010000000000000000000004a8204578706f727420636f6e7374202d206d696e20636173686f757420616c6c6f776564206c696d697473684d6178696d756d436173686f7574416c6c6f7765644c696d6974184040a640ba3e363b00000000000000000004a8204578706f727420636f6e7374202d206d617820636173686f757420616c6c6f776564206c696d69747301f1081a1c53746f72616765011c53746f726167654c4055706c6f6164696e67426c6f636b6564010088040004a020446566696e6573207768657468657220616c6c206e65772075706c6f61647320626c6f636b65641042616773010104027d02f50848000000000000000000000000000000000000044820426167732073746f72616765206d61702e4c4e65787453746f726167654275636b6574496401002020000000000000000004ac2053746f72616765206275636b657420696420636f756e7465722e20537461727473206174207a65726f2e404e657874446174614f626a656374496401002020000000000000000004a02044617461206f626a65637420696420636f756e7465722e20537461727473206174207a65726f2e4453746f726167654275636b65744279496400010402200109040004442053746f72616765206275636b6574732e24426c61636b6c6973740101040209097400048020426c61636b6c69737465642064617461206f626a656374206861736865732e5043757272656e74426c61636b6c69737453697a65010020200000000000000000047820426c61636b6c69737420636f6c6c656374696f6e20636f756e7465722e60446174614f626a6563745065724d65676162797465466565010018400000000000000000000000000000000004b02053697a652062617365642070726963696e67206f66206e6577206f626a656374732075706c6f616465642e6453746f726167654275636b6574735065724261674c696d6974010010100000000004a0202253746f72616765206275636b657473207065722062616722206e756d626572206c696d69742e68566f75636865724d61784f626a6563747353697a654c696d697401002020000000000000000004f820224d6178206f626a656374732073697a6520666f7220612073746f72616765206275636b657420766f756368657222206e756d626572206c696d69742e70566f75636865724d61784f626a656374734e756d6265724c696d697401002020000000000000000004050120224d6178206f626a65637473206e756d62657220666f7220612073746f7261676520206275636b657420766f756368657222206e756d626572206c696d69742e74446174614f626a6563745374617465426c6f6174426f6e6456616c756501001840000000000000000000000000000000000439012054686520737461746520626c6f617420626f6e6420666f72207468652064617461206f626a65637473202868656c70732070726576656e74696e672074686520737461746520626c6f6174292e6844796e616d69634261674372656174696f6e506f6c69636965730101040299020d0914000000000004c82044796e616d69634261674372656174696f6e506f6c6963792062792062616720747970652073746f72616765206d61702e3c446174614f626a65637473427949640101080202150919096c00000000000000000000000000000000000000000000000000000004b0202744617461206f626a6563747320666f722062616773272073746f7261676520646f75626c65206d61702e784e657874446973747269627574696f6e4275636b657446616d696c79496401002020000000000000000004dc20446973747269627574696f6e206275636b65742066616d696c7920696420636f756e7465722e20537461727473206174207a65726f2e70446973747269627574696f6e4275636b657446616d696c794279496401010402201d09200000000000000000047820446973747269627574696f6e206275636b65742066616d696c6965732e80446973747269627574696f6e4275636b6574427946616d696c794964427949640101080202610321093000000000000000000000000004a82027446973747269627574696f6e206275636b6574272073746f7261676520646f75626c65206d61702e78446973747269627574696f6e4275636b657446616d696c794e756d62657201002020000000000000000004f020546f74616c206e756d626572206f6620646973747269627574696f6e206275636b65742066616d696c69657320696e207468652073797374656d2e78446973747269627574696f6e4275636b6574735065724261674c696d6974010010100000000004b42022446973747269627574696f6e206275636b657473207065722062616722206e756d626572206c696d69742e012d060175022c48426c61636b6c69737453697a654c696d69742020e803000000000000040501204578706f72747320636f6e7374202d206d6178696d756d2073697a65206f662074686520226861736820626c61636b6c6973742220636f6c6c656374696f6e2e5c4d696e53746f726167654275636b65747350657242616710100300000004ec204578706f72747320636f6e7374202d206d696e696d756d206e756d626572206f662073746f72616765206275636b65747320706572206261672e5c4d617853746f726167654275636b65747350657242616710100d00000004ec204578706f72747320636f6e7374202d206d6178696d756d206e756d626572206f662073746f72616765206275636b65747320706572206261672e704d696e446973747269627574696f6e4275636b657473506572426167101001000000040101204578706f72747320636f6e7374202d206d696e696d756d206e756d626572206f6620646973747269627574696f6e206275636b65747320706572206261672e704d6178446973747269627574696f6e4275636b657473506572426167101033000000040101204578706f72747320636f6e7374202d206d6178696d756d206e756d626572206f6620646973747269627574696f6e206275636b65747320706572206261672eb444656661756c744d656d62657244796e616d69634261674e756d6265724f6653746f726167654275636b657473101005000000085101204578706f72747320636f6e7374202d207468652064656661756c742064796e616d696320626167206372656174696f6e20706f6c69637920666f72206d656d62657273202873746f72616765206275636b657424206e756d626572292eb844656661756c744368616e6e656c44796e616d69634261674e756d6265724f6653746f726167654275636b657473101005000000085501204578706f72747320636f6e7374202d207468652064656661756c742064796e616d696320626167206372656174696f6e20706f6c69637920666f72206368616e6e656c73202873746f72616765206275636b657424206e756d626572292e844d6178446973747269627574696f6e4275636b657446616d696c794e756d6265722020c80000000000000004fc204578706f72747320636f6e7374202d206d617820616c6c6f77656420646973747269627574696f6e206275636b65742066616d696c79206e756d6265722ec84d61784e756d6265724f6650656e64696e67496e7669746174696f6e73506572446973747269627574696f6e4275636b6574101014000000042d01204578706f72747320636f6e7374202d206d6178206e756d626572206f662070656e64696e6720696e7669746174696f6e732070657220646973747269627574696f6e206275636b65742ea44d61784e756d6265724f664f70657261746f7273506572446973747269627574696f6e4275636b6574101014000000040501204578706f72747320636f6e7374202d206d6178206e756d626572206f66206f70657261746f72732070657220646973747269627574696f6e206275636b65742e444d6178446174614f626a65637453697a652020000000000f00000004bc204578706f72747320636f6e7374202d206d61782064617461206f626a6563742073697a6520696e2062797465732e012d091b3050726f6a656374546f6b656e0114546f6b656e246c4163636f756e74496e666f4279546f6b656e416e644d656d626572010108020261033109b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041d0120446f75626c65206d617020546f6b656e49642078204d656d6265724964203d3e204163636f756e744461746120666f72206d616e6167696e67206163636f756e74206461746134546f6b656e496e666f4279496401010402205909cd010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004dc206d617020546f6b656e4964203d3e20546f6b656e4461746120746f20726574726965766520746f6b656e20696e666f726d6174696f6e2c4e657874546f6b656e4964010020200000000000000000043c20546f6b656e204964206e6f6e63652c53796d626f6c735573656401010402247400046c2053657420666f722074686520746f6b656e732073796d626f6c7324426c6f6174426f6e64010018400000000000000000000000000000000004b820426c6f617420426f6e642076616c7565207573656420647572696e67206163636f756e74206372656174696f6e3c4d696e53616c654475726174696f6e01001010000000000484204d696e696d756d206475726174696f6e206f66206120746f6b656e2073616c655c4d696e526576656e756553706c69744475726174696f6e010010100000000004a8204d696e696d756d20726576656e75652073706c6974206475726174696f6e20636f6e73747261696e74684d696e526576656e756553706c697454696d65546f5374617274010010100000000004bc204d696e696d756d20726576656e75652073706c69742074696d6520746f20737461727420636f6e73747261696e743c53616c65506c6174666f726d4665650100bd021000000000044d0120506c6174666f726d20666565202870657263656e74616765292063686172676564206f6e20746f70206f6620656163682073616c652070757263686173652028696e204a4f592920616e64206275726e656401310601a902000175091c3c50726f706f73616c73456e67696e65013850726f706f73616c456e67696e65142450726f706f73616c73010104021079090101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460204d61702070726f706f73616c206279206974732069642e3450726f706f73616c436f756e74010010100000000004bc20436f756e74206f6620616c6c2070726f706f73616c7320746861742068617665206265656e20637265617465642e50446973706174636861626c6543616c6c436f646501010402108509040004b4204d61702070726f706f73616c2065786563757461626c6520636f64652062792070726f706f73616c2069642e4c41637469766550726f706f73616c436f756e740100101000000000046c20436f756e74206f66206163746976652070726f706f73616c732e6c566f7465457869737473427950726f706f73616c4279566f746572010108020289092503040104290120446f75626c65206d617020666f722070726576656e74696e67206475706c696361746520766f7465732e2053686f756c6420626520636c65616e65642061667465722075736167652e015906011103183c43616e63656c6c6174696f6e4665651840aa821bce260000000000000000000000047901204578706f72747320636f6e7374202d2074686520666565206973206170706c696564207768656e2063616e63656c207468652070726f706f73616c2e20412066656520776f756c6420626520736c617368656420286275726e6564292e3052656a656374696f6e4665651840528d8906c20000000000000000000000084501204578706f72747320636f6e7374202d202074686520666565206973206170706c696564207768656e207468652070726f706f73616c20676574732072656a65637465642e20412066656520776f756c645420626520736c617368656420286275726e6564292e385469746c654d61784c656e67746810102800000004d0204578706f72747320636f6e7374202d20206d617820616c6c6f7765642070726f706f73616c207469746c65206c656e6774682e504465736372697074696f6e4d61784c656e6774681010b80b000004e8204578706f72747320636f6e7374202d20206d617820616c6c6f7765642070726f706f73616c206465736372697074696f6e206c656e6774682e584d617841637469766550726f706f73616c4c696d697410101400000004ec204578706f72747320636f6e7374202d20206d61782073696d756c74616e656f7573206163746976652070726f706f73616c73206e756d6265722e505374616b696e6748616e646c65724c6f636b496409042070726f706f73616c04a4204578706f72747320636f6e7374202d207374616b696e672068616e646c6572206c6f636b2069642e018d091d4c50726f706f73616c7344697363757373696f6e014850726f706f73616c44697363757373696f6e10285468726561644279496401010402209109340000000000000000000000000004bc204d617020746872656164206964656e74696669657220746f20636f72726573706f6e64696e67207468726561642e2c546872656164436f756e7401002020000000000000000004b420436f756e74206f6620616c6c207468726561647320746861742068617665206265656e20637265617465642e50506f737454687265616449644279506f73744964010108020261039d0974000000000000000000000000000000000000000000000000000000000004c4204d61702074687265616420696420616e6420706f737420696420746f20636f72726573706f6e64696e6720706f73742e24506f7374436f756e7401002020000000000000000004ac20436f756e74206f6620616c6c20706f73747320746861742068617665206265656e20637265617465642e015d060129030c404d617857686974654c69737453697a65101014000000040901204578706f72747320636f6e7374202d20617574686f72206c6973742073697a65206c696d697420666f722074686520436c6f7365642064697363757373696f6e2e2c506f73744465706f736974184092ef216e00000000000000000000000004a0204578706f72747320636f6e7374202d2066656520666f72206372656174696e67206120706f737430506f73744c69666554696d65101058020000043d01204578706f72747320636f6e7374202d206d6178696d756d206e756d626572206f6620626c6f636b73206265666f7265206120706f73742063616e2062652065726173656420627920616e796f6e6501a1091e3850726f706f73616c73436f646578013850726f706f73616c73436f64657804505468726561644964427950726f706f73616c496401010402102020000000000000000004b0204d61702070726f706f73616c20696420746f206974732064697363757373696f6e2074687265616420696401610601310368985365744d617856616c696461746f72436f756e7450726f706f73616c506172616d65746572737d09b4c0890100401901006400000064000000640000006400000001a010a012d3eb050000000000000000000300000004dc204578706f7274732027536574204d61782056616c696461746f7220436f756e74272070726f706f73616c20706172616d65746572732e8052756e74696d655570677261646550726f706f73616c506172616d65746572737d09b4c0890100401901006400000064000000640000006400000001a010a012d3eb050000000000000000000400000004bc204578706f727473202752756e74696d652055706772616465272070726f706f73616c20706172616d65746572732e605369676e616c50726f706f73616c506172616d65746572737d09b4c0a80000b004000064000000640000006400000064000000011068761b959700000000000000000000010000000498204578706f72747320275369676e616c272070726f706f73616c20706172616d65746572732e8046756e64696e675265717565737450726f706f73616c506172616d65746572737d09b4c0a80000b00400004200000042000000640000006400000001a41a130d8401000000000000000000000100000004bc204578706f727473202746756e64696e672052657175657374272070726f706f73616c20706172616d65746572732ebc437265617465576f726b696e6747726f75704c6561644f70656e696e6750726f706f73616c506172616d65746572737d09b4c0a80000b00400004200000042000000640000006400000001680abf82280f0000000000000000000001000000040501204578706f727473202743726561746520576f726b696e672047726f7570204c656164204f70656e696e67272070726f706f73616c20706172616d65746572732ea446696c6c576f726b696e6747726f75704f70656e696e6750726f706f73616c506172616d65746572737d09b4c0a80000b0040000420000004200000064000000640000000134855f419407000000000000000000000100000004fc204578706f727473202746696c6c20576f726b696e672047726f7570204c656164204f70656e696e67272070726f706f73616c20706172616d65746572732ea8557064617465576f726b696e6747726f757042756467657450726f706f73616c506172616d65746572737d09b4c0a80000b0040000420000004200000064000000640000000134855f419407000000000000000000000100000004ec204578706f727473202755706461746520576f726b696e672047726f757020427564676574272070726f706f73616c20706172616d65746572732ebc4465637265617365576f726b696e6747726f75704c6561645374616b6550726f706f73616c506172616d65746572737d09b4c0a80000b0040000640000006400000064000000640000000134855f4194070000000000000000000001000000040501204578706f7274732027446563726561736520576f726b696e672047726f7570204c656164205374616b65272070726f706f73616c20706172616d65746572732e9c536c617368576f726b696e6747726f75704c65616450726f706f73616c506172616d65746572737d09b4c0a80000b0040000420000004200000064000000640000000134855f419407000000000000000000000100000004e0204578706f7274732027536c61736820576f726b696e672047726f7570204c656164272070726f706f73616c20706172616d65746572732eac536574576f726b696e6747726f75704c65616452657761726450726f706f73616c506172616d65746572737d09b4c0a80000b0040000420000004200000064000000640000000134855f419407000000000000000000000100000004f4204578706f727473202753657420576f726b696e672047726f7570204c65616420526577617264272070726f706f73616c20706172616d65746572732eac5465726d696e617465576f726b696e6747726f75704c65616450726f706f73616c506172616d65746572737d09b4c0a80000b0040000420000004200000064000000640000000134855f419407000000000000000000000100000004f0204578706f72747320275465726d696e61746520576f726b696e672047726f7570204c656164272070726f706f73616c20706172616d65746572732e8c416d656e64436f6e737469747574696f6e50726f706f73616c506172616d65746572737d09b4081a01004038000050000000640000003c0000005000000001680abf82280f000000000000000000000200000004c8204578706f7274732027416d656e6420436f6e737469747574696f6e272070726f706f73616c20706172616d65746572732ebc43616e63656c576f726b696e6747726f75704c6561644f70656e696e6750726f706f73616c506172616d65746572737d09b4c0a80000b0040000420000004200000064000000640000000134855f4194070000000000000000000001000000040501204578706f727473202743616e63656c20576f726b696e672047726f7570204c656164204f70656e696e67272070726f706f73616c20706172616d65746572732e905365744d656d62657273686970507269636550726f706f73616c506172616d65746572737d09b4c0a80000b0040000420000004200000064000000640000000134855f419407000000000000000000000100000004d0204578706f7274732027536574204d656d62657273686970205072696365272070726f706f73616c20706172616d65746572732eac536574436f756e63696c427564676574496e6372656d656e7450726f706f73616c506172616d65746572737d09b44019010040190100640000006400000064000000640000000120d0ec362a2f010000000000000000000300000004f0204578706f727473206053657420436f756e63696c2042756467657420496e6372656d656e74602070726f706f73616c20706172616d65746572732e90536574436f756e63696c6f7252657761726450726f706f73616c506172616d65746572737d09b480700000c0a80000640000006400000064000000640000000120d0ec362a2f0100000000000000000002000000042101204578706f727473206053657420436f756e63696c6f72205265776172642050726f706f73616c20506172616d6574657273602070726f706f73616c20706172616d65746572732eb4536574496e697469616c496e7669746174696f6e42616c616e636550726f706f73616c506172616d65746572737d09b480700000b00400004200000042000000640000006400000001d0147e05511e000000000000000000000100000004f8204578706f727473206053657420496e697469616c20496e7669746174696f6e2042616c616e6365602070726f706f73616c20706172616d65746572732e90536574496e7669746174696f6e436f756e7450726f706f73616c506172616d65746572737d09b4c0a80000b0040000420000004200000064000000640000000134855f419407000000000000000000000100000000c85365744d656d626572736869704c656164496e7669746174696f6e51756f746150726f706f73616c506172616d65746572737d09b4c0a80000b0040000420000004200000064000000640000000134855f41940700000000000000000000010000000080536574526566657272616c43757450726f706f73616c506172616d65746572737d09b4c0a80000b0040000420000004200000064000000640000000134855f419407000000000000000000000100000000785665746f50726f706f73616c50726f706f73616c506172616d65746572737d09b4403800000000000064000000640000006400000064000000011068761b959700000000000000000000010000000098557064617465476c6f62616c4e66744c696d697450726f706f73616c506172616d65746572737d09b480700000b00400004200000042000000640000006400000001680abf82280f000000000000000000000100000000985570646174654368616e6e656c5061796f75747350726f706f73616c506172616d65746572737d09b4c0890100403800004200000064000000640000006400000001680abf82280f0000000000000000000001000000009046756e64696e675265717565737450726f706f73616c4d6178546f74616c416d6f756e741840a010a012d3eb0500000000000000000004c4204d6178696d756d20746f74616c20616d6f756e7420696e2066756e64696e6720726571756573742070726f706f73616c8446756e64696e675265717565737450726f706f73616c4d61784163636f756e747310101400000004d0204d6178206e756d626572206f66206163636f756e7473207065722066756e64696e6720726571756573742070726f706f73616ca45365744d617856616c696461746f72436f756e7450726f706f73616c4d617856616c696461746f7273101064000000041501204d617820616c6c6f776564206e756d626572206f662076616c696461746f727320696e20736574206d61782076616c696461746f7220636f756e742070726f706f73616c01a5091f44466f72756d576f726b696e6747726f75700154496e7374616e636531576f726b696e6747726f757028344e6578744f70656e696e67496401002020000000000000000004ac204e657874206964656e7469666965722076616c756520666f72206e6577206a6f62206f70656e696e672e2c4f70656e696e67427949640101040220a909290101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000480204d617073206964656e74696669657220746f206a6f62206f70656e696e672e44416374697665576f726b6572436f756e740100101000000000046420436f756e74206f662061637469766520776f726b6572732e3c4170706c69636174696f6e427949640001040220ad09040004c8204d617073206964656e74696669657220746f20776f726b6572206170706c69636174696f6e206f6e206f70656e696e672e444e6578744170706c69636174696f6e496401002020000000000000000004c8204e657874206964656e7469666965722076616c756520666f72206e657720776f726b6572206170706c69636174696f6e2e304e657874576f726b657249640100202000000000000000000488204e657874206964656e74696669657220666f722061206e657720776f726b65722e28576f726b6572427949640001040220b109040004a4204d617073206964656e74696669657220746f20636f72726573706f6e64696e6720776f726b65722e2c43757272656e744c656164000020040004502043757272656e742067726f7570206c6561642e18427564676574010018400000000000000000000000000000000004782042756467657420666f722074686520776f726b696e672067726f75702e385374617475735465787448617368010024800000000000000000000000000000000000000000000000000000000000000000044820537461747573207465787420686173682e01650601550318504d6178576f726b65724e756d6265724c696d697410101e0000000838204578706f72747320636f6e73749c204d61782073696d756c74616e656f75732061637469766520776f726b6572206e756d6265722e5c4d696e556e7374616b696e67506572696f644c696d697410100065040004ac20446566696e6573206d696e20756e7374616b696e6720706572696f6420696e207468652067726f75702e5c4d696e696d756d4170706c69636174696f6e5374616b6518404835261a08030000000000000000000004d4204d696e696d756d207374616b6520726571756972656420666f72206170706c79696e6720696e746f20616e206f70656e696e672e484c65616465724f70656e696e675374616b651840680abf82280f00000000000000000000048c205374616b65206e656564656420746f2063726561746520616e206f70656e696e672e30526577617264506572696f6410104a38000004d420446566696e65732074686520706572696f6420657665727920776f726b65722067657473207061696420696e20626c6f636b732e505374616b696e6748616e646c65724c6f636b496409042077672d666f72756d0464205374616b696e672068616e646c6572206c6f636b2069642e01b509204c53746f72616765576f726b696e6747726f75700154496e7374616e636532576f726b696e6747726f757028344e6578744f70656e696e67496401002020000000000000000004ac204e657874206964656e7469666965722076616c756520666f72206e6577206a6f62206f70656e696e672e2c4f70656e696e67427949640101040220a909290101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000480204d617073206964656e74696669657220746f206a6f62206f70656e696e672e44416374697665576f726b6572436f756e740100101000000000046420436f756e74206f662061637469766520776f726b6572732e3c4170706c69636174696f6e427949640001040220ad09040004c8204d617073206964656e74696669657220746f20776f726b6572206170706c69636174696f6e206f6e206f70656e696e672e444e6578744170706c69636174696f6e496401002020000000000000000004c8204e657874206964656e7469666965722076616c756520666f72206e657720776f726b6572206170706c69636174696f6e2e304e657874576f726b657249640100202000000000000000000488204e657874206964656e74696669657220666f722061206e657720776f726b65722e28576f726b6572427949640001040220b109040004a4204d617073206964656e74696669657220746f20636f72726573706f6e64696e6720776f726b65722e2c43757272656e744c656164000020040004502043757272656e742067726f7570206c6561642e18427564676574010018400000000000000000000000000000000004782042756467657420666f722074686520776f726b696e672067726f75702e385374617475735465787448617368010024800000000000000000000000000000000000000000000000000000000000000000044820537461747573207465787420686173682e01690601790318504d6178576f726b65724e756d6265724c696d697410101e0000000838204578706f72747320636f6e73749c204d61782073696d756c74616e656f75732061637469766520776f726b6572206e756d6265722e5c4d696e556e7374616b696e67506572696f644c696d697410100065040004ac20446566696e6573206d696e20756e7374616b696e6720706572696f6420696e207468652067726f75702e5c4d696e696d756d4170706c69636174696f6e5374616b6518404835261a08030000000000000000000004d4204d696e696d756d207374616b6520726571756972656420666f72206170706c79696e6720696e746f20616e206f70656e696e672e484c65616465724f70656e696e675374616b651840680abf82280f00000000000000000000048c205374616b65206e656564656420746f2063726561746520616e206f70656e696e672e30526577617264506572696f6410105438000004d420446566696e65732074686520706572696f6420657665727920776f726b65722067657473207061696420696e20626c6f636b732e505374616b696e6748616e646c65724c6f636b496409042077672d73746f72670464205374616b696e672068616e646c6572206c6f636b2069642e01b909214c436f6e74656e74576f726b696e6747726f75700154496e7374616e636533576f726b696e6747726f757028344e6578744f70656e696e67496401002020000000000000000004ac204e657874206964656e7469666965722076616c756520666f72206e6577206a6f62206f70656e696e672e2c4f70656e696e67427949640101040220a909290101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000480204d617073206964656e74696669657220746f206a6f62206f70656e696e672e44416374697665576f726b6572436f756e740100101000000000046420436f756e74206f662061637469766520776f726b6572732e3c4170706c69636174696f6e427949640001040220ad09040004c8204d617073206964656e74696669657220746f20776f726b6572206170706c69636174696f6e206f6e206f70656e696e672e444e6578744170706c69636174696f6e496401002020000000000000000004c8204e657874206964656e7469666965722076616c756520666f72206e657720776f726b6572206170706c69636174696f6e2e304e657874576f726b657249640100202000000000000000000488204e657874206964656e74696669657220666f722061206e657720776f726b65722e28576f726b6572427949640001040220b109040004a4204d617073206964656e74696669657220746f20636f72726573706f6e64696e6720776f726b65722e2c43757272656e744c656164000020040004502043757272656e742067726f7570206c6561642e18427564676574010018400000000000000000000000000000000004782042756467657420666f722074686520776f726b696e672067726f75702e385374617475735465787448617368010024800000000000000000000000000000000000000000000000000000000000000000044820537461747573207465787420686173682e016d0601810318504d6178576f726b65724e756d6265724c696d697410101e0000000838204578706f72747320636f6e73749c204d61782073696d756c74616e656f75732061637469766520776f726b6572206e756d6265722e5c4d696e556e7374616b696e67506572696f644c696d697410100065040004ac20446566696e6573206d696e20756e7374616b696e6720706572696f6420696e207468652067726f75702e5c4d696e696d756d4170706c69636174696f6e5374616b6518404835261a08030000000000000000000004d4204d696e696d756d207374616b6520726571756972656420666f72206170706c79696e6720696e746f20616e206f70656e696e672e484c65616465724f70656e696e675374616b651840680abf82280f00000000000000000000048c205374616b65206e656564656420746f2063726561746520616e206f70656e696e672e30526577617264506572696f6410105e38000004d420446566696e65732074686520706572696f6420657665727920776f726b65722067657473207061696420696e20626c6f636b732e505374616b696e6748616e646c65724c6f636b496409042077672d636f6e74740464205374616b696e672068616e646c6572206c6f636b2069642e01bd09226c4f7065726174696f6e73576f726b696e6747726f7570416c7068610154496e7374616e636534576f726b696e6747726f757028344e6578744f70656e696e67496401002020000000000000000004ac204e657874206964656e7469666965722076616c756520666f72206e6577206a6f62206f70656e696e672e2c4f70656e696e67427949640101040220a909290101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000480204d617073206964656e74696669657220746f206a6f62206f70656e696e672e44416374697665576f726b6572436f756e740100101000000000046420436f756e74206f662061637469766520776f726b6572732e3c4170706c69636174696f6e427949640001040220ad09040004c8204d617073206964656e74696669657220746f20776f726b6572206170706c69636174696f6e206f6e206f70656e696e672e444e6578744170706c69636174696f6e496401002020000000000000000004c8204e657874206964656e7469666965722076616c756520666f72206e657720776f726b6572206170706c69636174696f6e2e304e657874576f726b657249640100202000000000000000000488204e657874206964656e74696669657220666f722061206e657720776f726b65722e28576f726b6572427949640001040220b109040004a4204d617073206964656e74696669657220746f20636f72726573706f6e64696e6720776f726b65722e2c43757272656e744c656164000020040004502043757272656e742067726f7570206c6561642e18427564676574010018400000000000000000000000000000000004782042756467657420666f722074686520776f726b696e672067726f75702e385374617475735465787448617368010024800000000000000000000000000000000000000000000000000000000000000000044820537461747573207465787420686173682e01710601890318504d6178576f726b65724e756d6265724c696d697410101e0000000838204578706f72747320636f6e73749c204d61782073696d756c74616e656f75732061637469766520776f726b6572206e756d6265722e5c4d696e556e7374616b696e67506572696f644c696d697410100065040004ac20446566696e6573206d696e20756e7374616b696e6720706572696f6420696e207468652067726f75702e5c4d696e696d756d4170706c69636174696f6e5374616b6518404835261a08030000000000000000000004d4204d696e696d756d207374616b6520726571756972656420666f72206170706c79696e6720696e746f20616e206f70656e696e672e484c65616465724f70656e696e675374616b651840680abf82280f00000000000000000000048c205374616b65206e656564656420746f2063726561746520616e206f70656e696e672e30526577617264506572696f6410107c38000004d420446566696e65732074686520706572696f6420657665727920776f726b65722067657473207061696420696e20626c6f636b732e505374616b696e6748616e646c65724c6f636b496409042077672d6f706572610464205374616b696e672068616e646c6572206c6f636b2069642e01c109233c417070576f726b696e6747726f75700154496e7374616e636535576f726b696e6747726f757028344e6578744f70656e696e67496401002020000000000000000004ac204e657874206964656e7469666965722076616c756520666f72206e6577206a6f62206f70656e696e672e2c4f70656e696e67427949640101040220a909290101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000480204d617073206964656e74696669657220746f206a6f62206f70656e696e672e44416374697665576f726b6572436f756e740100101000000000046420436f756e74206f662061637469766520776f726b6572732e3c4170706c69636174696f6e427949640001040220ad09040004c8204d617073206964656e74696669657220746f20776f726b6572206170706c69636174696f6e206f6e206f70656e696e672e444e6578744170706c69636174696f6e496401002020000000000000000004c8204e657874206964656e7469666965722076616c756520666f72206e657720776f726b6572206170706c69636174696f6e2e304e657874576f726b657249640100202000000000000000000488204e657874206964656e74696669657220666f722061206e657720776f726b65722e28576f726b6572427949640001040220b109040004a4204d617073206964656e74696669657220746f20636f72726573706f6e64696e6720776f726b65722e2c43757272656e744c656164000020040004502043757272656e742067726f7570206c6561642e18427564676574010018400000000000000000000000000000000004782042756467657420666f722074686520776f726b696e672067726f75702e385374617475735465787448617368010024800000000000000000000000000000000000000000000000000000000000000000044820537461747573207465787420686173682e01750601910318504d6178576f726b65724e756d6265724c696d697410101e0000000838204578706f72747320636f6e73749c204d61782073696d756c74616e656f75732061637469766520776f726b6572206e756d6265722e5c4d696e556e7374616b696e67506572696f644c696d697410100065040004ac20446566696e6573206d696e20756e7374616b696e6720706572696f6420696e207468652067726f75702e5c4d696e696d756d4170706c69636174696f6e5374616b6518404835261a08030000000000000000000004d4204d696e696d756d207374616b6520726571756972656420666f72206170706c79696e6720696e746f20616e206f70656e696e672e484c65616465724f70656e696e675374616b651840680abf82280f00000000000000000000048c205374616b65206e656564656420746f2063726561746520616e206f70656e696e672e30526577617264506572696f6410107238000004d420446566696e65732074686520706572696f6420657665727920776f726b65722067657473207061696420696e20626c6f636b732e505374616b696e6748616e646c65724c6f636b496409042077672d6170706c690464205374616b696e672068616e646c6572206c6f636b2069642e01c50924584d656d62657273686970576f726b696e6747726f75700154496e7374616e636536576f726b696e6747726f757028344e6578744f70656e696e67496401002020000000000000000004ac204e657874206964656e7469666965722076616c756520666f72206e6577206a6f62206f70656e696e672e2c4f70656e696e67427949640101040220a909290101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000480204d617073206964656e74696669657220746f206a6f62206f70656e696e672e44416374697665576f726b6572436f756e740100101000000000046420436f756e74206f662061637469766520776f726b6572732e3c4170706c69636174696f6e427949640001040220ad09040004c8204d617073206964656e74696669657220746f20776f726b6572206170706c69636174696f6e206f6e206f70656e696e672e444e6578744170706c69636174696f6e496401002020000000000000000004c8204e657874206964656e7469666965722076616c756520666f72206e657720776f726b6572206170706c69636174696f6e2e304e657874576f726b657249640100202000000000000000000488204e657874206964656e74696669657220666f722061206e657720776f726b65722e28576f726b6572427949640001040220b109040004a4204d617073206964656e74696669657220746f20636f72726573706f6e64696e6720776f726b65722e2c43757272656e744c656164000020040004502043757272656e742067726f7570206c6561642e18427564676574010018400000000000000000000000000000000004782042756467657420666f722074686520776f726b696e672067726f75702e385374617475735465787448617368010024800000000000000000000000000000000000000000000000000000000000000000044820537461747573207465787420686173682e01790601990318504d6178576f726b65724e756d6265724c696d697410101e0000000838204578706f72747320636f6e73749c204d61782073696d756c74616e656f75732061637469766520776f726b6572206e756d6265722e5c4d696e556e7374616b696e67506572696f644c696d697410100065040004ac20446566696e6573206d696e20756e7374616b696e6720706572696f6420696e207468652067726f75702e5c4d696e696d756d4170706c69636174696f6e5374616b6518404835261a08030000000000000000000004d4204d696e696d756d207374616b6520726571756972656420666f72206170706c79696e6720696e746f20616e206f70656e696e672e484c65616465724f70656e696e675374616b651840680abf82280f00000000000000000000048c205374616b65206e656564656420746f2063726561746520616e206f70656e696e672e30526577617264506572696f6410106838000004d420446566696e65732074686520706572696f6420657665727920776f726b65722067657473207061696420696e20626c6f636b732e505374616b696e6748616e646c65724c6f636b496409042077672d6d656d62720464205374616b696e672068616e646c6572206c6f636b2069642e01c90925684f7065726174696f6e73576f726b696e6747726f7570426574610154496e7374616e636537576f726b696e6747726f757028344e6578744f70656e696e67496401002020000000000000000004ac204e657874206964656e7469666965722076616c756520666f72206e6577206a6f62206f70656e696e672e2c4f70656e696e67427949640101040220a909290101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000480204d617073206964656e74696669657220746f206a6f62206f70656e696e672e44416374697665576f726b6572436f756e740100101000000000046420436f756e74206f662061637469766520776f726b6572732e3c4170706c69636174696f6e427949640001040220ad09040004c8204d617073206964656e74696669657220746f20776f726b6572206170706c69636174696f6e206f6e206f70656e696e672e444e6578744170706c69636174696f6e496401002020000000000000000004c8204e657874206964656e7469666965722076616c756520666f72206e657720776f726b6572206170706c69636174696f6e2e304e657874576f726b657249640100202000000000000000000488204e657874206964656e74696669657220666f722061206e657720776f726b65722e28576f726b6572427949640001040220b109040004a4204d617073206964656e74696669657220746f20636f72726573706f6e64696e6720776f726b65722e2c43757272656e744c656164000020040004502043757272656e742067726f7570206c6561642e18427564676574010018400000000000000000000000000000000004782042756467657420666f722074686520776f726b696e672067726f75702e385374617475735465787448617368010024800000000000000000000000000000000000000000000000000000000000000000044820537461747573207465787420686173682e017d0601a10318504d6178576f726b65724e756d6265724c696d697410101e0000000838204578706f72747320636f6e73749c204d61782073696d756c74616e656f75732061637469766520776f726b6572206e756d6265722e5c4d696e556e7374616b696e67506572696f644c696d697410100065040004ac20446566696e6573206d696e20756e7374616b696e6720706572696f6420696e207468652067726f75702e5c4d696e696d756d4170706c69636174696f6e5374616b6518404835261a08030000000000000000000004d4204d696e696d756d207374616b6520726571756972656420666f72206170706c79696e6720696e746f20616e206f70656e696e672e484c65616465724f70656e696e675374616b651840680abf82280f00000000000000000000048c205374616b65206e656564656420746f2063726561746520616e206f70656e696e672e30526577617264506572696f6410108638000004d420446566696e65732074686520706572696f6420657665727920776f726b65722067657473207061696420696e20626c6f636b732e505374616b696e6748616e646c65724c6f636b496409042077672d6f706572620464205374616b696e672068616e646c6572206c6f636b2069642e01cd09266c4f7065726174696f6e73576f726b696e6747726f757047616d6d610154496e7374616e636538576f726b696e6747726f757028344e6578744f70656e696e67496401002020000000000000000004ac204e657874206964656e7469666965722076616c756520666f72206e6577206a6f62206f70656e696e672e2c4f70656e696e67427949640101040220a909290101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000480204d617073206964656e74696669657220746f206a6f62206f70656e696e672e44416374697665576f726b6572436f756e740100101000000000046420436f756e74206f662061637469766520776f726b6572732e3c4170706c69636174696f6e427949640001040220ad09040004c8204d617073206964656e74696669657220746f20776f726b6572206170706c69636174696f6e206f6e206f70656e696e672e444e6578744170706c69636174696f6e496401002020000000000000000004c8204e657874206964656e7469666965722076616c756520666f72206e657720776f726b6572206170706c69636174696f6e2e304e657874576f726b657249640100202000000000000000000488204e657874206964656e74696669657220666f722061206e657720776f726b65722e28576f726b6572427949640001040220b109040004a4204d617073206964656e74696669657220746f20636f72726573706f6e64696e6720776f726b65722e2c43757272656e744c656164000020040004502043757272656e742067726f7570206c6561642e18427564676574010018400000000000000000000000000000000004782042756467657420666f722074686520776f726b696e672067726f75702e385374617475735465787448617368010024800000000000000000000000000000000000000000000000000000000000000000044820537461747573207465787420686173682e01810601a90318504d6178576f726b65724e756d6265724c696d697410101e0000000838204578706f72747320636f6e73749c204d61782073696d756c74616e656f75732061637469766520776f726b6572206e756d6265722e5c4d696e556e7374616b696e67506572696f644c696d697410100065040004ac20446566696e6573206d696e20756e7374616b696e6720706572696f6420696e207468652067726f75702e5c4d696e696d756d4170706c69636174696f6e5374616b6518404835261a08030000000000000000000004d4204d696e696d756d207374616b6520726571756972656420666f72206170706c79696e6720696e746f20616e206f70656e696e672e484c65616465724f70656e696e675374616b651840680abf82280f00000000000000000000048c205374616b65206e656564656420746f2063726561746520616e206f70656e696e672e30526577617264506572696f6410109038000004d420446566696e65732074686520706572696f6420657665727920776f726b65722067657473207061696420696e20626c6f636b732e505374616b696e6748616e646c65724c6f636b496409042077672d6f706572670464205374616b696e672068616e646c6572206c6f636b2069642e01d1092760446973747269627574696f6e576f726b696e6747726f75700154496e7374616e636539576f726b696e6747726f757028344e6578744f70656e696e67496401002020000000000000000004ac204e657874206964656e7469666965722076616c756520666f72206e6577206a6f62206f70656e696e672e2c4f70656e696e67427949640101040220a909290101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000480204d617073206964656e74696669657220746f206a6f62206f70656e696e672e44416374697665576f726b6572436f756e740100101000000000046420436f756e74206f662061637469766520776f726b6572732e3c4170706c69636174696f6e427949640001040220ad09040004c8204d617073206964656e74696669657220746f20776f726b6572206170706c69636174696f6e206f6e206f70656e696e672e444e6578744170706c69636174696f6e496401002020000000000000000004c8204e657874206964656e7469666965722076616c756520666f72206e657720776f726b6572206170706c69636174696f6e2e304e657874576f726b657249640100202000000000000000000488204e657874206964656e74696669657220666f722061206e657720776f726b65722e28576f726b6572427949640001040220b109040004a4204d617073206964656e74696669657220746f20636f72726573706f6e64696e6720776f726b65722e2c43757272656e744c656164000020040004502043757272656e742067726f7570206c6561642e18427564676574010018400000000000000000000000000000000004782042756467657420666f722074686520776f726b696e672067726f75702e385374617475735465787448617368010024800000000000000000000000000000000000000000000000000000000000000000044820537461747573207465787420686173682e01850601b10318504d6178576f726b65724e756d6265724c696d697410101e0000000838204578706f72747320636f6e73749c204d61782073696d756c74616e656f75732061637469766520776f726b6572206e756d6265722e5c4d696e556e7374616b696e67506572696f644c696d697410100065040004ac20446566696e6573206d696e20756e7374616b696e6720706572696f6420696e207468652067726f75702e5c4d696e696d756d4170706c69636174696f6e5374616b6518404835261a08030000000000000000000004d4204d696e696d756d207374616b6520726571756972656420666f72206170706c79696e6720696e746f20616e206f70656e696e672e484c65616465724f70656e696e675374616b651840680abf82280f00000000000000000000048c205374616b65206e656564656420746f2063726561746520616e206f70656e696e672e30526577617264506572696f6410109a38000004d420446566696e65732074686520706572696f6420657665727920776f726b65722067657473207061696420696e20626c6f636b732e505374616b696e6748616e646c65724c6f636b496409042077672d64697374720464205374616b696e672068616e646c6572206c6f636b2069642e01d50928d909042048436865636b4e6f6e5a65726f53656e646572ed097440436865636b5370656356657273696f6ef1091038436865636b547856657273696f6ef5091030436865636b47656e65736973f9092438436865636b4d6f7274616c697479fd092428436865636b4e6f6e6365050a742c436865636b576569676874090a74604368617267655472616e73616374696f6e5061796d656e740d0a74110a","id":"1"} \ No newline at end of file +{"jsonrpc":"2.0","result":"0x6d6574610e050a000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f0814496e64657801102c4163636f756e74446174610114001401146e6f6e6365100114496e646578000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e7444617461000010000005050014083c70616c6c65745f62616c616e6365732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500012c6d6973635f66726f7a656e18011c42616c616e63650001286665655f66726f7a656e18011c42616c616e636500001800000507001c0c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540120000c01186e6f726d616c2001045400012c6f7065726174696f6e616c200104540001246d616e6461746f7279200104540000200c2873705f77656967687473247765696768745f76321857656967687400000801207265665f74696d6524010c75363400012870726f6f665f73697a6524010c75363400002400000628002800000506002c083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d000030000002080034102873705f72756e74696d651c67656e65726963186469676573741844696765737400000401106c6f677338013c5665633c4469676573744974656d3e0000380000023c003c102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0001142850726552756e74696d650800400144436f6e73656e737573456e67696e654964000030011c5665633c75383e00060024436f6e73656e7375730800400144436f6e73656e737573456e67696e654964000030011c5665633c75383e000400105365616c0800400144436f6e73656e737573456e67696e654964000030011c5665633c75383e000500144f74686572040030011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e745570646174656400080000400000030400000008004400000248004808306672616d655f73797374656d2c4576656e745265636f7264080445014c0454012c000c01147068617365d103011450686173650001146576656e744c010445000118746f70696373d50301185665633c543e00004c08586a6f7973747265616d5f6e6f64655f72756e74696d653052756e74696d654576656e7400018c1853797374656d04005001706672616d655f73797374656d3a3a4576656e743c52756e74696d653e0000001c5574696c69747904007401607375627374726174655f7574696c6974793a3a4576656e740001002042616c616e636573040080017c70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e000500485472616e73616374696f6e5061796d656e7404008801a870616c6c65745f7472616e73616374696f6e5f7061796d656e743a3a4576656e743c52756e74696d653e00060068456c656374696f6e50726f76696465724d756c7469506861736504008c01d070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173653a3a4576656e743c52756e74696d653e0007001c5374616b696e670400a8017870616c6c65745f7374616b696e673a3a4576656e743c52756e74696d653e0008001c53657373696f6e0400bc015470616c6c65745f73657373696f6e3a3a4576656e740009001c4772616e6470610400c0015470616c6c65745f6772616e6470613a3a4576656e74000b0020496d4f6e6c696e650400d4018070616c6c65745f696d5f6f6e6c696e653a3a4576656e743c52756e74696d653e000d00204f6666656e6365730400f8015870616c6c65745f6f6666656e6365733a3a4576656e74000e0020426167734c69737404000101018070616c6c65745f626167735f6c6973743a3a4576656e743c52756e74696d653e0010001c56657374696e6704000501017870616c6c65745f76657374696e673a3a4576656e743c52756e74696d653e001100204d756c746973696704000901017c70616c6c65745f6d756c74697369673a3a4576656e743c52756e74696d653e0012001c436f756e63696c04001101015c636f756e63696c3a3a4576656e743c52756e74696d653e001300285265666572656e64756d0400190101c47265666572656e64756d3a3a4576656e743c52756e74696d652c207265666572656e64756d3a3a496e7374616e6365313e0014001c4d656d626572730400290101686d656d626572736869703a3a4576656e743c52756e74696d653e00150014466f72756d040051010154666f72756d3a3a4576656e743c52756e74696d653e00160030436f6e737469747574696f6e04006d01018c70616c6c65745f636f6e737469747574696f6e3a3a4576656e743c52756e74696d653e00170018426f756e7479040071010158626f756e74793a3a4576656e743c52756e74696d653e001800404a6f7973747265616d5574696c6974790400950101846a6f7973747265616d5f7574696c6974793a3a4576656e743c52756e74696d653e0019001c436f6e74656e740400a101015c636f6e74656e743a3a4576656e743c52756e74696d653e001a001c53746f7261676504008d02015c73746f726167653a3a4576656e743c52756e74696d653e001b003050726f6a656374546f6b656e0400c102017470726f6a6563745f746f6b656e3a3a4576656e743c52756e74696d653e001c003c50726f706f73616c73456e67696e6504002903018070726f706f73616c735f656e67696e653a3a4576656e743c52756e74696d653e001d004c50726f706f73616c7344697363757373696f6e04004103019070726f706f73616c735f64697363757373696f6e3a3a4576656e743c52756e74696d653e001e003850726f706f73616c73436f64657804004903017c70726f706f73616c735f636f6465783a3a4576656e743c52756e74696d653e001f0044466f72756d576f726b696e6747726f757004006d0301dc776f726b696e675f67726f75703a3a4576656e743c52756e74696d652c20776f726b696e675f67726f75703a3a496e7374616e6365313e0020004c53746f72616765576f726b696e6747726f75700400910301dc776f726b696e675f67726f75703a3a4576656e743c52756e74696d652c20776f726b696e675f67726f75703a3a496e7374616e6365323e0021004c436f6e74656e74576f726b696e6747726f75700400990301dc776f726b696e675f67726f75703a3a4576656e743c52756e74696d652c20776f726b696e675f67726f75703a3a496e7374616e6365333e0022006c4f7065726174696f6e73576f726b696e6747726f7570416c7068610400a10301dc776f726b696e675f67726f75703a3a4576656e743c52756e74696d652c20776f726b696e675f67726f75703a3a496e7374616e6365343e0023003c417070576f726b696e6747726f75700400a90301dc776f726b696e675f67726f75703a3a4576656e743c52756e74696d652c20776f726b696e675f67726f75703a3a496e7374616e6365353e002400584d656d62657273686970576f726b696e6747726f75700400b10301dc776f726b696e675f67726f75703a3a4576656e743c52756e74696d652c20776f726b696e675f67726f75703a3a496e7374616e6365363e002500684f7065726174696f6e73576f726b696e6747726f7570426574610400b90301dc776f726b696e675f67726f75703a3a4576656e743c52756e74696d652c20776f726b696e675f67726f75703a3a496e7374616e6365373e0026006c4f7065726174696f6e73576f726b696e6747726f757047616d6d610400c10301dc776f726b696e675f67726f75703a3a4576656e743c52756e74696d652c20776f726b696e675f67726f75703a3a496e7374616e6365383e00270060446973747269627574696f6e576f726b696e6747726f75700400c90301dc776f726b696e675f67726f75703a3a4576656e743c52756e74696d652c20776f726b696e675f67726f75703a3a496e7374616e6365393e00280000500c306672616d655f73797374656d1870616c6c6574144576656e740404540001184045787472696e7369635375636365737304013464697370617463685f696e666f5401304469737061746368496e666f00000490416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656408013864697370617463685f6572726f7260013444697370617463684572726f7200013464697370617463685f696e666f5401304469737061746368496e666f00010450416e2065787472696e736963206661696c65642e2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e7404011c6163636f756e74000130543a3a4163636f756e7449640003046841206e6577206163636f756e742077617320637265617465642e344b696c6c65644163636f756e7404011c6163636f756e74000130543a3a4163636f756e74496400040458416e206163636f756e7420776173207265617065642e2052656d61726b656408011873656e646572000130543a3a4163636f756e744964000110686173682c011c543a3a48617368000504704f6e206f6e2d636861696e2072656d61726b2068617070656e65642e04704576656e7420666f72207468652053797374656d2070616c6c65742e540c346672616d655f737570706f7274206469737061746368304469737061746368496e666f00000c0118776569676874200118576569676874000114636c6173735801344469737061746368436c617373000120706179735f6665655c0110506179730000580c346672616d655f737570706f7274206469737061746368344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f7279000200005c0c346672616d655f737570706f727420646973706174636810506179730001080c596573000000084e6f0001000060082873705f72756e74696d653444697370617463684572726f72000134144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c65040064012c4d6f64756c654572726f7200030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050040546f6f4d616e79436f6e73756d65727300060014546f6b656e0400680128546f6b656e4572726f720007002841726974686d6574696304006c013c41726974686d657469634572726f72000800345472616e73616374696f6e616c04007001485472616e73616374696f6e616c4572726f7200090024457868617573746564000a0028436f7272757074696f6e000b002c556e617661696c61626c65000c000064082873705f72756e74696d652c4d6f64756c654572726f720000080114696e64657808010875380001146572726f7240018c5b75383b204d41585f4d4f44554c455f4552524f525f454e434f4445445f53495a455d000068082873705f72756e74696d6528546f6b656e4572726f7200011c1c4e6f46756e647300000020576f756c644469650001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f72746564000600006c083473705f61726974686d657469633c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f0002000070082873705f72756e74696d65485472616e73616374696f6e616c4572726f72000108304c696d6974526561636865640000001c4e6f4c6179657200010000740c3870616c6c65745f7574696c6974791870616c6c6574144576656e74000118404261746368496e746572727570746564080114696e64657810010c7533320001146572726f7260013444697370617463684572726f7200000855014261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c2061734877656c6c20617320746865206572726f722e384261746368436f6d706c65746564000104c84261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e604261746368436f6d706c65746564576974684572726f7273000204b44261746368206f66206469737061746368657320636f6d706c657465642062757420686173206572726f72732e344974656d436f6d706c657465640003041d01412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206e6f206572726f722e284974656d4661696c65640401146572726f7260013444697370617463684572726f720004041101412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206572726f722e30446973706174636865644173040118726573756c747801384469737061746368526573756c7400050458412063616c6c2077617320646973706174636865642e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a090909780418526573756c74080454017c044501600108084f6b04007c000000000c45727204006000000100007c0000040000800c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001281c456e646f77656408011c6163636f756e74000130543a3a4163636f756e744964000130667265655f62616c616e6365180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f737408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742c78726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e736665720c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2842616c616e63655365740c010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e63650001207265736572766564180128543a3a42616c616e636500030468412062616c616e6365207761732073657420627920726f6f742e20526573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e726573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000504e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656410011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014864657374696e6174696f6e5f7374617475738401185374617475730006084d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652e1c4465706f73697408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000704d8536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e20576974686472617708010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008041d01536f6d6520616d6f756e74207761732077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650009040101536f6d6520616d6f756e74207761732072656d6f7665642066726f6d20746865206163636f756e742028652e672e20666f72206d69736265686176696f72292e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a0909098414346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e6365537461747573000108104672656500000020526573657276656400010000880c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741870616c6c6574144576656e74040454000104485472616e73616374696f6e466565506169640c010c77686f000130543a3a4163636f756e74496400012861637475616c5f66656518013042616c616e63654f663c543e00010c74697018013042616c616e63654f663c543e000008590141207472616e73616374696f6e20666565206061637475616c5f666565602c206f662077686963682060746970602077617320616464656420746f20746865206d696e696d756d20696e636c7573696f6e206665652c5c686173206265656e2070616964206279206077686f602e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a0909098c0c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173651870616c6c6574144576656e7404045400011838536f6c7574696f6e53746f7265640c011c636f6d7075746590013c456c656374696f6e436f6d707574650001186f726967696e9401504f7074696f6e3c543a3a4163636f756e7449643e000130707265765f656a6563746564980110626f6f6c00001cb44120736f6c7574696f6e207761732073746f72656420776974682074686520676976656e20636f6d707574652e00510154686520606f726967696e6020696e6469636174657320746865206f726967696e206f662074686520736f6c7574696f6e2e20496620606f726967696e602069732060536f6d65284163636f756e74496429602c55017468652073746f72656420736f6c7574696f6e20776173207375626d6974656420696e20746865207369676e65642070686173652062792061206d696e657220776974682074686520604163636f756e744964602e25014f74686572776973652c2074686520736f6c7574696f6e207761732073746f7265642065697468657220647572696e672074686520756e7369676e6564207068617365206f722062794d0160543a3a466f7263654f726967696e602e205468652060626f6f6c6020697320607472756560207768656e20612070726576696f757320736f6c7574696f6e2077617320656a656374656420746f206d616b6548726f6f6d20666f722074686973206f6e652e44456c656374696f6e46696e616c697a656408011c636f6d7075746590013c456c656374696f6e436f6d7075746500011473636f72659c0134456c656374696f6e53636f7265000104190154686520656c656374696f6e20686173206265656e2066696e616c697a65642c20776974682074686520676976656e20636f6d7075746174696f6e20616e642073636f72652e38456c656374696f6e4661696c656400020c4c416e20656c656374696f6e206661696c65642e0001014e6f74206d7563682063616e20626520736169642061626f757420776869636820636f6d7075746573206661696c656420696e207468652070726f636573732e20526577617264656408011c6163636f756e740001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e74496400011476616c756518013042616c616e63654f663c543e0003042501416e206163636f756e7420686173206265656e20726577617264656420666f72207468656972207369676e6564207375626d697373696f6e206265696e672066696e616c697a65642e1c536c617368656408011c6163636f756e740001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e74496400011476616c756518013042616c616e63654f663c543e0004042101416e206163636f756e7420686173206265656e20736c617368656420666f72207375626d697474696e6720616e20696e76616c6964207369676e6564207375626d697373696f6e2e4450686173655472616e736974696f6e65640c011066726f6da0015450686173653c543a3a426c6f636b4e756d6265723e000108746fa0015450686173653c543a3a426c6f636b4e756d6265723e000114726f756e6410010c753332000504b85468657265207761732061207068617365207472616e736974696f6e20696e206120676976656e20726f756e642e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a09090990089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173653c456c656374696f6e436f6d707574650001141c4f6e436861696e000000185369676e656400010020556e7369676e65640002002046616c6c6261636b00030024456d657267656e6379000400009404184f7074696f6e04045401000108104e6f6e6500000010536f6d6504000000000100009800000500009c084473705f6e706f735f656c656374696f6e7334456c656374696f6e53636f726500000c01346d696e696d616c5f7374616b6518013c457874656e64656442616c616e636500012473756d5f7374616b6518013c457874656e64656442616c616e636500014473756d5f7374616b655f7371756172656418013c457874656e64656442616c616e63650000a0089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173651450686173650408426e011001100c4f6666000000185369676e656400010020556e7369676e65640400a4012828626f6f6c2c20426e2900020024456d657267656e637900030000a400000408981000a8103870616c6c65745f7374616b696e671870616c6c65741870616c6c6574144576656e7404045400013c1c457261506169640c01246572615f696e646578100120457261496e64657800014076616c696461746f725f7061796f757418013042616c616e63654f663c543e00012472656d61696e64657218013042616c616e63654f663c543e000008550154686520657261207061796f757420686173206265656e207365743b207468652066697273742062616c616e6365206973207468652076616c696461746f722d7061796f75743b20746865207365636f6e64206973c07468652072656d61696e6465722066726f6d20746865206d6178696d756d20616d6f756e74206f66207265776172642e2052657761726465640801147374617368000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000104bc546865206e6f6d696e61746f7220686173206265656e207265776172646564206279207468697320616d6f756e742e1c536c61736865640801187374616b6572000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e0002041d0141207374616b6572202876616c696461746f72206f72206e6f6d696e61746f722920686173206265656e20736c61736865642062792074686520676976656e20616d6f756e742e34536c6173685265706f727465640c012476616c696461746f72000130543a3a4163636f756e7449640001206672616374696f6eac011c50657262696c6c000124736c6173685f657261100120457261496e64657800030859014120736c61736820666f722074686520676976656e2076616c696461746f722c20666f722074686520676976656e2070657263656e74616765206f66207468656972207374616b652c2061742074686520676976656e54657261206173206265656e207265706f727465642e684f6c64536c617368696e675265706f727444697363617264656404013473657373696f6e5f696e64657810013053657373696f6e496e6465780004081901416e206f6c6420736c617368696e67207265706f72742066726f6d2061207072696f72206572612077617320646973636172646564206265636175736520697420636f756c64446e6f742062652070726f6365737365642e385374616b657273456c65637465640005048441206e657720736574206f66207374616b6572732077617320656c65637465642e18426f6e6465640801147374617368000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000610d0416e206163636f756e742068617320626f6e646564207468697320616d6f756e742e205c5b73746173682c20616d6f756e745c5d004d014e4f54453a2054686973206576656e74206973206f6e6c7920656d6974746564207768656e2066756e64732061726520626f6e64656420766961206120646973706174636861626c652e204e6f7461626c792c210169742077696c6c206e6f7420626520656d697474656420666f72207374616b696e672072657761726473207768656e20746865792061726520616464656420746f207374616b652e20556e626f6e6465640801147374617368000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e00070490416e206163636f756e742068617320756e626f6e646564207468697320616d6f756e742e2457697468647261776e0801147374617368000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e0008085901416e206163636f756e74206861732063616c6c6564206077697468647261775f756e626f6e6465646020616e642072656d6f76656420756e626f6e64696e67206368756e6b7320776f727468206042616c616e6365606466726f6d2074686520756e6c6f636b696e672071756575652e184b69636b65640801246e6f6d696e61746f72000130543a3a4163636f756e7449640001147374617368000130543a3a4163636f756e744964000904b441206e6f6d696e61746f7220686173206265656e206b69636b65642066726f6d20612076616c696461746f722e545374616b696e67456c656374696f6e4661696c6564000a04ac54686520656c656374696f6e206661696c65642e204e6f206e65772065726120697320706c616e6e65642e1c4368696c6c65640401147374617368000130543a3a4163636f756e744964000b042101416e206163636f756e74206861732073746f707065642070617274696369706174696e672061732065697468657220612076616c696461746f72206f72206e6f6d696e61746f722e345061796f7574537461727465640801246572615f696e646578100120457261496e64657800013c76616c696461746f725f7374617368000130543a3a4163636f756e744964000c0498546865207374616b657273272072657761726473206172652067657474696e6720706169642e4456616c696461746f7250726566735365740801147374617368000130543a3a4163636f756e7449640001147072656673b0013856616c696461746f725072656673000d0498412076616c696461746f72206861732073657420746865697220707265666572656e6365732e20466f7263654572610401106d6f6465b8011c466f7263696e67000e047441206e657720666f72636520657261206d6f646520776173207365742e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a090909ac0c3473705f61726974686d65746963287065725f7468696e67731c50657262696c6c0000040010010c7533320000b0083870616c6c65745f7374616b696e673856616c696461746f7250726566730000080128636f6d6d697373696f6eb4011c50657262696c6c00011c626c6f636b6564980110626f6f6c0000b4000006ac00b8083870616c6c65745f7374616b696e671c466f7263696e67000110284e6f74466f7263696e6700000020466f7263654e657700010024466f7263654e6f6e650002002c466f726365416c7761797300030000bc0c3870616c6c65745f73657373696f6e1870616c6c6574144576656e74000104284e657753657373696f6e04013473657373696f6e5f696e64657810013053657373696f6e496e64657800000839014e65772073657373696f6e206861732068617070656e65642e204e6f746520746861742074686520617267756d656e74206973207468652073657373696f6e20696e6465782c206e6f74207468659c626c6f636b206e756d626572206173207468652074797065206d6967687420737567676573742e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a090909c00c3870616c6c65745f6772616e6470611870616c6c6574144576656e7400010c384e6577417574686f726974696573040134617574686f726974795f736574c40134417574686f726974794c6973740000048c4e657720617574686f726974792073657420686173206265656e206170706c6965642e185061757365640001049843757272656e7420617574686f726974792073657420686173206265656e207061757365642e1c526573756d65640002049c43757272656e7420617574686f726974792073657420686173206265656e20726573756d65642e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a090909c4000002c800c800000408cc2800cc0c4c73705f66696e616c6974795f6772616e6470610c617070185075626c696300000400d0013c656432353531393a3a5075626c69630000d00c1c73705f636f72651c65643235353139185075626c6963000004000401205b75383b2033325d0000d40c4070616c6c65745f696d5f6f6e6c696e651870616c6c6574144576656e7404045400010c444865617274626561745265636569766564040130617574686f726974795f6964d80138543a3a417574686f726974794964000004c041206e657720686561727462656174207761732072656365697665642066726f6d2060417574686f726974794964602e1c416c6c476f6f64000104d041742074686520656e64206f66207468652073657373696f6e2c206e6f206f6666656e63652077617320636f6d6d69747465642e2c536f6d654f66666c696e6504011c6f66666c696e65e0016c5665633c4964656e74696669636174696f6e5475706c653c543e3e000204290141742074686520656e64206f66207468652073657373696f6e2c206174206c65617374206f6e652076616c696461746f722077617320666f756e6420746f206265206f66666c696e652e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a090909d8104070616c6c65745f696d5f6f6e6c696e651c737232353531392c6170705f73723235353139185075626c696300000400dc013c737232353531393a3a5075626c69630000dc0c1c73705f636f72651c73723235353139185075626c6963000004000401205b75383b2033325d0000e0000002e400e40000040800e800e8083870616c6c65745f7374616b696e67204578706f7375726508244163636f756e74496401001c42616c616e63650118000c0114746f74616cec011c42616c616e636500010c6f776eec011c42616c616e63650001186f7468657273f001ac5665633c496e646976696475616c4578706f737572653c4163636f756e7449642c2042616c616e63653e3e0000ec0000061800f0000002f400f4083870616c6c65745f7374616b696e6748496e646976696475616c4578706f7375726508244163636f756e74496401001c42616c616e636501180008010c77686f0001244163636f756e74496400011476616c7565ec011c42616c616e63650000f80c3c70616c6c65745f6f6666656e6365731870616c6c6574144576656e740001041c4f6666656e63650801106b696e64fc01104b696e6400012074696d65736c6f743001384f706171756554696d65536c6f7400000c5101546865726520697320616e206f6666656e6365207265706f72746564206f662074686520676976656e20606b696e64602068617070656e656420617420746865206073657373696f6e5f696e6465786020616e643501286b696e642d7370656369666963292074696d6520736c6f742e2054686973206576656e74206973206e6f74206465706f736974656420666f72206475706c696361746520736c61736865732e4c5c5b6b696e642c2074696d65736c6f745c5d2e04304576656e747320747970652efc00000310000000080001010c4070616c6c65745f626167735f6c6973741870616c6c6574144576656e740804540004490001082052656261676765640c010c77686f000130543a3a4163636f756e74496400011066726f6d280120543a3a53636f7265000108746f280120543a3a53636f7265000004a44d6f76656420616e206163636f756e742066726f6d206f6e652062616720746f20616e6f746865722e3053636f72655570646174656408010c77686f000130543a3a4163636f756e7449640001246e65775f73636f7265280120543a3a53636f7265000104d855706461746564207468652073636f7265206f6620736f6d65206163636f756e7420746f2074686520676976656e20616d6f756e742e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a09090905010c3870616c6c65745f76657374696e671870616c6c6574144576656e740404540001083856657374696e675570646174656408011c6163636f756e74000130543a3a4163636f756e744964000120756e76657374656418013042616c616e63654f663c543e000008510154686520616d6f756e742076657374656420686173206265656e20757064617465642e205468697320636f756c6420696e6469636174652061206368616e676520696e2066756e647320617661696c61626c652e25015468652062616c616e636520676976656e2069732074686520616d6f756e74207768696368206973206c65667420756e7665737465642028616e642074687573206c6f636b6564292e4056657374696e67436f6d706c6574656404011c6163636f756e74000130543a3a4163636f756e7449640001049c416e205c5b6163636f756e745c5d20686173206265636f6d652066756c6c79207665737465642e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a09090909010c3c70616c6c65745f6d756c74697369671870616c6c6574144576656e740404540001102c4e65774d756c74697369670c0124617070726f76696e67000130543a3a4163636f756e7449640001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c486173680000048c41206e6577206d756c7469736967206f7065726174696f6e2068617320626567756e2e404d756c7469736967417070726f76616c100124617070726f76696e67000130543a3a4163636f756e74496400012474696d65706f696e740d01016454696d65706f696e743c543a3a426c6f636b4e756d6265723e0001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c48617368000104c841206d756c7469736967206f7065726174696f6e20686173206265656e20617070726f76656420627920736f6d656f6e652e404d756c74697369674578656375746564140124617070726f76696e67000130543a3a4163636f756e74496400012474696d65706f696e740d01016454696d65706f696e743c543a3a426c6f636b4e756d6265723e0001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c48617368000118726573756c747801384469737061746368526573756c740002049c41206d756c7469736967206f7065726174696f6e20686173206265656e2065786563757465642e444d756c746973696743616e63656c6c656410012863616e63656c6c696e67000130543a3a4163636f756e74496400012474696d65706f696e740d01016454696d65706f696e743c543a3a426c6f636b4e756d6265723e0001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c48617368000304a041206d756c7469736967206f7065726174696f6e20686173206265656e2063616e63656c6c65642e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a0909090d01083c70616c6c65745f6d756c74697369672454696d65706f696e74042c426c6f636b4e756d62657201100008011868656967687410012c426c6f636b4e756d626572000114696e64657810010c75333200001101083870616c6c65745f636f756e63696c205261774576656e74101c42616c616e636501182c426c6f636b4e756d6265720110204d656d62657249640128244163636f756e7449640100014c5c416e6e6f756e63696e67506572696f6453746172746564040010012c426c6f636b4e756d6265720000045c4e657720636f756e63696c2077617320656c65637465644c4e6f74456e6f75676843616e64696461746573040010012c426c6f636b4e756d6265720001041d01416e6e6f756e63696e6720706572696f642063616e27742066696e6973682062656361757365206f6620696e73756666696369656e742063616e6469647461746520636f756e744c566f74696e67506572696f6453746172746564040010010c753332000204a843616e646964617465732061726520616e6e6f756e63656420616e6420766f74696e6720737461727473304e657743616e64696461746510002801204d656d626572496400000001244163636f756e74496400000001244163636f756e744964000018011c42616c616e63650003045c4e65772063616e64696461746520616e6e6f756e636564444e6577436f756e63696c456c65637465640800150101345665633c4d656d62657249643e000010012c426c6f636b4e756d626572000404944e657720636f756e63696c2077617320656c656374656420616e64206170706f696e746564504e6577436f756e63696c4e6f74456c6563746564040010012c426c6f636b4e756d6265720005046c4e657720636f756e63696c20776173206e6f7420656c65637465645443616e6469646163795374616b6552656c6561736504002801204d656d6265724964000604d843616e646964616379207374616b65207468617420776173206e6f206c6f6e676572206e6565646564207761732072656c65617365644443616e646964616379576974686472617704002801204d656d62657249640007049443616e646964617465206861732077697468647261776e206869732063616e6469646163794043616e6469646163794e6f746553657408002801204d656d6265724964000030011c5665633c75383e000804d05468652063616e64696461746520686173207365742061206e6577206e6f746520666f722074686569722063616e646964616379345265776172645061796d656e7410002801204d656d626572496400000001244163636f756e744964000018011c42616c616e6365000018011c42616c616e6365000904c05468652077686f6c652072657761726420776173207061696420746f2074686520636f756e63696c206d656d6265722e4042756467657442616c616e6365536574040018011c42616c616e6365000a049c4275646765742062616c616e636520776173206368616e6765642062792074686520726f6f742e30427564676574526566696c6c040018011c42616c616e6365000b04c44275646765742062616c616e63652077617320696e63726561736564206279206175746f6d6174696320726566696c6c2e4c427564676574526566696c6c506c616e6e6564040010012c426c6f636b4e756d626572000c048c546865206e6578742062756467657420726566696c6c2077617320706c616e6e65642e58427564676574496e6372656d656e7455706461746564040018011c42616c616e6365000d048842756467657420696e6372656d656e7420686173206265656e20757064617465642e58436f756e63696c6f7252657761726455706461746564040018011c42616c616e6365000e0488436f756e63696c6f722072657761726420686173206265656e20757064617465642e345265717565737446756e64656408000001244163636f756e744964000018011c42616c616e6365000f045c5265717565737420686173206265656e2066756e6465644c436f756e63696c42756467657446756e6465640c002801204d656d6265724964000018011c42616c616e6365000030011c5665633c75383e0010146046756e642074686520636f756e63696c206275646765742e1c506172616d733a2c2d204d656d6265722049444c2d20416d6f756e74206f662062616c616e63652c2d20526174696f6e616c6544436f756e63696c6f7252656d61726b656408002801204d656d6265724964000030011c5665633c75383e00110460436f756e63696c6f722072656d61726b206d6573736167654443616e64696461746552656d61726b656408002801204d656d6265724964000030011c5665633c75383e0012046043616e6469646174652072656d61726b206d657373616765085c4576656e747320666f722074686973206d6f64756c652e00150100000228001901084470616c6c65745f7265666572656e64756d205261774576656e741c2c426c6f636b4e756d62657201101c42616c616e636501181048617368012c244163636f756e744964010024566f7465506f7765720118204d656d626572496401280449011d010120445265666572656e64756d53746172746564080010010c753332000010012c426c6f636b4e756d626572000004485265666572656e64756d20737461727465646c5265666572656e64756d53746172746564466f72636566756c6c79080010010c753332000010012c426c6f636b4e756d626572000104485265666572656e64756d20737461727465645452657665616c696e67537461676553746172746564040010012c426c6f636b4e756d6265720002046452657665616c696e672070686173652068617320626567756e485265666572656e64756d46696e69736865640400210101985665633c4f7074696f6e526573756c743c4d656d62657249642c20566f7465506f7765723e3e000304c05265666572656e64756d20656e64656420616e642077696e6e696e67206f7074696f6e207761732073656c656374656420566f7465436173740c000001244163636f756e74496400002c011048617368000018011c42616c616e636500040478557365722063617374206120766f746520696e207265666572656e64756d30566f746552657665616c65640c000001244163636f756e74496400002801204d656d6265724964000030011c5665633c75383e00050458557365722072657665616c65642068697320766f7465345374616b6552656c656173656404000001244163636f756e7449640006045c557365722072656c656173656420686973207374616b655c4163636f756e744f707465644f75744f66566f74696e6704000001244163636f756e744964000704d84163636f756e74207065726d616e656e746c79206f70746564206f7574206f6620766f74696e6720696e207265666572656e64756d2e085c4576656e747320666f722074686973206d6f64756c652e001d01084470616c6c65745f7265666572656e64756d24496e7374616e6365310000000021010000022501002501084470616c6c65745f7265666572656e64756d304f7074696f6e526573756c7408204d656d6265724964012824566f7465506f7765720118000801246f7074696f6e5f69642801204d656d6265724964000128766f74655f706f776572180124566f7465506f77657200002901084470616c6c65745f6d656d62657273686970205261774576656e7420204d656d626572496401281c42616c616e63650118244163636f756e74496401005c4275794d656d62657273686970506172616d6574657273012d011c4163746f724964012868496e766974654d656d62657273686970506172616d6574657273013901584372656174654d656d626572506172616d6574657273013d0160476966744d656d62657273686970506172616d65746572730141010144344d656d626572496e76697465640c002801204d656d6265724964000039010168496e766974654d656d62657273686970506172616d6574657273000018011c42616c616e6365000000404d656d6265727368697047696674656408002801204d656d6265724964000041010160476966744d656d62657273686970506172616d6574657273000100404d656d62657273686970426f756768740c002801204d656d626572496400002d01015c4275794d656d62657273686970506172616d6574657273000010010c753332000200504d656d62657250726f66696c65557064617465640c002801204d656d626572496400003101013c4f7074696f6e3c5665633c75383e3e00003101013c4f7074696f6e3c5665633c75383e3e000300544d656d6265724163636f756e7473557064617465640c002801204d656d626572496400009401444f7074696f6e3c4163636f756e7449643e00009401444f7074696f6e3c4163636f756e7449643e0004007c4d656d626572566572696669636174696f6e537461747573557064617465640c002801204d656d62657249640000980110626f6f6c000028011c4163746f72496400050048526566657272616c437574557064617465640400080108753800060048496e76697465735472616e736665727265640c002801204d656d626572496400002801204d656d6265724964000010010c753332000700584d656d62657273686970507269636555706461746564040018011c42616c616e63650008007c496e697469616c496e7669746174696f6e42616c616e636555706461746564040018011c42616c616e6365000900704c6561646572496e7669746174696f6e51756f746155706461746564040010010c753332000a0074496e697469616c496e7669746174696f6e436f756e7455706461746564040010010c753332000b004c5374616b696e674163636f756e74416464656408000001244163636f756e74496400002801204d656d6265724964000c00545374616b696e674163636f756e7452656d6f76656408000001244163636f756e74496400002801204d656d6265724964000d005c5374616b696e674163636f756e74436f6e6669726d656408000001244163636f756e74496400002801204d656d6265724964000e00384d656d62657252656d61726b65640c002801204d656d6265724964000030011c5665633c75383e0000490101704f7074696f6e3c284163636f756e7449642c2042616c616e6365293e000f00344d656d626572437265617465640c002801204d656d626572496400003d0101584372656174654d656d626572506172616d6574657273000010010c753332001000085c4576656e747320666f722074686973206d6f64756c652e002d01084470616c6c65745f6d656d626572736869705c4275794d656d62657273686970506172616d657465727308244163636f756e7449640100204d656d6265724964012800140130726f6f745f6163636f756e740001244163636f756e744964000148636f6e74726f6c6c65725f6163636f756e740001244163636f756e74496400011868616e646c653101013c4f7074696f6e3c5665633c75383e3e0001206d6574616461746130011c5665633c75383e00012c72656665727265725f6964350101404f7074696f6e3c4d656d62657249643e0000310104184f7074696f6e04045401300108104e6f6e6500000010536f6d650400300000010000350104184f7074696f6e04045401280108104e6f6e6500000010536f6d6504002800000100003901084470616c6c65745f6d656d6265727368697068496e766974654d656d62657273686970506172616d657465727308244163636f756e7449640100204d656d6265724964012800140148696e766974696e675f6d656d6265725f69642801204d656d6265724964000130726f6f745f6163636f756e740001244163636f756e744964000148636f6e74726f6c6c65725f6163636f756e740001244163636f756e74496400011868616e646c653101013c4f7074696f6e3c5665633c75383e3e0001206d6574616461746130011c5665633c75383e00003d01084470616c6c65745f6d656d62657273686970584372656174654d656d626572506172616d657465727304244163636f756e744964010000140130726f6f745f6163636f756e740001244163636f756e744964000148636f6e74726f6c6c65725f6163636f756e740001244163636f756e74496400011868616e646c6530011c5665633c75383e0001206d6574616461746130011c5665633c75383e00014869735f666f756e64696e675f6d656d626572980110626f6f6c00004101084470616c6c65745f6d656d6265727368697060476966744d656d62657273686970506172616d657465727308244163636f756e74496401001c42616c616e6365011800200130726f6f745f6163636f756e740001244163636f756e744964000148636f6e74726f6c6c65725f6163636f756e740001244163636f756e74496400011868616e646c653101013c4f7074696f6e3c5665633c75383e3e0001206d6574616461746130011c5665633c75383e0001646372656469745f636f6e74726f6c6c65725f6163636f756e7418011c42616c616e63650001a06170706c795f636f6e74726f6c6c65725f6163636f756e745f696e7669746174696f6e5f6c6f636b4501013c4f7074696f6e3c42616c616e63653e00014c6372656469745f726f6f745f6163636f756e7418011c42616c616e63650001886170706c795f726f6f745f6163636f756e745f696e7669746174696f6e5f6c6f636b4501013c4f7074696f6e3c42616c616e63653e0000450104184f7074696f6e04045401180108104e6f6e6500000010536f6d650400180000010000490104184f7074696f6e040454014d010108104e6f6e6500000010536f6d6504004d0100000100004d01000004080018005101083070616c6c65745f666f72756d205261774576656e74202843617465676f7279496401282c4d6f64657261746f7249640128205468726561644964012818506f7374496401281048617368012c2c466f72756d55736572496401283c50726976696c656765644163746f7201550138457874656e646564506f7374496401590101443c43617465676f727943726561746564100028012843617465676f727949640000350101484f7074696f6e3c43617465676f727949643e000030011c5665633c75383e000030011c5665633c75383e00000464412063617465676f72792077617320696e74726f64756365647443617465676f7279417263686976616c537461747573557064617465640c0028012843617465676f727949640000980110626f6f6c00005501013c50726976696c656765644163746f72000108e0416e206172686963616c20737461747573206f662063617465676f7279207769746820676976656e2069642077617320757064617465642e1501546865207365636f6e6420617267756d656e74207265666c6563747320746865206e657720617263686976616c20737461747573206f66207468652063617465676f72792e5043617465676f72795469746c65557064617465640c0028012843617465676f7279496400002c01104861736800005501013c50726976696c656765644163746f72000208b841207469746c65206f662063617465676f7279207769746820676976656e2069642077617320757064617465642e0101546865207365636f6e6420617267756d656e74207265666c6563747320746865206e6577207469746c652068617368206f66207468652063617465676f72792e6843617465676f72794465736372697074696f6e557064617465640c0028012843617465676f7279496400002c01104861736800005501013c50726976696c656765644163746f72000308d041206469736372697074696f6e206f662063617465676f7279207769746820676976656e2069642077617320757064617465642e1901546865207365636f6e6420617267756d656e74207265666c6563747320746865206e6577206465736372697074696f6e2068617368206f66207468652063617465676f72792e3c43617465676f727944656c65746564080028012843617465676f7279496400005501013c50726976696c656765644163746f7200040458412063617465676f7279207761732064656c657465643454687265616443726561746564180028012843617465676f72794964000028012054687265616449640000280118506f73744964000028012c466f72756d557365724964000030011c5665633c75383e000030011c5665633c75383e0005088c4120746872656164207769746820676976656e2069642077617320637265617465642ef04120746869726420617267756d656e74207265666c656374732074686520696e697469616c20706f7374206964206f6620746865207468726561642e3c5468726561644d6f6465726174656410002801205468726561644964000030011c5665633c75383e00005501013c50726976696c656765644163746f72000028012843617465676f72794964000604944120746872656164207769746820676976656e20696420776173206d6f646572617465642e3454687265616455706461746564100028012054687265616449640000980110626f6f6c00005501013c50726976696c656765644163746f72000028012843617465676f727949640007088c4120746872656164207769746820676976656e2069642077617320757064617465642e0d01546865207365636f6e6420617267756d656e74207265666c6563747320746865206e657720617263686976616c20737461747573206f6620746865207468726561642e545468726561644d657461646174615570646174656410002801205468726561644964000028012c466f72756d557365724964000028012843617465676f72794964000030011c5665633c75383e0008049c4120746872656164206d6574616461746120676976656e2069642077617320757064617465642e3454687265616444656c6574656410002801205468726561644964000028012c466f72756d557365724964000028012843617465676f727949640000980110626f6f6c000904544120746872656164207761732064656c657465642e2c5468726561644d6f76656410002801205468726561644964000028012843617465676f7279496400005501013c50726976696c656765644163746f72000028012843617465676f72794964000a0488412074687265616420776173206d6f76656420746f206e65772063617465676f727924506f737441646465641800280118506f73744964000028012c466f72756d557365724964000028012843617465676f7279496400002801205468726561644964000030011c5665633c75383e0000980110626f6f6c000b047c506f7374207769746820676976656e2069642077617320637265617465642e34506f73744d6f646572617465641400280118506f73744964000030011c5665633c75383e00005501013c50726976696c656765644163746f72000028012843617465676f7279496400002801205468726561644964000c0484506f73742077697468206769766e6520696420776173206d6f646572617465642e2c506f737444656c657465640c0030011c5665633c75383e000028012c466f72756d55736572496400005d01017842547265654d61703c457874656e646564506f737449642c20626f6f6c3e000d047c506f73742077697468206769766e65206964207761732064656c657465642e3c506f737454657874557064617465641400280118506f73744964000028012c466f72756d557365724964000028012843617465676f7279496400002801205468726561644964000030011c5665633c75383e000e08a0506f7374207769746820676976656e2069642068616420697473207465787420757064617465642e4d01546865207365636f6e6420617267756d656e74207265666c6563747320746865206e756d626572206f6620746f74616c206564697473207768656e20746865207465787420757064617465206f63637572732e6843617465676f7279537469636b795468726561645570646174650c0028012843617465676f7279496400006901014842547265655365743c54687265616449643e00005501013c50726976696c656765644163746f72000f0488537469636b7920746872656164207570646174656420666f722063617465676f72799043617465676f72794d656d626572736869704f664d6f64657261746f72557064617465640c0028012c4d6f64657261746f724964000028012843617465676f727949640000980110626f6f6c0010042501416e206d6f64657261746f72206162696c69747920746f206d6f64657261746520612063617465676f727920616e64206974732073756263617465676f726965732075706461746564085c4576656e747320666f722074686973206d6f64756c652e005501083070616c6c65745f666f72756d3c50726976696c656765644163746f72040454000108104c656164000000244d6f64657261746f7204002801384d6f64657261746f7249643c543e000100005901083070616c6c65745f666f72756d50457874656e646564506f737449644f626a6563740c2843617465676f727949640128205468726561644964012818506f737449640128000c012c63617465676f72795f696428012843617465676f727949640001247468726561645f6964280120546872656164496400011c706f73745f6964280118506f7374496400005d01042042547265654d617008044b015901045601980004006101000000610100000265010065010000040859019800690104204254726565536574040454012800040015010000006d01084c70616c6c65745f636f6e737469747574696f6e205261774576656e74041048617368012c010444436f6e73747574696f6e416d656e64656408002c011048617368000030011c5665633c75383e00001080456d697473206f6e20636f6e737469747574696f6e20616d656e646d656e742e2c506172616d65746572733a602d20636f6e737469747574696f6e207465787420686173684c2d20636f6e737469747574696f6e2074657874085c4576656e747320666f722074686973206d6f64756c652e007101083470616c6c65745f626f756e7479205261774576656e741c20426f756e7479496401281c456e747279496401281c42616c616e63650118204d656d62657249640128244163636f756e744964010060426f756e74794372656174696f6e506172616d6574657273017501384f7261636c654a7564676d656e74018501015c34426f756e7479437265617465640c00280120426f756e74794964000075010160426f756e74794372656174696f6e506172616d6574657273000030011c5665633c75383e000014544120626f756e74792077617320637265617465642e1c506172616d733a2c2d20626f756e7479204944542d206372656174696f6e20706172616d6574657273442d20626f756e7479206d6574616461746150426f756e74794f7261636c6553776974636865641000280120426f756e74794964000079010154426f756e74794163746f723c4d656d62657249643e000079010154426f756e74794163746f723c4d656d62657249643e000079010154426f756e74794163746f723c4d656d62657249643e000118d0426f756e7479204f7261636c652053776974636865642062792063757272656e74206f7261636c65206f7220636f756e63696c2e1c506172616d733a2c2d20626f756e7479204944282d207377697463686572442d2063757272656e745f6f7261636c652c302d206e6577206f7261636c6540426f756e74795465726d696e617465641000280120426f756e74794964000079010154426f756e74794163746f723c4d656d62657249643e000079010154426f756e74794163746f723c4d656d62657249643e000079010154426f756e74794163746f723c4d656d62657249643e0002188c4120626f756e747920776173207465726d696e6174656420627920636f756e63696c2e1c506172616d733a2c2d20626f756e74792049444c2d20626f756e7479207465726d696e61746f72402d20626f756e74792063726561746f723c2d20626f756e7479206f7261636c6530426f756e747946756e6465640c00280120426f756e74794964000079010154426f756e74794163746f723c4d656d62657249643e000018011c42616c616e6365000314b44120626f756e7479207761732066756e6465642062792061206d656d626572206f72206120636f756e63696c2e1c506172616d733a2c2d20626f756e74792049443c2d20626f756e74792066756e646572402d2066756e64696e6720616d6f756e745c426f756e74794d617846756e64696e67526561636865640400280120426f756e7479496400040cbc4120626f756e747920686173207265616368656420697473207461726765742066756e64696e6720616d6f756e742e1c506172616d733a2c2d20626f756e74792049445c426f756e747946756e64696e675769746864726177616c0800280120426f756e74794964000079010154426f756e74794163746f723c4d656d62657249643e000510c041206d656d626572206f72206120636f756e63696c206861732077697468647261776e207468652066756e64696e672e1c506172616d733a2c2d20626f756e74792049443c2d20626f756e74792066756e64657274426f756e747943726561746f724368657272795769746864726177616c0800280120426f756e74794964000079010154426f756e74794163746f723c4d656d62657249643e000610f84120626f756e74792063726561746f72206861732077697468647261776e207468652063686572727920286d656d626572206f7220636f756e63696c292e1c506172616d733a2c2d20626f756e7479204944402d20626f756e74792063726561746f728c426f756e747943726561746f724f7261636c655265776172645769746864726177616c0800280120426f756e74794964000079010154426f756e74794163746f723c4d656d62657249643e00071015014120626f756e74792063726561746f72206861732077697468647261776e20746865206f7261636c652072657761726420286d656d626572206f7220636f756e63696c292e1c506172616d733a2c2d20626f756e7479204944402d20626f756e74792063726561746f7270426f756e74794f7261636c655265776172645769746864726177616c0c00280120426f756e74794964000079010154426f756e74794163746f723c4d656d62657249643e000018011c42616c616e6365000814f441204f7261636c65206861732077697468647261776e20746865206f7261636c652072657761726420286d656d626572206f7220636f756e63696c292e1c506172616d733a2c2d20626f756e7479204944402d20626f756e74792063726561746f723c2d204f7261636c652052657761726434426f756e747952656d6f7665640400280120426f756e7479496400090c544120626f756e7479207761732072656d6f7665642e1c506172616d733a2c2d20626f756e747920494448576f726b456e747279416e6e6f756e6365641400280120426f756e74794964000028011c456e747279496400002801204d656d626572496400000001244163636f756e744964000030011c5665633c75383e000a1c64576f726b20656e7472792077617320616e6e6f756e6365642e1c506172616d733a2c2d20626f756e7479204944482d206372656174656420656e7472792049444c2d20656e7472616e74206d656d626572204944502d207374616b696e67206163636f756e74204944482d20776f726b206465736372697074696f6e34576f726b5375626d69747465641000280120426f756e74794964000028011c456e747279496400002801204d656d6265724964000030011c5665633c75383e000b18305375626d697420776f726b2e1c506172616d733a2c2d20626f756e7479204944482d206372656174656420656e7472792049444c2d20656e7472616e74206d656d626572204944a82d20776f726b206461746120286465736372697074696f6e2c2055524c2c20424c4f422c206574632e295c4f7261636c654a7564676d656e745375626d69747465641000280120426f756e74794964000079010154426f756e74794163746f723c4d656d62657249643e0000850101384f7261636c654a7564676d656e74000030011c5665633c75383e000c185c5375626d6974206f7261636c65206a7564676d656e742e1c506172616d733a2c2d20626f756e7479204944202d206f7261636c653c2d206a7564676d656e7420646174612c2d20726174696f6e616c6564576f726b456e7472616e7446756e647357697468647261776e0c00280120426f756e74794964000028011c456e747279496400002801204d656d6265724964000d145c576f726b20656e7472792077617320736c61736865642e1c506172616d733a2c2d20626f756e7479204944282d20656e7472792049444c2d20656e7472616e74206d656d62657220494464426f756e7479436f6e7472696275746f7252656d61726b65640c0079010154426f756e74794163746f723c4d656d62657249643e0000280120426f756e74794964000030011c5665633c75383e000e14a0426f756e747920636f6e7472696275746f72206d6164652061206d6573736167652072656d61726b1c506172616d733a342d20636f6e7472696275746f722c2d20626f756e7479206964242d206d65737361676550426f756e74794f7261636c6552656d61726b65640c0079010154426f756e74794163746f723c4d656d62657249643e0000280120426f756e74794964000030011c5665633c75383e000f148c426f756e7479206f7261636c65206d6164652061206d6573736167652072656d61726b1c506172616d733a202d206f7261636c652c2d20626f756e7479206964242d206d65737361676554426f756e7479456e7472616e7452656d61726b656410002801204d656d62657249640000280120426f756e74794964000028011c456e7472794964000030011c5665633c75383e00101890426f756e747920656e7472616e74206d6164652061206d6573736167652072656d61726b1c506172616d733a302d20656e7472616e745f69642c2d20626f756e7479206964282d20656e747279206964242d206d65737361676554426f756e747943726561746f7252656d61726b65640c0079010154426f756e74794163746f723c4d656d62657249643e0000280120426f756e74794964000030011c5665633c75383e00111490426f756e74792063726561746f72206d6164652061206d6573736167652072656d61726b1c506172616d733a242d2063726561746f722c2d20626f756e7479206964242d206d65737361676564576f726b5375626d697373696f6e506572696f64456e6465640800280120426f756e74794964000079010154426f756e74794163746f723c4d656d62657249643e0012105c576f726b20656e7472792077617320736c61736865642e1c506172616d733a2c2d20626f756e7479204944442d206f7261636c65202863616c6c65722960576f726b456e7472616e745374616b65556e6c6f636b65640c00280120426f756e74794964000028011c456e747279496400000001244163636f756e74496400131468576f726b20656e747279207374616b6520756e6c6f636b65642e1c506172616d733a2c2d20626f756e7479204944282d20656e7472792049443c2d207374616b65206163636f756e745c576f726b456e7472616e745374616b65536c61736865641000280120426f756e74794964000028011c456e747279496400000001244163636f756e744964000018011c42616c616e636500141864576f726b20656e747279207374616b6520736c61736865642e1c506172616d733a2c2d20626f756e7479204944282d20656e7472792049443c2d207374616b65206163636f756e74402d20736c617368656420616d6f756e747446756e6465725374617465426c6f6174426f6e6457697468647261776e0c00280120426f756e74794964000079010154426f756e74794163746f723c4d656d62657249643e000018011c42616c616e63650015141d0141206d656d626572206f72206120636f756e63696c2066756e646572206861732077697468647261776e207468652066756e64657220737461746520626c6f617420626f6e642e1c506172616d733a2c2d20626f756e74792049443c2d20626f756e74792066756e646572802d2066756e64657220537461746520626c6f617420626f6e6420616d6f756e747843726561746f725374617465426c6f6174426f6e6457697468647261776e0c00280120426f756e74794964000079010154426f756e74794163746f723c4d656d62657249643e000018011c42616c616e6365001614250141206d656d626572206f72206120636f756e63696c2063726561746f72206861732077697468647261776e207468652063726561746f7220737461746520626c6f617420626f6e642e1c506172616d733a2c2d20626f756e7479204944402d20626f756e74792063726561746f72842d2043726561746f7220537461746520626c6f617420626f6e6420616d6f756e74085c4576656e747320666f722074686973206d6f64756c652e007501083470616c6c65745f626f756e747940426f756e7479506172616d6574657273101c42616c616e636501182c426c6f636b4e756d6265720110204d656d626572496401285c436c6f736564436f6e747261637457686974656c697374016901001c01186f7261636c6579010154426f756e74794163746f723c4d656d62657249643e000134636f6e74726163745f747970657d0101b84173737572616e6365436f6e7472616374547970653c436c6f736564436f6e747261637457686974656c6973743e00011c63726561746f7279010154426f756e74794163746f723c4d656d62657249643e00011863686572727918011c42616c616e63650001346f7261636c655f72657761726418011c42616c616e6365000134656e7472616e745f7374616b6518011c42616c616e636500013066756e64696e675f747970658101018446756e64696e67547970653c426c6f636b4e756d6265722c2042616c616e63653e00007901083470616c6c65745f626f756e74792c426f756e74794163746f7204204d656d6265724964012801081c436f756e63696c000000184d656d62657204002801204d656d6265724964000100007d01083470616c6c65745f626f756e7479544173737572616e6365436f6e747261637454797065045c436c6f736564436f6e747261637457686974656c6973740169010108104f70656e00000018436c6f73656404006901015c436c6f736564436f6e747261637457686974656c697374000100008101083470616c6c65745f626f756e74792c46756e64696e6754797065082c426c6f636b4e756d62657201101c42616c616e6365011801082450657270657475616c04011874617267657418011c42616c616e63650000001c4c696d6974656408011874617267657418011c42616c616e636500013866756e64696e675f706572696f6410012c426c6f636b4e756d626572000100008501042042547265654d617008044b012804560189010004008d010000008901083470616c6c65745f626f756e74795c4f7261636c65576f726b456e7472794a7564676d656e74041c42616c616e6365011801081857696e6e657204011872657761726418011c42616c616e63650000002052656a6563746564080138736c617368696e675f7368617265ac011c50657262696c6c000150616374696f6e5f6a757374696669636174696f6e30011c5665633c75383e000100008d01000002910100910100000408288901009501083870616c6c65745f7574696c697479205261774576656e74081c42616c616e63650118244163636f756e74496401000110205369676e616c6564040030011c5665633c75383e00000c7841207369676e616c2070726f706f73616c207761732065786563757465641c506172616d733adc2d205369676e616c20676976656e207768656e206372656174696e672074686520636f72726573706f6e64696e672070726f706f73616c3c52756e74696d655570677261646564040030011c5665633c75383e00010c78412072756e74696d652075706772616465207761732065786563757465641c506172616d733a6c2d204e657720636f646520656e636f64656420696e2062797465736455706461746564576f726b696e6747726f75704275646765740c0099010130576f726b696e6747726f7570000018011c42616c616e636500009d01012c42616c616e63654b696e64000218d8416e206055706461746520576f726b696e672047726f757020427564676574602070726f706f73616c207761732065786563757465641c506172616d733ab42d20576f726b696e672067726f757020776869636820627564676574206973206265696e6720757064617465647c2d20416d6f756e74206f662062616c616e6365206265696e67206d6f7665645d012d20456e756d2076617269616e74207769746820706f73697469766520696e6469636174696e672066756e6473206d6f76656420746f72776172647320776f726b696e672067726f757020616e64206e65676174697665c0616e64206e656761746976652066756e6473206d6f76696e672066726f6d2074686520776f726b696e672067726f757030546f6b656e734275726e656408000001244163636f756e744964000018011c42616c616e636500031060416e206163636f756e74206275726e656420746f6b656e731c506172616d733a882d204163636f756e74204964206f6620746865206275726e696e6720746f6b656e73882d2042616c616e6365206275726e65642066726f6d2074686174206163636f756e74085c4576656e747320666f722074686973206d6f64756c652e009901103470616c6c65745f636f6d6d6f6e34776f726b696e675f67726f7570386974657261626c655f656e756d7330576f726b696e6747726f757000012414466f72756d0000001c53746f726167650001001c436f6e74656e740002003c4f7065726174696f6e73416c7068610003000c41707000040030446973747269627574696f6e000500384f7065726174696f6e73426574610006003c4f7065726174696f6e7347616d6d61000700284d656d62657273686970000800009d01083470616c6c65745f636f6d6d6f6e2c42616c616e63654b696e6400010820506f736974697665000000204e6567617469766500010000a101083870616c6c65745f636f6e74656e74205261774576656e746430436f6e74656e744163746f7201a501204d656d626572496401283843757261746f7247726f7570496401282443757261746f72496401281c566964656f49640128244368616e6e656c496401281c4368616e6e656c01a90130446174614f626a6563744964012850456e676c69736841756374696f6e506172616d7301fd01444f70656e41756374696f6e506172616d73010502344f70656e41756374696f6e49640128544e667449737375616e6365506172616d65746572730109021c42616c616e63650118644368616e6e656c4372656174696f6e506172616d65746572730115025c4368616e6e656c557064617465506172616d65746572730141025c566964656f4372656174696f6e506172616d657465727301490254566964656f557064617465506172616d6574657273015102544368616e6e656c50726976696c6567654c6576656c0108704d6f6465726174696f6e5065726d697373696f6e7342794c6576656c015502645472616e73666572436f6d6d69746d656e745769746e657373016d023c50656e64696e675472616e7366657201ed01244163636f756e7449640100785570646174654368616e6e656c5061796f757473506172616d65746572730171021c546f6b656e496401285c4368616e6e656c46756e647344657374696e6174696f6e01850201d84c43757261746f7247726f757043726561746564040028013843757261746f7247726f757049640000007843757261746f7247726f75705065726d697373696f6e7355706461746564080028013843757261746f7247726f757049640000550201704d6f6465726174696f6e5065726d697373696f6e7342794c6576656c0001005443757261746f7247726f7570537461747573536574080028013843757261746f7247726f757049640000980110626f6f6c0002003043757261746f7241646465640c0028013843757261746f7247726f75704964000028012443757261746f7249640000bd01015c4368616e6e656c4167656e745065726d697373696f6e730003003843757261746f7252656d6f766564080028013843757261746f7247726f75704964000028012443757261746f724964000400384368616e6e656c4372656174656410002801244368616e6e656c49640000a901011c4368616e6e656c0000150201644368616e6e656c4372656174696f6e506172616d657465727300000001244163636f756e744964000500384368616e6e656c557064617465641000a5010130436f6e74656e744163746f7200002801244368616e6e656c496400004102015c4368616e6e656c557064617465506172616d657465727300006901015842547265655365743c446174614f626a65637449643e000600704368616e6e656c50726976696c6567654c6576656c5570646174656408002801244368616e6e656c496400000801544368616e6e656c50726976696c6567654c6576656c000700844368616e6e656c5374617465426c6f6174426f6e6456616c756555706461746564040018011c42616c616e63650008007c566964656f5374617465426c6f6174426f6e6456616c756555706461746564040018011c42616c616e6365000900504368616e6e656c41737365747352656d6f7665641000a5010130436f6e74656e744163746f7200002801244368616e6e656c496400006901015842547265655365743c446174614f626a65637449643e0000a901011c4368616e6e656c000a00384368616e6e656c44656c657465640800a5010130436f6e74656e744163746f7200002801244368616e6e656c4964000b00644368616e6e656c44656c6574656442794d6f64657261746f720c00a5010130436f6e74656e744163746f7200002801244368616e6e656c4964000030011c5665633c75383e000c007c4368616e6e656c5669736962696c69747953657442794d6f64657261746f721000a5010130436f6e74656e744163746f7200002801244368616e6e656c49640000980110626f6f6c000030011c5665633c75383e000d009c4368616e6e656c50617573656446656174757265735570646174656442794d6f64657261746f721000a5010130436f6e74656e744163746f7200002801244368616e6e656c49640000d901018042547265655365743c5061757361626c654368616e6e656c466561747572653e000030011c5665633c75383e000e007c4368616e6e656c41737365747344656c6574656442794d6f64657261746f721000a5010130436f6e74656e744163746f7200002801244368616e6e656c496400006901015842547265655365743c446174614f626a65637449643e000030011c5665633c75383e000f00544368616e6e656c46756e647357697468647261776e1000a5010130436f6e74656e744163746f7200002801244368616e6e656c4964000018011c42616c616e636500008502015c4368616e6e656c46756e647344657374696e6174696f6e001000804368616e6e656c526577617264436c61696d6564416e6457697468647261776e1000a5010130436f6e74656e744163746f7200002801244368616e6e656c4964000018011c42616c616e636500008502015c4368616e6e656c46756e647344657374696e6174696f6e00110030566964656f437265617465641400a5010130436f6e74656e744163746f7200002801244368616e6e656c4964000028011c566964656f496400004902015c566964656f4372656174696f6e506172616d657465727300006901015842547265655365743c446174614f626a65637449643e00120030566964656f557064617465641000a5010130436f6e74656e744163746f72000028011c566964656f4964000051020154566964656f557064617465506172616d657465727300006901015842547265655365743c446174614f626a65637449643e00130030566964656f44656c657465640800a5010130436f6e74656e744163746f72000028011c566964656f49640014005c566964656f44656c6574656442794d6f64657261746f720c00a5010130436f6e74656e744163746f72000028011c566964656f4964000030011c5665633c75383e00150074566964656f5669736962696c69747953657442794d6f64657261746f721000a5010130436f6e74656e744163746f72000028011c566964656f49640000980110626f6f6c000030011c5665633c75383e00160074566964656f41737365747344656c6574656442794d6f64657261746f721400a5010130436f6e74656e744163746f72000028011c566964656f496400006901015842547265655365743c446174614f626a65637449643e0000980110626f6f6c000030011c5665633c75383e001700544368616e6e656c5061796f757473557064617465640c00710201785570646174654368616e6e656c5061796f757473506172616d65746572730000350101504f7074696f6e3c446174614f626a65637449643e00000001244163636f756e744964001800504368616e6e656c526577617264557064617465640c0018011c42616c616e6365000018011c42616c616e636500002801244368616e6e656c496400190054456e676c69736841756374696f6e537461727465640c00a5010130436f6e74656e744163746f72000028011c566964656f49640000fd010150456e676c69736841756374696f6e506172616d73001a00484f70656e41756374696f6e537461727465641000a5010130436f6e74656e744163746f72000028011c566964656f49640000050201444f70656e41756374696f6e506172616d7300002801344f70656e41756374696f6e4964001b00244e66744973737565640c00a5010130436f6e74656e744163746f72000028011c566964656f49640000090201544e667449737375616e6365506172616d6574657273001c00304e667444657374726f7965640800a5010130436f6e74656e744163746f72000028011c566964656f4964001d003841756374696f6e4269644d61646510002801204d656d6265724964000028011c566964656f4964000018011c42616c616e63650000350101404f7074696f6e3c4d656d62657249643e001e004841756374696f6e42696443616e63656c656408002801204d656d6265724964000028011c566964656f4964001f003c41756374696f6e43616e63656c65640800a5010130436f6e74656e744163746f72000028011c566964656f496400200054456e676c69736841756374696f6e536574746c65640c002801204d656d626572496400000001244163636f756e744964000028011c566964656f4964002100604269644d616465436f6d706c6574696e6741756374696f6e0c002801204d656d6265724964000028011c566964656f49640000350101404f7074696f6e3c4d656d62657249643e002200584f70656e41756374696f6e42696441636365707465641000a5010130436f6e74656e744163746f72000028011c566964656f496400002801204d656d6265724964000018011c42616c616e6365002300304f6666657253746172746564100028011c566964656f49640000a5010130436f6e74656e744163746f7200002801204d656d626572496400004501013c4f7074696f6e3c42616c616e63653e002400344f666665724163636570746564040028011c566964656f4964002500344f6666657243616e63656c6564080028011c566964656f49640000a5010130436f6e74656e744163746f72002600404e667453656c6c4f726465724d6164650c0028011c566964656f49640000a5010130436f6e74656e744163746f72000018011c42616c616e6365002700244e6674426f75676874080028011c566964656f496400002801204d656d6265724964002800384275794e6f7743616e63656c6564080028011c566964656f49640000a5010130436f6e74656e744163746f72002900484275794e6f775072696365557064617465640c0028011c566964656f49640000a5010130436f6e74656e744163746f72000018011c42616c616e6365002a00844e6674536c696e6765644261636b546f5468654f726967696e616c417274697374080028011c566964656f49640000a5010130436f6e74656e744163746f72002b00504368616e6e656c4f776e657252656d61726b656408002801244368616e6e656c4964000030011c5665633c75383e002c046c4d65746170726f746f636f6c732072656c61746564206576656e74504368616e6e656c4167656e7452656d61726b65640c00a5010130436f6e74656e744163746f7200002801244368616e6e656c4964000030011c5665633c75383e002d00404e66744f776e657252656d61726b65640c00a5010130436f6e74656e744163746f72000028011c566964656f4964000030011c5665633c75383e002e0068496e697469616c697a65644368616e6e656c5472616e736665720c002801244368616e6e656c49640000a5010130436f6e74656e744163746f720000ed01013c50656e64696e675472616e73666572002f005443616e63656c4368616e6e656c5472616e7366657208002801244368616e6e656c49640000a5010130436f6e74656e744163746f720030005c4368616e6e656c5472616e73666572416363657074656408002801244368616e6e656c496400006d0201645472616e73666572436f6d6d69746d656e745769746e65737300310054476c6f62616c4e66744c696d6974557064617465640800890201384e66744c696d6974506572696f64000028010c753634003200584368616e6e656c4e66744c696d6974557064617465641000a5010130436f6e74656e744163746f720000890201384e66744c696d6974506572696f6400002801244368616e6e656c4964000028010c75363400330040546f67676c65644e66744c696d6974730400980110626f6f6c0034004843726561746f72546f6b656e4973737565640c00a5010130436f6e74656e744163746f7200002801244368616e6e656c4964000028011c546f6b656e4964003500085c4576656e747320666f722074686973206d6f64756c652e00a5010c3870616c6c65745f636f6e74656e742c7065726d697373696f6e7330436f6e74656e744163746f720c3843757261746f7247726f7570496401282443757261746f7249640128204d656d62657249640128010c1c43757261746f72080028013843757261746f7247726f75704964000028012443757261746f724964000000184d656d62657204002801204d656d6265724964000100104c65616400020000a9010c3870616c6c65745f636f6e74656e74147479706573344368616e6e656c5265636f72642c204d656d626572496401283843757261746f7247726f7570496401281c42616c616e63650118544368616e6e656c50726976696c6567654c6576656c01082c426c6f636b4e756d62657201101c546f6b656e49640128285472616e7366657249640128404368616e6e656c41737365747353657401ad015c4368616e6e656c436f6c6c61626f7261746f72734d617001b10144506175736564466561747572657353657401d10148526570617961626c65426c6f6174426f6e6401e101003801146f776e6572e50101984368616e6e656c4f776e65723c4d656d62657249642c2043757261746f7247726f757049643e0001286e756d5f766964656f7328010c753634000134636f6c6c61626f7261746f7273b101015c4368616e6e656c436f6c6c61626f7261746f72734d617000016463756d756c61746976655f7265776172645f636c61696d656418011c42616c616e636500013c70726976696c6567655f6c6576656c0801544368616e6e656c50726976696c6567654c6576656c00013c7061757365645f6665617475726573d1010144506175736564466561747572657353657400013c7472616e736665725f737461747573e9010179014368616e6e656c5472616e736665725374617475733c4d656d62657249642c2043757261746f7247726f757049642c2042616c616e63652c205472616e7366657249642c0a4368616e6e656c436f6c6c61626f7261746f72734d61702c3e000130646174615f6f626a65637473ad0101404368616e6e656c41737365747353657400013c6461696c795f6e66745f6c696d6974f501016c4c696d6974506572506572696f643c426c6f636b4e756d6265723e0001407765656b6c795f6e66745f6c696d6974f501016c4c696d6974506572506572696f643c426c6f636b4e756d6265723e0001446461696c795f6e66745f636f756e746572f901015c4e6674436f756e7465723c426c6f636b4e756d6265723e0001487765656b6c795f6e66745f636f756e746572f901015c4e6674436f756e7465723c426c6f636b4e756d6265723e00014063726561746f725f746f6b656e5f69643501013c4f7074696f6e3c546f6b656e49643e0001606368616e6e656c5f73746174655f626c6f61745f626f6e64e1010148526570617961626c65426c6f6174426f6e640000ad010c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401280453000004006901012c42547265655365743c543e0000b1010c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b0128045601b501045300000400c501013842547265654d61703c4b2c20563e0000b5010c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401b901045300000400bd01012c42547265655365743c543e0000b901103870616c6c65745f636f6e74656e74147479706573386974657261626c655f656e756d735c4368616e6e656c416374696f6e5065726d697373696f6e000154545570646174654368616e6e656c4d657461646174610000006c4d616e6167654e6f6e566964656f4368616e6e656c417373657473000100684d616e6167654368616e6e656c436f6c6c61626f7261746f72730002004c557064617465566964656f4d6574616461746100030020416464566964656f000400444d616e616765566964656f4173736574730005003444656c6574654368616e6e656c0006002c44656c657465566964656f0007003c4d616e616765566964656f4e6674730008002c4167656e7452656d61726b0009003c5472616e736665724368616e6e656c000a0048436c61696d4368616e6e656c526577617264000b0068576974686472617746726f6d4368616e6e656c42616c616e6365000c0044497373756543726561746f72546f6b656e000d0068436c61696d43726561746f72546f6b656e506174726f6e616765000e0074496e6974416e644d616e61676543726561746f72546f6b656e53616c65000f006843726561746f72546f6b656e4973737565725472616e73666572001000784d616b6543726561746f72546f6b656e5065726d697373696f6e6c6573730011007c52656475636543726561746f72546f6b656e506174726f6e616765526174650012004c4d616e616765526576656e756553706c6974730013004c4465697373756543726561746f72546f6b656e00140000bd010420425472656553657404045401b901000400c101000000c101000002b90100c501042042547265654d617008044b0128045601b501000400c901000000c901000002cd0100cd010000040828b50100d1010c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401d501045300000400d901012c42547265655365743c543e0000d501143870616c6c65745f636f6e74656e742c7065726d697373696f6e733463757261746f725f67726f7570386974657261626c655f656e756d73585061757361626c654368616e6e656c4665617475726500011c504368616e6e656c46756e64735472616e736665720000003843726561746f72436173686f757400010040566964656f4e667449737375616e636500020034566964656f4372656174696f6e0003002c566964656f557064617465000400344368616e6e656c5570646174650005005043726561746f72546f6b656e49737375616e636500060000d9010420425472656553657404045401d501000400dd01000000dd01000002d50100e1010c3470616c6c65745f636f6d6d6f6e28626c6f61745f626f6e6448526570617961626c65426c6f6174426f6e6408244163636f756e74496401001c42616c616e636501180008015c72657061796d656e745f726573747269637465645f746f9401444f7074696f6e3c4163636f756e7449643e000118616d6f756e7418011c42616c616e63650000e5010c3870616c6c65745f636f6e74656e74147479706573304368616e6e656c4f776e657208204d656d626572496401283843757261746f7247726f7570496401280108184d656d62657204002801204d656d62657249640000003043757261746f7247726f7570040028013843757261746f7247726f7570496400010000e9010c3870616c6c65745f636f6e74656e74147479706573544368616e6e656c5472616e7366657253746174757314204d656d626572496401283843757261746f7247726f7570496401281c42616c616e63650118285472616e73666572496401285c4368616e6e656c436f6c6c61626f7261746f72734d617001b1010108404e6f4163746976655472616e736665720000003c50656e64696e675472616e736665720400ed01015d0150656e64696e675472616e736665723c4d656d62657249642c2043757261746f7247726f757049642c2042616c616e63652c205472616e7366657249642c0a4368616e6e656c436f6c6c61626f7261746f72734d61703e00010000ed010c3870616c6c65745f636f6e74656e741474797065733c50656e64696e675472616e7366657214204d656d626572496401283843757261746f7247726f7570496401281c42616c616e63650118285472616e73666572496401285c4368616e6e656c436f6c6c61626f7261746f72734d617001b101000801246e65775f6f776e6572e50101984368616e6e656c4f776e65723c4d656d62657249642c2043757261746f7247726f757049643e00013c7472616e736665725f706172616d73f1010129015472616e73666572436f6d6d69746d656e74506172616d65746572733c4368616e6e656c436f6c6c61626f7261746f72734d61702c2042616c616e63652c205472616e7366657249643e0000f1010c3870616c6c65745f636f6e74656e74147479706573705472616e73666572436f6d6d69746d656e74506172616d65746572730c5c4368616e6e656c436f6c6c61626f7261746f72734d617001b1011c42616c616e63650118285472616e7366657249640128000c01446e65775f636f6c6c61626f7261746f7273b101015c4368616e6e656c436f6c6c61626f7261746f72734d6170000114707269636518011c42616c616e636500012c7472616e736665725f69642801285472616e7366657249640000f5010c3870616c6c65745f636f6e74656e74147479706573384c696d6974506572506572696f64042c426c6f636b4e756d6265720110000801146c696d697428010c75363400014c626c6f636b5f6e756d6265725f706572696f6410012c426c6f636b4e756d6265720000f9010c3870616c6c65745f636f6e74656e74147479706573284e6674436f756e746572042c426c6f636b4e756d62657201100008011c636f756e74657228010c7536340001306c6173745f7570646174656410012c426c6f636b4e756d6265720000fd01103870616c6c65745f636f6e74656e740c6e667414747970657368456e676c69736841756374696f6e506172616d735265636f72640c2c426c6f636b4e756d62657201101c42616c616e63650118204d656d62657249640128001c01387374617274696e675f707269636518011c42616c616e63650001346275795f6e6f775f70726963654501013c4f7074696f6e3c42616c616e63653e00012477686974656c6973746901014842547265655365743c4d656d62657249643e0001247374617274735f61740102014c4f7074696f6e3c426c6f636b4e756d6265723e0001206475726174696f6e10012c426c6f636b4e756d626572000140657874656e73696f6e5f706572696f6410012c426c6f636b4e756d6265720001306d696e5f6269645f7374657018011c42616c616e63650000010204184f7074696f6e04045401100108104e6f6e6500000010536f6d6504001000000100000502103870616c6c65745f636f6e74656e740c6e66741474797065735c4f70656e41756374696f6e506172616d735265636f72640c2c426c6f636b4e756d62657201101c42616c616e63650118204d656d62657249640128001401387374617274696e675f707269636518011c42616c616e63650001346275795f6e6f775f70726963654501013c4f7074696f6e3c42616c616e63653e0001247374617274735f61740102014c4f7074696f6e3c426c6f636b4e756d6265723e00012477686974656c6973746901014842547265655365743c4d656d62657249643e0001446269645f6c6f636b5f6475726174696f6e10012c426c6f636b4e756d62657200000902103870616c6c65745f636f6e74656e740c6e66741474797065736c4e667449737375616e6365506172616d65746572735265636f726408204d656d626572496401285c496e69745472616e73616374696f6e616c537461747573010d020010011c726f79616c74791102013c4f7074696f6e3c526f79616c74793e0001306e66745f6d6574616461746130012c4e66744d657461646174610001446e6f6e5f6368616e6e656c5f6f776e6572350101404f7074696f6e3c4d656d62657249643e000164696e69745f7472616e73616374696f6e616c5f7374617475730d02015c496e69745472616e73616374696f6e616c53746174757300000d02103870616c6c65745f636f6e74656e740c6e667414747970657374496e69745472616e73616374696f6e616c5374617475735265636f72641050456e676c69736841756374696f6e506172616d7301fd01444f70656e41756374696f6e506172616d73010502204d656d626572496401281c42616c616e6365011801141049646c65000000184275794e6f77040018011c42616c616e636500010058496e697469617465644f66666572546f4d656d62657208002801204d656d626572496400004501013c4f7074696f6e3c42616c616e63653e00020038456e676c69736841756374696f6e0400fd010150456e676c69736841756374696f6e506172616d730003002c4f70656e41756374696f6e0400050201444f70656e41756374696f6e506172616d7300040000110204184f7074696f6e04045401ac0108104e6f6e6500000010536f6d650400ac000001000015020c3870616c6c65745f636f6e74656e741474797065737c4368616e6e656c4372656174696f6e506172616d65746572735265636f7264143453746f72616765417373657473011902204d656d626572496401283c53746f726167654275636b65744964012850446973747269627574696f6e4275636b657449640125021c42616c616e63650118001c0118617373657473290201544f7074696f6e3c53746f726167654173736574733e0001106d6574613101013c4f7074696f6e3c5665633c75383e3e000134636f6c6c61626f7261746f72732d0201ac42547265654d61703c4d656d62657249642c204368616e6e656c4167656e745065726d697373696f6e733e00013c73746f726167655f6275636b6574736901016442547265655365743c53746f726167654275636b657449643e000150646973747269627574696f6e5f6275636b6574733902017842547265655365743c446973747269627574696f6e4275636b657449643e00018465787065637465645f6368616e6e656c5f73746174655f626c6f61745f626f6e6418011c42616c616e636500019465787065637465645f646174615f6f626a6563745f73746174655f626c6f61745f626f6e6418011c42616c616e6365000019020c3870616c6c65745f636f6e74656e741474797065734c53746f726167654173736574735265636f7264041c42616c616e63650118000801506f626a6563745f6372656174696f6e5f6c6973741d0201845665633c446174614f626a6563744372656174696f6e506172616d65746572733e00015865787065637465645f646174615f73697a655f66656518011c42616c616e636500001d020000022102002102083870616c6c65745f73746f7261676570446174614f626a6563744372656174696f6e506172616d6574657273000008011073697a6528010c75363400013c697066735f636f6e74656e745f696430011c5665633c75383e00002502083870616c6c65745f73746f7261676568446973747269627574696f6e4275636b657449645265636f72640868446973747269627574696f6e4275636b657446616d696c79496401285c446973747269627574696f6e4275636b6574496e646578012800080174646973747269627574696f6e5f6275636b65745f66616d696c795f6964280168446973747269627574696f6e4275636b657446616d696c794964000164646973747269627574696f6e5f6275636b65745f696e64657828015c446973747269627574696f6e4275636b6574496e6465780000290204184f7074696f6e0404540119020108104e6f6e6500000010536f6d650400190200000100002d02042042547265654d617008044b0128045601bd010004003102000000310200000235020035020000040828bd01003902042042547265655365740404540125020004003d020000003d0200000225020041020c3870616c6c65745f636f6e74656e74147479706573744368616e6e656c557064617465506172616d65746572735265636f7264103453746f7261676541737365747301190230446174614f626a65637449640128204d656d626572496401281c42616c616e63650118001801406173736574735f746f5f75706c6f6164290201544f7074696f6e3c53746f726167654173736574733e0001206e65775f6d6574613101013c4f7074696f6e3c5665633c75383e3e0001406173736574735f746f5f72656d6f76656901015842547265655365743c446174614f626a65637449643e000134636f6c6c61626f7261746f7273450201cc4f7074696f6e3c42547265654d61703c4d656d62657249642c204368616e6e656c4167656e745065726d697373696f6e733e3e00019465787065637465645f646174615f6f626a6563745f73746174655f626c6f61745f626f6e6418011c42616c616e636500016c73746f726167655f6275636b6574735f6e756d5f7769746e6573730102012c4f7074696f6e3c7533323e0000450204184f7074696f6e040454012d020108104e6f6e6500000010536f6d6504002d02000001000049020c3870616c6c65745f636f6e74656e7414747970657374566964656f4372656174696f6e506172616d65746572735265636f72640c3453746f72616765417373657473011902544e667449737375616e6365506172616d65746572730109021c42616c616e6365011800180118617373657473290201544f7074696f6e3c53746f726167654173736574733e0001106d6574613101013c4f7074696f6e3c5665633c75383e3e0001386175746f5f69737375655f6e66744d0201744f7074696f6e3c4e667449737375616e6365506172616d65746572733e00017c65787065637465645f766964656f5f73746174655f626c6f61745f626f6e6418011c42616c616e636500019465787065637465645f646174615f6f626a6563745f73746174655f626c6f61745f626f6e6418011c42616c616e636500016c73746f726167655f6275636b6574735f6e756d5f7769746e65737310010c75333200004d0204184f7074696f6e0404540109020108104e6f6e6500000010536f6d6504000902000001000051020c3870616c6c65745f636f6e74656e741474797065736c566964656f557064617465506172616d65746572735265636f7264103453746f7261676541737365747301190230446174614f626a65637449640128544e667449737375616e6365506172616d65746572730109021c42616c616e63650118001801406173736574735f746f5f75706c6f6164290201544f7074696f6e3c53746f726167654173736574733e0001206e65775f6d6574613101013c4f7074696f6e3c5665633c75383e3e0001406173736574735f746f5f72656d6f76656901015842547265655365743c446174614f626a65637449643e0001386175746f5f69737375655f6e66744d0201744f7074696f6e3c4e667449737375616e6365506172616d65746572733e00019465787065637465645f646174615f6f626a6563745f73746174655f626c6f61745f626f6e6418011c42616c616e636500016c73746f726167655f6275636b6574735f6e756d5f7769746e6573730102012c4f7074696f6e3c7533323e00005502042042547265654d617008044b010804560159020004006502000000590204204254726565536574040454015d0200040061020000005d02143870616c6c65745f636f6e74656e742c7065726d697373696f6e733463757261746f725f67726f7570386974657261626c655f656e756d735c436f6e74656e744d6f6465726174696f6e416374696f6e0001202448696465566964656f0000002c486964654368616e6e656c000100684368616e67654368616e6e656c466561747572655374617475730400d50101585061757361626c654368616e6e656c466561747572650002002c44656c657465566964656f0003003444656c6574654368616e6e656c0004004444656c657465566964656f4173736574730400980110626f6f6c0005006c44656c6574654e6f6e566964656f4368616e6e656c417373657473000600585570646174654368616e6e656c4e66744c696d6974730007000061020000025d02006502000002690200690200000408085902006d020c3870616c6c65745f636f6e74656e74147479706573705472616e73666572436f6d6d69746d656e74506172616d65746572730c5c4368616e6e656c436f6c6c61626f7261746f72734d6170012d021c42616c616e63650118285472616e7366657249640128000c01446e65775f636f6c6c61626f7261746f72732d02015c4368616e6e656c436f6c6c61626f7261746f72734d6170000114707269636518011c42616c616e636500012c7472616e736665725f69642801285472616e736665724964000071020c3870616c6c65745f636f6e74656e74147479706573905570646174654368616e6e656c5061796f757473506172616d65746572735265636f72640c7c4368616e6e656c5061796f7574735061796c6f6164506172616d65746572730175021c42616c616e636501181048617368012c00140128636f6d6d69746d656e74790201304f7074696f6e3c486173683e00011c7061796c6f61647d02019c4f7074696f6e3c4368616e6e656c5061796f7574735061796c6f6164506172616d65746572733e00014c6d696e5f636173686f75745f616c6c6f7765644501013c4f7074696f6e3c42616c616e63653e00014c6d61785f636173686f75745f616c6c6f7765644501013c4f7074696f6e3c42616c616e63653e0001606368616e6e656c5f636173686f7574735f656e61626c6564810201304f7074696f6e3c626f6f6c3e000075020c3870616c6c65745f636f6e74656e74147479706573944368616e6e656c5061796f7574735061796c6f6164506172616d65746572735265636f7264041c42616c616e63650118000c01586f626a6563745f6372656174696f6e5f706172616d7321020170446174614f626a6563744372656174696f6e506172616d657465727300015865787065637465645f646174615f73697a655f66656518011c42616c616e636500019465787065637465645f646174615f6f626a6563745f73746174655f626c6f61745f626f6e6418011c42616c616e63650000790204184f7074696f6e040454012c0108104e6f6e6500000010536f6d6504002c00000100007d0204184f7074696f6e0404540175020108104e6f6e6500000010536f6d65040075020000010000810204184f7074696f6e04045401980108104e6f6e6500000010536f6d65040098000001000085020c3870616c6c65745f636f6e74656e741474797065735c4368616e6e656c46756e647344657374696e6174696f6e04244163636f756e74496401000108244163636f756e74496404000001244163636f756e74496400000034436f756e63696c4275646765740001000089020c3870616c6c65745f636f6e74656e74147479706573384e66744c696d6974506572696f64000108144461696c79000000185765656b6c79000100008d02083870616c6c65745f73746f72616765205261774576656e74303c53746f726167654275636b65744964012820576f726b65724964012830446174614f626a656374496401284055706c6f6164506172616d65746572730191021442616749640195023044796e616d69634261674964019d02244163636f756e74496401001c42616c616e6365011868446973747269627574696f6e4275636b657446616d696c794964012850446973747269627574696f6e4275636b657449640125025c446973747269627574696f6e4275636b6574496e64657801287044796e616d69634261674372656174696f6e506172616d657465727301a10201a85053746f726167654275636b657443726561746564140028013c53746f726167654275636b657449640000350101404f7074696f6e3c576f726b657249643e0000980110626f6f6c000028010c753634000028010c75363400001c94456d697473206f6e206372656174696e67207468652073746f72616765206275636b65742e18506172616d734c2d2073746f72616765206275636b6574204944402d20696e766974656420776f726b65726c2d20666c61672022616363657074696e675f6e65775f6261677322642d2073697a65206c696d697420666f7220766f75636865722c702d206f626a65637473206c696d697420666f7220766f75636865722c7c53746f726167654275636b6574496e7669746174696f6e41636365707465640c0028013c53746f726167654275636b657449640000280120576f726b6572496400000001244163636f756e744964000114c4456d697473206f6e20616363657074696e67207468652073746f72616765206275636b657420696e7669746174696f6e2e18506172616d734c2d2073746f72616765206275636b65742049444c2d20696e766974656420776f726b65722049445c2d207472616e736163746f72206163636f756e742049446c53746f726167654275636b65747355706461746564466f724261670c0095020114426167496400006901016442547265655365743c53746f726167654275636b657449643e00006901016442547265655365743c53746f726167654275636b657449643e000214a8456d697473206f6e207570646174696e672073746f72616765206275636b65747320666f72206261672e18506172616d73202d20626167204944982d2073746f72616765206275636b65747320746f2061646420494420636f6c6c656374696f6ea42d2073746f72616765206275636b65747320746f2072656d6f766520494420636f6c6c656374696f6e4c446174614f626a6563747355706c6f616465640c006901015842547265655365743c446174614f626a65637449643e00009102014055706c6f6164506172616d6574657273000018011c42616c616e636500031480456d697473206f6e2075706c6f6164696e672064617461206f626a656374732e18506172616d73482d2064617461206f626a6563747320494473782d20696e697469616c2075706c6f6164696e6720706172616d6574657273782d20737461746520626c6f617420626f6e6420666f72206f626a656374736853746f726167654f70657261746f724d657461646174615365740c0028013c53746f726167654275636b657449640000280120576f726b65724964000030011c5665633c75383e000414bc456d697473206f6e2073657474696e67207468652073746f72616765206f70657261746f72206d657461646174612e18506172616d734c2d2073746f72616765206275636b65742049444c2d20696e766974656420776f726b6572204944282d206d657461646174617453746f726167654275636b6574566f75636865724c696d6974735365740c0028013c53746f726167654275636b65744964000028010c753634000028010c753634000514cc456d697473206f6e2073657474696e67207468652073746f72616765206275636b657420766f7563686572206c696d6974732e18506172616d734c2d2073746f72616765206275636b6574204944782d206e657720746f74616c206f626a656374732073697a65206c696d6974802d206e657720746f74616c206f626a65637473206e756d626572206c696d69746850656e64696e67446174614f626a656374734163636570746564100028013c53746f726167654275636b657449640000280120576f726b65724964000095020114426167496400006901015842547265655365743c446174614f626a65637449643e000618a0456d697473206f6e20616363657074696e672070656e64696e672064617461206f626a656374732e18506172616d734c2d2073746f72616765206275636b6574204944842d20776f726b6572204944202873746f726167652070726f766964657220494429202d20626167204944582d2070656e64696e672064617461206f626a656374738053746f726167654275636b6574496e7669746174696f6e43616e63656c6c6564040028013c53746f726167654275636b6574496400070cc8456d697473206f6e2063616e63656c6c696e67207468652073746f72616765206275636b657420696e7669746174696f6e2e18506172616d734c2d2073746f72616765206275636b65742049447053746f726167654275636b65744f70657261746f72496e7669746564080028013c53746f726167654275636b657449640000280120576f726b65724964000810c0456d697473206f6e207468652073746f72616765206275636b6574206f70657261746f7220696e7669746174696f6e2e18506172616d734c2d2073746f72616765206275636b6574204944a82d206f70657261746f7220776f726b6572204944202873746f726167652070726f7669646572204944297053746f726167654275636b65744f70657261746f7252656d6f766564040028013c53746f726167654275636b6574496400090cb4456d697473206f6e207468652073746f72616765206275636b6574206f70657261746f722072656d6f76616c2e18506172616d734c2d2073746f72616765206275636b65742049446c55706c6f6164696e67426c6f636b537461747573557064617465640400980110626f6f6c000a0c0501456d697473206f6e206368616e67696e67207468652073697a652d62617365642070726963696e67206f66206e6577206f626a656374732075706c6f616465642e18506172616d73302d206e6577207374617475737c446174614f626a6563745065724d6567616279746546656555706461746564040018011c42616c616e6365000b0c0501456d697473206f6e206368616e67696e67207468652073697a652d62617365642070726963696e67206f66206e6577206f626a656374732075706c6f616465642e18506172616d734c2d206e657720646174612073697a65206665658053746f726167654275636b6574735065724261674c696d697455706461746564040010010c753332000c0cf4456d697473206f6e206368616e67696e6720746865202253746f72616765206275636b657473207065722062616722206e756d626572206c696d69742e18506172616d732c2d206e6577206c696d69749453746f726167654275636b657473566f75636865724d61784c696d69747355706461746564080028010c753634000028010c753634000d10ec456d697473206f6e206368616e67696e6720746865202253746f72616765206275636b65747320766f7563686572206d6178206c696d697473222e18506172616d73602d206e6577206f626a656374732073697a65206c696d6974682d206e6577206f626a65637473206e756d626572206c696d697440446174614f626a656374734d6f7665640c00950201144261674964000095020114426167496400006901015842547265655365743c446174614f626a65637449643e000e14a8456d697473206f6e206d6f76696e672064617461206f626a65637473206265747765656e20626167732e18506172616d733c2d20736f7572636520626167204944502d2064657374696e6174696f6e20626167204944442d2064617461206f626a6563742049447348446174614f626a6563747344656c657465640c000001244163636f756e744964000095020114426167496400006901015842547265655365743c446174614f626a65637449643e000f14a4456d697473206f6e2064617461206f626a656374732064656c6574696f6e2066726f6d20626167732e18506172616d73942d206163636f756e7420494420666f722074686520737461746520626c6f617420626f6e64202d20626167204944442d2064617461206f626a656374204944736853746f726167654275636b657453746174757355706461746564080028013c53746f726167654275636b657449640000980110626f6f6c00101098456d697473206f6e2073746f72616765206275636b657420737461747573207570646174652e18506172616d734c2d2073746f72616765206275636b6574204944302d206e6577207374617475733c557064617465426c61636b6c6973740800a502014442547265655365743c5665633c75383e3e0000a502014442547265655365743c5665633c75383e3e001110c4456d697473206f6e207570646174696e672074686520626c61636b6c69737420776974682064617461206861736865732e18506172616d73942d2068617368657320746f2072656d6f76652066726f6d2074686520626c61636b6c697374802d2068617368657320746f2061646420746f2074686520626c61636b6c6973744444796e616d696342616744656c6574656404009d02013044796e616d6963426167496400120c80456d697473206f6e2064656c6574696e6720612064796e616d6963206261672e18506172616d73402d2064796e616d6963206261672049444444796e616d6963426167437265617465640800a102017044796e616d69634261674372656174696f6e506172616d657465727300006901015842547265655365743c446174614f626a65637449643e00131080456d697473206f6e206372656174696e6720612064796e616d6963206261672e18506172616d73842d2064796e616d696320626167206372656174696f6e20706172616d65746572736c2d2075706c6f616465642064617461206f626a656374732069647338566f75636865724368616e676564080028013c53746f726167654275636b657449640000ad02011c566f7563686572001410cc456d697473206f6e206368616e67696e672074686520766f756368657220666f7220612073746f72616765206275636b65742e18506172616d734c2d2073746f72616765206275636b6574204944342d206e657720766f75636865725053746f726167654275636b657444656c65746564040028013c53746f726167654275636b6574496400150c84456d697473206f6e2073746f72616765206275636b65742064656c6574696e672e18506172616d734c2d2073746f72616765206275636b6574204944dc4e756d6265724f6653746f726167654275636b657473496e44796e616d69634261674372656174696f6e506f6c696379557064617465640800b102013844796e616d696342616754797065000010010c7533320016103d01456d697473206f6e207570646174696e6720746865206e756d626572206f662073746f72616765206275636b65747320696e2064796e616d696320626167206372656174696f6e20706f6c6963792e18506172616d73482d2064796e616d69632062616720747970657c2d206e6577206e756d626572206f662073746f72616765206275636b6574737c446973747269627574696f6e4275636b657446616d696c79437265617465640400280168446973747269627574696f6e4275636b657446616d696c79496400170cb4456d697473206f6e206372656174696e6720646973747269627574696f6e206275636b65742066616d696c792e18506172616d737c2d20646973747269627574696f6e2066616d696c79206275636b65742049447c446973747269627574696f6e4275636b657446616d696c7944656c657465640400280168446973747269627574696f6e4275636b657446616d696c79496400180cb4456d697473206f6e2064656c6574696e6720646973747269627574696f6e206275636b65742066616d696c792e18506172616d737c2d20646973747269627574696f6e2066616d696c79206275636b657420494464446973747269627574696f6e4275636b6574437265617465640c00280168446973747269627574696f6e4275636b657446616d696c7949640000980110626f6f6c000025020150446973747269627574696f6e4275636b6574496400191498456d697473206f6e206372656174696e6720646973747269627574696f6e206275636b65742e18506172616d737c2d20646973747269627574696f6e206275636b65742066616d696c79204944502d20616363657074696e67206e65772062616773602d20646973747269627574696f6e206275636b65742049447c446973747269627574696f6e4275636b657453746174757355706461746564080025020150446973747269627574696f6e4275636b657449640000980110626f6f6c001a10ec456d697473206f6e2073746f72616765206275636b657420737461747573207570646174652028616363657074696e67206e65772062616773292e18506172616d73602d20646973747269627574696f6e206275636b6574204944842d206e6577207374617475732028616363657074696e67206e657720626167732964446973747269627574696f6e4275636b657444656c65746564040025020150446973747269627574696f6e4275636b65744964001b0c98456d697473206f6e2064656c6574696e6720646973747269627574696f6e206275636b65742e18506172616d73602d20646973747269627574696f6e206275636b657420494480446973747269627574696f6e4275636b65747355706461746564466f7242616710009502011442616749640000280168446973747269627574696f6e4275636b657446616d696c79496400006901018442547265655365743c446973747269627574696f6e4275636b6574496e6465783e00006901018442547265655365743c446973747269627574696f6e4275636b6574496e6465783e001c14bc456d697473206f6e207570646174696e6720646973747269627574696f6e206275636b65747320666f72206261672e18506172616d73202d20626167204944982d2073746f72616765206275636b65747320746f2061646420494420636f6c6c656374696f6ea42d2073746f72616765206275636b65747320746f2072656d6f766520494420636f6c6c656374696f6e94446973747269627574696f6e4275636b6574735065724261674c696d697455706461746564040010010c753332001d0c0901456d697473206f6e206368616e67696e67207468652022446973747269627574696f6e206275636b657473207065722062616722206e756d626572206c696d69742e18506172616d732c2d206e6577206c696d697474446973747269627574696f6e4275636b65744d6f646555706461746564080025020150446973747269627574696f6e4275636b657449640000980110626f6f6c001e10e0456d697473206f6e2073746f72616765206275636b6574206d6f6465207570646174652028646973747269627574696e6720666c6167292e18506172616d73602d20646973747269627574696f6e206275636b6574204944382d20646973747269627574696e67a446616d696c696573496e44796e616d69634261674372656174696f6e506f6c696379557064617465640800b102013844796e616d6963426167547970650000b50201a442547265654d61703c446973747269627574696f6e4275636b657446616d696c7949642c207533323e001f102d01456d697473206f6e2064796e616d696320626167206372656174696f6e20706f6c696379207570646174652028646973747269627574696f6e206275636b65742066616d696c696573292e18506172616d73482d2064796e616d6963206261672074797065742d2066616d696c69657320616e64206275636b6574206e756d6265727384446973747269627574696f6e4275636b65744f70657261746f72496e7669746564080025020150446973747269627574696f6e4275636b657449640000280120576f726b657249640020101101456d697473206f6e206372656174696e67206120646973747269627574696f6e206275636b657420696e7669746174696f6e20666f7220746865206f70657261746f722e18506172616d73602d20646973747269627574696f6e206275636b65742049442c2d20776f726b657220494494446973747269627574696f6e4275636b6574496e7669746174696f6e43616e63656c6c6564080025020150446973747269627574696f6e4275636b657449640000280120576f726b657249640021101501456d697473206f6e2063616e63656c696e67206120646973747269627574696f6e206275636b657420696e7669746174696f6e20666f7220746865206f70657261746f722e18506172616d73602d20646973747269627574696f6e206275636b6574204944502d206f70657261746f7220776f726b657220494490446973747269627574696f6e4275636b6574496e7669746174696f6e41636365707465640800280120576f726b65724964000025020150446973747269627574696f6e4275636b657449640022101501456d697473206f6e20616363657074696e67206120646973747269627574696f6e206275636b657420696e7669746174696f6e20666f7220746865206f70657261746f722e18506172616d732c2d20776f726b6572204944602d20646973747269627574696f6e206275636b657420494474446973747269627574696f6e4275636b65744d657461646174615365740c00280120576f726b65724964000025020150446973747269627574696f6e4275636b65744964000030011c5665633c75383e0023140101456d697473206f6e2073657474696e6720746865206d65746164617461206279206120646973747269627574696f6e206275636b6574206f70657261746f722e18506172616d732c2d20776f726b6572204944602d20646973747269627574696f6e206275636b6574204944282d206d6574616461746184446973747269627574696f6e4275636b65744f70657261746f7252656d6f766564080025020150446973747269627574696f6e4275636b657449640000280120576f726b65724964002410c8456d697473206f6e2074686520646973747269627574696f6e206275636b6574206f70657261746f722072656d6f76616c2e18506172616d73602d20646973747269627574696f6e206275636b6574204944842d20646973747269627574696f6e206275636b6574206f70657261746f722049448c446973747269627574696f6e4275636b657446616d696c794d657461646174615365740800280168446973747269627574696f6e4275636b657446616d696c794964000030011c5665633c75383e002510f8456d697473206f6e2073657474696e6720746865206d65746164617461206279206120646973747269627574696f6e206275636b65742066616d696c792e18506172616d737c2d20646973747269627574696f6e206275636b65742066616d696c79204944282d206d6574616461746190446174614f626a6563745374617465426c6f6174426f6e6456616c756555706461746564040018011c42616c616e636500260ccc456d697473206f6e207570646174696e67207468652064617461206f626a65637420737461746520626c6f617420626f6e642e18506172616d73602d20737461746520626c6f617420626f6e642076616c756548446174614f626a65637473557064617465640c009102014055706c6f6164506172616d657465727300006901015842547265655365743c446174614f626a65637449643e00006901015842547265655365743c446174614f626a65637449643e0027140d01456d697473206f6e2073746f7261676520617373657473206265696e672075706c6f6164656420616e642064656c65746564206174207468652073616d652074696d6518506172616d73482d2055706c6f6164506172616d6574657273742d20496473206f66207468652075706c6f61646564206f626a65637473702d20496473206f66207468652072656d6f766564206f626a656374735c53746f726167654f70657261746f7252656d61726b65640c00280120576f726b65724964000028013c53746f726167654275636b65744964000030011c5665633c75383e002814a4456d697473206f6e2053746f72616765204f70657261746f72206d616b696e6720612072656d61726b18506172616d73582d206f70657261746f72277320776f726b65722069644c2d2073746f72616765206275636b6574206964402d2072656d61726b206d65737361676570446973747269627574696f6e4f70657261746f7252656d61726b65640c00280120576f726b65724964000025020150446973747269627574696f6e4275636b65744964000030011c5665633c75383e002914b8456d697473206f6e20446973747269627574696f6e204f70657261746f72206d616b696e6720612072656d61726b18506172616d73582d206f70657261746f72277320776f726b6572206964602d20646973747269627574696f6e206275636b6574206964402d2072656d61726b206d6573736167650c5c4576656e747320666f722074686973206d6f64756c652e003853746f72616765206576656e74739102083870616c6c65745f73746f726167655855706c6f6164506172616d65746572735265636f72640c144261674964019502244163636f756e74496401001c42616c616e63650118001401186261675f69649502011442616749640001506f626a6563745f6372656174696f6e5f6c6973741d0201845665633c446174614f626a6563744372656174696f6e506172616d65746572733e00018873746174655f626c6f61745f626f6e645f736f757263655f6163636f756e745f69640001244163636f756e74496400015865787065637465645f646174615f73697a655f66656518011c42616c616e636500019465787065637465645f646174615f6f626a6563745f73746174655f626c6f61745f626f6e6418011c42616c616e636500009502083870616c6c65745f73746f726167652442616749645479706508204d656d62657249640128244368616e6e656c4964012801081853746174696304009902012c53746174696342616749640000001c44796e616d696304009d02019444796e616d69634261674964547970653c4d656d62657249642c204368616e6e656c49643e000100009902083870616c6c65745f73746f726167652c53746174696342616749640001081c436f756e63696c00000030576f726b696e6747726f7570040099010130576f726b696e6747726f7570000100009d02083870616c6c65745f73746f726167654044796e616d696342616749645479706508204d656d62657249640128244368616e6e656c496401280108184d656d62657204002801204d656d62657249640000001c4368616e6e656c04002801244368616e6e656c496400010000a102083870616c6c65745f73746f726167657844796e4261674372656174696f6e506172616d65746572735265636f726414144261674964019d02244163636f756e74496401001c42616c616e636501183c53746f726167654275636b65744964012850446973747269627574696f6e4275636b65744964012502001c01186261675f69649d02011442616749640001506f626a6563745f6372656174696f6e5f6c6973741d0201845665633c446174614f626a6563744372656174696f6e506172616d65746572733e00018873746174655f626c6f61745f626f6e645f736f757263655f6163636f756e745f69640001244163636f756e74496400015865787065637465645f646174615f73697a655f66656518011c42616c616e636500019465787065637465645f646174615f6f626a6563745f73746174655f626c6f61745f626f6e6418011c42616c616e636500013c73746f726167655f6275636b6574736901016442547265655365743c53746f726167654275636b657449643e000150646973747269627574696f6e5f6275636b6574733902017842547265655365743c446973747269627574696f6e4275636b657449643e0000a502042042547265655365740404540130000400a902000000a9020000023000ad02083870616c6c65745f73746f726167651c566f7563686572000010012873697a655f6c696d697428010c7536340001346f626a656374735f6c696d697428010c75363400012473697a655f7573656428010c7536340001306f626a656374735f7573656428010c7536340000b102083870616c6c65745f73746f726167653844796e616d696342616754797065000108184d656d6265720000001c4368616e6e656c00010000b502042042547265654d617008044b012804560110000400b902000000b902000002bd0200bd0200000408281000c1020c5070616c6c65745f70726f6a6563745f746f6b656e186576656e7473205261774576656e74281c42616c616e63650118284a6f7942616c616e636501181c546f6b656e49640128244163636f756e7449640100204d656d626572496401282c426c6f636b4e756d6265720110385472616e73666572506f6c69637901c5025c546f6b656e49737375616e6365506172616d657465727301c9024856616c6964617465645472616e736665727301fd0224546f6b656e53616c65012103014858546f6b656e416d6f756e745472616e73666572726564100028011c546f6b656e496400002801204d656d62657249640000fd02014856616c6964617465645472616e7366657273000030011c5665633c75383e000018ac546f6b656e20616d6f756e74206973207472616e736665727265642066726f6d2073726320746f206473741c506172616d733a482d20746f6b656e206964656e746966696572482d20736f75726365206d656d62657220696459012d206d617020636f6e7461696e696e672076616c696461746564206f7574707574732028616d6f756e7420696e646578656420627920286d656d6265725f6964202b206163636f756e74206578697374616e63652929542d207472616e736665722773206d6574616461746178546f6b656e416d6f756e745472616e736665727265644279497373756572100028011c546f6b656e496400002801204d656d62657249640000fd02014856616c6964617465645472616e7366657273000030011c5665633c75383e00012088546f6b656e20616d6f756e74207472616e73666572726564206279206973737565721c506172616d733a482d20746f6b656e206964656e7469666965726c2d20736f75726365202869737375657229206d656d626572206964882d206d617020636f6e7461696e696e672076616c696461746564206f7574707574732d01202028616d6f756e742c206f70742e2076657374696e67207363686564756c652c206f70742e2076657374696e6720636c65616e7570206b657929206461746120696e6465786564206279882020286163636f756e745f6964202b206163636f756e74206578697374616e636529542d207472616e736665722773206d6574616461746160506174726f6e61676552617465446563726561736564546f080028011c546f6b656e496400002503012c5065727175696e74696c6c00021060506174726f6e6167652072617465206465637265617365641c506172616d733a482d20746f6b656e206964656e746966696572502d206e657720706174726f6e616765207261746558506174726f6e616765437265646974436c61696d65640c0028011c546f6b656e4964000018011c42616c616e636500002801204d656d62657249640003148c506174726f6e6167652063726564697420636c61696d65642062792063726561746f721c506172616d733a482d20746f6b656e206964656e7469666965723c2d2063726564697420616d6f756e742c2d206d656d62657220696448526576656e756553706c6974497373756564100028011c546f6b656e4964000010012c426c6f636b4e756d626572000010012c426c6f636b4e756d62657200001801284a6f7942616c616e636500041850526576656e75652053706c6974206973737565641c506172616d733a482d20746f6b656e206964656e746966696572782d207374617274696e6720626c6f636b20666f72207468652073706c69745c2d206475726174696f6e206f66207468652073706c6974742d204a4f5920616c6c6f636174656420666f72207468652073706c697454526576656e756553706c697446696e616c697a65640c0028011c546f6b656e496400000001244163636f756e74496400001801284a6f7942616c616e63650005145c526576656e75652053706c69742066696e616c697a65641c506172616d733a482d20746f6b656e206964656e746966696572a42d207265636f76657279206163636f756e7420666f7220746865206c6566746f7665722066756e6473402d206c6566746f7665722066756e64735c55736572506172746963697061746564496e53706c6974140028011c546f6b656e496400002801204d656d6265724964000018011c42616c616e636500001801284a6f7942616c616e63650000100138526576656e756553706c6974496400061c8855736572207061727469706174656420696e206120726576656e75652073706c69741c506172616d733a482d20746f6b656e206964656e746966696572642d207061727469636970616e742773206d656d6265722069647c2d207573657220616c6c6f6361746564207374616b65642062616c616e63657c2d206469766964656e6420616d6f756e7420284a4f5929206772616e746564682d20726576656e75652073706c6974206964656e74696669657240526576656e756553706c69744c6566740c0028011c546f6b656e496400002801204d656d6265724964000018011c42616c616e63650007145c55736572206c65667420726576656e75652073706c69741c506172616d733a482d20746f6b656e206964656e746966696572702d2065782d7061727469636970616e742773206d656d626572206964442d20616d6f756e7420756e7374616b6564544d656d6265724a6f696e656457686974656c6973740c0028011c546f6b656e496400002801204d656d62657249640000c50201385472616e73666572506f6c6963790008145c4d656d626572206a6f696e65642077686974656c6973741c506172616d733a482d20746f6b656e206964656e7469666965722c2d206d656d626572206964642d206f6e676f696e67207472616e7366657220706f6c6963793c4163636f756e744475737465644279100028011c546f6b656e496400002801204d656d626572496400000001244163636f756e7449640000c50201385472616e73666572506f6c696379000918384163636f756e74204475737465641c506172616d733a482d20746f6b656e206964656e7469666965729c2d206964206f662074686520647573746564206163636f756e74206f776e6572206d656d6265728c2d206163636f756e7420746861742063616c6c6564207468652065787472696e736963402d206f6e676f696e6720706f6c69637934546f6b656e4465697373756564040028011c546f6b656e4964000a0c38546f6b656e2044656973737565641c506172616d733a282d20746f6b656e2069642c546f6b656e497373756564080028011c546f6b656e49640000c902015c546f6b656e49737375616e6365506172616d6574657273000b1030546f6b656e204973737565641c506172616d733a282d20746f6b656e2069646c2d20746f6b656e2069737375616e636520706172616d657465727350546f6b656e53616c65496e697469616c697a6564100028011c546f6b656e4964000010012c546f6b656e53616c654964000021030124546f6b656e53616c6500003101013c4f7074696f6e3c5665633c75383e3e000c1864546f6b652053616c652077617320496e697469616c697a65641c506172616d733a282d20746f6b656e2069643c2d20746f6b656e2073616c65206964442d20746f6b656e2073616c652064617461542d20746f6b656e2073616c65206d65746164617461605570636f6d696e67546f6b656e53616c6555706461746564100028011c546f6b656e4964000010012c546f6b656e53616c65496400000102014c4f7074696f6e3c426c6f636b4e756d6265723e00000102014c4f7074696f6e3c426c6f636b4e756d6265723e000d187c5570636f6d696e6720546f6b656e2053616c652077617320557064617465641c506172616d733a282d20746f6b656e2069643c2d20746f6b656e2073616c65206964582d206e65772073616c6520737461727420626c6f636b4c2d206e65772073616c65206475726174696f6e54546f6b656e735075726368617365644f6e53616c65100028011c546f6b656e4964000010012c546f6b656e53616c654964000018011c42616c616e636500002801204d656d6265724964000e1860546f6b656e7320507572636861736564204f6e2053616c651c506172616d733a282d20746f6b656e2069643c2d20746f6b656e2073616c65206964702d20616d6f756e74206f6620746f6b656e73207075726368617365644c2d2062757965722773206d656d62657220696448546f6b656e53616c6546696e616c697a6564100028011c546f6b656e4964000010012c546f6b656e53616c654964000018011c42616c616e636500001801284a6f7942616c616e6365000f1850546f6b656e2053616c652046696e616c697a65641c506172616d733a282d20746f6b656e2069643c2d20746f6b656e2073616c652069648c2d20616d6f756e74206f6620756e736f6c6420746f6b656e73207265636f7665726564642d20616d6f756e74206f66204a4f5920636f6c6c6563746564945472616e73666572506f6c6963794368616e676564546f5065726d697373696f6e6c657373040028011c546f6b656e496400100ca45472616e7366657220506f6c696379204368616e67656420546f205065726d697373696f6e6c6573731c506172616d733a282d20746f6b656e20696430546f6b656e734275726e65640c0028011c546f6b656e496400002801204d656d6265724964000018011c42616c616e636500111434546f6b656e73204275726e65641c506172616d733a282d20746f6b656e2069642c2d206d656d626572206964642d206e756d626572206f6620746f6b656e73206275726e6564085c4576656e747320666f722074686973206d6f64756c652e00c5020c5070616c6c65745f70726f6a6563745f746f6b656e147479706573385472616e73666572506f6c696379041048617368012c0108385065726d697373696f6e6c657373000000305065726d697373696f6e656404002c01104861736800010000c9020c5070616c6c65745f70726f6a6563745f746f6b656e1474797065735c546f6b656e49737375616e6365506172616d6574657273101048617368012c3c546f6b656e416c6c6f636174696f6e01cd02505472616e73666572506f6c696379506172616d7301dd02204d656d6265724964012800140148696e697469616c5f616c6c6f636174696f6eed02018c42547265654d61703c4d656d62657249642c20546f6b656e416c6c6f636174696f6e3e00011873796d626f6c2c01104861736800013c7472616e736665725f706f6c696379dd0201505472616e73666572506f6c696379506172616d73000138706174726f6e6167655f72617465f9020128596561726c7952617465000148726576656e75655f73706c69745f72617465d502011c5065726d696c6c0000cd020c5070616c6c65745f70726f6a6563745f746f6b656e1474797065733c546f6b656e416c6c6f636174696f6e081c42616c616e636501185456657374696e675363686564756c65506172616d7301d10200080118616d6f756e7418011c42616c616e636500015c76657374696e675f7363686564756c655f706172616d73d90201744f7074696f6e3c56657374696e675363686564756c65506172616d733e0000d1020c5070616c6c65745f70726f6a6563745f746f6b656e1474797065735456657374696e675363686564756c65506172616d73042c426c6f636b4e756d6265720110000c015c6c696e6561725f76657374696e675f6475726174696f6e10012c426c6f636b4e756d62657200014c626c6f636b735f6265666f72655f636c69666610012c426c6f636b4e756d62657200015c636c6966665f616d6f756e745f70657263656e74616765d502011c5065726d696c6c0000d5020c3473705f61726974686d65746963287065725f7468696e67731c5065726d696c6c0000040010010c7533320000d90204184f7074696f6e04045401d1020108104e6f6e6500000010536f6d650400d1020000010000dd020c5070616c6c65745f70726f6a6563745f746f6b656e147479706573505472616e73666572506f6c696379506172616d73043c57686974656c697374506172616d7301e1020108385065726d697373696f6e6c657373000000305065726d697373696f6e65640400e102013c57686974656c697374506172616d7300010000e1020c5070616c6c65745f70726f6a6563745f746f6b656e1474797065733c57686974656c697374506172616d73081048617368012c7053696e676c65446174614f626a65637455706c6f6164506172616d7301e50200080128636f6d6d69746d656e742c01104861736800011c7061796c6f6164e90201904f7074696f6e3c53696e676c65446174614f626a65637455706c6f6164506172616d733e0000e5020c5070616c6c65745f70726f6a6563745f746f6b656e1474797065737053696e676c65446174614f626a65637455706c6f6164506172616d7304284a6f7942616c616e63650118000c01586f626a6563745f6372656174696f6e5f706172616d7321020170446174614f626a6563744372656174696f6e506172616d657465727300015865787065637465645f646174615f73697a655f6665651801284a6f7942616c616e636500019465787065637465645f646174615f6f626a6563745f73746174655f626c6f61745f626f6e641801284a6f7942616c616e63650000e90204184f7074696f6e04045401e5020108104e6f6e6500000010536f6d650400e5020000010000ed02042042547265654d617008044b0128045601cd02000400f102000000f102000002f50200f5020000040828cd0200f9020c5070616c6c65745f70726f6a6563745f746f6b656e14747970657328596561726c795261746500000400d502011c5065726d696c6c0000fd020c5070616c6c65745f70726f6a6563745f746f6b656e147479706573245472616e736665727308204d656d62657249640101031c5061796d656e740105030004001503016c42547265654d61703c4d656d62657249642c205061796d656e743e000001030c5070616c6c65745f70726f6a6563745f746f6b656e1474797065732456616c69646174656404204d656d626572496401280108204578697374696e6704002801204d656d62657249640000002c4e6f6e4578697374696e6704002801204d656d62657249640001000005030c5070616c6c65745f70726f6a6563745f746f6b656e1474797065734056616c6964617465645061796d656e7404485061796d656e745769746856657374696e670109030008011c7061796d656e74090301485061796d656e745769746856657374696e6700016476657374696e675f636c65616e75705f63616e6469646174650d0301544f7074696f6e3c56657374696e67536f757263653e000009030c5070616c6c65745f70726f6a6563745f746f6b656e147479706573485061796d656e745769746856657374696e67081c42616c616e636501185456657374696e675363686564756c65506172616d7301d10200080118616d6f756e7418011c42616c616e636500014076657374696e675f7363686564756c65d90201744f7074696f6e3c56657374696e675363686564756c65506172616d733e00000d0304184f7074696f6e0404540111030108104e6f6e6500000010536f6d6504001103000001000011030c5070616c6c65745f70726f6a6563745f746f6b656e1474797065733456657374696e67536f7572636500010c3c496e697469616c49737375616e63650000001053616c65040010012c546f6b656e53616c654964000100384973737565725472616e73666572040028010c753634000200001503042042547265654d617008044b0101030456010503000400190300000019030000021d03001d0300000408010305030021030c5070616c6c65745f70726f6a6563745f746f6b656e14747970657324546f6b656e53616c6518284a6f7942616c616e636501181c42616c616e636501182c426c6f636b4e756d62657201105456657374696e675363686564756c65506172616d7301d102204d656d62657249640128244163636f756e744964010000280128756e69745f70726963651801284a6f7942616c616e63650001347175616e746974795f6c65667418011c42616c616e636500013c66756e64735f636f6c6c65637465641801284a6f7942616c616e6365000134746f6b656e735f736f757263652801204d656d62657249640001506561726e696e67735f64657374696e6174696f6e9401444f7074696f6e3c4163636f756e7449643e00012c73746172745f626c6f636b10012c426c6f636b4e756d6265720001206475726174696f6e10012c426c6f636b4e756d62657200015c76657374696e675f7363686564756c655f706172616d73d90201744f7074696f6e3c56657374696e675363686564756c65506172616d733e0001386361705f7065725f6d656d6265724501013c4f7074696f6e3c42616c616e63653e0001346175746f5f66696e616c697a65980110626f6f6c000025030c3473705f61726974686d65746963287065725f7468696e67732c5065727175696e74696c6c0000040028010c75363400002903085c70616c6c65745f70726f706f73616c735f656e67696e65205261774576656e740c2850726f706f73616c49640110204d656d626572496401282c426c6f636b4e756d626572011001185450726f706f73616c53746174757355706461746564080010012850726f706f73616c496400002d03016c50726f706f73616c5374617475733c426c6f636b4e756d6265723e0000106c456d697473206f6e2070726f706f73616c206372656174696f6e2e1c506172616d733a4c2d204964206f6620612070726f706f73616c2e582d204e65772070726f706f73616c207374617475732e5050726f706f73616c4465636973696f6e4d616465080010012850726f706f73616c496400003103014050726f706f73616c4465636973696f6e000110b0456d697473206f6e2067657474696e6720612070726f706f73616c20737461747573206465636973696f6e2e1c506172616d733a4c2d204964206f6620612070726f706f73616c2e4c2d2050726f706f73616c206465636973696f6e4050726f706f73616c4578656375746564080010012850726f706f73616c496400003903013c457865637574696f6e53746174757300021070456d697473206f6e2070726f706f73616c20657865637574696f6e2e1c506172616d733a6c2d204964206f66206120757064617465642070726f706f73616c2e702d2050726f706f73616c20657865637574696f6e207374617475732e14566f74656410002801204d656d6265724964000010012850726f706f73616c496400003d030120566f74654b696e64000030011c5665633c75383e00031880456d697473206f6e20766f74696e6720666f72207468652070726f706f73616c1c506172616d733a7c2d20566f746572202d206d656d626572206964206f66206120766f7465722e4c2d204964206f6620612070726f706f73616c2e3c2d204b696e64206f6620766f74652e302d20526174696f6e616c652e4450726f706f73616c43616e63656c6c656408002801204d656d6265724964000010012850726f706f73616c49640004108c456d697473206f6e20612070726f706f73616c206265696e672063616e63656c6c65641c506172616d733a6c2d204d656d626572204964206f66207468652070726f706f736572502d204964206f66207468652070726f706f73616c4050726f706f73657252656d61726b65640c002801204d656d6265724964000010012850726f706f73616c4964000030011c5665633c75383e00051084456d697473206f6e2070726f706f736572206d616b696e6720612072656d61726b342d2070726f706f736572206964342d2070726f706f73616c206964242d206d6573736167650c5c4576656e747320666f722074686973206d6f64756c652e005c50726f706f73616c7320656e67696e65206576656e74732d03105c70616c6c65745f70726f706f73616c735f656e67696e651474797065734470726f706f73616c5f73746174757365733850726f706f73616c537461747573042c426c6f636b4e756d6265720110010c184163746976650000004050656e64696e67457865637574696f6e040010012c426c6f636b4e756d6265720001006050656e64696e67436f6e737469747574696f6e616c697479000200003103105c70616c6c65745f70726f706f73616c735f656e67696e651474797065734470726f706f73616c5f73746174757365734050726f706f73616c4465636973696f6e00011c2043616e63656c65640000004443616e63656c6564427952756e74696d65000100185665746f65640002002052656a65637465640003001c536c61736865640004001c4578706972656400050020417070726f766564040035030160417070726f76656450726f706f73616c4465636973696f6e000600003503105c70616c6c65745f70726f706f73616c735f656e67696e651474797065734470726f706f73616c5f737461747573657360417070726f76656450726f706f73616c4465636973696f6e0001084050656e64696e67457865637574696f6e0000006050656e64696e67436f6e737469747574696f6e616c697479000100003903105c70616c6c65745f70726f706f73616c735f656e67696e651474797065734470726f706f73616c5f73746174757365733c457865637574696f6e5374617475730001082045786563757465640000003c457865637574696f6e4661696c65640401146572726f7230011c5665633c75383e000100003d030c5c70616c6c65745f70726f706f73616c735f656e67696e6514747970657320566f74654b696e640001101c417070726f76650000001852656a65637400010014536c6173680002001c4162737461696e000300004103086c70616c6c65745f70726f706f73616c735f64697363757373696f6e205261774576656e740c2054687265616449640128204d656d6265724964012818506f737449640128011434546872656164437265617465640800280120546872656164496400002801204d656d626572496400000464456d697473206f6e20746872656164206372656174696f6e2e2c506f7374437265617465641400280118506f7374496400002801204d656d626572496400002801205468726561644964000030011c5665633c75383e0000980110626f6f6c0001045c456d697473206f6e20706f7374206372656174696f6e2e2c506f7374557064617465641000280118506f7374496400002801204d656d626572496400002801205468726561644964000030011c5665633c75383e00020454456d697473206f6e20706f7374207570646174652e445468726561644d6f64654368616e6765640c0028012054687265616449640000450301785468726561644d6f64653c42547265655365743c4d656d62657249643e3e00002801204d656d626572496400030470456d697473206f6e20746872656164206d6f6465206368616e67652e2c506f737444656c6574656410002801204d656d6265724964000028012054687265616449640000280118506f737449640000980110626f6f6c00040454456d697473206f6e20706f73742064656c657465640c5c4576656e747320666f722074686973206d6f64756c652e005c50726f706f73616c7320656e67696e65206576656e747345030c6c70616c6c65745f70726f706f73616c735f64697363757373696f6e147479706573285468726561644d6f6465043c54687265616457686974656c6973740169010108104f70656e00000018436c6f73656404006901013c54687265616457686974656c697374000100004903085870616c6c65745f70726f706f73616c735f636f646578205261774576656e74106447656e6572616c50726f706f73616c506172616d6574657273014d034450726f706f73616c44657461696c734f660151032850726f706f73616c49640110205468726561644964012801043c50726f706f73616c43726561746564100010012850726f706f73616c496400004d03016447656e6572616c50726f706f73616c506172616d657465727300005103014450726f706f73616c44657461696c734f660000280120546872656164496400001858412070726f706f73616c2077617320637265617465641c506172616d733afc2d204964206f662061206e65776c7920637265617465642070726f706f73616c2061667465722069742077617320736176656420696e2073746f726167652e01012d2047656e6572616c2070726f706f73616c20706172616d657465722e20506172616d65746572732073686172656420627920616c6c2070726f706f73616c7349012d2050726f706f73616c2044657461696c732e20506172616d65746572206f662070726f706f73616c207769746820612076617269616e7420666f722065616368206b696e64206f662070726f706f73616c9c2d204964206f662061206e65776c7920637265617465642070726f706f73616c20746872656164085c4576656e747320666f722074686973206d6f64756c652e004d030c5870616c6c65745f70726f706f73616c735f636f6465781474797065735447656e6572616c50726f706f73616c506172616d730c204d656d62657249640128244163636f756e74496401002c426c6f636b4e756d6265720110001401246d656d6265725f69642801204d656d62657249640001147469746c6530011c5665633c75383e00012c6465736372697074696f6e30011c5665633c75383e0001487374616b696e675f6163636f756e745f69649401444f7074696f6e3c4163636f756e7449643e00015465786163745f657865637574696f6e5f626c6f636b0102014c4f7074696f6e3c426c6f636b4e756d6265723e000051030c5870616c6c65745f70726f706f73616c735f636f6465781474797065733c50726f706f73616c44657461696c731c1c42616c616e636501182c426c6f636b4e756d6265720110244163636f756e744964010020576f726b657249640128244f70656e696e67496401282850726f706f73616c49640110785570646174654368616e6e656c5061796f757473506172616d6574657273017102015c185369676e616c040030011c5665633c75383e0000003852756e74696d6555706772616465040030011c5665633c75383e0001003846756e64696e67526571756573740400550301c45665633c46756e64696e6752657175657374506172616d65746572733c42616c616e63652c204163636f756e7449643e3e000200505365744d617856616c696461746f72436f756e74040010010c75333200030074437265617465576f726b696e6747726f75704c6561644f70656e696e6704005d0301b44372656174654f70656e696e67506172616d65746572733c426c6f636b4e756d6265722c2042616c616e63653e0004006c46696c6c576f726b696e6747726f75704c6561644f70656e696e6704006503015446696c6c4f70656e696e67506172616d657465727300050060557064617465576f726b696e6747726f75704275646765740c0018011c42616c616e6365000099010130576f726b696e6747726f757000009d01012c42616c616e63654b696e64000600744465637265617365576f726b696e6747726f75704c6561645374616b650c00280120576f726b65724964000018011c42616c616e6365000099010130576f726b696e6747726f757000070054536c617368576f726b696e6747726f75704c6561640c00280120576f726b65724964000018011c42616c616e6365000099010130576f726b696e6747726f757000080064536574576f726b696e6747726f75704c6561645265776172640c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e000099010130576f726b696e6747726f7570000900645465726d696e617465576f726b696e6747726f75704c6561640400690301a85465726d696e617465526f6c65506172616d65746572733c576f726b657249642c2042616c616e63653e000a0044416d656e64436f6e737469747574696f6e040030011c5665633c75383e000b007443616e63656c576f726b696e6747726f75704c6561644f70656e696e6708002801244f70656e696e674964000099010130576f726b696e6747726f7570000c00485365744d656d626572736869705072696365040018011c42616c616e6365000d0064536574436f756e63696c427564676574496e6372656d656e74040018011c42616c616e6365000e0048536574436f756e63696c6f72526577617264040018011c42616c616e6365000f006c536574496e697469616c496e7669746174696f6e42616c616e6365040018011c42616c616e636500100064536574496e697469616c496e7669746174696f6e436f756e74040010010c753332001100805365744d656d626572736869704c656164496e7669746174696f6e51756f7461040010010c75333200120038536574526566657272616c43757404000801087538001300305665746f50726f706f73616c040010012850726f706f73616c496400140050557064617465476c6f62616c4e66744c696d69740800890201384e66744c696d6974506572696f64000028010c753634001500505570646174654368616e6e656c5061796f7574730400710201785570646174654368616e6e656c5061796f757473506172616d65746572730016000055030000025903005903083470616c6c65745f636f6d6d6f6e6046756e64696e6752657175657374506172616d6574657273081c42616c616e63650118244163636f756e74496401000008011c6163636f756e740001244163636f756e744964000118616d6f756e7418011c42616c616e636500005d030c5870616c6c65745f70726f706f73616c735f636f6465781474797065735c4372656174654f70656e696e67506172616d6574657273082c426c6f636b4e756d62657201101c42616c616e636501180010012c6465736372697074696f6e30011c5665633c75383e0001307374616b655f706f6c696379610301845374616b65506f6c6963793c426c6f636b4e756d6265722c2042616c616e63653e0001407265776172645f7065725f626c6f636b4501013c4f7074696f6e3c42616c616e63653e00011467726f757099010130576f726b696e6747726f7570000061030c5070616c6c65745f776f726b696e675f67726f75701474797065732c5374616b65506f6c696379082c426c6f636b4e756d62657201101c42616c616e63650118000801307374616b655f616d6f756e7418011c42616c616e63650001606c656176696e675f756e7374616b696e675f706572696f6410012c426c6f636b4e756d626572000065030c5870616c6c65745f70726f706f73616c735f636f6465781474797065735446696c6c4f70656e696e67506172616d657465727300000c01286f70656e696e675f6964280160776f726b696e675f67726f75703a3a4f70656e696e6749640001386170706c69636174696f6e5f6964280170776f726b696e675f67726f75703a3a4170706c69636174696f6e4964000134776f726b696e675f67726f757099010130576f726b696e6747726f7570000069030c5870616c6c65745f70726f706f73616c735f636f6465781474797065735c5465726d696e617465526f6c65506172616d65746572730820576f726b6572496401281c42616c616e63650118000c0124776f726b65725f6964280120576f726b6572496400013c736c617368696e675f616d6f756e744501013c4f7074696f6e3c42616c616e63653e00011467726f757099010130576f726b696e6747726f757000006d03085070616c6c65745f776f726b696e675f67726f7570205261774576656e7430244f70656e696e6749640128344170706c69636174696f6e49640128684170706c69636174696f6e4964546f576f726b657249644d617001710320576f726b657249640128244163636f756e74496401001c42616c616e636501182c4f70656e696e6754797065017d032c5374616b65506f6c696379016103604170706c794f6e4f70656e696e67506172616d6574657273018103204d656d626572496401281048617368012c04490189030164304f70656e696e67416464656414002801244f70656e696e674964000030011c5665633c75383e00007d03012c4f70656e696e675479706500006103012c5374616b65506f6c69637900004501013c4f7074696f6e3c42616c616e63653e00001c80456d697473206f6e20616464696e67206e6577206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e67206964342d204465736372697074696f6e782d204f70656e696e672054797065284c656164206f7220576f726b657229782d205374616b6520506f6c69637920666f7220746865206f70656e696e67482d205265776172642070657220626c6f636b404170706c6965644f6e4f70656e696e670800810301604170706c794f6e4f70656e696e67506172616d657465727300002801344170706c69636174696f6e4964000110dc456d697473206f6e20616464696e6720746865206170706c69636174696f6e20666f722074686520776f726b6572206f70656e696e672e1c506172616d733a542d204f70656e696e6720706172616d657465726573402d204170706c69636174696f6e206964344f70656e696e6746696c6c65640c002801244f70656e696e6749640000710301684170706c69636174696f6e4964546f576f726b657249644d617000006901015c42547265655365743c4170706c69636174696f6e49643e00021484456d697473206f6e2066696c6c696e6720746865206a6f62206f70656e696e672e1c506172616d733a4c2d20576f726b6572206f70656e696e67206964cc2d20576f726b6572206170706c69636174696f6e20696420746f2074686520776f726b65722069642064696374696f6e617279ac2d204170706c69636174696f6e6420696473207573656420746f2066696c6c20746865206f70656e696e67244c65616465725365740400280120576f726b6572496400030c88456d697473206f6e2073657474696e67207468652067726f7570206c65616465722e1c506172616d733a482d2047726f757020776f726b65722069642e60576f726b6572526f6c654163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964000410c4456d697473206f6e207570646174696e672074686520726f6c65206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e802d20526f6c65206163636f756e74206964206f662074686520776f726b65722e2c4c6561646572556e7365740005047c456d697473206f6e20756e2d73657474696e6720746865206c65616465722e30576f726b65724578697465640400280120576f726b6572496400061070456d697473206f6e2065786974696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e302d20526174696f6e616c652e50576f726b6572537461727465644c656176696e670800280120576f726b6572496400003101013c4f7074696f6e3c5665633c75383e3e000710b4456d697473207768656e20776f726b65722073746172746564206c656176696e6720746865697220726f6c652e1c506172616d733a302d20576f726b65722069642e302d20526174696f6e616c652e405465726d696e61746564576f726b65720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00081480456d697473206f6e207465726d696e6174696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e405465726d696e617465644c65616465720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00091480456d697473206f6e207465726d696e6174696e6720746865206c65616465722e1c506172616d733a4c2d206c656164657220776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e305374616b65536c61736865641000280120576f726b65724964000018011c42616c616e6365000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e000a18c0456d697473206f6e20736c617368696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e642d2061637475616c20736c61736865642062616c616e63652e702d2052657175657374656420736c61736865642062616c616e63652e302d20526174696f6e616c652e385374616b654465637265617365640800280120576f726b65724964000018011c42616c616e6365000b10c8456d697473206f6e2064656372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74385374616b65496e637265617365640800280120576f726b65724964000018011c42616c616e6365000c10c8456d697473206f6e20696e6372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74504170706c69636174696f6e57697468647261776e04002801344170706c69636174696f6e4964000d0c2501456d697473206f6e207769746864726177696e6720746865206170706c69636174696f6e20666f722074686520726567756c617220776f726b65722f6c656164206f70656e696e672e1c506172616d733a502d204a6f62206170706c69636174696f6e2069643c4f70656e696e6743616e63656c656404002801244f70656e696e674964000e0c8c456d697473206f6e2063616e63656c696e6720746865206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e6720696424427564676574536574040018011c42616c616e6365000f0cc8456d697473206f6e2073657474696e67207468652062756467657420666f722074686520776f726b696e672067726f75702e1c506172616d733a302d206e65772062756467657468576f726b65725265776172644163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964001010cc456d697473206f6e207570646174696e672074686520726577617264206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e882d20526577617264206163636f756e74206964206f662074686520776f726b65722e64576f726b6572526577617264416d6f756e74557064617465640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e001110c8456d697473206f6e207570646174696e67207468652072657761726420616d6f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e482d205265776172642070657220626c6f636b44537461747573546578744368616e67656408002c01104861736800003101013c4f7074696f6e3c5665633c75383e3e001210dc456d697473206f6e207570646174696e6720746865207374617475732074657874206f662074686520776f726b696e672067726f75702e1c506172616d733a482d2073746174757320746578742068617368342d207374617475732074657874384275646765745370656e64696e670c000001244163636f756e744964000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e001314c8456d697473206f6e206275646765742066726f6d2074686520776f726b696e672067726f7570206265696e67207370656e741c506172616d733a582d205265636569766572204163636f756e742049642e402d2042616c616e6365207370656e742e302d20526174696f6e616c652e28526577617264506169641000280120576f726b6572496400000001244163636f756e744964000018011c42616c616e636500008d0301445265776172645061796d656e74547970650014186c456d697473206f6e20706179696e6720746865207265776172642e1c506172616d733a4c2d204964206f662074686520776f726b65722e582d205265636569766572204163636f756e742049642e202d20526577617264b42d205061796d656e74207479706520286d697373656420726577617264206f7220726567756c6172206f6e65296c4e65774d69737365645265776172644c6576656c526561636865640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00151090456d697473206f6e207265616368696e67206e6577206d6973736564207265776172642e1c506172616d733a302d20576f726b65722049442ee82d204d69737365642072657761726420286f7074696f6e616c292e204e6f6e65206d65616e7320276e6f206d697373656420726577617264272e60576f726b696e6747726f757042756467657446756e6465640c002801204d656d6265724964000018011c42616c616e6365000030011c5665633c75383e0016147846756e642074686520776f726b696e672067726f7570206275646765742e1c506172616d733a2c2d204d656d6265722049444c2d20416d6f756e74206f662062616c616e63652c2d20526174696f6e616c65304c65616452656d61726b6564040030011c5665633c75383e00170c94456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a242d206d65737361676538576f726b657252656d61726b65640800280120576f726b65724964000030011c5665633c75383e00181094456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a202d20776f726b6572242d206d6573736167650c5c4576656e747320666f722074686973206d6f64756c652e00385f47726f75705f206576656e74737103042042547265654d617008044b012804560128000400750300000075030000027903007903000004082828007d030c5070616c6c65745f776f726b696e675f67726f75701474797065732c4f70656e696e6754797065000108184c65616465720000001c526567756c61720001000081030c5070616c6c65745f776f726b696e675f67726f7570147479706573504170706c794f6e4f70656e696e67506172616d7310204d656d62657249640128244f70656e696e6749640128244163636f756e74496401001c42616c616e63650118001801246d656d6265725f69642801204d656d62657249640001286f70656e696e675f69642801244f70656e696e67496400013c726f6c655f6163636f756e745f69640001244163636f756e7449640001447265776172645f6163636f756e745f69640001244163636f756e74496400012c6465736372697074696f6e30011c5665633c75383e0001407374616b655f706172616d65746572738503018c5374616b65506172616d65746572733c4163636f756e7449642c2042616c616e63653e000085030c5070616c6c65745f776f726b696e675f67726f75701474797065733c5374616b65506172616d657465727308244163636f756e74496401001c42616c616e63650118000801147374616b6518011c42616c616e63650001487374616b696e675f6163636f756e745f69640001244163636f756e74496400008903085070616c6c65745f776f726b696e675f67726f757024496e7374616e636531000000008d030c5070616c6c65745f776f726b696e675f67726f7570147479706573445265776172645061796d656e7454797065000108304d697373656452657761726400000034526567756c6172526577617264000100009103085070616c6c65745f776f726b696e675f67726f7570205261774576656e7430244f70656e696e6749640128344170706c69636174696f6e49640128684170706c69636174696f6e4964546f576f726b657249644d617001710320576f726b657249640128244163636f756e74496401001c42616c616e636501182c4f70656e696e6754797065017d032c5374616b65506f6c696379016103604170706c794f6e4f70656e696e67506172616d6574657273018103204d656d626572496401281048617368012c04490195030164304f70656e696e67416464656414002801244f70656e696e674964000030011c5665633c75383e00007d03012c4f70656e696e675479706500006103012c5374616b65506f6c69637900004501013c4f7074696f6e3c42616c616e63653e00001c80456d697473206f6e20616464696e67206e6577206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e67206964342d204465736372697074696f6e782d204f70656e696e672054797065284c656164206f7220576f726b657229782d205374616b6520506f6c69637920666f7220746865206f70656e696e67482d205265776172642070657220626c6f636b404170706c6965644f6e4f70656e696e670800810301604170706c794f6e4f70656e696e67506172616d657465727300002801344170706c69636174696f6e4964000110dc456d697473206f6e20616464696e6720746865206170706c69636174696f6e20666f722074686520776f726b6572206f70656e696e672e1c506172616d733a542d204f70656e696e6720706172616d657465726573402d204170706c69636174696f6e206964344f70656e696e6746696c6c65640c002801244f70656e696e6749640000710301684170706c69636174696f6e4964546f576f726b657249644d617000006901015c42547265655365743c4170706c69636174696f6e49643e00021484456d697473206f6e2066696c6c696e6720746865206a6f62206f70656e696e672e1c506172616d733a4c2d20576f726b6572206f70656e696e67206964cc2d20576f726b6572206170706c69636174696f6e20696420746f2074686520776f726b65722069642064696374696f6e617279ac2d204170706c69636174696f6e6420696473207573656420746f2066696c6c20746865206f70656e696e67244c65616465725365740400280120576f726b6572496400030c88456d697473206f6e2073657474696e67207468652067726f7570206c65616465722e1c506172616d733a482d2047726f757020776f726b65722069642e60576f726b6572526f6c654163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964000410c4456d697473206f6e207570646174696e672074686520726f6c65206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e802d20526f6c65206163636f756e74206964206f662074686520776f726b65722e2c4c6561646572556e7365740005047c456d697473206f6e20756e2d73657474696e6720746865206c65616465722e30576f726b65724578697465640400280120576f726b6572496400061070456d697473206f6e2065786974696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e302d20526174696f6e616c652e50576f726b6572537461727465644c656176696e670800280120576f726b6572496400003101013c4f7074696f6e3c5665633c75383e3e000710b4456d697473207768656e20776f726b65722073746172746564206c656176696e6720746865697220726f6c652e1c506172616d733a302d20576f726b65722069642e302d20526174696f6e616c652e405465726d696e61746564576f726b65720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00081480456d697473206f6e207465726d696e6174696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e405465726d696e617465644c65616465720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00091480456d697473206f6e207465726d696e6174696e6720746865206c65616465722e1c506172616d733a4c2d206c656164657220776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e305374616b65536c61736865641000280120576f726b65724964000018011c42616c616e6365000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e000a18c0456d697473206f6e20736c617368696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e642d2061637475616c20736c61736865642062616c616e63652e702d2052657175657374656420736c61736865642062616c616e63652e302d20526174696f6e616c652e385374616b654465637265617365640800280120576f726b65724964000018011c42616c616e6365000b10c8456d697473206f6e2064656372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74385374616b65496e637265617365640800280120576f726b65724964000018011c42616c616e6365000c10c8456d697473206f6e20696e6372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74504170706c69636174696f6e57697468647261776e04002801344170706c69636174696f6e4964000d0c2501456d697473206f6e207769746864726177696e6720746865206170706c69636174696f6e20666f722074686520726567756c617220776f726b65722f6c656164206f70656e696e672e1c506172616d733a502d204a6f62206170706c69636174696f6e2069643c4f70656e696e6743616e63656c656404002801244f70656e696e674964000e0c8c456d697473206f6e2063616e63656c696e6720746865206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e6720696424427564676574536574040018011c42616c616e6365000f0cc8456d697473206f6e2073657474696e67207468652062756467657420666f722074686520776f726b696e672067726f75702e1c506172616d733a302d206e65772062756467657468576f726b65725265776172644163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964001010cc456d697473206f6e207570646174696e672074686520726577617264206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e882d20526577617264206163636f756e74206964206f662074686520776f726b65722e64576f726b6572526577617264416d6f756e74557064617465640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e001110c8456d697473206f6e207570646174696e67207468652072657761726420616d6f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e482d205265776172642070657220626c6f636b44537461747573546578744368616e67656408002c01104861736800003101013c4f7074696f6e3c5665633c75383e3e001210dc456d697473206f6e207570646174696e6720746865207374617475732074657874206f662074686520776f726b696e672067726f75702e1c506172616d733a482d2073746174757320746578742068617368342d207374617475732074657874384275646765745370656e64696e670c000001244163636f756e744964000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e001314c8456d697473206f6e206275646765742066726f6d2074686520776f726b696e672067726f7570206265696e67207370656e741c506172616d733a582d205265636569766572204163636f756e742049642e402d2042616c616e6365207370656e742e302d20526174696f6e616c652e28526577617264506169641000280120576f726b6572496400000001244163636f756e744964000018011c42616c616e636500008d0301445265776172645061796d656e74547970650014186c456d697473206f6e20706179696e6720746865207265776172642e1c506172616d733a4c2d204964206f662074686520776f726b65722e582d205265636569766572204163636f756e742049642e202d20526577617264b42d205061796d656e74207479706520286d697373656420726577617264206f7220726567756c6172206f6e65296c4e65774d69737365645265776172644c6576656c526561636865640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00151090456d697473206f6e207265616368696e67206e6577206d6973736564207265776172642e1c506172616d733a302d20576f726b65722049442ee82d204d69737365642072657761726420286f7074696f6e616c292e204e6f6e65206d65616e7320276e6f206d697373656420726577617264272e60576f726b696e6747726f757042756467657446756e6465640c002801204d656d6265724964000018011c42616c616e6365000030011c5665633c75383e0016147846756e642074686520776f726b696e672067726f7570206275646765742e1c506172616d733a2c2d204d656d6265722049444c2d20416d6f756e74206f662062616c616e63652c2d20526174696f6e616c65304c65616452656d61726b6564040030011c5665633c75383e00170c94456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a242d206d65737361676538576f726b657252656d61726b65640800280120576f726b65724964000030011c5665633c75383e00181094456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a202d20776f726b6572242d206d6573736167650c5c4576656e747320666f722074686973206d6f64756c652e00385f47726f75705f206576656e74739503085070616c6c65745f776f726b696e675f67726f757024496e7374616e636532000000009903085070616c6c65745f776f726b696e675f67726f7570205261774576656e7430244f70656e696e6749640128344170706c69636174696f6e49640128684170706c69636174696f6e4964546f576f726b657249644d617001710320576f726b657249640128244163636f756e74496401001c42616c616e636501182c4f70656e696e6754797065017d032c5374616b65506f6c696379016103604170706c794f6e4f70656e696e67506172616d6574657273018103204d656d626572496401281048617368012c0449019d030164304f70656e696e67416464656414002801244f70656e696e674964000030011c5665633c75383e00007d03012c4f70656e696e675479706500006103012c5374616b65506f6c69637900004501013c4f7074696f6e3c42616c616e63653e00001c80456d697473206f6e20616464696e67206e6577206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e67206964342d204465736372697074696f6e782d204f70656e696e672054797065284c656164206f7220576f726b657229782d205374616b6520506f6c69637920666f7220746865206f70656e696e67482d205265776172642070657220626c6f636b404170706c6965644f6e4f70656e696e670800810301604170706c794f6e4f70656e696e67506172616d657465727300002801344170706c69636174696f6e4964000110dc456d697473206f6e20616464696e6720746865206170706c69636174696f6e20666f722074686520776f726b6572206f70656e696e672e1c506172616d733a542d204f70656e696e6720706172616d657465726573402d204170706c69636174696f6e206964344f70656e696e6746696c6c65640c002801244f70656e696e6749640000710301684170706c69636174696f6e4964546f576f726b657249644d617000006901015c42547265655365743c4170706c69636174696f6e49643e00021484456d697473206f6e2066696c6c696e6720746865206a6f62206f70656e696e672e1c506172616d733a4c2d20576f726b6572206f70656e696e67206964cc2d20576f726b6572206170706c69636174696f6e20696420746f2074686520776f726b65722069642064696374696f6e617279ac2d204170706c69636174696f6e6420696473207573656420746f2066696c6c20746865206f70656e696e67244c65616465725365740400280120576f726b6572496400030c88456d697473206f6e2073657474696e67207468652067726f7570206c65616465722e1c506172616d733a482d2047726f757020776f726b65722069642e60576f726b6572526f6c654163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964000410c4456d697473206f6e207570646174696e672074686520726f6c65206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e802d20526f6c65206163636f756e74206964206f662074686520776f726b65722e2c4c6561646572556e7365740005047c456d697473206f6e20756e2d73657474696e6720746865206c65616465722e30576f726b65724578697465640400280120576f726b6572496400061070456d697473206f6e2065786974696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e302d20526174696f6e616c652e50576f726b6572537461727465644c656176696e670800280120576f726b6572496400003101013c4f7074696f6e3c5665633c75383e3e000710b4456d697473207768656e20776f726b65722073746172746564206c656176696e6720746865697220726f6c652e1c506172616d733a302d20576f726b65722069642e302d20526174696f6e616c652e405465726d696e61746564576f726b65720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00081480456d697473206f6e207465726d696e6174696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e405465726d696e617465644c65616465720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00091480456d697473206f6e207465726d696e6174696e6720746865206c65616465722e1c506172616d733a4c2d206c656164657220776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e305374616b65536c61736865641000280120576f726b65724964000018011c42616c616e6365000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e000a18c0456d697473206f6e20736c617368696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e642d2061637475616c20736c61736865642062616c616e63652e702d2052657175657374656420736c61736865642062616c616e63652e302d20526174696f6e616c652e385374616b654465637265617365640800280120576f726b65724964000018011c42616c616e6365000b10c8456d697473206f6e2064656372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74385374616b65496e637265617365640800280120576f726b65724964000018011c42616c616e6365000c10c8456d697473206f6e20696e6372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74504170706c69636174696f6e57697468647261776e04002801344170706c69636174696f6e4964000d0c2501456d697473206f6e207769746864726177696e6720746865206170706c69636174696f6e20666f722074686520726567756c617220776f726b65722f6c656164206f70656e696e672e1c506172616d733a502d204a6f62206170706c69636174696f6e2069643c4f70656e696e6743616e63656c656404002801244f70656e696e674964000e0c8c456d697473206f6e2063616e63656c696e6720746865206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e6720696424427564676574536574040018011c42616c616e6365000f0cc8456d697473206f6e2073657474696e67207468652062756467657420666f722074686520776f726b696e672067726f75702e1c506172616d733a302d206e65772062756467657468576f726b65725265776172644163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964001010cc456d697473206f6e207570646174696e672074686520726577617264206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e882d20526577617264206163636f756e74206964206f662074686520776f726b65722e64576f726b6572526577617264416d6f756e74557064617465640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e001110c8456d697473206f6e207570646174696e67207468652072657761726420616d6f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e482d205265776172642070657220626c6f636b44537461747573546578744368616e67656408002c01104861736800003101013c4f7074696f6e3c5665633c75383e3e001210dc456d697473206f6e207570646174696e6720746865207374617475732074657874206f662074686520776f726b696e672067726f75702e1c506172616d733a482d2073746174757320746578742068617368342d207374617475732074657874384275646765745370656e64696e670c000001244163636f756e744964000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e001314c8456d697473206f6e206275646765742066726f6d2074686520776f726b696e672067726f7570206265696e67207370656e741c506172616d733a582d205265636569766572204163636f756e742049642e402d2042616c616e6365207370656e742e302d20526174696f6e616c652e28526577617264506169641000280120576f726b6572496400000001244163636f756e744964000018011c42616c616e636500008d0301445265776172645061796d656e74547970650014186c456d697473206f6e20706179696e6720746865207265776172642e1c506172616d733a4c2d204964206f662074686520776f726b65722e582d205265636569766572204163636f756e742049642e202d20526577617264b42d205061796d656e74207479706520286d697373656420726577617264206f7220726567756c6172206f6e65296c4e65774d69737365645265776172644c6576656c526561636865640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00151090456d697473206f6e207265616368696e67206e6577206d6973736564207265776172642e1c506172616d733a302d20576f726b65722049442ee82d204d69737365642072657761726420286f7074696f6e616c292e204e6f6e65206d65616e7320276e6f206d697373656420726577617264272e60576f726b696e6747726f757042756467657446756e6465640c002801204d656d6265724964000018011c42616c616e6365000030011c5665633c75383e0016147846756e642074686520776f726b696e672067726f7570206275646765742e1c506172616d733a2c2d204d656d6265722049444c2d20416d6f756e74206f662062616c616e63652c2d20526174696f6e616c65304c65616452656d61726b6564040030011c5665633c75383e00170c94456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a242d206d65737361676538576f726b657252656d61726b65640800280120576f726b65724964000030011c5665633c75383e00181094456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a202d20776f726b6572242d206d6573736167650c5c4576656e747320666f722074686973206d6f64756c652e00385f47726f75705f206576656e74739d03085070616c6c65745f776f726b696e675f67726f757024496e7374616e63653300000000a103085070616c6c65745f776f726b696e675f67726f7570205261774576656e7430244f70656e696e6749640128344170706c69636174696f6e49640128684170706c69636174696f6e4964546f576f726b657249644d617001710320576f726b657249640128244163636f756e74496401001c42616c616e636501182c4f70656e696e6754797065017d032c5374616b65506f6c696379016103604170706c794f6e4f70656e696e67506172616d6574657273018103204d656d626572496401281048617368012c044901a5030164304f70656e696e67416464656414002801244f70656e696e674964000030011c5665633c75383e00007d03012c4f70656e696e675479706500006103012c5374616b65506f6c69637900004501013c4f7074696f6e3c42616c616e63653e00001c80456d697473206f6e20616464696e67206e6577206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e67206964342d204465736372697074696f6e782d204f70656e696e672054797065284c656164206f7220576f726b657229782d205374616b6520506f6c69637920666f7220746865206f70656e696e67482d205265776172642070657220626c6f636b404170706c6965644f6e4f70656e696e670800810301604170706c794f6e4f70656e696e67506172616d657465727300002801344170706c69636174696f6e4964000110dc456d697473206f6e20616464696e6720746865206170706c69636174696f6e20666f722074686520776f726b6572206f70656e696e672e1c506172616d733a542d204f70656e696e6720706172616d657465726573402d204170706c69636174696f6e206964344f70656e696e6746696c6c65640c002801244f70656e696e6749640000710301684170706c69636174696f6e4964546f576f726b657249644d617000006901015c42547265655365743c4170706c69636174696f6e49643e00021484456d697473206f6e2066696c6c696e6720746865206a6f62206f70656e696e672e1c506172616d733a4c2d20576f726b6572206f70656e696e67206964cc2d20576f726b6572206170706c69636174696f6e20696420746f2074686520776f726b65722069642064696374696f6e617279ac2d204170706c69636174696f6e6420696473207573656420746f2066696c6c20746865206f70656e696e67244c65616465725365740400280120576f726b6572496400030c88456d697473206f6e2073657474696e67207468652067726f7570206c65616465722e1c506172616d733a482d2047726f757020776f726b65722069642e60576f726b6572526f6c654163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964000410c4456d697473206f6e207570646174696e672074686520726f6c65206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e802d20526f6c65206163636f756e74206964206f662074686520776f726b65722e2c4c6561646572556e7365740005047c456d697473206f6e20756e2d73657474696e6720746865206c65616465722e30576f726b65724578697465640400280120576f726b6572496400061070456d697473206f6e2065786974696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e302d20526174696f6e616c652e50576f726b6572537461727465644c656176696e670800280120576f726b6572496400003101013c4f7074696f6e3c5665633c75383e3e000710b4456d697473207768656e20776f726b65722073746172746564206c656176696e6720746865697220726f6c652e1c506172616d733a302d20576f726b65722069642e302d20526174696f6e616c652e405465726d696e61746564576f726b65720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00081480456d697473206f6e207465726d696e6174696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e405465726d696e617465644c65616465720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00091480456d697473206f6e207465726d696e6174696e6720746865206c65616465722e1c506172616d733a4c2d206c656164657220776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e305374616b65536c61736865641000280120576f726b65724964000018011c42616c616e6365000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e000a18c0456d697473206f6e20736c617368696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e642d2061637475616c20736c61736865642062616c616e63652e702d2052657175657374656420736c61736865642062616c616e63652e302d20526174696f6e616c652e385374616b654465637265617365640800280120576f726b65724964000018011c42616c616e6365000b10c8456d697473206f6e2064656372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74385374616b65496e637265617365640800280120576f726b65724964000018011c42616c616e6365000c10c8456d697473206f6e20696e6372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74504170706c69636174696f6e57697468647261776e04002801344170706c69636174696f6e4964000d0c2501456d697473206f6e207769746864726177696e6720746865206170706c69636174696f6e20666f722074686520726567756c617220776f726b65722f6c656164206f70656e696e672e1c506172616d733a502d204a6f62206170706c69636174696f6e2069643c4f70656e696e6743616e63656c656404002801244f70656e696e674964000e0c8c456d697473206f6e2063616e63656c696e6720746865206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e6720696424427564676574536574040018011c42616c616e6365000f0cc8456d697473206f6e2073657474696e67207468652062756467657420666f722074686520776f726b696e672067726f75702e1c506172616d733a302d206e65772062756467657468576f726b65725265776172644163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964001010cc456d697473206f6e207570646174696e672074686520726577617264206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e882d20526577617264206163636f756e74206964206f662074686520776f726b65722e64576f726b6572526577617264416d6f756e74557064617465640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e001110c8456d697473206f6e207570646174696e67207468652072657761726420616d6f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e482d205265776172642070657220626c6f636b44537461747573546578744368616e67656408002c01104861736800003101013c4f7074696f6e3c5665633c75383e3e001210dc456d697473206f6e207570646174696e6720746865207374617475732074657874206f662074686520776f726b696e672067726f75702e1c506172616d733a482d2073746174757320746578742068617368342d207374617475732074657874384275646765745370656e64696e670c000001244163636f756e744964000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e001314c8456d697473206f6e206275646765742066726f6d2074686520776f726b696e672067726f7570206265696e67207370656e741c506172616d733a582d205265636569766572204163636f756e742049642e402d2042616c616e6365207370656e742e302d20526174696f6e616c652e28526577617264506169641000280120576f726b6572496400000001244163636f756e744964000018011c42616c616e636500008d0301445265776172645061796d656e74547970650014186c456d697473206f6e20706179696e6720746865207265776172642e1c506172616d733a4c2d204964206f662074686520776f726b65722e582d205265636569766572204163636f756e742049642e202d20526577617264b42d205061796d656e74207479706520286d697373656420726577617264206f7220726567756c6172206f6e65296c4e65774d69737365645265776172644c6576656c526561636865640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00151090456d697473206f6e207265616368696e67206e6577206d6973736564207265776172642e1c506172616d733a302d20576f726b65722049442ee82d204d69737365642072657761726420286f7074696f6e616c292e204e6f6e65206d65616e7320276e6f206d697373656420726577617264272e60576f726b696e6747726f757042756467657446756e6465640c002801204d656d6265724964000018011c42616c616e6365000030011c5665633c75383e0016147846756e642074686520776f726b696e672067726f7570206275646765742e1c506172616d733a2c2d204d656d6265722049444c2d20416d6f756e74206f662062616c616e63652c2d20526174696f6e616c65304c65616452656d61726b6564040030011c5665633c75383e00170c94456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a242d206d65737361676538576f726b657252656d61726b65640800280120576f726b65724964000030011c5665633c75383e00181094456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a202d20776f726b6572242d206d6573736167650c5c4576656e747320666f722074686973206d6f64756c652e00385f47726f75705f206576656e7473a503085070616c6c65745f776f726b696e675f67726f757024496e7374616e63653400000000a903085070616c6c65745f776f726b696e675f67726f7570205261774576656e7430244f70656e696e6749640128344170706c69636174696f6e49640128684170706c69636174696f6e4964546f576f726b657249644d617001710320576f726b657249640128244163636f756e74496401001c42616c616e636501182c4f70656e696e6754797065017d032c5374616b65506f6c696379016103604170706c794f6e4f70656e696e67506172616d6574657273018103204d656d626572496401281048617368012c044901ad030164304f70656e696e67416464656414002801244f70656e696e674964000030011c5665633c75383e00007d03012c4f70656e696e675479706500006103012c5374616b65506f6c69637900004501013c4f7074696f6e3c42616c616e63653e00001c80456d697473206f6e20616464696e67206e6577206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e67206964342d204465736372697074696f6e782d204f70656e696e672054797065284c656164206f7220576f726b657229782d205374616b6520506f6c69637920666f7220746865206f70656e696e67482d205265776172642070657220626c6f636b404170706c6965644f6e4f70656e696e670800810301604170706c794f6e4f70656e696e67506172616d657465727300002801344170706c69636174696f6e4964000110dc456d697473206f6e20616464696e6720746865206170706c69636174696f6e20666f722074686520776f726b6572206f70656e696e672e1c506172616d733a542d204f70656e696e6720706172616d657465726573402d204170706c69636174696f6e206964344f70656e696e6746696c6c65640c002801244f70656e696e6749640000710301684170706c69636174696f6e4964546f576f726b657249644d617000006901015c42547265655365743c4170706c69636174696f6e49643e00021484456d697473206f6e2066696c6c696e6720746865206a6f62206f70656e696e672e1c506172616d733a4c2d20576f726b6572206f70656e696e67206964cc2d20576f726b6572206170706c69636174696f6e20696420746f2074686520776f726b65722069642064696374696f6e617279ac2d204170706c69636174696f6e6420696473207573656420746f2066696c6c20746865206f70656e696e67244c65616465725365740400280120576f726b6572496400030c88456d697473206f6e2073657474696e67207468652067726f7570206c65616465722e1c506172616d733a482d2047726f757020776f726b65722069642e60576f726b6572526f6c654163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964000410c4456d697473206f6e207570646174696e672074686520726f6c65206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e802d20526f6c65206163636f756e74206964206f662074686520776f726b65722e2c4c6561646572556e7365740005047c456d697473206f6e20756e2d73657474696e6720746865206c65616465722e30576f726b65724578697465640400280120576f726b6572496400061070456d697473206f6e2065786974696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e302d20526174696f6e616c652e50576f726b6572537461727465644c656176696e670800280120576f726b6572496400003101013c4f7074696f6e3c5665633c75383e3e000710b4456d697473207768656e20776f726b65722073746172746564206c656176696e6720746865697220726f6c652e1c506172616d733a302d20576f726b65722069642e302d20526174696f6e616c652e405465726d696e61746564576f726b65720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00081480456d697473206f6e207465726d696e6174696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e405465726d696e617465644c65616465720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00091480456d697473206f6e207465726d696e6174696e6720746865206c65616465722e1c506172616d733a4c2d206c656164657220776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e305374616b65536c61736865641000280120576f726b65724964000018011c42616c616e6365000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e000a18c0456d697473206f6e20736c617368696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e642d2061637475616c20736c61736865642062616c616e63652e702d2052657175657374656420736c61736865642062616c616e63652e302d20526174696f6e616c652e385374616b654465637265617365640800280120576f726b65724964000018011c42616c616e6365000b10c8456d697473206f6e2064656372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74385374616b65496e637265617365640800280120576f726b65724964000018011c42616c616e6365000c10c8456d697473206f6e20696e6372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74504170706c69636174696f6e57697468647261776e04002801344170706c69636174696f6e4964000d0c2501456d697473206f6e207769746864726177696e6720746865206170706c69636174696f6e20666f722074686520726567756c617220776f726b65722f6c656164206f70656e696e672e1c506172616d733a502d204a6f62206170706c69636174696f6e2069643c4f70656e696e6743616e63656c656404002801244f70656e696e674964000e0c8c456d697473206f6e2063616e63656c696e6720746865206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e6720696424427564676574536574040018011c42616c616e6365000f0cc8456d697473206f6e2073657474696e67207468652062756467657420666f722074686520776f726b696e672067726f75702e1c506172616d733a302d206e65772062756467657468576f726b65725265776172644163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964001010cc456d697473206f6e207570646174696e672074686520726577617264206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e882d20526577617264206163636f756e74206964206f662074686520776f726b65722e64576f726b6572526577617264416d6f756e74557064617465640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e001110c8456d697473206f6e207570646174696e67207468652072657761726420616d6f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e482d205265776172642070657220626c6f636b44537461747573546578744368616e67656408002c01104861736800003101013c4f7074696f6e3c5665633c75383e3e001210dc456d697473206f6e207570646174696e6720746865207374617475732074657874206f662074686520776f726b696e672067726f75702e1c506172616d733a482d2073746174757320746578742068617368342d207374617475732074657874384275646765745370656e64696e670c000001244163636f756e744964000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e001314c8456d697473206f6e206275646765742066726f6d2074686520776f726b696e672067726f7570206265696e67207370656e741c506172616d733a582d205265636569766572204163636f756e742049642e402d2042616c616e6365207370656e742e302d20526174696f6e616c652e28526577617264506169641000280120576f726b6572496400000001244163636f756e744964000018011c42616c616e636500008d0301445265776172645061796d656e74547970650014186c456d697473206f6e20706179696e6720746865207265776172642e1c506172616d733a4c2d204964206f662074686520776f726b65722e582d205265636569766572204163636f756e742049642e202d20526577617264b42d205061796d656e74207479706520286d697373656420726577617264206f7220726567756c6172206f6e65296c4e65774d69737365645265776172644c6576656c526561636865640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00151090456d697473206f6e207265616368696e67206e6577206d6973736564207265776172642e1c506172616d733a302d20576f726b65722049442ee82d204d69737365642072657761726420286f7074696f6e616c292e204e6f6e65206d65616e7320276e6f206d697373656420726577617264272e60576f726b696e6747726f757042756467657446756e6465640c002801204d656d6265724964000018011c42616c616e6365000030011c5665633c75383e0016147846756e642074686520776f726b696e672067726f7570206275646765742e1c506172616d733a2c2d204d656d6265722049444c2d20416d6f756e74206f662062616c616e63652c2d20526174696f6e616c65304c65616452656d61726b6564040030011c5665633c75383e00170c94456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a242d206d65737361676538576f726b657252656d61726b65640800280120576f726b65724964000030011c5665633c75383e00181094456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a202d20776f726b6572242d206d6573736167650c5c4576656e747320666f722074686973206d6f64756c652e00385f47726f75705f206576656e7473ad03085070616c6c65745f776f726b696e675f67726f757024496e7374616e63653500000000b103085070616c6c65745f776f726b696e675f67726f7570205261774576656e7430244f70656e696e6749640128344170706c69636174696f6e49640128684170706c69636174696f6e4964546f576f726b657249644d617001710320576f726b657249640128244163636f756e74496401001c42616c616e636501182c4f70656e696e6754797065017d032c5374616b65506f6c696379016103604170706c794f6e4f70656e696e67506172616d6574657273018103204d656d626572496401281048617368012c044901b5030164304f70656e696e67416464656414002801244f70656e696e674964000030011c5665633c75383e00007d03012c4f70656e696e675479706500006103012c5374616b65506f6c69637900004501013c4f7074696f6e3c42616c616e63653e00001c80456d697473206f6e20616464696e67206e6577206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e67206964342d204465736372697074696f6e782d204f70656e696e672054797065284c656164206f7220576f726b657229782d205374616b6520506f6c69637920666f7220746865206f70656e696e67482d205265776172642070657220626c6f636b404170706c6965644f6e4f70656e696e670800810301604170706c794f6e4f70656e696e67506172616d657465727300002801344170706c69636174696f6e4964000110dc456d697473206f6e20616464696e6720746865206170706c69636174696f6e20666f722074686520776f726b6572206f70656e696e672e1c506172616d733a542d204f70656e696e6720706172616d657465726573402d204170706c69636174696f6e206964344f70656e696e6746696c6c65640c002801244f70656e696e6749640000710301684170706c69636174696f6e4964546f576f726b657249644d617000006901015c42547265655365743c4170706c69636174696f6e49643e00021484456d697473206f6e2066696c6c696e6720746865206a6f62206f70656e696e672e1c506172616d733a4c2d20576f726b6572206f70656e696e67206964cc2d20576f726b6572206170706c69636174696f6e20696420746f2074686520776f726b65722069642064696374696f6e617279ac2d204170706c69636174696f6e6420696473207573656420746f2066696c6c20746865206f70656e696e67244c65616465725365740400280120576f726b6572496400030c88456d697473206f6e2073657474696e67207468652067726f7570206c65616465722e1c506172616d733a482d2047726f757020776f726b65722069642e60576f726b6572526f6c654163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964000410c4456d697473206f6e207570646174696e672074686520726f6c65206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e802d20526f6c65206163636f756e74206964206f662074686520776f726b65722e2c4c6561646572556e7365740005047c456d697473206f6e20756e2d73657474696e6720746865206c65616465722e30576f726b65724578697465640400280120576f726b6572496400061070456d697473206f6e2065786974696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e302d20526174696f6e616c652e50576f726b6572537461727465644c656176696e670800280120576f726b6572496400003101013c4f7074696f6e3c5665633c75383e3e000710b4456d697473207768656e20776f726b65722073746172746564206c656176696e6720746865697220726f6c652e1c506172616d733a302d20576f726b65722069642e302d20526174696f6e616c652e405465726d696e61746564576f726b65720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00081480456d697473206f6e207465726d696e6174696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e405465726d696e617465644c65616465720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00091480456d697473206f6e207465726d696e6174696e6720746865206c65616465722e1c506172616d733a4c2d206c656164657220776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e305374616b65536c61736865641000280120576f726b65724964000018011c42616c616e6365000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e000a18c0456d697473206f6e20736c617368696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e642d2061637475616c20736c61736865642062616c616e63652e702d2052657175657374656420736c61736865642062616c616e63652e302d20526174696f6e616c652e385374616b654465637265617365640800280120576f726b65724964000018011c42616c616e6365000b10c8456d697473206f6e2064656372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74385374616b65496e637265617365640800280120576f726b65724964000018011c42616c616e6365000c10c8456d697473206f6e20696e6372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74504170706c69636174696f6e57697468647261776e04002801344170706c69636174696f6e4964000d0c2501456d697473206f6e207769746864726177696e6720746865206170706c69636174696f6e20666f722074686520726567756c617220776f726b65722f6c656164206f70656e696e672e1c506172616d733a502d204a6f62206170706c69636174696f6e2069643c4f70656e696e6743616e63656c656404002801244f70656e696e674964000e0c8c456d697473206f6e2063616e63656c696e6720746865206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e6720696424427564676574536574040018011c42616c616e6365000f0cc8456d697473206f6e2073657474696e67207468652062756467657420666f722074686520776f726b696e672067726f75702e1c506172616d733a302d206e65772062756467657468576f726b65725265776172644163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964001010cc456d697473206f6e207570646174696e672074686520726577617264206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e882d20526577617264206163636f756e74206964206f662074686520776f726b65722e64576f726b6572526577617264416d6f756e74557064617465640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e001110c8456d697473206f6e207570646174696e67207468652072657761726420616d6f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e482d205265776172642070657220626c6f636b44537461747573546578744368616e67656408002c01104861736800003101013c4f7074696f6e3c5665633c75383e3e001210dc456d697473206f6e207570646174696e6720746865207374617475732074657874206f662074686520776f726b696e672067726f75702e1c506172616d733a482d2073746174757320746578742068617368342d207374617475732074657874384275646765745370656e64696e670c000001244163636f756e744964000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e001314c8456d697473206f6e206275646765742066726f6d2074686520776f726b696e672067726f7570206265696e67207370656e741c506172616d733a582d205265636569766572204163636f756e742049642e402d2042616c616e6365207370656e742e302d20526174696f6e616c652e28526577617264506169641000280120576f726b6572496400000001244163636f756e744964000018011c42616c616e636500008d0301445265776172645061796d656e74547970650014186c456d697473206f6e20706179696e6720746865207265776172642e1c506172616d733a4c2d204964206f662074686520776f726b65722e582d205265636569766572204163636f756e742049642e202d20526577617264b42d205061796d656e74207479706520286d697373656420726577617264206f7220726567756c6172206f6e65296c4e65774d69737365645265776172644c6576656c526561636865640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00151090456d697473206f6e207265616368696e67206e6577206d6973736564207265776172642e1c506172616d733a302d20576f726b65722049442ee82d204d69737365642072657761726420286f7074696f6e616c292e204e6f6e65206d65616e7320276e6f206d697373656420726577617264272e60576f726b696e6747726f757042756467657446756e6465640c002801204d656d6265724964000018011c42616c616e6365000030011c5665633c75383e0016147846756e642074686520776f726b696e672067726f7570206275646765742e1c506172616d733a2c2d204d656d6265722049444c2d20416d6f756e74206f662062616c616e63652c2d20526174696f6e616c65304c65616452656d61726b6564040030011c5665633c75383e00170c94456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a242d206d65737361676538576f726b657252656d61726b65640800280120576f726b65724964000030011c5665633c75383e00181094456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a202d20776f726b6572242d206d6573736167650c5c4576656e747320666f722074686973206d6f64756c652e00385f47726f75705f206576656e7473b503085070616c6c65745f776f726b696e675f67726f757024496e7374616e63653600000000b903085070616c6c65745f776f726b696e675f67726f7570205261774576656e7430244f70656e696e6749640128344170706c69636174696f6e49640128684170706c69636174696f6e4964546f576f726b657249644d617001710320576f726b657249640128244163636f756e74496401001c42616c616e636501182c4f70656e696e6754797065017d032c5374616b65506f6c696379016103604170706c794f6e4f70656e696e67506172616d6574657273018103204d656d626572496401281048617368012c044901bd030164304f70656e696e67416464656414002801244f70656e696e674964000030011c5665633c75383e00007d03012c4f70656e696e675479706500006103012c5374616b65506f6c69637900004501013c4f7074696f6e3c42616c616e63653e00001c80456d697473206f6e20616464696e67206e6577206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e67206964342d204465736372697074696f6e782d204f70656e696e672054797065284c656164206f7220576f726b657229782d205374616b6520506f6c69637920666f7220746865206f70656e696e67482d205265776172642070657220626c6f636b404170706c6965644f6e4f70656e696e670800810301604170706c794f6e4f70656e696e67506172616d657465727300002801344170706c69636174696f6e4964000110dc456d697473206f6e20616464696e6720746865206170706c69636174696f6e20666f722074686520776f726b6572206f70656e696e672e1c506172616d733a542d204f70656e696e6720706172616d657465726573402d204170706c69636174696f6e206964344f70656e696e6746696c6c65640c002801244f70656e696e6749640000710301684170706c69636174696f6e4964546f576f726b657249644d617000006901015c42547265655365743c4170706c69636174696f6e49643e00021484456d697473206f6e2066696c6c696e6720746865206a6f62206f70656e696e672e1c506172616d733a4c2d20576f726b6572206f70656e696e67206964cc2d20576f726b6572206170706c69636174696f6e20696420746f2074686520776f726b65722069642064696374696f6e617279ac2d204170706c69636174696f6e6420696473207573656420746f2066696c6c20746865206f70656e696e67244c65616465725365740400280120576f726b6572496400030c88456d697473206f6e2073657474696e67207468652067726f7570206c65616465722e1c506172616d733a482d2047726f757020776f726b65722069642e60576f726b6572526f6c654163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964000410c4456d697473206f6e207570646174696e672074686520726f6c65206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e802d20526f6c65206163636f756e74206964206f662074686520776f726b65722e2c4c6561646572556e7365740005047c456d697473206f6e20756e2d73657474696e6720746865206c65616465722e30576f726b65724578697465640400280120576f726b6572496400061070456d697473206f6e2065786974696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e302d20526174696f6e616c652e50576f726b6572537461727465644c656176696e670800280120576f726b6572496400003101013c4f7074696f6e3c5665633c75383e3e000710b4456d697473207768656e20776f726b65722073746172746564206c656176696e6720746865697220726f6c652e1c506172616d733a302d20576f726b65722069642e302d20526174696f6e616c652e405465726d696e61746564576f726b65720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00081480456d697473206f6e207465726d696e6174696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e405465726d696e617465644c65616465720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00091480456d697473206f6e207465726d696e6174696e6720746865206c65616465722e1c506172616d733a4c2d206c656164657220776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e305374616b65536c61736865641000280120576f726b65724964000018011c42616c616e6365000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e000a18c0456d697473206f6e20736c617368696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e642d2061637475616c20736c61736865642062616c616e63652e702d2052657175657374656420736c61736865642062616c616e63652e302d20526174696f6e616c652e385374616b654465637265617365640800280120576f726b65724964000018011c42616c616e6365000b10c8456d697473206f6e2064656372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74385374616b65496e637265617365640800280120576f726b65724964000018011c42616c616e6365000c10c8456d697473206f6e20696e6372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74504170706c69636174696f6e57697468647261776e04002801344170706c69636174696f6e4964000d0c2501456d697473206f6e207769746864726177696e6720746865206170706c69636174696f6e20666f722074686520726567756c617220776f726b65722f6c656164206f70656e696e672e1c506172616d733a502d204a6f62206170706c69636174696f6e2069643c4f70656e696e6743616e63656c656404002801244f70656e696e674964000e0c8c456d697473206f6e2063616e63656c696e6720746865206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e6720696424427564676574536574040018011c42616c616e6365000f0cc8456d697473206f6e2073657474696e67207468652062756467657420666f722074686520776f726b696e672067726f75702e1c506172616d733a302d206e65772062756467657468576f726b65725265776172644163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964001010cc456d697473206f6e207570646174696e672074686520726577617264206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e882d20526577617264206163636f756e74206964206f662074686520776f726b65722e64576f726b6572526577617264416d6f756e74557064617465640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e001110c8456d697473206f6e207570646174696e67207468652072657761726420616d6f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e482d205265776172642070657220626c6f636b44537461747573546578744368616e67656408002c01104861736800003101013c4f7074696f6e3c5665633c75383e3e001210dc456d697473206f6e207570646174696e6720746865207374617475732074657874206f662074686520776f726b696e672067726f75702e1c506172616d733a482d2073746174757320746578742068617368342d207374617475732074657874384275646765745370656e64696e670c000001244163636f756e744964000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e001314c8456d697473206f6e206275646765742066726f6d2074686520776f726b696e672067726f7570206265696e67207370656e741c506172616d733a582d205265636569766572204163636f756e742049642e402d2042616c616e6365207370656e742e302d20526174696f6e616c652e28526577617264506169641000280120576f726b6572496400000001244163636f756e744964000018011c42616c616e636500008d0301445265776172645061796d656e74547970650014186c456d697473206f6e20706179696e6720746865207265776172642e1c506172616d733a4c2d204964206f662074686520776f726b65722e582d205265636569766572204163636f756e742049642e202d20526577617264b42d205061796d656e74207479706520286d697373656420726577617264206f7220726567756c6172206f6e65296c4e65774d69737365645265776172644c6576656c526561636865640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00151090456d697473206f6e207265616368696e67206e6577206d6973736564207265776172642e1c506172616d733a302d20576f726b65722049442ee82d204d69737365642072657761726420286f7074696f6e616c292e204e6f6e65206d65616e7320276e6f206d697373656420726577617264272e60576f726b696e6747726f757042756467657446756e6465640c002801204d656d6265724964000018011c42616c616e6365000030011c5665633c75383e0016147846756e642074686520776f726b696e672067726f7570206275646765742e1c506172616d733a2c2d204d656d6265722049444c2d20416d6f756e74206f662062616c616e63652c2d20526174696f6e616c65304c65616452656d61726b6564040030011c5665633c75383e00170c94456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a242d206d65737361676538576f726b657252656d61726b65640800280120576f726b65724964000030011c5665633c75383e00181094456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a202d20776f726b6572242d206d6573736167650c5c4576656e747320666f722074686973206d6f64756c652e00385f47726f75705f206576656e7473bd03085070616c6c65745f776f726b696e675f67726f757024496e7374616e63653700000000c103085070616c6c65745f776f726b696e675f67726f7570205261774576656e7430244f70656e696e6749640128344170706c69636174696f6e49640128684170706c69636174696f6e4964546f576f726b657249644d617001710320576f726b657249640128244163636f756e74496401001c42616c616e636501182c4f70656e696e6754797065017d032c5374616b65506f6c696379016103604170706c794f6e4f70656e696e67506172616d6574657273018103204d656d626572496401281048617368012c044901c5030164304f70656e696e67416464656414002801244f70656e696e674964000030011c5665633c75383e00007d03012c4f70656e696e675479706500006103012c5374616b65506f6c69637900004501013c4f7074696f6e3c42616c616e63653e00001c80456d697473206f6e20616464696e67206e6577206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e67206964342d204465736372697074696f6e782d204f70656e696e672054797065284c656164206f7220576f726b657229782d205374616b6520506f6c69637920666f7220746865206f70656e696e67482d205265776172642070657220626c6f636b404170706c6965644f6e4f70656e696e670800810301604170706c794f6e4f70656e696e67506172616d657465727300002801344170706c69636174696f6e4964000110dc456d697473206f6e20616464696e6720746865206170706c69636174696f6e20666f722074686520776f726b6572206f70656e696e672e1c506172616d733a542d204f70656e696e6720706172616d657465726573402d204170706c69636174696f6e206964344f70656e696e6746696c6c65640c002801244f70656e696e6749640000710301684170706c69636174696f6e4964546f576f726b657249644d617000006901015c42547265655365743c4170706c69636174696f6e49643e00021484456d697473206f6e2066696c6c696e6720746865206a6f62206f70656e696e672e1c506172616d733a4c2d20576f726b6572206f70656e696e67206964cc2d20576f726b6572206170706c69636174696f6e20696420746f2074686520776f726b65722069642064696374696f6e617279ac2d204170706c69636174696f6e6420696473207573656420746f2066696c6c20746865206f70656e696e67244c65616465725365740400280120576f726b6572496400030c88456d697473206f6e2073657474696e67207468652067726f7570206c65616465722e1c506172616d733a482d2047726f757020776f726b65722069642e60576f726b6572526f6c654163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964000410c4456d697473206f6e207570646174696e672074686520726f6c65206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e802d20526f6c65206163636f756e74206964206f662074686520776f726b65722e2c4c6561646572556e7365740005047c456d697473206f6e20756e2d73657474696e6720746865206c65616465722e30576f726b65724578697465640400280120576f726b6572496400061070456d697473206f6e2065786974696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e302d20526174696f6e616c652e50576f726b6572537461727465644c656176696e670800280120576f726b6572496400003101013c4f7074696f6e3c5665633c75383e3e000710b4456d697473207768656e20776f726b65722073746172746564206c656176696e6720746865697220726f6c652e1c506172616d733a302d20576f726b65722069642e302d20526174696f6e616c652e405465726d696e61746564576f726b65720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00081480456d697473206f6e207465726d696e6174696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e405465726d696e617465644c65616465720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00091480456d697473206f6e207465726d696e6174696e6720746865206c65616465722e1c506172616d733a4c2d206c656164657220776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e305374616b65536c61736865641000280120576f726b65724964000018011c42616c616e6365000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e000a18c0456d697473206f6e20736c617368696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e642d2061637475616c20736c61736865642062616c616e63652e702d2052657175657374656420736c61736865642062616c616e63652e302d20526174696f6e616c652e385374616b654465637265617365640800280120576f726b65724964000018011c42616c616e6365000b10c8456d697473206f6e2064656372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74385374616b65496e637265617365640800280120576f726b65724964000018011c42616c616e6365000c10c8456d697473206f6e20696e6372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74504170706c69636174696f6e57697468647261776e04002801344170706c69636174696f6e4964000d0c2501456d697473206f6e207769746864726177696e6720746865206170706c69636174696f6e20666f722074686520726567756c617220776f726b65722f6c656164206f70656e696e672e1c506172616d733a502d204a6f62206170706c69636174696f6e2069643c4f70656e696e6743616e63656c656404002801244f70656e696e674964000e0c8c456d697473206f6e2063616e63656c696e6720746865206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e6720696424427564676574536574040018011c42616c616e6365000f0cc8456d697473206f6e2073657474696e67207468652062756467657420666f722074686520776f726b696e672067726f75702e1c506172616d733a302d206e65772062756467657468576f726b65725265776172644163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964001010cc456d697473206f6e207570646174696e672074686520726577617264206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e882d20526577617264206163636f756e74206964206f662074686520776f726b65722e64576f726b6572526577617264416d6f756e74557064617465640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e001110c8456d697473206f6e207570646174696e67207468652072657761726420616d6f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e482d205265776172642070657220626c6f636b44537461747573546578744368616e67656408002c01104861736800003101013c4f7074696f6e3c5665633c75383e3e001210dc456d697473206f6e207570646174696e6720746865207374617475732074657874206f662074686520776f726b696e672067726f75702e1c506172616d733a482d2073746174757320746578742068617368342d207374617475732074657874384275646765745370656e64696e670c000001244163636f756e744964000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e001314c8456d697473206f6e206275646765742066726f6d2074686520776f726b696e672067726f7570206265696e67207370656e741c506172616d733a582d205265636569766572204163636f756e742049642e402d2042616c616e6365207370656e742e302d20526174696f6e616c652e28526577617264506169641000280120576f726b6572496400000001244163636f756e744964000018011c42616c616e636500008d0301445265776172645061796d656e74547970650014186c456d697473206f6e20706179696e6720746865207265776172642e1c506172616d733a4c2d204964206f662074686520776f726b65722e582d205265636569766572204163636f756e742049642e202d20526577617264b42d205061796d656e74207479706520286d697373656420726577617264206f7220726567756c6172206f6e65296c4e65774d69737365645265776172644c6576656c526561636865640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00151090456d697473206f6e207265616368696e67206e6577206d6973736564207265776172642e1c506172616d733a302d20576f726b65722049442ee82d204d69737365642072657761726420286f7074696f6e616c292e204e6f6e65206d65616e7320276e6f206d697373656420726577617264272e60576f726b696e6747726f757042756467657446756e6465640c002801204d656d6265724964000018011c42616c616e6365000030011c5665633c75383e0016147846756e642074686520776f726b696e672067726f7570206275646765742e1c506172616d733a2c2d204d656d6265722049444c2d20416d6f756e74206f662062616c616e63652c2d20526174696f6e616c65304c65616452656d61726b6564040030011c5665633c75383e00170c94456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a242d206d65737361676538576f726b657252656d61726b65640800280120576f726b65724964000030011c5665633c75383e00181094456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a202d20776f726b6572242d206d6573736167650c5c4576656e747320666f722074686973206d6f64756c652e00385f47726f75705f206576656e7473c503085070616c6c65745f776f726b696e675f67726f757024496e7374616e63653800000000c903085070616c6c65745f776f726b696e675f67726f7570205261774576656e7430244f70656e696e6749640128344170706c69636174696f6e49640128684170706c69636174696f6e4964546f576f726b657249644d617001710320576f726b657249640128244163636f756e74496401001c42616c616e636501182c4f70656e696e6754797065017d032c5374616b65506f6c696379016103604170706c794f6e4f70656e696e67506172616d6574657273018103204d656d626572496401281048617368012c044901cd030164304f70656e696e67416464656414002801244f70656e696e674964000030011c5665633c75383e00007d03012c4f70656e696e675479706500006103012c5374616b65506f6c69637900004501013c4f7074696f6e3c42616c616e63653e00001c80456d697473206f6e20616464696e67206e6577206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e67206964342d204465736372697074696f6e782d204f70656e696e672054797065284c656164206f7220576f726b657229782d205374616b6520506f6c69637920666f7220746865206f70656e696e67482d205265776172642070657220626c6f636b404170706c6965644f6e4f70656e696e670800810301604170706c794f6e4f70656e696e67506172616d657465727300002801344170706c69636174696f6e4964000110dc456d697473206f6e20616464696e6720746865206170706c69636174696f6e20666f722074686520776f726b6572206f70656e696e672e1c506172616d733a542d204f70656e696e6720706172616d657465726573402d204170706c69636174696f6e206964344f70656e696e6746696c6c65640c002801244f70656e696e6749640000710301684170706c69636174696f6e4964546f576f726b657249644d617000006901015c42547265655365743c4170706c69636174696f6e49643e00021484456d697473206f6e2066696c6c696e6720746865206a6f62206f70656e696e672e1c506172616d733a4c2d20576f726b6572206f70656e696e67206964cc2d20576f726b6572206170706c69636174696f6e20696420746f2074686520776f726b65722069642064696374696f6e617279ac2d204170706c69636174696f6e6420696473207573656420746f2066696c6c20746865206f70656e696e67244c65616465725365740400280120576f726b6572496400030c88456d697473206f6e2073657474696e67207468652067726f7570206c65616465722e1c506172616d733a482d2047726f757020776f726b65722069642e60576f726b6572526f6c654163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964000410c4456d697473206f6e207570646174696e672074686520726f6c65206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e802d20526f6c65206163636f756e74206964206f662074686520776f726b65722e2c4c6561646572556e7365740005047c456d697473206f6e20756e2d73657474696e6720746865206c65616465722e30576f726b65724578697465640400280120576f726b6572496400061070456d697473206f6e2065786974696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e302d20526174696f6e616c652e50576f726b6572537461727465644c656176696e670800280120576f726b6572496400003101013c4f7074696f6e3c5665633c75383e3e000710b4456d697473207768656e20776f726b65722073746172746564206c656176696e6720746865697220726f6c652e1c506172616d733a302d20576f726b65722069642e302d20526174696f6e616c652e405465726d696e61746564576f726b65720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00081480456d697473206f6e207465726d696e6174696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e405465726d696e617465644c65616465720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00091480456d697473206f6e207465726d696e6174696e6720746865206c65616465722e1c506172616d733a4c2d206c656164657220776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e305374616b65536c61736865641000280120576f726b65724964000018011c42616c616e6365000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e000a18c0456d697473206f6e20736c617368696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e642d2061637475616c20736c61736865642062616c616e63652e702d2052657175657374656420736c61736865642062616c616e63652e302d20526174696f6e616c652e385374616b654465637265617365640800280120576f726b65724964000018011c42616c616e6365000b10c8456d697473206f6e2064656372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74385374616b65496e637265617365640800280120576f726b65724964000018011c42616c616e6365000c10c8456d697473206f6e20696e6372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74504170706c69636174696f6e57697468647261776e04002801344170706c69636174696f6e4964000d0c2501456d697473206f6e207769746864726177696e6720746865206170706c69636174696f6e20666f722074686520726567756c617220776f726b65722f6c656164206f70656e696e672e1c506172616d733a502d204a6f62206170706c69636174696f6e2069643c4f70656e696e6743616e63656c656404002801244f70656e696e674964000e0c8c456d697473206f6e2063616e63656c696e6720746865206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e6720696424427564676574536574040018011c42616c616e6365000f0cc8456d697473206f6e2073657474696e67207468652062756467657420666f722074686520776f726b696e672067726f75702e1c506172616d733a302d206e65772062756467657468576f726b65725265776172644163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964001010cc456d697473206f6e207570646174696e672074686520726577617264206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e882d20526577617264206163636f756e74206964206f662074686520776f726b65722e64576f726b6572526577617264416d6f756e74557064617465640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e001110c8456d697473206f6e207570646174696e67207468652072657761726420616d6f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e482d205265776172642070657220626c6f636b44537461747573546578744368616e67656408002c01104861736800003101013c4f7074696f6e3c5665633c75383e3e001210dc456d697473206f6e207570646174696e6720746865207374617475732074657874206f662074686520776f726b696e672067726f75702e1c506172616d733a482d2073746174757320746578742068617368342d207374617475732074657874384275646765745370656e64696e670c000001244163636f756e744964000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e001314c8456d697473206f6e206275646765742066726f6d2074686520776f726b696e672067726f7570206265696e67207370656e741c506172616d733a582d205265636569766572204163636f756e742049642e402d2042616c616e6365207370656e742e302d20526174696f6e616c652e28526577617264506169641000280120576f726b6572496400000001244163636f756e744964000018011c42616c616e636500008d0301445265776172645061796d656e74547970650014186c456d697473206f6e20706179696e6720746865207265776172642e1c506172616d733a4c2d204964206f662074686520776f726b65722e582d205265636569766572204163636f756e742049642e202d20526577617264b42d205061796d656e74207479706520286d697373656420726577617264206f7220726567756c6172206f6e65296c4e65774d69737365645265776172644c6576656c526561636865640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00151090456d697473206f6e207265616368696e67206e6577206d6973736564207265776172642e1c506172616d733a302d20576f726b65722049442ee82d204d69737365642072657761726420286f7074696f6e616c292e204e6f6e65206d65616e7320276e6f206d697373656420726577617264272e60576f726b696e6747726f757042756467657446756e6465640c002801204d656d6265724964000018011c42616c616e6365000030011c5665633c75383e0016147846756e642074686520776f726b696e672067726f7570206275646765742e1c506172616d733a2c2d204d656d6265722049444c2d20416d6f756e74206f662062616c616e63652c2d20526174696f6e616c65304c65616452656d61726b6564040030011c5665633c75383e00170c94456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a242d206d65737361676538576f726b657252656d61726b65640800280120576f726b65724964000030011c5665633c75383e00181094456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a202d20776f726b6572242d206d6573736167650c5c4576656e747320666f722074686973206d6f64756c652e00385f47726f75705f206576656e7473cd03085070616c6c65745f776f726b696e675f67726f757024496e7374616e63653900000000d10308306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e00020000d5030000022c00d903000002dd0300dd0300000408101000e10308306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6ee503014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d65e903016473705f72756e74696d653a3a52756e74696d65537472696e670000e5030000061000e9030000050200ed030c306672616d655f73797374656d1870616c6c65741043616c6c0404540001201872656d61726b04011872656d61726b30011c5665633c75383e000010684d616b6520736f6d65206f6e2d636861696e2072656d61726b2e0034232320436f6d706c6578697479202d20604f28312960387365745f686561705f7061676573040114706167657328010c753634000104f853657420746865206e756d626572206f6620706167657320696e2074686520576562417373656d626c7920656e7669726f6e6d656e74277320686561702e207365745f636f6465040110636f646530011c5665633c75383e0002106453657420746865206e65772072756e74696d6520636f64652e0034232320436f6d706c657869747931012d20604f2843202b2053296020776865726520604360206c656e677468206f662060636f64656020616e642060536020636f6d706c6578697479206f66206063616e5f7365745f636f6465605c7365745f636f64655f776974686f75745f636865636b73040110636f646530011c5665633c75383e000310190153657420746865206e65772072756e74696d6520636f646520776974686f757420646f696e6720616e7920636865636b73206f662074686520676976656e2060636f6465602e0034232320436f6d706c65786974798c2d20604f2843296020776865726520604360206c656e677468206f662060636f6465602c7365745f73746f726167650401146974656d73f10301345665633c4b657956616c75653e0004046853657420736f6d65206974656d73206f662073746f726167652e306b696c6c5f73746f726167650401106b657973a90201205665633c4b65793e000504744b696c6c20736f6d65206974656d732066726f6d2073746f726167652e2c6b696c6c5f70726566697808011870726566697830010c4b657900011c7375626b65797310010c75333200061011014b696c6c20616c6c2073746f72616765206974656d7320776974682061206b657920746861742073746172747320776974682074686520676976656e207072656669782e0039012a2a4e4f54453a2a2a2057652072656c79206f6e2074686520526f6f74206f726967696e20746f2070726f7669646520757320746865206e756d626572206f66207375626b65797320756e6465723d0174686520707265666978207765206172652072656d6f76696e6720746f2061636375726174656c792063616c63756c6174652074686520776569676874206f6620746869732066756e6374696f6e2e4472656d61726b5f776974685f6576656e7404011872656d61726b30011c5665633c75383e000704a44d616b6520736f6d65206f6e2d636861696e2072656d61726b20616e6420656d6974206576656e742e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ef103000002f50300f50300000408303000f9030c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2001185765696768740001246d61785f626c6f636b2001185765696768740001247065725f636c617373fd0301845065724469737061746368436c6173733c57656967687473506572436c6173733e0000fd030c346672616d655f737570706f7274206469737061746368405065724469737061746368436c617373040454010104000c01186e6f726d616c010401045400012c6f7065726174696f6e616c01040104540001246d616e6461746f72790104010454000001040c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632001185765696768740001346d61785f65787472696e736963050401384f7074696f6e3c5765696768743e0001246d61785f746f74616c050401384f7074696f6e3c5765696768743e0001207265736572766564050401384f7074696f6e3c5765696768743e0000050404184f7074696f6e04045401200108104e6f6e6500000010536f6d65040020000001000009040c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d61780d0401545065724469737061746368436c6173733c7533323e00000d040c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f72791001045400001104082873705f776569676874733c52756e74696d65446257656967687400000801107265616428010c753634000114777269746528010c75363400001504082873705f76657273696f6e3852756e74696d6556657273696f6e0000200124737065635f6e616d65e903013452756e74696d65537472696e67000124696d706c5f6e616d65e903013452756e74696d65537472696e67000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c753332000110617069731904011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c75333200013473746174655f76657273696f6e080108753800001904040c436f77040454011d040004001d040000001d04000002210400210400000408250410002504000003080000000800290400000504002d040c306672616d655f73797374656d1870616c6c6574144572726f720404540001183c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e3043616c6c46696c7465726564000504d0546865206f726967696e2066696c7465722070726576656e74207468652063616c6c20746f20626520646973706174636865642e046c4572726f7220666f72207468652053797374656d2070616c6c657431040c3870616c6c65745f7574696c6974791870616c6c65741043616c6c04045400011814626174636804011463616c6c733504017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0000487c53656e642061206261746368206f662064697370617463682063616c6c732e00b04d61792062652063616c6c65642066726f6d20616e79206f726967696e2065786365707420604e6f6e65602e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e0055014966206f726967696e20697320726f6f74207468656e207468652063616c6c7320617265206469737061746368656420776974686f757420636865636b696e67206f726967696e2066696c7465722e202854686973ec696e636c7564657320627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e0034232320436f6d706c6578697479d02d204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e005501546869732077696c6c2072657475726e20604f6b6020696e20616c6c2063697263756d7374616e6365732e20546f2064657465726d696e65207468652073756363657373206f66207468652062617463682c20616e31016576656e74206973206465706f73697465642e20496620612063616c6c206661696c656420616e64207468652062617463682077617320696e7465727275707465642c207468656e207468655501604261746368496e74657272757074656460206576656e74206973206465706f73697465642c20616c6f6e67207769746820746865206e756d626572206f66207375636365737366756c2063616c6c73206d6164654d01616e6420746865206572726f72206f6620746865206661696c65642063616c6c2e20496620616c6c2077657265207375636365737366756c2c207468656e2074686520604261746368436f6d706c65746564604c6576656e74206973206465706f73697465642e3461735f64657269766174697665080114696e6465782904010c75313600011063616c6c3904017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000134dc53656e6420612063616c6c207468726f75676820616e20696e64657865642070736575646f6e796d206f66207468652073656e6465722e00550146696c7465722066726f6d206f726967696e206172652070617373656420616c6f6e672e205468652063616c6c2077696c6c2062652064697370617463686564207769746820616e206f726967696e207768696368bc757365207468652073616d652066696c74657220617320746865206f726967696e206f6620746869732063616c6c2e0045014e4f54453a20496620796f75206e65656420746f20656e73757265207468617420616e79206163636f756e742d62617365642066696c746572696e67206973206e6f7420686f6e6f7265642028692e652e61016265636175736520796f7520657870656374206070726f78796020746f2068617665206265656e2075736564207072696f7220696e207468652063616c6c20737461636b20616e6420796f7520646f206e6f742077616e7451017468652063616c6c207265737472696374696f6e7320746f206170706c7920746f20616e79207375622d6163636f756e7473292c207468656e20757365206061735f6d756c74695f7468726573686f6c645f31607c696e20746865204d756c74697369672070616c6c657420696e73746561642e00f44e4f54453a205072696f7220746f2076657273696f6e202a31322c2074686973207761732063616c6c6564206061735f6c696d697465645f737562602e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e2462617463685f616c6c04011463616c6c733504017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000234ec53656e642061206261746368206f662064697370617463682063616c6c7320616e642061746f6d6963616c6c792065786563757465207468656d2e21015468652077686f6c65207472616e73616374696f6e2077696c6c20726f6c6c6261636b20616e64206661696c20696620616e79206f66207468652063616c6c73206661696c65642e00b04d61792062652063616c6c65642066726f6d20616e79206f726967696e2065786365707420604e6f6e65602e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e0055014966206f726967696e20697320726f6f74207468656e207468652063616c6c7320617265206469737061746368656420776974686f757420636865636b696e67206f726967696e2066696c7465722e202854686973ec696e636c7564657320627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e0034232320436f6d706c6578697479d02d204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e2c64697370617463685f617308012461735f6f726967696e91060154426f783c543a3a50616c6c6574734f726967696e3e00011063616c6c3904017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000318c84469737061746368657320612066756e6374696f6e2063616c6c207769746820612070726f7669646564206f726967696e2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e0034232320436f6d706c65786974791c2d204f2831292e2c666f7263655f626174636804011463616c6c733504017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0004347c53656e642061206261746368206f662064697370617463682063616c6c732ed4556e6c696b6520606261746368602c20697420616c6c6f7773206572726f727320616e6420776f6e277420696e746572727570742e00b04d61792062652063616c6c65642066726f6d20616e79206f726967696e2065786365707420604e6f6e65602e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e004d014966206f726967696e20697320726f6f74207468656e207468652063616c6c732061726520646973706174636820776974686f757420636865636b696e67206f726967696e2066696c7465722e202854686973ec696e636c7564657320627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e0034232320436f6d706c6578697479d02d204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e2c776974685f77656967687408011063616c6c3904017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000118776569676874200118576569676874000518c4446973706174636820612066756e6374696f6e2063616c6c2077697468206120737065636966696564207765696768742e002d01546869732066756e6374696f6e20646f6573206e6f7420636865636b2074686520776569676874206f66207468652063616c6c2c20616e6420696e737465616420616c6c6f777320746865b8526f6f74206f726967696e20746f20737065636966792074686520776569676874206f66207468652063616c6c2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e3504000002390400390408586a6f7973747265616d5f6e6f64655f72756e74696d652c52756e74696d6543616c6c00018c1853797374656d0400ed0301ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e0000001c5574696c6974790400310401b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5574696c6974792c2052756e74696d653e000100104261626504003d0401a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c426162652c2052756e74696d653e0002002454696d657374616d700400610401b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e0003002042616c616e6365730400650401b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e00050068456c656374696f6e50726f76696465724d756c746950686173650400690401fd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c456c656374696f6e50726f76696465724d756c746950686173652c2052756e74696d653e0007001c5374616b696e670400550501b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5374616b696e672c2052756e74696d653e0008001c53657373696f6e0400790501b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53657373696f6e2c2052756e74696d653e0009001c4772616e6470610400850501b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4772616e6470612c2052756e74696d653e000b0020496d4f6e6c696e650400b50501b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c496d4f6e6c696e652c2052756e74696d653e000d0020426167734c6973740400d50501b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c426167734c6973742c2052756e74696d653e0010001c56657374696e670400d90501b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c56657374696e672c2052756e74696d653e001100204d756c74697369670400e10501b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d756c74697369672c2052756e74696d653e0012001c436f756e63696c0400e90501b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f756e63696c2c2052756e74696d653e001300285265666572656e64756d0400ed0501bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5265666572656e64756d2c2052756e74696d653e0014001c4d656d626572730400f10501b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d656d626572732c2052756e74696d653e00150014466f72756d0400f50501a90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c466f72756d2c2052756e74696d653e00160030436f6e737469747574696f6e0400f90501c50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f6e737469747574696f6e2c2052756e74696d653e00170018426f756e74790400fd0501ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c426f756e74792c2052756e74696d653e001800404a6f7973747265616d5574696c6974790400010601d50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4a6f7973747265616d5574696c6974792c2052756e74696d653e0019001c436f6e74656e740400050601b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f6e74656e742c2052756e74696d653e001a001c53746f726167650400350601b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53746f726167652c2052756e74696d653e001b003050726f6a656374546f6b656e0400390601c50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50726f6a656374546f6b656e2c2052756e74696d653e001c003c50726f706f73616c73456e67696e650400610601d10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50726f706f73616c73456e67696e652c2052756e74696d653e001d004c50726f706f73616c7344697363757373696f6e0400650601e10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50726f706f73616c7344697363757373696f6e2c2052756e74696d653e001e003850726f706f73616c73436f6465780400690601cd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50726f706f73616c73436f6465782c2052756e74696d653e001f0044466f72756d576f726b696e6747726f757004006d0601d90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c466f72756d576f726b696e6747726f75702c2052756e74696d653e0020004c53746f72616765576f726b696e6747726f75700400710601e10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53746f72616765576f726b696e6747726f75702c2052756e74696d653e0021004c436f6e74656e74576f726b696e6747726f75700400750601e10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f6e74656e74576f726b696e6747726f75702c2052756e74696d653e0022006c4f7065726174696f6e73576f726b696e6747726f7570416c7068610400790601010273656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4f7065726174696f6e73576f726b696e6747726f7570416c7068612c2052756e74696d653e0023003c417070576f726b696e6747726f757004007d0601d10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c417070576f726b696e6747726f75702c2052756e74696d653e002400584d656d62657273686970576f726b696e6747726f75700400810601ed0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d656d62657273686970576f726b696e6747726f75702c2052756e74696d653e002500684f7065726174696f6e73576f726b696e6747726f7570426574610400850601fd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4f7065726174696f6e73576f726b696e6747726f7570426574612c2052756e74696d653e0026006c4f7065726174696f6e73576f726b696e6747726f757047616d6d610400890601010273656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4f7065726174696f6e73576f726b696e6747726f757047616d6d612c2052756e74696d653e00270060446973747269627574696f6e576f726b696e6747726f757004008d0601f50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c446973747269627574696f6e576f726b696e6747726f75702c2052756e74696d653e002800003d040c2c70616c6c65745f626162651870616c6c65741043616c6c04045400010c4c7265706f72745f65717569766f636174696f6e08014865717569766f636174696f6e5f70726f6f6641040184426f783c45717569766f636174696f6e50726f6f663c543a3a4865616465723e3e00013c6b65795f6f776e65725f70726f6f6655040140543a3a4b65794f776e657250726f6f6600001009015265706f727420617574686f726974792065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667905017468652065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f660d01616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c306265207265706f727465642e707265706f72745f65717569766f636174696f6e5f756e7369676e656408014865717569766f636174696f6e5f70726f6f6641040184426f783c45717569766f636174696f6e50726f6f663c543a3a4865616465723e3e00013c6b65795f6f776e65725f70726f6f6655040140543a3a4b65794f776e657250726f6f6600012009015265706f727420617574686f726974792065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667905017468652065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f660d01616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c306265207265706f727465642e0d01546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c791501626c6f636b20617574686f72732077696c6c2063616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c2061732073756368150169662074686520626c6f636b20617574686f7220697320646566696e65642069742077696c6c20626520646566696e6564206173207468652065717569766f636174696f6e247265706f727465722e48706c616e5f636f6e6669675f6368616e6765040118636f6e666967590401504e657874436f6e66696744657363726970746f720002105d01506c616e20616e2065706f636820636f6e666967206368616e67652e205468652065706f636820636f6e666967206368616e6765206973207265636f7264656420616e642077696c6c20626520656e6163746564206f6e5101746865206e6578742063616c6c20746f2060656e6163745f65706f63685f6368616e6765602e2054686520636f6e6669672077696c6c20626520616374697661746564206f6e652065706f63682061667465722e59014d756c7469706c652063616c6c7320746f2074686973206d6574686f642077696c6c207265706c61636520616e79206578697374696e6720706c616e6e656420636f6e666967206368616e6765207468617420686164546e6f74206265656e20656e6163746564207965742e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e4104084873705f636f6e73656e7375735f736c6f74734445717569766f636174696f6e50726f6f660818486561646572014504084964014d04001001206f6666656e6465724d0401084964000110736c6f7451040110536c6f7400013066697273745f686561646572450401184865616465720001347365636f6e645f6865616465724504011848656164657200004504102873705f72756e74696d651c67656e65726963186865616465721848656164657208184e756d626572011010486173680149040014012c706172656e745f686173682c0130486173683a3a4f75747075740001186e756d626572e50301184e756d62657200012873746174655f726f6f742c0130486173683a3a4f757470757400013c65787472696e736963735f726f6f742c0130486173683a3a4f7574707574000118646967657374340118446967657374000049040c2873705f72756e74696d65187472616974732c426c616b6554776f323536000000004d040c4473705f636f6e73656e7375735f626162650c617070185075626c696300000400dc013c737232353531393a3a5075626c696300005104084873705f636f6e73656e7375735f736c6f747310536c6f740000040028010c75363400005504082873705f73657373696f6e3c4d656d6265727368697050726f6f6600000c011c73657373696f6e10013053657373696f6e496e646578000128747269655f6e6f646573a90201305665633c5665633c75383e3e00013c76616c696461746f725f636f756e7410013856616c696461746f72436f756e74000059040c4473705f636f6e73656e7375735f626162651c64696765737473504e657874436f6e66696744657363726970746f720001040856310801046379030128287536342c2075363429000134616c6c6f7765645f736c6f74735d040130416c6c6f776564536c6f7473000100005d04084473705f636f6e73656e7375735f6261626530416c6c6f776564536c6f747300010c305072696d617279536c6f7473000000745072696d617279416e645365636f6e64617279506c61696e536c6f74730001006c5072696d617279416e645365636f6e64617279565246536c6f74730002000061040c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f77240124543a3a4d6f6d656e7400003c54536574207468652063757272656e742074696d652e005501546869732063616c6c2073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6ed470686173652c20696620746869732063616c6c206861736e2774206265656e20696e766f6b656420627920746861742074696d652e0041015468652074696d657374616d702073686f756c642062652067726561746572207468616e207468652070726576696f7573206f6e652062792074686520616d6f756e742073706563696669656420627940604d696e696d756d506572696f64602e00d4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060496e686572656e74602e0034232320436f6d706c657869747931012d20604f2831296020284e6f7465207468617420696d706c656d656e746174696f6e73206f6620604f6e54696d657374616d7053657460206d75737420616c736f20626520604f283129602961012d20312073746f72616765207265616420616e6420312073746f72616765206d75746174696f6e2028636f64656320604f28312960292e202862656361757365206f6620604469645570646174653a3a74616b656020696e402020606f6e5f66696e616c697a656029d42d2031206576656e742068616e646c657220606f6e5f74696d657374616d705f736574602e204d75737420626520604f283129602e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e65040c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c080454000449000118207472616e73666572080110646573740001504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565ec0128543a3a42616c616e6365000058d45472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572206163636f756e742e000501607472616e73666572602077696c6c207365742074686520604672656542616c616e636560206f66207468652073656e64657220616e642072656365697665722e11014966207468652073656e6465722773206163636f756e742069732062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c74b06f6620746865207472616e736665722c20746865206163636f756e742077696c6c206265207265617065642e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520605369676e65646020627920746865207472616e736163746f722e0034232320436f6d706c657869747961012d20446570656e64656e74206f6e20617267756d656e747320627574206e6f7420637269746963616c2c20676976656e2070726f70657220696d706c656d656e746174696f6e7320666f7220696e70757420636f6e66696794202074797065732e205365652072656c617465642066756e6374696f6e732062656c6f772e31012d20497420636f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e642077726974657320696e7465726e616c6c7920616e64206e6f20636f6d706c6578382020636f6d7075746174696f6e2e004852656c617465642066756e6374696f6e733a004d0120202d2060656e737572655f63616e5f77697468647261776020697320616c776179732063616c6c656420696e7465726e616c6c792062757420686173206120626f756e64656420636f6d706c65786974792e290120202d205472616e7366657272696e672062616c616e63657320746f206163636f756e7473207468617420646964206e6f74206578697374206265666f72652077696c6c206361757365cc2020202060543a3a4f6e4e65774163636f756e743a3a6f6e5f6e65775f6163636f756e746020746f2062652063616c6c65642e5d0120202d2052656d6f76696e6720656e6f7567682066756e64732066726f6d20616e206163636f756e742077696c6c20747269676765722060543a3a4475737452656d6f76616c3a3a6f6e5f756e62616c616e636564602e5d0120202d20607472616e736665725f6b6565705f616c6976656020776f726b73207468652073616d652077617920617320607472616e73666572602c206275742068617320616e206164646974696f6e616c20636865636bdc202020207468617420746865207472616e736665722077696c6c206e6f74206b696c6c20746865206f726967696e206163636f756e742e2c7365745f62616c616e63650c010c77686f0001504163636f756e7449644c6f6f6b75704f663c543e0001206e65775f66726565ec0128543a3a42616c616e63650001306e65775f7265736572766564ec0128543a3a42616c616e636500012090536574207468652062616c616e636573206f66206120676976656e206163636f756e742e001d01546869732077696c6c20616c74657220604672656542616c616e63656020616e642060526573657276656442616c616e63656020696e2073746f726167652e2069742077696c6c3101616c736f20616c7465722074686520746f74616c2069737375616e6365206f66207468652073797374656d202860546f74616c49737375616e6365602920617070726f7072696174656c792e1501496620746865206e65772066726565206f722072657365727665642062616c616e63652069732062656c6f7720746865206578697374656e7469616c206465706f7369742cfc69742077696c6c20726573657420746865206163636f756e74206e6f6e63652028606672616d655f73797374656d3a3a4163636f756e744e6f6e636560292e00b0546865206469737061746368206f726967696e20666f7220746869732063616c6c2069732060726f6f74602e38666f7263655f7472616e736665720c0118736f757263650001504163636f756e7449644c6f6f6b75704f663c543e000110646573740001504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565ec0128543a3a42616c616e63650002144d0145786163746c7920617320607472616e73666572602c2065786365707420746865206f726967696e206d75737420626520726f6f7420616e642074686520736f75726365206163636f756e74206d6179206265287370656369666965642e34232320436f6d706c65786974794d012d2053616d65206173207472616e736665722c20627574206164646974696f6e616c207265616420616e6420777269746520626563617573652074686520736f75726365206163636f756e74206973206e6f747c2020617373756d656420746f20626520696e20746865206f7665726c61792e4c7472616e736665725f6b6565705f616c697665080110646573740001504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565ec0128543a3a42616c616e63650003184d0153616d6520617320746865205b607472616e73666572605d2063616c6c2c206275742077697468206120636865636b207468617420746865207472616e736665722077696c6c206e6f74206b696c6c207468653c6f726967696e206163636f756e742e00b8393925206f66207468652074696d6520796f752077616e74205b607472616e73666572605d20696e73746561642e00c05b607472616e73666572605d3a207374727563742e50616c6c65742e68746d6c236d6574686f642e7472616e73666572307472616e736665725f616c6c080110646573740001504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c697665980110626f6f6c00044005015472616e736665722074686520656e74697265207472616e7366657261626c652062616c616e63652066726f6d207468652063616c6c6572206163636f756e742e0059014e4f54453a20546869732066756e6374696f6e206f6e6c7920617474656d70747320746f207472616e73666572205f7472616e7366657261626c655f2062616c616e6365732e2054686973206d65616e7320746861746101616e79206c6f636b65642c2072657365727665642c206f72206578697374656e7469616c206465706f7369747320287768656e20606b6565705f616c6976656020697320607472756560292c2077696c6c206e6f742062655d017472616e7366657272656420627920746869732066756e6374696f6e2e20546f20656e73757265207468617420746869732066756e6374696f6e20726573756c747320696e2061206b696c6c6564206163636f756e742c4501796f75206d69676874206e65656420746f207072657061726520746865206163636f756e742062792072656d6f76696e6720616e79207265666572656e636520636f756e746572732c2073746f72616765406465706f736974732c206574632e2e2e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205369676e65642e00a02d206064657374603a2054686520726563697069656e74206f6620746865207472616e736665722e59012d20606b6565705f616c697665603a204120626f6f6c65616e20746f2064657465726d696e652069662074686520607472616e736665725f616c6c60206f7065726174696f6e2073686f756c642073656e6420616c6c4d0120206f66207468652066756e647320746865206163636f756e74206861732c2063617573696e67207468652073656e646572206163636f756e7420746f206265206b696c6c6564202866616c7365292c206f72590120207472616e736665722065766572797468696e6720657863657074206174206c6561737420746865206578697374656e7469616c206465706f7369742c2077686963682077696c6c2067756172616e74656520746fd420206b656570207468652073656e646572206163636f756e7420616c697665202874727565292e20232320436f6d706c657869747939012d204f2831292e204a757374206c696b65207472616e736665722c206275742072656164696e672074686520757365722773207472616e7366657261626c652062616c616e63652066697273742e3c666f7263655f756e7265736572766508010c77686f0001504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74180128543a3a42616c616e636500050cb0556e7265736572766520736f6d652062616c616e63652066726f6d2061207573657220627920666f7263652e006c43616e206f6e6c792062652063616c6c656420627920524f4f542e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e69040c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173651870616c6c65741043616c6c0404540001143c7375626d69745f756e7369676e65640801307261775f736f6c7574696f6e6d0401b0426f783c526177536f6c7574696f6e3c536f6c7574696f6e4f663c543a3a4d696e6572436f6e6669673e3e3e00011c7769746e6573733d050158536f6c7574696f6e4f72536e617073686f7453697a65000038a45375626d6974206120736f6c7574696f6e20666f722074686520756e7369676e65642070686173652e00c8546865206469737061746368206f726967696e20666f20746869732063616c6c206d757374206265205f5f6e6f6e655f5f2e003d0154686973207375626d697373696f6e20697320636865636b6564206f6e2074686520666c792e204d6f72656f7665722c207468697320756e7369676e656420736f6c7574696f6e206973206f6e6c79550176616c696461746564207768656e207375626d697474656420746f2074686520706f6f6c2066726f6d20746865202a2a6c6f63616c2a2a206e6f64652e204566666563746976656c792c2074686973206d65616e735d0174686174206f6e6c79206163746976652076616c696461746f72732063616e207375626d69742074686973207472616e73616374696f6e207768656e20617574686f72696e67206120626c6f636b202873696d696c617240746f20616e20696e686572656e74292e005901546f2070726576656e7420616e7920696e636f727265637420736f6c7574696f6e2028616e642074687573207761737465642074696d652f776569676874292c2074686973207472616e73616374696f6e2077696c6c4d0170616e69632069662074686520736f6c7574696f6e207375626d6974746564206279207468652076616c696461746f7220697320696e76616c696420696e20616e79207761792c206566666563746976656c799c70757474696e6720746865697220617574686f72696e6720726577617264206174207269736b2e00e04e6f206465706f736974206f7220726577617264206973206173736f63696174656420776974682074686973207375626d697373696f6e2e6c7365745f6d696e696d756d5f756e747275737465645f73636f72650401406d617962655f6e6578745f73636f7265410501544f7074696f6e3c456c656374696f6e53636f72653e000114b05365742061206e65772076616c756520666f7220604d696e696d756d556e7472757374656453636f7265602e00d84469737061746368206f726967696e206d75737420626520616c69676e656420776974682060543a3a466f7263654f726967696e602e00f05468697320636865636b2063616e206265207475726e6564206f66662062792073657474696e67207468652076616c756520746f20604e6f6e65602e747365745f656d657267656e63795f656c656374696f6e5f726573756c74040120737570706f72747345050158537570706f7274733c543a3a4163636f756e7449643e0002205901536574206120736f6c7574696f6e20696e207468652071756575652c20746f2062652068616e646564206f757420746f2074686520636c69656e74206f6620746869732070616c6c657420696e20746865206e6578748863616c6c20746f2060456c656374696f6e50726f76696465723a3a656c656374602e004501546869732063616e206f6e6c79206265207365742062792060543a3a466f7263654f726967696e602c20616e64206f6e6c79207768656e207468652070686173652069732060456d657267656e6379602e00610154686520736f6c7574696f6e206973206e6f7420636865636b656420666f7220616e7920666561736962696c69747920616e6420697320617373756d656420746f206265207472757374776f727468792c20617320616e795101666561736962696c69747920636865636b20697473656c662063616e20696e207072696e6369706c652063617573652074686520656c656374696f6e2070726f6365737320746f206661696c202864756520746f686d656d6f72792f77656967687420636f6e73747261696e73292e187375626d69740401307261775f736f6c7574696f6e6d0401b0426f783c526177536f6c7574696f6e3c536f6c7574696f6e4f663c543a3a4d696e6572436f6e6669673e3e3e0003249c5375626d6974206120736f6c7574696f6e20666f7220746865207369676e65642070686173652e00d0546865206469737061746368206f726967696e20666f20746869732063616c6c206d757374206265205f5f7369676e65645f5f2e005d0154686520736f6c7574696f6e20697320706f74656e7469616c6c79207175657565642c206261736564206f6e2074686520636c61696d65642073636f726520616e642070726f6365737365642061742074686520656e64506f6620746865207369676e65642070686173652e005d0141206465706f73697420697320726573657276656420616e64207265636f7264656420666f722074686520736f6c7574696f6e2e204261736564206f6e20746865206f7574636f6d652c2074686520736f6c7574696f6e15016d696768742062652072657761726465642c20736c61736865642c206f722067657420616c6c206f7220612070617274206f6620746865206465706f736974206261636b2e4c676f7665726e616e63655f66616c6c6261636b0801406d617962655f6d61785f766f746572730102012c4f7074696f6e3c7533323e0001446d617962655f6d61785f746172676574730102012c4f7074696f6e3c7533323e00041080547269676765722074686520676f7665726e616e63652066616c6c6261636b2e004901546869732063616e206f6e6c792062652063616c6c6564207768656e205b6050686173653a3a456d657267656e6379605d20697320656e61626c65642c20617320616e20616c7465726e617469766520746fc063616c6c696e67205b6043616c6c3a3a7365745f656d657267656e63795f656c656374696f6e5f726573756c74605d2e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e6d04089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173652c526177536f6c7574696f6e040453017104000c0120736f6c7574696f6e710401045300011473636f72659c0134456c656374696f6e53636f7265000114726f756e6410010c7533320000710408586a6f7973747265616d5f6e6f64655f72756e74696d65384e706f73536f6c7574696f6e31360000400118766f74657331750400000118766f74657332810400000118766f74657333950400000118766f74657334a10400000118766f74657335ad0400000118766f74657336b90400000118766f74657337c50400000118766f74657338d10400000118766f74657339dd040000011c766f7465733130e9040000011c766f7465733131f5040000011c766f746573313201050000011c766f74657331330d050000011c766f746573313419050000011c766f746573313525050000011c766f746573313631050000007504000002790400790400000408e5037d04007d04000006290400810400000285040085040000040ce50389047d04008904000004087d048d04008d0400000691040091040c3473705f61726974686d65746963287065725f7468696e677318506572553136000004002904010c7531360000950400000299040099040000040ce5039d047d04009d0400000302000000890400a104000002a50400a5040000040ce503a9047d0400a90400000303000000890400ad04000002b10400b1040000040ce503b5047d0400b50400000304000000890400b904000002bd0400bd040000040ce503c1047d0400c10400000305000000890400c504000002c90400c9040000040ce503cd047d0400cd0400000306000000890400d104000002d50400d5040000040ce503d9047d0400d90400000307000000890400dd04000002e10400e1040000040ce503e5047d0400e50400000308000000890400e904000002ed0400ed040000040ce503f1047d0400f10400000309000000890400f504000002f90400f9040000040ce503fd047d0400fd040000030a000000890400010500000205050005050000040ce50309057d040009050000030b0000008904000d0500000211050011050000040ce50315057d040015050000030c00000089040019050000021d05001d050000040ce50321057d040021050000030d000000890400250500000229050029050000040ce5032d057d04002d050000030e000000890400310500000235050035050000040ce50339057d040039050000030f0000008904003d05089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f706861736558536f6c7574696f6e4f72536e617073686f7453697a650000080118766f74657273e503010c75333200011c74617267657473e503010c7533320000410504184f7074696f6e040454019c0108104e6f6e6500000010536f6d6504009c00000100004505000002490500490500000408004d05004d05084473705f6e706f735f656c656374696f6e731c537570706f727404244163636f756e744964010000080114746f74616c18013c457874656e64656442616c616e6365000118766f74657273510501845665633c284163636f756e7449642c20457874656e64656442616c616e6365293e000051050000024d01005505103870616c6c65745f7374616b696e671870616c6c65741870616c6c65741043616c6c04045400016810626f6e640c0128636f6e74726f6c6c65720001504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565ec013042616c616e63654f663c543e00011470617965655905017c52657761726444657374696e6174696f6e3c543a3a4163636f756e7449643e00003c610154616b6520746865206f726967696e206163636f756e74206173206120737461736820616e64206c6f636b207570206076616c756560206f66206974732062616c616e63652e2060636f6e74726f6c6c6572602077696c6c80626520746865206163636f756e74207468617420636f6e74726f6c732069742e002d016076616c756560206d757374206265206d6f7265207468616e2074686520606d696e696d756d5f62616c616e636560207370656369666965642062792060543a3a43757272656e6379602e002101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20627920746865207374617368206163636f756e742e003c456d6974732060426f6e646564602e34232320436f6d706c6578697479d02d20496e646570656e64656e74206f662074686520617267756d656e74732e204d6f64657261746520636f6d706c65786974792e1c2d204f2831292e642d20546872656520657874726120444220656e74726965732e004d014e4f54453a2054776f206f66207468652073746f726167652077726974657320286053656c663a3a626f6e646564602c206053656c663a3a7061796565602920617265205f6e657665725f20636c65616e65643d01756e6c6573732074686520606f726967696e602066616c6c732062656c6f77205f6578697374656e7469616c206465706f7369745f20616e6420676574732072656d6f76656420617320647573742e28626f6e645f65787472610401386d61785f6164646974696f6e616cec013042616c616e63654f663c543e000138610141646420736f6d6520657874726120616d6f756e742074686174206861766520617070656172656420696e207468652073746173682060667265655f62616c616e63656020696e746f207468652062616c616e636520757030666f72207374616b696e672e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c65722e004d01557365207468697320696620746865726520617265206164646974696f6e616c2066756e647320696e20796f7572207374617368206163636f756e74207468617420796f75207769736820746f20626f6e642e5501556e6c696b65205b60626f6e64605d2853656c663a3a626f6e6429206f72205b60756e626f6e64605d2853656c663a3a756e626f6e642920746869732066756e6374696f6e20646f6573206e6f7420696d706f7365bc616e79206c696d69746174696f6e206f6e2074686520616d6f756e7420746861742063616e2062652061646465642e003c456d6974732060426f6e646564602e0034232320436f6d706c6578697479e42d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e1c2d204f2831292e18756e626f6e6404011476616c7565ec013042616c616e63654f663c543e00024c51015363686564756c65206120706f7274696f6e206f662074686520737461736820746f20626520756e6c6f636b656420726561647920666f72207472616e73666572206f75742061667465722074686520626f6e64fc706572696f6420656e64732e2049662074686973206c656176657320616e20616d6f756e74206163746976656c7920626f6e646564206c657373207468616e2101543a3a43757272656e63793a3a6d696e696d756d5f62616c616e636528292c207468656e20697420697320696e6372656173656420746f207468652066756c6c20616d6f756e742e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0045014f6e63652074686520756e6c6f636b20706572696f6420697320646f6e652c20796f752063616e2063616c6c206077697468647261775f756e626f6e6465646020746f2061637475616c6c79206d6f7665bc7468652066756e6473206f7574206f66206d616e6167656d656e7420726561647920666f72207472616e736665722e0031014e6f206d6f7265207468616e2061206c696d69746564206e756d626572206f6620756e6c6f636b696e67206368756e6b73202873656520604d6178556e6c6f636b696e674368756e6b736029410163616e20636f2d657869737473206174207468652073616d652074696d652e20496620746865726520617265206e6f20756e6c6f636b696e67206368756e6b7320736c6f747320617661696c61626c6545015b6043616c6c3a3a77697468647261775f756e626f6e646564605d2069732063616c6c656420746f2072656d6f766520736f6d65206f6620746865206368756e6b732028696620706f737369626c65292e00390149662061207573657220656e636f756e74657273207468652060496e73756666696369656e74426f6e6460206572726f72207768656e2063616c6c696e6720746869732065787472696e7369632c1901746865792073686f756c642063616c6c20606368696c6c6020666972737420696e206f7264657220746f206672656520757020746865697220626f6e6465642066756e64732e0044456d6974732060556e626f6e646564602e009453656520616c736f205b6043616c6c3a3a77697468647261775f756e626f6e646564605d2e4477697468647261775f756e626f6e6465640401486e756d5f736c617368696e675f7370616e7310010c753332000338290152656d6f766520616e7920756e6c6f636b6564206368756e6b732066726f6d207468652060756e6c6f636b696e67602071756575652066726f6d206f7572206d616e6167656d656e742e0031015468697320657373656e7469616c6c7920667265657320757020746861742062616c616e636520746f206265207573656420627920746865207374617368206163636f756e7420746f20646f4877686174657665722069742077616e74732e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722e0048456d697473206057697468647261776e602e006853656520616c736f205b6043616c6c3a3a756e626f6e64605d2e0034232320436f6d706c6578697479d84f285329207768657265205320697320746865206e756d626572206f6620736c617368696e67207370616e7320746f2072656d6f766509014e4f54453a2057656967687420616e6e6f746174696f6e20697320746865206b696c6c207363656e6172696f2c20776520726566756e64206f74686572776973652e2076616c69646174650401147072656673b0013856616c696461746f725072656673000414e44465636c617265207468652064657369726520746f2076616c696461746520666f7220746865206f726967696e20636f6e74726f6c6c65722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e206e6f6d696e61746504011c746172676574735d0501645665633c4163636f756e7449644c6f6f6b75704f663c543e3e0005280d014465636c617265207468652064657369726520746f206e6f6d696e6174652060746172676574736020666f7220746865206f726967696e20636f6e74726f6c6c65722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0034232320436f6d706c65786974792d012d20546865207472616e73616374696f6e277320636f6d706c65786974792069732070726f706f7274696f6e616c20746f207468652073697a65206f662060746172676574736020284e29050177686963682069732063617070656420617420436f6d7061637441737369676e6d656e74733a3a4c494d49542028543a3a4d61784e6f6d696e6174696f6e73292ed42d20426f74682074686520726561647320616e642077726974657320666f6c6c6f7720612073696d696c6172207061747465726e2e146368696c6c000628c44465636c617265206e6f2064657369726520746f206569746865722076616c6964617465206f72206e6f6d696e6174652e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0034232320436f6d706c6578697479e42d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e502d20436f6e7461696e73206f6e6520726561642ec42d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e247365745f706179656504011470617965655905017c52657761726444657374696e6174696f6e3c543a3a4163636f756e7449643e000730b42852652d2973657420746865207061796d656e742074617267657420666f72206120636f6e74726f6c6c65722e005101456666656374732077696c6c2062652066656c7420696e7374616e746c792028617320736f6f6e20617320746869732066756e6374696f6e20697320636f6d706c65746564207375636365737366756c6c79292e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0034232320436f6d706c6578697479182d204f283129e42d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e942d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec42d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e242d2d2d2d2d2d2d2d2d387365745f636f6e74726f6c6c6572040128636f6e74726f6c6c65720001504163636f756e7449644c6f6f6b75704f663c543e00082c8c2852652d297365742074686520636f6e74726f6c6c6572206f6620612073746173682e005101456666656374732077696c6c2062652066656c7420696e7374616e746c792028617320736f6f6e20617320746869732066756e6374696f6e20697320636f6d706c65746564207375636365737366756c6c79292e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c65722e0034232320436f6d706c6578697479104f283129e42d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e942d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec42d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e4c7365745f76616c696461746f725f636f756e7404010c6e6577e503010c75333200091890536574732074686520696465616c206e756d626572206f662076616c696461746f72732e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e0034232320436f6d706c6578697479104f28312960696e6372656173655f76616c696461746f725f636f756e740401286164646974696f6e616ce503010c753332000a1ce4496e6372656d656e74732074686520696465616c206e756d626572206f662076616c696461746f7273207570746f206d6178696d756d206f668c60456c656374696f6e50726f7669646572426173653a3a4d617857696e6e657273602e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e0034232320436f6d706c65786974799853616d65206173205b6053656c663a3a7365745f76616c696461746f725f636f756e74605d2e547363616c655f76616c696461746f725f636f756e74040118666163746f726105011c50657263656e74000b1c0d015363616c652075702074686520696465616c206e756d626572206f662076616c696461746f7273206279206120666163746f72207570746f206d6178696d756d206f668c60456c656374696f6e50726f7669646572426173653a3a4d617857696e6e657273602e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e0034232320436f6d706c65786974799853616d65206173205b6053656c663a3a7365745f76616c696461746f725f636f756e74605d2e34666f7263655f6e6f5f65726173000c34ac466f72636520746865726520746f206265206e6f206e6577206572617320696e646566696e6974656c792e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002423205761726e696e6700190154686520656c656374696f6e2070726f6365737320737461727473206d756c7469706c6520626c6f636b73206265666f72652074686520656e64206f6620746865206572612e3901546875732074686520656c656374696f6e2070726f63657373206d6179206265206f6e676f696e67207768656e20746869732069732063616c6c65642e20496e2074686973206361736520746865dc656c656374696f6e2077696c6c20636f6e74696e756520756e74696c20746865206e65787420657261206973207472696767657265642e0034232320436f6d706c65786974793c2d204e6f20617267756d656e74732e382d205765696768743a204f28312934666f7263655f6e65775f657261000d384901466f72636520746865726520746f2062652061206e6577206572612061742074686520656e64206f6620746865206e6578742073657373696f6e2e20416674657220746869732c2069742077696c6c2062659c726573657420746f206e6f726d616c20286e6f6e2d666f7263656429206265686176696f75722e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002423205761726e696e6700190154686520656c656374696f6e2070726f6365737320737461727473206d756c7469706c6520626c6f636b73206265666f72652074686520656e64206f6620746865206572612e4901496620746869732069732063616c6c6564206a757374206265666f72652061206e657720657261206973207472696767657265642c2074686520656c656374696f6e2070726f63657373206d6179206e6f748c6861766520656e6f75676820626c6f636b7320746f20676574206120726573756c742e0034232320436f6d706c65786974793c2d204e6f20617267756d656e74732e382d205765696768743a204f283129447365745f696e76756c6e657261626c6573040134696e76756c6e657261626c65735d0501445665633c543a3a4163636f756e7449643e000e0cc8536574207468652076616c696461746f72732077686f2063616e6e6f7420626520736c61736865642028696620616e79292e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e34666f7263655f756e7374616b650801147374617368000130543a3a4163636f756e7449640001486e756d5f736c617368696e675f7370616e7310010c753332000f0c0901466f72636520612063757272656e74207374616b657220746f206265636f6d6520636f6d706c6574656c7920756e7374616b65642c20696d6d6564696174656c792e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e50666f7263655f6e65775f6572615f616c776179730010240101466f72636520746865726520746f2062652061206e6577206572612061742074686520656e64206f662073657373696f6e7320696e646566696e6974656c792e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002423205761726e696e6700190154686520656c656374696f6e2070726f6365737320737461727473206d756c7469706c6520626c6f636b73206265666f72652074686520656e64206f6620746865206572612e4901496620746869732069732063616c6c6564206a757374206265666f72652061206e657720657261206973207472696767657265642c2074686520656c656374696f6e2070726f63657373206d6179206e6f748c6861766520656e6f75676820626c6f636b7320746f20676574206120726573756c742e5463616e63656c5f64656665727265645f736c61736808010c657261100120457261496e646578000134736c6173685f696e6469636573650501205665633c7533323e0011149443616e63656c20656e6163746d656e74206f66206120646566657272656420736c6173682e009843616e2062652063616c6c6564206279207468652060543a3a41646d696e4f726967696e602e000101506172616d65746572733a2065726120616e6420696e6469636573206f662074686520736c617368657320666f7220746861742065726120746f206b696c6c2e387061796f75745f7374616b65727308013c76616c696461746f725f7374617368000130543a3a4163636f756e74496400010c657261100120457261496e64657800122c0d01506179206f757420616c6c20746865207374616b65727320626568696e6420612073696e676c652076616c696461746f7220666f7220612073696e676c65206572612e0049012d206076616c696461746f725f73746173686020697320746865207374617368206163636f756e74206f66207468652076616c696461746f722e205468656972206e6f6d696e61746f72732c20757020746f2501202060543a3a4d61784e6f6d696e61746f72526577617264656450657256616c696461746f72602c2077696c6c20616c736f207265636569766520746865697220726577617264732e31012d206065726160206d617920626520616e7920657261206265747765656e20605b63757272656e745f657261202d20686973746f72795f64657074683b2063757272656e745f6572615d602e005501546865206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e20416e79206163636f756e742063616e2063616c6c20746869732066756e6374696f6e2c206576656e206966746974206973206e6f74206f6e65206f6620746865207374616b6572732e0034232320436f6d706c6578697479b82d204174206d6f7374204f284d61784e6f6d696e61746f72526577617264656450657256616c696461746f72292e187265626f6e6404011476616c7565ec013042616c616e63654f663c543e00131cdc5265626f6e64206120706f7274696f6e206f6620746865207374617368207363686564756c656420746f20626520756e6c6f636b65642e00d4546865206469737061746368206f726967696e206d757374206265207369676e65642062792074686520636f6e74726f6c6c65722e0034232320436f6d706c6578697479d02d2054696d6520636f6d706c65786974793a204f284c292c207768657265204c20697320756e6c6f636b696e67206368756e6b73882d20426f756e64656420627920604d6178556e6c6f636b696e674368756e6b73602e28726561705f73746173680801147374617368000130543a3a4163636f756e7449640001486e756d5f736c617368696e675f7370616e7310010c7533320014305d0152656d6f766520616c6c2064617461207374727563747572657320636f6e6365726e696e672061207374616b65722f7374617368206f6e636520697420697320617420612073746174652077686572652069742063616e0501626520636f6e736964657265642060647573746020696e20746865207374616b696e672073797374656d2e2054686520726571756972656d656e7473206172653a000501312e207468652060746f74616c5f62616c616e636560206f66207468652073746173682069732062656c6f77206578697374656e7469616c206465706f7369742e1101322e206f722c2074686520606c65646765722e746f74616c60206f66207468652073746173682069732062656c6f77206578697374656e7469616c206465706f7369742e00550154686520666f726d65722063616e2068617070656e20696e206361736573206c696b65206120736c6173683b20746865206c6174746572207768656e20612066756c6c7920756e626f6e646564206163636f756e7409016973207374696c6c20726563656976696e67207374616b696e67207265776172647320696e206052657761726444657374696e6174696f6e3a3a5374616b6564602e00310149742063616e2062652063616c6c656420627920616e796f6e652c206173206c6f6e672061732060737461736860206d65657473207468652061626f766520726571756972656d656e74732e00dc526566756e647320746865207472616e73616374696f6e20666565732075706f6e207375636365737366756c20657865637574696f6e2e106b69636b04010c77686f5d0501645665633c4163636f756e7449644c6f6f6b75704f663c543e3e00152ce052656d6f76652074686520676976656e206e6f6d696e6174696f6e732066726f6d207468652063616c6c696e672076616c696461746f722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e004d012d206077686f603a2041206c697374206f66206e6f6d696e61746f72207374617368206163636f756e74732077686f20617265206e6f6d696e6174696e6720746869732076616c696461746f72207768696368c0202073686f756c64206e6f206c6f6e676572206265206e6f6d696e6174696e6720746869732076616c696461746f722e0055014e6f74653a204d616b696e6720746869732063616c6c206f6e6c79206d616b65732073656e736520696620796f7520666972737420736574207468652076616c696461746f7220707265666572656e63657320746f78626c6f636b20616e792066757274686572206e6f6d696e6174696f6e732e4c7365745f7374616b696e675f636f6e666967731801486d696e5f6e6f6d696e61746f725f626f6e6469050158436f6e6669674f703c42616c616e63654f663c543e3e0001486d696e5f76616c696461746f725f626f6e6469050158436f6e6669674f703c42616c616e63654f663c543e3e00014c6d61785f6e6f6d696e61746f725f636f756e746d050134436f6e6669674f703c7533323e00014c6d61785f76616c696461746f725f636f756e746d050134436f6e6669674f703c7533323e00013c6368696c6c5f7468726573686f6c6471050144436f6e6669674f703c50657263656e743e0001386d696e5f636f6d6d697373696f6e75050144436f6e6669674f703c50657262696c6c3e001644ac5570646174652074686520766172696f7573207374616b696e6720636f6e66696775726174696f6e73202e0025012a20606d696e5f6e6f6d696e61746f725f626f6e64603a20546865206d696e696d756d2061637469766520626f6e64206e656564656420746f2062652061206e6f6d696e61746f722e25012a20606d696e5f76616c696461746f725f626f6e64603a20546865206d696e696d756d2061637469766520626f6e64206e656564656420746f20626520612076616c696461746f722e55012a20606d61785f6e6f6d696e61746f725f636f756e74603a20546865206d6178206e756d626572206f662075736572732077686f2063616e2062652061206e6f6d696e61746f72206174206f6e63652e205768656e98202073657420746f20604e6f6e65602c206e6f206c696d697420697320656e666f726365642e55012a20606d61785f76616c696461746f725f636f756e74603a20546865206d6178206e756d626572206f662075736572732077686f2063616e20626520612076616c696461746f72206174206f6e63652e205768656e98202073657420746f20604e6f6e65602c206e6f206c696d697420697320656e666f726365642e59012a20606368696c6c5f7468726573686f6c64603a2054686520726174696f206f6620606d61785f6e6f6d696e61746f725f636f756e7460206f7220606d61785f76616c696461746f725f636f756e74602077686963681901202073686f756c642062652066696c6c656420696e206f7264657220666f722074686520606368696c6c5f6f7468657260207472616e73616374696f6e20746f20776f726b2e61012a20606d696e5f636f6d6d697373696f6e603a20546865206d696e696d756d20616d6f756e74206f6620636f6d6d697373696f6e207468617420656163682076616c696461746f7273206d757374206d61696e7461696e2e550120205468697320697320636865636b6564206f6e6c792075706f6e2063616c6c696e67206076616c6964617465602e204578697374696e672076616c696461746f727320617265206e6f742061666665637465642e00c452756e74696d654f726967696e206d75737420626520526f6f7420746f2063616c6c20746869732066756e6374696f6e2e0035014e4f54453a204578697374696e67206e6f6d696e61746f727320616e642076616c696461746f72732077696c6c206e6f742062652061666665637465642062792074686973207570646174652e1101746f206b69636b2070656f706c6520756e64657220746865206e6577206c696d6974732c20606368696c6c5f6f74686572602073686f756c642062652063616c6c65642e2c6368696c6c5f6f74686572040128636f6e74726f6c6c6572000130543a3a4163636f756e74496400176841014465636c61726520612060636f6e74726f6c6c65726020746f2073746f702070617274696369706174696e672061732065697468657220612076616c696461746f72206f72206e6f6d696e61746f722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e004101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2c206275742063616e2062652063616c6c656420627920616e796f6e652e0059014966207468652063616c6c6572206973207468652073616d652061732074686520636f6e74726f6c6c6572206265696e672074617267657465642c207468656e206e6f206675727468657220636865636b7320617265d8656e666f726365642c20616e6420746869732066756e6374696f6e2062656861766573206a757374206c696b6520606368696c6c602e005d014966207468652063616c6c657220697320646966666572656e74207468616e2074686520636f6e74726f6c6c6572206265696e672074617267657465642c2074686520666f6c6c6f77696e6720636f6e646974696f6e73306d757374206265206d65743a001d012a2060636f6e74726f6c6c657260206d7573742062656c6f6e6720746f2061206e6f6d696e61746f722077686f20686173206265636f6d65206e6f6e2d6465636f6461626c652c000c4f723a003d012a204120604368696c6c5468726573686f6c6460206d7573742062652073657420616e6420636865636b656420776869636820646566696e657320686f7720636c6f736520746f20746865206d6178550120206e6f6d696e61746f7273206f722076616c696461746f7273207765206d757374207265616368206265666f72652075736572732063616e207374617274206368696c6c696e67206f6e652d616e6f746865722e59012a204120604d61784e6f6d696e61746f72436f756e746020616e6420604d617856616c696461746f72436f756e7460206d75737420626520736574207768696368206973207573656420746f2064657465726d696e65902020686f7720636c6f73652077652061726520746f20746865207468726573686f6c642e5d012a204120604d696e4e6f6d696e61746f72426f6e646020616e6420604d696e56616c696461746f72426f6e6460206d7573742062652073657420616e6420636865636b65642c2077686963682064657465726d696e65735101202069662074686973206973206120706572736f6e20746861742073686f756c64206265206368696c6c6564206265636175736520746865792068617665206e6f74206d657420746865207468726573686f6c64402020626f6e642072657175697265642e005501546869732063616e2062652068656c7066756c20696620626f6e6420726571756972656d656e74732061726520757064617465642c20616e64207765206e65656420746f2072656d6f7665206f6c642075736572739877686f20646f206e6f74207361746973667920746865736520726571756972656d656e74732e68666f7263655f6170706c795f6d696e5f636f6d6d697373696f6e04013c76616c696461746f725f7374617368000130543a3a4163636f756e74496400180c4501466f72636520612076616c696461746f7220746f2068617665206174206c6561737420746865206d696e696d756d20636f6d6d697373696f6e2e20546869732077696c6c206e6f74206166666563742061610176616c696461746f722077686f20616c726561647920686173206120636f6d6d697373696f6e2067726561746572207468616e206f7220657175616c20746f20746865206d696e696d756d2e20416e79206163636f756e743863616e2063616c6c20746869732e487365745f6d696e5f636f6d6d697373696f6e04010c6e6577ac011c50657262696c6c00191025015365747320746865206d696e696d756d20616d6f756e74206f6620636f6d6d697373696f6e207468617420656163682076616c696461746f7273206d757374206d61696e7461696e2e005901546869732063616c6c20686173206c6f7765722070726976696c65676520726571756972656d656e7473207468616e20607365745f7374616b696e675f636f6e6669676020616e642063616e2062652063616c6c6564cc6279207468652060543a3a41646d696e4f726967696e602e20526f6f742063616e20616c776179732063616c6c20746869732e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e5905083870616c6c65745f7374616b696e674452657761726444657374696e6174696f6e04244163636f756e74496401000114185374616b656400000014537461736800010028436f6e74726f6c6c65720002001c4163636f756e7404000001244163636f756e744964000300104e6f6e65000400005d05000002000061050c3473705f61726974686d65746963287065725f7468696e67731c50657263656e740000040008010875380000650500000210006905103870616c6c65745f7374616b696e671870616c6c65741870616c6c657420436f6e6669674f700404540118010c104e6f6f700000000c5365740400180104540001001852656d6f7665000200006d05103870616c6c65745f7374616b696e671870616c6c65741870616c6c657420436f6e6669674f700404540110010c104e6f6f700000000c5365740400100104540001001852656d6f7665000200007105103870616c6c65745f7374616b696e671870616c6c65741870616c6c657420436f6e6669674f70040454016105010c104e6f6f700000000c536574040061050104540001001852656d6f7665000200007505103870616c6c65745f7374616b696e671870616c6c65741870616c6c657420436f6e6669674f7004045401ac010c104e6f6f700000000c5365740400ac0104540001001852656d6f76650002000079050c3870616c6c65745f73657373696f6e1870616c6c65741043616c6c040454000108207365745f6b6579730801106b6579737d05011c543a3a4b65797300011470726f6f6630011c5665633c75383e000024e453657473207468652073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c657220746f20606b657973602e1d01416c6c6f777320616e206163636f756e7420746f20736574206974732073657373696f6e206b6579207072696f7220746f206265636f6d696e6720612076616c696461746f722ec05468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e00d0546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265207369676e65642e0034232320436f6d706c657869747959012d20604f283129602e2041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f662060543a3a4b6579733a3a6b65795f69647328296020776869636820697320202066697865642e2870757267655f6b657973000130c852656d6f76657320616e792073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c65722e00c05468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e005501546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265205369676e656420616e6420746865206163636f756e74206d757374206265206569746865722062655d01636f6e7665727469626c6520746f20612076616c696461746f72204944207573696e672074686520636861696e2773207479706963616c2061646472657373696e672073797374656d20287468697320757375616c6c7951016d65616e73206265696e67206120636f6e74726f6c6c6572206163636f756e7429206f72206469726563746c7920636f6e7665727469626c6520696e746f20612076616c696461746f722049442028776869636894757375616c6c79206d65616e73206265696e672061207374617368206163636f756e74292e0034232320436f6d706c65786974793d012d20604f2831296020696e206e756d626572206f66206b65792074797065732e2041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f6698202060543a3a4b6579733a3a6b65795f6964732829602077686963682069732066697865642e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e7d0508586a6f7973747265616d5f6e6f64655f72756e74696d652c53657373696f6e4b657973000010011c6772616e647061cc01d03c4772616e647061206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c6963000110626162654d0401c43c42616265206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c6963000124696d5f6f6e6c696e65d801d43c496d4f6e6c696e65206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c696300014c617574686f726974795f646973636f76657279810501fc3c417574686f72697479446973636f76657279206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c6963000081050c5873705f617574686f726974795f646973636f766572790c617070185075626c696300000400dc013c737232353531393a3a5075626c6963000085050c3870616c6c65745f6772616e6470611870616c6c65741043616c6c04045400010c4c7265706f72745f65717569766f636174696f6e08014865717569766f636174696f6e5f70726f6f66890501bc426f783c45717569766f636174696f6e50726f6f663c543a3a486173682c20543a3a426c6f636b4e756d6265723e3e00013c6b65795f6f776e65725f70726f6f6655040140543a3a4b65794f776e657250726f6f6600001009015265706f727420766f7465722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667920746865f465717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66f8616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63654477696c6c206265207265706f727465642e707265706f72745f65717569766f636174696f6e5f756e7369676e656408014865717569766f636174696f6e5f70726f6f66890501bc426f783c45717569766f636174696f6e50726f6f663c543a3a486173682c20543a3a426c6f636b4e756d6265723e3e00013c6b65795f6f776e65725f70726f6f6655040140543a3a4b65794f776e657250726f6f6600012409015265706f727420766f7465722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667920746865f465717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66f8616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63654477696c6c206265207265706f727465642e000d01546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c791501626c6f636b20617574686f72732077696c6c2063616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c2061732073756368150169662074686520626c6f636b20617574686f7220697320646566696e65642069742077696c6c20626520646566696e6564206173207468652065717569766f636174696f6e247265706f727465722e306e6f74655f7374616c6c656408011464656c6179100138543a3a426c6f636b4e756d62657200016c626573745f66696e616c697a65645f626c6f636b5f6e756d626572100138543a3a426c6f636b4e756d6265720002303d014e6f74652074686174207468652063757272656e7420617574686f7269747920736574206f6620746865204752414e4450412066696e616c6974792067616467657420686173207374616c6c65642e006101546869732077696c6c2074726967676572206120666f7263656420617574686f7269747920736574206368616e67652061742074686520626567696e6e696e67206f6620746865206e6578742073657373696f6e2c20746f6101626520656e6163746564206064656c61796020626c6f636b7320616674657220746861742e20546865206064656c6179602073686f756c64206265206869676820656e6f75676820746f20736166656c7920617373756d654901746861742074686520626c6f636b207369676e616c6c696e672074686520666f72636564206368616e67652077696c6c206e6f742062652072652d6f7267656420652e672e203130303020626c6f636b732e5d0154686520626c6f636b2070726f64756374696f6e207261746520287768696368206d617920626520736c6f77656420646f776e2062656361757365206f662066696e616c697479206c616767696e67292073686f756c64510162652074616b656e20696e746f206163636f756e74207768656e2063686f6f73696e6720746865206064656c6179602e20546865204752414e44504120766f74657273206261736564206f6e20746865206e65775501617574686f726974792077696c6c20737461727420766f74696e67206f6e20746f70206f662060626573745f66696e616c697a65645f626c6f636b5f6e756d6265726020666f72206e65772066696e616c697a65644d01626c6f636b732e2060626573745f66696e616c697a65645f626c6f636b5f6e756d626572602073686f756c64206265207468652068696768657374206f6620746865206c61746573742066696e616c697a6564c4626c6f636b206f6620616c6c2076616c696461746f7273206f6620746865206e657720617574686f72697479207365742e00584f6e6c792063616c6c61626c6520627920726f6f742e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e8905084c73705f66696e616c6974795f6772616e6470614445717569766f636174696f6e50726f6f66080448012c044e0110000801187365745f6964280114536574496400013065717569766f636174696f6e8d05014845717569766f636174696f6e3c482c204e3e00008d05084c73705f66696e616c6974795f6772616e6470613045717569766f636174696f6e080448012c044e011001081c507265766f7465040091050139016772616e6470613a3a45717569766f636174696f6e3c417574686f7269747949642c206772616e6470613a3a507265766f74653c482c204e3e2c0a417574686f726974795369676e61747572653e00000024507265636f6d6d69740400a9050141016772616e6470613a3a45717569766f636174696f6e3c417574686f7269747949642c206772616e6470613a3a507265636f6d6d69743c482c204e3e2c0a417574686f726974795369676e61747572653e000100009105084066696e616c6974795f6772616e6470613045717569766f636174696f6e0c08496401cc0456019505045301990500100130726f756e645f6e756d62657228010c7536340001206964656e74697479cc010849640001146669727374a505011828562c2053290001187365636f6e64a505011828562c20532900009505084066696e616c6974795f6772616e6470611c507265766f7465080448012c044e01100008012c7461726765745f686173682c0104480001347461726765745f6e756d6265721001044e000099050c4c73705f66696e616c6974795f6772616e6470610c617070245369676e6174757265000004009d050148656432353531393a3a5369676e617475726500009d050c1c73705f636f72651c65643235353139245369676e617475726500000400a10501205b75383b2036345d0000a105000003400000000800a505000004089505990500a905084066696e616c6974795f6772616e6470613045717569766f636174696f6e0c08496401cc045601ad05045301990500100130726f756e645f6e756d62657228010c7536340001206964656e74697479cc010849640001146669727374b105011828562c2053290001187365636f6e64b105011828562c2053290000ad05084066696e616c6974795f6772616e64706124507265636f6d6d6974080448012c044e01100008012c7461726765745f686173682c0104480001347461726765745f6e756d6265721001044e0000b10500000408ad05990500b5050c4070616c6c65745f696d5f6f6e6c696e651870616c6c65741043616c6c04045400010424686561727462656174080124686561727462656174b90501644865617274626561743c543a3a426c6f636b4e756d6265723e0001247369676e6174757265cd0501bc3c543a3a417574686f7269747949642061732052756e74696d654170705075626c69633e3a3a5369676e617475726500001438232320436f6d706c65786974793a59012d20604f284b202b20452960207768657265204b206973206c656e677468206f6620604b6579736020286865617274626561742e76616c696461746f72735f6c656e2920616e642045206973206c656e677468206f66b02020606865617274626561742e6e6574776f726b5f73746174652e65787465726e616c5f61646472657373608820202d20604f284b29603a206465636f64696e67206f66206c656e67746820604b60ac20202d20604f284529603a206465636f64696e672f656e636f64696e67206f66206c656e67746820604560042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632eb905084070616c6c65745f696d5f6f6e6c696e6524486561727462656174042c426c6f636b4e756d626572011000140130626c6f636b5f6e756d62657210012c426c6f636b4e756d6265720001346e6574776f726b5f7374617465bd0501484f70617175654e6574776f726b537461746500013473657373696f6e5f696e64657810013053657373696f6e496e64657800013c617574686f726974795f696e64657810012441757468496e64657800013876616c696461746f72735f6c656e10010c7533320000bd050c1c73705f636f7265206f6666636861696e484f70617175654e6574776f726b5374617465000008011c706565725f6964c10501304f706171756550656572496400014865787465726e616c5f616464726573736573c50501505665633c4f70617175654d756c7469616464723e0000c105081c73705f636f7265304f70617175655065657249640000040030011c5665633c75383e0000c505000002c90500c9050c1c73705f636f7265206f6666636861696e3c4f70617175654d756c7469616464720000040030011c5665633c75383e0000cd05104070616c6c65745f696d5f6f6e6c696e651c737232353531392c6170705f73723235353139245369676e617475726500000400d1050148737232353531393a3a5369676e61747572650000d1050c1c73705f636f72651c73723235353139245369676e617475726500000400a10501205b75383b2036345d0000d5050c4070616c6c65745f626167735f6c6973741870616c6c65741043616c6c0804540004490001081472656261670401286469736c6f63617465640001504163636f756e7449644c6f6f6b75704f663c543e00002859014465636c617265207468617420736f6d6520606469736c6f636174656460206163636f756e74206861732c207468726f7567682072657761726473206f722070656e616c746965732c2073756666696369656e746c7951016368616e676564206974732073636f726520746861742069742073686f756c642070726f7065726c792066616c6c20696e746f206120646966666572656e7420626167207468616e206974732063757272656e74106f6e652e001d01416e796f6e652063616e2063616c6c20746869732066756e6374696f6e2061626f757420616e7920706f74656e7469616c6c79206469736c6f6361746564206163636f756e742e00490157696c6c20616c7761797320757064617465207468652073746f7265642073636f7265206f6620606469736c6f63617465646020746f2074686520636f72726563742073636f72652c206261736564206f6e406053636f726550726f7669646572602e00d4496620606469736c6f63617465646020646f6573206e6f74206578697374732c2069742072657475726e7320616e206572726f722e3c7075745f696e5f66726f6e745f6f6604011c6c6967687465720001504163636f756e7449644c6f6f6b75704f663c543e000120d04d6f7665207468652063616c6c65722773204964206469726563746c7920696e2066726f6e74206f6620606c696768746572602e005901546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642063616e206f6e6c792062652063616c6c656420627920746865204964206f66a0746865206163636f756e7420676f696e6720696e2066726f6e74206f6620606c696768746572602e00344f6e6c7920776f726b73206966942d20626f7468206e6f646573206172652077697468696e207468652073616d65206261672cd02d20616e6420606f726967696e602068617320612067726561746572206053636f726560207468616e20606c696768746572602e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ed9050c3870616c6c65745f76657374696e671870616c6c65741043616c6c0404540001141076657374000024b8556e6c6f636b20616e79207665737465642066756e6473206f66207468652073656e646572206163636f756e742e005d01546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652066756e6473207374696c6c646c6f636b656420756e64657220746869732070616c6c65742e00d0456d69747320656974686572206056657374696e67436f6d706c6574656460206f72206056657374696e6755706461746564602e0034232320436f6d706c6578697479242d20604f283129602e28766573745f6f746865720401187461726765740001504163636f756e7449644c6f6f6b75704f663c543e00012cb8556e6c6f636b20616e79207665737465642066756e6473206f662061206074617267657460206163636f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0051012d2060746172676574603a20546865206163636f756e742077686f7365207665737465642066756e64732073686f756c6420626520756e6c6f636b65642e204d75737420686176652066756e6473207374696c6c646c6f636b656420756e64657220746869732070616c6c65742e00d0456d69747320656974686572206056657374696e67436f6d706c6574656460206f72206056657374696e6755706461746564602e0034232320436f6d706c6578697479242d20604f283129602e3c7665737465645f7472616e736665720801187461726765740001504163636f756e7449644c6f6f6b75704f663c543e0001207363686564756c65dd0501a456657374696e67496e666f3c42616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e00023464437265617465206120766573746564207472616e736665722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00cc2d2060746172676574603a20546865206163636f756e7420726563656976696e6720746865207665737465642066756e64732ef02d20607363686564756c65603a205468652076657374696e67207363686564756c6520617474616368656420746f20746865207472616e736665722e005c456d697473206056657374696e6743726561746564602e00fc4e4f54453a20546869732077696c6c20756e6c6f636b20616c6c207363686564756c6573207468726f756768207468652063757272656e7420626c6f636b2e0034232320436f6d706c6578697479242d20604f283129602e54666f7263655f7665737465645f7472616e736665720c0118736f757263650001504163636f756e7449644c6f6f6b75704f663c543e0001187461726765740001504163636f756e7449644c6f6f6b75704f663c543e0001207363686564756c65dd0501a456657374696e67496e666f3c42616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e00033860466f726365206120766573746564207472616e736665722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e00e82d2060736f75726365603a20546865206163636f756e742077686f73652066756e64732073686f756c64206265207472616e736665727265642e11012d2060746172676574603a20546865206163636f756e7420746861742073686f756c64206265207472616e7366657272656420746865207665737465642066756e64732ef02d20607363686564756c65603a205468652076657374696e67207363686564756c6520617474616368656420746f20746865207472616e736665722e005c456d697473206056657374696e6743726561746564602e00fc4e4f54453a20546869732077696c6c20756e6c6f636b20616c6c207363686564756c6573207468726f756768207468652063757272656e7420626c6f636b2e0034232320436f6d706c6578697479242d20604f283129602e3c6d657267655f7363686564756c657308013c7363686564756c65315f696e64657810010c75333200013c7363686564756c65325f696e64657810010c7533320004545d014d657267652074776f2076657374696e67207363686564756c657320746f6765746865722c206372656174696e672061206e65772076657374696e67207363686564756c65207468617420756e6c6f636b73206f7665725501746865206869676865737420706f737369626c6520737461727420616e6420656e6420626c6f636b732e20496620626f7468207363686564756c6573206861766520616c7265616479207374617274656420746865590163757272656e7420626c6f636b2077696c6c206265207573656420617320746865207363686564756c652073746172743b207769746820746865206361766561742074686174206966206f6e65207363686564756c655d0169732066696e6973686564206279207468652063757272656e7420626c6f636b2c20746865206f746865722077696c6c206265207472656174656420617320746865206e6577206d6572676564207363686564756c652c2c756e6d6f6469666965642e00f84e4f54453a20496620607363686564756c65315f696e646578203d3d207363686564756c65325f696e6465786020746869732069732061206e6f2d6f702e41014e4f54453a20546869732077696c6c20756e6c6f636b20616c6c207363686564756c6573207468726f756768207468652063757272656e7420626c6f636b207072696f7220746f206d657267696e672e61014e4f54453a20496620626f7468207363686564756c6573206861766520656e646564206279207468652063757272656e7420626c6f636b2c206e6f206e6577207363686564756c652077696c6c206265206372656174656464616e6420626f74682077696c6c2062652072656d6f7665642e006c4d6572676564207363686564756c6520617474726962757465733a35012d20607374617274696e675f626c6f636b603a20604d4158287363686564756c65312e7374617274696e675f626c6f636b2c207363686564756c6564322e7374617274696e675f626c6f636b2c48202063757272656e745f626c6f636b29602e21012d2060656e64696e675f626c6f636b603a20604d4158287363686564756c65312e656e64696e675f626c6f636b2c207363686564756c65322e656e64696e675f626c6f636b29602e59012d20606c6f636b6564603a20607363686564756c65312e6c6f636b65645f61742863757272656e745f626c6f636b29202b207363686564756c65322e6c6f636b65645f61742863757272656e745f626c6f636b29602e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00e82d20607363686564756c65315f696e646578603a20696e646578206f6620746865206669727374207363686564756c6520746f206d657267652eec2d20607363686564756c65325f696e646578603a20696e646578206f6620746865207365636f6e64207363686564756c6520746f206d657267652e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632edd050c3870616c6c65745f76657374696e673076657374696e675f696e666f2c56657374696e67496e666f081c42616c616e636501182c426c6f636b4e756d6265720110000c01186c6f636b656418011c42616c616e63650001247065725f626c6f636b18011c42616c616e63650001387374617274696e675f626c6f636b10012c426c6f636b4e756d6265720000e1050c3c70616c6c65745f6d756c74697369671870616c6c65741043616c6c0404540001105061735f6d756c74695f7468726573686f6c645f310801446f746865725f7369676e61746f726965735d0501445665633c543a3a4163636f756e7449643e00011063616c6c3904017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0000305101496d6d6564696174656c792064697370617463682061206d756c74692d7369676e61747572652063616c6c207573696e6720612073696e676c6520617070726f76616c2066726f6d207468652063616c6c65722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003d012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f206172652070617274206f662074686501016d756c74692d7369676e61747572652c2062757420646f206e6f7420706172746963697061746520696e2074686520617070726f76616c2070726f636573732e882d206063616c6c603a205468652063616c6c20746f2062652065786563757465642e00b8526573756c74206973206571756976616c656e7420746f20746865206469737061746368656420726573756c742e0034232320436f6d706c657869747919014f285a202b204329207768657265205a20697320746865206c656e677468206f66207468652063616c6c20616e6420432069747320657865637574696f6e207765696768742e2061735f6d756c74691401247468726573686f6c642904010c7531360001446f746865725f7369676e61746f726965735d0501445665633c543a3a4163636f756e7449643e00013c6d617962655f74696d65706f696e74e50501844f7074696f6e3c54696d65706f696e743c543a3a426c6f636b4e756d6265723e3e00011063616c6c3904017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0001286d61785f77656967687420011857656967687400019c5501526567697374657220617070726f76616c20666f72206120646973706174636820746f206265206d6164652066726f6d20612064657465726d696e697374696320636f6d706f73697465206163636f756e74206966f8617070726f766564206279206120746f74616c206f6620607468726573686f6c64202d203160206f6620606f746865725f7369676e61746f72696573602e00b049662074686572652061726520656e6f7567682c207468656e206469737061746368207468652063616c6c2e002d015061796d656e743a20604465706f73697442617365602077696c6c20626520726573657276656420696620746869732069732074686520666972737420617070726f76616c2c20706c75733d01607468726573686f6c64602074696d657320604465706f736974466163746f72602e2049742069732072657475726e6564206f6e636520746869732064697370617463682068617070656e73206f723469732063616e63656c6c65642e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0055012d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e41012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f766520746869736c64697370617463682e204d6179206e6f7420626520656d7074792e59012d20606d617962655f74696d65706f696e74603a20496620746869732069732074686520666972737420617070726f76616c2c207468656e2074686973206d75737420626520604e6f6e65602e20496620697420697351016e6f742074686520666972737420617070726f76616c2c207468656e206974206d7573742062652060536f6d65602c2077697468207468652074696d65706f696e742028626c6f636b206e756d62657220616e64d47472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c207472616e73616374696f6e2e882d206063616c6c603a205468652063616c6c20746f2062652065786563757465642e001d014e4f54453a20556e6c6573732074686973206973207468652066696e616c20617070726f76616c2c20796f752077696c6c2067656e6572616c6c792077616e7420746f20757365190160617070726f76655f61735f6d756c74696020696e73746561642c2073696e6365206974206f6e6c7920726571756972657320612068617368206f66207468652063616c6c2e005901526573756c74206973206571756976616c656e7420746f20746865206469737061746368656420726573756c7420696620607468726573686f6c64602069732065786163746c79206031602e204f746865727769736555016f6e20737563636573732c20726573756c7420697320604f6b6020616e642074686520726573756c742066726f6d2074686520696e746572696f722063616c6c2c206966206974207761732065786563757465642cdc6d617920626520666f756e6420696e20746865206465706f736974656420604d756c7469736967457865637574656460206576656e742e0034232320436f6d706c6578697479502d20604f2853202b205a202b2043616c6c29602ecc2d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e3d012d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f66450120207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2e21012d204f6e652063616c6c20656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285a296020776865726520605a602069732074782d6c656e2ebc2d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602ed42d20557020746f206f6e652062696e6172792073656172636820616e6420696e736572742028604f286c6f6753202b20532960292ef82d20492f4f3a2031207265616420604f285329602c20757020746f2031206d757461746520604f285329602e20557020746f206f6e652072656d6f76652e302d204f6e65206576656e742e6c2d2054686520776569676874206f6620746865206063616c6c602e4d012d2053746f726167653a20696e7365727473206f6e65206974656d2c2076616c75652073697a6520626f756e64656420627920604d61785369676e61746f72696573602c20776974682061206465706f7369741901202074616b656e20666f7220697473206c69666574696d65206f6620604465706f73697442617365202b207468726573686f6c64202a204465706f736974466163746f72602e40617070726f76655f61735f6d756c74691401247468726573686f6c642904010c7531360001446f746865725f7369676e61746f726965735d0501445665633c543a3a4163636f756e7449643e00013c6d617962655f74696d65706f696e74e50501844f7074696f6e3c54696d65706f696e743c543a3a426c6f636b4e756d6265723e3e00012463616c6c5f686173680401205b75383b2033325d0001286d61785f7765696768742001185765696768740002785501526567697374657220617070726f76616c20666f72206120646973706174636820746f206265206d6164652066726f6d20612064657465726d696e697374696320636f6d706f73697465206163636f756e74206966f8617070726f766564206279206120746f74616c206f6620607468726573686f6c64202d203160206f6620606f746865725f7369676e61746f72696573602e002d015061796d656e743a20604465706f73697442617365602077696c6c20626520726573657276656420696620746869732069732074686520666972737420617070726f76616c2c20706c75733d01607468726573686f6c64602074696d657320604465706f736974466163746f72602e2049742069732072657475726e6564206f6e636520746869732064697370617463682068617070656e73206f723469732063616e63656c6c65642e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0055012d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e41012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f766520746869736c64697370617463682e204d6179206e6f7420626520656d7074792e59012d20606d617962655f74696d65706f696e74603a20496620746869732069732074686520666972737420617070726f76616c2c207468656e2074686973206d75737420626520604e6f6e65602e20496620697420697351016e6f742074686520666972737420617070726f76616c2c207468656e206974206d7573742062652060536f6d65602c2077697468207468652074696d65706f696e742028626c6f636b206e756d62657220616e64d47472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c207472616e73616374696f6e2ecc2d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f2062652065786563757465642e0035014e4f54453a2049662074686973206973207468652066696e616c20617070726f76616c2c20796f752077696c6c2077616e7420746f20757365206061735f6d756c74696020696e73746561642e0034232320436f6d706c6578697479242d20604f285329602ecc2d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e3d012d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f66450120207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2ebc2d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602ed42d20557020746f206f6e652062696e6172792073656172636820616e6420696e736572742028604f286c6f6753202b20532960292ef82d20492f4f3a2031207265616420604f285329602c20757020746f2031206d757461746520604f285329602e20557020746f206f6e652072656d6f76652e302d204f6e65206576656e742e4d012d2053746f726167653a20696e7365727473206f6e65206974656d2c2076616c75652073697a6520626f756e64656420627920604d61785369676e61746f72696573602c20776974682061206465706f7369741901202074616b656e20666f7220697473206c69666574696d65206f6620604465706f73697442617365202b207468726573686f6c64202a204465706f736974466163746f72602e3c63616e63656c5f61735f6d756c74691001247468726573686f6c642904010c7531360001446f746865725f7369676e61746f726965735d0501445665633c543a3a4163636f756e7449643e00012474696d65706f696e740d01016454696d65706f696e743c543a3a426c6f636b4e756d6265723e00012463616c6c5f686173680401205b75383b2033325d000354550143616e63656c2061207072652d6578697374696e672c206f6e2d676f696e67206d756c7469736967207472616e73616374696f6e2e20416e79206465706f7369742072657365727665642070726576696f75736c79c4666f722074686973206f7065726174696f6e2077696c6c20626520756e7265736572766564206f6e20737563636573732e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0055012d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e41012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f766520746869736c64697370617463682e204d6179206e6f7420626520656d7074792e5d012d206074696d65706f696e74603a205468652074696d65706f696e742028626c6f636b206e756d62657220616e64207472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c787472616e73616374696f6e20666f7220746869732064697370617463682ecc2d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f2062652065786563757465642e0034232320436f6d706c6578697479242d20604f285329602ecc2d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e3d012d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f66450120207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2ebc2d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602e302d204f6e65206576656e742e842d20492f4f3a2031207265616420604f285329602c206f6e652072656d6f76652e702d2053746f726167653a2072656d6f766573206f6e65206974656d2e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ee50504184f7074696f6e040454010d010108104e6f6e6500000010536f6d6504000d010000010000e905083870616c6c65745f636f756e63696c1043616c6c04045400013048616e6e6f756e63655f63616e6469646163791001346d656d626572736869705f696428012c543a3a4d656d62657249640001487374616b696e675f6163636f756e745f6964000130543a3a4163636f756e7449640001447265776172645f6163636f756e745f6964000130543a3a4163636f756e7449640001147374616b6518012842616c616e63653c543e0000244c5375627363726962652063616e646964617465002823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5c72656c656173655f63616e6469646163795f7374616b650401346d656d626572736869705f696428012c543a3a4d656d6265724964000124c452656c656173652063616e646964616379207374616b652074686174206973206e6f206c6f6e676572206e65656465642e002823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e4877697468647261775f63616e6469646163790401346d656d626572736869705f696428012c543a3a4d656d6265724964000224bc57697468647261772063616e64696461637920616e642072656c656173652063616e646964616379207374616b652e002823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e487365745f63616e6469646163795f6e6f74650801346d656d626572736869705f696428012c543a3a4d656d62657249640001106e6f746530011c5665633c75383e00032879015365742073686f7274206465736372697074696f6e20666f7220746865207573657227732063616e6469646163792e2043616e2062652063616c6c656420616e7974696d6520647572696e67207573657227732063616e6469646163792e002823203c7765696768743e002423232077656967687438604f20284e29602077686572653a98604e60206973207468652073697a65206f6620606e6f74656020696e206b696c6f6279746573142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e287365745f62756467657404011c62616c616e636518012842616c616e63653c543e000424605365747320746865206275646765742062616c616e63652e002823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e48706c616e5f6275646765745f726566696c6c04012c6e6578745f726566696c6c100138543a3a426c6f636b4e756d62657200052470506c616e20746865206e6578742062756467657420726566696c6c2e002823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e507365745f6275646765745f696e6372656d656e740401406275646765745f696e6372656d656e7418012842616c616e63653c543e0006247453657473207468652062756467657420726566696c6c20616d6f756e74002823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e507365745f636f756e63696c6f725f726577617264040140636f756e63696c6f725f72657761726418012842616c616e63653c543e0007248c536574732074686520636f756e63696c6f72207265776172642070657220626c6f636b002823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3c66756e64696e675f7265717565737404014066756e64696e675f7265717565737473550301dc5665633c46756e64696e6752657175657374506172616d65746572733c42616c616e63653c543e2c20543a3a4163636f756e7449643e3e000828b85472616e73666572732066756e64732066726f6d20636f756e63696c2062756467657420746f206163636f756e74002823203c7765696768743e002423232077656967687438604f20284629602077686572653a9c60466020697320746865206c656e677468206f66206066756e64696e675f726571756573747360142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e4c66756e645f636f756e63696c5f6275646765740c01246d656d6265725f696428012c4d656d62657249643c543e000118616d6f756e7418012842616c616e63653c543e000124726174696f6e616c6530011c5665633c75383e0009209046756e642074686520636f756e63696c206275646765742062792061206d656d6265722e203c7765696768743e0024232320576569676874c4604f202831296020446f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e40636f756e63696c6f725f72656d61726b080130636f756e63696c6f725f696428012c543a3a4d656d626572496400010c6d736730011c5665633c75383e000a2480436f756e63696c6f72206d616b657320612072656d61726b206d657373616765002823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e4063616e6469646174655f72656d61726b08013063616e6469646174655f696428012c543a3a4d656d626572496400010c6d736730011c5665633c75383e000b248043616e646964617465206d616b657320612072656d61726b206d657373616765002823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652eed05084470616c6c65745f7265666572656e64756d1043616c6c08045400044900011010766f7465080128636f6d6d69746d656e742c011c543a3a486173680001147374616b6518013042616c616e63654f663c543e00002494436173742061207365616c656420766f746520696e20746865207265666572656e64756d2e002823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c72657665616c5f766f746508011073616c7430011c5665633c75383e000138766f74655f6f7074696f6e5f69642801d03c5420617320636f6d6d6f6e3a3a6d656d626572736869703a3a4d656d6265727368697054797065733e3a3a4d656d626572496400012c9c52657665616c2061207365616c656420766f746520696e20746865207265666572656e64756d2e002823203c7765696768743e002423232057656967687438604f20285729602077686572653a0d012d2060576020697320746865206e756d626572206f662060696e7465726d6564696174655f77696e6e657273602073746f72656420696e207468652063757272656e7468202020206053746167653a3a3c542c20493e3a3a676574282960142d2044423ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e4872656c656173655f766f74655f7374616b650002205c52656c656173652061206c6f636b6564207374616b652e2823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e446f70745f6f75745f6f665f766f74696e67000324cc5065726d616e656e746c79206f7074206f7574206f6620766f74696e672066726f6d206120676976656e206163636f756e742e002823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652ef105084470616c6c65745f6d656d626572736869701043616c6c040454000144386275795f6d656d62657273686970040118706172616d732d0101c84275794d656d62657273686970506172616d65746572733c543a3a4163636f756e7449642c20543a3a4d656d62657249643e00002c7c4e6f6e2d6d656d626572732063616e20627579206d656d626572736869702e00203c7765696768743e002423232057656967687448604f202857202b204d29602077686572653a942d20605760206973207468652068616e646c652073697a6520696e206b696c6f62797465739c2d20604d6020697320746865206d657461646174612073697a6520696e206b696c6f6279746573142d2044423a242020202d204f2831292c23203c2f7765696768743e387570646174655f70726f66696c650c01246d656d6265725f696428012c543a3a4d656d626572496400011868616e646c653101013c4f7074696f6e3c5665633c75383e3e0001206d657461646174613101013c4f7074696f6e3c5665633c75383e3e0001300d01557064617465206d656d626572277320616c6c206f7220736f6d65206f66206e616d652c2068616e646c652c2061766174617220616e642061626f757420746578742e7c4e6f20656666656374206966206e6f206368616e676564206669656c64732e00203c7765696768743e002423232057656967687448604f202857202b204d29602077686572653a942d20605760206973207468652068616e646c652073697a6520696e206b696c6f62797465739c2d20604d6020697320746865206d657461646174612073697a6520696e206b696c6f6279746573142d2044423a242020202d204f2831292c23203c2f7765696768743e3c7570646174655f6163636f756e74730c01246d656d6265725f696428012c543a3a4d656d62657249640001406e65775f726f6f745f6163636f756e749401504f7074696f6e3c543a3a4163636f756e7449643e0001586e65775f636f6e74726f6c6c65725f6163636f756e749401504f7074696f6e3c543a3a4163636f756e7449643e00022c550155706461746573206d656d62657220726f6f74206f7220636f6e74726f6c6c6572206163636f756e74732e204e6f2065666665637420696620626f7468206e6577206163636f756e74732061726520656d7074792e00203c7765696768743e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6c7570646174655f70726f66696c655f766572696669636174696f6e0c0124776f726b65725f6964280128543a3a4163746f7249640001407461726765745f6d656d6265725f696428012c543a3a4d656d626572496400012c69735f7665726966696564980110626f6f6c000324450155706461746573206d656d6265722070726f66696c6520766572696669636174696f6e207374617475732e20526571756972657320776f726b696e672067726f7570206d656d626572206f726967696e2e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e407365745f726566657272616c5f63757404013470657263656e745f76616c75650801087538000424110155706461746573206d656d6265727368697020726566657272616c206375742070657263656e742076616c75652e20526571756972657320726f6f74206f726967696e2e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e407472616e736665725f696e76697465730c0140736f757263655f6d656d6265725f696428012c543a3a4d656d62657249640001407461726765745f6d656d6265725f696428012c543a3a4d656d62657249640001446e756d6265725f6f665f696e766974657310010c753332000524b45472616e736665727320696e76697465732066726f6d206f6e65206d656d62657220746f20616e6f746865722e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e34696e766974655f6d656d626572040118706172616d73390101d4496e766974654d656d62657273686970506172616d65746572733c543a3a4163636f756e7449642c20543a3a4d656d62657249643e00062c50496e766974652061206e6577206d656d6265722e00203c7765696768743e002423232057656967687448604f202857202b204d29602077686572653a942d20605760206973207468652068616e646c652073697a6520696e206b696c6f62797465739c2d20604d6020697320746865206d657461646174612073697a6520696e206b696c6f6279746573142d2044423a242020202d204f2831292c23203c2f7765696768743e3c676966745f6d656d62657273686970040118706172616d73410101d0476966744d656d62657273686970506172616d65746572733c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e00070c1d01476966742061206d656d62657273686970207573696e67206f776e2066756e64732e2047696674657220646f6573206e6f74206e65656420746f2062652061206d656d6265722e5d0143616e206f7074696e616c6c79206170706c792061206c6f636b206f6e206120706f7274696f6e206f66207468652066756e6473207472616e7366657272656420746f20726f6f7420616e6420636f6e74726f6c6c6572b86163636f756e74732e2047696674657220616c736f207061797320746865206d656d62657273686970206665652e507365745f6d656d626572736869705f70726963650401246e65775f707269636518013042616c616e63654f663c543e000824bc55706461746573206d656d626572736869702070726963652e20526571756972657320726f6f74206f726967696e2e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6c7365745f6c65616465725f696e7669746174696f6e5f71756f7461040140696e7669746174696f6e5f71756f746110010c753332000924d855706461746573206c656164657220696e7669746174696f6e2071756f74612e20526571756972657320726f6f74206f726967696e2e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e787365745f696e697469616c5f696e7669746174696f6e5f62616c616e636504014c6e65775f696e697469616c5f62616c616e636518013042616c616e63654f663c543e000a2439015570646174657320696e697469616c20696e7669746174696f6e2062616c616e636520666f72206120696e7669746564206d656d6265722e20526571756972657320726f6f74206f726967696e2e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e707365745f696e697469616c5f696e7669746174696f6e5f636f756e740401506e65775f696e7669746174696f6e5f636f756e7410010c753332000b2411015570646174657320696e697469616c20696e7669746174696f6e20636f756e7420666f722061206d656d6265722e20526571756972657320726f6f74206f726967696e2e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e746164645f7374616b696e675f6163636f756e745f63616e6469646174650401246d656d6265725f696428012c543a3a4d656d6265724964000c28ac416464207374616b696e67206163636f756e742063616e64696461746520666f722061206d656d6265722eb8546865206d656d62657273686970206d75737420626520636f6e6669726d6564206265666f72652075736167652e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5872656d6f76655f7374616b696e675f6163636f756e740401246d656d6265725f696428012c543a3a4d656d6265724964000d249052656d6f7665207374616b696e67206163636f756e7420666f722061206d656d6265722e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5c636f6e6669726d5f7374616b696e675f6163636f756e740801246d656d6265725f696428012c543a3a4d656d62657249640001487374616b696e675f6163636f756e745f6964000130543a3a4163636f756e744964000e24bc436f6e6669726d207374616b696e67206163636f756e742063616e64696461746520666f722061206d656d6265722e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e346d656d6265725f72656d61726b0c01246d656d6265725f696428012c543a3a4d656d626572496400010c6d736730011c5665633c75383e00011c7061796d656e74490101884f7074696f6e3c28543a3a4163636f756e7449642c20543a3a42616c616e6365293e000f24544d656d626572206d616b657320612072656d61726b00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e346372656174655f6d656d626572040118706172616d733d0101904372656174654d656d626572506172616d65746572733c543a3a4163636f756e7449643e00102c804372656174652061206d656d6265722070726f66696c6520617320726f6f742e00203c7765696768743e002423232057656967687448604f202849202b204a29602077686572653a942d20604960206973207468652068616e646c652073697a6520696e206b696c6f62797465739c2d20604a6020697320746865206d657461646174612073697a6520696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652ef505083070616c6c65745f666f72756d1043616c6c0404540001409c7570646174655f63617465676f72795f6d656d626572736869705f6f665f6d6f64657261746f720c01306d6f64657261746f725f69642801384d6f64657261746f7249643c543e00012c63617465676f72795f6964280134543a3a43617465676f727949640001246e65775f76616c7565980110626f6f6c0000240901456e61626c652061206d6f64657261746f722063616e206d6f64657261746520612063617465676f727920616e6420697473207375622063617465676f726965732e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3c6372656174655f63617465676f72790c0148706172656e745f63617465676f72795f6964350101544f7074696f6e3c543a3a43617465676f727949643e0001147469746c6530011c5665633c75383e00012c6465736372697074696f6e30011c5665633c75383e0001304c4164642061206e65772063617465676f72792e00203c7765696768743e002423232057656967687458604f202857202b2056202b205829602077686572653a6c2d20605760206973207468652063617465676f7279206465707468d42d20605660206973207468652073697a65206f66207468652063617465676f7279207469746c6520696e206b696c6f62797465732eec2d20605860206973207468652073697a65206f66207468652063617465676f7279206465736372697074696f6e20696e206b696c6f62797465732e142d2044423a242020202d204f2857292c23203c2f7765696768743e7c7570646174655f63617465676f72795f617263686976616c5f7374617475730c01146163746f725501014850726976696c656765644163746f723c543e00012c63617465676f72795f6964280134543a3a43617465676f7279496400014c6e65775f617263686976616c5f737461747573980110626f6f6c0002285855706461746520617263686976616c2073746174757300203c7765696768743e002423232057656967687438604f20285729602077686572653a6c2d20605760206973207468652063617465676f7279206465707468142d2044423a242020202d204f2857292c23203c2f7765696768743e547570646174655f63617465676f72795f7469746c650c01146163746f725501014850726976696c656765644163746f723c543e00012c63617465676f72795f6964280134543a3a43617465676f727949640001147469746c6530011c5665633c75383e00032c545570646174652063617465676f7279207469746c6500203c7765696768743e002423232057656967687448604f202857202b205629602077686572653a6c2d20605760206973207468652063617465676f7279206465707468d42d20605660206973207468652073697a65206f66207468652063617465676f7279207469746c6520696e206b696c6f62797465732e142d2044423a242020202d204f2857292c23203c2f7765696768743e6c7570646174655f63617465676f72795f6465736372697074696f6e0c01146163746f725501014850726976696c656765644163746f723c543e00012c63617465676f72795f6964280134543a3a43617465676f7279496400012c6465736372697074696f6e30011c5665633c75383e00042c6c5570646174652063617465676f7279206465736372697074696f6e00203c7765696768743e002423232057656967687438604f20285729602077686572653a6c2d20605760206973207468652063617465676f7279206465707468ec2d20605660206973207468652073697a65206f66207468652063617465676f7279206465736372697074696f6e20696e206b696c6f62797465732e142d2044423a242020202d204f2857292c23203c2f7765696768743e3c64656c6574655f63617465676f72790801146163746f725501014850726976696c656765644163746f723c543e00012c63617465676f72795f6964280134543a3a43617465676f727949640005283c44656c6574652063617465676f727900203c7765696768743e002423232057656967687438604f20285729602077686572653a6c2d20605760206973207468652063617465676f7279206465707468142d2044423a242020202d204f2857292c23203c2f7765696768743e346372656174655f746872656164100134666f72756d5f757365725f6964280138466f72756d5573657249643c543e00012c63617465676f72795f6964280134543a3a43617465676f727949640001206d6574616461746130011c5665633c75383e0001107465787430011c5665633c75383e00063074437265617465206e65772074687265616420696e2063617465676f727900203c7765696768743e002423232057656967687458604f202857202b2056202b205829602077686572653a6c2d20605760206973207468652063617465676f7279206465707468cc2d20605660206973207468652073697a65206f662074686520746872656164207469746c6520696e206b696c6f62797465732ec82d20605860206973207468652073697a65206f662074686520746872656164207465787420696e206b696c6f62797465732e142d2044423a242020202d204f2857292c23203c2f7765696768743e50656469745f7468726561645f6d65746164617461100134666f72756d5f757365725f6964280138466f72756d5573657249643c543e00012c63617465676f72795f6964280134543a3a43617465676f727949640001247468726561645f696428012c543a3a54687265616449640001306e65775f6d6574616461746130011c5665633c75383e00072c504564697420746872656164206d6574616461746100203c7765696768743e002423232057656967687448604f202857202b205629602077686572653a6c2d20605760206973207468652063617465676f7279206465707468d82d20605660206973207468652073697a65206f662074686520746872656164206d6574616461746120696e206b696c6f62797465732e142d2044423a242020202d204f2857292c23203c2f7765696768743e3464656c6574655f746872656164100134666f72756d5f757365725f6964280138466f72756d5573657249643c543e00012c63617465676f72795f6964280134543a3a43617465676f727949640001247468726561645f696428012c543a3a546872656164496400011068696465980110626f6f6c0008283444656c6574652074687265616400203c7765696768743e002423232057656967687438604f20285729602077686572653a6c2d20605760206973207468652063617465676f7279206465707468142d2044423a242020202d204f2857292c23203c2f7765696768743e5c6d6f76655f7468726561645f746f5f63617465676f72791001146163746f725501014850726976696c656765644163746f723c543e00012c63617465676f72795f6964280134543a3a43617465676f727949640001247468726561645f696428012c543a3a546872656164496400013c6e65775f63617465676f72795f6964280134543a3a43617465676f727949640009287c4d6f76652074687265616420746f20616e6f746865722063617465676f727900203c7765696768743e002423232057656967687438604f20285729602077686572653a6c2d20605760206973207468652063617465676f7279206465707468142d2044423a242020202d204f2857292c23203c2f7765696768743e3c6d6f6465726174655f7468726561641001146163746f725501014850726976696c656765644163746f723c543e00012c63617465676f72795f6964280134543a3a43617465676f727949640001247468726561645f696428012c543a3a5468726561644964000124726174696f6e616c6530011c5665633c75383e000a303c4d6f6465726174652074687265616400203c7765696768743e002423232057656967687458604f202857202b2056202b205829602077686572653a702d20605760206973207468652063617465676f72792064657074682c902d2060566020697320746865206e756d626572206f662074687265616420706f7374732cbc2d20605860206973207468652073697a65206f662074686520726174696f6e616c6520696e206b696c6f6279746573142d2044423a342020202d204f2857202b2056292c23203c2f7765696768743e206164645f706f7374140134666f72756d5f757365725f6964280138466f72756d5573657249643c543e00012c63617465676f72795f6964280134543a3a43617465676f727949640001247468726561645f696428012c543a3a54687265616449640001107465787430011c5665633c75383e0001206564697461626c65980110626f6f6c000b2c2041646420706f737400203c7765696768743e002423232057656967687448604f202857202b205629602077686572653a702d20605760206973207468652063617465676f72792064657074682ca82d20605660206973207468652073697a65206f6620746865207465787420696e206b696c6f6279746573142d2044423a242020202d204f2857292c23203c2f7765696768743e38656469745f706f73745f74657874140134666f72756d5f757365725f6964280138466f72756d5573657249643c543e00012c63617465676f72795f6964280134543a3a43617465676f727949640001247468726561645f696428012c543a3a546872656164496400011c706f73745f6964280124543a3a506f737449640001206e65775f7465787430011c5665633c75383e000c2c384564697420706f7374207465787400203c7765696768743e002423232057656967687448604f202857202b205629602077686572653a702d20605760206973207468652063617465676f72792064657074682cb82d20605660206973207468652073697a65206f6620746865206e6577207465787420696e206b696c6f6279746573142d2044423a242020202d204f2857292c23203c2f7765696768743e346d6f6465726174655f706f73741401146163746f725501014850726976696c656765644163746f723c543e00012c63617465676f72795f6964280134543a3a43617465676f727949640001247468726561645f696428012c543a3a546872656164496400011c706f73745f6964280124543a3a506f73744964000124726174696f6e616c6530011c5665633c75383e000d2c344d6f64657261746520706f737400203c7765696768743e002423232057656967687448604f202857202b205629602077686572653a702d20605760206973207468652063617465676f72792064657074682cbc2d20605660206973207468652073697a65206f662074686520726174696f6e616c6520696e206b696c6f6279746573142d2044423a242020202d204f2857292c23203c2f7765696768743e3064656c6574655f706f7374730c0134666f72756d5f757365725f6964280138466f72756d5573657249643c543e000114706f7374735d01018442547265654d61703c457874656e646564506f737449643c543e2c20626f6f6c3e000124726174696f6e616c6530011c5665633c75383e000e346444656c65746520706f73742066726f6d2073746f726167652eec596f75206e65656420746f2070726f76696465206120766563746f72206f6620706f73747320746f2064656c65746520696e2074686520666f726db428543a3a43617465676f727949642c20543a3a54687265616449642c20543a3a506f737449642c20626f6f6c292501776865726520746865206c61737420626f6f6c206973207768657468657220796f752077616e7420746f20686964652069742061706172742066726f6d2064656c6574696e67206974002423232057656967687458604f202857202b2056202b205029602077686572653a702d20605760206973207468652063617465676f72792064657074682cbc2d20605660206973207468652073697a65206f662074686520726174696f6e616c6520696e206b696c6f6279746573982d2060506020697320746865206e756d626572206f6620706f73747320746f2064656c657465142d2044423a342020202d204f2857202b2050292c23203c2f7765696768743e507365745f737469636b6965645f746872656164730c01146163746f725501014850726976696c656765644163746f723c543e00012c63617465676f72795f6964280134543a3a43617465676f72794964000130737469636b6965645f6964736901015442547265655365743c543a3a54687265616449643e000f2c8453657420737469636b696564207468726561647320666f722063617465676f727900203c7765696768743e002423232057656967687448604f202857202b205629602077686572653a702d20605760206973207468652063617465676f72792064657074682c9c2d2060566020697320746865206c656e677468206f662074686520737469636b6965645f696473142d2044423a342020202d204f2857202b2056292c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652ef905084c70616c6c65745f636f6e737469747574696f6e1043616c6c04045400010448616d656e645f636f6e737469747574696f6e040144636f6e737469747574696f6e5f7465787430011c5665633c75383e000018e453657473207468652063757272656e7420636f6e737469747574696f6e20686173682e20526571756972657320726f6f74206f726967696e2e2823203c7765696768743e11012d20436f6d706c65786974793a20604f28432960207768657265204320697320746865206c656e677468206f662074686520636f6e737469747574696f6e20746578742e342d2044622072656164733a20307c2d204462207772697465733a20312028636f6e7374616e742076616c7565292c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652efd05083470616c6c65745f626f756e74791043616c6c04045400013c346372656174655f626f756e7479080118706172616d737501016c426f756e74794372656174696f6e506172616d65746572733c543e0001206d6574616461746130011c5665633c75383e000028490143726561746573206120626f756e74792e204d657461646174612073746f72656420696e20746865207472616e73616374696f6e206c6f67206275742064697363617264656420616674657220746861742e203c7765696768743e002423232057656967687438604f20285729602077686572653aa42d2060576020697320746865205f6d657461646174612073697a6520696e206b696c6f62797465732eb02d20604d6020697320636c6f73656420636f6e7472616374206d656d626572206c697374206c656e6774682e142d2044423a842020202d204f284d2920284f283129206f6e206f70656e20636f6e7472616374292c23203c2f7765696768743e2c66756e645f626f756e74790c011866756e64657279010160426f756e74794163746f723c4d656d62657249643c543e3e000124626f756e74795f696428012c543a3a426f756e74794964000118616d6f756e7418013042616c616e63654f663c543e0001206050726f766964657320626f756e74792066756e64696e672e2823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e407465726d696e6174655f626f756e7479040124626f756e74795f696428012c543a3a426f756e74794964000224c05465726d696e61746573206120626f756e747920696e2066756e64696e672c2066756e64696e6720657870697265642c7c776f726b7375626d697373696f6e2c206a756467696e6720706572696f642e2823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e347377697463685f6f7261636c650801286e65775f6f7261636c6579010160426f756e74794163746f723c4d656d62657249643c543e3e000124626f756e74795f696428012c543a3a426f756e74794964000324904f7261636c652073776974636865732068696d73656c6620746f2061206e6577206f6e652823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e004077697468647261775f66756e64696e6708011866756e64657279010160426f756e74794163746f723c4d656d62657249643c543e3e000124626f756e74795f696428012c543a3a426f756e74794964000420c4576974686472617720626f756e74792066756e64696e672062792061206d656d626572206f72206120636f756e63696c2e2823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e4c616e6e6f756e63655f776f726b5f656e7472791001246d656d6265725f696428012c4d656d62657249643c543e000124626f756e74795f696428012c543a3a426f756e747949640001487374616b696e675f6163636f756e745f6964000130543a3a4163636f756e744964000140776f726b5f6465736372697074696f6e30011c5665633c75383e000528b0416e6e6f756e636520776f726b20656e74727920666f722061207375636365737366756c20626f756e74792e2823203c7765696768743e002423232077656967687448604f202857202b204d29602077686572653ac02d206057602069732074686520776f726b5f6465736372697074696f6e2073697a6520696e206b696c6f62797465732eb02d20604d6020697320636c6f73656420636f6e7472616374206d656d626572206c697374206c656e6774682e142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c7375626d69745f776f726b1001246d656d6265725f696428012c4d656d62657249643c543e000124626f756e74795f696428012c543a3a426f756e74794964000120656e7472795f6964280128543a3a456e7472794964000124776f726b5f6461746130011c5665633c75383e000624645375626d697420776f726b20666f72206120626f756e74792e2823203c7765696768743e00242323207765696768741c604f20284e2960a42d20604e602069732074686520776f726b5f646174612073697a6520696e206b696c6f62797465732c142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e48656e645f776f726b696e675f706572696f64040124626f756e74795f696428012c543a3a426f756e7479496400072068656e6420626f756e747920776f726b696e6720706572696f642e2823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e587375626d69745f6f7261636c655f6a7564676d656e740c0124626f756e74795f696428012c543a3a426f756e747949640001206a7564676d656e74850101a04f7261636c654a7564676d656e743c543a3a456e74727949642c2042616c616e63654f663c543e3e000124726174696f6e616c6530011c5665633c75383e00083819015375626d69747320616e206f7261636c65206a7564676d656e7420666f72206120626f756e74792c20736c617368696e672074686520656e74726965732072656a65637465642d01627920616e206172626974726172792070657263656e7461676520616e6420726577617264696e67207468652077696e6e65727320627920616e2061726269747261727920616d6f756e7498286e6f742073757270617373696e672074686520746f74616c2066756e6420616d6f756e74292823203c7765696768743e00242323207765696768744c604f20284a202b204b202b2057202b20522960942d20604a6020697320726174696f6e616c652073697a6520696e206b696c6f62797465732c61012d20604b60206973207468652073756d206f6620616c6c20616374696f6e5f6a757374696669636174696f6e2073697a65732028696e206b696c6f62797465732920696e73696465204f7261636c654a7564676d656e742cac2d20605760206973206e756d626572206f662077696e6e6572206a7564676d656e7420656e74726965732cb42d20605260206973206e756d626572206f662072656a6563746564206a7564676d656e7420656e74726965732c142d2064623a3c2020202d20604f2857202b205229602c23203c2f7765696768743e5877697468647261775f656e7472616e745f7374616b650c01246d656d6265725f696428012c4d656d62657249643c543e000124626f756e74795f696428012c543a3a426f756e74794964000120656e7472795f6964280128543a3a456e7472794964000928a4556e6c6f636b7320746865207374616b652072656c6174656420746f206120776f726b20656e747279a901416674657220746865206f7261636c65206d616b657320746865206a7564676d656e74206f722074686520636f756e63696c207465726d696e617465732074686520626f756e74792062792063616c6c696e67207465726d696e6174655f626f756e7479282e2e2e292c51016561636820776f726b65722077686f736520656e74727920686173206e6f74206265656e206a75646765642c2063616e20756e6c6f636b2074686520746f74616c697479206f66207468656972207374616b652e2823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5877697468647261775f6f7261636c655f726577617264040124626f756e74795f696428012c543a3a426f756e74794964000a2890576974687261777320746865206f7261636c652072657761726420746f206f7261636c651101496620626f756e7479206973207375636365737366756c6c792c204661696c6564206f722043616e63656c6c6564206f7261636c65206d7573742063616c6c2074686973a065787472696e73696320746f20776974686472617720746865206f7261636c65207265776172642c2823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e48636f6e7472696275746f725f72656d61726b0c012c636f6e7472696275746f7279010160426f756e74794163746f723c4d656d62657249643c543e3e000124626f756e74795f696428012c543a3a426f756e7479496400010c6d736730011c5665633c75383e000b2880426f756e747920436f6e7472696275746f72206d61646520612072656d61726b002823203c7765696768743e00242323207765696768741c604f20284e2960782d20604e60206973206d73672073697a6520696e206b696c6f6279746573142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e346f7261636c655f72656d61726b0c01186f7261636c6579010160426f756e74794163746f723c4d656d62657249643c543e3e000124626f756e74795f696428012c543a3a426f756e7479496400010c6d736730011c5665633c75383e000c286c426f756e7479204f7261636c65206d61646520612072656d61726b002823203c7765696768743e00242323207765696768741c604f20284e2960782d20604e60206973206d73672073697a6520696e206b696c6f6279746573142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e38656e7472616e745f72656d61726b100128656e7472616e745f696428012c4d656d62657249643c543e000124626f756e74795f696428012c543a3a426f756e74794964000120656e7472795f6964280128543a3a456e747279496400010c6d736730011c5665633c75383e000d288c426f756e747920456e7472616e7420576f726b6572206d61646520612072656d61726b002823203c7765696768743e00242323207765696768741c604f20284e2960782d20604e60206973206d73672073697a6520696e206b696c6f6279746573142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3863726561746f725f72656d61726b0c011c63726561746f7279010160426f756e74794163746f723c4d656d62657249643c543e3e000124626f756e74795f696428012c543a3a426f756e7479496400010c6d736730011c5665633c75383e000e286c426f756e7479204f7261636c65206d61646520612072656d61726b002823203c7765696768743e00242323207765696768741c604f20284e2960782d20604e60206973206d73672073697a6520696e206b696c6f6279746573142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e0106083870616c6c65745f7574696c6974791043616c6c0404540001105c657865637574655f7369676e616c5f70726f706f73616c0401187369676e616c30011c5665633c75383e00002871015369676e616c2070726f706f73616c2065787472696e7369632e2053686f756c6420626520757365642061732063616c6c61626c65206f626a65637420746f207061737320746f207468652060656e67696e6560206d6f64756c652e00203c7765696768743e002423232057656967687438604f20285329602077686572653ab02d20605360206973207468652073697a65206f6620746865207369676e616c20696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e80657865637574655f72756e74696d655f757067726164655f70726f706f73616c0401107761736d30011c5665633c75383e0001288c52756e74696d6520757067726164652070726f706f73616c2065787472696e7369632e050153686f756c6420626520757365642061732063616c6c61626c65206f626a65637420746f207061737320746f207468652060656e67696e6560206d6f64756c652e203c7765696768743e002423232057656967687438604f20284329602077686572653a742d2060436020697320746865206c656e677468206f6620607761736d603d01486f77657665722c207765207472656174207468697320617320612066756c6c20626c6f636b20617320606672616d655f73797374656d3a3a4d6f64756c653a3a7365745f636f64656020646f65732c23203c2f7765696768743ebd01235b776569676874203d2028543a3a426c6f636b576569676874733a3a67657428292e676574284469737061746368436c6173733a3a4f7065726174696f6e616c292e626173655f65787472696e7369632c204469737061746368436c6173733a3a4f7065726174696f6e616c295d6c7570646174655f776f726b696e675f67726f75705f6275646765740c0134776f726b696e675f67726f757099010130576f726b696e6747726f7570000118616d6f756e7418013042616c616e63654f663c543e00013062616c616e63655f6b696e649d01012c42616c616e63654b696e640002206c55706461746520776f726b696e672067726f757020627564676574203c7765696768743e0024232320576569676874c4604f202831296020446f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e4c6275726e5f6163636f756e745f746f6b656e73040118616d6f756e7418013042616c616e63654f663c543e000320784275726e7320746f6b656e20666f722063616c6c6572206163636f756e74203c7765696768743e0024232320576569676874c4604f202831296020446f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e0506083870616c6c65745f636f6e74656e741043616c6c04045400010101506372656174655f63757261746f725f67726f757008012469735f616374697665980110626f6f6c0001507065726d697373696f6e735f62795f6c6576656c5502017c4d6f6465726174696f6e5065726d697373696f6e7342794c6576656c3c543e000028a0416464206e65772063757261746f722067726f757020746f2072756e74696d652073746f7261676500203c7765696768743e002423232057656967687438604f20284129602077686572653af02d2060416020697320746865206e756d626572206f6620656e747269657320696e20607065726d697373696f6e735f62795f6c6576656c60206d6170142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e807570646174655f63757261746f725f67726f75705f7065726d697373696f6e7308014063757261746f725f67726f75705f6964280144543a3a43757261746f7247726f757049640001507065726d697373696f6e735f62795f6c6576656c5502017c4d6f6465726174696f6e5065726d697373696f6e7342794c6576656c3c543e000128ac557064617465206578697374696e672063757261746f722067726f75702773207065726d697373696f6e7300203c7765696768743e002423232057656967687438604f20284129602077686572653af02d2060416020697320746865206e756d626572206f6620656e747269657320696e20607065726d697373696f6e735f62795f6c6576656c60206d6170142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e607365745f63757261746f725f67726f75705f73746174757308014063757261746f725f67726f75705f6964280144543a3a43757261746f7247726f7570496400012469735f616374697665980110626f6f6c0002241d01536574206069735f616374697665602073746174757320666f722063757261746f722067726f757020756e64657220676976656e206063757261746f725f67726f75705f69646000203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e506164645f63757261746f725f746f5f67726f75700c014063757261746f725f67726f75705f6964280144543a3a43757261746f7247726f7570496400012863757261746f725f6964280130543a3a43757261746f72496400012c7065726d697373696f6e73bd01015c4368616e6e656c4167656e745065726d697373696f6e73000324ec4164642063757261746f7220746f2063757261746f722067726f757020756e64657220676976656e206063757261746f725f67726f75705f69646000203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6472656d6f76655f63757261746f725f66726f6d5f67726f757008014063757261746f725f67726f75705f6964280144543a3a43757261746f7247726f7570496400012863757261746f725f6964280130543a3a43757261746f724964000424a452656d6f76652063757261746f722066726f6d206120676976656e2063757261746f722067726f757000203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e386372656174655f6368616e6e656c0801346368616e6e656c5f6f776e6572e50101b04368616e6e656c4f776e65723c543a3a4d656d62657249642c20543a3a43757261746f7247726f757049643e000118706172616d73150201704368616e6e656c4372656174696f6e506172616d65746572733c543e000530203c7765696768743e002423232057656967687478604f202841202b2042202b2043202b2044202b204529602077686572653ae02d2060416020697320746865206e756d626572206f6620656e747269657320696e2060706172616d732e636f6c6c61626f7261746f727360e02d2060426020697320746865206e756d626572206f66206974656d7320696e2060706172616d732e73746f726167655f6275636b65747360f42d2060436020697320746865206e756d626572206f66206974656d7320696e2060706172616d732e646973747269627574696f6e5f6275636b6574736011012d2060446020697320746865206e756d626572206f66206974656d7320696e2060706172616d732e6173736574732e6f626a6563745f6372656174696f6e5f6c69737460c02d20604560206973207468652073697a65206f66202060706172616d732e6d6574616020696e206b696c6f6279746573142d2044423ae02020202d20604f2841202b2042202b2043202b20442960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e387570646174655f6368616e6e656c0c01146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c4964000118706172616d73410201684368616e6e656c557064617465506172616d65746572733c543e000630203c7765696768743e002423232057656967687478604f202841202b2042202b2043202b2044202b204529602077686572653ae02d2060416020697320746865206e756d626572206f6620656e747269657320696e2060706172616d732e636f6c6c61626f7261746f72736071012d2060426020697320746865206e756d626572206f66206974656d7320696e2060706172616d732e6173736574735f746f5f75706c6f61642e6f626a6563745f6372656174696f6e5f6c69737460202869662070726f766964656429e42d2060436020697320746865206e756d626572206f66206974656d7320696e2060706172616d732e6173736574735f746f5f72656d6f766560cc2d20604460206973207468652073697a65206f662060706172616d732e6e65775f6d6574616020696e206b696c6f6279746573ec2d206045602069732060706172616d732e73746f726167655f6275636b6574735f6e756d5f7769746e65737360202869662070726f766964656429142d2044423ae02020202d20604f2841202b2042202b2043202b20452960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e787570646174655f6368616e6e656c5f70726976696c6567655f6c6576656c0801286368616e6e656c5f6964280130543a3a4368616e6e656c496400014c6e65775f70726976696c6567655f6c6576656c080160543a3a4368616e6e656c50726976696c6567654c6576656c000724150145787472696e73696320666f72207570646174696e67206368616e6e656c2070726976696c656765206c6576656c20287265717569726573206c656164206163636573732900203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743ea07365745f6368616e6e656c5f7061757365645f66656174757265735f61735f6d6f64657261746f721001146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c496400014c6e65775f7061757365645f6665617475726573d901018042547265655365743c5061757361626c654368616e6e656c466561747572653e000124726174696f6e616c6530011c5665633c75383e000828c845787472696e73696320666f722070617573696e672f72652d656e61626c696e67206368616e6e656c20666561747572657300203c7765696768743e002423232057656967687438604f20284129602077686572653ab42d20604160206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3864656c6574655f6368616e6e656c1001146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c496400014c6368616e6e656c5f6261675f7769746e657373090601444368616e6e656c4261675769746e6573730001546e756d5f6f626a656374735f746f5f64656c65746528010c753634000928203c7765696768743e002423232057656967687458604f202841202b2042202b204329602077686572653a802d2060416020697320606e756d5f6f626a656374735f746f5f64656c65746560c82d2060426020697320606368616e6e656c5f6261675f7769746e6573732e73746f726167655f6275636b6574735f6e756d60dc2d2060436020697320606368616e6e656c5f6261675f7769746e6573732e646973747269627574696f6e5f6275636b6574735f6e756d60142d2044423ad02020202d20604f2841202b2042202b20432960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e8864656c6574655f6368616e6e656c5f6173736574735f61735f6d6f64657261746f721401146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c49640001406173736574735f746f5f72656d6f76656901016442547265655365743c446174614f626a65637449643c543e3e00016c73746f726167655f6275636b6574735f6e756d5f7769746e65737310010c753332000124726174696f6e616c6530011c5665633c75383e000a28203c7765696768743e002423232057656967687458604f202841202b2042202b204329602077686572653aa42d2060416020697320746865206c656e677468206f6620606173736574735f746f5f72656d6f766560cc2d20604260206973207468652076616c7565206f66206073746f726167655f6275636b6574735f6e756d5f7769746e65737360b42d20604360206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423ac02020202d20604f2841202b20422960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e6c64656c6574655f6368616e6e656c5f61735f6d6f64657261746f721401146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c496400014c6368616e6e656c5f6261675f7769746e657373090601444368616e6e656c4261675769746e6573730001546e756d5f6f626a656374735f746f5f64656c65746528010c753634000124726174696f6e616c6530011c5665633c75383e000b008c7365745f6368616e6e656c5f7669736962696c6974795f61735f6d6f64657261746f721001146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c496400012469735f68696464656e980110626f6f6c000124726174696f6e616c6530011c5665633c75383e000c28350145787472696e73696320666f722073657474696e67206368616e6e656c207669736962696c69747920737461747573202868696464656e2f76697369626c6529206279206d6f64657261746f7200203c7765696768743e002423232057656967687438604f20284129602077686572653ab42d20604160206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e306372656174655f766964656f0c01146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c4964000118706172616d7349020168566964656f4372656174696f6e506172616d65746572733c543e000d2c203c7765696768743e002423232057656967687468604f202841202b2042202b2043202b204429602077686572653a11012d2060416020697320746865206e756d626572206f66206974656d7320696e2060706172616d732e6173736574732e6f626a6563745f6372656174696f6e5f6c69737460b42d206042602069732060706172616d732e73746f726167655f6275636b6574735f6e756d5f7769746e6573736035012d2060436020697320746865206c656e677468206f66206f70656e2061756374696f6e202f20656e676c6973682061756374696f6e2077686974656c697374202869662070726f766964656429f42d20604460206973207468652073697a65206f662060706172616d732e6d6574616020696e206b696c6f6279746573202869662070726f766964656429142d2044423ad02020202d20604f2841202b2042202b20432960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e307570646174655f766964656f0c01146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f4964000118706172616d7351020160566964656f557064617465506172616d65746572733c543e000e30203c7765696768743e002423232057656967687478604f202841202b2042202b2043202b2044202b204529602077686572653a25012d2060416020697320706172616d732e6173736574735f746f5f75706c6f61642e6f626a6563745f6372656174696f6e5f6c6973742e6c656e2829202869662070726f766964656429982d2060426020697320706172616d732e6173736574735f746f5f72656d6f76652e6c656e2829ec2d206043602069732060706172616d732e73746f726167655f6275636b6574735f6e756d5f7769746e65737360202869662070726f76696465642935012d2060446020697320746865206c656e677468206f66206f70656e2061756374696f6e202f20656e676c6973682061756374696f6e2077686974656c697374202869662070726f76696465642905012d20604560206973207468652073697a65206f662060706172616d732e6e65775f6d6574616020696e206b696c6f6279746573202869662070726f766964656429142d2044423ae02020202d20604f2841202b2042202b2043202b20442960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e3064656c6574655f766964656f1001146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f49640001546e756d5f6f626a656374735f746f5f64656c65746528010c75363400016c73746f726167655f6275636b6574735f6e756d5f7769746e6573730102012c4f7074696f6e3c7533323e000f24203c7765696768743e002423232057656967687448604f202841202b204229602077686572653a782d20604160206973206e756d5f6f626a656374735f746f5f64656c657465ec2d206042602069732060706172616d732e73746f726167655f6275636b6574735f6e756d5f7769746e65737360202869662070726f766964656429142d2044423ac02020202d20604f2841202b20422960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e8064656c6574655f766964656f5f6173736574735f61735f6d6f64657261746f721401146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f496400016c73746f726167655f6275636b6574735f6e756d5f7769746e65737310010c7533320001406173736574735f746f5f72656d6f76656901016442547265655365743c446174614f626a65637449643c543e3e000124726174696f6e616c6530011c5665633c75383e001028203c7765696768743e002423232057656967687458604f202841202b2042202b204329602077686572653aa42d2060416020697320746865206c656e677468206f6620606173736574735f746f5f72656d6f766560cc2d20604260206973207468652076616c7565206f66206073746f726167655f6275636b6574735f6e756d5f7769746e65737360b42d20604360206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423ac02020202d20604f2841202b20422960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e6464656c6574655f766964656f5f61735f6d6f64657261746f721401146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f496400016c73746f726167655f6275636b6574735f6e756d5f7769746e6573730102012c4f7074696f6e3c7533323e0001546e756d5f6f626a656374735f746f5f64656c65746528010c753634000124726174696f6e616c6530011c5665633c75383e001128203c7765696768743e002423232057656967687458604f202841202b2042202b204329602077686572653ab42d20604160206973207468652076616c7565206f6620606e756d5f6f626a656374735f746f5f64656c65746560cc2d20604260206973207468652076616c7565206f66206073746f726167655f6275636b6574735f6e756d5f7769746e65737360b42d20604360206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423ac02020202d20604f2841202b20422960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e847365745f766964656f5f7669736962696c6974795f61735f6d6f64657261746f721001146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f496400012469735f68696464656e980110626f6f6c000124726174696f6e616c6530011c5665633c75383e0012282d0145787472696e73696320666f7220766964656f207669736962696c69747920737461747573202868696464656e2f76697369626c65292073657474696e67206279206d6f64657261746f7200203c7765696768743e002423232057656967687438604f20284129602077686572653ab42d20604160206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e587570646174655f6368616e6e656c5f7061796f757473080118706172616d73710201845570646174654368616e6e656c5061796f757473506172616d65746572733c543e00014075706c6f616465725f6163636f756e74000130543a3a4163636f756e74496400132458557064617465206368616e6e656c207061796f75747300203c7765696768743e002423232057656967687438604f20283129602077686572653a142d2044423a182d204f2831292c23203c2f7765696768743e50636c61696d5f6368616e6e656c5f7265776172640c01146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e00011470726f6f660d0601505665633c50726f6f66456c656d656e743c543e3e0001106974656d1906013850756c6c5061796d656e743c543e001428a0436c61696d2072657761726420696e204a4f592066726f6d206368616e6e656c206163636f756e7400203c7765696768743e002423232057656967687438604f20284829602077686572653ac82d2060486020697320746865206c656e676874206f66207468652070726f7669646564206d65726b6c65206070726f6f6660142d2044423a242020202d204f2831292c23203c2f7765696768743e7477697468647261775f66726f6d5f6368616e6e656c5f62616c616e63650c01146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c4964000118616d6f756e7418013042616c616e63654f663c543e001524845769746864726177204a4f592066726f6d206368616e6e656c206163636f756e7400203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e7c7570646174655f6368616e6e656c5f73746174655f626c6f61745f626f6e640401706e65775f6368616e6e656c5f73746174655f626c6f61745f626f6e6418013042616c616e63654f663c543e0016289c55706461746573206368616e6e656c20737461746520626c6f617420626f6e642076616c75652e7c4f6e6c79206c6561642063616e2075706c6f616420746869732076616c756500203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e747570646174655f766964656f5f73746174655f626c6f61745f626f6e640401686e65775f766964656f5f73746174655f626c6f61745f626f6e6418013042616c616e63654f663c543e001728945570646174657320766964656f20737461746520626c6f617420626f6e642076616c75652e7c4f6e6c79206c6561642063616e2075706c6f616420746869732076616c756500203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e84636c61696d5f616e645f77697468647261775f6368616e6e656c5f7265776172640c01146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e00011470726f6f660d0601505665633c50726f6f66456c656d656e743c543e3e0001106974656d1906013850756c6c5061796d656e743c543e001828d4436c61696d20616e642077697468647261772072657761726420696e204a4f592066726f6d206368616e6e656c206163636f756e7400203c7765696768743e002423232057656967687438604f20284829602077686572653ac82d2060486020697320746865206c656e676874206f66207468652070726f7669646564206d65726b6c65206070726f6f6660142d2044423a242020202d204f2831292c23203c2f7765696768743e2469737375655f6e66740c01146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f4964000118706172616d73090201604e667449737375616e6365506172616d65746572733c543e001930244973737565204e465400203c7765696768743e00242323205765696768742c604f202857202b20422960142d2044423a242020202d204f2857291877686572653a19012020202d2057203a206d656d6265722077686974656c697374206c656e67746820696e2063617365206e667420696e697469616c207374617475732069732061756374696f6ec02020202d2042203a2073697a65206f66206d6574616461746120706172616d6574657220696e206b696c6f62797465732c23203c2f7765696768743e2c64657374726f795f6e66740801146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f4964001a242c44657374726f79204e465400203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e4873746172745f6f70656e5f61756374696f6e0c01206f776e65725f6964a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f496400013861756374696f6e5f706172616d73050201504f70656e41756374696f6e506172616d733c543e001b2470537461727420766964656f206e6674206f70656e2061756374696f6e203c7765696768743e002423232057656967687438604f20285729602077686572653a742d2057203a206d656d6265722077686974656c697374206c656e677468142d2044423a242020202d204f2857292c23203c2f7765696768743e5473746172745f656e676c6973685f61756374696f6e0c01206f776e65725f6964a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f496400013861756374696f6e5f706172616d73fd01015c456e676c69736841756374696f6e506172616d733c543e001c247c537461727420766964656f206e667420656e676c6973682061756374696f6e203c7765696768743e002423232057656967687438604f20285729602077686572653a882d2057203a2077686974656c697374206d656d626572206c697374206c656e677468142d2044423a242020202d204f2857292c23203c2f7765696768743e5863616e63656c5f656e676c6973685f61756374696f6e0801206f776e65725f6964a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f4964001d208043616e63656c20766964656f206e667420656e676c6973682061756374696f6e203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e4c63616e63656c5f6f70656e5f61756374696f6e0801206f776e65725f6964a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f4964001e207443616e63656c20766964656f206e6674206f70656e2061756374696f6e203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e3063616e63656c5f6f666665720801206f776e65725f6964a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f4964001f244043616e63656c204e6674206f6666657200203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e3863616e63656c5f6275795f6e6f770801206f776e65725f6964a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f49640020245443616e63656c204e66742073656c6c206f7264657200203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f283129243c2f7765696768743e507570646174655f6275795f6e6f775f70726963650c01206f776e65725f6964a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f49640001246e65775f707269636518013042616c616e63654f663c543e0021246055706461746520427579206e6f77206e667420707269636500203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e546d616b655f6f70656e5f61756374696f6e5f6269640c01387061727469636970616e745f696428012c543a3a4d656d6265724964000120766964656f5f6964280128543a3a566964656f49640001286269645f616d6f756e7418013042616c616e63654f663c543e002220404d616b652061756374696f6e20626964203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e606d616b655f656e676c6973685f61756374696f6e5f6269640c01387061727469636970616e745f696428012c543a3a4d656d6265724964000120766964656f5f6964280128543a3a566964656f49640001286269645f616d6f756e7418013042616c616e63654f663c543e002320604d616b6520656e676c6973682061756374696f6e20626964203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e5c63616e63656c5f6f70656e5f61756374696f6e5f6269640801387061727469636970616e745f696428012c543a3a4d656d6265724964000120766964656f5f6964280128543a3a566964656f49640024205c43616e63656c206f70656e2061756374696f6e20626964203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e58736574746c655f656e676c6973685f61756374696f6e040120766964656f5f6964280128543a3a566964656f496400252464436c61696d20776f6e20656e676c6973682061756374696f6e5c43616e2062652063616c6c656420627920616e796f6e65203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e607069636b5f6f70656e5f61756374696f6e5f77696e6e65721001206f776e65725f6964a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f496400012477696e6e65725f696428012c543a3a4d656d6265724964000118636f6d6d697418013042616c616e63654f663c543e0026245c416363657074206f70656e2061756374696f6e206269648c53686f756c64206f6e6c792062652063616c6c65642062792061756374696f6e656572203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e246f666665725f6e6674100120766964656f5f6964280128543a3a566964656f49640001206f776e65725f6964a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000108746f28012c543a3a4d656d62657249640001147072696365450101504f7074696f6e3c42616c616e63654f663c543e3e002724244f66666572204e667400203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e38736c696e675f6e66745f6261636b080120766964656f5f6964280128543a3a566964656f49640001206f776e65725f6964a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e002824c452657475726e204e6674206261636b20746f20746865206f726967696e616c20617274697374206174206e6f20636f737400203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e546163636570745f696e636f6d696e675f6f66666572080120766964656f5f6964280128543a3a566964656f49640001347769746e6573735f7072696365450101a04f7074696f6e3c3c542061732062616c616e6365733a3a436f6e6669673e3a3a42616c616e63653e0029246441636365707420696e636f6d696e67204e6674206f6666657200203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e2073656c6c5f6e66740c0120766964656f5f6964280128543a3a566964656f49640001206f776e65725f6964a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000114707269636518013042616c616e63654f663c543e002a202053656c6c204e6674203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e1c6275795f6e66740c0120766964656f5f6964280128543a3a566964656f49640001387061727469636970616e745f696428012c543a3a4d656d62657249640001347769746e6573735f707269636518013042616c616e63654f663c543e002b241c427579204e667400203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e44746f67676c655f6e66745f6c696d69747304011c656e61626c6564980110626f6f6c002c20dc4f6e6c7920436f756e63696c2063616e20746f67676c65206e66742069737375616e6365206c696d69747320636f6e73747261696e7473203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e506368616e6e656c5f6f776e65725f72656d61726b0801286368616e6e656c5f6964280130543a3a4368616e6e656c496400010c6d736730011c5665633c75383e002d28504368616e6e656c206f776e65722072656d61726b203c7765696768743e00242323205765696768741c604f2028422960142d2044423a242020202d204f2831291877686572653a8c2d204220697320746865206b696c6f62797465206c656e676874206f6620606d7367602c23203c2f7765696768743e506368616e6e656c5f6167656e745f72656d61726b0c01146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c496400010c6d736730011c5665633c75383e002e286c4368616e6e656c20636f6c6c61626f7261746f722072656d61726b203c7765696768743e00242323205765696768741c604f2028422960142d2044423a242020202d204f2831291877686572653a8420202d2042206973207468652062797465206c656e676874206f6620606d7367602c23203c2f7765696768743e406e66745f6f776e65725f72656d61726b0c01146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f496400010c6d736730011c5665633c75383e002f28404e4654206f776e65722072656d61726b203c7765696768743e00242323205765696768741c604f2028422960142d2044423a2020202d204f2831291877686572653a8420202d2042206973207468652062797465206c656e676874206f6620606d7367602c23203c2f7765696768743e6c696e697469616c697a655f6368616e6e656c5f7472616e736665720c01286368616e6e656c5f6964280130543a3a4368616e6e656c49640001146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e00013c7472616e736665725f706172616d731d06016c496e69745472616e73666572506172616d65746572734f663c543e003028dc53746172742061206368616e6e656c207472616e736665722077697468207370656369666965642063686172616374657269737469637300203c7765696768743e002423232057656967687438604f20284129602077686572653a25012d2060416020697320746865206e756d626572206f6620656e747269657320696e20607472616e736665725f706172616d732e6e65775f636f6c6c61626f7261746f727360206d6170142d2044423aa82020202d204f284129202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e5c63616e63656c5f6368616e6e656c5f7472616e736665720801286368616e6e656c5f6964280130543a3a4368616e6e656c49640001146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0031245c63616e63656c206368616e6e656c207472616e7366657200203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5c6163636570745f6368616e6e656c5f7472616e736665720801286368616e6e656c5f6964280130543a3a4368616e6e656c4964000144636f6d6d69746d656e745f706172616d736d0201785472616e73666572436f6d6d69746d656e745769746e6573734f663c543e00322c6441636365707473206368616e6e656c207472616e736665722e310160636f6d6d69746d656e745f706172616d736020697320726571756972656420746f2070726576656e74206368616e67696e6720746865207472616e7366657220636f6e646974696f6e732e00203c7765696768743e002423232057656967687438604f20284129602077686572653a2d012d2060416020697320746865206e756d626572206f6620656e747269657320696e2060636f6d6d69746d656e745f706172616d732e6e65775f636f6c6c61626f7261746f727360206d6170142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5c7570646174655f676c6f62616c5f6e66745f6c696d69740801406e66745f6c696d69745f706572696f64890201384e66744c696d6974506572696f640001146c696d697428010c753634003320605570646174657320676c6f62616c204e4654206c696d6974203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e607570646174655f6368616e6e656c5f6e66745f6c696d69741001146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001406e66745f6c696d69745f706572696f64890201384e66744c696d6974506572696f640001286368616e6e656c5f6964280130543a3a4368616e6e656c49640001146c696d697428010c7536340034207055706461746573206368616e6e656c2773204e4654206c696d69742e203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e4c69737375655f63726561746f725f746f6b656e0c01146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c4964000118706172616d73c9020170546f6b656e49737375616e6365506172616d65746572734f663c543e0035284c49737375652063726561746f7220746f6b656e00203c7765696768743e002423232057656967687438604f20284129602077686572653a05012d2060416020697320746865206e756d626572206f6620656e747269657320696e2060706172616d732e696e697469616c5f616c6c6f636174696f6e60206d6170142d2044423ab02020202d20604f28412960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e5c696e69745f63726561746f725f746f6b656e5f73616c650c01146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c4964000118706172616d7321060150546f6b656e53616c65506172616d734f663c543e00362874496e697469616c697a652063726561746f7220746f6b656e2073616c6500203c7765696768743e002423232057656967687438604f20284129602077686572653a29012d20604160206973207468652073697a65206f662060706172616d732e6d657461646174616020696e206b696c6f627974657320286f722030206966206e6f742070726f766964656429142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e887570646174655f7570636f6d696e675f63726561746f725f746f6b656e5f73616c651001146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c496400013c6e65775f73746172745f626c6f636b010201584f7074696f6e3c543a3a426c6f636b4e756d6265723e0001306e65775f6475726174696f6e010201584f7074696f6e3c543a3a426c6f636b4e756d6265723e00372488557064617465207570636f6d696e672063726561746f7220746f6b656e2073616c6500203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e7463726561746f725f746f6b656e5f6973737565725f7472616e736665721001146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c496400011c6f757470757473250601645472616e73666572735769746856657374696e674f663c543e0001206d6574616461746130011c5665633c75383e00382cc8506572666f726d207472616e73666572206f6620746f6b656e732061732063726561746f7220746f6b656e2069737375657200203c7765696768743e002423232057656967687448604f202841202b204229602077686572653aac2d2060416020697320746865206e756d626572206f6620656e747269657320696e20606f75747075747360c02d20604260206973207468652073697a65206f662074686520606d657461646174616020696e206b696c6f6279746573142d2044423ab02020202d20604f28412960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e846d616b655f63726561746f725f746f6b656e5f7065726d697373696f6e6c6573730801146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c4964003924ac4d616b65206368616e6e656c27732063726561746f7220746f6b656e207065726d697373696f6e6c65737300203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e987265647563655f63726561746f725f746f6b656e5f706174726f6e6167655f726174655f746f0c01146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c496400012c7461726765745f72617465f9020128596561726c7952617465003a24f0526564756365206368616e6e656c27732063726561746f7220746f6b656e20706174726f6e616765207261746520746f20676976656e2076616c756500203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e90636c61696d5f63726561746f725f746f6b656e5f706174726f6e6167655f6372656469740801146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c4964003b24b8436c61696d206368616e6e656c27732063726561746f7220746f6b656e20706174726f6e6167652063726564697400203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e4c69737375655f726576656e75655f73706c69741001146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c49640001147374617274010201584f7074696f6e3c543a3a426c6f636b4e756d6265723e0001206475726174696f6e100138543a3a426c6f636b4e756d626572003c2484497373756520726576656e75652073706c697420666f722061206368616e6e656c00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5866696e616c697a655f726576656e75655f73706c69740801146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c4964003d247c46696e616c697a6520616e20656e64656420726576656e75652073706c697400203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6c66696e616c697a655f63726561746f725f746f6b656e5f73616c650801146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c4964003e249046696e616c697a6520616e20656e6465642063726561746f7220746f6b656e2073616c6500203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e54646569737375655f63726561746f725f746f6b656e0801146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c4964003f247c44656973737565206368616e6e656c27732063726561746f7220746f6b656e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e09060c3870616c6c65745f636f6e74656e74147479706573444368616e6e656c4261675769746e657373000008014c73746f726167655f6275636b6574735f6e756d10010c753332000160646973747269627574696f6e5f6275636b6574735f6e756d10010c75333200000d0600000211060011060c3470616c6c65745f636f6d6d6f6e2c6d65726b6c655f747265654850726f6f66456c656d656e745265636f7264081048617368012c105369646501150600080110686173682c011048617368000110736964651506011053696465000015060c3470616c6c65745f636f6d6d6f6e2c6d65726b6c655f747265651053696465000108104c6566740000001452696768740001000019060c3870616c6c65745f636f6e74656e741474797065734850756c6c5061796d656e74456c656d656e740c244368616e6e656c496401281c42616c616e636501181048617368012c000c01286368616e6e656c5f69642801244368616e6e656c496400016063756d756c61746976655f7265776172645f6561726e656418011c42616c616e6365000118726561736f6e2c01104861736800001d060c3870616c6c65745f636f6e74656e7414747970657358496e69745472616e73666572506172616d65746572730c204d656d626572496401283843757261746f7247726f7570496401281c42616c616e63650118000c01446e65775f636f6c6c61626f7261746f72732d0201ac42547265654d61703c4d656d62657249642c204368616e6e656c4167656e745065726d697373696f6e733e000114707269636518011c42616c616e63650001246e65775f6f776e6572e50101984368616e6e656c4f776e65723c4d656d62657249642c2043757261746f7247726f757049643e000021060c5070616c6c65745f70726f6a6563745f746f6b656e1474797065733c546f6b656e53616c65506172616d7310284a6f7942616c616e636501181c42616c616e636501182c426c6f636b4e756d62657201105456657374696e675363686564756c65506172616d7301d102001c0128756e69745f70726963651801284a6f7942616c616e636500015075707065725f626f756e645f7175616e7469747918011c42616c616e63650001247374617274735f61740102014c4f7074696f6e3c426c6f636b4e756d6265723e0001206475726174696f6e10012c426c6f636b4e756d62657200015c76657374696e675f7363686564756c655f706172616d73d90201744f7074696f6e3c56657374696e675363686564756c65506172616d733e0001386361705f7065725f6d656d6265724501013c4f7074696f6e3c42616c616e63653e0001206d657461646174613101013c4f7074696f6e3c5665633c75383e3e000025060c5070616c6c65745f70726f6a6563745f746f6b656e147479706573245472616e736665727308204d656d626572496401281c5061796d656e740109030004002906016c42547265654d61703c4d656d62657249642c205061796d656e743e00002906042042547265654d617008044b012804560109030004002d060000002d06000002310600310600000408280903003506083870616c6c65745f73746f726167651043616c6c04045400018c5464656c6574655f73746f726167655f6275636b657404014473746f726167655f6275636b65745f6964280148543a3a53746f726167654275636b657449640000201d0144656c6574652073746f72616765206275636b65742e204d75737420626520656d7074792e2053746f72616765206f70657261746f72206d757374206265206d697373696e672e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e7c7570646174655f75706c6f6164696e675f626c6f636b65645f7374617475730401286e65775f737461747573980110626f6f6c000120785570646174657320676c6f62616c2075706c6f6164696e6720666c61672e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e507570646174655f646174615f73697a655f6665650401446e65775f646174615f73697a655f66656518013042616c616e63654f663c543e000220cc557064617465732073697a652d62617365642070726963696e67206f66206e6577206f626a656374732075706c6f616465642e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e907570646174655f73746f726167655f6275636b6574735f7065725f6261675f6c696d69740401246e65775f6c696d697410010c753332000320bc55706461746573202253746f72616765206275636b657473207065722062616722206e756d626572206c696d69742e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743ea47570646174655f73746f726167655f6275636b6574735f766f75636865725f6d61785f6c696d6974730801406e65775f6f626a656374735f73697a6528010c7536340001486e65775f6f626a656374735f6e756d62657228010c753634000420b455706461746573202253746f72616765206275636b65747320766f7563686572206d6178206c696d697473222e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e8c7570646174655f646174615f6f626a6563745f73746174655f626c6f61745f626f6e6404014073746174655f626c6f61745f626f6e6418013042616c616e63654f663c543e000520ac557064617465732064617461206f626a65637420737461746520626c6f617420626f6e642076616c75652e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743efc7570646174655f6e756d6265725f6f665f73746f726167655f6275636b6574735f696e5f64796e616d69635f6261675f6372656174696f6e5f706f6c69637908014064796e616d69635f6261675f74797065b102013844796e616d6963426167547970650001646e756d6265725f6f665f73746f726167655f6275636b65747310010c7533320006202d01557064617465206e756d626572206f662073746f72616765206275636b657473207573656420696e20676976656e2064796e616d696320626167206372656174696f6e20706f6c6963792e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e407570646174655f626c61636b6c69737408013472656d6f76655f686173686573a502014442547265655365743c5665633c75383e3e0001286164645f686173686573a502014442547265655365743c5665633c75383e3e000728bc41646420616e642072656d6f76652068617368657320746f207468652063757272656e7420626c61636b6c6973742e203c7765696768743e002423232057656967687448604f202857202b205629602077686572653abc2d2060576020697320746865206e756d626572206f66206974656d7320696e206072656d6f76655f68617368657360b02d2060566020697320746865206e756d626572206f66206974656d7320696e20606164645f68617368657360142d2044423ab02020202d20604f28572960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e546372656174655f73746f726167655f6275636b6574100134696e766974655f776f726b65723501014c4f7074696f6e3c576f726b657249643c543e3e000148616363657074696e675f6e65775f62616773980110626f6f6c00012873697a655f6c696d697428010c7536340001346f626a656374735f6c696d697428010c753634000820584372656174652073746f72616765206275636b65742e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e787570646174655f73746f726167655f6275636b6574735f666f725f6261670c01186261675f69649502012042616749643c543e00012c6164645f6275636b6574736901017042547265655365743c543a3a53746f726167654275636b657449643e00013872656d6f76655f6275636b6574736901017042547265655365743c543a3a53746f726167654275636b657449643e00092888557064617465732073746f72616765206275636b65747320666f722061206261672e203c7765696768743e002423232057656967687448604f202857202b205629602077686572653ab42d2060576020697320746865206e756d626572206f66206974656d7320696e20606164645f6275636b65747360c02d2060566020697320746865206e756d626572206f66206974656d7320696e206072656d6f76655f6275636b65747360142d2044423ac02020202d20604f2856202b20572960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e9463616e63656c5f73746f726167655f6275636b65745f6f70657261746f725f696e7669746504014473746f726167655f6275636b65745f6964280148543a3a53746f726167654275636b65744964000a20110143616e63656c2070656e64696e672073746f72616765206275636b657420696e766974652e20416e20696e7669746174696f6e206d7573742062652070656e64696e672e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e78696e766974655f73746f726167655f6275636b65745f6f70657261746f7208014473746f726167655f6275636b65745f6964280148543a3a53746f726167654275636b6574496400012c6f70657261746f725f696428012c576f726b657249643c543e000b20c0496e766974652073746f72616765206275636b6574206f70657261746f722e204d757374206265206d697373696e672e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e7872656d6f76655f73746f726167655f6275636b65745f6f70657261746f7204014473746f726167655f6275636b65745f6964280148543a3a53746f726167654275636b65744964000c208052656d6f7665732073746f72616765206275636b6574206f70657261746f722e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e707570646174655f73746f726167655f6275636b65745f73746174757308014473746f726167655f6275636b65745f6964280148543a3a53746f726167654275636b65744964000148616363657074696e675f6e65775f62616773980110626f6f6c000d20dc5570646174652077686574686572206e6577206261677320617265206265696e6720616363657074656420666f722073746f726167652e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e847365745f73746f726167655f6275636b65745f766f75636865725f6c696d6974730c014473746f726167655f6275636b65745f6964280148543a3a53746f726167654275636b657449640001586e65775f6f626a656374735f73697a655f6c696d697428010c7536340001606e65775f6f626a656374735f6e756d6265725f6c696d697428010c753634000e208c536574732073746f72616765206275636b657420766f7563686572206c696d6974732e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e806163636570745f73746f726167655f6275636b65745f696e7669746174696f6e0c0124776f726b65725f696428012c576f726b657249643c543e00014473746f726167655f6275636b65745f6964280148543a3a53746f726167654275636b657449640001547472616e736163746f725f6163636f756e745f6964000130543a3a4163636f756e744964000f285d01416363657074207468652073746f72616765206275636b657420696e7669746174696f6e2e20416e20696e7669746174696f6e206d757374206d617463682074686520776f726b65725f696420706172616d657465722e59014974206163636570747320616e206164646974696f6e616c206163636f756e7420494420287472616e736163746f722920666f7220616363657074696e672064617461206f626a6563747320746f2070726576656e74747472616e73616374696f6e206e6f6e636520636f6c6c6973696f6e732e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e747365745f73746f726167655f6f70657261746f725f6d657461646174610c0124776f726b65725f696428012c576f726b657249643c543e00014473746f726167655f6275636b65745f6964280148543a3a53746f726167654275636b657449640001206d6574616461746130011c5665633c75383e001024dc536574732073746f72616765206f70657261746f72206d65746164617461202865672e3a2073746f72616765206e6f64652055524c292e203c7765696768743e002423232057656967687438604f20285729602077686572653aa02d206057602069732073697a65206f6620606d657461646174616020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6c6163636570745f70656e64696e675f646174615f6f626a65637473100124776f726b65725f696428012c576f726b657249643c543e00014473746f726167655f6275636b65745f6964280148543a3a53746f726167654275636b657449640001186261675f69649502012042616749643c543e000130646174615f6f626a656374736901016442547265655365743c543a3a446174614f626a65637449643e0011246501412073746f726167652070726f7669646572207369676e616c732074686174207468652064617461206f626a65637420776173207375636365737366756c6c792075706c6f6164656420746f206974732073746f726167652e203c7765696768743e00242323205765696768743c604f2028572029602077686572653ab82d2060576020697320746865206e756d626572206f66206974656d7320696e2060646174615f6f626a6563747360142d2044423ab02020202d20604f28572960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e846372656174655f646973747269627574696f6e5f6275636b65745f66616d696c7900122090437265617465206120646973747269627574696f6e206275636b65742066616d696c792e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e8464656c6574655f646973747269627574696f6e5f6275636b65745f66616d696c7904012466616d696c795f6964280174543a3a446973747269627574696f6e4275636b657446616d696c7949640013209444656c65746573206120646973747269627574696f6e206275636b65742066616d696c792e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e686372656174655f646973747269627574696f6e5f6275636b657408012466616d696c795f6964280174543a3a446973747269627574696f6e4275636b657446616d696c794964000148616363657074696e675f6e65775f62616773980110626f6f6c00142074437265617465206120646973747269627574696f6e206275636b65742e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e847570646174655f646973747269627574696f6e5f6275636b65745f7374617475730801246275636b65745f69642502015c446973747269627574696f6e4275636b657449643c543e000148616363657074696e675f6e65775f62616773980110626f6f6c001520d855706461746573206120646973747269627574696f6e206275636b6574202761636365707473206e657720626167732720666c61672e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6864656c6574655f646973747269627574696f6e5f6275636b65740401246275636b65745f69642502015c446973747269627574696f6e4275636b657449643c543e001620a844656c65746520646973747269627574696f6e206275636b65742e204d75737420626520656d7074792e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e8c7570646174655f646973747269627574696f6e5f6275636b6574735f666f725f6261671001186261675f69649502012042616749643c543e00012466616d696c795f6964280174543a3a446973747269627574696f6e4275636b657446616d696c79496400014c6164645f6275636b6574735f696e64696365736901019042547265655365743c543a3a446973747269627574696f6e4275636b6574496e6465783e00015872656d6f76655f6275636b6574735f696e64696365736901019042547265655365743c543a3a446973747269627574696f6e4275636b6574496e6465783e0017289c5570646174657320646973747269627574696f6e206275636b65747320666f722061206261672e203c7765696768743e002423232057656967687448604f202857202b205629602077686572653ad42d2060576020697320746865206e756d626572206f66206974656d7320696e20606164645f6275636b6574735f696e646963657360e02d2060566020697320746865206e756d626572206f66206974656d7320696e206072656d6f76655f6275636b6574735f696e646963657360142d2044423ac02020202d20604f2856202b20572960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743ea47570646174655f646973747269627574696f6e5f6275636b6574735f7065725f6261675f6c696d69740401246e65775f6c696d697410010c753332001820d0557064617465732022446973747269627574696f6e206275636b657473207065722062616722206e756d626572206c696d69742e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e7c7570646174655f646973747269627574696f6e5f6275636b65745f6d6f64650801246275636b65745f69642502015c446973747269627574696f6e4275636b657449643c543e000130646973747269627574696e67980110626f6f6c001920d8557064617465732027646973747269627574696e672720666c616720666f722074686520646973747269627574696e6720666c61672e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743eb87570646174655f66616d696c6965735f696e5f64796e616d69635f6261675f6372656174696f6e5f706f6c69637908014064796e616d69635f6261675f74797065b102013844796e616d69634261675479706500012066616d696c696573b50201b042547265654d61703c543a3a446973747269627574696f6e4275636b657446616d696c7949642c207533323e001a283d01557064617465206e756d626572206f66206469737472696275746564206275636b657473207573656420696e20676976656e2064796e616d696320626167206372656174696f6e20706f6c6963792e9c5570646174657320646973747269627574696f6e206275636b65747320666f722061206261672e203c7765696768743e002423232057656967687438604f20285729602077686572653aa82d2060576020697320746865206e756d626572206f66206974656d7320696e206066616d696c69657360142d2044423ab02020202d20604f28572960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e8c696e766974655f646973747269627574696f6e5f6275636b65745f6f70657261746f720801246275636b65745f69642502015c446973747269627574696f6e4275636b657449643c543e0001486f70657261746f725f776f726b65725f696428012c576f726b657249643c543e001b2090496e7669746520616e206f70657261746f722e204d757374206265206d697373696e672e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743ea863616e63656c5f646973747269627574696f6e5f6275636b65745f6f70657261746f725f696e766974650801246275636b65745f69642502015c446973747269627574696f6e4275636b657449643c543e0001486f70657261746f725f776f726b65725f696428012c576f726b657249643c543e001c209c43616e63656c2070656e64696e6720696e766974652e204d7573742062652070656e64696e672e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e8c72656d6f76655f646973747269627574696f6e5f6275636b65745f6f70657261746f720801246275636b65745f69642502015c446973747269627574696f6e4275636b657449643c543e0001486f70657261746f725f776f726b65725f696428012c576f726b657249643c543e001d209452656d6f76657320646973747269627574696f6e206275636b6574206f70657261746f722e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e9c7365745f646973747269627574696f6e5f6275636b65745f66616d696c795f6d6574616461746108012466616d696c795f6964280174543a3a446973747269627574696f6e4275636b657446616d696c7949640001206d6574616461746130011c5665633c75383e001e24a053657420646973747269627574696f6e206275636b65742066616d696c79206d657461646174612e203c7765696768743e002423232057656967687438604f20285729602077686572653aa02d206057602069732073697a65206f6620606d657461646174616020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e946163636570745f646973747269627574696f6e5f6275636b65745f696e7669746174696f6e080124776f726b65725f696428012c576f726b657249643c543e0001246275636b65745f69642502015c446973747269627574696f6e4275636b657449643c543e001f20584163636570742070656e64696e6720696e766974652e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e887365745f646973747269627574696f6e5f6f70657261746f725f6d657461646174610c0124776f726b65725f696428012c576f726b657249643c543e0001246275636b65745f69642502015c446973747269627574696f6e4275636b657449643c543e0001206d6574616461746130011c5665633c75383e002024fc53657420646973747269627574696f6e206f70657261746f72206d6574616461746120666f722074686520646973747269627574696f6e206275636b65742e203c7765696768743e002423232057656967687438604f20285729602077686572653aa02d206057602069732073697a65206f6620606d657461646174616020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5c73746f726167655f6f70657261746f725f72656d61726b0c0124776f726b65725f696428012c576f726b657249643c543e00014473746f726167655f6275636b65745f6964280148543a3a53746f726167654275636b6574496400010c6d736730011c5665633c75383e0021289c4465706f73697420612053746f726167654f70657261746f7252656d61726b6564206576656e7474636f6e7461696e696e6720612067656e65726963206d6573736167652e203c7765696768743e002423232057656967687438604f20285729602077686572653a9c2d206057602069732073697a65206f6620606d6573736167656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e70646973747269627574696f6e5f6f70657261746f725f72656d61726b0c0124776f726b65725f696428012c576f726b657249643c543e000158646973747269627574696f6e5f6275636b65745f69642502015c446973747269627574696f6e4275636b657449643c543e00010c6d736730011c5665633c75383e0022249c43726561746520612064796e616d6963206261672e20446576656c6f706d656e74206d6f64652e203c7765696768743e002423232057656967687438604f20285729602077686572653a9c2d206057602069732073697a65206f6620606d6573736167656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e3906085070616c6c65745f70726f6a6563745f746f6b656e1043616c6c04045400011c207472616e736665721001347372635f6d656d6265725f696428012c543a3a4d656d6265724964000120746f6b656e5f6964280128543a3a546f6b656e496400011c6f7574707574733d0601385472616e73666572734f663c543e0001206d6574616461746130011c5665633c75383e0000685501416c6c6f7720746f207472616e736665722066726f6d20607372635f6d656d6265725f696460206163636f756e7420746f2074686520766172696f757320606f757470757473602062656e6566696369617269657364696e207468652073706563696669656420616d6f756e74732e0038507265636f6e646974696f6e733ae82d206f726967696e207369676e6572206d75737420626520607372635f6d656d6265725f69646020636f6e74726f6c6c6572206163636f756e74842d20746f6b656e2062792060746f6b656e5f696460206d75737420657869737473d82d206163636f756e74206f6620607372635f6d656d6265725f696460206d75737420657869737420666f722060746f6b656e5f69646041012d2073656e646572206d757374206861766520656e6f756768204a4f597320746f20636f7665722074686520746f74616c20626c6f617420626f6e6420726571756972656420696e2063617365206f6678202064657374696e6174696f6e287329206e6f74206578697374696e672e29012d20736f75726365206163636f756e74206d757374206861766520656e6f75676820746f6b656e2066756e647320746f20636f76657220616c6c20746865207472616e7366657228732941012d20606f75747075747360206d7573742064657369676e617465206578697374696e672064657374696e6174696f6e28732920666f7220225065726d697373696f6e656422207472616e73666572732e3c506f7374636f6e646974696f6e733ae82d20736f75726365206163636f756e74277320746f6b656e7320616d6f756e74206973206465637265617365642062792060616d6f756e74602e49012d20746f74616c20626c6f617420626f6e64207472616e736665727265642066726f6d2073656e6465722773204a4f592062616c616e636520696e746f20746865207472656173757279206163636f756e74cc2020696e20636173652064657374696e6174696f6e2873292068617665206265656e20616464656420746f2073746f72616765ec2d20606f7574707574732e62656e65666963696172796020746f6b656e7320616d6f756e7420696e637265617365642062792060616d6f756e746000203c7765696768743e002423232057656967687448604f202854202b204d29602077686572653a802d2060546020697320746865206c656e677468206f6620606f75747075747360b02d20604d60206973207468652073697a65206f6620606d657461646174616020696e206b696c6f6279746573142d2044423aac20202d20604f28542960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e106275726e0c0120746f6b656e5f6964280128543a3a546f6b656e49640001246d656d6265725f696428012c543a3a4d656d6265724964000118616d6f756e74180144546f6b656e42616c616e63654f663c543e000178884275726e20746f6b656e732066726f6d20737065636966696564206163636f756e740038507265636f6e646974696f6e733a442d2060616d6f756e7460206973203e2030f42d206f726967696e207369676e6572206973206120636f6e74726f6c6c6572206163636f756e74206f6620606d656d6265725f696460206d656d626572702d20746f6b656e2062792060746f6b656e5f69646020657869737473c02d20616e206163636f756e742065786973747320666f722060746f6b656e5f696460207820606d656d6265725f696460a02d206163636f756e74277320746f6b656e7320616d6f756e74206973203e3d2060616d6f756e746005012d20746f6b656e20737570706c792063616e206265206d6f64696669656420287468657265206973206e6f2061637469766520726576656e75652073706c697429003c506f7374636f6e646974696f6e733a4d012d207374617274696e6720776974682060756e70726f6365737365646020626565696e6720657175616c20746f2060616d6f756e74602c206163636f756e7427732076657374696e67207363686564756c6573602020617265206974657261746564206f76657220616e643a5d0120202d2075706461746564207769746820606275726e65645f616d6f756e74202b3d207570726f636573736564602069662076657374696e67207363686564756c65277320756e76657374656420616d6f756e74206973742020202067726561746572207468616e20607570726f636573736564605420202d2072656d6f766564206f746865727769736545012020286166746572206561636820697465726174696f6e2060756e70726f6365737365646020697320726564756365642062792074686520616d6f756e74206f6620756e76657374656420746f6b656e737c20206275726e656420647572696e67207468617420697465726174696f6e2949012d20696620746865206163636f756e742068617320616e79206073706c69745f7374616b696e675f737461747573602c20746865206073706c69745f7374616b696e675f7374617475732e616d6f756e7460e820206973207265647563656420627920606d696e28616d6f756e742c2073706c69745f7374616b696e675f7374617475732e616d6f756e742960a42d20606163636f756e742e616d6f756e746020697320726564756365642062792060616d6f756e7460942d20746f6b656e20737570706c7920697320726564756365642062792060616d6f756e746000203c7765696768743e00242323205765696768741c604f2028312960142d2044423ad820202d20604f28312960202d20646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e30647573745f6163636f756e74080120746f6b656e5f6964280128543a3a546f6b656e49640001246d656d6265725f696428012c543a3a4d656d62657249640002508c416c6c6f7720616e79207573657220746f2072656d6f766520616e206163636f756e740038507265636f6e646974696f6e733a802d20746f6b656e2062792060746f6b656e5f696460206d757374206578697374d02d20616e206163636f756e74206d75737420657869737420666f722060746f6b656e5f696460207820606d656d6265725f69646015012d206966205065726d697373696f6e656420746f6b656e3a20606f726967696e60207369676e6572206d75737420626520606d656d6265725f696460206d656d6265722773502020636f6e74726f6c6c6572206163636f756e74ec2d2060746f6b656e5f696460207820606d656d6265725f696460206163636f756e74206d75737420626520616e20656d707479206163636f756e7478202028606163636f756e745f646174612e616d6f756e7460203d3d2030293c506f7374636f6e646974696f6e733a1d012d204163636f756e7420696e666f726d6174696f6e20666f722060746f6b656e5f696460207820606d656d6265725f6964602072656d6f7665642066726f6d2073746f72616765dc2d20626c6f617420626f6e6420726566756e64656420746f20606d656d6265725f69646020636f6e74726f6c6c6572206163636f756e74cc2020286f722060626c6f61745f626f6e642e72657061796d656e745f726573747269637465645f746f60206163636f756e742900203c7765696768743e001c604f2028312960142d2044423ad820202d20604f28312960202d20646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e386a6f696e5f77686974656c6973740c01246d656d6265725f696428012c543a3a4d656d6265724964000120746f6b656e5f6964280128543a3a546f6b656e496400011470726f6f66510601404d65726b6c6550726f6f664f663c543e00034c11014a6f696e2077686974656c69737420666f72207065726d697373696f6e656420636173653a207573656420746f20616464206163636f756e747320666f7220746f6b656e38507265636f6e646974696f6e733a682d2027746f6b656e5f696427206d7573742062652076616c6964f42d20606f726967696e60207369676e6572206d757374206265206120636f6e74726f6c6c6572206163636f756e74206f6620606d656d6265725f696460c02d206163636f756e7420666f7220606d656d6265725f696460206d757374206e6f7420616c726561647920657869737409012d207472616e7366657220706f6c69637920697320605065726d697373696f6e65646020616e64206d65726b6c652070726f6f66206d7573742062652076616c6964003c506f7374636f6e646974696f6e733af42d206163636f756e7420666f7220606d656d6265725f696460206372656174656420616e6420616464656420746f2070616c6c65742073746f72616765e82d2060626c6f61745f626f6e6460207472616e736665727265642066726f6d2073656e64657220746f207472656173757279206163636f756e7400203c7765696768743e002423232057656967687438604f20284829602077686572653a802d2060486020697320746865206c656e677468206f66206070726f6f662e3060142d2044423ad820202d20604f28312960202d20646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5c70757263686173655f746f6b656e735f6f6e5f73616c650c0120746f6b656e5f6964280128543a3a546f6b656e49640001246d656d6265725f696428012c543a3a4d656d6265724964000118616d6f756e74180144546f6b656e42616c616e63654f663c543e0004ec94507572636861736520746f6b656e73206f6e2061637469766520746f6b656e2073616c652e0038507265636f6e646974696f6e733a802d20746f6b656e2062792060746f6b656e5f696460206d757374206578697374d02d20746f6b656e2062792060746f6b656e5f696460206d75737420626520696e204f66666572696e6753746174653a3a53616c65ec2d2060616d6f756e74602063616e6e6f7420657863656564206e756d626572206f6620746f6b656e732072656d61696e696e67206f6e2073616c6509012d20606f726967696e60207369676e6572206d75737420626520636f6e74726f6c6c6572206163636f756e74206f6620606d656d6265725f696460206d656d626572a42d2073656e646572277320617661696c61626c65204a4f592062616c616e6365206d7573742062653aec20202d203e3d20606a6f795f6578697374656e7469616c5f6465706f736974202b20616d6f756e74202a2073616c652e756e69745f70726963656080202020206966204163636f756e744461746120616c7265616479206578697374210120202d203e3d20606a6f795f6578697374656e7469616c5f6465706f736974202b20616d6f756e74202a2073616c652e756e69745f7072696365202b20626c6f61745f626f6e646084202020206966204163636f756e744461746120646f6573206e6f7420657869737435012d206c657420606665655f616d6f756e7460206265206073616c655f706c6174666f726d5f6665652e6d756c5f666c6f6f7228616d6f756e74202a2073616c652e756e69745f7072696365296059012d206966206073616c652e6561726e696e67735f64657374696e6174696f6e2e69735f736f6d6528296020616e64206073616c652e6561726e696e67735f64657374696e6174696f6e60206163636f756e74206861733c20207a65726f2062616c616e63653a390120202d2074686520616d6f756e7420746f206265207472616e736665727265642066726f6d206073656e6465726020746f206073616c652e6561726e696e67735f64657374696e6174696f6e602c4d0120202020776869636820697320657175616c20746f2060616d6f756e74202a2073616c652e756e69745f7072696365202d206665655f616d6f756e74602c206d7573742062652067726561746572207468616e7420202020606a6f795f6578697374656e7469616c5f6465706f7369746031012d20746f74616c206e756d626572206f6620746f6b656e7320616c72656164792070757263686173656420627920746865206d656d626572206f6e207468652063757272656e742073616c65f82020504c55532060616d6f756e7460206d757374206e6f74206578636565642073616c6527732070757263686173652063617020706572206d656d626572602d206966205065726d697373696f6e656420746f6b656e3a010120202d204163636f756e74496e666f4279546f6b656e416e644d656d62657228746f6b656e5f69642c20266d656d6265725f696429206d7573742065786973749c2d206966206073616c652e76657374696e675f7363686564756c652e69735f736f6d652829603ae020202d206e756d626572206f662073656e646572206163636f756e742773206f6e676f696e672076657374696e67207363686564756c6573cc202020206d757374206265203c204d617856657374696e675363686564756c65735065724163636f756e74506572546f6b656e003c506f7374636f6e646974696f6e733aac2d206966206073616c652e6561726e696e67735f64657374696e6174696f6e2e69735f736f6d652829603a4d0120202d2060616d6f756e74202a2073616c652e756e69745f7072696365202d206665655f616d6f756e7460204a4f5920746f6b656e7320617265207472616e7366657265642066726f6d206073656e646572608820202020746f206073616c652e6561726e696e67735f64657374696e6174696f6e60d420202d20606665655f616d6f756e7460204a4f5920697320736c61736865642066726f6d206073656e646572602062616c616e6365ac2d206966206073616c652e6561726e696e67735f64657374696e6174696f6e2e69735f6e6f6e652829603a0d0120202d2060616d6f756e74202a2073616c652e756e69745f707269636560204a4f5920697320736c61736865642066726f6d206073656e646572602062616c616e636549012d206966206e657720746f6b656e206163636f756e7420637265617465643a2060626c6f61745f626f6e6460207472616e736665727265642066726f6d206073656e6465726020746f2074726561737572799c2d206966206073616c652e76657374696e675f7363686564756c652e69735f736f6d652829603a0d0120202d20696620627579657220686173206e6f206076657374696e675f7363686564756c65602072656c6174656420746f207468652063757272656e742073616c653a5d01202020202d2061206e65772076657374696e67207363686564756c6520286073616c652e6765745f76657374696e675f7363686564756c652870757263686173655f616d6f756e7429602920697320616464656420746f80202020202020627579657227732060766573696e675f7363686564756c6573605501202020202d20736f6d652066696e69736865642076657374696e67207363686564756c652069732072656d6f7665642066726f6d2062757965722773206163636f756e745f6461746120696e20636173652074686559012020202020206e756d626572206f6620627579657227732076657374696e675f7363686564756c657320776173203d3d204d617856657374696e675363686564756c65735065724163636f756e74506572546f6b656e290120202d20696620627579657220616c7265616479206861732061206076657374696e675f7363686564756c65602072656c6174656420746f207468652063757272656e742073616c653afc202020202d2063757272656e742076657374696e67207363686564756c6527732060636c6966665f616d6f756e746020697320696e63726561736564206279fc2020202020206073616c652e6765745f76657374696e675f7363686564756c652870757263686173655f616d6f756e74292e636c6966665f616d6f756e74602901202020202d2063757272656e742076657374696e67207363686564756c6527732060706f73745f636c6966665f746f74616c5f616d6f756e746020697320696e6372656173656420627929012020202020206073616c652e6765745f76657374696e675f7363686564756c652870757263686173655f616d6f756e74292e706f73745f636c6966665f746f74616c5f616d6f756e74609c2d206966206073616c652e76657374696e675f7363686564756c652e69735f6e6f6e652829603ad820202d2062757965722773206163636f756e7420746f6b656e20616d6f756e7420696e637265617365642062792060616d6f756e746055012d2069662060746f6b656e5f646174612e73616c652e7175616e746974795f6c656674202d20616d6f756e74203d3d20306020616e64206073616c652e6175746f5f66696e616c697a6560206973206074727565604101202060746f6b656e5f646174612e73616c65602069732073657420746f204e6f6e652c206f74686572776973652060746f6b656e5f646174612e73616c652e7175616e746974795f6c65667460206973350120206465637265617365642062792060616d6f756e746020616e642060746f6b656e5f646174612e73616c652e66756e64735f636f6c6c65637465646020696e20696e6372656173656420627970202060616d6f756e74202a2073616c652e756e69745f70726963656000203c7765696768743e00242323205765696768741c604f2028312960142d2044423ad820202d20604f28312960202d20646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5070617274696369706174655f696e5f73706c69740c0120746f6b656e5f6964280128543a3a546f6b656e49640001246d656d6265725f696428012c543a3a4d656d6265724964000118616d6f756e74180144546f6b656e42616c616e63654f663c543e000568f0506172746963697061746520696e20746865202a6c61746573742a20746f6b656e20726576656e75652073706c697420286966206f6e676f696e672938507265636f6e646974696f6e733a8c2d2060746f6b656e60206d75737420657869737420666f722060746f6b656e5f696460fc2d20606f726967696e60207369676e6572206d75737420626520606d656d6265725f696460206d656d62657220636f6e74726f6c6c6572206163636f756e74582d2060616d6f756e7460206d757374206265203e2030cc2d20606163636f756e7460206d7573742065786973742020666f72206028746f6b656e5f69642c206d656d6265725f69642960fc2d2060746f6b656e2e73706c69745f73746174757360206d7573742062652061637469766520414e44205448454e2063757272656e745f626c6f636b20696eb82020205b73706c69742e73746172742c2073706c69742e7374617274202b2073706c69745f6475726174696f6e2981012d20606163636f756e742e7374616b696e675f7374617475732e69735f6e6f6e65282960204f5220606163636f756e742e7374616b696e675f7374617475732e73706c69745f6964602072656665727320746f206120706173742073706c6974782d20606163636f756e742e616d6f756e7460203e3d2060616d6f756e74602d012d206c657420606469766964656e64203d2073706c69745f616c6c6f636174696f6e202a206163636f756e742e7374616b65645f616d6f756e74202f20746f6b656e2e737570706c79606015012020207468656e2060747265617375727960206d7573742062652061626c6520746f207472616e7366657220606469766964656e646020616d6f756e74206f66204a4f592eec202020285468697320636f6e646974696f6e20746563686e6963616c6c792c2073686f756c6420616c7761797320626520736174697366696564290038506f7374636f6e646974696f6e732d012d20606469766964656e646020616d6f756e74206f66204a4f5973207472616e736665727265642066726f6d206074726561737572795f6163636f756e746020746f206073656e6465726045012d2060746f6b656e6020726576656e75652073706c6974206469766964656e647320706179656420747261636b696e67207661726961626c6520696e6372656173656420627920606469766964656e646045012d20606163636f756e742e7374616b696e675f737461747573602073657420746f20536f6d65282e2e2920776974682060616d6f756e746020616e642060746f6b656e2e6c61746573745f73706c69746000203c7765696768743e00242323205765696768741c604f2028312960142d2044423ad820202d20604f28312960202d20646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e48657869745f726576656e75655f73706c6974080120746f6b656e5f6964280128543a3a546f6b656e49640001246d656d6265725f696428012c543a3a4d656d626572496400064cb453706c69742d70617274696369706174696e672075736572206c656176657320726576656e75652073706c697434507265636f6e646974696f6e738c2d2060746f6b656e60206d75737420657869737420666f722060746f6b656e5f696460fc2d20606f726967696e60207369676e6572206d75737420626520606d656d6265725f696460206d656d62657220636f6e74726f6c6c6572206163636f756e74c82d20606163636f756e7460206d75737420657869737420666f72206028746f6b656e5f69642c206d656d6265725f69642960902d20606163636f756e742e7374616b696e67207374617475732e69735f736f6d6528292729012d2069662060286163636f756e742e7374616b696e675f7374617475732e73706c69745f6964203d3d20746f6b656e2e6e6578745f726576656e75655f73706c69745f6964202d2031604101202020414e442060746f6b656e2e726576656e75655f73706c6974602069732061637469766529205448454e2073706c6974207374616b696e6720706572696f6420206d75737420626520656e6465640038506f7374636f6e646974696f6e73982d20606163636f756e742e7374616b696e675f737461747573602073657420746f204e6f6e6500203c7765696768743e00242323205765696768741c604f2028312960142d2044423ad820202d20604f28312960202d20646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e3d060c5070616c6c65745f70726f6a6563745f746f6b656e147479706573245472616e736665727308204d656d626572496401281c5061796d656e740141060004004506016c42547265654d61703c4d656d62657249642c205061796d656e743e000041060c5070616c6c65745f70726f6a6563745f746f6b656e1474797065731c5061796d656e74041c42616c616e6365011800040118616d6f756e7418011c42616c616e636500004506042042547265654d617008044b01280456014106000400490600000049060000024d06004d06000004082841060051060c5070616c6c65745f70726f6a6563745f746f6b656e1474797065732c4d65726b6c6550726f6f660418486173686572014904000400550601845665633c284861736865723a3a4f75747075742c204d65726b6c6553696465293e000055060000025906005906000004082c5d06005d060c5070616c6c65745f70726f6a6563745f746f6b656e147479706573284d65726b6c6553696465000108145269676874000000104c656674000100006106085c70616c6c65745f70726f706f73616c735f656e67696e651043616c6c04045400011010766f7465100120766f7465725f696428012c4d656d62657249643c543e00012c70726f706f73616c5f6964100134543a3a50726f706f73616c4964000110766f74653d030120566f74654b696e64000124726174696f6e616c6530011c5665633c75383e000028d4566f74652065787472696e7369632e20436f6e646974696f6e733a20206f726967696e206d75737420616c6c6f7720766f7465732e00203c7765696768743e002423232057656967687438604f20285229602077686572653ab42d20605260206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f722070617261656d746572732c23203c2f7765696768743e3c63616e63656c5f70726f706f73616c08012c70726f706f7365725f696428012c4d656d62657249643c543e00012c70726f706f73616c5f6964100134543a3a50726f706f73616c4964000128ac43616e63656c20612070726f706f73616c20627920697473206f726967696e616c2070726f706f7365722e00203c7765696768743e002423232057656967687438604f20284c29602077686572653ac02d20604c602069732074686520746f74616c206e756d626572206f66206c6f636b7320696e206042616c616e63657360142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e347665746f5f70726f706f73616c04012c70726f706f73616c5f6964100134543a3a50726f706f73616c4964000224785665746f20612070726f706f73616c2e204d75737420626520726f6f742e00203c7765696768743e0024232320576569676874c4604f202831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3c70726f706f7365725f72656d61726b0c012c70726f706f73616c5f6964100134543a3a50726f706f73616c496400012c70726f706f7365725f696428012c4d656d62657249643c543e00010c6d736730011c5665633c75383e0003243c50726f706f7365722052656d61726b00203c7765696768743e0024232320576569676874c4604f202831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e6506086c70616c6c65745f70726f706f73616c735f64697363757373696f6e1043616c6c040454000110206164645f706f7374100138706f73745f617574686f725f696428012c4d656d62657249643c543e0001247468726561645f696428012c543a3a54687265616449640001107465787430011c5665633c75383e0001206564697461626c65980110626f6f6c0000289441646473206120706f7374207769746820617574686f72206f726967696e20636865636b2e00203c7765696768743e002423232057656967687438604f20284c29602077686572653aa02d20604c60206973207468652073697a65206f662060746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c64656c6574655f706f737410012864656c657465725f696428012c4d656d62657249643c543e00011c706f73745f6964280124543a3a506f737449640001247468726561645f696428012c543a3a546872656164496400011068696465980110626f6f6c000128510152656d6f766520706f73742066726f6d2073746f726167652c207769746820746865206c61737420706172616d6574657220696e6469636174696e67207768657468657220746f20616c736f206869646520697428696e207468652055492e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c7570646174655f706f73740c01247468726561645f696428012c543a3a546872656164496400011c706f73745f6964280124543a3a506f737449640001107465787430011c5665633c75383e0002282d0155706461746573206120706f7374207769746820617574686f72206f726967696e20636865636b2e2055706461746520617474656d707473206e756d626572206973206c696d697465642e00203c7765696768743e002423232057656967687438604f20284c29602077686572653aa02d20604c60206973207468652073697a65206f662060746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e486368616e67655f7468726561645f6d6f64650c01246d656d6265725f696428012c4d656d62657249643c543e0001247468726561645f696428012c543a3a54687265616449640001106d6f6465450301d85468726561644d6f64653c42547265655365743c3c54206173204d656d6265727368697054797065733e3a3a4d656d62657249643e3e0003287c4368616e67657320746872656164207065726d697373696f6e206d6f64652e00203c7765696768743e0024232320576569676874dc604f2028572960206966205468726561644d6f646520697320636c6f7365206f72204f283129206f74686572776973652077686572653ad02d2060576020697320746865206e756d626572206f662077686974656c6973746564206d656d6265727320696e20606d6f646560142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e6906085870616c6c65745f70726f706f73616c735f636f6465781043616c6c0404540001043c6372656174655f70726f706f73616c08016c67656e6572616c5f70726f706f73616c5f706172616d65746572734d03017047656e6572616c50726f706f73616c506172616d65746572733c543e00014070726f706f73616c5f64657461696c735103015050726f706f73616c44657461696c734f663c543e000034450143726561746520612070726f706f73616c2c207468652074797065206f662070726f706f73616c20646570656e6473206f6e20746865206070726f706f73616c5f64657461696c73602076617269616e7400203c7765696768743e002423232057656967687458604f202854202b2044202b204929602077686572653a902d2060546020697320746865207469746c652073697a6520696e206b696c6f6279746573a82d2060446020697320746865206465736372697074696f6e2073697a6520696e206b696c6f6279746573e02d20604960206973207468652073697a65206f6620616e7920706172616d6574657220696e206070726f706f73616c5f64657461696c736084202028696e206b696c6f62797465732069662069742773206d6574616461746129142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e6d06085070616c6c65745f776f726b696e675f67726f75701043616c6c08045400044900014c2c6164645f6f70656e696e6710012c6465736372697074696f6e30011c5665633c75383e0001306f70656e696e675f747970657d03012c4f70656e696e67547970650001307374616b655f706f6c696379610301a45374616b65506f6c6963793c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e3e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e00002cc44164642061206a6f62206f70656e696e6720666f72206120726567756c617220776f726b65722f6c65616420726f6c652e490152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20616464206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e002423232057656967687438604f20284429602077686572653abc2d20604460206973207468652073697a65206f6620606465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e406170706c795f6f6e5f6f70656e696e67040104708103016c4170706c794f6e4f70656e696e67506172616d65746572733c543e000128684170706c79206f6e206120776f726b6572206f70656e696e672e002823203c7765696768743e002423232057656967687438604f20284429602077686572653ac42d20604460206973207468652073697a65206f662060702e6465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3066696c6c5f6f70656e696e670801286f70656e696e675f69642801244f70656e696e6749640001687375636365737366756c5f6170706c69636174696f6e5f6964736901015c42547265655365743c4170706c69636174696f6e49643e000228ac46696c6c206f70656e696e6720666f722074686520726567756c61722f6c65616420706f736974696f6e2e4d0152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2066696c6c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e2823203c7765696768743e002423232057656967687438604f20284129602077686572653acc2d2060416020697320746865206c656e677468206f6620607375636365737366756c5f6170706c69636174696f6e5f69647360142d2044423a242020202d204f2841292c23203c2f7765696768743e4c7570646174655f726f6c655f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e00014c6e65775f726f6c655f6163636f756e745f6964000130543a3a4163636f756e744964000324150155706461746520746865206173736f63696174656420726f6c65206163636f756e74206f66207468652061637469766520726567756c617220776f726b65722f6c6561642e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e286c656176655f726f6c65080124776f726b65725f696428012c576f726b657249643c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000424904c656176652074686520726f6c65206279207468652061637469766520776f726b65722e2823203c7765696768743e002423232057656967687438604f20285229602077686572653ab42d20605260206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e387465726d696e6174655f726f6c650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c7479450101504f7074696f6e3c42616c616e63654f663c543e3e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000528a05465726d696e617465207468652061637469766520776f726b657220627920746865206c6561642e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f207465726d696e61746520746865206c656164657220726f6c65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ad82d20605060206973207468652073697a65206070656e616c74792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c736c6173685f7374616b650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c747918013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e00062c7d01536c61736865732074686520726567756c617220776f726b6572207374616b652c2064656d616e64732061206c6561646572206f726967696e2e204e6f206c696d6974732c206e6f20616374696f6e73206f6e207a65726f207374616b652e3d01496620736c617368696e672062616c616e63652067726561746572207468616e20746865206578697374696e67207374616b65202d207374616b6520697320736c617368656420746f207a65726f2e19015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20736c61736820746865206c6561646572207374616b65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ae82d20605060206973207468652073697a65206f66206070656e616c6974792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3864656372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e00073021014465637265617365732074686520726567756c617220776f726b65722f6c656164207374616b6520616e642072657475726e73207468652072656d61696e64657220746f207468653901776f726b6572207374616b696e675f6163636f756e745f69642e2043616e2062652064656372656173656420746f207a65726f2c206e6f20616374696f6e73206f6e207a65726f207374616b652e944163636570747320746865207374616b6520616d6f756e7420746f2064656372656173652e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20646563726561736520746865206c6561646572207374616b65292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e38696e6372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e0008280501496e637265617365732074686520726567756c617220776f726b65722f6c656164207374616b652c2064656d616e6473206120776f726b6572206f726967696e2e6d014c6f636b7320746f6b656e732066726f6d2074686520776f726b6572207374616b696e675f6163636f756e745f696420657175616c20746f206e6577207374616b652e204e6f206c696d697473206f6e20746865207374616b652e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5077697468647261775f6170706c69636174696f6e0401386170706c69636174696f6e5f69642801344170706c69636174696f6e4964000924010157697468647261772074686520776f726b6572206170706c69636174696f6e2e2043616e20626520646f6e652062792074686520776f726b6572206f6e6c792e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3863616e63656c5f6f70656e696e670401286f70656e696e675f69642801244f70656e696e674964000a28dc43616e63656c20616e206f70656e696e6720666f722074686520726567756c617220776f726b65722f6c65616420706f736974696f6e2e550152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2063616e63656c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e287365745f6275646765740401286e65775f62756467657418013042616c616e63654f663c543e000b28a0536574732061206e65772062756467657420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e547570646174655f7265776172645f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e0001546e65775f7265776172645f6163636f756e745f6964000130543a3a4163636f756e744964000c2469015570646174652074686520726577617264206163636f756e74206173736f6369617465642077697468206120736574207265776172642072656c6174696f6e7368697020666f72207468652061637469766520776f726b65722e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e507570646174655f7265776172645f616d6f756e74080124776f726b65725f696428012c576f726b657249643c543e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e000d28c855706461746520746865207265776172642070657220626c6f636b20666f72207468652061637469766520776f726b65722e310152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20757064617465206c656164657227732072657761726420616d6f756e74292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3c7365745f7374617475735f7465787404012c7374617475735f746578743101013c4f7074696f6e3c5665633c75383e3e000e30b4536574732061206e657720737461747573207465787420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e002423232057656967687438604f20285329602077686572653a4d012d20605360206973207468652073697a65206f662074686520636f6e74656e7473206f6620607374617475735f746578746020696e206b696c6f6279746573207768656e206974206973206e6f74206e6f6e6500142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e447370656e645f66726f6d5f6275646765740c01286163636f756e745f6964000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000f28a85472616e73666572732073706563696669656420616d6f756e7420746f20616e79206163636f756e742e5c5265717569726573206c6561646572206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6466756e645f776f726b696e675f67726f75705f6275646765740c01246d656d6265725f696428012c4d656d62657249643c543e000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c6530011c5665633c75383e0010209846756e6420776f726b696e672067726f7570206275646765742062792061206d656d6265722e203c7765696768743e0024232320576569676874c4604f202831296020446f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c6c6561645f72656d61726b04010c6d736730011c5665633c75383e0011284c4c6561642072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e34776f726b65725f72656d61726b080124776f726b65725f696428012c576f726b657249643c543e00010c6d736730011c5665633c75383e00122854576f726b65722072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e7106085070616c6c65745f776f726b696e675f67726f75701043616c6c08045400044900014c2c6164645f6f70656e696e6710012c6465736372697074696f6e30011c5665633c75383e0001306f70656e696e675f747970657d03012c4f70656e696e67547970650001307374616b655f706f6c696379610301a45374616b65506f6c6963793c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e3e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e00002cc44164642061206a6f62206f70656e696e6720666f72206120726567756c617220776f726b65722f6c65616420726f6c652e490152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20616464206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e002423232057656967687438604f20284429602077686572653abc2d20604460206973207468652073697a65206f6620606465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e406170706c795f6f6e5f6f70656e696e67040104708103016c4170706c794f6e4f70656e696e67506172616d65746572733c543e000128684170706c79206f6e206120776f726b6572206f70656e696e672e002823203c7765696768743e002423232057656967687438604f20284429602077686572653ac42d20604460206973207468652073697a65206f662060702e6465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3066696c6c5f6f70656e696e670801286f70656e696e675f69642801244f70656e696e6749640001687375636365737366756c5f6170706c69636174696f6e5f6964736901015c42547265655365743c4170706c69636174696f6e49643e000228ac46696c6c206f70656e696e6720666f722074686520726567756c61722f6c65616420706f736974696f6e2e4d0152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2066696c6c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e2823203c7765696768743e002423232057656967687438604f20284129602077686572653acc2d2060416020697320746865206c656e677468206f6620607375636365737366756c5f6170706c69636174696f6e5f69647360142d2044423a242020202d204f2841292c23203c2f7765696768743e4c7570646174655f726f6c655f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e00014c6e65775f726f6c655f6163636f756e745f6964000130543a3a4163636f756e744964000324150155706461746520746865206173736f63696174656420726f6c65206163636f756e74206f66207468652061637469766520726567756c617220776f726b65722f6c6561642e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e286c656176655f726f6c65080124776f726b65725f696428012c576f726b657249643c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000424904c656176652074686520726f6c65206279207468652061637469766520776f726b65722e2823203c7765696768743e002423232057656967687438604f20285229602077686572653ab42d20605260206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e387465726d696e6174655f726f6c650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c7479450101504f7074696f6e3c42616c616e63654f663c543e3e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000528a05465726d696e617465207468652061637469766520776f726b657220627920746865206c6561642e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f207465726d696e61746520746865206c656164657220726f6c65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ad82d20605060206973207468652073697a65206070656e616c74792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c736c6173685f7374616b650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c747918013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e00062c7d01536c61736865732074686520726567756c617220776f726b6572207374616b652c2064656d616e64732061206c6561646572206f726967696e2e204e6f206c696d6974732c206e6f20616374696f6e73206f6e207a65726f207374616b652e3d01496620736c617368696e672062616c616e63652067726561746572207468616e20746865206578697374696e67207374616b65202d207374616b6520697320736c617368656420746f207a65726f2e19015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20736c61736820746865206c6561646572207374616b65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ae82d20605060206973207468652073697a65206f66206070656e616c6974792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3864656372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e00073021014465637265617365732074686520726567756c617220776f726b65722f6c656164207374616b6520616e642072657475726e73207468652072656d61696e64657220746f207468653901776f726b6572207374616b696e675f6163636f756e745f69642e2043616e2062652064656372656173656420746f207a65726f2c206e6f20616374696f6e73206f6e207a65726f207374616b652e944163636570747320746865207374616b6520616d6f756e7420746f2064656372656173652e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20646563726561736520746865206c6561646572207374616b65292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e38696e6372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e0008280501496e637265617365732074686520726567756c617220776f726b65722f6c656164207374616b652c2064656d616e6473206120776f726b6572206f726967696e2e6d014c6f636b7320746f6b656e732066726f6d2074686520776f726b6572207374616b696e675f6163636f756e745f696420657175616c20746f206e6577207374616b652e204e6f206c696d697473206f6e20746865207374616b652e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5077697468647261775f6170706c69636174696f6e0401386170706c69636174696f6e5f69642801344170706c69636174696f6e4964000924010157697468647261772074686520776f726b6572206170706c69636174696f6e2e2043616e20626520646f6e652062792074686520776f726b6572206f6e6c792e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3863616e63656c5f6f70656e696e670401286f70656e696e675f69642801244f70656e696e674964000a28dc43616e63656c20616e206f70656e696e6720666f722074686520726567756c617220776f726b65722f6c65616420706f736974696f6e2e550152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2063616e63656c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e287365745f6275646765740401286e65775f62756467657418013042616c616e63654f663c543e000b28a0536574732061206e65772062756467657420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e547570646174655f7265776172645f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e0001546e65775f7265776172645f6163636f756e745f6964000130543a3a4163636f756e744964000c2469015570646174652074686520726577617264206163636f756e74206173736f6369617465642077697468206120736574207265776172642072656c6174696f6e7368697020666f72207468652061637469766520776f726b65722e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e507570646174655f7265776172645f616d6f756e74080124776f726b65725f696428012c576f726b657249643c543e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e000d28c855706461746520746865207265776172642070657220626c6f636b20666f72207468652061637469766520776f726b65722e310152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20757064617465206c656164657227732072657761726420616d6f756e74292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3c7365745f7374617475735f7465787404012c7374617475735f746578743101013c4f7074696f6e3c5665633c75383e3e000e30b4536574732061206e657720737461747573207465787420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e002423232057656967687438604f20285329602077686572653a4d012d20605360206973207468652073697a65206f662074686520636f6e74656e7473206f6620607374617475735f746578746020696e206b696c6f6279746573207768656e206974206973206e6f74206e6f6e6500142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e447370656e645f66726f6d5f6275646765740c01286163636f756e745f6964000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000f28a85472616e73666572732073706563696669656420616d6f756e7420746f20616e79206163636f756e742e5c5265717569726573206c6561646572206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6466756e645f776f726b696e675f67726f75705f6275646765740c01246d656d6265725f696428012c4d656d62657249643c543e000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c6530011c5665633c75383e0010209846756e6420776f726b696e672067726f7570206275646765742062792061206d656d6265722e203c7765696768743e0024232320576569676874c4604f202831296020446f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c6c6561645f72656d61726b04010c6d736730011c5665633c75383e0011284c4c6561642072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e34776f726b65725f72656d61726b080124776f726b65725f696428012c576f726b657249643c543e00010c6d736730011c5665633c75383e00122854576f726b65722072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e7506085070616c6c65745f776f726b696e675f67726f75701043616c6c08045400044900014c2c6164645f6f70656e696e6710012c6465736372697074696f6e30011c5665633c75383e0001306f70656e696e675f747970657d03012c4f70656e696e67547970650001307374616b655f706f6c696379610301a45374616b65506f6c6963793c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e3e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e00002cc44164642061206a6f62206f70656e696e6720666f72206120726567756c617220776f726b65722f6c65616420726f6c652e490152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20616464206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e002423232057656967687438604f20284429602077686572653abc2d20604460206973207468652073697a65206f6620606465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e406170706c795f6f6e5f6f70656e696e67040104708103016c4170706c794f6e4f70656e696e67506172616d65746572733c543e000128684170706c79206f6e206120776f726b6572206f70656e696e672e002823203c7765696768743e002423232057656967687438604f20284429602077686572653ac42d20604460206973207468652073697a65206f662060702e6465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3066696c6c5f6f70656e696e670801286f70656e696e675f69642801244f70656e696e6749640001687375636365737366756c5f6170706c69636174696f6e5f6964736901015c42547265655365743c4170706c69636174696f6e49643e000228ac46696c6c206f70656e696e6720666f722074686520726567756c61722f6c65616420706f736974696f6e2e4d0152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2066696c6c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e2823203c7765696768743e002423232057656967687438604f20284129602077686572653acc2d2060416020697320746865206c656e677468206f6620607375636365737366756c5f6170706c69636174696f6e5f69647360142d2044423a242020202d204f2841292c23203c2f7765696768743e4c7570646174655f726f6c655f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e00014c6e65775f726f6c655f6163636f756e745f6964000130543a3a4163636f756e744964000324150155706461746520746865206173736f63696174656420726f6c65206163636f756e74206f66207468652061637469766520726567756c617220776f726b65722f6c6561642e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e286c656176655f726f6c65080124776f726b65725f696428012c576f726b657249643c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000424904c656176652074686520726f6c65206279207468652061637469766520776f726b65722e2823203c7765696768743e002423232057656967687438604f20285229602077686572653ab42d20605260206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e387465726d696e6174655f726f6c650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c7479450101504f7074696f6e3c42616c616e63654f663c543e3e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000528a05465726d696e617465207468652061637469766520776f726b657220627920746865206c6561642e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f207465726d696e61746520746865206c656164657220726f6c65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ad82d20605060206973207468652073697a65206070656e616c74792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c736c6173685f7374616b650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c747918013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e00062c7d01536c61736865732074686520726567756c617220776f726b6572207374616b652c2064656d616e64732061206c6561646572206f726967696e2e204e6f206c696d6974732c206e6f20616374696f6e73206f6e207a65726f207374616b652e3d01496620736c617368696e672062616c616e63652067726561746572207468616e20746865206578697374696e67207374616b65202d207374616b6520697320736c617368656420746f207a65726f2e19015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20736c61736820746865206c6561646572207374616b65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ae82d20605060206973207468652073697a65206f66206070656e616c6974792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3864656372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e00073021014465637265617365732074686520726567756c617220776f726b65722f6c656164207374616b6520616e642072657475726e73207468652072656d61696e64657220746f207468653901776f726b6572207374616b696e675f6163636f756e745f69642e2043616e2062652064656372656173656420746f207a65726f2c206e6f20616374696f6e73206f6e207a65726f207374616b652e944163636570747320746865207374616b6520616d6f756e7420746f2064656372656173652e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20646563726561736520746865206c6561646572207374616b65292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e38696e6372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e0008280501496e637265617365732074686520726567756c617220776f726b65722f6c656164207374616b652c2064656d616e6473206120776f726b6572206f726967696e2e6d014c6f636b7320746f6b656e732066726f6d2074686520776f726b6572207374616b696e675f6163636f756e745f696420657175616c20746f206e6577207374616b652e204e6f206c696d697473206f6e20746865207374616b652e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5077697468647261775f6170706c69636174696f6e0401386170706c69636174696f6e5f69642801344170706c69636174696f6e4964000924010157697468647261772074686520776f726b6572206170706c69636174696f6e2e2043616e20626520646f6e652062792074686520776f726b6572206f6e6c792e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3863616e63656c5f6f70656e696e670401286f70656e696e675f69642801244f70656e696e674964000a28dc43616e63656c20616e206f70656e696e6720666f722074686520726567756c617220776f726b65722f6c65616420706f736974696f6e2e550152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2063616e63656c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e287365745f6275646765740401286e65775f62756467657418013042616c616e63654f663c543e000b28a0536574732061206e65772062756467657420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e547570646174655f7265776172645f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e0001546e65775f7265776172645f6163636f756e745f6964000130543a3a4163636f756e744964000c2469015570646174652074686520726577617264206163636f756e74206173736f6369617465642077697468206120736574207265776172642072656c6174696f6e7368697020666f72207468652061637469766520776f726b65722e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e507570646174655f7265776172645f616d6f756e74080124776f726b65725f696428012c576f726b657249643c543e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e000d28c855706461746520746865207265776172642070657220626c6f636b20666f72207468652061637469766520776f726b65722e310152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20757064617465206c656164657227732072657761726420616d6f756e74292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3c7365745f7374617475735f7465787404012c7374617475735f746578743101013c4f7074696f6e3c5665633c75383e3e000e30b4536574732061206e657720737461747573207465787420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e002423232057656967687438604f20285329602077686572653a4d012d20605360206973207468652073697a65206f662074686520636f6e74656e7473206f6620607374617475735f746578746020696e206b696c6f6279746573207768656e206974206973206e6f74206e6f6e6500142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e447370656e645f66726f6d5f6275646765740c01286163636f756e745f6964000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000f28a85472616e73666572732073706563696669656420616d6f756e7420746f20616e79206163636f756e742e5c5265717569726573206c6561646572206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6466756e645f776f726b696e675f67726f75705f6275646765740c01246d656d6265725f696428012c4d656d62657249643c543e000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c6530011c5665633c75383e0010209846756e6420776f726b696e672067726f7570206275646765742062792061206d656d6265722e203c7765696768743e0024232320576569676874c4604f202831296020446f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c6c6561645f72656d61726b04010c6d736730011c5665633c75383e0011284c4c6561642072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e34776f726b65725f72656d61726b080124776f726b65725f696428012c576f726b657249643c543e00010c6d736730011c5665633c75383e00122854576f726b65722072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e7906085070616c6c65745f776f726b696e675f67726f75701043616c6c08045400044900014c2c6164645f6f70656e696e6710012c6465736372697074696f6e30011c5665633c75383e0001306f70656e696e675f747970657d03012c4f70656e696e67547970650001307374616b655f706f6c696379610301a45374616b65506f6c6963793c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e3e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e00002cc44164642061206a6f62206f70656e696e6720666f72206120726567756c617220776f726b65722f6c65616420726f6c652e490152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20616464206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e002423232057656967687438604f20284429602077686572653abc2d20604460206973207468652073697a65206f6620606465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e406170706c795f6f6e5f6f70656e696e67040104708103016c4170706c794f6e4f70656e696e67506172616d65746572733c543e000128684170706c79206f6e206120776f726b6572206f70656e696e672e002823203c7765696768743e002423232057656967687438604f20284429602077686572653ac42d20604460206973207468652073697a65206f662060702e6465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3066696c6c5f6f70656e696e670801286f70656e696e675f69642801244f70656e696e6749640001687375636365737366756c5f6170706c69636174696f6e5f6964736901015c42547265655365743c4170706c69636174696f6e49643e000228ac46696c6c206f70656e696e6720666f722074686520726567756c61722f6c65616420706f736974696f6e2e4d0152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2066696c6c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e2823203c7765696768743e002423232057656967687438604f20284129602077686572653acc2d2060416020697320746865206c656e677468206f6620607375636365737366756c5f6170706c69636174696f6e5f69647360142d2044423a242020202d204f2841292c23203c2f7765696768743e4c7570646174655f726f6c655f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e00014c6e65775f726f6c655f6163636f756e745f6964000130543a3a4163636f756e744964000324150155706461746520746865206173736f63696174656420726f6c65206163636f756e74206f66207468652061637469766520726567756c617220776f726b65722f6c6561642e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e286c656176655f726f6c65080124776f726b65725f696428012c576f726b657249643c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000424904c656176652074686520726f6c65206279207468652061637469766520776f726b65722e2823203c7765696768743e002423232057656967687438604f20285229602077686572653ab42d20605260206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e387465726d696e6174655f726f6c650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c7479450101504f7074696f6e3c42616c616e63654f663c543e3e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000528a05465726d696e617465207468652061637469766520776f726b657220627920746865206c6561642e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f207465726d696e61746520746865206c656164657220726f6c65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ad82d20605060206973207468652073697a65206070656e616c74792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c736c6173685f7374616b650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c747918013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e00062c7d01536c61736865732074686520726567756c617220776f726b6572207374616b652c2064656d616e64732061206c6561646572206f726967696e2e204e6f206c696d6974732c206e6f20616374696f6e73206f6e207a65726f207374616b652e3d01496620736c617368696e672062616c616e63652067726561746572207468616e20746865206578697374696e67207374616b65202d207374616b6520697320736c617368656420746f207a65726f2e19015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20736c61736820746865206c6561646572207374616b65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ae82d20605060206973207468652073697a65206f66206070656e616c6974792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3864656372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e00073021014465637265617365732074686520726567756c617220776f726b65722f6c656164207374616b6520616e642072657475726e73207468652072656d61696e64657220746f207468653901776f726b6572207374616b696e675f6163636f756e745f69642e2043616e2062652064656372656173656420746f207a65726f2c206e6f20616374696f6e73206f6e207a65726f207374616b652e944163636570747320746865207374616b6520616d6f756e7420746f2064656372656173652e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20646563726561736520746865206c6561646572207374616b65292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e38696e6372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e0008280501496e637265617365732074686520726567756c617220776f726b65722f6c656164207374616b652c2064656d616e6473206120776f726b6572206f726967696e2e6d014c6f636b7320746f6b656e732066726f6d2074686520776f726b6572207374616b696e675f6163636f756e745f696420657175616c20746f206e6577207374616b652e204e6f206c696d697473206f6e20746865207374616b652e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5077697468647261775f6170706c69636174696f6e0401386170706c69636174696f6e5f69642801344170706c69636174696f6e4964000924010157697468647261772074686520776f726b6572206170706c69636174696f6e2e2043616e20626520646f6e652062792074686520776f726b6572206f6e6c792e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3863616e63656c5f6f70656e696e670401286f70656e696e675f69642801244f70656e696e674964000a28dc43616e63656c20616e206f70656e696e6720666f722074686520726567756c617220776f726b65722f6c65616420706f736974696f6e2e550152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2063616e63656c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e287365745f6275646765740401286e65775f62756467657418013042616c616e63654f663c543e000b28a0536574732061206e65772062756467657420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e547570646174655f7265776172645f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e0001546e65775f7265776172645f6163636f756e745f6964000130543a3a4163636f756e744964000c2469015570646174652074686520726577617264206163636f756e74206173736f6369617465642077697468206120736574207265776172642072656c6174696f6e7368697020666f72207468652061637469766520776f726b65722e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e507570646174655f7265776172645f616d6f756e74080124776f726b65725f696428012c576f726b657249643c543e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e000d28c855706461746520746865207265776172642070657220626c6f636b20666f72207468652061637469766520776f726b65722e310152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20757064617465206c656164657227732072657761726420616d6f756e74292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3c7365745f7374617475735f7465787404012c7374617475735f746578743101013c4f7074696f6e3c5665633c75383e3e000e30b4536574732061206e657720737461747573207465787420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e002423232057656967687438604f20285329602077686572653a4d012d20605360206973207468652073697a65206f662074686520636f6e74656e7473206f6620607374617475735f746578746020696e206b696c6f6279746573207768656e206974206973206e6f74206e6f6e6500142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e447370656e645f66726f6d5f6275646765740c01286163636f756e745f6964000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000f28a85472616e73666572732073706563696669656420616d6f756e7420746f20616e79206163636f756e742e5c5265717569726573206c6561646572206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6466756e645f776f726b696e675f67726f75705f6275646765740c01246d656d6265725f696428012c4d656d62657249643c543e000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c6530011c5665633c75383e0010209846756e6420776f726b696e672067726f7570206275646765742062792061206d656d6265722e203c7765696768743e0024232320576569676874c4604f202831296020446f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c6c6561645f72656d61726b04010c6d736730011c5665633c75383e0011284c4c6561642072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e34776f726b65725f72656d61726b080124776f726b65725f696428012c576f726b657249643c543e00010c6d736730011c5665633c75383e00122854576f726b65722072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e7d06085070616c6c65745f776f726b696e675f67726f75701043616c6c08045400044900014c2c6164645f6f70656e696e6710012c6465736372697074696f6e30011c5665633c75383e0001306f70656e696e675f747970657d03012c4f70656e696e67547970650001307374616b655f706f6c696379610301a45374616b65506f6c6963793c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e3e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e00002cc44164642061206a6f62206f70656e696e6720666f72206120726567756c617220776f726b65722f6c65616420726f6c652e490152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20616464206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e002423232057656967687438604f20284429602077686572653abc2d20604460206973207468652073697a65206f6620606465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e406170706c795f6f6e5f6f70656e696e67040104708103016c4170706c794f6e4f70656e696e67506172616d65746572733c543e000128684170706c79206f6e206120776f726b6572206f70656e696e672e002823203c7765696768743e002423232057656967687438604f20284429602077686572653ac42d20604460206973207468652073697a65206f662060702e6465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3066696c6c5f6f70656e696e670801286f70656e696e675f69642801244f70656e696e6749640001687375636365737366756c5f6170706c69636174696f6e5f6964736901015c42547265655365743c4170706c69636174696f6e49643e000228ac46696c6c206f70656e696e6720666f722074686520726567756c61722f6c65616420706f736974696f6e2e4d0152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2066696c6c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e2823203c7765696768743e002423232057656967687438604f20284129602077686572653acc2d2060416020697320746865206c656e677468206f6620607375636365737366756c5f6170706c69636174696f6e5f69647360142d2044423a242020202d204f2841292c23203c2f7765696768743e4c7570646174655f726f6c655f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e00014c6e65775f726f6c655f6163636f756e745f6964000130543a3a4163636f756e744964000324150155706461746520746865206173736f63696174656420726f6c65206163636f756e74206f66207468652061637469766520726567756c617220776f726b65722f6c6561642e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e286c656176655f726f6c65080124776f726b65725f696428012c576f726b657249643c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000424904c656176652074686520726f6c65206279207468652061637469766520776f726b65722e2823203c7765696768743e002423232057656967687438604f20285229602077686572653ab42d20605260206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e387465726d696e6174655f726f6c650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c7479450101504f7074696f6e3c42616c616e63654f663c543e3e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000528a05465726d696e617465207468652061637469766520776f726b657220627920746865206c6561642e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f207465726d696e61746520746865206c656164657220726f6c65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ad82d20605060206973207468652073697a65206070656e616c74792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c736c6173685f7374616b650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c747918013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e00062c7d01536c61736865732074686520726567756c617220776f726b6572207374616b652c2064656d616e64732061206c6561646572206f726967696e2e204e6f206c696d6974732c206e6f20616374696f6e73206f6e207a65726f207374616b652e3d01496620736c617368696e672062616c616e63652067726561746572207468616e20746865206578697374696e67207374616b65202d207374616b6520697320736c617368656420746f207a65726f2e19015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20736c61736820746865206c6561646572207374616b65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ae82d20605060206973207468652073697a65206f66206070656e616c6974792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3864656372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e00073021014465637265617365732074686520726567756c617220776f726b65722f6c656164207374616b6520616e642072657475726e73207468652072656d61696e64657220746f207468653901776f726b6572207374616b696e675f6163636f756e745f69642e2043616e2062652064656372656173656420746f207a65726f2c206e6f20616374696f6e73206f6e207a65726f207374616b652e944163636570747320746865207374616b6520616d6f756e7420746f2064656372656173652e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20646563726561736520746865206c6561646572207374616b65292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e38696e6372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e0008280501496e637265617365732074686520726567756c617220776f726b65722f6c656164207374616b652c2064656d616e6473206120776f726b6572206f726967696e2e6d014c6f636b7320746f6b656e732066726f6d2074686520776f726b6572207374616b696e675f6163636f756e745f696420657175616c20746f206e6577207374616b652e204e6f206c696d697473206f6e20746865207374616b652e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5077697468647261775f6170706c69636174696f6e0401386170706c69636174696f6e5f69642801344170706c69636174696f6e4964000924010157697468647261772074686520776f726b6572206170706c69636174696f6e2e2043616e20626520646f6e652062792074686520776f726b6572206f6e6c792e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3863616e63656c5f6f70656e696e670401286f70656e696e675f69642801244f70656e696e674964000a28dc43616e63656c20616e206f70656e696e6720666f722074686520726567756c617220776f726b65722f6c65616420706f736974696f6e2e550152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2063616e63656c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e287365745f6275646765740401286e65775f62756467657418013042616c616e63654f663c543e000b28a0536574732061206e65772062756467657420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e547570646174655f7265776172645f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e0001546e65775f7265776172645f6163636f756e745f6964000130543a3a4163636f756e744964000c2469015570646174652074686520726577617264206163636f756e74206173736f6369617465642077697468206120736574207265776172642072656c6174696f6e7368697020666f72207468652061637469766520776f726b65722e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e507570646174655f7265776172645f616d6f756e74080124776f726b65725f696428012c576f726b657249643c543e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e000d28c855706461746520746865207265776172642070657220626c6f636b20666f72207468652061637469766520776f726b65722e310152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20757064617465206c656164657227732072657761726420616d6f756e74292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3c7365745f7374617475735f7465787404012c7374617475735f746578743101013c4f7074696f6e3c5665633c75383e3e000e30b4536574732061206e657720737461747573207465787420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e002423232057656967687438604f20285329602077686572653a4d012d20605360206973207468652073697a65206f662074686520636f6e74656e7473206f6620607374617475735f746578746020696e206b696c6f6279746573207768656e206974206973206e6f74206e6f6e6500142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e447370656e645f66726f6d5f6275646765740c01286163636f756e745f6964000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000f28a85472616e73666572732073706563696669656420616d6f756e7420746f20616e79206163636f756e742e5c5265717569726573206c6561646572206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6466756e645f776f726b696e675f67726f75705f6275646765740c01246d656d6265725f696428012c4d656d62657249643c543e000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c6530011c5665633c75383e0010209846756e6420776f726b696e672067726f7570206275646765742062792061206d656d6265722e203c7765696768743e0024232320576569676874c4604f202831296020446f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c6c6561645f72656d61726b04010c6d736730011c5665633c75383e0011284c4c6561642072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e34776f726b65725f72656d61726b080124776f726b65725f696428012c576f726b657249643c543e00010c6d736730011c5665633c75383e00122854576f726b65722072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e8106085070616c6c65745f776f726b696e675f67726f75701043616c6c08045400044900014c2c6164645f6f70656e696e6710012c6465736372697074696f6e30011c5665633c75383e0001306f70656e696e675f747970657d03012c4f70656e696e67547970650001307374616b655f706f6c696379610301a45374616b65506f6c6963793c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e3e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e00002cc44164642061206a6f62206f70656e696e6720666f72206120726567756c617220776f726b65722f6c65616420726f6c652e490152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20616464206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e002423232057656967687438604f20284429602077686572653abc2d20604460206973207468652073697a65206f6620606465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e406170706c795f6f6e5f6f70656e696e67040104708103016c4170706c794f6e4f70656e696e67506172616d65746572733c543e000128684170706c79206f6e206120776f726b6572206f70656e696e672e002823203c7765696768743e002423232057656967687438604f20284429602077686572653ac42d20604460206973207468652073697a65206f662060702e6465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3066696c6c5f6f70656e696e670801286f70656e696e675f69642801244f70656e696e6749640001687375636365737366756c5f6170706c69636174696f6e5f6964736901015c42547265655365743c4170706c69636174696f6e49643e000228ac46696c6c206f70656e696e6720666f722074686520726567756c61722f6c65616420706f736974696f6e2e4d0152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2066696c6c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e2823203c7765696768743e002423232057656967687438604f20284129602077686572653acc2d2060416020697320746865206c656e677468206f6620607375636365737366756c5f6170706c69636174696f6e5f69647360142d2044423a242020202d204f2841292c23203c2f7765696768743e4c7570646174655f726f6c655f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e00014c6e65775f726f6c655f6163636f756e745f6964000130543a3a4163636f756e744964000324150155706461746520746865206173736f63696174656420726f6c65206163636f756e74206f66207468652061637469766520726567756c617220776f726b65722f6c6561642e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e286c656176655f726f6c65080124776f726b65725f696428012c576f726b657249643c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000424904c656176652074686520726f6c65206279207468652061637469766520776f726b65722e2823203c7765696768743e002423232057656967687438604f20285229602077686572653ab42d20605260206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e387465726d696e6174655f726f6c650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c7479450101504f7074696f6e3c42616c616e63654f663c543e3e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000528a05465726d696e617465207468652061637469766520776f726b657220627920746865206c6561642e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f207465726d696e61746520746865206c656164657220726f6c65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ad82d20605060206973207468652073697a65206070656e616c74792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c736c6173685f7374616b650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c747918013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e00062c7d01536c61736865732074686520726567756c617220776f726b6572207374616b652c2064656d616e64732061206c6561646572206f726967696e2e204e6f206c696d6974732c206e6f20616374696f6e73206f6e207a65726f207374616b652e3d01496620736c617368696e672062616c616e63652067726561746572207468616e20746865206578697374696e67207374616b65202d207374616b6520697320736c617368656420746f207a65726f2e19015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20736c61736820746865206c6561646572207374616b65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ae82d20605060206973207468652073697a65206f66206070656e616c6974792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3864656372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e00073021014465637265617365732074686520726567756c617220776f726b65722f6c656164207374616b6520616e642072657475726e73207468652072656d61696e64657220746f207468653901776f726b6572207374616b696e675f6163636f756e745f69642e2043616e2062652064656372656173656420746f207a65726f2c206e6f20616374696f6e73206f6e207a65726f207374616b652e944163636570747320746865207374616b6520616d6f756e7420746f2064656372656173652e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20646563726561736520746865206c6561646572207374616b65292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e38696e6372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e0008280501496e637265617365732074686520726567756c617220776f726b65722f6c656164207374616b652c2064656d616e6473206120776f726b6572206f726967696e2e6d014c6f636b7320746f6b656e732066726f6d2074686520776f726b6572207374616b696e675f6163636f756e745f696420657175616c20746f206e6577207374616b652e204e6f206c696d697473206f6e20746865207374616b652e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5077697468647261775f6170706c69636174696f6e0401386170706c69636174696f6e5f69642801344170706c69636174696f6e4964000924010157697468647261772074686520776f726b6572206170706c69636174696f6e2e2043616e20626520646f6e652062792074686520776f726b6572206f6e6c792e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3863616e63656c5f6f70656e696e670401286f70656e696e675f69642801244f70656e696e674964000a28dc43616e63656c20616e206f70656e696e6720666f722074686520726567756c617220776f726b65722f6c65616420706f736974696f6e2e550152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2063616e63656c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e287365745f6275646765740401286e65775f62756467657418013042616c616e63654f663c543e000b28a0536574732061206e65772062756467657420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e547570646174655f7265776172645f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e0001546e65775f7265776172645f6163636f756e745f6964000130543a3a4163636f756e744964000c2469015570646174652074686520726577617264206163636f756e74206173736f6369617465642077697468206120736574207265776172642072656c6174696f6e7368697020666f72207468652061637469766520776f726b65722e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e507570646174655f7265776172645f616d6f756e74080124776f726b65725f696428012c576f726b657249643c543e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e000d28c855706461746520746865207265776172642070657220626c6f636b20666f72207468652061637469766520776f726b65722e310152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20757064617465206c656164657227732072657761726420616d6f756e74292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3c7365745f7374617475735f7465787404012c7374617475735f746578743101013c4f7074696f6e3c5665633c75383e3e000e30b4536574732061206e657720737461747573207465787420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e002423232057656967687438604f20285329602077686572653a4d012d20605360206973207468652073697a65206f662074686520636f6e74656e7473206f6620607374617475735f746578746020696e206b696c6f6279746573207768656e206974206973206e6f74206e6f6e6500142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e447370656e645f66726f6d5f6275646765740c01286163636f756e745f6964000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000f28a85472616e73666572732073706563696669656420616d6f756e7420746f20616e79206163636f756e742e5c5265717569726573206c6561646572206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6466756e645f776f726b696e675f67726f75705f6275646765740c01246d656d6265725f696428012c4d656d62657249643c543e000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c6530011c5665633c75383e0010209846756e6420776f726b696e672067726f7570206275646765742062792061206d656d6265722e203c7765696768743e0024232320576569676874c4604f202831296020446f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c6c6561645f72656d61726b04010c6d736730011c5665633c75383e0011284c4c6561642072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e34776f726b65725f72656d61726b080124776f726b65725f696428012c576f726b657249643c543e00010c6d736730011c5665633c75383e00122854576f726b65722072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e8506085070616c6c65745f776f726b696e675f67726f75701043616c6c08045400044900014c2c6164645f6f70656e696e6710012c6465736372697074696f6e30011c5665633c75383e0001306f70656e696e675f747970657d03012c4f70656e696e67547970650001307374616b655f706f6c696379610301a45374616b65506f6c6963793c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e3e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e00002cc44164642061206a6f62206f70656e696e6720666f72206120726567756c617220776f726b65722f6c65616420726f6c652e490152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20616464206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e002423232057656967687438604f20284429602077686572653abc2d20604460206973207468652073697a65206f6620606465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e406170706c795f6f6e5f6f70656e696e67040104708103016c4170706c794f6e4f70656e696e67506172616d65746572733c543e000128684170706c79206f6e206120776f726b6572206f70656e696e672e002823203c7765696768743e002423232057656967687438604f20284429602077686572653ac42d20604460206973207468652073697a65206f662060702e6465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3066696c6c5f6f70656e696e670801286f70656e696e675f69642801244f70656e696e6749640001687375636365737366756c5f6170706c69636174696f6e5f6964736901015c42547265655365743c4170706c69636174696f6e49643e000228ac46696c6c206f70656e696e6720666f722074686520726567756c61722f6c65616420706f736974696f6e2e4d0152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2066696c6c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e2823203c7765696768743e002423232057656967687438604f20284129602077686572653acc2d2060416020697320746865206c656e677468206f6620607375636365737366756c5f6170706c69636174696f6e5f69647360142d2044423a242020202d204f2841292c23203c2f7765696768743e4c7570646174655f726f6c655f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e00014c6e65775f726f6c655f6163636f756e745f6964000130543a3a4163636f756e744964000324150155706461746520746865206173736f63696174656420726f6c65206163636f756e74206f66207468652061637469766520726567756c617220776f726b65722f6c6561642e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e286c656176655f726f6c65080124776f726b65725f696428012c576f726b657249643c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000424904c656176652074686520726f6c65206279207468652061637469766520776f726b65722e2823203c7765696768743e002423232057656967687438604f20285229602077686572653ab42d20605260206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e387465726d696e6174655f726f6c650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c7479450101504f7074696f6e3c42616c616e63654f663c543e3e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000528a05465726d696e617465207468652061637469766520776f726b657220627920746865206c6561642e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f207465726d696e61746520746865206c656164657220726f6c65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ad82d20605060206973207468652073697a65206070656e616c74792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c736c6173685f7374616b650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c747918013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e00062c7d01536c61736865732074686520726567756c617220776f726b6572207374616b652c2064656d616e64732061206c6561646572206f726967696e2e204e6f206c696d6974732c206e6f20616374696f6e73206f6e207a65726f207374616b652e3d01496620736c617368696e672062616c616e63652067726561746572207468616e20746865206578697374696e67207374616b65202d207374616b6520697320736c617368656420746f207a65726f2e19015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20736c61736820746865206c6561646572207374616b65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ae82d20605060206973207468652073697a65206f66206070656e616c6974792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3864656372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e00073021014465637265617365732074686520726567756c617220776f726b65722f6c656164207374616b6520616e642072657475726e73207468652072656d61696e64657220746f207468653901776f726b6572207374616b696e675f6163636f756e745f69642e2043616e2062652064656372656173656420746f207a65726f2c206e6f20616374696f6e73206f6e207a65726f207374616b652e944163636570747320746865207374616b6520616d6f756e7420746f2064656372656173652e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20646563726561736520746865206c6561646572207374616b65292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e38696e6372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e0008280501496e637265617365732074686520726567756c617220776f726b65722f6c656164207374616b652c2064656d616e6473206120776f726b6572206f726967696e2e6d014c6f636b7320746f6b656e732066726f6d2074686520776f726b6572207374616b696e675f6163636f756e745f696420657175616c20746f206e6577207374616b652e204e6f206c696d697473206f6e20746865207374616b652e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5077697468647261775f6170706c69636174696f6e0401386170706c69636174696f6e5f69642801344170706c69636174696f6e4964000924010157697468647261772074686520776f726b6572206170706c69636174696f6e2e2043616e20626520646f6e652062792074686520776f726b6572206f6e6c792e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3863616e63656c5f6f70656e696e670401286f70656e696e675f69642801244f70656e696e674964000a28dc43616e63656c20616e206f70656e696e6720666f722074686520726567756c617220776f726b65722f6c65616420706f736974696f6e2e550152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2063616e63656c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e287365745f6275646765740401286e65775f62756467657418013042616c616e63654f663c543e000b28a0536574732061206e65772062756467657420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e547570646174655f7265776172645f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e0001546e65775f7265776172645f6163636f756e745f6964000130543a3a4163636f756e744964000c2469015570646174652074686520726577617264206163636f756e74206173736f6369617465642077697468206120736574207265776172642072656c6174696f6e7368697020666f72207468652061637469766520776f726b65722e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e507570646174655f7265776172645f616d6f756e74080124776f726b65725f696428012c576f726b657249643c543e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e000d28c855706461746520746865207265776172642070657220626c6f636b20666f72207468652061637469766520776f726b65722e310152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20757064617465206c656164657227732072657761726420616d6f756e74292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3c7365745f7374617475735f7465787404012c7374617475735f746578743101013c4f7074696f6e3c5665633c75383e3e000e30b4536574732061206e657720737461747573207465787420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e002423232057656967687438604f20285329602077686572653a4d012d20605360206973207468652073697a65206f662074686520636f6e74656e7473206f6620607374617475735f746578746020696e206b696c6f6279746573207768656e206974206973206e6f74206e6f6e6500142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e447370656e645f66726f6d5f6275646765740c01286163636f756e745f6964000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000f28a85472616e73666572732073706563696669656420616d6f756e7420746f20616e79206163636f756e742e5c5265717569726573206c6561646572206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6466756e645f776f726b696e675f67726f75705f6275646765740c01246d656d6265725f696428012c4d656d62657249643c543e000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c6530011c5665633c75383e0010209846756e6420776f726b696e672067726f7570206275646765742062792061206d656d6265722e203c7765696768743e0024232320576569676874c4604f202831296020446f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c6c6561645f72656d61726b04010c6d736730011c5665633c75383e0011284c4c6561642072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e34776f726b65725f72656d61726b080124776f726b65725f696428012c576f726b657249643c543e00010c6d736730011c5665633c75383e00122854576f726b65722072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e8906085070616c6c65745f776f726b696e675f67726f75701043616c6c08045400044900014c2c6164645f6f70656e696e6710012c6465736372697074696f6e30011c5665633c75383e0001306f70656e696e675f747970657d03012c4f70656e696e67547970650001307374616b655f706f6c696379610301a45374616b65506f6c6963793c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e3e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e00002cc44164642061206a6f62206f70656e696e6720666f72206120726567756c617220776f726b65722f6c65616420726f6c652e490152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20616464206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e002423232057656967687438604f20284429602077686572653abc2d20604460206973207468652073697a65206f6620606465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e406170706c795f6f6e5f6f70656e696e67040104708103016c4170706c794f6e4f70656e696e67506172616d65746572733c543e000128684170706c79206f6e206120776f726b6572206f70656e696e672e002823203c7765696768743e002423232057656967687438604f20284429602077686572653ac42d20604460206973207468652073697a65206f662060702e6465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3066696c6c5f6f70656e696e670801286f70656e696e675f69642801244f70656e696e6749640001687375636365737366756c5f6170706c69636174696f6e5f6964736901015c42547265655365743c4170706c69636174696f6e49643e000228ac46696c6c206f70656e696e6720666f722074686520726567756c61722f6c65616420706f736974696f6e2e4d0152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2066696c6c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e2823203c7765696768743e002423232057656967687438604f20284129602077686572653acc2d2060416020697320746865206c656e677468206f6620607375636365737366756c5f6170706c69636174696f6e5f69647360142d2044423a242020202d204f2841292c23203c2f7765696768743e4c7570646174655f726f6c655f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e00014c6e65775f726f6c655f6163636f756e745f6964000130543a3a4163636f756e744964000324150155706461746520746865206173736f63696174656420726f6c65206163636f756e74206f66207468652061637469766520726567756c617220776f726b65722f6c6561642e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e286c656176655f726f6c65080124776f726b65725f696428012c576f726b657249643c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000424904c656176652074686520726f6c65206279207468652061637469766520776f726b65722e2823203c7765696768743e002423232057656967687438604f20285229602077686572653ab42d20605260206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e387465726d696e6174655f726f6c650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c7479450101504f7074696f6e3c42616c616e63654f663c543e3e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000528a05465726d696e617465207468652061637469766520776f726b657220627920746865206c6561642e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f207465726d696e61746520746865206c656164657220726f6c65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ad82d20605060206973207468652073697a65206070656e616c74792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c736c6173685f7374616b650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c747918013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e00062c7d01536c61736865732074686520726567756c617220776f726b6572207374616b652c2064656d616e64732061206c6561646572206f726967696e2e204e6f206c696d6974732c206e6f20616374696f6e73206f6e207a65726f207374616b652e3d01496620736c617368696e672062616c616e63652067726561746572207468616e20746865206578697374696e67207374616b65202d207374616b6520697320736c617368656420746f207a65726f2e19015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20736c61736820746865206c6561646572207374616b65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ae82d20605060206973207468652073697a65206f66206070656e616c6974792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3864656372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e00073021014465637265617365732074686520726567756c617220776f726b65722f6c656164207374616b6520616e642072657475726e73207468652072656d61696e64657220746f207468653901776f726b6572207374616b696e675f6163636f756e745f69642e2043616e2062652064656372656173656420746f207a65726f2c206e6f20616374696f6e73206f6e207a65726f207374616b652e944163636570747320746865207374616b6520616d6f756e7420746f2064656372656173652e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20646563726561736520746865206c6561646572207374616b65292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e38696e6372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e0008280501496e637265617365732074686520726567756c617220776f726b65722f6c656164207374616b652c2064656d616e6473206120776f726b6572206f726967696e2e6d014c6f636b7320746f6b656e732066726f6d2074686520776f726b6572207374616b696e675f6163636f756e745f696420657175616c20746f206e6577207374616b652e204e6f206c696d697473206f6e20746865207374616b652e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5077697468647261775f6170706c69636174696f6e0401386170706c69636174696f6e5f69642801344170706c69636174696f6e4964000924010157697468647261772074686520776f726b6572206170706c69636174696f6e2e2043616e20626520646f6e652062792074686520776f726b6572206f6e6c792e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3863616e63656c5f6f70656e696e670401286f70656e696e675f69642801244f70656e696e674964000a28dc43616e63656c20616e206f70656e696e6720666f722074686520726567756c617220776f726b65722f6c65616420706f736974696f6e2e550152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2063616e63656c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e287365745f6275646765740401286e65775f62756467657418013042616c616e63654f663c543e000b28a0536574732061206e65772062756467657420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e547570646174655f7265776172645f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e0001546e65775f7265776172645f6163636f756e745f6964000130543a3a4163636f756e744964000c2469015570646174652074686520726577617264206163636f756e74206173736f6369617465642077697468206120736574207265776172642072656c6174696f6e7368697020666f72207468652061637469766520776f726b65722e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e507570646174655f7265776172645f616d6f756e74080124776f726b65725f696428012c576f726b657249643c543e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e000d28c855706461746520746865207265776172642070657220626c6f636b20666f72207468652061637469766520776f726b65722e310152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20757064617465206c656164657227732072657761726420616d6f756e74292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3c7365745f7374617475735f7465787404012c7374617475735f746578743101013c4f7074696f6e3c5665633c75383e3e000e30b4536574732061206e657720737461747573207465787420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e002423232057656967687438604f20285329602077686572653a4d012d20605360206973207468652073697a65206f662074686520636f6e74656e7473206f6620607374617475735f746578746020696e206b696c6f6279746573207768656e206974206973206e6f74206e6f6e6500142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e447370656e645f66726f6d5f6275646765740c01286163636f756e745f6964000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000f28a85472616e73666572732073706563696669656420616d6f756e7420746f20616e79206163636f756e742e5c5265717569726573206c6561646572206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6466756e645f776f726b696e675f67726f75705f6275646765740c01246d656d6265725f696428012c4d656d62657249643c543e000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c6530011c5665633c75383e0010209846756e6420776f726b696e672067726f7570206275646765742062792061206d656d6265722e203c7765696768743e0024232320576569676874c4604f202831296020446f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c6c6561645f72656d61726b04010c6d736730011c5665633c75383e0011284c4c6561642072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e34776f726b65725f72656d61726b080124776f726b65725f696428012c576f726b657249643c543e00010c6d736730011c5665633c75383e00122854576f726b65722072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e8d06085070616c6c65745f776f726b696e675f67726f75701043616c6c08045400044900014c2c6164645f6f70656e696e6710012c6465736372697074696f6e30011c5665633c75383e0001306f70656e696e675f747970657d03012c4f70656e696e67547970650001307374616b655f706f6c696379610301a45374616b65506f6c6963793c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e3e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e00002cc44164642061206a6f62206f70656e696e6720666f72206120726567756c617220776f726b65722f6c65616420726f6c652e490152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20616464206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e002423232057656967687438604f20284429602077686572653abc2d20604460206973207468652073697a65206f6620606465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e406170706c795f6f6e5f6f70656e696e67040104708103016c4170706c794f6e4f70656e696e67506172616d65746572733c543e000128684170706c79206f6e206120776f726b6572206f70656e696e672e002823203c7765696768743e002423232057656967687438604f20284429602077686572653ac42d20604460206973207468652073697a65206f662060702e6465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3066696c6c5f6f70656e696e670801286f70656e696e675f69642801244f70656e696e6749640001687375636365737366756c5f6170706c69636174696f6e5f6964736901015c42547265655365743c4170706c69636174696f6e49643e000228ac46696c6c206f70656e696e6720666f722074686520726567756c61722f6c65616420706f736974696f6e2e4d0152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2066696c6c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e2823203c7765696768743e002423232057656967687438604f20284129602077686572653acc2d2060416020697320746865206c656e677468206f6620607375636365737366756c5f6170706c69636174696f6e5f69647360142d2044423a242020202d204f2841292c23203c2f7765696768743e4c7570646174655f726f6c655f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e00014c6e65775f726f6c655f6163636f756e745f6964000130543a3a4163636f756e744964000324150155706461746520746865206173736f63696174656420726f6c65206163636f756e74206f66207468652061637469766520726567756c617220776f726b65722f6c6561642e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e286c656176655f726f6c65080124776f726b65725f696428012c576f726b657249643c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000424904c656176652074686520726f6c65206279207468652061637469766520776f726b65722e2823203c7765696768743e002423232057656967687438604f20285229602077686572653ab42d20605260206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e387465726d696e6174655f726f6c650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c7479450101504f7074696f6e3c42616c616e63654f663c543e3e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000528a05465726d696e617465207468652061637469766520776f726b657220627920746865206c6561642e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f207465726d696e61746520746865206c656164657220726f6c65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ad82d20605060206973207468652073697a65206070656e616c74792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c736c6173685f7374616b650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c747918013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e00062c7d01536c61736865732074686520726567756c617220776f726b6572207374616b652c2064656d616e64732061206c6561646572206f726967696e2e204e6f206c696d6974732c206e6f20616374696f6e73206f6e207a65726f207374616b652e3d01496620736c617368696e672062616c616e63652067726561746572207468616e20746865206578697374696e67207374616b65202d207374616b6520697320736c617368656420746f207a65726f2e19015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20736c61736820746865206c6561646572207374616b65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ae82d20605060206973207468652073697a65206f66206070656e616c6974792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3864656372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e00073021014465637265617365732074686520726567756c617220776f726b65722f6c656164207374616b6520616e642072657475726e73207468652072656d61696e64657220746f207468653901776f726b6572207374616b696e675f6163636f756e745f69642e2043616e2062652064656372656173656420746f207a65726f2c206e6f20616374696f6e73206f6e207a65726f207374616b652e944163636570747320746865207374616b6520616d6f756e7420746f2064656372656173652e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20646563726561736520746865206c6561646572207374616b65292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e38696e6372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e0008280501496e637265617365732074686520726567756c617220776f726b65722f6c656164207374616b652c2064656d616e6473206120776f726b6572206f726967696e2e6d014c6f636b7320746f6b656e732066726f6d2074686520776f726b6572207374616b696e675f6163636f756e745f696420657175616c20746f206e6577207374616b652e204e6f206c696d697473206f6e20746865207374616b652e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5077697468647261775f6170706c69636174696f6e0401386170706c69636174696f6e5f69642801344170706c69636174696f6e4964000924010157697468647261772074686520776f726b6572206170706c69636174696f6e2e2043616e20626520646f6e652062792074686520776f726b6572206f6e6c792e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3863616e63656c5f6f70656e696e670401286f70656e696e675f69642801244f70656e696e674964000a28dc43616e63656c20616e206f70656e696e6720666f722074686520726567756c617220776f726b65722f6c65616420706f736974696f6e2e550152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2063616e63656c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e287365745f6275646765740401286e65775f62756467657418013042616c616e63654f663c543e000b28a0536574732061206e65772062756467657420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e547570646174655f7265776172645f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e0001546e65775f7265776172645f6163636f756e745f6964000130543a3a4163636f756e744964000c2469015570646174652074686520726577617264206163636f756e74206173736f6369617465642077697468206120736574207265776172642072656c6174696f6e7368697020666f72207468652061637469766520776f726b65722e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e507570646174655f7265776172645f616d6f756e74080124776f726b65725f696428012c576f726b657249643c543e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e000d28c855706461746520746865207265776172642070657220626c6f636b20666f72207468652061637469766520776f726b65722e310152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20757064617465206c656164657227732072657761726420616d6f756e74292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3c7365745f7374617475735f7465787404012c7374617475735f746578743101013c4f7074696f6e3c5665633c75383e3e000e30b4536574732061206e657720737461747573207465787420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e002423232057656967687438604f20285329602077686572653a4d012d20605360206973207468652073697a65206f662074686520636f6e74656e7473206f6620607374617475735f746578746020696e206b696c6f6279746573207768656e206974206973206e6f74206e6f6e6500142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e447370656e645f66726f6d5f6275646765740c01286163636f756e745f6964000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000f28a85472616e73666572732073706563696669656420616d6f756e7420746f20616e79206163636f756e742e5c5265717569726573206c6561646572206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6466756e645f776f726b696e675f67726f75705f6275646765740c01246d656d6265725f696428012c4d656d62657249643c543e000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c6530011c5665633c75383e0010209846756e6420776f726b696e672067726f7570206275646765742062792061206d656d6265722e203c7765696768743e0024232320576569676874c4604f202831296020446f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c6c6561645f72656d61726b04010c6d736730011c5665633c75383e0011284c4c6561642072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e34776f726b65725f72656d61726b080124776f726b65725f696428012c576f726b657249643c543e00010c6d736730011c5665633c75383e00122854576f726b65722072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e910608586a6f7973747265616d5f6e6f64655f72756e74696d65304f726967696e43616c6c65720001081873797374656d0400950601746672616d655f73797374656d3a3a4f726967696e3c52756e74696d653e00000010566f69640400990601110173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a566f69640001000095060c346672616d655f737570706f7274206469737061746368245261774f726967696e04244163636f756e7449640100010c10526f6f74000000185369676e656404000001244163636f756e744964000100104e6f6e65000200009906081c73705f636f726510566f6964000100009d060c3870616c6c65745f7574696c6974791870616c6c6574144572726f7204045400010430546f6f4d616e7943616c6c730000045c546f6f206d616e792063616c6c7320626174636865642e04b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a090909a1060c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401a506045300000400a90601185665633c543e0000a506000004084d042800a906000002a50600ad060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540104045300000400b10601185665633c543e0000b1060000020400b50604184f7074696f6e04045401b9060108104e6f6e6500000010536f6d650400b9060000010000b9060c4473705f636f6e73656e7375735f626162651c646967657374732450726544696765737400010c1c5072696d6172790400bd0601405072696d617279507265446967657374000100385365636f6e64617279506c61696e0400c106015c5365636f6e64617279506c61696e507265446967657374000200305365636f6e646172795652460400c50601545365636f6e6461727956524650726544696765737400030000bd060c4473705f636f6e73656e7375735f626162651c64696765737473405072696d617279507265446967657374000010013c617574686f726974795f696e64657810015473757065723a3a417574686f72697479496e646578000110736c6f7451040110536c6f740001287672665f6f75747075740401245652464f75747075740001247672665f70726f6f66a105012056524650726f6f660000c1060c4473705f636f6e73656e7375735f626162651c646967657374735c5365636f6e64617279506c61696e507265446967657374000008013c617574686f726974795f696e64657810015473757065723a3a417574686f72697479496e646578000110736c6f7451040110536c6f740000c5060c4473705f636f6e73656e7375735f626162651c64696765737473545365636f6e64617279565246507265446967657374000010013c617574686f726974795f696e64657810015473757065723a3a417574686f72697479496e646578000110736c6f7451040110536c6f740001287672665f6f75747075740401245652464f75747075740001247672665f70726f6f66a105012056524650726f6f660000c90604184f7074696f6e04045401040108104e6f6e6500000010536f6d650400040000010000cd06084473705f636f6e73656e7375735f62616265584261626545706f6368436f6e66696775726174696f6e00000801046379030128287536342c2075363429000134616c6c6f7765645f736c6f74735d040130416c6c6f776564536c6f74730000d1060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401bd02045300000400b90201185665633c543e0000d5060c2c70616c6c65745f626162651870616c6c6574144572726f7204045400011060496e76616c696445717569766f636174696f6e50726f6f660000043101416e2065717569766f636174696f6e2070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e60496e76616c69644b65794f776e65727368697050726f6f66000104310141206b6579206f776e6572736869702070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e584475706c69636174654f6666656e63655265706f727400020415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e50496e76616c6964436f6e66696775726174696f6e0003048c5375626d697474656420636f6e66696775726174696f6e20697320696e76616c69642e04b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a090909d9060c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401dd06045300000400e50601185665633c543e0000dd06083c70616c6c65745f62616c616e6365732c42616c616e63654c6f636b041c42616c616e63650118000c01086964250401384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e73e106011c526561736f6e730000e106083c70616c6c65745f62616c616e6365731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c00020000e506000002dd0600e9060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401ed06045300000400f10601185665633c543e0000ed06083c70616c6c65745f62616c616e6365732c52657365727665446174610844526573657276654964656e7469666965720125041c42616c616e6365011800080108696425040144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e63650000f106000002ed0600f5060c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001203856657374696e6742616c616e63650000049856657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c7565544c69717569646974795265737472696374696f6e73000104c44163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c4c496e73756666696369656e7442616c616e63650002047842616c616e636520746f6f206c6f7720746f2073656e642076616c75652e484578697374656e7469616c4465706f736974000304e856616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f736974244b656570416c6976650004048c5472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e745c4578697374696e6756657374696e675363686564756c65000504c8412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742c446561644163636f756e740006048842656e6566696369617279206163636f756e74206d757374207072652d65786973743c546f6f4d616e795265736572766573000704ac4e756d626572206f66206e616d656420726573657276657320657863656564204d6178526573657276657304b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a090909f9060c3473705f61726974686d657469632c66697865645f706f696e742446697865645531323800000400180110753132380000fd06086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e74000000085632000100000107089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f7068617365345265616479536f6c7574696f6e04045400000c0120737570706f727473050701b0426f756e646564537570706f7274733c543a3a4163636f756e7449642c20543a3a4d617857696e6e6572733e00011473636f72659c0134456c656374696f6e53636f726500011c636f6d7075746590013c456c656374696f6e436f6d70757465000005070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014905045300000400450501185665633c543e00000907089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f706861736534526f756e64536e617073686f740404540000080118766f746572730d07013c5665633c566f7465724f663c543e3e00011c746172676574735d0501445665633c543a3a4163636f756e7449643e00000d0700000211070011070000040c002815070015070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401000453000004005d0501185665633c543e000019070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454011d07045300000400210701185665633c543e00001d070000040c9c10100021070000021d070025070c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f7068617365187369676e6564405369676e65645375626d697373696f6e0c244163636f756e74496401001c42616c616e6365011820536f6c7574696f6e0171040010010c77686f0001244163636f756e74496400011c6465706f73697418011c42616c616e63650001307261775f736f6c7574696f6e6d040154526177536f6c7574696f6e3c536f6c7574696f6e3e00012063616c6c5f66656518011c42616c616e6365000029070c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173651870616c6c6574144572726f720404540001386850726544697370617463684561726c795375626d697373696f6e000004645375626d697373696f6e2077617320746f6f206561726c792e6c507265446973706174636857726f6e6757696e6e6572436f756e740001048857726f6e67206e756d626572206f662077696e6e6572732070726573656e7465642e6450726544697370617463685765616b5375626d697373696f6e000204905375626d697373696f6e2077617320746f6f207765616b2c2073636f72652d776973652e3c5369676e6564517565756546756c6c0003044901546865207175657565207761732066756c6c2c20616e642074686520736f6c7574696f6e20776173206e6f7420626574746572207468616e20616e79206f6620746865206578697374696e67206f6e65732e585369676e656443616e6e6f745061794465706f73697400040494546865206f726967696e206661696c656420746f2070617920746865206465706f7369742e505369676e6564496e76616c69645769746e657373000504a05769746e657373206461746120746f20646973706174636861626c6520697320696e76616c69642e4c5369676e6564546f6f4d756368576569676874000604b8546865207369676e6564207375626d697373696f6e20636f6e73756d657320746f6f206d756368207765696768743c4f637743616c6c57726f6e67457261000704984f4357207375626d697474656420736f6c7574696f6e20666f722077726f6e6720726f756e645c4d697373696e67536e617073686f744d65746164617461000804a8536e617073686f74206d657461646174612073686f756c6420657869737420627574206469646e27742e58496e76616c69645375626d697373696f6e496e646578000904d06053656c663a3a696e736572745f7375626d697373696f6e602072657475726e656420616e20696e76616c696420696e6465782e3843616c6c4e6f74416c6c6f776564000a04985468652063616c6c206973206e6f7420616c6c6f776564206174207468697320706f696e742e3846616c6c6261636b4661696c6564000b044c5468652066616c6c6261636b206661696c65642c426f756e644e6f744d6574000c0448536f6d6520626f756e64206e6f74206d657438546f6f4d616e7957696e6e657273000d049c5375626d697474656420736f6c7574696f6e2068617320746f6f206d616e792077696e6e657273040d014572726f72206f66207468652070616c6c657420746861742063616e2062652072657475726e656420696e20726573706f6e736520746f20646973706174636865732e2d07083870616c6c65745f7374616b696e67345374616b696e674c656467657204045400001401147374617368000130543a3a4163636f756e744964000114746f74616cec013042616c616e63654f663c543e000118616374697665ec013042616c616e63654f663c543e000124756e6c6f636b696e67310701f0426f756e6465645665633c556e6c6f636b4368756e6b3c42616c616e63654f663c543e3e2c20543a3a4d6178556e6c6f636b696e674368756e6b733e00013c636c61696d65645f726577617264733d070194426f756e6465645665633c457261496e6465782c20543a3a486973746f727944657074683e000031070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454013507045300000400390701185665633c543e00003507083870616c6c65745f7374616b696e672c556e6c6f636b4368756e6b041c42616c616e636501180008011476616c7565ec011c42616c616e636500010c657261e5030120457261496e646578000039070000023507003d070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540110045300000400650501185665633c543e00004107083870616c6c65745f7374616b696e672c4e6f6d696e6174696f6e7304045400000c011c74617267657473150701ac426f756e6465645665633c543a3a4163636f756e7449642c20543a3a4d61784e6f6d696e6174696f6e733e0001307375626d69747465645f696e100120457261496e64657800012873757070726573736564980110626f6f6c00004507083870616c6c65745f7374616b696e6734416374697665457261496e666f0000080114696e646578100120457261496e64657800011473746172743501012c4f7074696f6e3c7536343e00004907000004081000004d07083870616c6c65745f7374616b696e673c457261526577617264506f696e747304244163636f756e744964010000080114746f74616c10012c526577617264506f696e74000128696e646976696475616c5107018042547265654d61703c4163636f756e7449642c20526577617264506f696e743e00005107042042547265654d617008044b010004560110000400550700000055070000025907005907000004080010005d070000026107006107083870616c6c65745f7374616b696e6738556e6170706c696564536c61736808244163636f756e74496401001c42616c616e636501180014012476616c696461746f720001244163636f756e74496400010c6f776e18011c42616c616e63650001186f7468657273510501645665633c284163636f756e7449642c2042616c616e6365293e0001247265706f72746572735d0501385665633c4163636f756e7449643e0001187061796f757418011c42616c616e63650000650700000408ac180069070c3870616c6c65745f7374616b696e6720736c617368696e6734536c617368696e675370616e7300001001287370616e5f696e6465781001245370616e496e6465780001286c6173745f7374617274100120457261496e6465780001486c6173745f6e6f6e7a65726f5f736c617368100120457261496e6465780001147072696f72650501345665633c457261496e6465783e00006d070c3870616c6c65745f7374616b696e6720736c617368696e67285370616e5265636f7264041c42616c616e636501180008011c736c617368656418011c42616c616e6365000120706169645f6f757418011c42616c616e6365000071070000027507007507000004081098007907103870616c6c65745f7374616b696e671870616c6c65741870616c6c6574144572726f72040454000168344e6f74436f6e74726f6c6c6572000004644e6f74206120636f6e74726f6c6c6572206163636f756e742e204e6f745374617368000104504e6f742061207374617368206163636f756e742e34416c7265616479426f6e64656400020460537461736820697320616c726561647920626f6e6465642e34416c726561647950616972656400030474436f6e74726f6c6c657220697320616c7265616479207061697265642e30456d7074795461726765747300040460546172676574732063616e6e6f7420626520656d7074792e384475706c6963617465496e646578000504404475706c696361746520696e6465782e44496e76616c6964536c617368496e64657800060484536c617368207265636f726420696e646578206f7574206f6620626f756e64732e40496e73756666696369656e74426f6e6400070c590143616e6e6f74206861766520612076616c696461746f72206f72206e6f6d696e61746f7220726f6c652c20776974682076616c7565206c657373207468616e20746865206d696e696d756d20646566696e65642062793d01676f7665726e616e6365202873656520604d696e56616c696461746f72426f6e646020616e6420604d696e4e6f6d696e61746f72426f6e6460292e20496620756e626f6e64696e67206973207468651501696e74656e74696f6e2c20606368696c6c6020666972737420746f2072656d6f7665206f6e65277320726f6c652061732076616c696461746f722f6e6f6d696e61746f722e304e6f4d6f72654368756e6b730008049043616e206e6f74207363686564756c65206d6f726520756e6c6f636b206368756e6b732e344e6f556e6c6f636b4368756e6b000904a043616e206e6f74207265626f6e6420776974686f757420756e6c6f636b696e67206368756e6b732e3046756e646564546172676574000a04c8417474656d7074696e6720746f2074617267657420612073746173682074686174207374696c6c206861732066756e64732e48496e76616c6964457261546f526577617264000b0458496e76616c69642065726120746f207265776172642e68496e76616c69644e756d6265724f664e6f6d696e6174696f6e73000c0478496e76616c6964206e756d626572206f66206e6f6d696e6174696f6e732e484e6f74536f72746564416e64556e69717565000d04804974656d7320617265206e6f7420736f7274656420616e6420756e697175652e38416c7265616479436c61696d6564000e0409015265776172647320666f72207468697320657261206861766520616c7265616479206265656e20636c61696d656420666f7220746869732076616c696461746f722e54496e636f7272656374486973746f72794465707468000f04c0496e636f72726563742070726576696f757320686973746f727920646570746820696e7075742070726f76696465642e58496e636f7272656374536c617368696e675370616e73001004b0496e636f7272656374206e756d626572206f6620736c617368696e67207370616e732070726f76696465642e2042616453746174650011043901496e7465726e616c20737461746520686173206265636f6d6520736f6d65686f7720636f7272757074656420616e6420746865206f7065726174696f6e2063616e6e6f7420636f6e74696e75652e38546f6f4d616e795461726765747300120494546f6f206d616e79206e6f6d696e6174696f6e207461726765747320737570706c6965642e244261645461726765740013043d0141206e6f6d696e6174696f6e207461726765742077617320737570706c69656420746861742077617320626c6f636b6564206f72206f7468657277697365206e6f7420612076616c696461746f722e4043616e6e6f744368696c6c4f74686572001404550154686520757365722068617320656e6f75676820626f6e6420616e6420746875732063616e6e6f74206265206368696c6c656420666f72636566756c6c7920627920616e2065787465726e616c20706572736f6e2e44546f6f4d616e794e6f6d696e61746f72730015084d0154686572652061726520746f6f206d616e79206e6f6d696e61746f727320696e207468652073797374656d2e20476f7665726e616e6365206e6565647320746f2061646a75737420746865207374616b696e67b473657474696e677320746f206b656570207468696e6773207361666520666f72207468652072756e74696d652e44546f6f4d616e7956616c696461746f7273001608550154686572652061726520746f6f206d616e792076616c696461746f722063616e6469646174657320696e207468652073797374656d2e20476f7665726e616e6365206e6565647320746f2061646a75737420746865d47374616b696e672073657474696e677320746f206b656570207468696e6773207361666520666f72207468652072756e74696d652e40436f6d6d697373696f6e546f6f4c6f77001704e0436f6d6d697373696f6e20697320746f6f206c6f772e204d757374206265206174206c6561737420604d696e436f6d6d697373696f6e602e2c426f756e644e6f744d657400180458536f6d6520626f756e64206973206e6f74206d65742e44426f6e64696e6752657374726963746564001904e045787465726e616c207265737472696374696f6e2070726576656e747320626f6e64696e67207769746820676976656e206163636f756e7404b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a0909097d07000002810700810700000408007d05008507000004088907300089070c1c73705f636f72651863727970746f244b65795479706549640000040040011c5b75383b20345d00008d070c3870616c6c65745f73657373696f6e1870616c6c6574144572726f7204045400011430496e76616c696450726f6f6600000460496e76616c6964206f776e6572736869702070726f6f662e5c4e6f4173736f63696174656456616c696461746f7249640001049c4e6f206173736f6369617465642076616c696461746f7220494420666f72206163636f756e742e344475706c6963617465644b65790002046452656769737465726564206475706c6963617465206b65792e184e6f4b657973000304a44e6f206b65797320617265206173736f63696174656420776974682074686973206163636f756e742e244e6f4163636f756e7400040419014b65792073657474696e67206163636f756e74206973206e6f74206c6976652c20736f206974277320696d706f737369626c6520746f206173736f6369617465206b6579732e04744572726f7220666f72207468652073657373696f6e2070616c6c65742e9107000004082c10009507083870616c6c65745f6772616e6470612c53746f726564537461746504044e01100110104c6976650000003050656e64696e6750617573650801307363686564756c65645f61741001044e00011464656c61791001044e000100185061757365640002003450656e64696e67526573756d650801307363686564756c65645f61741001044e00011464656c61791001044e000300009907083870616c6c65745f6772616e6470614c53746f72656450656e64696e674368616e676508044e0110144c696d697400001001307363686564756c65645f61741001044e00011464656c61791001044e0001406e6578745f617574686f7269746965739d07016c426f756e646564417574686f726974794c6973743c4c696d69743e000118666f72636564010201244f7074696f6e3c4e3e00009d070c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401c8045300000400c401185665633c543e0000a1070c3870616c6c65745f6772616e6470611870616c6c6574144572726f7204045400011c2c50617573654661696c65640000080501417474656d707420746f207369676e616c204752414e445041207061757365207768656e2074686520617574686f72697479207365742069736e2774206c697665a42865697468657220706175736564206f7220616c72656164792070656e64696e67207061757365292e30526573756d654661696c65640001081101417474656d707420746f207369676e616c204752414e44504120726573756d65207768656e2074686520617574686f72697479207365742069736e277420706175736564a028656974686572206c697665206f7220616c72656164792070656e64696e6720726573756d65292e344368616e676550656e64696e67000204e8417474656d707420746f207369676e616c204752414e445041206368616e67652077697468206f6e6520616c72656164792070656e64696e672e1c546f6f536f6f6e000304bc43616e6e6f74207369676e616c20666f72636564206368616e676520736f20736f6f6e206166746572206c6173742e60496e76616c69644b65794f776e65727368697050726f6f66000404310141206b6579206f776e6572736869702070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e60496e76616c696445717569766f636174696f6e50726f6f660005043101416e2065717569766f636174696f6e2070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e584475706c69636174654f6666656e63655265706f727400060415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e04b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a090909a5070c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e646564566563080454018105045300000400a90701185665633c543e0000a907000002810500ad070c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401d8045300000400b10701185665633c543e0000b107000002d800b50710346672616d655f737570706f727418747261697473106d69736334577261707065724f706171756504045401b907000800e503000000b9070104540000b907084070616c6c65745f696d5f6f6e6c696e6564426f756e6465644f70617175654e6574776f726b53746174650c4c506565724964456e636f64696e674c696d697400584d756c746941646472456e636f64696e674c696d697400384164647265737365734c696d6974000008011c706565725f6964bd07019c5765616b426f756e6465645665633c75382c20506565724964456e636f64696e674c696d69743e00014865787465726e616c5f616464726573736573c107012d015765616b426f756e6465645665633c5765616b426f756e6465645665633c75382c204d756c746941646472456e636f64696e674c696d69743e2c204164647265737365734c696d69740a3e0000bd070c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401080453000004003001185665633c543e0000c1070c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401bd07045300000400c50701185665633c543e0000c507000002bd0700c9070c4070616c6c65745f696d5f6f6e6c696e651870616c6c6574144572726f7204045400010828496e76616c69644b6579000004604e6f6e206578697374656e74207075626c6963206b65792e4c4475706c696361746564486561727462656174000104544475706c696361746564206865617274626561742e04b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a090909cd070c2873705f7374616b696e671c6f6666656e6365384f6666656e636544657461696c7308205265706f727465720100204f6666656e64657201e4000801206f6666656e646572e401204f6666656e6465720001247265706f72746572735d0501345665633c5265706f727465723e0000d10700000408fc3000d5070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454012c045300000400d50301185665633c543e0000d9070c4070616c6c65745f626167735f6c697374106c697374104e6f646508045400044900001401086964000130543a3a4163636f756e744964000110707265769401504f7074696f6e3c543a3a4163636f756e7449643e0001106e6578749401504f7074696f6e3c543a3a4163636f756e7449643e0001246261675f7570706572280120543a3a53636f726500011473636f7265280120543a3a53636f72650000dd070c4070616c6c65745f626167735f6c697374106c6973740c4261670804540004490000080110686561649401504f7074696f6e3c543a3a4163636f756e7449643e0001107461696c9401504f7074696f6e3c543a3a4163636f756e7449643e0000e1070c4070616c6c65745f626167735f6c6973741870616c6c6574144572726f72080454000449000104104c6973740400e50701244c6973744572726f72000004b441206572726f7220696e20746865206c69737420696e7465726661636520696d706c656d656e746174696f6e2e04b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a090909e5070c4070616c6c65745f626167735f6c697374106c697374244c6973744572726f72000110244475706c6963617465000000284e6f7448656176696572000100304e6f74496e53616d65426167000200304e6f64654e6f74466f756e6400030000e9070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401dd05045300000400ed0701185665633c543e0000ed07000002dd0500f107083870616c6c65745f76657374696e672052656c656173657300010808563000000008563100010000f5070c3870616c6c65745f76657374696e671870616c6c6574144572726f72040454000114284e6f7456657374696e6700000484546865206163636f756e7420676976656e206973206e6f742076657374696e672e5441744d617856657374696e675363686564756c65730001082501546865206163636f756e7420616c72656164792068617320604d617856657374696e675363686564756c65736020636f756e74206f66207363686564756c657320616e642074687573510163616e6e6f742061646420616e6f74686572206f6e652e20436f6e7369646572206d657267696e67206578697374696e67207363686564756c657320696e206f7264657220746f2061646420616e6f746865722e24416d6f756e744c6f770002040501416d6f756e74206265696e67207472616e7366657272656420697320746f6f206c6f7720746f2063726561746520612076657374696e67207363686564756c652e605363686564756c65496e6465784f75744f66426f756e6473000304d0416e20696e64657820776173206f7574206f6620626f756e6473206f66207468652076657374696e67207363686564756c65732e54496e76616c69645363686564756c65506172616d730004040d014661696c656420746f206372656174652061206e6577207363686564756c65206265636175736520736f6d6520706172616d657465722077617320696e76616c69642e04744572726f7220666f72207468652076657374696e672070616c6c65742ef90700000408000400fd07083c70616c6c65745f6d756c7469736967204d756c7469736967102c426c6f636b4e756d62657201101c42616c616e63650118244163636f756e7449640100304d6178417070726f76616c7300001001107768656e0d01015854696d65706f696e743c426c6f636b4e756d6265723e00011c6465706f73697418011c42616c616e63650001246465706f7369746f720001244163636f756e744964000124617070726f76616c730108018c426f756e6465645665633c4163636f756e7449642c204d6178417070726f76616c733e000001080c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401000453000004005d0501185665633c543e000005080c3c70616c6c65745f6d756c74697369671870616c6c6574144572726f72040454000138404d696e696d756d5468726573686f6c640000047c5468726573686f6c64206d7573742062652032206f7220677265617465722e3c416c7265616479417070726f766564000104ac43616c6c20697320616c726561647920617070726f7665642062792074686973207369676e61746f72792e444e6f417070726f76616c734e65656465640002049c43616c6c20646f65736e2774206e65656420616e7920286d6f72652920617070726f76616c732e44546f6f4665775369676e61746f72696573000304a854686572652061726520746f6f20666577207369676e61746f7269657320696e20746865206c6973742e48546f6f4d616e795369676e61746f72696573000404ac54686572652061726520746f6f206d616e79207369676e61746f7269657320696e20746865206c6973742e545369676e61746f726965734f75744f664f726465720005040d01546865207369676e61746f7269657320776572652070726f7669646564206f7574206f66206f726465723b20746865792073686f756c64206265206f7264657265642e4c53656e646572496e5369676e61746f726965730006040d015468652073656e6465722077617320636f6e7461696e656420696e20746865206f74686572207369676e61746f726965733b2069742073686f756c646e27742062652e204e6f74466f756e64000704dc4d756c7469736967206f7065726174696f6e206e6f7420666f756e64207768656e20617474656d7074696e6720746f2063616e63656c2e204e6f744f776e65720008042d014f6e6c7920746865206163636f756e742074686174206f726967696e616c6c79206372656174656420746865206d756c74697369672069732061626c6520746f2063616e63656c2069742e2c4e6f54696d65706f696e740009041d014e6f2074696d65706f696e742077617320676976656e2c2079657420746865206d756c7469736967206f7065726174696f6e20697320616c726561647920756e6465727761792e3857726f6e6754696d65706f696e74000a042d014120646966666572656e742074696d65706f696e742077617320676976656e20746f20746865206d756c7469736967206f7065726174696f6e207468617420697320756e6465727761792e4c556e657870656374656454696d65706f696e74000b04f4412074696d65706f696e742077617320676976656e2c20796574206e6f206d756c7469736967206f7065726174696f6e20697320756e6465727761792e3c4d6178576569676874546f6f4c6f77000c04d0546865206d6178696d756d2077656967687420696e666f726d6174696f6e2070726f76696465642077617320746f6f206c6f772e34416c726561647953746f726564000d04a0546865206461746120746f2062652073746f72656420697320616c72656164792073746f7265642e04b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a0909090908083870616c6c65745f636f756e63696c48436f756e63696c5374616765557064617465042c426c6f636b4e756d62657201100008011473746167650d080164436f756e63696c53746167653c426c6f636b4e756d6265723e0001286368616e6765645f617410012c426c6f636b4e756d62657200000d08083870616c6c65745f636f756e63696c30436f756e63696c5374616765042c426c6f636b4e756d6265720110010c28416e6e6f756e63696e6704001108018c436f756e63696c5374616765416e6e6f756e63696e673c426c6f636b4e756d6265723e00000020456c656374696f6e040015080150436f756e63696c5374616765456c656374696f6e0001001049646c65040019080174436f756e63696c537461676549646c653c426c6f636b4e756d6265723e000200001108083870616c6c65745f636f756e63696c58436f756e63696c5374616765416e6e6f756e63696e67042c426c6f636b4e756d62657201100008014063616e646964617465735f636f756e7410010c75333200011c656e64735f617410012c426c6f636b4e756d62657200001508083870616c6c65745f636f756e63696c50436f756e63696c5374616765456c656374696f6e000004014063616e646964617465735f636f756e7410010c75333200001908083870616c6c65745f636f756e63696c40436f756e63696c537461676549646c65042c426c6f636b4e756d62657201100004011c656e64735f617410012c426c6f636b4e756d62657200001d080c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e646564566563080454012108045300000400250801185665633c543e00002108083870616c6c65745f636f756e63696c34436f756e63696c4d656d62657210244163636f756e7449640100204d656d626572496401281c42616c616e636501182c426c6f636b4e756d6265720110001801487374616b696e675f6163636f756e745f69640001244163636f756e7449640001447265776172645f6163636f756e745f69640001244163636f756e7449640001346d656d626572736869705f69642801204d656d62657249640001147374616b6518011c42616c616e63650001486c6173745f7061796d656e745f626c6f636b10012c426c6f636b4e756d626572000134756e706169645f72657761726418011c42616c616e6365000025080000022108002908083870616c6c65745f636f756e63696c2443616e64696461746510244163636f756e74496401001c42616c616e636501181048617368012c24566f7465506f7765720118001801487374616b696e675f6163636f756e745f69640001244163636f756e7449640001447265776172645f6163636f756e745f69640001244163636f756e7449640001206379636c655f696428010c7536340001147374616b6518011c42616c616e6365000128766f74655f706f776572180124566f7465506f7765720001246e6f74655f68617368790201304f7074696f6e3c486173683e00002d08083870616c6c65745f636f756e63696c144572726f720404540001603c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f7729244261644f726967696e000104484f726967696e20697320696e76616c69642e4043616e7443616e6469646174654e6f7700020439015573657220747269656420746f20616e6e6f756e63652063616e646964616379206f757473696465206f66207468652063616e64696461637920616e6e6f756e63656d656e7420706572696f642e4c43616e7452656c656173655374616b654e6f77000304f05573657220747269656420746f2072656c65617365207374616b65206f757473696465206f66207468652072657665616c696e6720706572696f642e5043616e6469646163795374616b65546f6f4c6f77000404b043616e64696461746520686176656e27742070726f76696465642073756666696369656e74207374616b652e4843616e7443616e6469646174655477696365000504f45573657220747269656420746f20616e6e6f756e63652063616e64696461637920747769636520696e207468652073616d6520656c656374696f6e732e40436f6e666c696374696e675374616b650006085d015573657220747269656420746f20616e6e6f756e63652063616e646964616379207769746820616e206163636f756e742074686174206861732074686520636f6e666c696374696e672074797065206f66207374616b653901776974682063616e646964616379207374616b6520616e6420686173206e6f7420656e6f7567682062616c616e636520666f72207374616b696e6720666f7220626f746820707572706f7365732e405374616b655374696c6c4e6565646564000704dc436f756e63696c206d656d62657220616e642063616e646964617465732063616e2774207769746864726177207374616b65207965742e1c4e6f5374616b65000804c45573657220747269656420746f2072656c65617365207374616b65207768656e206e6f207374616b65206578697374732e74496e73756666696369656e7442616c616e6365466f725374616b696e67000904ac496e73756666696369656e742062616c616e636520666f722063616e646964616379207374616b696e672e4c43616e74566f7465466f72596f757273656c66000a048443616e6469646174652063616e277420766f746520666f722068696d73656c662e5c4d656d62657249644e6f744d617463684163636f756e74000b044c496e76616c6964206d656d626572736869702e68496e76616c69644163636f756e74546f5374616b655265757365000c08510154686520636f6d62696e6174696f6e206f66206d656d6265727368697020696420616e64206163636f756e7420696420697320696e76616c696420666f7220756e7374616b696e6720616e206578697374696e674063616e646964616379207374616b652e444e6f7443616e6469646174696e674e6f77000d04d85573657220747269656420746f2077697468647261772063616e646964616379207768656e206e6f742063616e6469646174696e672e6043616e74576974686472617743616e6469646163794e6f77000e04190143616e27742077697468647261772063616e646964616379206f757473696465206f66207468652063616e64696461637920616e6e6f756e63656d656e7420706572696f642e304e6f74436f756e63696c6f72000f0478546865206d656d626572206973206e6f74206120636f756e63696c6f722e88496e73756666696369656e7446756e6473466f7246756e64696e6752657175657374001004f0496e737566666963656e742066756e647320696e20636f756e63696c20666f7220657865637574696e67202746756e64696e67205265717565737427585a65726f42616c616e636546756e64526571756573740011045c46756e642072657175657374206e6f2062616c616e636568526570656174656446756e64526571756573744163636f756e74001204fc5468652073616d65206163636f756e7420697320726563696576696e672066756e64732066726f6d207468652073616d65207265717565737420747769636550456d70747946756e64696e675265717565737473001304ac46756e64696e6720726571756573747320776974686f757420726563696576696e67206163636f756e747370496e73756666696369656e74546f6b656e73466f7246756e64696e67001404f8496e73756666696369656e7420746f6b656e7320666f722066756e64696e6720286f6e206d656d62657220636f6e74726f6c6c6572206163636f756e7429445a65726f546f6b656e7346756e64696e670015047c547279696e6720746f2066756e642077697468207a65726f20746f6b656e735443616e646964617465446f65734e6f7445786973740016045843616e646964617465206964206e6f7420666f756e6478496e73756666696369656e7442616c616e6365466f725472616e73666572001704b443616e6e6f742077697468647261773a20696e73756666696369656e74206275646765742062616c616e63652e0438436f756e63696c206572726f72733108084470616c6c65745f7265666572656e64756d3c5265666572656e64756d5374616765082c426c6f636b4e756d62657201104c496e7465726d65646961746557696e6e657273013508010c20496e61637469766500000018566f74696e670400390801885265666572656e64756d5374616765566f74696e673c426c6f636b4e756d6265723e0001002452657665616c696e6704003d0801e85265666572656e64756d537461676552657665616c696e673c426c6f636b4e756d6265722c20496e7465726d65646961746557696e6e6572733e0002000035080c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e646564566563080454012501045300000400210101185665633c543e00003908084470616c6c65745f7265666572656e64756d545265666572656e64756d5374616765566f74696e67042c426c6f636b4e756d62657201100010011c7374617274656410012c426c6f636b4e756d62657200015077696e6e696e675f7461726765745f636f756e7410010c75333200014063757272656e745f6379636c655f696428010c75363400011c656e64735f617410012c426c6f636b4e756d62657200003d08084470616c6c65745f7265666572656e64756d605265666572656e64756d537461676552657665616c696e67082c426c6f636b4e756d62657201104c496e7465726d65646961746557696e6e6572730135080014011c7374617274656410012c426c6f636b4e756d62657200015077696e6e696e675f7461726765745f636f756e7410010c753332000150696e7465726d6564696174655f77696e6e6572733508014c496e7465726d65646961746557696e6e65727300014063757272656e745f6379636c655f696428010c75363400011c656e64735f617410012c426c6f636b4e756d62657200004108084470616c6c65745f7265666572656e64756d2043617374566f74650c1048617368012c2043757272656e63790118204d656d6265724964012800100128636f6d6d69746d656e742c0110486173680001206379636c655f696428010c7536340001147374616b6518012043757272656e6379000120766f74655f666f72350101404f7074696f6e3c4d656d62657249643e00004508084470616c6c65745f7265666572656e64756d144572726f72080454000449000138244261644f726967696e000004444f726967696e20697320696e76616c6964505265666572656e64756d4e6f7452756e6e696e67000104a85265666572656e64756d206973206e6f742072756e6e696e67207768656e20657870656374656420746f5852657665616c696e674e6f74496e50726f6772657373000204b052657665616c696e67207374616765206973206e6f7420696e2070726f6772657373207269676874206e6f775c436f6e666c6963745374616b65734f6e4163636f756e74000304b05374616b696e67206163636f756e7420636f6e7461696e7320636f6e666c696374696e67207374616b65732e68496e73756666696369656e7442616c616e6365546f5374616b650004049c4163636f756e7420496e73756666696369656e7420467265652042616c616e636520286e6f772944496e73756666696369656e745374616b65000504a8496e73756666696369656e74207374616b652070726f766964656420746f2063617374206120766f746534496e76616c696452657665616c000604190153616c7420616e64207265666572656e64756d206f7074696f6e2070726f766964656420646f6e277420636f72726573706f6e6420746f2074686520636f6d6d69746d656e742c496e76616c6964566f7465000704a4566f746520666f72206e6f74206578697374696e67206f7074696f6e207761732072657665616c65643c566f74654e6f744578697374696e670008049c547279696e6720746f2072657665616c20766f7465207468617420776173206e6f74206361737454416c7265616479566f746564546869734379636c65000904b8547279696e6720746f20766f7465206d756c7469706c652074696d6520696e207468652073616d65206379636c6560556e7374616b696e67566f7465496e53616d654379636c65000a04a0496e76616c69642074696d6520746f2072656c6561736520746865206c6f636b6564207374616b652c53616c74546f6f4c6f6e67000b044053616c7420697320746f6f206c6f6e6748556e7374616b696e67466f7262696464656e000c04f0556e7374616b696e6720686173206265656e20666f7262696464656e20666f7220746865207573657220286174206c6561737420666f72206e6f7729784163636f756e74416c72656164794f707465644f75744f66566f74696e67000d041d014120766f74652063616e6e6f7420626520636173742066726f6d20616e206163636f756e74207468617420616c7265616479206f70746564206f7574206f6620766f74696e672e04445265666572656e64756d206572726f72734908084470616c6c65745f6d656d62657273686970404d656d626572736869704f626a65637408244163636f756e74496401001048617368012c0014012c68616e646c655f686173682c011048617368000130726f6f745f6163636f756e740001244163636f756e744964000148636f6e74726f6c6c65725f6163636f756e740001244163636f756e7449640001207665726966696564980110626f6f6c00011c696e766974657310010c75333200004d08084470616c6c65745f6d656d626572736869706c5374616b696e674163636f756e744d656d62657242696e64696e6704204d656d62657249640128000801246d656d6265725f69642801204d656d6265724964000124636f6e6669726d6564980110626f6f6c00005108084470616c6c65745f6d656d62657273686970144572726f720404540001587c4e6f74456e6f75676842616c616e6365546f4275794d656d62657273686970000004944e6f7420656e6f7567682062616c616e636520746f20627579206d656d626572736869702e64436f6e74726f6c6c65724163636f756e74526571756972656400010470436f6e74726f6c6c6572206163636f756e742072657175697265642e4c526f6f744163636f756e74526571756972656400020458526f6f74206163636f756e742072657175697265642e38556e7369676e65644f726967696e00030440556e7369676e6564206f726967696e2e544d656d62657250726f66696c654e6f74466f756e64000404b44d656d6265722070726f66696c65206e6f7420666f756e642028696e76616c6964206d656d626572206964292e5c48616e646c65416c7265616479526567697374657265640005046848616e646c6520616c726561647920726567697374657265642e9848616e646c654d757374426550726f7669646564447572696e67526567697374726174696f6e000604b048616e646c65206d7573742062652070726f766964656420647572696e6720726567697374726174696f6e2e4c526566657272657249734e6f744d656d626572000704d043616e6e6f742066696e642061206d656d6265727368697020666f7220612070726f76696465642072656665727265722069642e8443616e6e6f745472616e73666572496e7669746573466f724e6f744d656d6265720008049853686f756c642062652061206d656d62657220746f207265636569766520696e76697465732e404e6f74456e6f756768496e7669746573000904ac4e6f7420656e6f75676820696e766974657320746f20706572666f726d20616e206f7065726174696f6e2e60576f726b696e6747726f75704c65616465724e6f74536574000a04ac4d656d6265727368697020776f726b696e672067726f7570206c6561646572206973206e6f74207365742e845374616b696e674163636f756e744973416c726561647952656769737465726564000b04b85374616b696e67206163636f756e74206973207265676973746572656420666f7220736f6d65206d656d6265722e645374616b696e674163636f756e74446f65736e744578697374000c04b45374616b696e67206163636f756e7420666f72206d656d6265727368697020646f65736e27742065786973742e785374616b696e674163636f756e74416c7265616479436f6e6669726d6564000d04ac5374616b696e67206163636f756e742068617320616c7265616479206265656e20636f6e6669726d65642eb0576f726b696e6747726f757042756467657449734e6f7453756666696369656e74466f72496e766974696e67000e08490143616e6e6f7420696e766974652061206d656d6265722e20576f726b696e672067726f75702062616c616e6365206973206e6f742073756666696369656e7420746f20736574207468652064656661756c742062616c616e63652e3c436f6e666c696374696e674c6f636b000f04410143616e6e6f7420696e766974652061206d656d6265722e2054686520636f6e74726f6c6c6572206163636f756e742068617320616e206578697374696e6720636f6e666c696374696e67206c6f636b2e8c43616e6e6f74457863656564526566657272616c43757450657263656e744c696d6974001004010143616e6e6f7420736574206120726566657272616c206375742070657263656e742076616c75652e20546865206c696d6974207761732065786365656465642e5c436f6e666c6963745374616b65734f6e4163636f756e74001104b05374616b696e67206163636f756e7420636f6e7461696e7320636f6e666c696374696e67207374616b65732e7c496e73756666696369656e7442616c616e6365546f436f7665725374616b6500120490496e73756666696369656e742062616c616e636520746f20636f766572207374616b652e504769664c6f636b45786365656473437265646974001304ac4c6f636b656420616d6f756e742069732067726561746572207468616e2063726564697420616d6f756e7464496e73756666696369656e7442616c616e6365546f47696674001404c047696674657220646f65736e277420686176652073756666696369656e742062616c616e636520746f2063726564697484496e73756666696369656e7442616c616e6365546f436f7665725061796d656e7400150498496e73756666696369656e742062616c616e636520746f20636f766572207061796d656e742e048c4d656d62657273686970206d6f64756c6520707265646566696e6564206572726f72735508083070616c6c65745f666f72756d2043617465676f72790c2843617465676f7279496401281048617368012c44537469636b696564546872656164496473015908002001287469746c655f686173682c0110486173680001406465736372697074696f6e5f686173682c0110486173680001206172636869766564980110626f6f6c0001606e756d5f6469726563745f73756263617465676f7269657310010c7533320001486e756d5f6469726563745f7468726561647310010c7533320001546e756d5f6469726563745f6d6f64657261746f727310010c753332000148706172656e745f63617465676f72795f6964350101484f7074696f6e3c43617465676f727949643e000144737469636b795f7468726561645f69647359080144537469636b696564546872656164496473000059080c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401280453000004006901012c42547265655365743c543e00005d08083070616c6c65745f666f72756d185468726561640c2c466f72756d55736572496401282843617465676f72794964012848526570617961626c65426c6f6174426f6e6401e1010010012c63617465676f72795f696428012843617465676f72794964000124617574686f725f696428012c466f72756d55736572496400013c636c65616e75705f7061795f6f6666e1010148526570617961626c65426c6f6174426f6e640001606e756d6265725f6f665f6564697461626c655f706f7374732801344e756d6265724f66506f73747300006108083070616c6c65745f666f72756d10506f7374142c466f72756d557365724964012820546872656164496401281048617368012c2c426c6f636b4e756d626572011048526570617961626c65426c6f6174426f6e6401e101001401247468726561645f69642801205468726561644964000124746578745f686173682c011048617368000124617574686f725f696428012c466f72756d55736572496400013c636c65616e75705f7061795f6f6666e1010148526570617961626c65426c6f6174426f6e6400012c6c6173745f65646974656410012c426c6f636b4e756d62657200006508083070616c6c65745f666f72756d144572726f7204045400016c3c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f7729484f726967696e4e6f74466f72756d4c656164000104b44f726967696e20646f65736e277420636f72726573706f6e6420746f20616e79206c656164206163636f756e7468466f72756d5573657249644e6f744d617463684163636f756e7400020490466f72756d2075736572206964206e6f74206d6174636820697473206163636f756e742e684d6f64657261746f7249644e6f744d617463684163636f756e740003048c4d6f64657261746f72206964206e6f74206d6174636820697473206163636f756e742e7c4163636f756e74446f65734e6f744d61746368546872656164417574686f7200040498546872656164206e6f7420617574686f7265642062792074686520676976656e20757365722e48546872656164446f65734e6f7445786973740005045454687265616420646f6573206e6f742065786973747c4d6f64657261746f724d6f6465726174654f726967696e43617465676f7279000604d04d6f64657261746f722063616e2774206d6f6465726174652063617465676f727920636f6e7461696e696e67207468726561642e904d6f64657261746f724d6f64657261746544657374696e6174696f6e43617465676f7279000704b84d6f64657261746f722063616e2774206d6f6465726174652064657374696e6174696f6e2063617465676f72792e445468726561644d6f7665496e76616c6964000804984f726967696e206973207468652073616d65206173207468652064657374696e6174696f6e2e545468726561644e6f744265696e675570646174656400090464546872656164206e6f74206265696e6720757064617465642e90496e73756666696369656e7442616c616e6365466f725468726561644372656174696f6e000a048c4e6f7420656e6f7567682062616c616e636520746f20637265617465207468726561649843616e6e6f7444656c657465546872656164576974684f75747374616e64696e67506f737473000b04c441207468726561642077697468206f75747374616e64696e6720706f7374732063616e6e6f742062652072656d6f76656440506f7374446f65734e6f744578697374000c0450506f737420646f6573206e6f742065786973742e744163636f756e74446f65734e6f744d61746368506f7374417574686f72000d048c4163636f756e7420646f6573206e6f74206d6174636820706f737420617574686f722e68496e73756666696369656e7442616c616e6365466f72506f7374000e04684e6f7420656e6f7567682062616c616e636520746f20706f73745c43617465676f72794e6f744265696e6755706461746564000f046c43617465676f7279206e6f74206265696e6720757064617465642e64416e636573746f7243617465676f7279496d6d757461626c65001004d4416e636573746f722063617465676f727920696d6d757461626c652c20692e652e2064656c65746564206f72206172636869766564744d617856616c696443617465676f727944657074684578636565646564001104984d6178696d756d2076616c69642063617465676f72792064657074682065786365656465642e5043617465676f7279446f65734e6f7445786973740012046043617465676f727920646f6573206e6f742065786973742e7443617465676f72794d6f64657261746f72446f65734e6f744578697374001304c850726f7669646564206d6f64657261746f72206973206e6f7420676976656e2063617465676f7279206d6f64657261746f725c43617465676f72794e6f74456d707479546872656164730014049443617465676f7279207374696c6c20636f6e7461696e7320736f6d6520746872656164732e6843617465676f72794e6f74456d70747943617465676f72696573001504ac43617465676f7279207374696c6c20636f6e7461696e7320736f6d652073756263617465676f726965732e6c4d6f64657261746f7243616e7444656c65746543617465676f7279001604884e6f207065726d697373696f6e7320746f2064656c6574652063617465676f72792e6c4d6f64657261746f7243616e7455706461746543617465676f7279001704884e6f207065726d697373696f6e7320746f207570646174652063617465676f72792e304d617053697a654c696d6974001804904d6178696d756d2073697a65206f662073746f72616765206d617020657863656564656484506174684c656e67746853686f756c644265477265617465725468616e5a65726f001904b443617465676f72792070617468206c656e2073686f756c642062652067726561746572207468616e207a65726f884d61784e756d6265724f66537469636b696564546872656164734578636565646564001a04e04d6178696d756d206e756d626572206f6620737469636b6965642074687265616473207065722063617465676f7279206578636565646564045c466f72756d20707265646566696e6564206572726f72736908084c70616c6c65745f636f6e737469747574696f6e40436f6e737469747574696f6e496e666f041048617368012c00040124746578745f686173682c01104861736800006d08083470616c6c65745f626f756e747930426f756e74795265636f7264101c42616c616e636501182c426c6f636b4e756d6265720110204d656d626572496401285c436c6f736564436f6e747261637457686974656c6973740171080014013c6372656174696f6e5f706172616d737508012501426f756e7479506172616d65746572733c42616c616e63652c20426c6f636b4e756d6265722c204d656d62657249642c20436c6f736564436f6e747261637457686974656c6973743e000134746f74616c5f66756e64696e6718011c42616c616e63650001246d696c6573746f6e657d080170426f756e74794d696c6573746f6e653c426c6f636b4e756d6265723e00015c6163746976655f776f726b5f656e7472795f636f756e7410010c7533320001606861735f756e706169645f6f7261636c655f726577617264980110626f6f6c000071080c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401280453000004006901012c42547265655365743c543e00007508083470616c6c65745f626f756e747940426f756e7479506172616d6574657273101c42616c616e636501182c426c6f636b4e756d6265720110204d656d626572496401285c436c6f736564436f6e747261637457686974656c697374017108001c01186f7261636c6579010154426f756e74794163746f723c4d656d62657249643e000134636f6e74726163745f74797065790801b84173737572616e6365436f6e7472616374547970653c436c6f736564436f6e747261637457686974656c6973743e00011c63726561746f7279010154426f756e74794163746f723c4d656d62657249643e00011863686572727918011c42616c616e63650001346f7261636c655f72657761726418011c42616c616e6365000134656e7472616e745f7374616b6518011c42616c616e636500013066756e64696e675f747970658101018446756e64696e67547970653c426c6f636b4e756d6265722c2042616c616e63653e00007908083470616c6c65745f626f756e7479544173737572616e6365436f6e747261637454797065045c436c6f736564436f6e747261637457686974656c6973740171080108104f70656e00000018436c6f73656404007108015c436c6f736564436f6e747261637457686974656c697374000100007d08083470616c6c65745f626f756e74793c426f756e74794d696c6573746f6e65042c426c6f636b4e756d626572011001141c43726561746564080128637265617465645f617410012c426c6f636b4e756d6265720001446861735f636f6e747269627574696f6e73980110626f6f6c0000005c426f756e74794d617846756e64696e675265616368656400010034576f726b5375626d6974746564000200285465726d696e61746564000300444a7564676d656e745375626d69747465640401447375636365737366756c5f626f756e7479980110626f6f6c00040000810800000408287901008508083470616c6c65745f626f756e747930436f6e747269627574696f6e0404540000080118616d6f756e7418013042616c616e63654f663c543e00017866756e6465725f73746174655f626c6f61745f626f6e645f616d6f756e7418013042616c616e63654f663c543e00008908083470616c6c65745f626f756e74792c456e7472795265636f72640c244163636f756e7449640100204d656d626572496401282c426c6f636b4e756d6265720110001001246d656d6265725f69642801204d656d62657249640001487374616b696e675f6163636f756e745f69640001244163636f756e7449640001307375626d69747465645f617410012c426c6f636b4e756d626572000138776f726b5f7375626d6974746564980110626f6f6c00008d08083470616c6c65745f626f756e7479144572726f7204045400018c3c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f7729b04d696e46756e64696e67416d6f756e7443616e6e6f744265477265617465725468616e4d6178416d6f756e74000104d44d696e2066756e64696e6720616d6f756e742063616e6e6f742062652067726561746572207468616e206d617820616d6f756e742e44426f756e7479446f65736e74457869737400020450426f756e747920646f65736e742065786973742e605377697463684f7261636c654f726967696e4973526f6f7400030489014f726967696e20697320726f6f742c20736f20737769746368696e67206f7261636c65206973206e6f7420616c6c6f77656420696e20746869732065787472696e7369632e202863616c6c207377697463685f6f7261636c655f61735f726f6f742974496e76616c69645374616765556e657870656374656446756e64696e67000404c8556e657870656374656420626f756e747920737461676520666f7220616e206f7065726174696f6e3a2046756e64696e672ea8496e76616c69645374616765556e65787065637465644e6f46756e64696e67436f6e7472696275746564000504fc556e657870656374656420626f756e747920737461676520666f7220616e206f7065726174696f6e3a204e6f46756e64696e67436f6e74726962757465642e7c496e76616c69645374616765556e657870656374656443616e63656c6c6564000604d0556e657870656374656420626f756e747920737461676520666f7220616e206f7065726174696f6e3a2043616e63656c6c65642e90496e76616c69645374616765556e6578706563746564576f726b5375626d697373696f6e000704e4556e657870656374656420626f756e747920737461676520666f7220616e206f7065726174696f6e3a20576f726b5375626d697373696f6e2e78496e76616c69645374616765556e65787065637465644a7564676d656e74000804cc556e657870656374656420626f756e747920737461676520666f7220616e206f7065726174696f6e3a204a7564676d656e742ec0496e76616c69645374616765556e65787065637465645375636365737366756c426f756e74795769746864726177616c0009041501556e657870656374656420626f756e747920737461676520666f7220616e206f7065726174696f6e3a205375636365737366756c426f756e74795769746864726177616c2eb0496e76616c69645374616765556e65787065637465644661696c6564426f756e74795769746864726177616c000a040501556e657870656374656420626f756e747920737461676520666f7220616e206f7065726174696f6e3a204661696c6564426f756e74795769746864726177616c2e70496e73756666696369656e7442616c616e6365466f72426f756e7479000b04a4496e73756666696369656e742062616c616e636520666f72206120626f756e7479206368657272792e644e6f426f756e7479436f6e747269627574696f6e466f756e64000c048443616e6e6f7420666f756e6420626f756e747920636f6e747269627574696f6e2e6c496e73756666696369656e7442616c616e6365466f725374616b65000d04a05468657265206973206e6f7420656e6f7567682062616c616e636520666f722061207374616b652e44436f6e666c696374696e675374616b6573000e04bc54686520636f6e666c696374696e67207374616b6520646973636f76657265642e2043616e6e6f74207374616b652e50576f726b456e747279446f65736e744578697374000f0460576f726b20656e74727920646f65736e742065786973742e704368657272794c6573735468656e4d696e696d756d416c6c6f77656400100484436865727279206c657373207468616e206d696e696d756d20616c6c6f7765642e9843616e6e6f745375626d6974576f726b546f436c6f736564436f6e7472616374426f756e74790011085101496e636f6d70617469626c65206173737572616e636520636f6e7472616374207479706520666f722061206d656d6265723a2063616e6e6f74207375626d697420776f726b20746f207468652027636c6f7365646c6173737572616e63652720626f756e747920636f6e74726163742e7c436c6f736564436f6e74726163744d656d6265724c6973744973456d707479001204290143616e6e6f742063726561746520612027636c6f736564206173737572616e636520636f6e74726163742720626f756e7479207769746820656d707479206d656d626572206c6973742e88436c6f736564436f6e74726163744d656d6265724c6973744973546f6f4c61726765001308290143616e6e6f742063726561746520612027636c6f736564206173737572616e636520636f6e74726163742720626f756e74792077697468206d656d626572206c697374206c6172676572887468616e20616c6c6f776564206d617820776f726b20656e747279206c696d69742e70436c6f736564436f6e74726163744d656d6265724e6f74466f756e64001404410127636c6f736564206173737572616e636520636f6e74726163742720626f756e7479206d656d626572206c6973742063616e206f6e6c7920696e636c756465206578697374696e67206d656d6265727354496e76616c69644f7261636c654d656d6265724964001504fc50726f7669646564206f7261636c65206d656d62657220696420646f6573206e6f742062656c6f6e6720746f20616e206578697374696e67206d656d62657278496e76616c69645374616b696e674163636f756e74466f724d656d626572001604ac5374616b696e67206163636f756e7420646f65736e27742062656c6f6e6720746f2061206d656d6265722e405a65726f57696e6e65725265776172640017048c43616e6e6f7420736574207a65726f2072657761726420666f722077696e6e6572732e98546f74616c52657761726453686f756c644265457175616c546f546f74616c46756e64696e67001804150154686520746f74616c2072657761726420666f722077696e6e6572732073686f756c6420626520657175616c20746f20746f74616c20626f756e74792066756e64696e672e74456e7472616e745374616b6549734c6573735468616e4d696e696e756d0019042d0143616e6e6f7420637265617465206120626f756e7479207769746820616e20656e7472616e74207374616b65206973206c657373207468616e207265717569726564206d696e696d756d2e6446756e64696e67416d6f756e7443616e6e6f7442655a65726f001a04e843616e6e6f7420637265617465206120626f756e74792077697468207a65726f2066756e64696e6720616d6f756e7420706172616d657465722e6446756e64696e67506572696f6443616e6e6f7442655a65726f001b04e843616e6e6f7420637265617465206120626f756e74792077697468207a65726f2066756e64696e6720706572696f6420706172616d657465722e7457696e6e657253686f756c64486173576f726b5375626d697373696f6e001c04f0496e76616c6964206a7564676d656e74202d20616c6c2077696e6e6572732073686f756c64206861766520776f726b207375626d697373696f6e732e80496e76616c6964436f6e7472696275746f724163746f72537065636966696564001d0470426f756e747920636f6e7472696275746f72206e6f7420666f756e646c496e76616c69644f7261636c654163746f72537065636966696564001e045c426f756e7479206f7261636c65206e6f7420666f756e6474496e76616c6964456e7472616e74576f726b6572537065636966696564001f04a44d656d62657220737065636966696564206973206e6f7420616e20656e7472616e7420776f726b657270496e76616c696443726561746f724163746f72537065636966696564002004a8496e76616c69642043726561746f72204163746f7220666f7220426f756e74792073706563696669656474576f726b456e747279446f65736e7442656c6f6e67546f576f726b6572002104f8576f726b657220747269656420746f20616363657373206120776f726b20656e747279207468617420646f65736e27742062656c6f6e6720746f2068696d704f7261636c65526577617264416c726561647957697468647261776e002204884f7261636c65206861766520616c7265616479206265656e2077697468647261776e047c426f756e74792070616c6c657420707265646566696e6564206572726f72739108083870616c6c65745f7574696c697479144572726f7204045400010c80496e73756666696369656e7446756e6473466f724275646765745570646174650000041d01496e73756666696369656e742066756e647320666f72202755706461746520576f726b696e672047726f757020427564676574272070726f706f73616c20657865637574696f6e385a65726f546f6b656e734275726e00010468547279696e6720746f206275726e207a65726f20746f6b656e7360496e73756666696369656e7446756e6473466f724275726e00020478496e73756666696369656e742066756e647320666f72206275726e696e670478436f646578206d6f64756c6520707265646566696e6564206572726f727395080c3870616c6c65745f636f6e74656e741474797065732c566964656f5265636f726410244368616e6e656c49640128204f776e65644e667401990838566964656f41737365747353657401b90848526570617961626c65426c6f6174426f6e6401e10100100128696e5f6368616e6e656c2801244368616e6e656c49640001286e66745f737461747573bd0801404f7074696f6e3c4f776e65644e66743e000130646174615f6f626a65637473b9080138566964656f417373657473536574000158766964656f5f73746174655f626c6f61745f626f6e64e1010148526570617961626c65426c6f6174426f6e6400009908103870616c6c65745f636f6e74656e740c6e6674147479706573204f776e65644e66740c4c5472616e73616374696f6e616c537461747573019d08204d656d626572496401282441756374696f6e49640128001001146f776e6572b50801484e66744f776e65723c4d656d62657249643e0001507472616e73616374696f6e616c5f7374617475739d08014c5472616e73616374696f6e616c53746174757300013c63726561746f725f726f79616c74791102013c4f7074696f6e3c526f79616c74793e00014c6f70656e5f61756374696f6e735f6e6f6e636528012441756374696f6e496400009d08103870616c6c65745f636f6e74656e740c6e6674147479706573645472616e73616374696f6e616c5374617475735265636f726410204d656d626572496401281c42616c616e6365011848456e676c69736841756374696f6e5479706501a1083c4f70656e41756374696f6e5479706501b10801141049646c6500000058496e697469617465644f66666572546f4d656d62657208002801204d656d626572496400004501013c4f7074696f6e3c42616c616e63653e00010038456e676c69736841756374696f6e0400a1080148456e676c69736841756374696f6e547970650002002c4f70656e41756374696f6e0400b108013c4f70656e41756374696f6e54797065000300184275794e6f77040018011c42616c616e636500040000a108103870616c6c65745f636f6e74656e740c6e667414747970657350456e676c69736841756374696f6e5265636f7264102c426c6f636b4e756d62657201101c42616c616e63650118204d656d626572496401284c4e667441756374696f6e57686974656c69737401a508002001387374617274696e675f707269636518011c42616c616e63650001346275795f6e6f775f70726963654501013c4f7074696f6e3c42616c616e63653e00012477686974656c697374a508014c4e667441756374696f6e57686974656c69737400010c656e6410012c426c6f636b4e756d626572000114737461727410012c426c6f636b4e756d626572000140657874656e73696f6e5f706572696f6410012c426c6f636b4e756d6265720001306d696e5f6269645f7374657018011c42616c616e636500011c746f705f626964a90801b04f7074696f6e3c456e676c69736841756374696f6e4269643c42616c616e63652c204d656d62657249643e3e0000a5080c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401280453000004006901012c42547265655365743c543e0000a90804184f7074696f6e04045401ad080108104e6f6e6500000010536f6d650400ad080000010000ad08103870616c6c65745f636f6e74656e740c6e667414747970657344456e676c69736841756374696f6e426964081c42616c616e63650118204d656d6265724964012800080118616d6f756e7418011c42616c616e63650001246269646465725f69642801204d656d62657249640000b108103870616c6c65745f636f6e74656e740c6e6674147479706573444f70656e41756374696f6e5265636f7264102c426c6f636b4e756d62657201102441756374696f6e496401281c42616c616e636501184c4e667441756374696f6e57686974656c69737401a508001801387374617274696e675f707269636518011c42616c616e63650001346275795f6e6f775f70726963654501013c4f7074696f6e3c42616c616e63653e00012477686974656c697374a508014c4e667441756374696f6e57686974656c6973740001446269645f6c6f636b5f6475726174696f6e10012c426c6f636b4e756d62657200012861756374696f6e5f696428012441756374696f6e4964000114737461727410012c426c6f636b4e756d6265720000b508103870616c6c65745f636f6e74656e740c6e6674147479706573204e66744f776e657204204d656d626572496401280108304368616e6e656c4f776e6572000000184d656d62657204002801204d656d626572496400010000b9080c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401280453000004006901012c42547265655365743c543e0000bd0804184f7074696f6e0404540199080108104e6f6e6500000010536f6d65040099080000010000c108103870616c6c65745f636f6e74656e742c7065726d697373696f6e733463757261746f725f67726f75704843757261746f7247726f75705265636f7264085c43757261746f7247726f757043757261746f72734d617001c508704d6f6465726174696f6e5065726d697373696f6e7342794c6576656c01c908000c012063757261746f7273c508015c43757261746f7247726f757043757261746f72734d6170000118616374697665980110626f6f6c0001507065726d697373696f6e735f62795f6c6576656cc90801704d6f6465726174696f6e5065726d697373696f6e7342794c6576656c0000c5080c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b0128045601b501045300000400c501013842547265654d61703c4b2c20563e0000c9080c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b0108045601cd08045300000400d108013842547265654d61703c4b2c20563e0000cd080c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e6465644254726565536574080454015d020453000004005902012c42547265655365743c543e0000d108042042547265654d617008044b0108045601cd08000400d508000000d508000002d90800d9080000040808cd0800dd08103870616c6c65745f636f6e74656e740c6e6674147479706573504f70656e41756374696f6e4269645265636f72640c1c42616c616e636501182c426c6f636b4e756d62657201102441756374696f6e49640128000c0118616d6f756e7418011c42616c616e63650001346d6164655f61745f626c6f636b10012c426c6f636b4e756d62657200012861756374696f6e5f696428012441756374696f6e49640000e1080c3870616c6c65745f636f6e74656e74186572726f7273144572726f7204045400010102704368616e6e656c5374617465426c6f6174426f6e644368616e676564000004e4496e76616c69642065787472696e7369632063616c6c3a204368616e6e656c20737461746520626c6f617420626f6e64206368616e6765642e68566964656f5374617465426c6f6174426f6e644368616e676564000104dc496e76616c69642065787472696e7369632063616c6c3a20766964656f20737461746520626c6f617420626f6e64206368616e6765642e544d696e436173686f757456616c7565546f6f4c6f77000204d8417474656d707420746f20736574206d696e696d756d20636173686f757420616c6c6f7765642062656c6f7720746865206c696d6974584d6178436173686f757456616c7565546f6f48696768000304d8417474656d707420746f20736574206d696e696d756d20636173686f757420616c6c6f7765642061626f766520746865206c696d69749c4d61784e756d6265724f664368616e6e656c436f6c6c61626f7261746f7273457863656564656400040429014e756d626572206f66206368616e6e656c20636f6c6c61626f7261746f72732065786365656473204d61784e756d6265724f66436f6c6c61626f7261746f72735065724368616e6e656c804d61784e756d6265724f664368616e6e656c4173736574734578636565646564000504f04e756d626572206f66206368616e6e656c206173736574732065786365656473204d61784e756d6265724f664173736574735065724368616e6e656c784d61784e756d6265724f66566964656f4173736574734578636565646564000604ec4e756d626572206f6620766964656f206173736574732065786365656473204d61784d61784e756d6265724f66417373657473506572566964656fa84d61784e756d6265724f664368616e6e656c4167656e745065726d697373696f6e73457863656564656400070419014d6178696d756d206e756d626572206f66206368616e6e656c206167656e74207065726d697373696f6e7320666f72206368616e6e656c206167656e74206578636565646564ac4d61784e756d6265724f6650617573656446656174757265735065724368616e6e656c4578636565646564000804d84d6178696d756d206e756d626572206f662070617573656420666561747572657320706572206368616e6e656c20657863656564656480496e76616c69644368616e6e656c4261675769746e65737350726f766964656400090411014368616e6e656c20626167207769746e65737320706172616d657465727320646f6e2774206d61746368207468652063757272656e742072756e74696d652073746174659c496e76616c696453746f726167654275636b6574734e756d5769746e65737350726f7669646564000a04450153746f72616765206275636b657473206e756d626572207769746e65737320706172616d6574657220646f6573206e6f74206d61746368207468652063757272656e742072756e74696d652073746174657c4d697373696e6753746f726167654275636b6574734e756d5769746e657373000b084d0153746f72616765206275636b657473206e756d626572207769746e65737320706172616d65746572206d7573742062652070726f7669646564207768656e206368616e6e656c2f766964656f2061737365747348617265206265696e6720757064617465642e784368616e6e656c4f776e65724d656d626572446f65734e6f744578697374000c04b850726f7669646564206368616e6e656c206f776e657220286d656d6265722920646f6573206e6f74206578697374904368616e6e656c4f776e657243757261746f7247726f7570446f65734e6f744578697374000d04d450726f7669646564206368616e6e656c206f776e6572202863757261746f722067726f75702920646f6573206e6f74206578697374b04368616e6e656c5374617465426c6f6174426f6e6442656c6f774578697374656e7469616c4465706f736974000e0809014368616e6e656c20737461746520626c6f617420626f6e642063616e6e6f74206265206c6f776572207468616e206578697374656e7469616c206465706f7369742c050162656361757365206974206d7573742073656375726520746865206368616e6e656c206d6f64756c65206163636f756e7420616761696e73742064757374696e67704e756d6265724f66417373657473546f52656d6f766549735a65726f000f04a90144656c657465206368616e6e656c20616e642061737365747320616e642064656c65746520766964656f20617373657473206d75737420686176652061206e756d626572206f662061737365747320746f2072656d6f76652067726561746572207468616e207a65726f9843757261746f7249734e6f74414d656d6265724f66476976656e43757261746f7247726f7570001004450143757261746f7220756e6465722070726f76696465642063757261746f72206964206973206e6f742061206d656d626572206f662063757261726f722067726f757020756e64657220676976656e206964a843757261746f724973416c7265616479414d656d6265724f66476976656e43757261746f7247726f7570001104550143757261746f7220756e6465722070726f76696465642063757261746f7220696420697320616c72656164792061206d656d626572206f662063757261726f722067726f757020756e64657220676976656e2069646043757261746f7247726f7570446f65734e6f74457869737400120488476976656e2063757261746f722067726f757020646f6573206e6f742065786973747043757261746f727350657247726f75704c696d697452656163686564001304b84d6178206e756d626572206f662063757261746f7273207065722067726f7570206c696d697420726561636865645c43757261746f7247726f757049734e6f744163746976650014046c43757261746f722067726f7570206973206e6f74206163746976654043757261746f724964496e76616c6964001504d843757261746f72206964206973206e6f74206120776f726b657220696420696e20636f6e74656e7420776f726b696e672067726f7570384c656164417574684661696c6564001604684c6561642061757468656e7469636174696f6e206661696c6564404d656d626572417574684661696c6564001704704d656d6265722061757468656e7469636174696f6e206661696c65644443757261746f72417574684661696c65640018047443757261746f722061757468656e7469636174696f6e206661696c6564244261644f726967696e00190478457870656374656420726f6f74206f72207369676e6564206f726967696e484163746f724e6f74417574686f72697a6564001a04b04f7065726174696f6e2063616e6e6f7420626520706572666f6d656420776974682074686973204163746f725043617465676f7279446f65734e6f744578697374001b04ac41204368616e6e656c206f7220566964656f2043617465676f727920646f6573206e6f742065786973742e4c4368616e6e656c446f65734e6f744578697374001c04584368616e6e656c20646f6573206e6f7420657869737444566964656f446f65734e6f744578697374001d0450566964656f20646f6573206e6f7420657869737434566964656f496e536561736f6e001e04f4566664656f20696e20736561736f6e2063616e60742062652072656d6f766564202862656361757365206f7264657220697320696d706f7274616e7429444163746f7243616e6e6f7442654c656164001f04c84163746f722063616e6e6f7420617574686f72697a65206173206c65616420666f7220676976656e2065787472696e736963544163746f7243616e6e6f744f776e4368616e6e656c002004604163746f722063616e6e6f74204f776e206368616e6e656c604e6674416c72656164794f776e656442794368616e6e656c002104a4417474656d707420746f20736c696e67206261636b2061206368616e6e656c206f776e6564206e6674404e6674416c7265616479457869737473002204944e667420666f7220676976656e20766964656f20696420616c7265616479206578697374733c4e6674446f65734e6f744578697374002304944e667420666f7220676976656e20766964656f20696420646f6573206e6f742065786973746c4f766572666c6f774f72556e646572666c6f7748617070656e6564002404904f766572666c6f77206f7220756e646572666c6f77206572726f722068617070656e656434446f65734e6f744f776e4e667400250474476976656e206f726967696e20646f6573206e6f74206f776e206e667464526f79616c74795570706572426f756e64457863656564656400260470526f79616c747920557070657220426f756e6420457863656564656464526f79616c74794c6f776572426f756e64457863656564656400270470526f79616c7479204c6f77657220426f756e642045786365656465648441756374696f6e4475726174696f6e5570706572426f756e6445786365656465640028049441756374696f6e206475726174696f6e20757070657220626f756e642065786365656465648441756374696f6e4475726174696f6e4c6f776572426f756e6445786365656465640029049441756374696f6e206475726174696f6e206c6f77657220626f756e6420657863656564656484457874656e73696f6e506572696f645570706572426f756e644578636565646564002a04b441756374696f6e20657874656e73696f6e20706572696f6420757070657220626f756e6420657863656564656484457874656e73696f6e506572696f644c6f776572426f756e644578636565646564002b04b441756374696f6e20657874656e73696f6e20706572696f64206c6f77657220626f756e64206578636565646564844269644c6f636b4475726174696f6e5570706572426f756e644578636565646564002c0498426964206c6f636b206475726174696f6e20757070657220626f756e64206578636565646564844269644c6f636b4475726174696f6e4c6f776572426f756e644578636565646564002d0498426964206c6f636b206475726174696f6e206c6f77657220626f756e642065786365656465647c5374617274696e6750726963655570706572426f756e644578636565646564002e048c5374617274696e6720707269636520757070657220626f756e642065786365656465647c5374617274696e6750726963654c6f776572426f756e644578636565646564002f048c5374617274696e67207072696365206c6f77657220626f756e642065786365656465648041756374696f6e426964537465705570706572426f756e6445786365656465640030049441756374696f6e20626964207374657020757070657220626f756e642065786365656465648041756374696f6e426964537465704c6f776572426f756e6445786365656465640031049441756374696f6e206269642073746570206c6f77657220626f756e642065786365656465644c496e73756666696369656e7442616c616e636500320450496e73756666696369656e742062616c616e63656442696453746570436f6e73747261696e7456696f6c61746564003304b44d696e696d616c2061756374696f6e20626964207374657020636f6e73747261696e742076696f6c617465642e64496e76616c6964426964416d6f756e7453706563696669656400340488436f6d6d697420766572696669636174696f6e20666f722062696420616d6f756e747c5374617274696e675072696365436f6e73747261696e7456696f6c61746564003504ac41756374696f6e207374617274696e6720707269636520636f6e73747261696e742076696f6c617465642e50416374696f6e48617342696473416c7265616479003604a8416c7265616479206163746976652061756374696f6e2063616e6e6f742062652063616e63656c6c6564304e667449734e6f7449646c65003704990143616e206e6f74206372656174652061756374696f6e20666f72204e66742c2069662061756374696f6e2068617665206265656e20616c72656164792073746172746564206f72206e6674206973206c6f636b656420666f7220746865207472616e736665726050656e64696e674f66666572446f65734e6f7445786973740038047c4e6f2070656e64696e67206f666665727320666f7220676976656e204e6674545265776172644163636f756e7449734e6f74536574003904c843726561746f7220726f79616c747920726571756972657320726577617264206163636f756e7420746f206265207365742e404163746f7249734e6f74426964646572003a04684163746f72206973206e6f742061206c617374206269646465726041756374696f6e43616e6e6f744265436f6d706c65746564003b046c41756374696f6e2063616e6e6f7420626520636f6d706c657465643c426964446f65734e6f744578697374003c046841756374696f6e20646f6573206e6f74206861766520626964734c4269644973466f725061737441756374696f6e003d049453656c65637465642042696420697320666f722070617374206f70656e2061756374696f6e6853746172747341744c6f776572426f756e644578636565646564003e049841756374696f6e20737461727473206174206c6f77657220626f756e642065786365656465646853746172747341745570706572426f756e644578636565646564003f049841756374696f6e2073746172747320617420757070657220626f756e642065786365656465644841756374696f6e4469644e6f7453746172740040045c41756374696f6e20646964206e6f742073746172746564444e6f74496e41756374696f6e53746174650041046c4e6674206973206e6f7420696e2061756374696f6e2073746174657c4d656d62657249734e6f74416c6c6f776564546f5061727469636970617465004204bc4d656d626572206973206e6f7420616c6c6f77656420746f20706172746963697061746520696e2061756374696f6e544d656d62657250726f66696c654e6f74466f756e64004304604d656d6265722070726f66696c65206e6f7420666f756e644c4e66744e6f74496e4275794e6f7753746174650044049c476976656e20766964656f206e6674206973206e6f7420696e20627579206e6f7720737461746584496e76616c69644275794e6f775769746e657373507269636550726f76696465640045045501607769746e6573735f7072696365602070726f766964656420746f20606275795f6e6f77602065787472696e73696320646f6573206e6f74206d61746368207468652063757272656e742073656c6c2070726963655049734e6f744f70656e41756374696f6e547970650046046841756374696f6e2074797065206973206e6f7420604f70656e605c49734e6f74456e676c69736841756374696f6e547970650047047441756374696f6e2074797065206973206e6f742060456e676c697368606c4269644c6f636b4475726174696f6e49734e6f744578706972656400480480426964206c6f636b206475726174696f6e206973206e6f742065787069726564684e667441756374696f6e4973416c726561647945787069726564004904784e66742061756374696f6e20697320616c72656164792065787069726564904275794e6f774d7573744265477265617465725468616e5374617274696e675072696365004a04ac41756374696f6e20627579206e6f77206973206c657373207468656e207374617274696e67207072696365605461726765744d656d626572446f65734e6f744578697374004b04984e6674206f6666657220746172676574206d656d62657220646f6573206e6f742065786973748c496e76616c69644e66744f666665725769746e657373507269636550726f7669646564004c040d0143757272656e74206e6674206f6666657220707269636520646f6573206e6f74206d61746368207468652070726f766964656420607769746e6573735f707269636560ac4d617841756374696f6e57686974654c6973744c656e6774685570706572426f756e644578636565646564004d04c44d61782061756374696f6e2077686974656c697374206c656e67746820757070657220626f756e642065786365656465646457686974656c6973744861734f6e6c794f6e654d656d626572004e049441756374696f6e2077686974656c69737420686173206f6e6c79206f6e65206d656d6265727457686974656c69737465644d656d626572446f65734e6f744578697374004f04d84174206c65617374206f6e65206f66207468652077686974656c6973746564206d656d6265727320646f6573206e6f74206578697374784e66744e6f6e4368616e6e656c4f776e6572446f65734e6f744578697374005004f84e6f6e2d6368616e6e656c206f776e65722073706563696669656420647572696e67206e66742069737375616e636520646f6573206e6f74206578697374ac457874656e73696f6e506572696f644973477265617465725468656e41756374696f6e4475726174696f6e005104c4457874656e73696f6e20706572696f642069732067726561746572207468656e2061756374696f6e206475726174696f6e444e6f417373657473537065636966696564005204ac4e6f2061737365747320746f2062652072656d6f7665642068617665206265656e2073706563696669656454496e76616c696441737365747350726f7669646564005304684368616e6e656c2061737365747320666561736962696c697479544368616e6e656c436f6e7461696e73566964656f73005404584368616e6e656c20436f6e7461696e7320566964656f544368616e6e656c436f6e7461696e734173736574730055045c4368616e6e656c20436f6e7461696e73204173736574735c496e76616c696442616753697a655370656369666965640056047c4261672053697a6520737065636966696564206973206e6f742076616c6964504d6967726174696f6e4e6f7446696e6973686564005704584d6967726174696f6e206e6f7420646f6e6520796574445265706c79446f65734e6f7445786973740058046c5061727465636970616e74206973206e6f742061206d656d6265724c556e73756666696369656e7442616c616e636500590450496e73756666696369656e742062616c616e63656c496e73756666696369656e74547265617375727942616c616e6365005a0474496e73756666696369656e742074726561737572792062616c616e636554496e76616c69644d656d62657250726f7669646564005b0470496e76616c6964206d656d62657220696420207370656369666965643c4163746f724e6f74414d656d626572005c04544163746f72206973206e6f742041204d656d626572785061796d656e7450726f6f66566572696669636174696f6e4661696c6564005d04845061796d656e742050726f6f6620766572696669636174696f6e206661696c656484436173686f7574416d6f756e74457863656564734d6178696d756d416d6f756e74005e04c04368616e6e656c20636173686f757420616d6f756e7420697320746f6f206869676820746f20626520636c61696d65647c436173686f7574416d6f756e7442656c6f774d696e696d756d416d6f756e74005f04bc4368616e6e656c20636173686f757420616d6f756e7420697320746f6f206c6f7720746f20626520636c61696d6564e05769746864726177616c416d6f756e74457863656564734368616e6e656c4163636f756e74576974686472617761626c6542616c616e63650060085901416e20617474656d707420746f2077697468647261772066756e64732066726f6d206368616e6e656c206163636f756e74206661696c65642c2062656361757365207468652073706563696669656420616d6f756e744901657863656564732074686520776974686472617761626c6520616d6f756e7420286368616e6e656c206163636f756e742062616c616e6365206d696e7573206368616e6e656c20626c6f617420626f6e64297c576974686472617746726f6d4368616e6e656c416d6f756e7449735a65726f0061085901416e20617474656d707420746f2077697468647261772066756e64732066726f6d206368616e6e656c206163636f756e74206661696c65642c2062656361757365207468652073706563696669656420616d6f756e741c6973207a65726f5c4368616e6e656c436173686f75747344697361626c65640062049c4368616e6e656c20636173686f757473206172652063757272656e746c792064697361626c6564a44d696e436173686f7574416c6c6f776564457863656564734d6178436173686f7574416c6c6f77656400630809014e65772076616c75657320666f72206d696e5f636173686f75745f616c6c6f7765642f6d61785f636173686f75745f616c6c6f7765642061726520696e76616c6964d46d696e5f636173686f75745f616c6c6f7765642063616e6e6f7420657863656564206d61785f636173686f75745f616c6c6f7765648443757261746f724d6f6465726174696f6e416374696f6e4e6f74416c6c6f776564006404110143757261746f7220646f6573206e6f742068617665207065726d697373696f6e7320746f20706572666f726d20676976656e206d6f6465726174696f6e20616374696f6e944d617843757261746f725065726d697373696f6e735065724c6576656c457863656564656400650441014d6178696d756d206e756d626572206f662063757261746f72207065726d697373696f6e732070657220676976656e206368616e6e656c2070726976696c656765206c6576656c206578636565646564c043757261746f7247726f75704d61785065726d697373696f6e7342794c6576656c4d617053697a654578636565646564006604290143757261746f722067726f75702773207065726d697373696f6e73206279206c6576656c206d617020657863656564656420746865206d6178696d756d20616c6c6f7765642073697a65504368616e6e656c466561747572655061757365640067045d014f7065726174696f6e2063616e6e6f742062652065786563757465642c20626563617573652074686973206368616e6e656c206665617475726520686173206265656e2070617573656420627920612063757261746f72444368616e6e656c4261674d697373696e670068042d01556e65787065637465642072756e74696d652073746174653a206d697373696e67206368616e6e656c2062616720647572696e672064656c6574655f6368616e6e656c20617474656d70748c417373657473546f52656d6f76654265796f6e64456e74697479417373657473536574006904f5014c697374206f662061737365747320746f2072656d6f76652070726f766964656420666f72207570646174655f6368616e6e656c202f207570646174655f766964656f20636f6e7461696e7320617373657473207468617420646f6e27742062656c6f6e6720746f207468652073706563696669656420656e7469747990496e76616c6964566964656f446174614f626a65637473436f756e7450726f7669646564006a04f4496e76616c6964206e756d626572206f66206f626a6563747320746f2064656c6574652070726f766964656420666f722064656c6574655f766964656f70496e76616c69644368616e6e656c5472616e73666572537461747573006b04bc496e76616c6964206368616e6e656c207472616e736665722073746174757320666f72206f7065726174696f6e732e78496e76616c69644368616e6e656c5472616e736665724163636570746f72006c04d4496e636f7272656374206163746f7220747269657320746f2061636365707420746865206368616e6e656c207472616e736665722e98496e76616c69644368616e6e656c5472616e73666572436f6d6d69746d656e74506172616d73006d08550143616e6e6f742061636365707420746865206368616e6e656c207472616e736665723a2070726f766964656420636f6d6d69746d656e7420706172616d657465727320646f65736e2774206d617463682077697468906368616e6e656c2070656e64696e67207472616e7366657220706172616d65746572732e8c4368616e6e656c4167656e74496e73756666696369656e745065726d697373696f6e73006e004c496e76616c69644368616e6e656c4f776e6572006f04a4496e636f7272656374206368616e6e656c206f776e657220666f7220616e206f7065726174696f6e2e285a65726f5265776172640070046443616e6e6f7420636c61696d207a65726f207265776172642e78496e73756666696369656e7442616c616e6365466f725472616e73666572007104510143616e6e6f74207472616e7366657220746865206368616e6e656c3a206368616e6e656c206f776e65722068617320696e73756666696369656e742062616c616e6365202862756467657420666f72205747732994496e73756666696369656e7442616c616e6365466f724368616e6e656c4372656174696f6e0072080d0143616e6e6f742063726561746520746865206368616e6e656c3a206368616e6e656c2063726561746f722068617320696e73756666696369656e742062616c616e6365e9012862756467657420666f72206368616e6e656c20737461746520626c6f617420626f6e64202b206368616e6e656c2064617461206f626a7320737461746520626c6f617420626f6e6473202b2064617461206f626a732073746f726167652066656573202b206578697374656e7469616c206465706f736974298c496e73756666696369656e7442616c616e6365466f72566964656f4372656174696f6e007308fc43616e6e6f74206372656174652074686520766964656f3a20766964656f2063726561746f722068617320696e73756666696369656e742062616c616e6365d9012862756467657420666f7220766964656f20737461746520626c6f617420626f6e64202b20766964656f2064617461206f626a7320737461746520626c6f617420626f6e6473202b2064617461206f626a732073746f726167652066656573202b206578697374656e7469616c206465706f7369742964496e73756666696369656e74436f756e63696c4275646765740074006c476c6f62616c4e66744461696c794c696d6974457863656564656400750070476c6f62616c4e66745765656b6c794c696d69744578636565646564007600704368616e6e656c4e66744461696c794c696d69744578636565646564007700744368616e6e656c4e66745765656b6c794c696d697445786365656465640078006443726561746f72546f6b656e416c7265616479497373756564007904c443726561746f7220746f6b656e2077617320616c72656164792069737375656420666f722074686973206368616e6e656c5443726561746f72546f6b656e4e6f74497373756564007a04b043726561746f7220746f6b656e207761736e27742069737375656420666f722074686973206368616e6e656c884d656d6265724964436f756c644e6f7442654465726976656446726f6d4163746f72007b0415014d656d62657220696420636f756c64206e6f7420626520646572697665642066726f6d207468652070726f766964656420436f6e74656e744163746f7220636f6e74657874bc43616e6e6f74576974686472617746726f6d4368616e6e656c5769746843726561746f72546f6b656e497373756564007c08290143616e6e6f74206469726563746c792077697468647261772066756e64732066726f6d2061206368616e6e656c206163636f756e74207768656e20746865206368616e6e656c2068617358612063726561746f7220746f6b656e20697373756564bc506174726f6e61676543616e4f6e6c794265436c61696d6564466f724d656d6265724f776e65644368616e6e656c73007d04f4506174726f6e6167652063616e206f6e6c7920626520636c61696d6564206966206368616e6e656c206973206f776e65642062792061206d656d626572a84368616e6e656c5472616e7366657273426c6f636b6564447572696e67526576656e756553706c697473007e04cc4368616e6e656c205472616e73666572732061726520626c6f636b656420647572696e6720726576656e75652073706c6974739c4368616e6e656c5472616e7366657273426c6f636b6564447572696e67546f6b656e53616c6573007f04c04368616e6e656c205472616e73666572732061726520626c6f636b656420647572696e6720746f6b656e2073616c65730460436f6e74656e74206469726563746f7279206572726f7273e508083870616c6c65745f73746f72616765244261675265636f7264084c53746f726167654275636b657449647353657401e90860446973747269627574696f6e4275636b657449647353657401ed080010012473746f7265645f6279e908014c53746f726167654275636b657449647353657400013864697374726962757465645f6279ed080160446973747269627574696f6e4275636b65744964735365740001486f626a656374735f746f74616c5f73697a6528010c7536340001386f626a656374735f6e756d62657228010c7536340000e9080c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401280453000004006901012c42547265655365743c543e0000ed080c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e64656442547265655365740804540125020453000004003902012c42547265655365743c543e0000f108083870616c6c65745f73746f726167654c53746f726167654275636b65745265636f72640820576f726b657249640128244163636f756e74496401000010013c6f70657261746f725f737461747573f50801c053746f726167654275636b65744f70657261746f725374617475733c576f726b657249642c204163636f756e7449643e000148616363657074696e675f6e65775f62616773980110626f6f6c00011c766f7563686572ad02011c566f756368657200013461737369676e65645f6261677328010c7536340000f508083870616c6c65745f73746f726167656c53746f726167654275636b65744f70657261746f725374617475730820576f726b657249640128244163636f756e7449640100010c1c4d697373696e6700000050496e766974656453746f72616765576f726b65720400280120576f726b657249640001003453746f72616765576f726b65720800280120576f726b6572496400000001244163636f756e74496400020000f9080c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003001185665633c543e0000fd08083870616c6c65745f73746f726167656044796e616d69634261674372656174696f6e506f6c69637904b0446973747269627574696f6e4275636b657446616d696c79546f4e756d6265724f664275636b6574734d6170010109000801646e756d6265725f6f665f73746f726167655f6275636b65747310010c75333200012066616d696c696573010901b0446973747269627574696f6e4275636b657446616d696c79546f4e756d6265724f664275636b6574734d6170000001090c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b012804560110045300000400b502013842547265654d61703c4b2c20563e0000050900000408950228000909083870616c6c65745f73746f7261676528446174614f626a6563740448526570617961626c65426c6f6174426f6e6401e101001001206163636570746564980110626f6f6c00014073746174655f626c6f61745f626f6e64e1010148526570617961626c65426c6f6174426f6e6400011073697a6528010c75363400013c697066735f636f6e74656e745f6964f908013c4261736535384d756c74696861736800000d09083870616c6c65745f73746f7261676578446973747269627574696f6e4275636b657446616d696c795265636f7264045c446973747269627574696f6e4275636b6574496e6465780128000401786e6578745f646973747269627574696f6e5f6275636b65745f696e64657828015c446973747269627574696f6e4275636b6574496e64657800001109083870616c6c65745f73746f7261676560446973747269627574696f6e4275636b65745265636f72640888446973747269627574696f6e4275636b6574496e76697465644f70657261746f72730115096c446973747269627574696f6e4275636b65744f70657261746f727301190900140148616363657074696e675f6e65775f62616773980110626f6f6c000130646973747269627574696e67980110626f6f6c00014c70656e64696e675f696e7669746174696f6e7315090188446973747269627574696f6e4275636b6574496e76697465644f70657261746f72730001246f70657261746f72731909016c446973747269627574696f6e4275636b65744f70657261746f727300013461737369676e65645f6261677328010c753634000015090c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401280453000004006901012c42547265655365743c543e000019090c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401280453000004006901012c42547265655365743c543e00001d09083870616c6c65745f73746f72616765144572726f72040454000105013c41726974686d657469634572726f72000004f447656e657269632041726974686d65746963204572726f722064756520746f20696e7465726e616c206163636f756e74696e67206f7065726174696f6e40496e76616c69644369644c656e67746800010494496e76616c696420434944206c656e67746820286d75737420626520343620627974657329444e6f4f626a656374734f6e55706c6f6164000204a0456d707479202264617461206f626a656374206372656174696f6e2220636f6c6c656374696f6e2e6053746f726167654275636b6574446f65736e744578697374000304ac546865207265717565737465642073746f72616765206275636b657420646f65736e27742065786973742e7053746f726167654275636b657449734e6f74426f756e64546f426167000404cc546865207265717565737465642073746f72616765206275636b6574206973206e6f7420626f756e6420746f2061206261672e6453746f726167654275636b65744973426f756e64546f426167000504dc546865207265717565737465642073746f72616765206275636b657420697320616c726561647920626f756e6420746f2061206261672e644e6f53746f726167654275636b6574496e7669746174696f6e0006041901496e76616c6964206f7065726174696f6e207769746820696e76697465733a207468657265206973206e6f2073746f72616765206275636b657420696e7669746174696f6e2e6453746f7261676550726f7669646572416c72656164795365740007040501496e76616c6964206f7065726174696f6e207769746820696e76697465733a2073746f726167652070726f76696465722077617320616c7265616479207365742e6053746f7261676550726f76696465724d75737442655365740008047453746f726167652070726f7669646572206d757374206265207365742e7c446966666572656e7453746f7261676550726f7669646572496e76697465640009041501496e76616c6964206f7065726174696f6e207769746820696e76697465733a20616e6f746865722073746f726167652070726f76696465722077617320696e76697465642e58496e766974656453746f7261676550726f7669646572000a041501496e76616c6964206f7065726174696f6e207769746820696e76697465733a2073746f726167652070726f76696465722077617320616c726561647920696e76697465642e8853746f726167654275636b65744964436f6c6c656374696f6e73417265456d707479000b04a053746f72616765206275636b657420696420636f6c6c656374696f6e732061726520656d7074792ed053746f726167654275636b6574734e756d62657256696f6c6174657344796e616d69634261674372656174696f6e506f6c696379000c08290153746f72616765206275636b657420696420636f6c6c656374696f6e2070726f766964656420636f6e747261646963747320746865206578697374696e672064796e616d696320626167406372656174696f6e20706f6c6963792ecc446973747269627574696f6e4275636b65747356696f6c6174657344796e616d69634261674372656174696f6e506f6c696379000d083d01446973747269627574696f6e206275636b657420696420636f6c6c656374696f6e2070726f766964656420636f6e747261646963747320746865206578697374696e672064796e616d696320626167406372656174696f6e20706f6c6963792e38456d707479436f6e74656e744964000e04b455706c6f61642064617461206572726f723a20656d70747920636f6e74656e742049442070726f76696465642e385a65726f4f626a65637453697a65000f049055706c6f61642064617461206572726f723a207a65726f206f626a6563742073697a652e88496e76616c69645374617465426c6f6174426f6e64536f757263654163636f756e74001004ec55706c6f61642064617461206572726f723a20696e76616c696420737461746520626c6f617420626f6e6420736f75726365206163636f756e742e58496e76616c696453746f7261676550726f766964657200110490496e76616c69642073746f726167652070726f766964657220666f72206275636b65742e4c496e73756666696369656e7442616c616e636500120498496e73756666696369656e742062616c616e636520666f7220616e206f7065726174696f6e2e54446174614f626a656374446f65736e7445786973740013046844617461206f626a65637420646f65736e27742065786973742e4055706c6f6164696e67426c6f636b65640014049c55706c6f6164696e67206f6620746865206e6577206f626a65637420697320626c6f636b65642e74446174614f626a6563744964436f6c6c656374696f6e4973456d7074790015048c44617461206f626a65637420696420636f6c6c656374696f6e20697320656d7074792e80536f75726365416e6444657374696e6174696f6e42616773417265457175616c001604a043616e6e6f74206d6f7665206f626a656374732077697468696e207468652073616d65206261672e54446174614f626a656374426c61636b6c6973746564001704a844617461206f626a65637420686173682069732070617274206f662074686520626c61636b6c6973742e68426c61636b6c69737453697a654c696d6974457863656564656400180478426c61636b6c6973742073697a65206c696d69742065786365656465642e84566f75636865724d61784f626a65637453697a654c696d69744578636565646564001904ac4d6178206f626a6563742073697a65206c696d697420657863656564656420666f7220766f75636865722e8c566f75636865724d61784f626a6563744e756d6265724c696d69744578636565646564001a04b44d6178206f626a656374206e756d626572206c696d697420657863656564656420666f7220766f75636865722e9453746f726167654275636b65744f626a6563744e756d6265724c696d697452656163686564001b04cc4f626a656374206e756d626572206c696d697420666f72207468652073746f72616765206275636b657420726561636865642e8c53746f726167654275636b65744f626a65637453697a654c696d697452656163686564001c04e04f626a6563747320746f74616c2073697a65206c696d697420666f72207468652073746f72616765206275636b657420726561636865642e6c496e73756666696369656e74547265617375727942616c616e6365001d04d8496e73756666696369656e74206d6f64756c652074726561737572792062616c616e636520666f7220616e206f7065726174696f6e2e8443616e6e6f7444656c6574654e6f6e456d70747953746f726167654275636b6574001e04a443616e6e6f742064656c6574652061206e6f6e2d656d7074792073746f72616765206275636b65742e68446174614f626a6563744964506172616d73417265456d707479001f04f85468652060646174615f6f626a6563745f696473602065787472696e73696320706172616d6574657220636f6c6c656374696f6e20697320656d7074792e7c53746f726167654275636b6574735065724261674c696d6974546f6f4c6f77002004d8546865206e6577206053746f726167654275636b6574735065724261674c696d697460206e756d62657220697320746f6f206c6f772e8053746f726167654275636b6574735065724261674c696d6974546f6f48696768002104dc546865206e6577206053746f726167654275636b6574735065724261674c696d697460206e756d62657220697320746f6f20686967682e8053746f726167654275636b65745065724261674c696d69744578636565646564002204cc6053746f726167654275636b6574735065724261674c696d6974602077617320657863656564656420666f722061206261672e8053746f726167654275636b6574446f65736e744163636570744e657742616773002304ac5468652073746f72616765206275636b657420646f65736e277420616363657074206e657720626167732e4044796e616d6963426167457869737473002404c843616e6e6f7420637265617465207468652064796e616d6963206261673a2064796e616d696320626167206578697374732e5444796e616d6963426167446f65736e7445786973740025046844796e616d69632062616720646f65736e27742065786973742e8853746f7261676550726f76696465724f70657261746f72446f65736e744578697374002604a053746f726167652070726f7669646572206f70657261746f7220646f65736e27742065786973742e484461746153697a654665654368616e676564002704b8496e76616c69642065787472696e7369632063616c6c3a20646174612073697a6520666565206368616e6765642e7c446174614f626a6563745374617465426c6f6174426f6e644368616e676564002804f4496e76616c69642065787472696e7369632063616c6c3a2064617461206f626a65637420737461746520626c6f617420626f6e64206368616e6765642e7843616e6e6f7444656c6574654e6f6e456d70747944796e616d69634261670029049043616e6e6f742064656c657465206e6f6e20656d7074792064796e616d6963206261672eb84d6178446973747269627574696f6e4275636b657446616d696c794e756d6265724c696d69744578636565646564002a04d44d617820646973747269627574696f6e206275636b65742066616d696c79206e756d626572206c696d69742065786365656465642e8c446973747269627574696f6e4275636b657446616d696c79446f65736e744578697374002b04a4446973747269627574696f6e206275636b65742066616d696c7920646f65736e27742065786973742e74446973747269627574696f6e4275636b6574446f65736e744578697374002c0488446973747269627574696f6e206275636b657420646f65736e27742065786973742e9c446973747269627574696f6e4275636b65744964436f6c6c656374696f6e73417265456d707479002d04b4446973747269627574696f6e206275636b657420696420636f6c6c656374696f6e732061726520656d7074792e94446973747269627574696f6e4275636b6574446f65736e744163636570744e657742616773002e04b0446973747269627574696f6e206275636b657420646f65736e277420616363657074206e657720626167732eb84d6178446973747269627574696f6e4275636b65744e756d6265725065724261674c696d69744578636565646564002f04d84d617820646973747269627574696f6e206275636b6574206e756d6265722070657220626167206c696d69742065786365656465642e84446973747269627574696f6e4275636b657449734e6f74426f756e64546f426167003004a8446973747269627574696f6e206275636b6574206973206e6f7420626f756e6420746f2061206261672e78446973747269627574696f6e4275636b65744973426f756e64546f42616700310498446973747269627574696f6e206275636b657420697320626f756e6420746f2061206261672e90446973747269627574696f6e4275636b6574735065724261674c696d6974546f6f4c6f77003204ec546865206e65772060446973747269627574696f6e4275636b6574735065724261674c696d697460206e756d62657220697320746f6f206c6f772e94446973747269627574696f6e4275636b6574735065724261674c696d6974546f6f48696768003304f0546865206e65772060446973747269627574696f6e4275636b6574735065724261674c696d697460206e756d62657220697320746f6f20686967682e9c446973747269627574696f6e50726f76696465724f70657261746f72446f65736e744578697374003404b4446973747269627574696f6e2070726f7669646572206f70657261746f7220646f65736e27742065786973742ea8446973747269627574696f6e50726f76696465724f70657261746f72416c7265616479496e7669746564003504bc446973747269627574696f6e2070726f7669646572206f70657261746f7220616c726561647920696e76697465642e7c446973747269627574696f6e50726f76696465724f70657261746f72536574003604ac446973747269627574696f6e2070726f7669646572206f70657261746f7220616c7265616479207365742e784e6f446973747269627574696f6e4275636b6574496e7669746174696f6e003704884e6f20646973747269627574696f6e206275636b657420696e7669746174696f6e2eac4d7573744265446973747269627574696f6e50726f76696465724f70657261746f72466f724275636b65740038042901496e76616c6964206f7065726174696f6e733a206d757374206265206120646973747269627574696f6e2070726f7669646572206f70657261746f7220666f722061206275636b65742ef84d61784e756d6265724f6650656e64696e67496e7669746174696f6e734c696d6974466f72446973747269627574696f6e4275636b65745265616368656400390429014d6178206e756d626572206f662070656e64696e6720696e7669746174696f6e73206c696d697420666f72206120646973747269627574696f6e206275636b657420726561636865642ec04d61784e756d6265724f664f70657261746f7273506572446973747269627574696f6e4275636b657452656163686564003a04e84d6178206e756d626572206f66206f70657261746f727320666f72206120646973747269627574696f6e206275636b657420726561636865642ea8446973747269627574696f6e46616d696c79426f756e64546f4261674372656174696f6e506f6c696379003b04cc446973747269627574696f6e2066616d696c7920626f756e6420746f206120626167206372656174696f6e20706f6c6963792e644d6178446174614f626a65637453697a654578636565646564003c04784d61782064617461206f626a6563742073697a652065786365656465642e60496e76616c69645472616e736163746f724163636f756e74003d04b8496e76616c6964207472616e736163746f72206163636f756e7420494420666f722074686973206275636b65742ec04e756d6265724f6653746f726167654275636b6574734f7574736964654f66416c6c6f776564436f6e747261696e7473003e049c4e6f7420616c6c6f77656420276e756d626572206f662073746f72616765206275636b65747327d44e756d6265724f66446973747269627574696f6e4275636b6574734f7574736964654f66416c6c6f776564436f6e747261696e7473003f04b04e6f7420616c6c6f77656420276e756d626572206f6620646973747269627574696f6e206275636b657473273043616c6c44697361626c65640040043443616c6c2044697361626c6564048053746f72616765206d6f64756c6520707265646566696e6564206572726f727321090c5070616c6c65745f70726f6a6563745f746f6b656e1474797065732c4163636f756e7444617461101c42616c616e63650118345374616b696e6753746174757301250948526570617961626c65426c6f6174426f6e6401e1014056657374696e675363686564756c65730129090018014476657374696e675f7363686564756c65732909014056657374696e675363686564756c6573000118616d6f756e7418011c42616c616e636500015073706c69745f7374616b696e675f7374617475733d0901544f7074696f6e3c5374616b696e675374617475733e000128626c6f61745f626f6e64e1010148526570617961626c65426c6f6174426f6e640001606e6578745f76657374696e675f7472616e736665725f696428010c7536340001806c6173745f73616c655f746f74616c5f7075726368617365645f616d6f756e74410901784f7074696f6e3c28546f6b656e53616c6549642c2042616c616e6365293e000025090c5070616c6c65745f70726f6a6563745f746f6b656e147479706573345374616b696e67537461747573041c42616c616e636501180008012073706c69745f6964100138526576656e756553706c69744964000118616d6f756e7418011c42616c616e6365000029090c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b0111030456012d090453000004003109013842547265654d61703c4b2c20563e00002d090c5070616c6c65745f70726f6a6563745f746f6b656e1474797065733c56657374696e675363686564756c65082c426c6f636b4e756d62657201101c42616c616e63650118001401686c696e6561725f76657374696e675f73746172745f626c6f636b10012c426c6f636b4e756d62657200015c6c696e6561725f76657374696e675f6475726174696f6e10012c426c6f636b4e756d626572000130636c6966665f616d6f756e7418011c42616c616e636500015c706f73745f636c6966665f746f74616c5f616d6f756e7418011c42616c616e63650001346275726e65645f616d6f756e7418011c42616c616e636500003109042042547265654d617008044b0111030456012d090004003509000000350900000239090039090000040811032d09003d0904184f7074696f6e0404540125090108104e6f6e6500000010536f6d65040025090000010000410904184f7074696f6e0404540145090108104e6f6e6500000010536f6d6504004509000001000045090000040810180049090c5070616c6c65745f70726f6a6563745f746f6b656e14747970657324546f6b656e44617461141c42616c616e636501181048617368012c2c426c6f636b4e756d626572011024546f6b656e53616c6501210344526576656e756553706c69745374617465014d09002c0130746f74616c5f737570706c7918011c42616c616e6365000134746f6b656e735f69737375656418011c42616c616e63650001306e6578745f73616c655f696410012c546f6b656e53616c65496400011073616c65590901444f7074696f6e3c546f6b656e53616c653e00013c7472616e736665725f706f6c696379c50201505472616e73666572506f6c6963793c486173683e00011873796d626f6c2c011048617368000138706174726f6e6167655f696e666f5d09018c506174726f6e616765446174613c42616c616e63652c20426c6f636b4e756d6265723e00013c6163636f756e74735f6e756d62657228010c753634000148726576656e75655f73706c69745f72617465d502011c5065726d696c6c000134726576656e75655f73706c69744d090144526576656e756553706c697453746174650001546e6578745f726576656e75655f73706c69745f6964100138526576656e756553706c6974496400004d090c5070616c6c65745f70726f6a6563745f746f6b656e14747970657344526576656e756553706c6974537461746508284a6f7942616c616e636501182c426c6f636b4e756d6265720110010820496e616374697665000000184163746976650400510901a4526576656e756553706c6974496e666f3c4a6f7942616c616e63652c20426c6f636b4e756d6265723e0001000051090c5070616c6c65745f70726f6a6563745f746f6b656e14747970657340526576656e756553706c6974496e666f08284a6f7942616c616e636501182c426c6f636b4e756d6265720110000c0128616c6c6f636174696f6e1801284a6f7942616c616e636500012074696d656c696e655509015454696d656c696e653c426c6f636b4e756d6265723e0001446469766964656e64735f636c61696d65641801284a6f7942616c616e6365000055090c5070616c6c65745f70726f6a6563745f746f6b656e1474797065732054696d656c696e65042c426c6f636b4e756d626572011000080114737461727410012c426c6f636b4e756d6265720001206475726174696f6e10012c426c6f636b4e756d6265720000590904184f7074696f6e0404540121030108104e6f6e6500000010536f6d650400210300000100005d090c5070616c6c65745f70726f6a6563745f746f6b656e14747970657334506174726f6e61676544617461081c42616c616e636501182c426c6f636b4e756d6265720110000c01107261746561090124426c6f636b52617465000180756e636c61696d65645f706174726f6e6167655f74616c6c795f616d6f756e7418011c42616c616e63650001906c6173745f756e636c61696d65645f706174726f6e6167655f74616c6c795f626c6f636b10012c426c6f636b4e756d626572000061090c5070616c6c65745f70726f6a6563745f746f6b656e14747970657324426c6f636b52617465000004002503012c5065727175696e74696c6c000065090c5070616c6c65745f70726f6a6563745f746f6b656e186572726f7273144572726f720404540001c43c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f772980496e73756666696369656e745472616e736665727261626c6542616c616e636500010481014163636f756e742773207472616e736665727261626c652062616c616e636520697320696e73756666696369656e7420746f20706572666f726d20746865207472616e73666572206f7220696e697469616c697a6520746f6b656e2073616c6544546f6b656e446f65734e6f7445786973740002047852657175657374656420746f6b656e20646f6573206e6f74206578697374784163636f756e74496e666f726d6174696f6e446f65734e6f74457869737400030494526571756573746564206163636f756e74206461746120646f6573206e6f74206578697374945472616e7366657244657374696e6174696f6e4d656d626572446f65734e6f74457869737400040419014174206c65617374206f6e65206f6620746865207472616e736665722064657374696e6174696f6e73206973206e6f7420616e206578697374696e67206d656d626572206964784d65726b6c6550726f6f66566572696669636174696f6e4661696c757265000504804d65726b6c652070726f6f6620766572696669636174696f6e206661696c6564a8546172676574506174726f6e6167655261746549734869676865725468616e43757272656e7452617465000604c4546172676574205261746520697320686967686572207468616e2063757272656e7420706174726f6e61676520726174655c546f6b656e53796d626f6c416c7265616479496e5573650007045453796d626f6c20616c726561647920696e2075736590496e697469616c416c6c6f636174696f6e546f4e6f6e4578697374696e674d656d62657200080441014174206c65617374206f6e65206f6620746865206d656d626572732070726f76696465642061732070617274206f6620496e697469616c416c6c6f636174696f6e20646f6573206e6f74206578697374504163636f756e74416c7265616479457869737473000904584163636f756e7420416c7265616479206578697374736c546f6b656e49737375616e63654e6f74496e49646c655374617465000a04a8546f6b656e27732063757272656e74206f66666572696e67207374617465206973206e6f742049646c6558496e73756666696369656e744a6f7942616c616e6365000b04dc496e73756666696369656e74204a4f592042616c616e636520746f20636f76657220746865207472616e73616374696f6e20636f7374736c4a6f795472616e736665725375626a656374546f44757374696e67000c045d0154686520616d6f756e74206f66204a4f5920746f206265207472616e73666572726564206973206e6f7420656e6f75676820746f206b656570207468652064657374696e6174696f6e206163636f756e7420616c697665cc417474656d7074546f52656d6f76654e6f6e4f776e65644163636f756e74556e6465725065726d697373696f6e65644d6f6465000d04ec417474656d707420746f2072656d6f7665206e6f6e206f776e6564206163636f756e7420756e646572207065726d697373696f6e6564206d6f646578417474656d7074546f52656d6f76654e6f6e456d7074794163636f756e74000e04e4417474656d707420746f2072656d6f766520616e206163636f756e74207769746820736f6d65206f75747374616e64696e6720746f6b656e739c43616e6e6f744a6f696e57686974656c697374496e5065726d697373696f6e6c6573734d6f6465000f04b043616e6e6f74206a6f696e2077686974656c69737420696e207065726d697373696f6e6c657373206d6f6465a443616e6e6f7444656973737565546f6b656e576974684f75747374616e64696e674163636f756e7473001004b843616e6e6f74204465697373756520546f6b656e2077697468206f75747374616e64696e67206163636f756e7473384e6f5570636f6d696e6753616c650011047854686520746f6b656e20686173206e6f207570636f6d696e672073616c65304e6f41637469766553616c65001204a854686520746f6b656e20686173206e6f206163746976652073616c6520617420746865206d6f6d656e748c496e73756666696369656e7442616c616e6365466f72546f6b656e507572636861736500130401014163636f756e742773204a4f592062616c616e636520697320696e73756666696369656e7420746f206d616b652074686520746f6b656e207075726368617365544e6f74456e6f756768546f6b656e734f6e53616c650014047d01416d6f756e74206f6620746f6b656e7320746f207075726368617365206f6e2073616c65206578636565647320746865207175616e74697479206f6620746f6b656e73207374696c6c20617661696c61626c65206f6e207468652073616c656853616c655374617274696e67426c6f636b496e54686550617374001504b05370656369666965642073616c65207374617274696e6720626c6f636b20697320696e2074686520706173745c53616c6541636365737350726f6f66526571756972656400160481014f6e6c792077686974656c6973746564207061727469636970616e74732061726520616c6c6f77656420746f20616363657373207468652073616c652c207468657265666f7265206163636573732070726f6f662069732072657175697265649453616c6541636365737350726f6f665061727469636970616e7449734e6f7453656e64657200170829015061727469636970616e7420696e2073616c65206163636573732070726f6f662070726f766964656420647572696e67206070757263686173655f746f6b656e735f6f6e5f73616c656084646f6573206e6f74206d61746368207468652073656e646572206163636f756e745c53616c6550757263686173654361704578636565646564001808610153616c65207061727469636970616e742773206361702028656974686572206361705f7065725f6d656d626572206f722077686974656c6973746564207061727469636970616e742773207370656369666963206361702978776173206578636565646564207769746820746865207075726368617365b04d617856657374696e675363686564756c65735065724163636f756e74506572546f6b656e52656163686564001908c843616e6e6f742061646420616e6f746865722076657374696e67207363686564756c6520746f20616e206163636f756e742e31014d6178696d756d206e756d626572206f662076657374696e67207363686564756c657320666f722074686973206163636f756e742d746f6b656e20706169722077617320726561636865642e6050726576696f757353616c654e6f7446696e616c697a6564001a04e450726576696f75732073616c6520776173207374696c6c206e6f742066696e616c697a65642c2066696e616c697a652069742066697273742e444e6f546f6b656e73546f5265636f766572001b041501546865726520617265206e6f2072656d61696e696e6720746f6b657320746f207265636f7665722066726f6d207468652070726576696f757320746f6b656e2073616c652e5053616c654475726174696f6e546f6f53686f7274001c04dc5370656369666965642073616c65206475726174696f6e2069732073686f72746572207468616e204d696e53616c654475726174696f6e4853616c654475726174696f6e49735a65726f001d047053616c65206475726174696f6e2063616e6e6f74206265207a65726f7053616c655570706572426f756e645175616e7469747949735a65726f001e048c557070657220626f756e64207175616e746974792063616e6e6f74206265207a65726f5853616c654361705065724d656d62657249735a65726f001f049850757263686173652063617020706572206d656d6265722063616e6e6f74206265207a65726f4c53616c65556e6974507269636549735a65726f00200484546f6b656e277320756e69742070726963652063616e6e6f74206265207a65726f6053616c655075726368617365416d6f756e7449735a65726f002104cc416d6f756e74206f6620746f6b656e7320746f207075726368617365206f6e2073616c652063616e6e6f74206265207a65726f7c526576656e756553706c697454696d65546f5374617274546f6f53686f7274002204d453706563696669656420726576656e75652073706c6974207374617274696e6720626c6f636b20697320696e20746865207061737470526576656e756553706c69744475726174696f6e546f6f53686f72740023048c526576656e75652053706c6974206475726174696f6e20697320746f6f2073686f727484526576656e756553706c6974416c7265616479416374697665466f72546f6b656e002404a8417474656d707420746f2061637469766174652073706c69742077697468206f6e65206f6e676f696e6774526576656e756553706c69744e6f74416374697665466f72546f6b656e0025043501417474656d707420746f206d616b6520726576656e75652073706c6974206f7065726174696f6e73207769746820746f6b656e206e6f7420696e206163746976652073706c697420737461746554526576656e756553706c69744469644e6f74456e640026047c526576656e75652053706c697420686173206e6f7420656e6465642079657458526576656e756553706c69744e6f744f6e676f696e67002704bc526576656e75652053706c697420666f7220746f6b656e206163746976652c20627574206e6f74206f6e676f696e676055736572416c726561647950617274696369706174696e67002804bc5573657220616c72656164792070617274696369706174696e6720696e2074686520726576656e75652073706c6974a0496e73756666696369656e7442616c616e6365466f7253706c697450617274696369706174696f6e0029041d015573657220646f6573206e6f7420706f7373657320656e6f7567682062616c616e636520746f20706172746963697061746520696e2074686520726576656e75652073706c69747c557365724e6f745061727469636970616e74696e67496e416e7953706c6974002a049855736572206973206e6f742070617274696369706174696e6720696e20616e792073706c69749843616e6e6f745061727469636970617465496e53706c6974576974685a65726f416d6f756e74002b04e8417474656d707420746f20706172746963697061746520696e20612073706c69742077697468207a65726f20746f6b656e20746f207374616b65a043616e6e6f74497373756553706c6974576974685a65726f416c6c6f636174696f6e416d6f756e74002c04dc417474656d707420746f20697373756520696e20612073706c69742077697468207a65726f20616c6c6f636174696f6e20616d6f756e74b043616e6e6f744d6f64696679537570706c795768656e526576656e756553706c697473417265416374697665002d04d4417474656d707420746f206d6f6469667920737570706c79207768656e20726576656e75652073706c69742069732061637469766558526576656e756553706c69745261746549735a65726f002e0478526576656e75652073706c697420726174652063616e6e6f742062652030404275726e416d6f756e7449735a65726f002f047c50726f766964656420616d6f756e7420746f206275726e206973203d3d2030a04275726e416d6f756e74477265617465725468616e4163636f756e74546f6b656e73416d6f756e740030043101416d6f756e74206f6620746f6b656e7320746f206275726e206578636565647320746f74616c20616d6f756e74206f6620746f6b656e73206f776e656420627920746865206163636f756e740069090c5c70616c6c65745f70726f706f73616c735f656e67696e651474797065732050726f706f73616c102c426c6f636b4e756d62657201102850726f706f736572496401281c42616c616e63650118244163636f756e744964010000200128706172616d65746572736d0901a050726f706f73616c506172616d65746572733c426c6f636b4e756d6265722c2042616c616e63653e00012c70726f706f7365725f696428012850726f706f73657249640001306163746976617465645f617410012c426c6f636b4e756d6265720001187374617475732d03016c50726f706f73616c5374617475733c426c6f636b4e756d6265723e000138766f74696e675f726573756c747371090134566f74696e67526573756c747300015465786163745f657865637574696f6e5f626c6f636b0102014c4f7074696f6e3c426c6f636b4e756d6265723e00016c6e725f6f665f636f756e63696c5f636f6e6669726d6174696f6e7310010c7533320001487374616b696e675f6163636f756e745f69649401444f7074696f6e3c4163636f756e7449643e00006d090c5c70616c6c65745f70726f706f73616c735f656e67696e651474797065734850726f706f73616c506172616d6574657273082c426c6f636b4e756d62657201101c42616c616e6365011800200134766f74696e675f706572696f6410012c426c6f636b4e756d62657200013067726163655f706572696f6410012c426c6f636b4e756d626572000168617070726f76616c5f71756f72756d5f70657263656e7461676510010c753332000174617070726f76616c5f7468726573686f6c645f70657263656e7461676510010c753332000168736c617368696e675f71756f72756d5f70657263656e7461676510010c753332000174736c617368696e675f7468726573686f6c645f70657263656e7461676510010c75333200013872657175697265645f7374616b654501013c4f7074696f6e3c42616c616e63653e000144636f6e737469747574696f6e616c69747910010c753332000071090c5c70616c6c65745f70726f706f73616c735f656e67696e6514747970657334566f74696e67526573756c7473000010012c61627374656e74696f6e7310010c753332000124617070726f76616c7310010c75333200012872656a656374696f6e7310010c75333200011c736c617368657310010c753332000075090c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003001185665633c543e00007909000004081028007d09085c70616c6c65745f70726f706f73616c735f656e67696e65144572726f7204045400015c3c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f772948456d7074795469746c6550726f76696465640001049050726f706f73616c2063616e6e6f74206861766520616e20656d707479207469746c652260456d7074794465736372697074696f6e50726f76696465640002048850726f706f73616c2063616e6e6f74206861766520616e20656d70747920626f6479385469746c654973546f6f4c6f6e67000304445469746c6520697320746f6f206c6f6e67504465736372697074696f6e4973546f6f4c6f6e670004045c4465736372697074696f6e20697320746f6f206c6f6e674050726f706f73616c4e6f74466f756e640005046c5468652070726f706f73616c20646f6573206e6f742065786973744450726f706f73616c46696e616c697a65640006047450726f706f73616c2069732066696e616c697a656420616c726561647930416c7265616479566f7465640007049c5468652070726f706f73616c2068617665206265656e20616c726561647920766f746564206f6e244e6f74417574686f72000804344e6f7420616e20617574686f727c4d617841637469766550726f706f73616c4e756d6265724578636565646564000904904d6178206163746976652070726f706f73616c73206e756d62657220657863656564656428456d7074795374616b65000a04a05374616b652063616e6e6f7420626520656d707479207769746820746869732070726f706f73616c485374616b6553686f756c644265456d707479000b049c5374616b652073686f756c6420626520656d70747920666f7220746869732070726f706f73616c605374616b654469666665727346726f6d5265717569726564000c04b05374616b6520646966666572732066726f6d207468652070726f706f73616c20726571756972656d656e747384496e76616c6964506172616d65746572417070726f76616c5468726573686f6c64000d0484417070726f76616c207468726573686f6c642063616e6e6f74206265207a65726f84496e76616c6964506172616d65746572536c617368696e675468726573686f6c64000e0484536c617368696e67207468726573686f6c642063616e6e6f74206265207a65726f4452657175697265526f6f744f726967696e000f04845265717569726520726f6f74206f726967696e20696e2065787472696e736963734050726f706f73616c486173566f746573001004f4446973616c6c6f7720746f2063616e63656c207468652070726f706f73616c2069662074686572652061726520616e7920766f746573206f6e2069742e5c5a65726f4578616374457865637574696f6e426c6f636b00110494457861637420657865637574696f6e20626c6f636b2063616e6e6f74206265207a65726f2e68496e76616c69644578616374457865637574696f6e426c6f636b001204e0457861637420657865637574696f6e20626c6f636b2063616e6e6f74206265206c657373207468616e2063757272656e745f626c6f636b2e6c496e73756666696369656e7442616c616e6365466f725374616b65001304a05468657265206973206e6f7420656e6f7567682062616c616e636520666f722061207374616b652e44436f6e666c696374696e675374616b6573001404bc54686520636f6e666c696374696e67207374616b6520646973636f76657265642e2043616e6e6f74207374616b652e78496e76616c69645374616b696e674163636f756e74466f724d656d626572001504ac5374616b696e67206163636f756e7420646f65736e27742062656c6f6e6720746f2061206d656d6265722e8c4d6178446973706174636861626c6543616c6c436f646553697a6545786365656465640016043d015468652073697a65206f6620656e636f64656420646973706174636861626c652063616c6c20746f206265206578656375746564206279207468652070726f706f73616c20697320746f6f20626967047c456e67696e65206d6f64756c6520707265646566696e6564206572726f727381090c6c70616c6c65745f70726f706f73616c735f64697363757373696f6e1474797065734044697363757373696f6e5468726561640c204d656d626572496401282c426c6f636b4e756d62657201103c54687265616457686974656c697374018509000c01306163746976617465645f617410012c426c6f636b4e756d626572000124617574686f725f69642801204d656d62657249640001106d6f64658909016c5468726561644d6f64653c54687265616457686974656c6973743e000085090c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401280453000004006901012c42547265655365743c543e000089090c6c70616c6c65745f70726f706f73616c735f64697363757373696f6e147479706573285468726561644d6f6465043c54687265616457686974656c6973740185090108104f70656e00000018436c6f73656404008509013c54687265616457686974656c697374000100008d090c6c70616c6c65745f70726f706f73616c735f64697363757373696f6e1474797065733844697363757373696f6e506f73740c204d656d626572496401282c426c6f636b4e756d626572011048526570617961626c65426c6f6174426f6e6401e101000c0124617574686f725f69642801204d656d626572496400013c636c65616e75705f7061795f6f6666e1010148526570617961626c65426c6f6174426f6e6400012c6c6173745f65646974656410012c426c6f636b4e756d62657200009109086c70616c6c65745f70726f706f73616c735f64697363757373696f6e144572726f720404540001283c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f772944546872656164446f65736e7445786973740001045054687265616420646f65736e27742065786973743c506f7374446f65736e74457869737400020448506f737420646f65736e27742065786973744452657175697265526f6f744f726967696e000304845265717569726520726f6f74206f726967696e20696e2065787472696e736963736043616e6e6f74506f73744f6e436c6f7365645468726561640004046501546865207468726561642068617320436c6f736564206d6f64652e20416e6420706f737420617574686f7220646f65736e27742062656c6f6e6720746f20636f756e63696c206f7220616c6c6f776564206d656d626572732e504e6f74417574686f724f72436f756e63696c6f720005049453686f756c642062652074687265616420617574686f72206f7220636f756e63696c6f722e604d617857686974654c69737453697a654578636565646564000604a04d617820616c6c6f77656420617574686f7273206c697374206c696d69742065786365656465642e7457686974656c69737465644d656d626572446f65734e6f74457869737400070849014174206c65617374206f6e65206f6620746865206d656d626572206964732070726f76696465642061732070617274206f6620636c6f736564207468726561642077686974656c6973742062656c6f6e677364746f2061206e6f6e2d6578697374696e67206d656d6265722e68496e73756666696369656e7442616c616e6365466f72506f7374000804c44163636f756e742068617320696e73756666696369656e742062616c616e636520746f20637265617465206120706f73744043616e6e6f7444656c657465506f73740009049c4163636f756e742063616e27742064656c65746520706f737420617420746865206d6f6d656e74048c44697363757373696f6e206d6f64756c6520707265646566696e6564206572726f72739509085870616c6c65745f70726f706f73616c735f636f646578144572726f72040454000168545369676e616c50726f706f73616c4973456d707479000004a050726f7669646564207465787420666f7220746578742070726f706f73616c20697320656d7074795852756e74696d6550726f706f73616c4973456d707479000104f050726f7669646564205741534d20636f646520666f72207468652072756e74696d6520757067726164652070726f706f73616c20697320656d70747990496e76616c696446756e64696e675265717565737450726f706f73616c42616c616e6365000204bc496e76616c69642062616c616e63652076616c756520666f7220746865207370656e64696e672070726f706f73616c54496e76616c696456616c696461746f72436f756e74000304f8496e76616c69642076616c696461746f7220636f756e7420666f722074686520277365742076616c696461746f7220636f756e74272070726f706f73616c4452657175697265526f6f744f726967696e000404845265717569726520726f6f74206f726967696e20696e2065787472696e73696373a8496e76616c6964436f756e63696c456c656374696f6e506172616d65746572436f756e63696c53697a65000504c4496e76616c696420636f756e63696c20656c656374696f6e20706172616d65746572202d20636f756e63696c5f73697a65b4496e76616c6964436f756e63696c456c656374696f6e506172616d6574657243616e6469646163794c696d6974000604d0496e76616c696420636f756e63696c20656c656374696f6e20706172616d65746572202d2063616e6469646163792d6c696d6974b4496e76616c6964436f756e63696c456c656374696f6e506172616d657465724d696e566f74696e675374616b65000704d4496e76616c696420636f756e63696c20656c656374696f6e20706172616d65746572202d206d696e2d766f74696e675f7374616b65b8496e76616c6964436f756e63696c456c656374696f6e506172616d657465724e65775465726d4475726174696f6e000804d8496e76616c696420636f756e63696c20656c656374696f6e20706172616d65746572202d206e65775f7465726d5f6475726174696f6eb8496e76616c6964436f756e63696c456c656374696f6e506172616d657465724d696e436f756e63696c5374616b65000904d8496e76616c696420636f756e63696c20656c656374696f6e20706172616d65746572202d206d696e5f636f756e63696c5f7374616b65b8496e76616c6964436f756e63696c456c656374696f6e506172616d6574657252657665616c696e67506572696f64000a04d4496e76616c696420636f756e63696c20656c656374696f6e20706172616d65746572202d2072657665616c696e675f706572696f64ac496e76616c6964436f756e63696c456c656374696f6e506172616d65746572566f74696e67506572696f64000b04c8496e76616c696420636f756e63696c20656c656374696f6e20706172616d65746572202d20766f74696e675f706572696f64bc496e76616c6964436f756e63696c456c656374696f6e506172616d65746572416e6e6f756e63696e67506572696f64000c04d8496e76616c696420636f756e63696c20656c656374696f6e20706172616d65746572202d20616e6e6f756e63696e675f706572696f6484496e76616c6964576f726b696e6747726f75704275646765744361706163697479000d04bc496e76616c696420776f726b696e672067726f75702062756467657420636170616369747920706172616d65746572a0496e76616c69645365744c656164506172616d6574657243616e6e6f744265436f756e63696c6f72000e042d01496e76616c69642027736574206c6561642070726f706f73616c2720706172616d65746572202d2070726f706f736564206c6561642063616e6e6f74206265206120636f756e63696c6f724c536c617368696e675374616b6549735a65726f000f042101496e76616c69642027736c617368207374616b652070726f706f73616c2720706172616d65746572202d2063616e6e6f7420736c617368206279207a65726f2062616c616e63652e5444656372656173696e675374616b6549735a65726f0010043901496e76616c696420276465637265617365207374616b652070726f706f73616c2720706172616d65746572202d2063616e6e6f74206465637265617365206279207a65726f2062616c616e63652e80496e73756666696369656e7446756e6473466f724275646765745570646174650011041d01496e73756666696369656e742066756e647320666f72202755706461746520576f726b696e672047726f757020427564676574272070726f706f73616c20657865637574696f6eb0496e76616c696446756e64696e675265717565737450726f706f73616c4e756d6265724f664163636f756e740012045101496e76616c6964206e756d626572206f66206163636f756e747320726563696576696e672066756e64696e67207265717565737420666f72202746756e64696e672052657175657374272070726f706f73616c2eb0496e76616c696446756e64696e675265717565737450726f706f73616c52657065617465644163636f756e74001304bc5265706561746564206163636f756e7420696e202746756e64696e672052657175657374272070726f706f73616c2ee0496e76616c69644368616e6e656c5061796f75747350726f706f73616c4d696e436173686f7574457863656564734d6178436173686f7574001404e50154686520737065636966696564206d696e206368616e6e656c20636173686f75742069732067726561746572207468616e2074686520737065636966696564206d6178206368616e6e656c20636173686f757420696e2060557064617465204368616e6e656c205061796f757473602070726f706f73616c2e4c496e76616c69644c656164576f726b657249640015049050726f7669646564206c65616420776f726b6572206964206973206e6f742076616c696450496e76616c69644c6561644f70656e696e6749640016049450726f7669646564206c656164206f70656e696e67206964206973206e6f742076616c696460496e76616c69644c6561644170706c69636174696f6e4964001704a450726f7669646564206c656164206170706c69636174696f6e206964206973206e6f742076616c696444496e76616c696450726f706f73616c49640018048450726f76696465642070726f706f73616c206964206973206e6f742076616c69643c41726974686d657469634572726f720019043c41726974686d656963204572726f720478436f646578206d6f64756c6520707265646566696e6564206572726f727399090c5070616c6c65745f776f726b696e675f67726f75701474797065731c4f70656e696e670c2c426c6f636b4e756d62657201101c42616c616e636501181048617368012c001801306f70656e696e675f747970657d03012c4f70656e696e675479706500011c6372656174656410012c426c6f636b4e756d6265720001406465736372697074696f6e5f686173682c0110486173680001307374616b655f706f6c696379610301845374616b65506f6c6963793c426c6f636b4e756d6265722c2042616c616e63653e0001407265776172645f7065725f626c6f636b4501013c4f7074696f6e3c42616c616e63653e0001386372656174696f6e5f7374616b6518011c42616c616e636500009d090c5070616c6c65745f776f726b696e675f67726f7570147479706573384a6f624170706c69636174696f6e0c244163636f756e7449640100204d656d626572496401281048617368012c0018013c726f6c655f6163636f756e745f69640001244163636f756e7449640001447265776172645f6163636f756e745f69640001244163636f756e7449640001487374616b696e675f6163636f756e745f69640001244163636f756e7449640001246d656d6265725f69642801204d656d62657249640001406465736372697074696f6e5f686173682c0110486173680001286f70656e696e675f69642801244f70656e696e6749640000a1090c5070616c6c65745f776f726b696e675f67726f75701474797065732c47726f7570576f726b657210244163636f756e7449640100204d656d626572496401282c426c6f636b4e756d62657201101c42616c616e63650118002401246d656d6265725f69642801204d656d626572496400013c726f6c655f6163636f756e745f69640001244163636f756e7449640001487374616b696e675f6163636f756e745f69640001244163636f756e7449640001447265776172645f6163636f756e745f69640001244163636f756e744964000148737461727465645f6c656176696e675f61740102014c4f7074696f6e3c426c6f636b4e756d6265723e0001506a6f625f756e7374616b696e675f706572696f6410012c426c6f636b4e756d6265720001407265776172645f7065725f626c6f636b4501013c4f7074696f6e3c42616c616e63653e0001346d69737365645f7265776172644501013c4f7074696f6e3c42616c616e63653e000128637265617465645f617410012c426c6f636b4e756d6265720000a5090c5070616c6c65745f776f726b696e675f67726f7570186572726f7273144572726f720804540004490001803c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f7729605374616b6542616c616e636543616e6e6f7442655a65726f0001049850726f7669646564207374616b652062616c616e63652063616e6e6f74206265207a65726f2e4c4f70656e696e67446f65734e6f7445786973740002045c4f70656e696e6720646f6573206e6f742065786973742e6443616e6e6f74486972654d756c7469706c654c656164657273000304bc43616e6e6f742066696c6c206f70656e696e672077697468206d756c7469706c65206170706c69636174696f6e732e74576f726b65724170706c69636174696f6e446f65734e6f74457869737400040488576f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e744d6178416374697665576f726b65724e756d626572457863656564656400050488576f726b696e672067726f75702073697a65206c696d69742065786365656465642e9c5375636365737366756c576f726b65724170706c69636174696f6e446f65734e6f744578697374000604b45375636365737366756c20776f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e8043616e6e6f74486972654c65616465725768656e4c6561646572457869737473000704c45468657265206973206c656164657220616c72656164792c2063616e6e6f74206869726520616e6f74686572206f6e652e4049734e6f744c6561644163636f756e740008044c4e6f742061206c656164206163636f756e742e4443757272656e744c6561644e6f745365740009046043757272656e74206c656164206973206e6f74207365742e48576f726b6572446f65734e6f744578697374000a0458576f726b657220646f6573206e6f742065786973742e4c496e76616c69644d656d6265724f726967696e000b0470496e76616c6964206f726967696e20666f722061206d656d6265722e705369676e657249734e6f74576f726b6572526f6c654163636f756e74000c04885369676e6572206973206e6f7420776f726b657220726f6c65206163636f756e742e4842656c6f774d696e696d756d5374616b6573000d04885374616b696e67206c657373207468616e20746865206c6f77657220626f756e642e7c496e73756666696369656e7442616c616e6365546f436f7665725374616b65000e0490496e73756666696369656e742062616c616e636520746f20636f766572207374616b652e884170706c69636174696f6e5374616b65446f65736e744d617463684f70656e696e67000f04d84170706c69636174696f6e207374616b65206973206c657373207468616e207265717569726564206f70656e696e67207374616b652e504f726967696e49734e6f744170706c6963616e74001004604f726967696e206973206e6f74206170706c6963616e742e3c576f726b657249734c656176696e6700110498496e76616c6964206f7065726174696f6e202d20776f726b6572206973206c656176696e672e5043616e6e6f74526577617264576974685a65726f0012046452657761726420636f756c64206e6f74206265207a65726f2e78496e76616c69645374616b696e674163636f756e74466f724d656d626572001304ac5374616b696e67206163636f756e7420646f65736e27742062656c6f6e6720746f2061206d656d6265722e5c436f6e666c6963745374616b65734f6e4163636f756e74001404b05374616b696e67206163636f756e7420636f6e7461696e7320636f6e666c696374696e67207374616b65732e44576f726b65724861734e6f5265776172640015047c576f726b657220686173206e6f20726563757272696e67207265776172642e78556e7374616b696e67506572696f644c6573735468616e4d696e696d756d001604090153706563696669656420756e7374616b696e6720706572696f64206973206c657373207468656e206d696e696d756d2073657420666f72207468652067726f75702e3c43616e6e6f745370656e645a65726f00170460496e76616c6964207370656e64696e6720616d6f756e742e74496e73756666696369656e74427564676574466f725370656e64696e67001804a449742773206e6f7420656e6f7567682062756467657420666f722074686973207370656e64696e672e584e6f4170706c69636174696f6e7350726f7669646564001904bc43616e6e6f742066696c6c206f70656e696e67202d206e6f206170706c69636174696f6e732070726f76696465642ea043616e6e6f7444656372656173655374616b6544656c7461477265617465725468616e5374616b65001a04fc43616e6e6f74206465637265617365207374616b65202d207374616b652064656c74612067726561746572207468616e20696e697469616c207374616b652e644170706c69636174696f6e734e6f74466f724f70656e696e67001b04f0547279696e6720746f2066696c6c206f70656e696e67207769746820616e206170706c69636174696f6e20666f72206f74686572206f70656e696e6764576f726b657253746f7261676556616c7565546f6f4c6f6e67001c0480576f726b65722073746f72616765207465787420697320746f6f206c6f6e672e70496e73756666696369656e74546f6b656e73466f7246756e64696e67001d04f8496e73756666696369656e7420746f6b656e7320666f722066756e64696e6720286f6e206d656d62657220636f6e74726f6c6c6572206163636f756e7429445a65726f546f6b656e7346756e64696e67001e047c547279696e6720746f2066756e642077697468207a65726f20746f6b656e7378496e73756666696369656e7442616c616e6365466f725472616e73666572001f04b443616e6e6f742077697468647261773a20696e73756666696369656e74206275646765742062616c616e63652e048c44697363757373696f6e206d6f64756c6520707265646566696e6564206572726f7273a9090c5070616c6c65745f776f726b696e675f67726f7570186572726f7273144572726f720804540004490001803c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f7729605374616b6542616c616e636543616e6e6f7442655a65726f0001049850726f7669646564207374616b652062616c616e63652063616e6e6f74206265207a65726f2e4c4f70656e696e67446f65734e6f7445786973740002045c4f70656e696e6720646f6573206e6f742065786973742e6443616e6e6f74486972654d756c7469706c654c656164657273000304bc43616e6e6f742066696c6c206f70656e696e672077697468206d756c7469706c65206170706c69636174696f6e732e74576f726b65724170706c69636174696f6e446f65734e6f74457869737400040488576f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e744d6178416374697665576f726b65724e756d626572457863656564656400050488576f726b696e672067726f75702073697a65206c696d69742065786365656465642e9c5375636365737366756c576f726b65724170706c69636174696f6e446f65734e6f744578697374000604b45375636365737366756c20776f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e8043616e6e6f74486972654c65616465725768656e4c6561646572457869737473000704c45468657265206973206c656164657220616c72656164792c2063616e6e6f74206869726520616e6f74686572206f6e652e4049734e6f744c6561644163636f756e740008044c4e6f742061206c656164206163636f756e742e4443757272656e744c6561644e6f745365740009046043757272656e74206c656164206973206e6f74207365742e48576f726b6572446f65734e6f744578697374000a0458576f726b657220646f6573206e6f742065786973742e4c496e76616c69644d656d6265724f726967696e000b0470496e76616c6964206f726967696e20666f722061206d656d6265722e705369676e657249734e6f74576f726b6572526f6c654163636f756e74000c04885369676e6572206973206e6f7420776f726b657220726f6c65206163636f756e742e4842656c6f774d696e696d756d5374616b6573000d04885374616b696e67206c657373207468616e20746865206c6f77657220626f756e642e7c496e73756666696369656e7442616c616e6365546f436f7665725374616b65000e0490496e73756666696369656e742062616c616e636520746f20636f766572207374616b652e884170706c69636174696f6e5374616b65446f65736e744d617463684f70656e696e67000f04d84170706c69636174696f6e207374616b65206973206c657373207468616e207265717569726564206f70656e696e67207374616b652e504f726967696e49734e6f744170706c6963616e74001004604f726967696e206973206e6f74206170706c6963616e742e3c576f726b657249734c656176696e6700110498496e76616c6964206f7065726174696f6e202d20776f726b6572206973206c656176696e672e5043616e6e6f74526577617264576974685a65726f0012046452657761726420636f756c64206e6f74206265207a65726f2e78496e76616c69645374616b696e674163636f756e74466f724d656d626572001304ac5374616b696e67206163636f756e7420646f65736e27742062656c6f6e6720746f2061206d656d6265722e5c436f6e666c6963745374616b65734f6e4163636f756e74001404b05374616b696e67206163636f756e7420636f6e7461696e7320636f6e666c696374696e67207374616b65732e44576f726b65724861734e6f5265776172640015047c576f726b657220686173206e6f20726563757272696e67207265776172642e78556e7374616b696e67506572696f644c6573735468616e4d696e696d756d001604090153706563696669656420756e7374616b696e6720706572696f64206973206c657373207468656e206d696e696d756d2073657420666f72207468652067726f75702e3c43616e6e6f745370656e645a65726f00170460496e76616c6964207370656e64696e6720616d6f756e742e74496e73756666696369656e74427564676574466f725370656e64696e67001804a449742773206e6f7420656e6f7567682062756467657420666f722074686973207370656e64696e672e584e6f4170706c69636174696f6e7350726f7669646564001904bc43616e6e6f742066696c6c206f70656e696e67202d206e6f206170706c69636174696f6e732070726f76696465642ea043616e6e6f7444656372656173655374616b6544656c7461477265617465725468616e5374616b65001a04fc43616e6e6f74206465637265617365207374616b65202d207374616b652064656c74612067726561746572207468616e20696e697469616c207374616b652e644170706c69636174696f6e734e6f74466f724f70656e696e67001b04f0547279696e6720746f2066696c6c206f70656e696e67207769746820616e206170706c69636174696f6e20666f72206f74686572206f70656e696e6764576f726b657253746f7261676556616c7565546f6f4c6f6e67001c0480576f726b65722073746f72616765207465787420697320746f6f206c6f6e672e70496e73756666696369656e74546f6b656e73466f7246756e64696e67001d04f8496e73756666696369656e7420746f6b656e7320666f722066756e64696e6720286f6e206d656d62657220636f6e74726f6c6c6572206163636f756e7429445a65726f546f6b656e7346756e64696e67001e047c547279696e6720746f2066756e642077697468207a65726f20746f6b656e7378496e73756666696369656e7442616c616e6365466f725472616e73666572001f04b443616e6e6f742077697468647261773a20696e73756666696369656e74206275646765742062616c616e63652e048c44697363757373696f6e206d6f64756c6520707265646566696e6564206572726f7273ad090c5070616c6c65745f776f726b696e675f67726f7570186572726f7273144572726f720804540004490001803c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f7729605374616b6542616c616e636543616e6e6f7442655a65726f0001049850726f7669646564207374616b652062616c616e63652063616e6e6f74206265207a65726f2e4c4f70656e696e67446f65734e6f7445786973740002045c4f70656e696e6720646f6573206e6f742065786973742e6443616e6e6f74486972654d756c7469706c654c656164657273000304bc43616e6e6f742066696c6c206f70656e696e672077697468206d756c7469706c65206170706c69636174696f6e732e74576f726b65724170706c69636174696f6e446f65734e6f74457869737400040488576f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e744d6178416374697665576f726b65724e756d626572457863656564656400050488576f726b696e672067726f75702073697a65206c696d69742065786365656465642e9c5375636365737366756c576f726b65724170706c69636174696f6e446f65734e6f744578697374000604b45375636365737366756c20776f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e8043616e6e6f74486972654c65616465725768656e4c6561646572457869737473000704c45468657265206973206c656164657220616c72656164792c2063616e6e6f74206869726520616e6f74686572206f6e652e4049734e6f744c6561644163636f756e740008044c4e6f742061206c656164206163636f756e742e4443757272656e744c6561644e6f745365740009046043757272656e74206c656164206973206e6f74207365742e48576f726b6572446f65734e6f744578697374000a0458576f726b657220646f6573206e6f742065786973742e4c496e76616c69644d656d6265724f726967696e000b0470496e76616c6964206f726967696e20666f722061206d656d6265722e705369676e657249734e6f74576f726b6572526f6c654163636f756e74000c04885369676e6572206973206e6f7420776f726b657220726f6c65206163636f756e742e4842656c6f774d696e696d756d5374616b6573000d04885374616b696e67206c657373207468616e20746865206c6f77657220626f756e642e7c496e73756666696369656e7442616c616e6365546f436f7665725374616b65000e0490496e73756666696369656e742062616c616e636520746f20636f766572207374616b652e884170706c69636174696f6e5374616b65446f65736e744d617463684f70656e696e67000f04d84170706c69636174696f6e207374616b65206973206c657373207468616e207265717569726564206f70656e696e67207374616b652e504f726967696e49734e6f744170706c6963616e74001004604f726967696e206973206e6f74206170706c6963616e742e3c576f726b657249734c656176696e6700110498496e76616c6964206f7065726174696f6e202d20776f726b6572206973206c656176696e672e5043616e6e6f74526577617264576974685a65726f0012046452657761726420636f756c64206e6f74206265207a65726f2e78496e76616c69645374616b696e674163636f756e74466f724d656d626572001304ac5374616b696e67206163636f756e7420646f65736e27742062656c6f6e6720746f2061206d656d6265722e5c436f6e666c6963745374616b65734f6e4163636f756e74001404b05374616b696e67206163636f756e7420636f6e7461696e7320636f6e666c696374696e67207374616b65732e44576f726b65724861734e6f5265776172640015047c576f726b657220686173206e6f20726563757272696e67207265776172642e78556e7374616b696e67506572696f644c6573735468616e4d696e696d756d001604090153706563696669656420756e7374616b696e6720706572696f64206973206c657373207468656e206d696e696d756d2073657420666f72207468652067726f75702e3c43616e6e6f745370656e645a65726f00170460496e76616c6964207370656e64696e6720616d6f756e742e74496e73756666696369656e74427564676574466f725370656e64696e67001804a449742773206e6f7420656e6f7567682062756467657420666f722074686973207370656e64696e672e584e6f4170706c69636174696f6e7350726f7669646564001904bc43616e6e6f742066696c6c206f70656e696e67202d206e6f206170706c69636174696f6e732070726f76696465642ea043616e6e6f7444656372656173655374616b6544656c7461477265617465725468616e5374616b65001a04fc43616e6e6f74206465637265617365207374616b65202d207374616b652064656c74612067726561746572207468616e20696e697469616c207374616b652e644170706c69636174696f6e734e6f74466f724f70656e696e67001b04f0547279696e6720746f2066696c6c206f70656e696e67207769746820616e206170706c69636174696f6e20666f72206f74686572206f70656e696e6764576f726b657253746f7261676556616c7565546f6f4c6f6e67001c0480576f726b65722073746f72616765207465787420697320746f6f206c6f6e672e70496e73756666696369656e74546f6b656e73466f7246756e64696e67001d04f8496e73756666696369656e7420746f6b656e7320666f722066756e64696e6720286f6e206d656d62657220636f6e74726f6c6c6572206163636f756e7429445a65726f546f6b656e7346756e64696e67001e047c547279696e6720746f2066756e642077697468207a65726f20746f6b656e7378496e73756666696369656e7442616c616e6365466f725472616e73666572001f04b443616e6e6f742077697468647261773a20696e73756666696369656e74206275646765742062616c616e63652e048c44697363757373696f6e206d6f64756c6520707265646566696e6564206572726f7273b1090c5070616c6c65745f776f726b696e675f67726f7570186572726f7273144572726f720804540004490001803c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f7729605374616b6542616c616e636543616e6e6f7442655a65726f0001049850726f7669646564207374616b652062616c616e63652063616e6e6f74206265207a65726f2e4c4f70656e696e67446f65734e6f7445786973740002045c4f70656e696e6720646f6573206e6f742065786973742e6443616e6e6f74486972654d756c7469706c654c656164657273000304bc43616e6e6f742066696c6c206f70656e696e672077697468206d756c7469706c65206170706c69636174696f6e732e74576f726b65724170706c69636174696f6e446f65734e6f74457869737400040488576f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e744d6178416374697665576f726b65724e756d626572457863656564656400050488576f726b696e672067726f75702073697a65206c696d69742065786365656465642e9c5375636365737366756c576f726b65724170706c69636174696f6e446f65734e6f744578697374000604b45375636365737366756c20776f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e8043616e6e6f74486972654c65616465725768656e4c6561646572457869737473000704c45468657265206973206c656164657220616c72656164792c2063616e6e6f74206869726520616e6f74686572206f6e652e4049734e6f744c6561644163636f756e740008044c4e6f742061206c656164206163636f756e742e4443757272656e744c6561644e6f745365740009046043757272656e74206c656164206973206e6f74207365742e48576f726b6572446f65734e6f744578697374000a0458576f726b657220646f6573206e6f742065786973742e4c496e76616c69644d656d6265724f726967696e000b0470496e76616c6964206f726967696e20666f722061206d656d6265722e705369676e657249734e6f74576f726b6572526f6c654163636f756e74000c04885369676e6572206973206e6f7420776f726b657220726f6c65206163636f756e742e4842656c6f774d696e696d756d5374616b6573000d04885374616b696e67206c657373207468616e20746865206c6f77657220626f756e642e7c496e73756666696369656e7442616c616e6365546f436f7665725374616b65000e0490496e73756666696369656e742062616c616e636520746f20636f766572207374616b652e884170706c69636174696f6e5374616b65446f65736e744d617463684f70656e696e67000f04d84170706c69636174696f6e207374616b65206973206c657373207468616e207265717569726564206f70656e696e67207374616b652e504f726967696e49734e6f744170706c6963616e74001004604f726967696e206973206e6f74206170706c6963616e742e3c576f726b657249734c656176696e6700110498496e76616c6964206f7065726174696f6e202d20776f726b6572206973206c656176696e672e5043616e6e6f74526577617264576974685a65726f0012046452657761726420636f756c64206e6f74206265207a65726f2e78496e76616c69645374616b696e674163636f756e74466f724d656d626572001304ac5374616b696e67206163636f756e7420646f65736e27742062656c6f6e6720746f2061206d656d6265722e5c436f6e666c6963745374616b65734f6e4163636f756e74001404b05374616b696e67206163636f756e7420636f6e7461696e7320636f6e666c696374696e67207374616b65732e44576f726b65724861734e6f5265776172640015047c576f726b657220686173206e6f20726563757272696e67207265776172642e78556e7374616b696e67506572696f644c6573735468616e4d696e696d756d001604090153706563696669656420756e7374616b696e6720706572696f64206973206c657373207468656e206d696e696d756d2073657420666f72207468652067726f75702e3c43616e6e6f745370656e645a65726f00170460496e76616c6964207370656e64696e6720616d6f756e742e74496e73756666696369656e74427564676574466f725370656e64696e67001804a449742773206e6f7420656e6f7567682062756467657420666f722074686973207370656e64696e672e584e6f4170706c69636174696f6e7350726f7669646564001904bc43616e6e6f742066696c6c206f70656e696e67202d206e6f206170706c69636174696f6e732070726f76696465642ea043616e6e6f7444656372656173655374616b6544656c7461477265617465725468616e5374616b65001a04fc43616e6e6f74206465637265617365207374616b65202d207374616b652064656c74612067726561746572207468616e20696e697469616c207374616b652e644170706c69636174696f6e734e6f74466f724f70656e696e67001b04f0547279696e6720746f2066696c6c206f70656e696e67207769746820616e206170706c69636174696f6e20666f72206f74686572206f70656e696e6764576f726b657253746f7261676556616c7565546f6f4c6f6e67001c0480576f726b65722073746f72616765207465787420697320746f6f206c6f6e672e70496e73756666696369656e74546f6b656e73466f7246756e64696e67001d04f8496e73756666696369656e7420746f6b656e7320666f722066756e64696e6720286f6e206d656d62657220636f6e74726f6c6c6572206163636f756e7429445a65726f546f6b656e7346756e64696e67001e047c547279696e6720746f2066756e642077697468207a65726f20746f6b656e7378496e73756666696369656e7442616c616e6365466f725472616e73666572001f04b443616e6e6f742077697468647261773a20696e73756666696369656e74206275646765742062616c616e63652e048c44697363757373696f6e206d6f64756c6520707265646566696e6564206572726f7273b5090c5070616c6c65745f776f726b696e675f67726f7570186572726f7273144572726f720804540004490001803c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f7729605374616b6542616c616e636543616e6e6f7442655a65726f0001049850726f7669646564207374616b652062616c616e63652063616e6e6f74206265207a65726f2e4c4f70656e696e67446f65734e6f7445786973740002045c4f70656e696e6720646f6573206e6f742065786973742e6443616e6e6f74486972654d756c7469706c654c656164657273000304bc43616e6e6f742066696c6c206f70656e696e672077697468206d756c7469706c65206170706c69636174696f6e732e74576f726b65724170706c69636174696f6e446f65734e6f74457869737400040488576f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e744d6178416374697665576f726b65724e756d626572457863656564656400050488576f726b696e672067726f75702073697a65206c696d69742065786365656465642e9c5375636365737366756c576f726b65724170706c69636174696f6e446f65734e6f744578697374000604b45375636365737366756c20776f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e8043616e6e6f74486972654c65616465725768656e4c6561646572457869737473000704c45468657265206973206c656164657220616c72656164792c2063616e6e6f74206869726520616e6f74686572206f6e652e4049734e6f744c6561644163636f756e740008044c4e6f742061206c656164206163636f756e742e4443757272656e744c6561644e6f745365740009046043757272656e74206c656164206973206e6f74207365742e48576f726b6572446f65734e6f744578697374000a0458576f726b657220646f6573206e6f742065786973742e4c496e76616c69644d656d6265724f726967696e000b0470496e76616c6964206f726967696e20666f722061206d656d6265722e705369676e657249734e6f74576f726b6572526f6c654163636f756e74000c04885369676e6572206973206e6f7420776f726b657220726f6c65206163636f756e742e4842656c6f774d696e696d756d5374616b6573000d04885374616b696e67206c657373207468616e20746865206c6f77657220626f756e642e7c496e73756666696369656e7442616c616e6365546f436f7665725374616b65000e0490496e73756666696369656e742062616c616e636520746f20636f766572207374616b652e884170706c69636174696f6e5374616b65446f65736e744d617463684f70656e696e67000f04d84170706c69636174696f6e207374616b65206973206c657373207468616e207265717569726564206f70656e696e67207374616b652e504f726967696e49734e6f744170706c6963616e74001004604f726967696e206973206e6f74206170706c6963616e742e3c576f726b657249734c656176696e6700110498496e76616c6964206f7065726174696f6e202d20776f726b6572206973206c656176696e672e5043616e6e6f74526577617264576974685a65726f0012046452657761726420636f756c64206e6f74206265207a65726f2e78496e76616c69645374616b696e674163636f756e74466f724d656d626572001304ac5374616b696e67206163636f756e7420646f65736e27742062656c6f6e6720746f2061206d656d6265722e5c436f6e666c6963745374616b65734f6e4163636f756e74001404b05374616b696e67206163636f756e7420636f6e7461696e7320636f6e666c696374696e67207374616b65732e44576f726b65724861734e6f5265776172640015047c576f726b657220686173206e6f20726563757272696e67207265776172642e78556e7374616b696e67506572696f644c6573735468616e4d696e696d756d001604090153706563696669656420756e7374616b696e6720706572696f64206973206c657373207468656e206d696e696d756d2073657420666f72207468652067726f75702e3c43616e6e6f745370656e645a65726f00170460496e76616c6964207370656e64696e6720616d6f756e742e74496e73756666696369656e74427564676574466f725370656e64696e67001804a449742773206e6f7420656e6f7567682062756467657420666f722074686973207370656e64696e672e584e6f4170706c69636174696f6e7350726f7669646564001904bc43616e6e6f742066696c6c206f70656e696e67202d206e6f206170706c69636174696f6e732070726f76696465642ea043616e6e6f7444656372656173655374616b6544656c7461477265617465725468616e5374616b65001a04fc43616e6e6f74206465637265617365207374616b65202d207374616b652064656c74612067726561746572207468616e20696e697469616c207374616b652e644170706c69636174696f6e734e6f74466f724f70656e696e67001b04f0547279696e6720746f2066696c6c206f70656e696e67207769746820616e206170706c69636174696f6e20666f72206f74686572206f70656e696e6764576f726b657253746f7261676556616c7565546f6f4c6f6e67001c0480576f726b65722073746f72616765207465787420697320746f6f206c6f6e672e70496e73756666696369656e74546f6b656e73466f7246756e64696e67001d04f8496e73756666696369656e7420746f6b656e7320666f722066756e64696e6720286f6e206d656d62657220636f6e74726f6c6c6572206163636f756e7429445a65726f546f6b656e7346756e64696e67001e047c547279696e6720746f2066756e642077697468207a65726f20746f6b656e7378496e73756666696369656e7442616c616e6365466f725472616e73666572001f04b443616e6e6f742077697468647261773a20696e73756666696369656e74206275646765742062616c616e63652e048c44697363757373696f6e206d6f64756c6520707265646566696e6564206572726f7273b9090c5070616c6c65745f776f726b696e675f67726f7570186572726f7273144572726f720804540004490001803c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f7729605374616b6542616c616e636543616e6e6f7442655a65726f0001049850726f7669646564207374616b652062616c616e63652063616e6e6f74206265207a65726f2e4c4f70656e696e67446f65734e6f7445786973740002045c4f70656e696e6720646f6573206e6f742065786973742e6443616e6e6f74486972654d756c7469706c654c656164657273000304bc43616e6e6f742066696c6c206f70656e696e672077697468206d756c7469706c65206170706c69636174696f6e732e74576f726b65724170706c69636174696f6e446f65734e6f74457869737400040488576f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e744d6178416374697665576f726b65724e756d626572457863656564656400050488576f726b696e672067726f75702073697a65206c696d69742065786365656465642e9c5375636365737366756c576f726b65724170706c69636174696f6e446f65734e6f744578697374000604b45375636365737366756c20776f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e8043616e6e6f74486972654c65616465725768656e4c6561646572457869737473000704c45468657265206973206c656164657220616c72656164792c2063616e6e6f74206869726520616e6f74686572206f6e652e4049734e6f744c6561644163636f756e740008044c4e6f742061206c656164206163636f756e742e4443757272656e744c6561644e6f745365740009046043757272656e74206c656164206973206e6f74207365742e48576f726b6572446f65734e6f744578697374000a0458576f726b657220646f6573206e6f742065786973742e4c496e76616c69644d656d6265724f726967696e000b0470496e76616c6964206f726967696e20666f722061206d656d6265722e705369676e657249734e6f74576f726b6572526f6c654163636f756e74000c04885369676e6572206973206e6f7420776f726b657220726f6c65206163636f756e742e4842656c6f774d696e696d756d5374616b6573000d04885374616b696e67206c657373207468616e20746865206c6f77657220626f756e642e7c496e73756666696369656e7442616c616e6365546f436f7665725374616b65000e0490496e73756666696369656e742062616c616e636520746f20636f766572207374616b652e884170706c69636174696f6e5374616b65446f65736e744d617463684f70656e696e67000f04d84170706c69636174696f6e207374616b65206973206c657373207468616e207265717569726564206f70656e696e67207374616b652e504f726967696e49734e6f744170706c6963616e74001004604f726967696e206973206e6f74206170706c6963616e742e3c576f726b657249734c656176696e6700110498496e76616c6964206f7065726174696f6e202d20776f726b6572206973206c656176696e672e5043616e6e6f74526577617264576974685a65726f0012046452657761726420636f756c64206e6f74206265207a65726f2e78496e76616c69645374616b696e674163636f756e74466f724d656d626572001304ac5374616b696e67206163636f756e7420646f65736e27742062656c6f6e6720746f2061206d656d6265722e5c436f6e666c6963745374616b65734f6e4163636f756e74001404b05374616b696e67206163636f756e7420636f6e7461696e7320636f6e666c696374696e67207374616b65732e44576f726b65724861734e6f5265776172640015047c576f726b657220686173206e6f20726563757272696e67207265776172642e78556e7374616b696e67506572696f644c6573735468616e4d696e696d756d001604090153706563696669656420756e7374616b696e6720706572696f64206973206c657373207468656e206d696e696d756d2073657420666f72207468652067726f75702e3c43616e6e6f745370656e645a65726f00170460496e76616c6964207370656e64696e6720616d6f756e742e74496e73756666696369656e74427564676574466f725370656e64696e67001804a449742773206e6f7420656e6f7567682062756467657420666f722074686973207370656e64696e672e584e6f4170706c69636174696f6e7350726f7669646564001904bc43616e6e6f742066696c6c206f70656e696e67202d206e6f206170706c69636174696f6e732070726f76696465642ea043616e6e6f7444656372656173655374616b6544656c7461477265617465725468616e5374616b65001a04fc43616e6e6f74206465637265617365207374616b65202d207374616b652064656c74612067726561746572207468616e20696e697469616c207374616b652e644170706c69636174696f6e734e6f74466f724f70656e696e67001b04f0547279696e6720746f2066696c6c206f70656e696e67207769746820616e206170706c69636174696f6e20666f72206f74686572206f70656e696e6764576f726b657253746f7261676556616c7565546f6f4c6f6e67001c0480576f726b65722073746f72616765207465787420697320746f6f206c6f6e672e70496e73756666696369656e74546f6b656e73466f7246756e64696e67001d04f8496e73756666696369656e7420746f6b656e7320666f722066756e64696e6720286f6e206d656d62657220636f6e74726f6c6c6572206163636f756e7429445a65726f546f6b656e7346756e64696e67001e047c547279696e6720746f2066756e642077697468207a65726f20746f6b656e7378496e73756666696369656e7442616c616e6365466f725472616e73666572001f04b443616e6e6f742077697468647261773a20696e73756666696369656e74206275646765742062616c616e63652e048c44697363757373696f6e206d6f64756c6520707265646566696e6564206572726f7273bd090c5070616c6c65745f776f726b696e675f67726f7570186572726f7273144572726f720804540004490001803c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f7729605374616b6542616c616e636543616e6e6f7442655a65726f0001049850726f7669646564207374616b652062616c616e63652063616e6e6f74206265207a65726f2e4c4f70656e696e67446f65734e6f7445786973740002045c4f70656e696e6720646f6573206e6f742065786973742e6443616e6e6f74486972654d756c7469706c654c656164657273000304bc43616e6e6f742066696c6c206f70656e696e672077697468206d756c7469706c65206170706c69636174696f6e732e74576f726b65724170706c69636174696f6e446f65734e6f74457869737400040488576f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e744d6178416374697665576f726b65724e756d626572457863656564656400050488576f726b696e672067726f75702073697a65206c696d69742065786365656465642e9c5375636365737366756c576f726b65724170706c69636174696f6e446f65734e6f744578697374000604b45375636365737366756c20776f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e8043616e6e6f74486972654c65616465725768656e4c6561646572457869737473000704c45468657265206973206c656164657220616c72656164792c2063616e6e6f74206869726520616e6f74686572206f6e652e4049734e6f744c6561644163636f756e740008044c4e6f742061206c656164206163636f756e742e4443757272656e744c6561644e6f745365740009046043757272656e74206c656164206973206e6f74207365742e48576f726b6572446f65734e6f744578697374000a0458576f726b657220646f6573206e6f742065786973742e4c496e76616c69644d656d6265724f726967696e000b0470496e76616c6964206f726967696e20666f722061206d656d6265722e705369676e657249734e6f74576f726b6572526f6c654163636f756e74000c04885369676e6572206973206e6f7420776f726b657220726f6c65206163636f756e742e4842656c6f774d696e696d756d5374616b6573000d04885374616b696e67206c657373207468616e20746865206c6f77657220626f756e642e7c496e73756666696369656e7442616c616e6365546f436f7665725374616b65000e0490496e73756666696369656e742062616c616e636520746f20636f766572207374616b652e884170706c69636174696f6e5374616b65446f65736e744d617463684f70656e696e67000f04d84170706c69636174696f6e207374616b65206973206c657373207468616e207265717569726564206f70656e696e67207374616b652e504f726967696e49734e6f744170706c6963616e74001004604f726967696e206973206e6f74206170706c6963616e742e3c576f726b657249734c656176696e6700110498496e76616c6964206f7065726174696f6e202d20776f726b6572206973206c656176696e672e5043616e6e6f74526577617264576974685a65726f0012046452657761726420636f756c64206e6f74206265207a65726f2e78496e76616c69645374616b696e674163636f756e74466f724d656d626572001304ac5374616b696e67206163636f756e7420646f65736e27742062656c6f6e6720746f2061206d656d6265722e5c436f6e666c6963745374616b65734f6e4163636f756e74001404b05374616b696e67206163636f756e7420636f6e7461696e7320636f6e666c696374696e67207374616b65732e44576f726b65724861734e6f5265776172640015047c576f726b657220686173206e6f20726563757272696e67207265776172642e78556e7374616b696e67506572696f644c6573735468616e4d696e696d756d001604090153706563696669656420756e7374616b696e6720706572696f64206973206c657373207468656e206d696e696d756d2073657420666f72207468652067726f75702e3c43616e6e6f745370656e645a65726f00170460496e76616c6964207370656e64696e6720616d6f756e742e74496e73756666696369656e74427564676574466f725370656e64696e67001804a449742773206e6f7420656e6f7567682062756467657420666f722074686973207370656e64696e672e584e6f4170706c69636174696f6e7350726f7669646564001904bc43616e6e6f742066696c6c206f70656e696e67202d206e6f206170706c69636174696f6e732070726f76696465642ea043616e6e6f7444656372656173655374616b6544656c7461477265617465725468616e5374616b65001a04fc43616e6e6f74206465637265617365207374616b65202d207374616b652064656c74612067726561746572207468616e20696e697469616c207374616b652e644170706c69636174696f6e734e6f74466f724f70656e696e67001b04f0547279696e6720746f2066696c6c206f70656e696e67207769746820616e206170706c69636174696f6e20666f72206f74686572206f70656e696e6764576f726b657253746f7261676556616c7565546f6f4c6f6e67001c0480576f726b65722073746f72616765207465787420697320746f6f206c6f6e672e70496e73756666696369656e74546f6b656e73466f7246756e64696e67001d04f8496e73756666696369656e7420746f6b656e7320666f722066756e64696e6720286f6e206d656d62657220636f6e74726f6c6c6572206163636f756e7429445a65726f546f6b656e7346756e64696e67001e047c547279696e6720746f2066756e642077697468207a65726f20746f6b656e7378496e73756666696369656e7442616c616e6365466f725472616e73666572001f04b443616e6e6f742077697468647261773a20696e73756666696369656e74206275646765742062616c616e63652e048c44697363757373696f6e206d6f64756c6520707265646566696e6564206572726f7273c1090c5070616c6c65745f776f726b696e675f67726f7570186572726f7273144572726f720804540004490001803c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f7729605374616b6542616c616e636543616e6e6f7442655a65726f0001049850726f7669646564207374616b652062616c616e63652063616e6e6f74206265207a65726f2e4c4f70656e696e67446f65734e6f7445786973740002045c4f70656e696e6720646f6573206e6f742065786973742e6443616e6e6f74486972654d756c7469706c654c656164657273000304bc43616e6e6f742066696c6c206f70656e696e672077697468206d756c7469706c65206170706c69636174696f6e732e74576f726b65724170706c69636174696f6e446f65734e6f74457869737400040488576f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e744d6178416374697665576f726b65724e756d626572457863656564656400050488576f726b696e672067726f75702073697a65206c696d69742065786365656465642e9c5375636365737366756c576f726b65724170706c69636174696f6e446f65734e6f744578697374000604b45375636365737366756c20776f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e8043616e6e6f74486972654c65616465725768656e4c6561646572457869737473000704c45468657265206973206c656164657220616c72656164792c2063616e6e6f74206869726520616e6f74686572206f6e652e4049734e6f744c6561644163636f756e740008044c4e6f742061206c656164206163636f756e742e4443757272656e744c6561644e6f745365740009046043757272656e74206c656164206973206e6f74207365742e48576f726b6572446f65734e6f744578697374000a0458576f726b657220646f6573206e6f742065786973742e4c496e76616c69644d656d6265724f726967696e000b0470496e76616c6964206f726967696e20666f722061206d656d6265722e705369676e657249734e6f74576f726b6572526f6c654163636f756e74000c04885369676e6572206973206e6f7420776f726b657220726f6c65206163636f756e742e4842656c6f774d696e696d756d5374616b6573000d04885374616b696e67206c657373207468616e20746865206c6f77657220626f756e642e7c496e73756666696369656e7442616c616e6365546f436f7665725374616b65000e0490496e73756666696369656e742062616c616e636520746f20636f766572207374616b652e884170706c69636174696f6e5374616b65446f65736e744d617463684f70656e696e67000f04d84170706c69636174696f6e207374616b65206973206c657373207468616e207265717569726564206f70656e696e67207374616b652e504f726967696e49734e6f744170706c6963616e74001004604f726967696e206973206e6f74206170706c6963616e742e3c576f726b657249734c656176696e6700110498496e76616c6964206f7065726174696f6e202d20776f726b6572206973206c656176696e672e5043616e6e6f74526577617264576974685a65726f0012046452657761726420636f756c64206e6f74206265207a65726f2e78496e76616c69645374616b696e674163636f756e74466f724d656d626572001304ac5374616b696e67206163636f756e7420646f65736e27742062656c6f6e6720746f2061206d656d6265722e5c436f6e666c6963745374616b65734f6e4163636f756e74001404b05374616b696e67206163636f756e7420636f6e7461696e7320636f6e666c696374696e67207374616b65732e44576f726b65724861734e6f5265776172640015047c576f726b657220686173206e6f20726563757272696e67207265776172642e78556e7374616b696e67506572696f644c6573735468616e4d696e696d756d001604090153706563696669656420756e7374616b696e6720706572696f64206973206c657373207468656e206d696e696d756d2073657420666f72207468652067726f75702e3c43616e6e6f745370656e645a65726f00170460496e76616c6964207370656e64696e6720616d6f756e742e74496e73756666696369656e74427564676574466f725370656e64696e67001804a449742773206e6f7420656e6f7567682062756467657420666f722074686973207370656e64696e672e584e6f4170706c69636174696f6e7350726f7669646564001904bc43616e6e6f742066696c6c206f70656e696e67202d206e6f206170706c69636174696f6e732070726f76696465642ea043616e6e6f7444656372656173655374616b6544656c7461477265617465725468616e5374616b65001a04fc43616e6e6f74206465637265617365207374616b65202d207374616b652064656c74612067726561746572207468616e20696e697469616c207374616b652e644170706c69636174696f6e734e6f74466f724f70656e696e67001b04f0547279696e6720746f2066696c6c206f70656e696e67207769746820616e206170706c69636174696f6e20666f72206f74686572206f70656e696e6764576f726b657253746f7261676556616c7565546f6f4c6f6e67001c0480576f726b65722073746f72616765207465787420697320746f6f206c6f6e672e70496e73756666696369656e74546f6b656e73466f7246756e64696e67001d04f8496e73756666696369656e7420746f6b656e7320666f722066756e64696e6720286f6e206d656d62657220636f6e74726f6c6c6572206163636f756e7429445a65726f546f6b656e7346756e64696e67001e047c547279696e6720746f2066756e642077697468207a65726f20746f6b656e7378496e73756666696369656e7442616c616e6365466f725472616e73666572001f04b443616e6e6f742077697468647261773a20696e73756666696369656e74206275646765742062616c616e63652e048c44697363757373696f6e206d6f64756c6520707265646566696e6564206572726f7273c5090c5070616c6c65745f776f726b696e675f67726f7570186572726f7273144572726f720804540004490001803c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f7729605374616b6542616c616e636543616e6e6f7442655a65726f0001049850726f7669646564207374616b652062616c616e63652063616e6e6f74206265207a65726f2e4c4f70656e696e67446f65734e6f7445786973740002045c4f70656e696e6720646f6573206e6f742065786973742e6443616e6e6f74486972654d756c7469706c654c656164657273000304bc43616e6e6f742066696c6c206f70656e696e672077697468206d756c7469706c65206170706c69636174696f6e732e74576f726b65724170706c69636174696f6e446f65734e6f74457869737400040488576f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e744d6178416374697665576f726b65724e756d626572457863656564656400050488576f726b696e672067726f75702073697a65206c696d69742065786365656465642e9c5375636365737366756c576f726b65724170706c69636174696f6e446f65734e6f744578697374000604b45375636365737366756c20776f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e8043616e6e6f74486972654c65616465725768656e4c6561646572457869737473000704c45468657265206973206c656164657220616c72656164792c2063616e6e6f74206869726520616e6f74686572206f6e652e4049734e6f744c6561644163636f756e740008044c4e6f742061206c656164206163636f756e742e4443757272656e744c6561644e6f745365740009046043757272656e74206c656164206973206e6f74207365742e48576f726b6572446f65734e6f744578697374000a0458576f726b657220646f6573206e6f742065786973742e4c496e76616c69644d656d6265724f726967696e000b0470496e76616c6964206f726967696e20666f722061206d656d6265722e705369676e657249734e6f74576f726b6572526f6c654163636f756e74000c04885369676e6572206973206e6f7420776f726b657220726f6c65206163636f756e742e4842656c6f774d696e696d756d5374616b6573000d04885374616b696e67206c657373207468616e20746865206c6f77657220626f756e642e7c496e73756666696369656e7442616c616e6365546f436f7665725374616b65000e0490496e73756666696369656e742062616c616e636520746f20636f766572207374616b652e884170706c69636174696f6e5374616b65446f65736e744d617463684f70656e696e67000f04d84170706c69636174696f6e207374616b65206973206c657373207468616e207265717569726564206f70656e696e67207374616b652e504f726967696e49734e6f744170706c6963616e74001004604f726967696e206973206e6f74206170706c6963616e742e3c576f726b657249734c656176696e6700110498496e76616c6964206f7065726174696f6e202d20776f726b6572206973206c656176696e672e5043616e6e6f74526577617264576974685a65726f0012046452657761726420636f756c64206e6f74206265207a65726f2e78496e76616c69645374616b696e674163636f756e74466f724d656d626572001304ac5374616b696e67206163636f756e7420646f65736e27742062656c6f6e6720746f2061206d656d6265722e5c436f6e666c6963745374616b65734f6e4163636f756e74001404b05374616b696e67206163636f756e7420636f6e7461696e7320636f6e666c696374696e67207374616b65732e44576f726b65724861734e6f5265776172640015047c576f726b657220686173206e6f20726563757272696e67207265776172642e78556e7374616b696e67506572696f644c6573735468616e4d696e696d756d001604090153706563696669656420756e7374616b696e6720706572696f64206973206c657373207468656e206d696e696d756d2073657420666f72207468652067726f75702e3c43616e6e6f745370656e645a65726f00170460496e76616c6964207370656e64696e6720616d6f756e742e74496e73756666696369656e74427564676574466f725370656e64696e67001804a449742773206e6f7420656e6f7567682062756467657420666f722074686973207370656e64696e672e584e6f4170706c69636174696f6e7350726f7669646564001904bc43616e6e6f742066696c6c206f70656e696e67202d206e6f206170706c69636174696f6e732070726f76696465642ea043616e6e6f7444656372656173655374616b6544656c7461477265617465725468616e5374616b65001a04fc43616e6e6f74206465637265617365207374616b65202d207374616b652064656c74612067726561746572207468616e20696e697469616c207374616b652e644170706c69636174696f6e734e6f74466f724f70656e696e67001b04f0547279696e6720746f2066696c6c206f70656e696e67207769746820616e206170706c69636174696f6e20666f72206f74686572206f70656e696e6764576f726b657253746f7261676556616c7565546f6f4c6f6e67001c0480576f726b65722073746f72616765207465787420697320746f6f206c6f6e672e70496e73756666696369656e74546f6b656e73466f7246756e64696e67001d04f8496e73756666696369656e7420746f6b656e7320666f722066756e64696e6720286f6e206d656d62657220636f6e74726f6c6c6572206163636f756e7429445a65726f546f6b656e7346756e64696e67001e047c547279696e6720746f2066756e642077697468207a65726f20746f6b656e7378496e73756666696369656e7442616c616e6365466f725472616e73666572001f04b443616e6e6f742077697468647261773a20696e73756666696369656e74206275646765742062616c616e63652e048c44697363757373696f6e206d6f64756c6520707265646566696e6564206572726f7273c909102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c4164647265737301001043616c6c013904245369676e617475726501cd0914457874726101d90900040030000000cd09082873705f72756e74696d65384d756c74695369676e617475726500010c1c4564323535313904009d050148656432353531393a3a5369676e61747572650000001c537232353531390400d1050148737232353531393a3a5369676e61747572650001001445636473610400d109014065636473613a3a5369676e617475726500020000d1090c1c73705f636f7265146563647361245369676e617475726500000400d50901205b75383b2036355d0000d509000003410000000800d90900000420dd09e109e509e909ed09f509f909fd0900dd0910306672616d655f73797374656d28657874656e73696f6e7354636865636b5f6e6f6e5f7a65726f5f73656e64657248436865636b4e6f6e5a65726f53656e64657204045400000000e10910306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e04045400000000e50910306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e04045400000000e90910306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e6573697304045400000000ed0910306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c69747904045400000400f109010c4572610000f109102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff0000f50910306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e636504045400000400e5030120543a3a496e6465780000f90910306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b57656967687404045400000000fd09086870616c6c65745f7472616e73616374696f6e5f7061796d656e74604368617267655472616e73616374696f6e5061796d656e7404045400000400ec013042616c616e63654f663c543e0000010a08586a6f7973747265616d5f6e6f64655f72756e74696d651c52756e74696d6500000000a41853797374656d011853797374656d401c4163636f756e7401010402000c4101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e2c426c6f636b57656967687401001c180000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b4861736801010405102c8000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510300400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801002c80000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e18446967657374010034040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301004404001ca0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e001d01204e4f54453a20546865206974656d20697320756e626f756e6420616e642073686f756c64207468657265666f7265206e657665722062652072656164206f6e20636861696e2ed020497420636f756c64206f746865727769736520696e666c6174652074686520506f562073697a65206f66206120626c6f636b2e002d01204576656e747320686176652061206c6172676520696e2d6d656d6f72792073697a652e20426f7820746865206576656e747320746f206e6f7420676f206f75742d6f662d6d656d6f7279fc206a75737420696e206361736520736f6d656f6e65207374696c6c207265616473207468656d2066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f70696373010104022cd9030400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e004d01205468652076616c756520686173207468652074797065206028543a3a426c6f636b4e756d6265722c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000e10304000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e740100980400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e740100980400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e50686173650000d103040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e01ed0301501830426c6f636b57656967687473f90301020720f7d66001000b00204aa9d10113ffffffffffffffff820e6c1900010b60c4aea72e011366666666666666a6010b0098f73e5d0113ffffffffffffffbf010000820e6c1900010b604c0112a3011366666666666666e6010b00204aa9d10113ffffffffffffffff01070088526a74130000000000000040820e6c190000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e67746809043000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e74101060090000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e2044625765696768741104408848890000000000f0b64603000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6e1504d102386a6f7973747265616d2d6e6f6465386a6f7973747265616d2d6e6f64650c000000b80b0000000000002cdf6acb689907609b0400000037e397fc7c91f5e40100000040fe3ad401f8959a06000000d2bc9897eed08f1503000000f78b278be53f454c02000000ed99c5acb25eedf503000000cbca25e39f14238702000000687ad44ad37f03c201000000bc9d89904f5b923f0100000037c8bb1350a9a2a803000000ab3c0572291feb8b0100000001000000010484204765742074686520636861696e27732063757272656e742076657273696f6e2e28535335385072656669782904087e0014a8205468652064657369676e61746564205353353820707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e012d04001c5574696c697479000131040174044c626174636865645f63616c6c735f6c696d69741010aa2a000004a820546865206c696d6974206f6e20746865206e756d626572206f6620626174636865642063616c6c732e019d06011042616265011042616265442845706f6368496e64657801002820000000000000000004542043757272656e742065706f636820696e6465782e2c417574686f7269746965730100a1060400046c2043757272656e742065706f636820617574686f7269746965732e2c47656e65736973536c6f740100510420000000000000000008f82054686520736c6f74206174207768696368207468652066697273742065706f63682061637475616c6c7920737461727465642e205468697320697320309020756e74696c2074686520666972737420626c6f636b206f662074686520636861696e2e2c43757272656e74536c6f740100510420000000000000000004542043757272656e7420736c6f74206e756d6265722e2852616e646f6d6e65737301000480000000000000000000000000000000000000000000000000000000000000000028b8205468652065706f63682072616e646f6d6e65737320666f7220746865202a63757272656e742a2065706f63682e002c20232053656375726974790005012054686973204d555354204e4f54206265207573656420666f722067616d626c696e672c2061732069742063616e20626520696e666c75656e6365642062792061f8206d616c6963696f75732076616c696461746f7220696e207468652073686f7274207465726d2e204974204d4159206265207573656420696e206d616e7915012063727970746f677261706869632070726f746f636f6c732c20686f77657665722c20736f206c6f6e67206173206f6e652072656d656d6265727320746861742074686973150120286c696b652065766572797468696e6720656c7365206f6e2d636861696e29206974206973207075626c69632e20466f72206578616d706c652c2069742063616e206265050120757365642077686572652061206e756d626572206973206e656564656420746861742063616e6e6f742068617665206265656e2063686f73656e20627920616e0d01206164766572736172792c20666f7220707572706f7365732073756368206173207075626c69632d636f696e207a65726f2d6b6e6f776c656467652070726f6f66732e6050656e64696e6745706f6368436f6e6669674368616e67650000590404000461012050656e64696e672065706f636820636f6e66696775726174696f6e206368616e676520746861742077696c6c206265206170706c696564207768656e20746865206e6578742065706f636820697320656e61637465642e384e65787452616e646f6d6e657373010004800000000000000000000000000000000000000000000000000000000000000000045c204e6578742065706f63682072616e646f6d6e6573732e3c4e657874417574686f7269746965730100a10604000460204e6578742065706f636820617574686f7269746965732e305365676d656e74496e6465780100101000000000247c2052616e646f6d6e65737320756e64657220636f6e737472756374696f6e2e00f8205765206d616b6520612074726164652d6f6666206265747765656e2073746f7261676520616363657373657320616e64206c697374206c656e6774682e01012057652073746f72652074686520756e6465722d636f6e737472756374696f6e2072616e646f6d6e65737320696e207365676d656e7473206f6620757020746f942060554e4445525f434f4e535452554354494f4e5f5345474d454e545f4c454e475448602e00ec204f6e63652061207365676d656e7420726561636865732074686973206c656e6774682c20776520626567696e20746865206e657874206f6e652e090120576520726573657420616c6c207365676d656e747320616e642072657475726e20746f206030602061742074686520626567696e6e696e67206f662065766572791c2065706f63682e44556e646572436f6e737472756374696f6e0101040510ad0604000415012054574f582d4e4f54453a20605365676d656e74496e6465786020697320616e20696e6372656173696e6720696e74656765722c20736f2074686973206973206f6b61792e2c496e697469616c697a65640000b50604000801012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e292077686963682069732060536f6d65601d01206966207065722d626c6f636b20696e697469616c697a6174696f6e2068617320616c7265616479206265656e2063616c6c656420666f722063757272656e7420626c6f636b2e4c417574686f7256726652616e646f6d6e6573730100c90604001015012054686973206669656c642073686f756c6420616c7761797320626520706f70756c6174656420647572696e6720626c6f636b2070726f63657373696e6720756e6c6573731901207365636f6e6461727920706c61696e20736c6f74732061726520656e61626c65642028776869636820646f6e277420636f6e7461696e206120565246206f7574707574292e0049012049742069732073657420696e20606f6e5f66696e616c697a65602c206265666f72652069742077696c6c20636f6e7461696e207468652076616c75652066726f6d20746865206c61737420626c6f636b2e2845706f636853746172740100dd03200000000000000000145d012054686520626c6f636b206e756d62657273207768656e20746865206c61737420616e642063757272656e742065706f6368206861766520737461727465642c20726573706563746976656c7920604e2d316020616e641420604e602e4901204e4f54453a20576520747261636b207468697320697320696e206f7264657220746f20616e6e6f746174652074686520626c6f636b206e756d626572207768656e206120676976656e20706f6f6c206f66590120656e74726f7079207761732066697865642028692e652e20697420776173206b6e6f776e20746f20636861696e206f6273657276657273292e2053696e63652065706f6368732061726520646566696e656420696e590120736c6f74732c207768696368206d617920626520736b69707065642c2074686520626c6f636b206e756d62657273206d6179206e6f74206c696e6520757020776974682074686520736c6f74206e756d626572732e204c6174656e657373010010100000000014d820486f77206c617465207468652063757272656e7420626c6f636b20697320636f6d706172656420746f2069747320706172656e742e001501205468697320656e74727920697320706f70756c617465642061732070617274206f6620626c6f636b20657865637574696f6e20616e6420697320636c65616e65642075701101206f6e20626c6f636b2066696e616c697a6174696f6e2e205175657279696e6720746869732073746f7261676520656e747279206f757473696465206f6620626c6f636bb020657865637574696f6e20636f6e746578742073686f756c6420616c77617973207969656c64207a65726f2e2c45706f6368436f6e6669670000cd0604000861012054686520636f6e66696775726174696f6e20666f72207468652063757272656e742065706f63682e2053686f756c64206e6576657220626520604e6f6e656020617320697420697320696e697469616c697a656420696e242067656e657369732e3c4e65787445706f6368436f6e6669670000cd060400082d012054686520636f6e66696775726174696f6e20666f7220746865206e6578742065706f63682c20604e6f6e65602069662074686520636f6e6669672077696c6c206e6f74206368616e6765e82028796f752063616e2066616c6c6261636b20746f206045706f6368436f6e6669676020696e737465616420696e20746861742063617365292e34536b697070656445706f6368730100d10604002029012041206c697374206f6620746865206c6173742031303020736b69707065642065706f63687320616e642074686520636f72726573706f6e64696e672073657373696f6e20696e64657870207768656e207468652065706f63682077617320736b69707065642e0031012054686973206973206f6e6c79207573656420666f722076616c69646174696e672065717569766f636174696f6e2070726f6f66732e20416e2065717569766f636174696f6e2070726f6f663501206d75737420636f6e7461696e732061206b65792d6f776e6572736869702070726f6f6620666f72206120676976656e2073657373696f6e2c207468657265666f7265207765206e656564206139012077617920746f2074696520746f6765746865722073657373696f6e7320616e642065706f636820696e64696365732c20692e652e207765206e65656420746f2076616c69646174652074686174290120612076616c696461746f722077617320746865206f776e6572206f66206120676976656e206b6579206f6e206120676976656e2073657373696f6e2c20616e64207768617420746865b0206163746976652065706f636820696e6465782077617320647572696e6720746861742073657373696f6e2e013d04000c3445706f63684475726174696f6e28201e000000000000000cec2054686520616d6f756e74206f662074696d652c20696e20736c6f74732c207468617420656163682065706f63682073686f756c64206c6173742e1901204e4f54453a2043757272656e746c79206974206973206e6f7420706f737369626c6520746f206368616e6765207468652065706f6368206475726174696f6e20616674657221012074686520636861696e2068617320737461727465642e20417474656d7074696e6720746f20646f20736f2077696c6c20627269636b20626c6f636b2070726f64756374696f6e2e444578706563746564426c6f636b54696d652820e80300000000000014050120546865206578706563746564206176657261676520626c6f636b2074696d6520617420776869636820424142452073686f756c64206265206372656174696e67110120626c6f636b732e2053696e636520424142452069732070726f626162696c6973746963206974206973206e6f74207472697669616c20746f20666967757265206f75740501207768617420746865206578706563746564206176657261676520626c6f636b2074696d652073686f756c64206265206261736564206f6e2074686520736c6f740901206475726174696f6e20616e642074686520736563757269747920706172616d657465722060636020287768657265206031202d20636020726570726573656e7473a0207468652070726f626162696c697479206f66206120736c6f74206265696e6720656d707479292e384d6178417574686f7269746965731010a08601000488204d6178206e756d626572206f6620617574686f72697469657320616c6c6f77656401d506022454696d657374616d70012454696d657374616d70080c4e6f7701002820000000000000000004902043757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010098040004b420446964207468652074696d657374616d7020676574207570646174656420696e207468697320626c6f636b3f0161040004344d696e696d756d506572696f642820f401000000000000104d0120546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e204265776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a5d0120706572696f6420746861742074686520626c6f636b2070726f64756374696f6e206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c5d012067656e6572616c6c7920776f726b2077697468207468697320746f2064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20652e672e20466f7220417572612c2069742077696c6c206265a020646f75626c65207468697320706572696f64206f6e2064656661756c742073657474696e67732e000328417574686f72736869700128417574686f72736869700418417574686f720000000400046420417574686f72206f662063757272656e7420626c6f636b2e00000000042042616c616e636573012042616c616e6365731434546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e40496e61637469766549737375616e636501001840000000000000000000000000000000000409012054686520746f74616c20756e697473206f66206f75747374616e64696e672064656163746976617465642062616c616e636520696e207468652073797374656d2e1c4163636f756e74010104020014010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600901205468652042616c616e6365732070616c6c6574206578616d706c65206f662073746f72696e67207468652062616c616e6365206f6620616e206163636f756e742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b19022020202074797065204163636f756e7453746f7265203d2053746f726167654d61705368696d3c53656c663a3a4163636f756e743c52756e74696d653e2c206672616d655f73797374656d3a3a50726f76696465723c52756e74696d653e2c204163636f756e7449642c2053656c663a3a4163636f756e74446174613c42616c616e63653e3e0c20207d102060606000150120596f752063616e20616c736f2073746f7265207468652062616c616e6365206f6620616e206163636f756e7420696e20746865206053797374656d602070616c6c65742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b7420202074797065204163636f756e7453746f7265203d2053797374656d0c20207d102060606000510120427574207468697320636f6d657320776974682074726164656f6666732c2073746f72696e67206163636f756e742062616c616e63657320696e207468652073797374656d2070616c6c65742073746f7265736d0120606672616d655f73797374656d60206461746120616c6f6e677369646520746865206163636f756e74206461746120636f6e747261727920746f2073746f72696e67206163636f756e742062616c616e63657320696e207468652901206042616c616e636573602070616c6c65742c20776869636820757365732061206053746f726167654d61706020746f2073746f72652062616c616e6365732064617461206f6e6c792e4101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b730101040200d906040008b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e2052657365727665730101040200e906040004a4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e01650401800c484578697374656e7469616c4465706f73697418404002e50f00000000000000000000000004d420546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d61784c6f636b7310103200000008f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e2c4d61785265736572766573101032000000040d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e01f50605485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100f90640000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e0100fd0604000000018804604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c6974706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f7269747960004d0120546869732076616c7565206973206d756c7469706c656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e000668456c656374696f6e50726f76696465724d756c746950686173650168456c656374696f6e50726f76696465724d756c746950686173652814526f756e64010010100100000018ac20496e7465726e616c20636f756e74657220666f7220746865206e756d626572206f6620726f756e64732e00550120546869732069732075736566756c20666f722064652d6475706c69636174696f6e206f66207472616e73616374696f6e73207375626d697474656420746f2074686520706f6f6c2c20616e642067656e6572616c6c20646961676e6f7374696373206f66207468652070616c6c65742e004d012054686973206973206d6572656c7920696e6372656d656e746564206f6e6365207065722065766572792074696d65207468617420616e20757073747265616d2060656c656374602069732063616c6c65642e3043757272656e7450686173650100a00400043c2043757272656e742070686173652e38517565756564536f6c7574696f6e000001070400043d012043757272656e74206265737420736f6c7574696f6e2c207369676e6564206f7220756e7369676e65642c2071756575656420746f2062652072657475726e65642075706f6e2060656c656374602e20536e617073686f740000090704000c7020536e617073686f742064617461206f662074686520726f756e642e005d01205468697320697320637265617465642061742074686520626567696e6e696e67206f6620746865207369676e656420706861736520616e6420636c65617265642075706f6e2063616c6c696e672060656c656374602e38446573697265645461726765747300001004000ccc2044657369726564206e756d626572206f66207461726765747320746f20656c65637420666f72207468697320726f756e642e00a8204f6e6c7920657869737473207768656e205b60536e617073686f74605d2069732070726573656e742e40536e617073686f744d6574616461746100003d0504000c9820546865206d65746164617461206f6620746865205b60526f756e64536e617073686f74605d00a8204f6e6c7920657869737473207768656e205b60536e617073686f74605d2069732070726573656e742e645369676e65645375626d697373696f6e4e657874496e646578010010100000000024010120546865206e65787420696e64657820746f2062652061737369676e656420746f20616e20696e636f6d696e67207369676e6564207375626d697373696f6e2e007501204576657279206163636570746564207375626d697373696f6e2069732061737369676e6564206120756e6971756520696e6465783b207468617420696e64657820697320626f756e6420746f207468617420706172746963756c61726501207375626d697373696f6e20666f7220746865206475726174696f6e206f662074686520656c656374696f6e2e204f6e20656c656374696f6e2066696e616c697a6174696f6e2c20746865206e65787420696e6465782069733020726573657420746f20302e0069012057652063616e2774206a7573742075736520605369676e65645375626d697373696f6e496e64696365732e6c656e2829602c206265636175736520746861742773206120626f756e646564207365743b20706173742069747359012063617061636974792c2069742077696c6c2073696d706c792073617475726174652e2057652063616e2774206a7573742069746572617465206f76657220605369676e65645375626d697373696f6e734d6170602cf4206265636175736520697465726174696f6e20697320736c6f772e20496e73746561642c2077652073746f7265207468652076616c756520686572652e5c5369676e65645375626d697373696f6e496e6469636573010019070400186d01204120736f727465642c20626f756e64656420766563746f72206f6620602873636f72652c20626c6f636b5f6e756d6265722c20696e64657829602c20776865726520656163682060696e6465786020706f696e747320746f2061782076616c756520696e20605369676e65645375626d697373696f6e73602e007101205765206e65766572206e65656420746f2070726f63657373206d6f7265207468616e20612073696e676c65207369676e6564207375626d697373696f6e20617420612074696d652e205369676e6564207375626d697373696f6e7375012063616e206265207175697465206c617267652c20736f2077652772652077696c6c696e6720746f207061792074686520636f7374206f66206d756c7469706c6520646174616261736520616363657373657320746f206163636573732101207468656d206f6e6520617420612074696d6520696e7374656164206f662072656164696e6720616e64206465636f64696e6720616c6c206f66207468656d206174206f6e63652e505369676e65645375626d697373696f6e734d61700001040510250704001c7420556e636865636b65642c207369676e656420736f6c7574696f6e732e00690120546f676574686572207769746820605375626d697373696f6e496e6469636573602c20746869732073746f726573206120626f756e64656420736574206f6620605369676e65645375626d697373696f6e7360207768696c65ec20616c6c6f77696e6720757320746f206b656570206f6e6c7920612073696e676c65206f6e6520696e206d656d6f727920617420612074696d652e0069012054776f78206e6f74653a20746865206b6579206f6620746865206d617020697320616e206175746f2d696e6372656d656e74696e6720696e6465782077686963682075736572732063616e6e6f7420696e7370656374206f72f4206166666563743b2077652073686f756c646e2774206e65656420612063727970746f67726170686963616c6c7920736563757265206861736865722e544d696e696d756d556e7472757374656453636f726500009c0400105d0120546865206d696e696d756d2073636f7265207468617420656163682027756e747275737465642720736f6c7574696f6e206d7573742061747461696e20696e206f7264657220746f20626520636f6e7369646572656428206665617369626c652e00b82043616e206265207365742076696120607365745f6d696e696d756d5f756e747275737465645f73636f7265602e016904018c4c34556e7369676e656450686173651010070000000480204475726174696f6e206f662074686520756e7369676e65642070686173652e2c5369676e656450686173651010070000000478204475726174696f6e206f6620746865207369676e65642070686173652e544265747465725369676e65645468726573686f6c64ac1000000000084d0120546865206d696e696d756d20616d6f756e74206f6620696d70726f76656d656e7420746f2074686520736f6c7574696f6e2073636f7265207468617420646566696e6573206120736f6c7574696f6e2061737820226265747465722220696e20746865205369676e65642070686173652e5c426574746572556e7369676e65645468726573686f6c64ac1020a10700084d0120546865206d696e696d756d20616d6f756e74206f6620696d70726f76656d656e7420746f2074686520736f6c7574696f6e2073636f7265207468617420646566696e6573206120736f6c7574696f6e2061738020226265747465722220696e2074686520556e7369676e65642070686173652e384f6666636861696e52657065617410100000000010b42054686520726570656174207468726573686f6c64206f6620746865206f6666636861696e20776f726b65722e00610120466f72206578616d706c652c20696620697420697320352c2074686174206d65616e732074686174206174206c65617374203520626c6f636b732077696c6c20656c61707365206265747765656e20617474656d7074738420746f207375626d69742074686520776f726b6572277320736f6c7574696f6e2e3c4d696e657254785072696f726974792820feffffffffffff7f04250120546865207072696f72697479206f662074686520756e7369676e6564207472616e73616374696f6e207375626d697474656420696e2074686520756e7369676e65642d7068617365505369676e65644d61785375626d697373696f6e731010100000001ce4204d6178696d756d206e756d626572206f66207369676e6564207375626d697373696f6e7320746861742063616e206265207175657565642e005501204974206973206265737420746f2061766f69642061646a757374696e67207468697320647572696e6720616e20656c656374696f6e2c20617320697420696d706163747320646f776e73747265616d2064617461650120737472756374757265732e20496e20706172746963756c61722c20605369676e65645375626d697373696f6e496e64696365733c543e6020697320626f756e646564206f6e20746869732076616c75652e20496620796f75f42075706461746520746869732076616c756520647572696e6720616e20656c656374696f6e2c20796f75205f6d7573745f20656e7375726520746861744d0120605369676e65645375626d697373696f6e496e64696365732e6c656e282960206973206c657373207468616e206f7220657175616c20746f20746865206e65772076616c75652e204f74686572776973652cf020617474656d70747320746f207375626d6974206e657720736f6c7574696f6e73206d617920636175736520612072756e74696d652070616e69632e3c5369676e65644d617857656967687420400b40cdd7462d011366666666666666a61494204d6178696d756d20776569676874206f662061207369676e656420736f6c7574696f6e2e005d01204966205b60436f6e6669673a3a4d696e6572436f6e666967605d206973206265696e6720696d706c656d656e74656420746f207375626d6974207369676e656420736f6c7574696f6e7320286f757473696465206f663d0120746869732070616c6c6574292c207468656e205b604d696e6572436f6e6669673a3a736f6c7574696f6e5f776569676874605d206973207573656420746f20636f6d7061726520616761696e73743020746869732076616c75652e405369676e65644d6178526566756e647310100400000004190120546865206d6178696d756d20616d6f756e74206f6620756e636865636b656420736f6c7574696f6e7320746f20726566756e64207468652063616c6c2066656520666f722e405369676e6564526577617264426173651840aa821bce260000000000000000000000048820426173652072657761726420666f722061207369676e656420736f6c7574696f6e445369676e65644465706f736974426173651840a41a130d84010000000000000000000004902042617365206465706f73697420666f722061207369676e656420736f6c7574696f6e2e445369676e65644465706f7369744279746518406a6e190000000000000000000000000004a0205065722d62797465206465706f73697420666f722061207369676e656420736f6c7574696f6e2e4c5369676e65644465706f73697457656967687418400000000000000000000000000000000004a8205065722d776569676874206465706f73697420666f722061207369676e656420736f6c7574696f6e2e444d6178456c656374696e67566f746572731010d43000000c5d0120546865206d6178696d756d206e756d626572206f6620656c656374696e6720766f7465727320746f2070757420696e2074686520736e617073686f742e20417420746865206d6f6d656e742c20736e617073686f7473590120617265206f6e6c79206f76657220612073696e676c6520626c6f636b2c20627574206f6e6365206d756c74692d626c6f636b20656c656374696f6e732061726520696e74726f647563656420746865792077696c6c842074616b6520706c616365206f766572206d756c7469706c6520626c6f636b732e4c4d6178456c65637461626c6554617267657473290408ffff04010120546865206d6178696d756d206e756d626572206f6620656c65637461626c65207461726765747320746f2070757420696e2074686520736e617073686f742e284d617857696e6e65727310109001000010350120546865206d6178696d756d206e756d626572206f662077696e6e65727320746861742063616e20626520656c656374656420627920746869732060456c656374696f6e50726f7669646572604020696d706c656d656e746174696f6e2e005101204e6f74653a2054686973206d75737420616c776179732062652067726561746572206f7220657175616c20746f2060543a3a4461746150726f76696465723a3a646573697265645f746172676574732829602e384d696e65724d61784c656e67746810100000360000384d696e65724d617857656967687420400b40cdd7462d011366666666666666a600544d696e65724d6178566f746573506572566f74657210101000000000012907071c5374616b696e67011c5374616b696e67943856616c696461746f72436f756e740100101000000000049c2054686520696465616c206e756d626572206f66206163746976652076616c696461746f72732e544d696e696d756d56616c696461746f72436f756e740100101000000000044101204d696e696d756d206e756d626572206f66207374616b696e67207061727469636970616e7473206265666f726520656d657267656e637920636f6e646974696f6e732061726520696d706f7365642e34496e76756c6e657261626c657301005d0504000c590120416e792076616c696461746f72732074686174206d6179206e6576657220626520736c6173686564206f7220666f726369626c79206b69636b65642e20497427732061205665632073696e636520746865792772654d01206561737920746f20696e697469616c697a6520616e642074686520706572666f726d616e636520686974206973206d696e696d616c2028776520657870656374206e6f206d6f7265207468616e20666f7572ac20696e76756c6e657261626c65732920616e64207265737472696374656420746f20746573746e6574732e18426f6e64656400010405000004000c0101204d61702066726f6d20616c6c206c6f636b65642022737461736822206163636f756e747320746f2074686520636f6e74726f6c6c6572206163636f756e742e00d02054574f582d4e4f54453a20534146452073696e636520604163636f756e7449646020697320612073656375726520686173682e404d696e4e6f6d696e61746f72426f6e64010018400000000000000000000000000000000004210120546865206d696e696d756d2061637469766520626f6e6420746f206265636f6d6520616e64206d61696e7461696e2074686520726f6c65206f662061206e6f6d696e61746f722e404d696e56616c696461746f72426f6e64010018400000000000000000000000000000000004210120546865206d696e696d756d2061637469766520626f6e6420746f206265636f6d6520616e64206d61696e7461696e2074686520726f6c65206f6620612076616c696461746f722e484d696e696d756d4163746976655374616b65010018400000000000000000000000000000000004110120546865206d696e696d756d20616374697665206e6f6d696e61746f72207374616b65206f6620746865206c617374207375636365737366756c20656c656374696f6e2e344d696e436f6d6d697373696f6e0100ac10000000000ce820546865206d696e696d756d20616d6f756e74206f6620636f6d6d697373696f6e20746861742076616c696461746f72732063616e207365742e00802049662073657420746f206030602c206e6f206c696d6974206578697374732e184c656467657200010402002d070400044501204d61702066726f6d20616c6c2028756e6c6f636b6564292022636f6e74726f6c6c657222206163636f756e747320746f2074686520696e666f20726567617264696e6720746865207374616b696e672e1450617965650101040500590504000ce42057686572652074686520726577617264207061796d656e742073686f756c64206265206d6164652e204b657965642062792073746173682e00d02054574f582d4e4f54453a20534146452073696e636520604163636f756e7449646020697320612073656375726520686173682e2856616c696461746f72730101040500b00800000c450120546865206d61702066726f6d202877616e6e616265292076616c696461746f72207374617368206b657920746f2074686520707265666572656e636573206f6620746861742076616c696461746f722e00d02054574f582d4e4f54453a20534146452073696e636520604163636f756e7449646020697320612073656375726520686173682e50436f756e746572466f7256616c696461746f7273010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170484d617856616c696461746f7273436f756e7400001004000c310120546865206d6178696d756d2076616c696461746f7220636f756e74206265666f72652077652073746f7020616c6c6f77696e67206e65772076616c696461746f727320746f206a6f696e2e00d0205768656e20746869732076616c7565206973206e6f74207365742c206e6f206c696d6974732061726520656e666f726365642e284e6f6d696e61746f727300010405004107040048750120546865206d61702066726f6d206e6f6d696e61746f72207374617368206b657920746f207468656972206e6f6d696e6174696f6e20707265666572656e6365732c206e616d656c79207468652076616c696461746f72732074686174582074686579207769736820746f20737570706f72742e003901204e6f7465207468617420746865206b657973206f6620746869732073746f72616765206d6170206d69676874206265636f6d65206e6f6e2d6465636f6461626c6520696e2063617365207468656d01205b60436f6e6669673a3a4d61784e6f6d696e6174696f6e73605d20636f6e66696775726174696f6e206973206465637265617365642e20496e2074686973207261726520636173652c207468657365206e6f6d696e61746f7273650120617265207374696c6c206578697374656e7420696e2073746f726167652c207468656972206b657920697320636f727265637420616e64207265747269657661626c652028692e652e2060636f6e7461696e735f6b657960710120696e6469636174657320746861742074686579206578697374292c206275742074686569722076616c75652063616e6e6f74206265206465636f6465642e205468657265666f72652c20746865206e6f6e2d6465636f6461626c656d01206e6f6d696e61746f72732077696c6c206566666563746976656c79206e6f742d65786973742c20756e74696c20746865792072652d7375626d697420746865697220707265666572656e6365732073756368207468617420697401012069732077697468696e2074686520626f756e6473206f6620746865206e65776c79207365742060436f6e6669673a3a4d61784e6f6d696e6174696f6e73602e006101205468697320696d706c696573207468617420603a3a697465725f6b65797328292e636f756e7428296020616e6420603a3a6974657228292e636f756e74282960206d696768742072657475726e20646966666572656e746d012076616c75657320666f722074686973206d61702e204d6f72656f7665722c20746865206d61696e20603a3a636f756e7428296020697320616c69676e656420776974682074686520666f726d65722c206e616d656c79207468656c206e756d626572206f66206b65797320746861742065786973742e006d01204c6173746c792c20696620616e79206f6620746865206e6f6d696e61746f7273206265636f6d65206e6f6e2d6465636f6461626c652c20746865792063616e206265206368696c6c656420696d6d6564696174656c7920766961b8205b6043616c6c3a3a6368696c6c5f6f74686572605d20646973706174636861626c6520627920616e796f6e652e00d02054574f582d4e4f54453a20534146452073696e636520604163636f756e7449646020697320612073656375726520686173682e50436f756e746572466f724e6f6d696e61746f7273010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170484d61784e6f6d696e61746f7273436f756e7400001004000c310120546865206d6178696d756d206e6f6d696e61746f7220636f756e74206265666f72652077652073746f7020616c6c6f77696e67206e65772076616c696461746f727320746f206a6f696e2e00d0205768656e20746869732076616c7565206973206e6f74207365742c206e6f206c696d6974732061726520656e666f726365642e2843757272656e744572610000100400105c205468652063757272656e742065726120696e6465782e006501205468697320697320746865206c617465737420706c616e6e6564206572612c20646570656e64696e67206f6e20686f77207468652053657373696f6e2070616c6c657420717565756573207468652076616c696461746f7280207365742c206974206d6967687420626520616374697665206f72206e6f742e2441637469766545726100004507040010d820546865206163746976652065726120696e666f726d6174696f6e2c20697420686f6c647320696e64657820616e642073746172742e0059012054686520616374697665206572612069732074686520657261206265696e672063757272656e746c792072657761726465642e2056616c696461746f7220736574206f66207468697320657261206d757374206265ac20657175616c20746f205b6053657373696f6e496e746572666163653a3a76616c696461746f7273605d2e5445726173537461727453657373696f6e496e6465780001040510100400103101205468652073657373696f6e20696e646578206174207768696368207468652065726120737461727420666f7220746865206c6173742060484953544f52595f44455054486020657261732e006101204e6f74653a205468697320747261636b7320746865207374617274696e672073657373696f6e2028692e652e2073657373696f6e20696e646578207768656e20657261207374617274206265696e672061637469766529f020666f7220746865206572617320696e20605b43757272656e74457261202d20484953544f52595f44455054482c2043757272656e744572615d602e2c457261735374616b65727301010805054907e80c0000001878204578706f73757265206f662076616c696461746f72206174206572612e0061012054686973206973206b65796564206669727374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00a82049732069742072656d6f7665642061667465722060484953544f52595f44455054486020657261732e4101204966207374616b657273206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e20656d707479206578706f737572652069732072657475726e65642e48457261735374616b657273436c697070656401010805054907e80c0000002c9820436c6970706564204578706f73757265206f662076616c696461746f72206174206572612e00590120546869732069732073696d696c617220746f205b60457261735374616b657273605d20627574206e756d626572206f66206e6f6d696e61746f7273206578706f736564206973207265647563656420746f20746865dc2060543a3a4d61784e6f6d696e61746f72526577617264656450657256616c696461746f72602062696767657374207374616b6572732e1d0120284e6f74653a20746865206669656c642060746f74616c6020616e6420606f776e60206f6620746865206578706f737572652072656d61696e7320756e6368616e676564292ef42054686973206973207573656420746f206c696d69742074686520692f6f20636f737420666f7220746865206e6f6d696e61746f72207061796f75742e005d012054686973206973206b657965642066697374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00a82049732069742072656d6f7665642061667465722060484953544f52595f44455054486020657261732e4101204966207374616b657273206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e20656d707479206578706f737572652069732072657475726e65642e484572617356616c696461746f72507265667301010805054907b00800001411012053696d696c617220746f2060457261735374616b657273602c207468697320686f6c64732074686520707265666572656e636573206f662076616c696461746f72732e0061012054686973206973206b65796564206669727374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00a82049732069742072656d6f7665642061667465722060484953544f52595f44455054486020657261732e4c4572617356616c696461746f7252657761726400010405101804000c09012054686520746f74616c2076616c696461746f7220657261207061796f757420666f7220746865206c6173742060484953544f52595f44455054486020657261732e0021012045726173207468617420686176656e27742066696e697368656420796574206f7220686173206265656e2072656d6f76656420646f65736e27742068617665207265776172642e4045726173526577617264506f696e747301010405104d0714000000000008ac205265776172647320666f7220746865206c6173742060484953544f52595f44455054486020657261732e250120496620726577617264206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e2030207265776172642069732072657475726e65642e3845726173546f74616c5374616b65010104051018400000000000000000000000000000000008ec2054686520746f74616c20616d6f756e74207374616b656420666f7220746865206c6173742060484953544f52595f44455054486020657261732e1d0120496620746f74616c206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e2030207374616b652069732072657475726e65642e20466f7263654572610100b804000454204d6f6465206f662065726120666f7263696e672e4c536c6173685265776172644672616374696f6e0100ac10000000000cf8205468652070657263656e74616765206f662074686520736c617368207468617420697320646973747269627574656420746f207265706f72746572732e00e4205468652072657374206f662074686520736c61736865642076616c75652069732068616e646c6564206279207468652060536c617368602e4c43616e63656c6564536c6173685061796f757401001840000000000000000000000000000000000815012054686520616d6f756e74206f662063757272656e637920676976656e20746f207265706f7274657273206f66206120736c617368206576656e7420776869636820776173ec2063616e63656c65642062792065787472616f7264696e6172792063697263756d7374616e6365732028652e672e20676f7665726e616e6365292e40556e6170706c696564536c617368657301010405105d07040004c420416c6c20756e6170706c69656420736c61736865732074686174206172652071756575656420666f72206c617465722e28426f6e646564457261730100d90304001025012041206d617070696e672066726f6d207374696c6c2d626f6e646564206572617320746f207468652066697273742073657373696f6e20696e646578206f662074686174206572612e00c8204d75737420636f6e7461696e7320696e666f726d6174696f6e20666f72206572617320666f72207468652072616e67653abc20605b6163746976655f657261202d20626f756e64696e675f6475726174696f6e3b206163746976655f6572615d604c56616c696461746f72536c617368496e457261000108050549076507040008450120416c6c20736c617368696e67206576656e7473206f6e2076616c696461746f72732c206d61707065642062792065726120746f20746865206869676865737420736c6173682070726f706f7274696f6e7020616e6420736c6173682076616c7565206f6620746865206572612e4c4e6f6d696e61746f72536c617368496e4572610001080505490718040004610120416c6c20736c617368696e67206576656e7473206f6e206e6f6d696e61746f72732c206d61707065642062792065726120746f20746865206869676865737420736c6173682076616c7565206f6620746865206572612e34536c617368696e675370616e73000104050069070400048c20536c617368696e67207370616e7320666f72207374617368206163636f756e74732e245370616e536c6173680101040559076d07800000000000000000000000000000000000000000000000000000000000000000083d01205265636f72647320696e666f726d6174696f6e2061626f757420746865206d6178696d756d20736c617368206f6620612073746173682077697468696e206120736c617368696e67207370616e2cb82061732077656c6c20617320686f77206d7563682072657761726420686173206265656e2070616964206f75742e5443757272656e74506c616e6e656453657373696f6e01001010000000000ce820546865206c61737420706c616e6e65642073657373696f6e207363686564756c6564206279207468652073657373696f6e2070616c6c65742e0071012054686973206973206261736963616c6c7920696e2073796e632077697468207468652063616c6c20746f205b6070616c6c65745f73657373696f6e3a3a53657373696f6e4d616e616765723a3a6e65775f73657373696f6e605d2e4c4f6666656e64696e6756616c696461746f727301007107040024690120496e6469636573206f662076616c696461746f727320746861742068617665206f6666656e64656420696e20746865206163746976652065726120616e6420776865746865722074686579206172652063757272656e746c79282064697361626c65642e00690120546869732076616c75652073686f756c642062652061207375706572736574206f662064697361626c65642076616c696461746f72732073696e6365206e6f7420616c6c206f6666656e636573206c65616420746f2074686571012076616c696461746f72206265696e672064697361626c65642028696620746865726520776173206e6f20736c617368292e2054686973206973206e656564656420746f20747261636b207468652070657263656e74616765206f6649012076616c696461746f727320746861742068617665206f6666656e64656420696e207468652063757272656e74206572612c20656e737572696e672061206e65772065726120697320666f72636564206966750120604f6666656e64696e6756616c696461746f72735468726573686f6c646020697320726561636865642e205468652076656320697320616c77617973206b65707420736f7274656420736f20746861742077652063616e2066696e6471012077686574686572206120676976656e2076616c696461746f72206861732070726576696f75736c79206f6666656e646564207573696e672062696e617279207365617263682e204974206765747320636c6561726564207768656e38207468652065726120656e64732e384368696c6c5468726573686f6c640000610504000c510120546865207468726573686f6c6420666f72207768656e2075736572732063616e2073746172742063616c6c696e6720606368696c6c5f6f746865726020666f72206f746865722076616c696461746f7273202f5901206e6f6d696e61746f72732e20546865207468726573686f6c6420697320636f6d706172656420746f207468652061637475616c206e756d626572206f662076616c696461746f7273202f206e6f6d696e61746f72732901202860436f756e74466f722a602920696e207468652073797374656d20636f6d706172656420746f2074686520636f6e66696775726564206d61782028604d61782a436f756e7460292e01550501a81c384d61784e6f6d696e6174696f6e7310101000000004b4204d6178696d756d206e756d626572206f66206e6f6d696e6174696f6e7320706572206e6f6d696e61746f722e30486973746f72794465707468101078000000508c204e756d626572206f66206572617320746f206b65657020696e20686973746f72792e00e820466f6c6c6f77696e6720696e666f726d6174696f6e206973206b65707420666f72206572617320696e20605b63757272656e745f657261202d090120486973746f727944657074682c2063757272656e745f6572615d603a2060457261735374616b657273602c2060457261735374616b657273436c6970706564602c050120604572617356616c696461746f725072656673602c20604572617356616c696461746f72526577617264602c206045726173526577617264506f696e7473602cac206045726173546f74616c5374616b65602c206045726173537461727453657373696f6e496e646578602c8420605374616b696e674c65646765722e636c61696d65645f72657761726473602e00e4204d757374206265206d6f7265207468616e20746865206e756d626572206f6620657261732064656c617965642062792073657373696f6e2ef820492e652e2061637469766520657261206d75737420616c7761797320626520696e20686973746f72792e20492e652e20606163746976655f657261203ec42063757272656e745f657261202d20686973746f72795f646570746860206d7573742062652067756172616e746565642e001101204966206d6967726174696e6720616e206578697374696e672070616c6c65742066726f6d2073746f726167652076616c756520746f20636f6e6669672076616c75652cec20746869732073686f756c642062652073657420746f2073616d652076616c7565206f72206772656174657220617320696e2073746f726167652e001501204e6f74653a2060486973746f727944657074686020697320757365642061732074686520757070657220626f756e6420666f72207468652060426f756e646564566563601101206974656d20605374616b696e674c65646765722e636c61696d65645f72657761726473602e2053657474696e6720746869732076616c7565206c6f776572207468616ed820746865206578697374696e672076616c75652063616e206c65616420746f20696e636f6e73697374656e6369657320696e20746865150120605374616b696e674c65646765726020616e642077696c6c206e65656420746f2062652068616e646c65642070726f7065726c7920696e2061206d6967726174696f6e2ef020546865207465737420607265647563696e675f686973746f72795f64657074685f616272757074602073686f77732074686973206566666563742e3853657373696f6e735065724572611010060000000470204e756d626572206f662073657373696f6e7320706572206572612e3c426f6e64696e674475726174696f6e10107000000004e4204e756d626572206f6620657261732074686174207374616b65642066756e6473206d7573742072656d61696e20626f6e64656420666f722e48536c61736844656665724475726174696f6e10106f000000100101204e756d626572206f662065726173207468617420736c6173686573206172652064656665727265642062792c20616674657220636f6d7075746174696f6e2e000d0120546869732073686f756c64206265206c657373207468616e2074686520626f6e64696e67206475726174696f6e2e2053657420746f203020696620736c617368657315012073686f756c64206265206170706c69656420696d6d6564696174656c792c20776974686f7574206f70706f7274756e69747920666f7220696e74657276656e74696f6e2e804d61784e6f6d696e61746f72526577617264656450657256616c696461746f7210100001000010f820546865206d6178696d756d206e756d626572206f66206e6f6d696e61746f727320726577617264656420666f7220656163682076616c696461746f722e00510120466f7220656163682076616c696461746f72206f6e6c79207468652060244d61784e6f6d696e61746f72526577617264656450657256616c696461746f72602062696767657374207374616b6572732063616e390120636c61696d207468656972207265776172642e2054686973207573656420746f206c696d69742074686520692f6f20636f737420666f7220746865206e6f6d696e61746f72207061796f75742e484d6178556e6c6f636b696e674368756e6b7310102000000028050120546865206d6178696d756d206e756d626572206f662060756e6c6f636b696e6760206368756e6b732061205b605374616b696e674c6564676572605d2063616e090120686176652e204566666563746976656c792064657465726d696e657320686f77206d616e7920756e6971756520657261732061207374616b6572206d61792062653820756e626f6e64696e6720696e2e00f8204e6f74653a20604d6178556e6c6f636b696e674368756e6b736020697320757365642061732074686520757070657220626f756e6420666f722074686501012060426f756e64656456656360206974656d20605374616b696e674c65646765722e756e6c6f636b696e67602e2053657474696e6720746869732076616c75650501206c6f776572207468616e20746865206578697374696e672076616c75652063616e206c65616420746f20696e636f6e73697374656e6369657320696e20746865090120605374616b696e674c65646765726020616e642077696c6c206e65656420746f2062652068616e646c65642070726f7065726c7920696e20612072756e74696d650501206d6967726174696f6e2e20546865207465737420607265647563696e675f6d61785f756e6c6f636b696e675f6368756e6b735f616272757074602073686f7773342074686973206566666563742e017907081c53657373696f6e011c53657373696f6e1c2856616c696461746f727301005d050400047c205468652063757272656e7420736574206f662076616c696461746f72732e3043757272656e74496e646578010010100000000004782043757272656e7420696e646578206f66207468652073657373696f6e2e345175657565644368616e676564010098040008390120547275652069662074686520756e6465726c79696e672065636f6e6f6d6963206964656e746974696573206f7220776569676874696e6720626568696e64207468652076616c696461746f7273a420686173206368616e67656420696e20746865207175657565642076616c696461746f72207365742e285175657565644b65797301007d070400083d012054686520717565756564206b65797320666f7220746865206e6578742073657373696f6e2e205768656e20746865206e6578742073657373696f6e20626567696e732c207468657365206b657973e02077696c6c206265207573656420746f2064657465726d696e65207468652076616c696461746f7227732073657373696f6e206b6579732e4844697361626c656456616c696461746f7273010065050400148020496e6469636573206f662064697361626c65642076616c696461746f72732e003d01205468652076656320697320616c77617973206b65707420736f7274656420736f20746861742077652063616e2066696e642077686574686572206120676976656e2076616c696461746f722069733d012064697361626c6564207573696e672062696e617279207365617263682e204974206765747320636c6561726564207768656e20606f6e5f73657373696f6e5f656e64696e67602072657475726e73642061206e657720736574206f66206964656e7469746965732e204e6578744b65797300010405007d050400049c20546865206e6578742073657373696f6e206b65797320666f7220612076616c696461746f722e204b65794f776e657200010405850700040004090120546865206f776e6572206f662061206b65792e20546865206b65792069732074686520604b657954797065496460202b2074686520656e636f646564206b65792e01790501bc00018d070928486973746f726963616c0128486973746f726963616c0848486973746f726963616c53657373696f6e73000104051091070400045d01204d617070696e672066726f6d20686973746f726963616c2073657373696f6e20696e646963657320746f2073657373696f6e2d6461746120726f6f74206861736820616e642076616c696461746f7220636f756e742e2c53746f72656452616e67650000dd03040004e4205468652072616e6765206f6620686973746f726963616c2073657373696f6e732077652073746f72652e205b66697273742c206c61737429000000000a1c4772616e647061011c4772616e647061181453746174650100950704000490205374617465206f66207468652063757272656e7420617574686f72697479207365742e3450656e64696e674368616e676500009907040004c42050656e64696e67206368616e67653a20287369676e616c65642061742c207363686564756c6564206368616e6765292e284e657874466f72636564000010040004bc206e65787420626c6f636b206e756d6265722077686572652077652063616e20666f7263652061206368616e67652e1c5374616c6c65640000dd030400049020607472756560206966207765206172652063757272656e746c79207374616c6c65642e3043757272656e745365744964010028200000000000000000085d0120546865206e756d626572206f66206368616e6765732028626f746820696e207465726d73206f66206b65797320616e6420756e6465726c79696e672065636f6e6f6d696320726573706f6e736962696c697469657329c420696e20746865202273657422206f66204772616e6470612076616c696461746f72732066726f6d2067656e657369732e30536574496453657373696f6e00010405281004002859012041206d617070696e672066726f6d206772616e6470612073657420494420746f2074686520696e646578206f6620746865202a6d6f737420726563656e742a2073657373696f6e20666f722077686963682069747368206d656d62657273207765726520726573706f6e7369626c652e0045012054686973206973206f6e6c79207573656420666f722076616c69646174696e672065717569766f636174696f6e2070726f6f66732e20416e2065717569766f636174696f6e2070726f6f66206d7573744d0120636f6e7461696e732061206b65792d6f776e6572736869702070726f6f6620666f72206120676976656e2073657373696f6e2c207468657265666f7265207765206e65656420612077617920746f20746965450120746f6765746865722073657373696f6e7320616e64204752414e44504120736574206964732c20692e652e207765206e65656420746f2076616c6964617465207468617420612076616c696461746f7241012077617320746865206f776e6572206f66206120676976656e206b6579206f6e206120676976656e2073657373696f6e2c20616e642077686174207468652061637469766520736574204944207761735420647572696e6720746861742073657373696f6e2e00b82054574f582d4e4f54453a2060536574496460206973206e6f7420756e646572207573657220636f6e74726f6c2e01850501c008384d6178417574686f7269746965731010a0860100045c204d617820417574686f72697469657320696e20757365584d6178536574496453657373696f6e456e74726965732820a00200000000000018390120546865206d6178696d756d206e756d626572206f6620656e747269657320746f206b65657020696e207468652073657420696420746f2073657373696f6e20696e646578206d617070696e672e0031012053696e6365207468652060536574496453657373696f6e60206d6170206973206f6e6c79207573656420666f722076616c69646174696e672065717569766f636174696f6e73207468697329012076616c75652073686f756c642072656c61746520746f2074686520626f6e64696e67206475726174696f6e206f66207768617465766572207374616b696e672073797374656d2069733501206265696e6720757365642028696620616e79292e2049662065717569766f636174696f6e2068616e646c696e67206973206e6f7420656e61626c6564207468656e20746869732076616c7565342063616e206265207a65726f2e01a1070b48417574686f72697479446973636f766572790148417574686f72697479446973636f7665727908104b6579730100a5070400048c204b657973206f66207468652063757272656e7420617574686f72697479207365742e204e6578744b6579730100a50704000480204b657973206f6620746865206e65787420617574686f72697479207365742e000000000c20496d4f6e6c696e650120496d4f6e6c696e651038486561727462656174416674657201001010000000002c1d012054686520626c6f636b206e756d6265722061667465722077686963682069742773206f6b20746f2073656e64206865617274626561747320696e207468652063757272656e74242073657373696f6e2e0025012041742074686520626567696e6e696e67206f6620656163682073657373696f6e20776520736574207468697320746f20612076616c756520746861742073686f756c642066616c6c350120726f7567686c7920696e20746865206d6964646c65206f66207468652073657373696f6e206475726174696f6e2e20546865206964656120697320746f206669727374207761697420666f721901207468652076616c696461746f727320746f2070726f64756365206120626c6f636b20696e207468652063757272656e742073657373696f6e2c20736f207468617420746865a820686561727462656174206c61746572206f6e2077696c6c206e6f74206265206e65636573736172792e00390120546869732076616c75652077696c6c206f6e6c79206265207573656420617320612066616c6c6261636b206966207765206661696c20746f2067657420612070726f7065722073657373696f6e2d012070726f677265737320657374696d6174652066726f6d20604e65787453657373696f6e526f746174696f6e602c2061732074686f736520657374696d617465732073686f756c642062650101206d6f7265206163637572617465207468656e207468652076616c75652077652063616c63756c61746520666f7220604865617274626561744166746572602e104b6579730100ad07040004d0205468652063757272656e7420736574206f66206b6579732074686174206d61792069737375652061206865617274626561742e485265636569766564486561727462656174730001080505dd03b5070400083d0120466f7220656163682073657373696f6e20696e6465782c207765206b6565702061206d617070696e67206f66206053657373696f6e496e6465786020616e64206041757468496e6465786020746fb02060577261707065724f70617175653c426f756e6465644f70617175654e6574776f726b53746174653e602e38417574686f726564426c6f636b730101080505490710100000000008150120466f7220656163682073657373696f6e20696e6465782c207765206b6565702061206d617070696e67206f66206056616c696461746f7249643c543e6020746f20746865c8206e756d626572206f6620626c6f636b7320617574686f7265642062792074686520676976656e20617574686f726974792e01b50501d40440556e7369676e65645072696f726974792820ffffffffffffffff10f0204120636f6e66696775726174696f6e20666f722062617365207072696f72697479206f6620756e7369676e6564207472616e73616374696f6e732e0015012054686973206973206578706f73656420736f20746861742069742063616e2062652074756e656420666f7220706172746963756c61722072756e74696d652c207768656eb4206d756c7469706c652070616c6c6574732073656e6420756e7369676e6564207472616e73616374696f6e732e01c9070d204f6666656e63657301204f6666656e6365730c1c5265706f727473000104052ccd07040004490120546865207072696d61727920737472756374757265207468617420686f6c647320616c6c206f6666656e6365207265636f726473206b65796564206279207265706f7274206964656e746966696572732e58436f6e63757272656e745265706f727473496e6465780101080505d107d5030400042901204120766563746f72206f66207265706f727473206f66207468652073616d65206b696e6420746861742068617070656e6564206174207468652073616d652074696d6520736c6f742e485265706f72747342794b696e64496e64657801010405fc30040018110120456e756d65726174657320616c6c207265706f727473206f662061206b696e6420616c6f6e672077697468207468652074696d6520746865792068617070656e65642e00bc20416c6c207265706f7274732061726520736f72746564206279207468652074696d65206f66206f6666656e63652e004901204e6f74652074686174207468652061637475616c2074797065206f662074686973206d617070696e6720697320605665633c75383e602c207468697320697320626563617573652076616c756573206f66690120646966666572656e7420747970657320617265206e6f7420737570706f7274656420617420746865206d6f6d656e7420736f2077652061726520646f696e6720746865206d616e75616c2073657269616c697a6174696f6e2e0001f800000e6052616e646f6d6e657373436f6c6c656374697665466c6970016052616e646f6d6e657373436f6c6c656374697665466c6970043852616e646f6d4d6174657269616c0100d50704000c610120536572696573206f6620626c6f636b20686561646572732066726f6d20746865206c61737420383120626c6f636b73207468617420616374732061732072616e646f6d2073656564206d6174657269616c2e2054686973610120697320617272616e67656420617320612072696e672062756666657220776974682060626c6f636b5f6e756d626572202520383160206265696e672074686520696e64657820696e746f20746865206056656360206f664420746865206f6c6465737420686173682e000000000f20426167734c6973740120426167734c6973740c244c6973744e6f6465730001040500d90704000c8020412073696e676c65206e6f64652c2077697468696e20736f6d65206261672e000501204e6f6465732073746f7265206c696e6b7320666f727761726420616e64206261636b2077697468696e207468656972207265737065637469766520626167732e4c436f756e746572466f724c6973744e6f646573010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170204c697374426167730001040528dd0704000c642041206261672073746f72656420696e2073746f726167652e0019012053746f7265732061206042616760207374727563742c2077686963682073746f726573206865616420616e64207461696c20706f696e7465727320746f20697473656c662e01d50501010104344261675468726573686f6c647315010919210300407a10f35a00006a70ccd4a96000009ef3397fbc660000a907ccd5306d00003d9a67fb0c740000a9bfa275577b0000a6fdf73217830000034f5d91538b0000132445651494000078081001629d00000302f63c45a70000392e6f7fc7b10000f59c23c6f2bc00004ae76aafd1c80000598a64846fd50000129fb243d8e200003f22e1ac18f1000033a4844c3e000100e2e51b895710010076a2c0b0732101006789b407a3330100793ed8d7f646010078131b81815b01000c1cf38a567101004437eeb68a8801009eb56d1434a10100335e9f156abb010067c3c7a545d701003218f340e1f40100de0b230d59140200699c11f5ca350200ad50a2c4565902009ae41c471e7f0200d0244e6745a70200f984ad51f2d10200ace7a7984dff0200a118325b822f0300ffa4c76dbe620300580bfd8532990300a9afce6812d30300109ad81b95100400d9caa519f551040038df488970970400bee1727949e10400cc73401fc62f0500b304f91831830500828bffb4d9db05001235383d143a0600a5b42a473a9e060036662d09ab080700f73aeab4cb790700b87e93d707f20700ffec23c0d1710800b84b0beca2f90800c9dcae7afc89090091752ba867230a0064f1cd4f76c60a003609be76c3730b0078655fdff32b0c00a407f5a5b6ef0c0052f61be7c5bf0d00da71bb70e79c0e000de9127eed870f001477987fb7811000ebee65ef328b11001269fe325ca5120033f8428b3fd113008ba57a13fa0f15001b2b60d0ba6216000d1d37d0c3ca17006c64fa5c6b4919002622c7411de01a00045bb9245c901c00233d83f6c25b1e00c8771c79064420003013fddef64a2200aa8b6e848172240082c096c4b2bc260016a3faebb72b29008296524ae1c12b00a636a865a4812e00d0e2d4509e6d31009c0a9a2796883400e4faafb27fd53700e6e64d367e573b000e4bd66de7113f0088b17db746084300b07def72603e470034de249635b84b00d48bd57b077a5000d0bd20ef5b885500b8f0467801e85a0010f88aee139e60003892925301b066009c95e4fc8e236d00b4126d10dffe730028b43e5976487b00a08a1c7a42078300b09ab083a0428b002846b2f463029400c861a42ade4e9d0050d23d4ae630a700805101a7e1b1b10038e501b2ccdbbc002016527844b9c800388924ba9055d50070ca35a4aebce200805fb1355cfbf0008035685d241f0001a0c3dcd96b361001d07862e87e50210160e852d09f7d330190662c5816cf460110274c3340575b01804be277a22971013082b92dfc5a880180d276075a01a101b0f511592b34bb014031745f580cd701802f6cee59a4f40140ff799b521814026075607d2986350260fde999a60d590200e5e71c91d07e02c0df2575cff2a602a07fd975899ad102a067009d4cf0fe0220dc29a1321f2f0320ff526b0a5562038088caa383c29803e05683fb5c9bd203401dd75d9516100400317e39a06e5104c0b071129de1960480b48c9192b1e00480e8124aad242f05c007ca7082858205007c13c45623db0540836fe869523906c0700f81466c9d0640f09c5017d00707c0e624b301e37807c0332ac78510f10780074ca1e4ca700800d5a9eb8c8bf80800a849588ed3880900804254142c220a80a25170e826c50a00e8d5fafc5e720b801df64e00792a0c80d4fe64f923ee0c006dd038ee19be0d001e90a494209b0e0010bf570e0a860f00da6a9db0b57f1000bf64afd810891100bb5b60cd17a31200f963f3aed6ce1300d5f004766a0d1500e099770202601600103d663bdfc71700de3e2d4158461900ecdbadb2d8dc1a0045c70007e38c1c00b8bde0fc11581e00ba5c2a211a402000407de46dcb462200dea55b03136e2400aaf1f3fcfcb7260014226f63b62629006492803e8fbc2b008486a6c7fc7b2e002cf05fc09b673100da63f7ed32823400f0b13fbdb5ce3700f291c41047503b00422a1a3c3c0a3f002c24212f20004300ac9342d4b6354700cc6ed7a400af4b00c4d022773e70500020017d89f57d5500f86387cef3dc5a008c4c7f7e54926000206207f284a36600cc1e05cb49166d00b42a7a70c4f07300d43a90e278397b0038f461ec53f78200a07264b9b1318b0048c9b3d464f09300007fe998bd3b9d0010058f17921ca70000dfaf7f469cb100e80c880bd6c4bc0058bdcb7ddca0c80038d18d37a03bd50030d55bf01ca1e200704ac01a0fdef0ffffffffffffffffacd020546865206c697374206f66207468726573686f6c64732073657061726174696e672074686520766172696f757320626167732e00490120496473206172652073657061726174656420696e746f20756e736f727465642062616773206163636f7264696e6720746f2074686569722073636f72652e205468697320737065636966696573207468656101207468726573686f6c64732073657061726174696e672074686520626167732e20416e20696427732062616720697320746865206c6172676573742062616720666f722077686963682074686520696427732073636f7265b8206973206c657373207468616e206f7220657175616c20746f20697473207570706572207468726573686f6c642e006501205768656e20696473206172652069746572617465642c2068696768657220626167732061726520697465726174656420636f6d706c6574656c79206265666f7265206c6f77657220626167732e2054686973206d65616e735901207468617420697465726174696f6e206973205f73656d692d736f727465645f3a20696473206f66206869676865722073636f72652074656e6420746f20636f6d65206265666f726520696473206f66206c6f7765722d012073636f72652c206275742070656572206964732077697468696e206120706172746963756c6172206261672061726520736f7274656420696e20696e73657274696f6e206f726465722e006820232045787072657373696e672074686520636f6e7374616e74004d01205468697320636f6e7374616e74206d75737420626520736f7274656420696e207374726963746c7920696e6372656173696e67206f726465722e204475706c6963617465206974656d7320617265206e6f742c207065726d69747465642e00410120546865726520697320616e20696d706c696564207570706572206c696d6974206f66206053636f72653a3a4d4158603b20746861742076616c756520646f6573206e6f74206e65656420746f2062652101207370656369666965642077697468696e20746865206261672e20466f7220616e792074776f207468726573686f6c64206c697374732c206966206f6e6520656e647320776974683101206053636f72653a3a4d4158602c20746865206f74686572206f6e6520646f6573206e6f742c20616e64207468657920617265206f746865727769736520657175616c2c207468652074776f7c206c697374732077696c6c20626568617665206964656e746963616c6c792e003820232043616c63756c6174696f6e005501204974206973207265636f6d6d656e64656420746f2067656e65726174652074686520736574206f66207468726573686f6c647320696e20612067656f6d6574726963207365726965732c2073756368207468617441012074686572652065786973747320736f6d6520636f6e7374616e7420726174696f2073756368207468617420607468726573686f6c645b6b202b20315d203d3d20287468726573686f6c645b6b5d202ad020636f6e7374616e745f726174696f292e6d6178287468726573686f6c645b6b5d202b2031296020666f7220616c6c20606b602e005901205468652068656c7065727320696e2074686520602f7574696c732f6672616d652f67656e65726174652d6261677360206d6f64756c652063616e2073696d706c69667920746869732063616c63756c6174696f6e2e002c2023204578616d706c6573005101202d20496620604261675468726573686f6c64733a3a67657428292e69735f656d7074792829602c207468656e20616c6c20696473206172652070757420696e746f207468652073616d65206261672c20616e64b0202020697465726174696f6e206973207374726963746c7920696e20696e73657274696f6e206f726465722e6101202d20496620604261675468726573686f6c64733a3a67657428292e6c656e2829203d3d203634602c20616e6420746865207468726573686f6c6473206172652064657465726d696e6564206163636f7264696e6720746f11012020207468652070726f63656475726520676976656e2061626f76652c207468656e2074686520636f6e7374616e7420726174696f20697320657175616c20746f20322e6501202d20496620604261675468726573686f6c64733a3a67657428292e6c656e2829203d3d20323030602c20616e6420746865207468726573686f6c6473206172652064657465726d696e6564206163636f7264696e6720746f59012020207468652070726f63656475726520676976656e2061626f76652c207468656e2074686520636f6e7374616e7420726174696f20697320617070726f78696d6174656c7920657175616c20746f20312e3234382e6101202d20496620746865207468726573686f6c64206c69737420626567696e7320605b312c20322c20332c202e2e2e5d602c207468656e20616e20696420776974682073636f72652030206f7220312077696c6c2066616c6cf0202020696e746f2062616720302c20616e20696420776974682073636f726520322077696c6c2066616c6c20696e746f2062616720312c206574632e00302023204d6967726174696f6e00610120496e20746865206576656e7420746861742074686973206c6973742065766572206368616e6765732c206120636f7079206f6620746865206f6c642062616773206c697374206d7573742062652072657461696e65642e5d012057697468207468617420604c6973743a3a6d696772617465602063616e2062652063616c6c65642c2077686963682077696c6c20706572666f726d2074686520617070726f707269617465206d6967726174696f6e2e01e107101c56657374696e67011c56657374696e67081c56657374696e670001040200e907040004d820496e666f726d6174696f6e20726567617264696e67207468652076657374696e67206f66206120676976656e206163636f756e742e3853746f7261676556657273696f6e0100f10704000c7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e003101204e6577206e6574776f726b732073746172742077697468206c61746573742076657273696f6e2c2061732064657465726d696e6564206279207468652067656e65736973206275696c642e01d90501050108444d696e5665737465645472616e736665721840aa821bce26000000000000000000000004e820546865206d696e696d756d20616d6f756e74207472616e7366657272656420746f2063616c6c20607665737465645f7472616e73666572602e4c4d617856657374696e675363686564756c657310101c0000000001f50711204d756c746973696701204d756c746973696704244d756c7469736967730001080502f907fd07040004942054686520736574206f66206f70656e206d756c7469736967206f7065726174696f6e732e01e1050109010c2c4465706f736974426173651840d042de1300000000000000000000000018590120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e672061206d756c746973696720657865637574696f6e206f7220746f842073746f726520612064697370617463682063616c6c20666f72206c617465722e00010120546869732069732068656c6420666f7220616e206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a652069733101206034202b2073697a656f662828426c6f636b4e756d6265722c2042616c616e63652c204163636f756e74496429296020627974657320616e642077686f7365206b65792073697a652069738020603332202b2073697a656f66284163636f756e74496429602062797465732e344465706f736974466163746f72184040cd2d030000000000000000000000000c55012054686520616d6f756e74206f662063757272656e6379206e65656465642070657220756e6974207468726573686f6c64207768656e206372656174696e672061206d756c746973696720657865637574696f6e2e00250120546869732069732068656c6420666f7220616464696e67203332206279746573206d6f726520696e746f2061207072652d6578697374696e672073746f726167652076616c75652e384d61785369676e61746f7269657310106400000004ec20546865206d6178696d756d20616d6f756e74206f66207369676e61746f7269657320616c6c6f77656420696e20746865206d756c74697369672e010508121c436f756e63696c011c436f756e63696c24145374616765010009082402010000000000000004742043757272656e7420636f756e63696c20766f74696e6720737461676538436f756e63696c4d656d6265727301001d08040004602043757272656e7420636f756e63696c206d656d626572732843616e64696461746573000104022829080400041101204d6170206f6620616c6c2063616e64696461746573207468617420657665722063616e6469646174656420616e6420686176656e277420756e7374616b65207965742e50416e6e6f756e63656d656e74506572696f644e72010028200000000000000000085d0120496e646578206f66207468652063757272656e742063616e64696461637920706572696f642e20497420697320696e6372656d656e74656420657665727974696d6520616e6e6f756e63656d656e7420706572696f6420207374617274732e18427564676574010018400000000000000000000000000000000004c82042756467657420666f722074686520636f756e63696c277320656c6563746564206d656d6265727320726577617264732e484e6578745265776172645061796d656e7473010010100000000004290120546865206e65787420626c6f636b20696e2077686963682074686520656c656374656420636f756e63696c206d656d62657220726577617264732077696c6c2062652070617965642e404e657874427564676574526566696c6c010010100000000004d820546865206e65787420626c6f636b20696e20776869636820746865206275646765742077696c6c20626520696e637265617365642e3c427564676574496e6372656d656e74010018400000000000000000000000000000000004d420416d6f756e74206f662062616c616e636520746f20626520726566696c6c65642065766572792062756467657420706572696f643c436f756e63696c6f725265776172640100184000000000000000000000000000000000046c20436f756e63696c6f72207265776172642070657220626c6f636b01e90501110124684d696e4e756d6265724f66457874726143616e64696461746573101000000000080901204d696e696d756d206e756d626572206f662065787472612063616e64696461746573206e656564656420666f72207468652076616c696420656c656374696f6e2e2d01204e756d626572206f6620746f74616c2063616e6469646174657320697320657175616c20746f20636f756e63696c2073697a6520706c75732065787472612063616e646964617465732e2c436f756e63696c53697a65101005000000045420436f756e63696c206d656d62657220636f756e74444d696e43616e6469646174655374616b651840a010a012d3eb050000000000000000000490204d696e696d756d207374616b652063616e6469646174652068617320746f206c6f636b60416e6e6f756e63696e67506572696f644475726174696f6e10103c0000000474204475726174696f6e206f6620616e6e6f6e63696e6720706572696f644849646c65506572696f644475726174696f6e10100a0000000460204475726174696f6e206f662069646c6520706572696f6464456c65637465644d656d626572526577617264506572696f6410100600000004a020496e74657276616c20666f72206175746f6d6174696320726577617264207061796d656e74732e48427564676574526566696c6c506572696f6410100600000004ac20496e74657276616c206265747765656e206175746f6d617469632062756467657420726566696c6c732e3c43616e6469646163794c6f636b496425042063616e6469646163048c204578706f72747320636f6e7374202d2063616e646964616379206c6f636b2069642e3c436f756e63696c6f724c6f636b4964250420636f756e63696c6f048c204578706f72747320636f6e7374202d20636f756e63696c6f72206c6f636b2069642e012d0813285265666572656e64756d014c496e7374616e6365315265666572656e64756d0c14537461676501003108040004682043757272656e74207265666572656e64756d2073746167652e14566f74657301010402004108e400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018510120566f746573206361737420696e20746865207265666572656e64756d2e2041206e6577207265636f726420697320616464656420746f2074686973206d6170207768656e20612075736572206361737473206134207365616c656420766f74652e0101204974206973206d6f646966696564207768656e206120757365722072657665616c732074686520766f7465277320636f6d6d69746d656e742070726f6f662e55012041207265636f72642069732066696e616c6c792072656d6f766564207768656e20746865207573657220756e7374616b65732c2077686963682063616e2068617070656e20647572696e67206120766f74696e679c207374616765206f72206166746572207468652063757272656e74206379636c6520656e64732ef82041207374616b6520666f72206120766f74652063616e2062652072657573656420696e20667574757265207265666572656e64756d206379636c65732e404163636f756e74734f707465644f757401010402007c0004f4204163636f756e74732074686174207065726d616e656e746c79206f70746564206f7574206f6620766f74696e6720696e207265666572656e64756d2e01ed0501190114344d617853616c744c656e67746828202000000000000000085d01204d6178696d756d206c656e677468206f6620766f746520636f6d6d69746d656e742073616c742e20557365206c656e677468207468617420656e737572657320756e697175656e65737320666f722068617368696e675020652e672e207374643a3a7536343a3a4d41582e44566f746553746167654475726174696f6e10101400000004b0204475726174696f6e206f6620766f74696e6720737461676520286e756d626572206f6620626c6f636b73294c52657665616c53746167654475726174696f6e10101400000004bc204475726174696f6e206f662072657665616c696e6720737461676520286e756d626572206f6620626c6f636b7329304d696e696d756d5374616b651840a41a130d8401000000000000000000000480204d696e696d756d207374616b65206e656564656420666f7220766f74696e67505374616b696e6748616e646c65724c6f636b4964250420766f74696e67202004a4204578706f72747320636f6e7374202d207374616b696e672068616e646c6572206c6f636b2069642e014508141c4d656d6265727301284d656d6265727368697020304e6578744d656d6265724964010028200000000000000000084501204d656d626572496420746f2061737369676e20746f206e657874206d656d626572207468617420697320616464656420746f207468652072656769737472792c20616e6420697320616c736f20746865e820746f74616c206e756d626572206f66206d656d6265727320637265617465642e204d656d626572496473207374617274206174205a65726f2e384d656d626572736869704279496400010402284908040004d0204d617070696e67206f66206d656d626572277320696420746f207468656972206d656d626572736869702070726f66696c652e504d656d6265724964427948616e646c6548617368010104022c28200000000000000000040501205265676973746572656420756e697175652068616e646c6573206861736820616e64207468656972206d617070696e6720746f207468656972206f776e65722e2c526566657272616c437574010008040004410120526566657272616c206375742070657263656e74206f6620746865206d656d626572736869702066656520746f2072656365697665206f6e20627579696e6720746865206d656d626572736869702e3c4d656d62657273686970507269636501001840aa821bce26000000000000000000000004682043757272656e74206d656d626572736869702070726963652e58496e697469616c496e7669746174696f6e436f756e74010010100000000004e820496e697469616c20696e7669746174696f6e20636f756e7420666f7220746865206e65776c7920626f75676874206d656d626572736869702e60496e697469616c496e7669746174696f6e42616c616e63650100184034c10d6713000000000000000000000004cc20496e697469616c20696e7669746174696f6e2062616c616e636520666f722074686520696e7669746564206d656d6265722e705374616b696e674163636f756e7449644d656d62657253746174757301010402004d082400000000000000000004250120446f75626c65206f662061207374616b696e67206163636f756e7420696420616e64206d656d62657220696420746f2074686520636f6e6669726d6174696f6e207374617475732e01f105012901185844656661756c744d656d6265727368697050726963651840aa821bce26000000000000000000000004a0204578706f72747320636f6e7374202d2064656661756c74206d656d62657273686970206665652e64526566657272616c4375744d6178696d756d50657263656e74080432044901204578706f72747320636f6e7374202d206d6178696d756d2070657263656e742076616c7565206f6620746865206d656d626572736869702066656520666f722074686520726566657272616c206375742e7c44656661756c74496e697469616c496e7669746174696f6e42616c616e6365184034c10d6713000000000000000000000004e0204578706f72747320636f6e7374202d2064656661756c742062616c616e636520666f722074686520696e7669746564206d656d6265722e3843616e6469646174655374616b651840a41a130d84010000000000000000000004f8204578706f72747320636f6e7374202d205374616b65206e656564656420746f2063616e646964617465206173207374616b696e67206163636f756e742e4c496e76697465644d656d6265724c6f636b4964250420696e766974656d6204a0204578706f72747320636f6e7374202d20696e7669746564206d656d626572206c6f636b2069642e585374616b696e6743616e6469646174654c6f636b4964250420626f756e6473746104ac204578706f72747320636f6e7374202d207374616b696e672063616e646964617465206c6f636b2069642e0151081514466f72756d0124466f72756d5f315f31203043617465676f727942794964010104022855083d010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004cc204d61702063617465676f7279206964656e74696669657220746f20636f72726573706f6e64696e672063617465676f72792e384e65787443617465676f727949640100282000000000000000000411012043617465676f7279206964656e7469666965722076616c756520746f206265207573656420666f7220746865206e6578742043617465676f727920637265617465642e3c43617465676f7279436f756e746572010028200000000000000000049420436f756e74657220666f7220616c6c206578697374696e672063617465676f726965732e2854687265616442794964010108020279035d08a4000000000000000000000000000000000000000000000000000000000000000000000000000000000004bc204d617020746872656164206964656e74696669657220746f20636f72726573706f6e64696e67207468726561642e304e657874546872656164496401002820000000000000000004090120546872656164206964656e7469666965722076616c756520746f206265207573656420666f72206e6578742054687265616420696e20746872656164427949642e284e657874506f7374496401002820000000000000000004f020506f7374206964656e7469666965722076616c756520746f206265207573656420666f7220666f72206e65787420706f737420637265617465642e4c43617465676f727942794d6f64657261746f72010108020279037c000480204d6f64657261746f722073657420666f7220656163682043617465676f727920506f737442794964010108020279036108150100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004ac204d617020706f7374206964656e74696669657220746f20636f72726573706f6e64696e6720706f73742e01f505015101102c506f73744465706f736974184083890d730000000000000000000000000838204578706f72747320636f6e737480204465706f736974206e656564656420746f20637265617465206120706f7374345468726561644465706f736974184099b06c6f0000000000000000000000000488204465706f736974206e656564656420746f20637265617465206120746872656164804d617844697265637453756263617465676f72696573496e43617465676f7279282005000000000000000484204d617844697265637453756263617465676f72696573496e43617465676f7279484d6178546f74616c43617465676f7269657328202800000000000000044c204d6178546f74616c43617465676f726965730165081630436f6e737469747574696f6e0130436f6e737469747574696f6e0430436f6e737469747574696f6e010069088000000000000000000000000000000000000000000000000000000000000000000001f905016d0100001718426f756e74790118426f756e74791420426f756e7469657301010402286d087d010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044020426f756e74792073746f726167652e4c426f756e7479436f6e747269627574696f6e7301010802028108850880000000000000000000000000000000005084c06c000000000000000000000000044d0120446f75626c65206d617020666f7220626f756e74792066756e64696e672e2049742073746f7265732061206d656d626572206f7220636f756e63696c2066756e64696e6720666f7220626f756e746965732e2c426f756e7479436f756e74010010100000000004b820436f756e74206f6620616c6c20626f756e7469657320746861742068617665206265656e20637265617465642e1c456e74726965730001080202790389080400046020576f726b20656e7472792073746f72616765206d61702e28456e747279436f756e74010010100000000004c820436f756e74206f6620616c6c20776f726b20656e747269657320746861742068617665206265656e20637265617465642e01fd05017101105c436c6f736564436f6e747261637453697a654c696d6974101032000000044d01204578706f72747320636f6e7374202d206d617820776f726b20656e747279206e756d62657220666f72206120636c6f736564206173737572616e6365207479706520636f6e747261637420626f756e74792e4c4d696e576f726b456e7472616e745374616b651840958ed36d00000000000000000000000004d4204578706f72747320636f6e7374202d206d696e20776f726b20656e7472616e74207374616b6520666f72206120626f756e74792e6846756e6465725374617465426c6f6174426f6e64416d6f756e7418405084c06c00000000000000000000000004f4204578706f72747320636f6e7374202d2066756e64657220737461746520626c6f617420626f6e6420616d6f756e7420666f72206120626f756e74792e6c43726561746f725374617465426c6f6174426f6e64416d6f756e7418400e16e46c00000000000000000000000004f8204578706f72747320636f6e7374202d2063726561746f7220737461746520626c6f617420626f6e6420616d6f756e7420666f72206120626f756e74792e018d0818404a6f7973747265616d5574696c69747901404a6f7973747265616d5574696c6974790001010601950100019108191c436f6e74656e74011c436f6e74656e74842c4368616e6e656c427949640101040228a901a10100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024566964656f42794964010104022895086c00000000000000000000000000000000000000000000000000000000344e6578744368616e6e656c4964010028200000000000000000002c4e657874566964656f496401002820000000000000000000384e6578745472616e73666572496401002820000000000000000000484e65787443757261746f7247726f75704964010028200000000000000000004043757261746f7247726f7570427949640101040228c1080c0000000028436f6d6d69746d656e7401002c80000000000000000000000000000000000000000000000000000000000000000000684368616e6e656c5374617465426c6f6174426f6e6456616c756501001840000000000000000000000000000000000425012054686520737461746520626c6f617420626f6e6420666f7220746865206368616e6e656c202868656c70732070726576656e74696e672074686520737461746520626c6f6174292e60566964656f5374617465426c6f6174426f6e6456616c7565010018400000000000000000000000000000000004190154686520737461746520626c6f617420626f6e6420666f722074686520766964656f202868656c70732070726576656e74696e672074686520737461746520626c6f6174292e444d6178436173686f7574416c6c6f776564010018400000000000000000000000000000000000444d696e436173686f7574416c6c6f776564010018400000000000000000000000000000000000584368616e6e656c436173686f757473456e61626c6564010098040000484d696e41756374696f6e4475726174696f6e01001010000000000454204d696e2061756374696f6e206475726174696f6e484d617841756374696f6e4475726174696f6e01001010000000000454204d61782061756374696f6e206475726174696f6e644d696e41756374696f6e457874656e73696f6e506572696f6401001010000000000474204d696e2061756374696f6e20657874656e73696f6e20706572696f64644d617841756374696f6e457874656e73696f6e506572696f6401001010000000000474204d61782061756374696f6e20657874656e73696f6e20706572696f64484d696e4269644c6f636b4475726174696f6e01001010000000000458204d696e20626964206c6f636b206475726174696f6e484d61784269644c6f636b4475726174696f6e01001010000000000458204d617820626964206c6f636b206475726174696f6e404d696e5374617274696e67507269636501001840000000000000000000000000000000000468204d696e2061756374696f6e2073746172696e67207072696365404d61785374617274696e67507269636501001840000000000000000000000000000000000468204d61782061756374696f6e2073746172696e67207072696365444d696e43726561746f72526f79616c74790100ac1000000000047c204d696e2063726561746f7220726f79616c74792070657263656e74616765444d617843726561746f72526f79616c74790100ac1000000000047c204d61782063726561746f7220726f79616c74792070657263656e74616765284d696e4269645374657001001840000000000000000000000000000000000454204d696e2061756374696f6e206269642073746570284d61784269645374657001001840000000000000000000000000000000000454204d61782061756374696f6e20626964207374657054506c617466726f6d46656550657263656e746167650100ac1000000000046020506c6174666f726d206665652070657263656e746167655c41756374696f6e53746172747341744d617844656c7461010010100000000004b8204d61782064656c7461206265747765656e2063757272656e7420626c6f636b20616e6420737461727473206174784f70656e41756374696f6e4269644279566964656f416e644d656d62657201010802027903dd087000000000000000000000000000000000000000000000000000000000045c204269647320666f72206f70656e2061756374696f6e7354476c6f62616c4461696c794e6674436f756e7465720100f90130000000000000000000000000046820476c6f62616c206461696c79204e465420636f756e7465722e58476c6f62616c5765656b6c794e6674436f756e7465720100f90130000000000000000000000000046c20476c6f62616c207765656b6c79204e465420636f756e7465722e4c476c6f62616c4461696c794e66744c696d69740100f50130000000000000000000000000046020476c6f62616c206461696c79204e4654206c696d69742e50476c6f62616c5765656b6c794e66744c696d69740100f50130000000000000000000000000046420476c6f62616c207765656b6c79204e4654206c696d69742e404e66744c696d697473456e61626c656401009804000868204e4654206c696d69747320656e61626c6564206f72206e6f74a02043616e206265207570646174656420696e20666c696768742062792074686520436f756e63696c01050601a101246c4d61784e756d6265724f6643757261746f727350657247726f757010100a00000004c4204578706f72747320636f6e7374202d206d6178206e756d626572206f662063757261746f7273207065722067726f7570ac4d61784b65797350657243757261746f7247726f75705065726d697373696f6e7342794c6576656c4d6170101019000000045d01204578706f72747320636f6e7374202d206d6178206e756d626572206f66206b657973207065722063757261746f725f67726f75702e7065726d697373696f6e735f62795f6c6576656c206d617020696e7374616e6365704d61784e667441756374696f6e57686974656c6973744c656e67746810101400000004c4204578706f72747320636f6e7374202d206d6178206e66742061756374696f6e2077686974656c697374206c656e6774686844656661756c74476c6f62616c4461696c794e66744c696d6974f5013064000000000000008051010004c0204578706f72747320636f6e7374202d2064656661756c7420676c6f62616c206461696c79204e4654206c696d69742e6c44656661756c74476c6f62616c5765656b6c794e66744c696d6974f5013064000000000000008051010004c4204578706f72747320636f6e7374202d2064656661756c7420676c6f62616c207765656b6c79204e4654206c696d69742e6c44656661756c744368616e6e656c4461696c794e66744c696d6974f5013064000000000000008051010004c4204578706f72747320636f6e7374202d2064656661756c74206368616e6e656c206461696c79204e4654206c696d69742e7044656661756c744368616e6e656c5765656b6c794e66744c696d6974f5013064000000000000008051010004c8204578706f72747320636f6e7374202d2064656661756c74206368616e6e656c207765656b6c79204e4654206c696d69742e684d696e696d756d436173686f7574416c6c6f7765644c696d69741840a41a130d84010000000000000000000004a8204578706f727420636f6e7374202d206d696e20636173686f757420616c6c6f776564206c696d697473684d6178696d756d436173686f7574416c6c6f7765644c696d6974184040a640ba3e363b00000000000000000004a8204578706f727420636f6e7374202d206d617820636173686f757420616c6c6f776564206c696d69747301e1081a1c53746f72616765011c53746f726167654c4055706c6f6164696e67426c6f636b6564010098040004a020446566696e6573207768657468657220616c6c206e65772075706c6f61647320626c6f636b65641042616773010104029502e50848000000000000000000000000000000000000044820426167732073746f72616765206d61702e4c4e65787453746f726167654275636b6574496401002820000000000000000004ac2053746f72616765206275636b657420696420636f756e7465722e20537461727473206174207a65726f2e404e657874446174614f626a656374496401002820000000000000000004a02044617461206f626a65637420696420636f756e7465722e20537461727473206174207a65726f2e4453746f726167654275636b6574427949640001040228f108040004442053746f72616765206275636b6574732e24426c61636b6c69737401010402f9087c00048020426c61636b6c69737465642064617461206f626a656374206861736865732e5043757272656e74426c61636b6c69737453697a65010028200000000000000000047820426c61636b6c69737420636f6c6c656374696f6e20636f756e7465722e60446174614f626a6563745065724d65676162797465466565010018400000000000000000000000000000000004b02053697a652062617365642070726963696e67206f66206e6577206f626a656374732075706c6f616465642e6453746f726167654275636b6574735065724261674c696d6974010010100000000004a0202253746f72616765206275636b657473207065722062616722206e756d626572206c696d69742e68566f75636865724d61784f626a6563747353697a654c696d697401002820000000000000000004f820224d6178206f626a656374732073697a6520666f7220612073746f72616765206275636b657420766f756368657222206e756d626572206c696d69742e70566f75636865724d61784f626a656374734e756d6265724c696d697401002820000000000000000004050120224d6178206f626a65637473206e756d62657220666f7220612073746f7261676520206275636b657420766f756368657222206e756d626572206c696d69742e74446174614f626a6563745374617465426c6f6174426f6e6456616c756501001840000000000000000000000000000000000439012054686520737461746520626c6f617420626f6e6420666f72207468652064617461206f626a65637473202868656c70732070726576656e74696e672074686520737461746520626c6f6174292e6844796e616d69634261674372656174696f6e506f6c696369657301010402b102fd0814000000000004c82044796e616d69634261674372656174696f6e506f6c6963792062792062616720747970652073746f72616765206d61702e3c446174614f626a65637473427949640101080202050909096c00000000000000000000000000000000000000000000000000000004b0202744617461206f626a6563747320666f722062616773272073746f7261676520646f75626c65206d61702e784e657874446973747269627574696f6e4275636b657446616d696c79496401002820000000000000000004dc20446973747269627574696f6e206275636b65742066616d696c7920696420636f756e7465722e20537461727473206174207a65726f2e70446973747269627574696f6e4275636b657446616d696c794279496401010402280d09200000000000000000047820446973747269627574696f6e206275636b65742066616d696c6965732e80446973747269627574696f6e4275636b6574427946616d696c794964427949640101080202790311093000000000000000000000000004a82027446973747269627574696f6e206275636b6574272073746f7261676520646f75626c65206d61702e78446973747269627574696f6e4275636b657446616d696c794e756d62657201002820000000000000000004f020546f74616c206e756d626572206f6620646973747269627574696f6e206275636b65742066616d696c69657320696e207468652073797374656d2e78446973747269627574696f6e4275636b6574735065724261674c696d6974010010100000000004b42022446973747269627574696f6e206275636b657473207065722062616722206e756d626572206c696d69742e013506018d022c48426c61636b6c69737453697a654c696d69742820e803000000000000040501204578706f72747320636f6e7374202d206d6178696d756d2073697a65206f662074686520226861736820626c61636b6c6973742220636f6c6c656374696f6e2e5c4d696e53746f726167654275636b65747350657242616710100100000004ec204578706f72747320636f6e7374202d206d696e696d756d206e756d626572206f662073746f72616765206275636b65747320706572206261672e5c4d617853746f726167654275636b65747350657242616710100d00000004ec204578706f72747320636f6e7374202d206d6178696d756d206e756d626572206f662073746f72616765206275636b65747320706572206261672e704d696e446973747269627574696f6e4275636b657473506572426167101001000000040101204578706f72747320636f6e7374202d206d696e696d756d206e756d626572206f6620646973747269627574696f6e206275636b65747320706572206261672e704d6178446973747269627574696f6e4275636b657473506572426167101033000000040101204578706f72747320636f6e7374202d206d6178696d756d206e756d626572206f6620646973747269627574696f6e206275636b65747320706572206261672eb444656661756c744d656d62657244796e616d69634261674e756d6265724f6653746f726167654275636b657473101001000000085101204578706f72747320636f6e7374202d207468652064656661756c742064796e616d696320626167206372656174696f6e20706f6c69637920666f72206d656d62657273202873746f72616765206275636b657424206e756d626572292eb844656661756c744368616e6e656c44796e616d69634261674e756d6265724f6653746f726167654275636b657473101001000000085501204578706f72747320636f6e7374202d207468652064656661756c742064796e616d696320626167206372656174696f6e20706f6c69637920666f72206368616e6e656c73202873746f72616765206275636b657424206e756d626572292e844d6178446973747269627574696f6e4275636b657446616d696c794e756d6265722820c80000000000000004fc204578706f72747320636f6e7374202d206d617820616c6c6f77656420646973747269627574696f6e206275636b65742066616d696c79206e756d6265722ec84d61784e756d6265724f6650656e64696e67496e7669746174696f6e73506572446973747269627574696f6e4275636b6574101014000000042d01204578706f72747320636f6e7374202d206d6178206e756d626572206f662070656e64696e6720696e7669746174696f6e732070657220646973747269627574696f6e206275636b65742ea44d61784e756d6265724f664f70657261746f7273506572446973747269627574696f6e4275636b6574101014000000040501204578706f72747320636f6e7374202d206d6178206e756d626572206f66206f70657261746f72732070657220646973747269627574696f6e206275636b65742e444d6178446174614f626a65637453697a652820000000000f00000004bc204578706f72747320636f6e7374202d206d61782064617461206f626a6563742073697a6520696e2062797465732e011d091b3050726f6a656374546f6b656e0114546f6b656e246c4163636f756e74496e666f4279546f6b656e416e644d656d626572010108020279032109b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041d0120446f75626c65206d617020546f6b656e49642078204d656d6265724964203d3e204163636f756e744461746120666f72206d616e6167696e67206163636f756e74206461746134546f6b656e496e666f4279496401010402284909cd010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004dc206d617020546f6b656e4964203d3e20546f6b656e4461746120746f20726574726965766520746f6b656e20696e666f726d6174696f6e2c4e657874546f6b656e4964010028200000000000000000043c20546f6b656e204964206e6f6e63652c53796d626f6c7355736564010104022c7c00046c2053657420666f722074686520746f6b656e732073796d626f6c7324426c6f6174426f6e64010018400000000000000000000000000000000004b820426c6f617420426f6e642076616c7565207573656420647572696e67206163636f756e74206372656174696f6e3c4d696e53616c654475726174696f6e01001010000000000484204d696e696d756d206475726174696f6e206f66206120746f6b656e2073616c655c4d696e526576656e756553706c69744475726174696f6e010010100000000004a8204d696e696d756d20726576656e75652073706c6974206475726174696f6e20636f6e73747261696e74684d696e526576656e756553706c697454696d65546f5374617274010010100000000004bc204d696e696d756d20726576656e75652073706c69742074696d6520746f20737461727420636f6e73747261696e743c53616c65506c6174666f726d4665650100d5021000000000044d0120506c6174666f726d20666565202870657263656e74616765292063686172676564206f6e20746f70206f6620656163682073616c652070757263686173652028696e204a4f592920616e64206275726e656401390601c102000165091c3c50726f706f73616c73456e67696e65013850726f706f73616c456e67696e65142450726f706f73616c73010104021069090101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460204d61702070726f706f73616c206279206974732069642e3450726f706f73616c436f756e74010010100000000004bc20436f756e74206f6620616c6c2070726f706f73616c7320746861742068617665206265656e20637265617465642e50446973706174636861626c6543616c6c436f646501010402107509040004b4204d61702070726f706f73616c2065786563757461626c6520636f64652062792070726f706f73616c2069642e4c41637469766550726f706f73616c436f756e740100101000000000046c20436f756e74206f66206163746976652070726f706f73616c732e6c566f7465457869737473427950726f706f73616c4279566f746572010108020279093d03040104290120446f75626c65206d617020666f722070726576656e74696e67206475706c696361746520766f7465732e2053686f756c6420626520636c65616e65642061667465722075736167652e016106012903183c43616e63656c6c6174696f6e4665651840aa821bce260000000000000000000000047901204578706f72747320636f6e7374202d2074686520666565206973206170706c696564207768656e2063616e63656c207468652070726f706f73616c2e20412066656520776f756c6420626520736c617368656420286275726e6564292e3052656a656374696f6e4665651840528d8906c20000000000000000000000084501204578706f72747320636f6e7374202d202074686520666565206973206170706c696564207768656e207468652070726f706f73616c20676574732072656a65637465642e20412066656520776f756c645420626520736c617368656420286275726e6564292e385469746c654d61784c656e67746810102800000004d0204578706f72747320636f6e7374202d20206d617820616c6c6f7765642070726f706f73616c207469746c65206c656e6774682e504465736372697074696f6e4d61784c656e6774681010b80b000004e8204578706f72747320636f6e7374202d20206d617820616c6c6f7765642070726f706f73616c206465736372697074696f6e206c656e6774682e584d617841637469766550726f706f73616c4c696d697410101400000004ec204578706f72747320636f6e7374202d20206d61782073696d756c74616e656f7573206163746976652070726f706f73616c73206e756d6265722e505374616b696e6748616e646c65724c6f636b496425042070726f706f73616c04a4204578706f72747320636f6e7374202d207374616b696e672068616e646c6572206c6f636b2069642e017d091d4c50726f706f73616c7344697363757373696f6e014850726f706f73616c44697363757373696f6e10285468726561644279496401010402288109340000000000000000000000000004bc204d617020746872656164206964656e74696669657220746f20636f72726573706f6e64696e67207468726561642e2c546872656164436f756e7401002820000000000000000004b420436f756e74206f6620616c6c207468726561647320746861742068617665206265656e20637265617465642e50506f737454687265616449644279506f73744964010108020279038d0974000000000000000000000000000000000000000000000000000000000004c4204d61702074687265616420696420616e6420706f737420696420746f20636f72726573706f6e64696e6720706f73742e24506f7374436f756e7401002820000000000000000004ac20436f756e74206f6620616c6c20706f73747320746861742068617665206265656e20637265617465642e0165060141030c404d617857686974654c69737453697a65101014000000040901204578706f72747320636f6e7374202d20617574686f72206c6973742073697a65206c696d697420666f722074686520436c6f7365642064697363757373696f6e2e2c506f73744465706f736974184092ef216e00000000000000000000000004a0204578706f72747320636f6e7374202d2066656520666f72206372656174696e67206120706f737430506f73744c69666554696d651010100e0000043d01204578706f72747320636f6e7374202d206d6178696d756d206e756d626572206f6620626c6f636b73206265666f7265206120706f73742063616e2062652065726173656420627920616e796f6e650191091e3850726f706f73616c73436f646578013850726f706f73616c73436f64657804505468726561644964427950726f706f73616c496401010402102820000000000000000004b0204d61702070726f706f73616c20696420746f206974732064697363757373696f6e2074687265616420696401690601490368985365744d617856616c696461746f72436f756e7450726f706f73616c506172616d65746572736d09b41e0000000000000042000000500000003c0000005000000001680abf82280f000000000000000000000100000004dc204578706f7274732027536574204d61782056616c696461746f7220436f756e74272070726f706f73616c20706172616d65746572732e8052756e74696d655570677261646550726f706f73616c506172616d65746572736d09b4640000002800000050000000640000003c00000050000000011068761b9597000000000000000000000200000004bc204578706f727473202752756e74696d652055706772616465272070726f706f73616c20706172616d65746572732e605369676e616c50726f706f73616c506172616d65746572736d09b41e000000000000003c000000500000003c00000050000000019ac2af20ca0300000000000000000000010000000498204578706f72747320275369676e616c272070726f706f73616c20706172616d65746572732e8046756e64696e675265717565737450726f706f73616c506172616d65746572736d09b41e000000140000003c000000500000003c00000050000000019ac2af20ca03000000000000000000000100000004bc204578706f727473202746756e64696e672052657175657374272070726f706f73616c20706172616d65746572732ebc437265617465576f726b696e6747726f75704c6561644f70656e696e6750726f706f73616c506172616d65746572736d09b41e000000000000003c000000500000003c0000005000000001680abf82280f0000000000000000000001000000040501204578706f727473202743726561746520576f726b696e672047726f7570204c656164204f70656e696e67272070726f706f73616c20706172616d65746572732ea446696c6c576f726b696e6747726f75704f70656e696e6750726f706f73616c506172616d65746572736d09b41e000000000000003c0000004b0000003c000000500000000134855f419407000000000000000000000100000004fc204578706f727473202746696c6c20576f726b696e672047726f7570204c656164204f70656e696e67272070726f706f73616c20706172616d65746572732ea8557064617465576f726b696e6747726f757042756467657450726f706f73616c506172616d65746572736d09b41e000000000000003c0000004b0000003c000000500000000134855f419407000000000000000000000100000004ec204578706f727473202755706461746520576f726b696e672047726f757020427564676574272070726f706f73616c20706172616d65746572732ebc4465637265617365576f726b696e6747726f75704c6561645374616b6550726f706f73616c506172616d65746572736d09b41e000000000000003c0000004b0000003c000000500000000134855f4194070000000000000000000001000000040501204578706f7274732027446563726561736520576f726b696e672047726f7570204c656164205374616b65272070726f706f73616c20706172616d65746572732e9c536c617368576f726b696e6747726f75704c65616450726f706f73616c506172616d65746572736d09b41e000000000000003c0000004b0000003c000000500000000134855f419407000000000000000000000100000004e0204578706f7274732027536c61736820576f726b696e672047726f7570204c656164272070726f706f73616c20706172616d65746572732eac536574576f726b696e6747726f75704c65616452657761726450726f706f73616c506172616d65746572736d09b41e000000000000003c0000004b0000003c000000500000000134855f419407000000000000000000000100000004f4204578706f727473202753657420576f726b696e672047726f7570204c65616420526577617264272070726f706f73616c20706172616d65746572732eac5465726d696e617465576f726b696e6747726f75704c65616450726f706f73616c506172616d65746572736d09b41e0000000000000042000000500000003c0000005000000001680abf82280f000000000000000000000100000004f0204578706f72747320275465726d696e61746520576f726b696e672047726f7570204c656164272070726f706f73616c20706172616d65746572732e8c416d656e64436f6e737469747574696f6e50726f706f73616c506172616d65746572736d09b41e0000002800000050000000640000003c00000050000000011068761b9597000000000000000000000200000004c8204578706f7274732027416d656e6420436f6e737469747574696f6e272070726f706f73616c20706172616d65746572732ebc43616e63656c576f726b696e6747726f75704c6561644f70656e696e6750726f706f73616c506172616d65746572736d09b41e000000000000003c0000004b0000003c000000500000000134855f4194070000000000000000000001000000040501204578706f727473202743616e63656c20576f726b696e672047726f7570204c656164204f70656e696e67272070726f706f73616c20706172616d65746572732e905365744d656d62657273686970507269636550726f706f73616c506172616d65746572736d09b41e000000140000003c0000004b0000003c000000500000000134855f419407000000000000000000000100000004d0204578706f7274732027536574204d656d62657273686970205072696365272070726f706f73616c20706172616d65746572732eac536574436f756e63696c427564676574496e6372656d656e7450726f706f73616c506172616d65746572736d09b41e0000001400000042000000500000003c0000005000000001d0147e05511e000000000000000000000100000004f0204578706f727473206053657420436f756e63696c2042756467657420496e6372656d656e74602070726f706f73616c20706172616d65746572732e90536574436f756e63696c6f7252657761726450726f706f73616c506172616d65746572736d09b41e0000002800000042000000500000003c0000005000000001d0147e05511e0000000000000000000002000000042101204578706f727473206053657420436f756e63696c6f72205265776172642050726f706f73616c20506172616d6574657273602070726f706f73616c20706172616d65746572732eb4536574496e697469616c496e7669746174696f6e42616c616e636550726f706f73616c506172616d65746572736d09b41e000000140000003c0000004b0000003c000000500000000134855f419407000000000000000000000100000004f8204578706f727473206053657420496e697469616c20496e7669746174696f6e2042616c616e6365602070726f706f73616c20706172616d65746572732e90536574496e7669746174696f6e436f756e7450726f706f73616c506172616d65746572736d09b41e000000140000003c0000004b0000003c000000500000000134855f419407000000000000000000000100000000c85365744d656d626572736869704c656164496e7669746174696f6e51756f746150726f706f73616c506172616d65746572736d09b41e000000140000003c0000004b0000003c000000500000000134855f41940700000000000000000000010000000080536574526566657272616c43757450726f706f73616c506172616d65746572736d09b41e000000140000003c0000004b0000003c000000500000000134855f419407000000000000000000000100000000785665746f50726f706f73616c50726f706f73616c506172616d65746572736d09b41e000000000000004b000000500000003c00000042000000011068761b959700000000000000000000010000000098557064617465476c6f62616c4e66744c696d697450726f706f73616c506172616d65746572736d09b41e000000000000003c000000500000003c0000005000000001680abf82280f000000000000000000000100000000985570646174654368616e6e656c5061796f75747350726f706f73616c506172616d65746572736d09b41e000000000000003c000000500000003c0000005000000001680abf82280f0000000000000000000001000000009046756e64696e675265717565737450726f706f73616c4d6178546f74616c416d6f756e741840a010a012d3eb0500000000000000000004c4204d6178696d756d20746f74616c20616d6f756e7420696e2066756e64696e6720726571756573742070726f706f73616c8446756e64696e675265717565737450726f706f73616c4d61784163636f756e747310101400000004d0204d6178206e756d626572206f66206163636f756e7473207065722066756e64696e6720726571756573742070726f706f73616ca45365744d617856616c696461746f72436f756e7450726f706f73616c4d617856616c696461746f7273101064000000041501204d617820616c6c6f776564206e756d626572206f662076616c696461746f727320696e20736574206d61782076616c696461746f7220636f756e742070726f706f73616c0195091f44466f72756d576f726b696e6747726f75700154496e7374616e636531576f726b696e6747726f757028344e6578744f70656e696e67496401002820000000000000000004ac204e657874206964656e7469666965722076616c756520666f72206e6577206a6f62206f70656e696e672e2c4f70656e696e674279496401010402289909290101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000480204d617073206964656e74696669657220746f206a6f62206f70656e696e672e44416374697665576f726b6572436f756e740100101000000000046420436f756e74206f662061637469766520776f726b6572732e3c4170706c69636174696f6e4279496400010402289d09040004c8204d617073206964656e74696669657220746f20776f726b6572206170706c69636174696f6e206f6e206f70656e696e672e444e6578744170706c69636174696f6e496401002820000000000000000004c8204e657874206964656e7469666965722076616c756520666f72206e657720776f726b6572206170706c69636174696f6e2e304e657874576f726b657249640100282000000000000000000488204e657874206964656e74696669657220666f722061206e657720776f726b65722e28576f726b6572427949640001040228a109040004a4204d617073206964656e74696669657220746f20636f72726573706f6e64696e6720776f726b65722e2c43757272656e744c656164000028040004502043757272656e742067726f7570206c6561642e18427564676574010018400000000000000000000000000000000004782042756467657420666f722074686520776f726b696e672067726f75702e38537461747573546578744861736801002c800000000000000000000000000000000000000000000000000000000000000000044820537461747573207465787420686173682e016d06016d0318504d6178576f726b65724e756d6265724c696d697410101e0000000838204578706f72747320636f6e73749c204d61782073696d756c74616e656f75732061637469766520776f726b6572206e756d6265722e5c4d696e556e7374616b696e67506572696f644c696d69741010005e1a0004ac20446566696e6573206d696e20756e7374616b696e6720706572696f6420696e207468652067726f75702e5c4d696e696d756d4170706c69636174696f6e5374616b6518404835261a08030000000000000000000004d4204d696e696d756d207374616b6520726571756972656420666f72206170706c79696e6720696e746f20616e206f70656e696e672e484c65616465724f70656e696e675374616b651840680abf82280f00000000000000000000048c205374616b65206e656564656420746f2063726561746520616e206f70656e696e672e30526577617264506572696f6410108a51010004d420446566696e65732074686520706572696f6420657665727920776f726b65722067657473207061696420696e20626c6f636b732e505374616b696e6748616e646c65724c6f636b496425042077672d666f72756d0464205374616b696e672068616e646c6572206c6f636b2069642e01a509204c53746f72616765576f726b696e6747726f75700154496e7374616e636532576f726b696e6747726f757028344e6578744f70656e696e67496401002820000000000000000004ac204e657874206964656e7469666965722076616c756520666f72206e6577206a6f62206f70656e696e672e2c4f70656e696e674279496401010402289909290101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000480204d617073206964656e74696669657220746f206a6f62206f70656e696e672e44416374697665576f726b6572436f756e740100101000000000046420436f756e74206f662061637469766520776f726b6572732e3c4170706c69636174696f6e4279496400010402289d09040004c8204d617073206964656e74696669657220746f20776f726b6572206170706c69636174696f6e206f6e206f70656e696e672e444e6578744170706c69636174696f6e496401002820000000000000000004c8204e657874206964656e7469666965722076616c756520666f72206e657720776f726b6572206170706c69636174696f6e2e304e657874576f726b657249640100282000000000000000000488204e657874206964656e74696669657220666f722061206e657720776f726b65722e28576f726b6572427949640001040228a109040004a4204d617073206964656e74696669657220746f20636f72726573706f6e64696e6720776f726b65722e2c43757272656e744c656164000028040004502043757272656e742067726f7570206c6561642e18427564676574010018400000000000000000000000000000000004782042756467657420666f722074686520776f726b696e672067726f75702e38537461747573546578744861736801002c800000000000000000000000000000000000000000000000000000000000000000044820537461747573207465787420686173682e01710601910318504d6178576f726b65724e756d6265724c696d697410101e0000000838204578706f72747320636f6e73749c204d61782073696d756c74616e656f75732061637469766520776f726b6572206e756d6265722e5c4d696e556e7374616b696e67506572696f644c696d69741010005e1a0004ac20446566696e6573206d696e20756e7374616b696e6720706572696f6420696e207468652067726f75702e5c4d696e696d756d4170706c69636174696f6e5374616b6518404835261a08030000000000000000000004d4204d696e696d756d207374616b6520726571756972656420666f72206170706c79696e6720696e746f20616e206f70656e696e672e484c65616465724f70656e696e675374616b651840680abf82280f00000000000000000000048c205374616b65206e656564656420746f2063726561746520616e206f70656e696e672e30526577617264506572696f6410109451010004d420446566696e65732074686520706572696f6420657665727920776f726b65722067657473207061696420696e20626c6f636b732e505374616b696e6748616e646c65724c6f636b496425042077672d73746f72670464205374616b696e672068616e646c6572206c6f636b2069642e01a909214c436f6e74656e74576f726b696e6747726f75700154496e7374616e636533576f726b696e6747726f757028344e6578744f70656e696e67496401002820000000000000000004ac204e657874206964656e7469666965722076616c756520666f72206e6577206a6f62206f70656e696e672e2c4f70656e696e674279496401010402289909290101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000480204d617073206964656e74696669657220746f206a6f62206f70656e696e672e44416374697665576f726b6572436f756e740100101000000000046420436f756e74206f662061637469766520776f726b6572732e3c4170706c69636174696f6e4279496400010402289d09040004c8204d617073206964656e74696669657220746f20776f726b6572206170706c69636174696f6e206f6e206f70656e696e672e444e6578744170706c69636174696f6e496401002820000000000000000004c8204e657874206964656e7469666965722076616c756520666f72206e657720776f726b6572206170706c69636174696f6e2e304e657874576f726b657249640100282000000000000000000488204e657874206964656e74696669657220666f722061206e657720776f726b65722e28576f726b6572427949640001040228a109040004a4204d617073206964656e74696669657220746f20636f72726573706f6e64696e6720776f726b65722e2c43757272656e744c656164000028040004502043757272656e742067726f7570206c6561642e18427564676574010018400000000000000000000000000000000004782042756467657420666f722074686520776f726b696e672067726f75702e38537461747573546578744861736801002c800000000000000000000000000000000000000000000000000000000000000000044820537461747573207465787420686173682e01750601990318504d6178576f726b65724e756d6265724c696d697410101e0000000838204578706f72747320636f6e73749c204d61782073696d756c74616e656f75732061637469766520776f726b6572206e756d6265722e5c4d696e556e7374616b696e67506572696f644c696d69741010005e1a0004ac20446566696e6573206d696e20756e7374616b696e6720706572696f6420696e207468652067726f75702e5c4d696e696d756d4170706c69636174696f6e5374616b6518404835261a08030000000000000000000004d4204d696e696d756d207374616b6520726571756972656420666f72206170706c79696e6720696e746f20616e206f70656e696e672e484c65616465724f70656e696e675374616b651840680abf82280f00000000000000000000048c205374616b65206e656564656420746f2063726561746520616e206f70656e696e672e30526577617264506572696f6410109e51010004d420446566696e65732074686520706572696f6420657665727920776f726b65722067657473207061696420696e20626c6f636b732e505374616b696e6748616e646c65724c6f636b496425042077672d636f6e74740464205374616b696e672068616e646c6572206c6f636b2069642e01ad09226c4f7065726174696f6e73576f726b696e6747726f7570416c7068610154496e7374616e636534576f726b696e6747726f757028344e6578744f70656e696e67496401002820000000000000000004ac204e657874206964656e7469666965722076616c756520666f72206e6577206a6f62206f70656e696e672e2c4f70656e696e674279496401010402289909290101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000480204d617073206964656e74696669657220746f206a6f62206f70656e696e672e44416374697665576f726b6572436f756e740100101000000000046420436f756e74206f662061637469766520776f726b6572732e3c4170706c69636174696f6e4279496400010402289d09040004c8204d617073206964656e74696669657220746f20776f726b6572206170706c69636174696f6e206f6e206f70656e696e672e444e6578744170706c69636174696f6e496401002820000000000000000004c8204e657874206964656e7469666965722076616c756520666f72206e657720776f726b6572206170706c69636174696f6e2e304e657874576f726b657249640100282000000000000000000488204e657874206964656e74696669657220666f722061206e657720776f726b65722e28576f726b6572427949640001040228a109040004a4204d617073206964656e74696669657220746f20636f72726573706f6e64696e6720776f726b65722e2c43757272656e744c656164000028040004502043757272656e742067726f7570206c6561642e18427564676574010018400000000000000000000000000000000004782042756467657420666f722074686520776f726b696e672067726f75702e38537461747573546578744861736801002c800000000000000000000000000000000000000000000000000000000000000000044820537461747573207465787420686173682e01790601a10318504d6178576f726b65724e756d6265724c696d697410101e0000000838204578706f72747320636f6e73749c204d61782073696d756c74616e656f75732061637469766520776f726b6572206e756d6265722e5c4d696e556e7374616b696e67506572696f644c696d69741010005e1a0004ac20446566696e6573206d696e20756e7374616b696e6720706572696f6420696e207468652067726f75702e5c4d696e696d756d4170706c69636174696f6e5374616b6518404835261a08030000000000000000000004d4204d696e696d756d207374616b6520726571756972656420666f72206170706c79696e6720696e746f20616e206f70656e696e672e484c65616465724f70656e696e675374616b651840680abf82280f00000000000000000000048c205374616b65206e656564656420746f2063726561746520616e206f70656e696e672e30526577617264506572696f641010bc51010004d420446566696e65732074686520706572696f6420657665727920776f726b65722067657473207061696420696e20626c6f636b732e505374616b696e6748616e646c65724c6f636b496425042077672d6f706572610464205374616b696e672068616e646c6572206c6f636b2069642e01b109233c417070576f726b696e6747726f75700154496e7374616e636535576f726b696e6747726f757028344e6578744f70656e696e67496401002820000000000000000004ac204e657874206964656e7469666965722076616c756520666f72206e6577206a6f62206f70656e696e672e2c4f70656e696e674279496401010402289909290101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000480204d617073206964656e74696669657220746f206a6f62206f70656e696e672e44416374697665576f726b6572436f756e740100101000000000046420436f756e74206f662061637469766520776f726b6572732e3c4170706c69636174696f6e4279496400010402289d09040004c8204d617073206964656e74696669657220746f20776f726b6572206170706c69636174696f6e206f6e206f70656e696e672e444e6578744170706c69636174696f6e496401002820000000000000000004c8204e657874206964656e7469666965722076616c756520666f72206e657720776f726b6572206170706c69636174696f6e2e304e657874576f726b657249640100282000000000000000000488204e657874206964656e74696669657220666f722061206e657720776f726b65722e28576f726b6572427949640001040228a109040004a4204d617073206964656e74696669657220746f20636f72726573706f6e64696e6720776f726b65722e2c43757272656e744c656164000028040004502043757272656e742067726f7570206c6561642e18427564676574010018400000000000000000000000000000000004782042756467657420666f722074686520776f726b696e672067726f75702e38537461747573546578744861736801002c800000000000000000000000000000000000000000000000000000000000000000044820537461747573207465787420686173682e017d0601a90318504d6178576f726b65724e756d6265724c696d697410101e0000000838204578706f72747320636f6e73749c204d61782073696d756c74616e656f75732061637469766520776f726b6572206e756d6265722e5c4d696e556e7374616b696e67506572696f644c696d69741010005e1a0004ac20446566696e6573206d696e20756e7374616b696e6720706572696f6420696e207468652067726f75702e5c4d696e696d756d4170706c69636174696f6e5374616b6518404835261a08030000000000000000000004d4204d696e696d756d207374616b6520726571756972656420666f72206170706c79696e6720696e746f20616e206f70656e696e672e484c65616465724f70656e696e675374616b651840680abf82280f00000000000000000000048c205374616b65206e656564656420746f2063726561746520616e206f70656e696e672e30526577617264506572696f641010b251010004d420446566696e65732074686520706572696f6420657665727920776f726b65722067657473207061696420696e20626c6f636b732e505374616b696e6748616e646c65724c6f636b496425042077672d6170706c690464205374616b696e672068616e646c6572206c6f636b2069642e01b50924584d656d62657273686970576f726b696e6747726f75700154496e7374616e636536576f726b696e6747726f757028344e6578744f70656e696e67496401002820000000000000000004ac204e657874206964656e7469666965722076616c756520666f72206e6577206a6f62206f70656e696e672e2c4f70656e696e674279496401010402289909290101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000480204d617073206964656e74696669657220746f206a6f62206f70656e696e672e44416374697665576f726b6572436f756e740100101000000000046420436f756e74206f662061637469766520776f726b6572732e3c4170706c69636174696f6e4279496400010402289d09040004c8204d617073206964656e74696669657220746f20776f726b6572206170706c69636174696f6e206f6e206f70656e696e672e444e6578744170706c69636174696f6e496401002820000000000000000004c8204e657874206964656e7469666965722076616c756520666f72206e657720776f726b6572206170706c69636174696f6e2e304e657874576f726b657249640100282000000000000000000488204e657874206964656e74696669657220666f722061206e657720776f726b65722e28576f726b6572427949640001040228a109040004a4204d617073206964656e74696669657220746f20636f72726573706f6e64696e6720776f726b65722e2c43757272656e744c656164000028040004502043757272656e742067726f7570206c6561642e18427564676574010018400000000000000000000000000000000004782042756467657420666f722074686520776f726b696e672067726f75702e38537461747573546578744861736801002c800000000000000000000000000000000000000000000000000000000000000000044820537461747573207465787420686173682e01810601b10318504d6178576f726b65724e756d6265724c696d697410101e0000000838204578706f72747320636f6e73749c204d61782073696d756c74616e656f75732061637469766520776f726b6572206e756d6265722e5c4d696e556e7374616b696e67506572696f644c696d69741010005e1a0004ac20446566696e6573206d696e20756e7374616b696e6720706572696f6420696e207468652067726f75702e5c4d696e696d756d4170706c69636174696f6e5374616b6518404835261a08030000000000000000000004d4204d696e696d756d207374616b6520726571756972656420666f72206170706c79696e6720696e746f20616e206f70656e696e672e484c65616465724f70656e696e675374616b651840680abf82280f00000000000000000000048c205374616b65206e656564656420746f2063726561746520616e206f70656e696e672e30526577617264506572696f641010a851010004d420446566696e65732074686520706572696f6420657665727920776f726b65722067657473207061696420696e20626c6f636b732e505374616b696e6748616e646c65724c6f636b496425042077672d6d656d62720464205374616b696e672068616e646c6572206c6f636b2069642e01b90925684f7065726174696f6e73576f726b696e6747726f7570426574610154496e7374616e636537576f726b696e6747726f757028344e6578744f70656e696e67496401002820000000000000000004ac204e657874206964656e7469666965722076616c756520666f72206e6577206a6f62206f70656e696e672e2c4f70656e696e674279496401010402289909290101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000480204d617073206964656e74696669657220746f206a6f62206f70656e696e672e44416374697665576f726b6572436f756e740100101000000000046420436f756e74206f662061637469766520776f726b6572732e3c4170706c69636174696f6e4279496400010402289d09040004c8204d617073206964656e74696669657220746f20776f726b6572206170706c69636174696f6e206f6e206f70656e696e672e444e6578744170706c69636174696f6e496401002820000000000000000004c8204e657874206964656e7469666965722076616c756520666f72206e657720776f726b6572206170706c69636174696f6e2e304e657874576f726b657249640100282000000000000000000488204e657874206964656e74696669657220666f722061206e657720776f726b65722e28576f726b6572427949640001040228a109040004a4204d617073206964656e74696669657220746f20636f72726573706f6e64696e6720776f726b65722e2c43757272656e744c656164000028040004502043757272656e742067726f7570206c6561642e18427564676574010018400000000000000000000000000000000004782042756467657420666f722074686520776f726b696e672067726f75702e38537461747573546578744861736801002c800000000000000000000000000000000000000000000000000000000000000000044820537461747573207465787420686173682e01850601b90318504d6178576f726b65724e756d6265724c696d697410101e0000000838204578706f72747320636f6e73749c204d61782073696d756c74616e656f75732061637469766520776f726b6572206e756d6265722e5c4d696e556e7374616b696e67506572696f644c696d69741010005e1a0004ac20446566696e6573206d696e20756e7374616b696e6720706572696f6420696e207468652067726f75702e5c4d696e696d756d4170706c69636174696f6e5374616b6518404835261a08030000000000000000000004d4204d696e696d756d207374616b6520726571756972656420666f72206170706c79696e6720696e746f20616e206f70656e696e672e484c65616465724f70656e696e675374616b651840680abf82280f00000000000000000000048c205374616b65206e656564656420746f2063726561746520616e206f70656e696e672e30526577617264506572696f641010c651010004d420446566696e65732074686520706572696f6420657665727920776f726b65722067657473207061696420696e20626c6f636b732e505374616b696e6748616e646c65724c6f636b496425042077672d6f706572620464205374616b696e672068616e646c6572206c6f636b2069642e01bd09266c4f7065726174696f6e73576f726b696e6747726f757047616d6d610154496e7374616e636538576f726b696e6747726f757028344e6578744f70656e696e67496401002820000000000000000004ac204e657874206964656e7469666965722076616c756520666f72206e6577206a6f62206f70656e696e672e2c4f70656e696e674279496401010402289909290101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000480204d617073206964656e74696669657220746f206a6f62206f70656e696e672e44416374697665576f726b6572436f756e740100101000000000046420436f756e74206f662061637469766520776f726b6572732e3c4170706c69636174696f6e4279496400010402289d09040004c8204d617073206964656e74696669657220746f20776f726b6572206170706c69636174696f6e206f6e206f70656e696e672e444e6578744170706c69636174696f6e496401002820000000000000000004c8204e657874206964656e7469666965722076616c756520666f72206e657720776f726b6572206170706c69636174696f6e2e304e657874576f726b657249640100282000000000000000000488204e657874206964656e74696669657220666f722061206e657720776f726b65722e28576f726b6572427949640001040228a109040004a4204d617073206964656e74696669657220746f20636f72726573706f6e64696e6720776f726b65722e2c43757272656e744c656164000028040004502043757272656e742067726f7570206c6561642e18427564676574010018400000000000000000000000000000000004782042756467657420666f722074686520776f726b696e672067726f75702e38537461747573546578744861736801002c800000000000000000000000000000000000000000000000000000000000000000044820537461747573207465787420686173682e01890601c10318504d6178576f726b65724e756d6265724c696d697410101e0000000838204578706f72747320636f6e73749c204d61782073696d756c74616e656f75732061637469766520776f726b6572206e756d6265722e5c4d696e556e7374616b696e67506572696f644c696d69741010005e1a0004ac20446566696e6573206d696e20756e7374616b696e6720706572696f6420696e207468652067726f75702e5c4d696e696d756d4170706c69636174696f6e5374616b6518404835261a08030000000000000000000004d4204d696e696d756d207374616b6520726571756972656420666f72206170706c79696e6720696e746f20616e206f70656e696e672e484c65616465724f70656e696e675374616b651840680abf82280f00000000000000000000048c205374616b65206e656564656420746f2063726561746520616e206f70656e696e672e30526577617264506572696f641010d051010004d420446566696e65732074686520706572696f6420657665727920776f726b65722067657473207061696420696e20626c6f636b732e505374616b696e6748616e646c65724c6f636b496425042077672d6f706572670464205374616b696e672068616e646c6572206c6f636b2069642e01c1092760446973747269627574696f6e576f726b696e6747726f75700154496e7374616e636539576f726b696e6747726f757028344e6578744f70656e696e67496401002820000000000000000004ac204e657874206964656e7469666965722076616c756520666f72206e6577206a6f62206f70656e696e672e2c4f70656e696e674279496401010402289909290101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000480204d617073206964656e74696669657220746f206a6f62206f70656e696e672e44416374697665576f726b6572436f756e740100101000000000046420436f756e74206f662061637469766520776f726b6572732e3c4170706c69636174696f6e4279496400010402289d09040004c8204d617073206964656e74696669657220746f20776f726b6572206170706c69636174696f6e206f6e206f70656e696e672e444e6578744170706c69636174696f6e496401002820000000000000000004c8204e657874206964656e7469666965722076616c756520666f72206e657720776f726b6572206170706c69636174696f6e2e304e657874576f726b657249640100282000000000000000000488204e657874206964656e74696669657220666f722061206e657720776f726b65722e28576f726b6572427949640001040228a109040004a4204d617073206964656e74696669657220746f20636f72726573706f6e64696e6720776f726b65722e2c43757272656e744c656164000028040004502043757272656e742067726f7570206c6561642e18427564676574010018400000000000000000000000000000000004782042756467657420666f722074686520776f726b696e672067726f75702e38537461747573546578744861736801002c800000000000000000000000000000000000000000000000000000000000000000044820537461747573207465787420686173682e018d0601c90318504d6178576f726b65724e756d6265724c696d697410101e0000000838204578706f72747320636f6e73749c204d61782073696d756c74616e656f75732061637469766520776f726b6572206e756d6265722e5c4d696e556e7374616b696e67506572696f644c696d69741010005e1a0004ac20446566696e6573206d696e20756e7374616b696e6720706572696f6420696e207468652067726f75702e5c4d696e696d756d4170706c69636174696f6e5374616b6518404835261a08030000000000000000000004d4204d696e696d756d207374616b6520726571756972656420666f72206170706c79696e6720696e746f20616e206f70656e696e672e484c65616465724f70656e696e675374616b651840680abf82280f00000000000000000000048c205374616b65206e656564656420746f2063726561746520616e206f70656e696e672e30526577617264506572696f641010da51010004d420446566696e65732074686520706572696f6420657665727920776f726b65722067657473207061696420696e20626c6f636b732e505374616b696e6748616e646c65724c6f636b496425042077672d64697374720464205374616b696e672068616e646c6572206c6f636b2069642e01c50928c909042048436865636b4e6f6e5a65726f53656e646572dd097c40436865636b5370656356657273696f6ee1091038436865636b547856657273696f6ee5091030436865636b47656e65736973e9092c38436865636b4d6f7274616c697479ed092c28436865636b4e6f6e6365f5097c2c436865636b576569676874f9097c604368617267655472616e73616374696f6e5061796d656e74fd097c010a","id":"1"} \ No newline at end of file diff --git a/cli/src/base/FeeProfileCommandBase.ts b/cli/src/base/FeeProfileCommandBase.ts index 34f34308c7..628d8518a1 100644 --- a/cli/src/base/FeeProfileCommandBase.ts +++ b/cli/src/base/FeeProfileCommandBase.ts @@ -120,9 +120,9 @@ export default abstract class FeeProfileCommandBase extends ApiCommandBase { txClass: txClass.type, txLength, txWeight: { - base: this.formatBN(baseExtrinsicWeight), + base: this.formatBN(baseExtrinsicWeight.refTime.toBn()), extra: this.formatBN(weight), - total: this.formatBN(baseExtrinsicWeight.add(weight)), + total: this.formatBN(baseExtrinsicWeight.refTime.toBn().add(weight)), }, costs: costsProfile, returns: returnsProfile, diff --git a/types/src/augment/augment-api-consts.ts b/types/src/augment/augment-api-consts.ts index cc3dddd658..9096fa4532 100644 --- a/types/src/augment/augment-api-consts.ts +++ b/types/src/augment/augment-api-consts.ts @@ -4,7 +4,7 @@ import type { ApiTypes } from '@polkadot/api-base/types'; import type { U8aFixed, Vec, u128, u16, u32, u64, u8 } from '@polkadot/types-codec'; import type { Perbill } from '@polkadot/types/interfaces/runtime'; -import type { FrameSupportWeightsRuntimeDbWeight, FrameSystemLimitsBlockLength, FrameSystemLimitsBlockWeights, PalletContentLimitPerPeriod, PalletProposalsEngineProposalParameters, SpVersionRuntimeVersion } from '@polkadot/types/lookup'; +import type { FrameSystemLimitsBlockLength, FrameSystemLimitsBlockWeights, PalletContentLimitPerPeriod, PalletProposalsEngineProposalParameters, SpVersionRuntimeVersion, SpWeightsRuntimeDbWeight, SpWeightsWeightV2Weight } from '@polkadot/types/lookup'; declare module '@polkadot/api-base/types/consts' { export interface AugmentedConsts { @@ -35,14 +35,6 @@ declare module '@polkadot/api-base/types/consts' { **/ stakingHandlerLockId: U8aFixed & AugmentedConst; }; - authorship: { - /** - * The number of blocks back we should accept uncles. - * This means that we will deal with uncle-parents that are - * `UncleGenerations + 1` before `now`. - **/ - uncleGenerations: u32 & AugmentedConst; - }; babe: { /** * The amount of time, in slots, that each epoch should last. @@ -296,6 +288,16 @@ declare module '@polkadot/api-base/types/consts' { * take place over multiple blocks. **/ maxElectingVoters: u32 & AugmentedConst; + /** + * The maximum number of winners that can be elected by this `ElectionProvider` + * implementation. + * + * Note: This must always be greater or equal to `T::DataProvider::desired_targets()`. + **/ + maxWinners: u32 & AugmentedConst; + minerMaxLength: u32 & AugmentedConst; + minerMaxVotesPerVoter: u32 & AugmentedConst; + minerMaxWeight: SpWeightsWeightV2Weight & AugmentedConst; /** * The priority of the unsigned transaction submitted in the unsigned-phase **/ @@ -340,7 +342,7 @@ declare module '@polkadot/api-base/types/consts' { * this pallet), then [`MinerConfig::solution_weight`] is used to compare against * this value. **/ - signedMaxWeight: u64 & AugmentedConst; + signedMaxWeight: SpWeightsWeightV2Weight & AugmentedConst; /** * Duration of the signed phase. **/ @@ -405,6 +407,15 @@ declare module '@polkadot/api-base/types/consts' { * Max Authorities in use **/ maxAuthorities: u32 & AugmentedConst; + /** + * The maximum number of entries to keep in the set id to session index mapping. + * + * Since the `SetIdSession` map is only used for validating equivocations this + * value should relate to the bonding duration of whatever staking system is + * being used (if any). If equivocation handling is not enabled then this value + * can be zero. + **/ + maxSetIdSessionEntries: u64 & AugmentedConst; }; imOnline: { /** @@ -487,7 +498,7 @@ declare module '@polkadot/api-base/types/consts' { /** * The maximum amount of signatories allowed in the multisig. **/ - maxSignatories: u16 & AugmentedConst; + maxSignatories: u32 & AugmentedConst; }; operationsWorkingGroupAlpha: { /** @@ -727,6 +738,29 @@ declare module '@polkadot/api-base/types/consts' { * Number of eras that staked funds must remain bonded for. **/ bondingDuration: u32 & AugmentedConst; + /** + * Number of eras to keep in history. + * + * Following information is kept for eras in `[current_era - + * HistoryDepth, current_era]`: `ErasStakers`, `ErasStakersClipped`, + * `ErasValidatorPrefs`, `ErasValidatorReward`, `ErasRewardPoints`, + * `ErasTotalStake`, `ErasStartSessionIndex`, + * `StakingLedger.claimed_rewards`. + * + * Must be more than the number of eras delayed by session. + * I.e. active era must always be in history. I.e. `active_era > + * current_era - history_depth` must be guaranteed. + * + * If migrating an existing pallet from storage value to config value, + * this should be set to same value or greater as in storage. + * + * Note: `HistoryDepth` is used as the upper bound for the `BoundedVec` + * item `StakingLedger.claimed_rewards`. Setting this value lower than + * the existing value can lead to inconsistencies in the + * `StakingLedger` and will need to be handled properly in a migration. + * The test `reducing_history_depth_abrupt` shows this effect. + **/ + historyDepth: u32 & AugmentedConst; /** * Maximum number of nominations per nominator. **/ @@ -739,8 +773,16 @@ declare module '@polkadot/api-base/types/consts' { **/ maxNominatorRewardedPerValidator: u32 & AugmentedConst; /** - * The maximum number of `unlocking` chunks a [`StakingLedger`] can have. Effectively - * determines how many unique eras a staker may be unbonding in. + * The maximum number of `unlocking` chunks a [`StakingLedger`] can + * have. Effectively determines how many unique eras a staker may be + * unbonding in. + * + * Note: `MaxUnlockingChunks` is used as the upper bound for the + * `BoundedVec` item `StakingLedger.unlocking`. Setting this value + * lower than the existing value can lead to inconsistencies in the + * `StakingLedger` and will need to be handled properly in a runtime + * migration. The test `reducing_max_unlocking_chunks_abrupt` shows + * this effect. **/ maxUnlockingChunks: u32 & AugmentedConst; /** @@ -846,9 +888,9 @@ declare module '@polkadot/api-base/types/consts' { /** * The weight of runtime database operations the runtime can invoke. **/ - dbWeight: FrameSupportWeightsRuntimeDbWeight & AugmentedConst; + dbWeight: SpWeightsRuntimeDbWeight & AugmentedConst; /** - * The designated SS85 prefix of this chain. + * The designated SS58 prefix of this chain. * * This replaces the "ss58Format" property declared in the chain spec. Reason is * that the runtime should know about the prefix in order to make use of it as diff --git a/types/src/augment/augment-api-errors.ts b/types/src/augment/augment-api-errors.ts index 0a4a7329cb..3694a90eb0 100644 --- a/types/src/augment/augment-api-errors.ts +++ b/types/src/augment/augment-api-errors.ts @@ -135,36 +135,6 @@ declare module '@polkadot/api-base/types/errors' { **/ ZeroTokensFunding: AugmentedError; }; - authorship: { - /** - * The uncle is genesis. - **/ - GenesisUncle: AugmentedError; - /** - * The uncle parent not in the chain. - **/ - InvalidUncleParent: AugmentedError; - /** - * The uncle isn't recent enough to be included. - **/ - OldUncle: AugmentedError; - /** - * The uncle is too high in chain. - **/ - TooHighUncle: AugmentedError; - /** - * Too many uncles. - **/ - TooManyUncles: AugmentedError; - /** - * The uncle is already included. - **/ - UncleAlreadyIncluded: AugmentedError; - /** - * Uncles already set in the block. - **/ - UnclesAlreadySet: AugmentedError; - }; babe: { /** * A given equivocation report is valid but already previously reported. @@ -203,7 +173,7 @@ declare module '@polkadot/api-base/types/errors' { **/ ExistingVestingSchedule: AugmentedError; /** - * Balance too low to send value + * Balance too low to send value. **/ InsufficientBalance: AugmentedError; /** @@ -1233,6 +1203,10 @@ declare module '@polkadot/api-base/types/errors' { ZeroTokensFunding: AugmentedError; }; electionProviderMultiPhase: { + /** + * Some bound not met + **/ + BoundNotMet: AugmentedError; /** * The call is not allowed at this point. **/ @@ -1281,6 +1255,10 @@ declare module '@polkadot/api-base/types/errors' { * The signed submission consumes too much weight **/ SignedTooMuchWeight: AugmentedError; + /** + * Submitted solution has too many winners + **/ + TooManyWinners: AugmentedError; }; forum: { /** @@ -2796,6 +2774,10 @@ declare module '@polkadot/api-base/types/errors' { * External restriction prevents bonding with given account **/ BondingRestricted: AugmentedError; + /** + * Some bound is not met. + **/ + BoundNotMet: AugmentedError; /** * The user has enough bond and thus cannot be chilled forcefully by an external person. **/ @@ -2872,8 +2854,8 @@ declare module '@polkadot/api-base/types/errors' { **/ TooManyTargets: AugmentedError; /** - * There are too many validators in the system. Governance needs to adjust the staking - * settings to keep things safe for the runtime. + * There are too many validator candidates in the system. Governance needs to adjust the + * staking settings to keep things safe for the runtime. **/ TooManyValidators: AugmentedError; }; diff --git a/types/src/augment/augment-api-events.ts b/types/src/augment/augment-api-events.ts index 49d4405e2f..4a77c8e304 100644 --- a/types/src/augment/augment-api-events.ts +++ b/types/src/augment/augment-api-events.ts @@ -4,8 +4,8 @@ import type { ApiTypes } from '@polkadot/api-base/types'; import type { BTreeMap, BTreeSet, Bytes, Null, Option, Result, U8aFixed, Vec, bool, u128, u32, u64, u8 } from '@polkadot/types-codec'; import type { ITuple } from '@polkadot/types-codec/types'; -import type { AccountId32, H256, Perquintill } from '@polkadot/types/interfaces/runtime'; -import type { FrameSupportTokensMiscBalanceStatus, FrameSupportWeightsDispatchInfo, PalletBountyBountyActor, PalletBountyBountyParametersBTreeSet, PalletBountyOracleWorkEntryJudgment, PalletCommonBalanceKind, PalletCommonWorkingGroupIterableEnumsWorkingGroup, PalletContentChannelCreationParametersRecord, PalletContentChannelFundsDestination, PalletContentChannelRecord, PalletContentChannelUpdateParametersRecord, PalletContentIterableEnumsChannelActionPermission, PalletContentNftLimitPeriod, PalletContentNftTypesEnglishAuctionParamsRecord, PalletContentNftTypesNftIssuanceParametersRecord, PalletContentNftTypesOpenAuctionParamsRecord, PalletContentPendingTransfer, PalletContentPermissionsContentActor, PalletContentPermissionsCuratorGroupIterableEnumsContentModerationAction, PalletContentPermissionsCuratorGroupIterableEnumsPausableChannelFeature, PalletContentTransferCommitmentParametersBTreeMap, PalletContentUpdateChannelPayoutsParametersRecord, PalletContentVideoCreationParametersRecord, PalletContentVideoUpdateParametersRecord, PalletElectionProviderMultiPhaseElectionCompute, PalletForumExtendedPostIdObject, PalletForumPrivilegedActor, PalletImOnlineSr25519AppSr25519Public, PalletMembershipBuyMembershipParameters, PalletMembershipCreateMemberParameters, PalletMembershipGiftMembershipParameters, PalletMembershipInviteMembershipParameters, PalletMultisigTimepoint, PalletProjectTokenTokenIssuanceParameters, PalletProjectTokenTokenSale, PalletProjectTokenTransferPolicy, PalletProjectTokenValidated, PalletProjectTokenValidatedPayment, PalletProposalsCodexGeneralProposalParams, PalletProposalsCodexProposalDetails, PalletProposalsDiscussionThreadModeBTreeSet, PalletProposalsEngineProposalStatusesExecutionStatus, PalletProposalsEngineProposalStatusesProposalDecision, PalletProposalsEngineProposalStatusesProposalStatus, PalletProposalsEngineVoteKind, PalletReferendumOptionResult, PalletStakingExposure, PalletStakingValidatorPrefs, PalletStorageBagIdType, PalletStorageDistributionBucketIdRecord, PalletStorageDynBagCreationParametersRecord, PalletStorageDynamicBagIdType, PalletStorageDynamicBagType, PalletStorageUploadParametersRecord, PalletStorageVoucher, PalletWorkingGroupApplyOnOpeningParams, PalletWorkingGroupOpeningType, PalletWorkingGroupRewardPaymentType, PalletWorkingGroupStakePolicy, SpFinalityGrandpaAppPublic, SpRuntimeDispatchError } from '@polkadot/types/lookup'; +import type { AccountId32, H256, Perbill, Perquintill } from '@polkadot/types/interfaces/runtime'; +import type { FrameSupportDispatchDispatchInfo, FrameSupportTokensMiscBalanceStatus, PalletBountyBountyActor, PalletBountyBountyParametersBTreeSet, PalletBountyOracleWorkEntryJudgment, PalletCommonBalanceKind, PalletCommonWorkingGroupIterableEnumsWorkingGroup, PalletContentChannelCreationParametersRecord, PalletContentChannelFundsDestination, PalletContentChannelRecord, PalletContentChannelUpdateParametersRecord, PalletContentIterableEnumsChannelActionPermission, PalletContentNftLimitPeriod, PalletContentNftTypesEnglishAuctionParamsRecord, PalletContentNftTypesNftIssuanceParametersRecord, PalletContentNftTypesOpenAuctionParamsRecord, PalletContentPendingTransfer, PalletContentPermissionsContentActor, PalletContentPermissionsCuratorGroupIterableEnumsContentModerationAction, PalletContentPermissionsCuratorGroupIterableEnumsPausableChannelFeature, PalletContentTransferCommitmentParametersBTreeMap, PalletContentUpdateChannelPayoutsParametersRecord, PalletContentVideoCreationParametersRecord, PalletContentVideoUpdateParametersRecord, PalletElectionProviderMultiPhaseElectionCompute, PalletElectionProviderMultiPhasePhase, PalletForumExtendedPostIdObject, PalletForumPrivilegedActor, PalletImOnlineSr25519AppSr25519Public, PalletMembershipBuyMembershipParameters, PalletMembershipCreateMemberParameters, PalletMembershipGiftMembershipParameters, PalletMembershipInviteMembershipParameters, PalletMultisigTimepoint, PalletProjectTokenTokenIssuanceParameters, PalletProjectTokenTokenSale, PalletProjectTokenTransferPolicy, PalletProjectTokenValidated, PalletProjectTokenValidatedPayment, PalletProposalsCodexGeneralProposalParams, PalletProposalsCodexProposalDetails, PalletProposalsDiscussionThreadModeBTreeSet, PalletProposalsEngineProposalStatusesExecutionStatus, PalletProposalsEngineProposalStatusesProposalDecision, PalletProposalsEngineProposalStatusesProposalStatus, PalletProposalsEngineVoteKind, PalletReferendumOptionResult, PalletStakingExposure, PalletStakingForcing, PalletStakingValidatorPrefs, PalletStorageBagIdType, PalletStorageDistributionBucketIdRecord, PalletStorageDynBagCreationParametersRecord, PalletStorageDynamicBagIdType, PalletStorageDynamicBagType, PalletStorageUploadParametersRecord, PalletStorageVoucher, PalletWorkingGroupApplyOnOpeningParams, PalletWorkingGroupOpeningType, PalletWorkingGroupRewardPaymentType, PalletWorkingGroupStakePolicy, SpFinalityGrandpaAppPublic, SpNposElectionsElectionScore, SpRuntimeDispatchError } from '@polkadot/types/lookup'; declare module '@polkadot/api-base/types/events' { export interface AugmentedEvents { @@ -944,18 +944,23 @@ declare module '@polkadot/api-base/types/events' { }; electionProviderMultiPhase: { /** - * The election has been finalized, with `Some` of the given computation, or else if the - * election failed, `None`. + * An election failed. + * + * Not much can be said about which computes failed in the process. **/ - ElectionFinalized: AugmentedEvent], { electionCompute: Option }>; + ElectionFailed: AugmentedEvent; /** - * An account has been rewarded for their signed submission being finalized. + * The election has been finalized, with the given computation and score. **/ - Rewarded: AugmentedEvent; + ElectionFinalized: AugmentedEvent; /** - * The signed phase of the given round has started. + * There was a phase transition in a given round. **/ - SignedPhaseStarted: AugmentedEvent; + PhaseTransitioned: AugmentedEvent; + /** + * An account has been rewarded for their signed submission being finalized. + **/ + Rewarded: AugmentedEvent; /** * An account has been slashed for submitting an invalid signed submission. **/ @@ -963,16 +968,13 @@ declare module '@polkadot/api-base/types/events' { /** * A solution was stored with the given compute. * - * If the solution is signed, this means that it hasn't yet been processed. If the - * solution is unsigned, this means that it has also been processed. - * - * The `bool` is `true` when a previous solution was ejected to make room for this one. + * The `origin` indicates the origin of the solution. If `origin` is `Some(AccountId)`, + * the stored solution was submited in the signed phase by a miner with the `AccountId`. + * Otherwise, the solution was stored either during the unsigned phase or by + * `T::ForceOrigin`. The `bool` is `true` when a previous solution was ejected to make + * room for this one. **/ - SolutionStored: AugmentedEvent; - /** - * The unsigned phase of the given round has started. - **/ - UnsignedPhaseStarted: AugmentedEvent; + SolutionStored: AugmentedEvent, prevEjected: bool], { compute: PalletElectionProviderMultiPhaseElectionCompute, origin: Option, prevEjected: bool }>; }; forum: { /** @@ -2337,40 +2339,46 @@ declare module '@polkadot/api-base/types/events' { * NOTE: This event is only emitted when funds are bonded via a dispatchable. Notably, * it will not be emitted for staking rewards when they are added to stake. **/ - Bonded: AugmentedEvent; + Bonded: AugmentedEvent; /** * An account has stopped participating as either a validator or nominator. - * \[stash\] **/ - Chilled: AugmentedEvent; + Chilled: AugmentedEvent; /** * The era payout has been set; the first balance is the validator-payout; the second is * the remainder from the maximum amount of reward. - * \[era_index, validator_payout, remainder\] **/ - EraPaid: AugmentedEvent; + EraPaid: AugmentedEvent; + /** + * A new force era mode was set. + **/ + ForceEra: AugmentedEvent; /** - * A nominator has been kicked from a validator. \[nominator, stash\] + * A nominator has been kicked from a validator. **/ - Kicked: AugmentedEvent; + Kicked: AugmentedEvent; /** * An old slashing report from a prior era was discarded because it could - * not be processed. \[session_index\] + * not be processed. + **/ + OldSlashingReportDiscarded: AugmentedEvent; + /** + * The stakers' rewards are getting paid. **/ - OldSlashingReportDiscarded: AugmentedEvent; + PayoutStarted: AugmentedEvent; /** - * The stakers' rewards are getting paid. \[era_index, validator_stash\] + * The nominator has been rewarded by this amount. **/ - PayoutStarted: AugmentedEvent; + Rewarded: AugmentedEvent; /** - * The nominator has been rewarded by this amount. \[stash, amount\] + * A staker (validator or nominator) has been slashed by the given amount. **/ - Rewarded: AugmentedEvent; + Slashed: AugmentedEvent; /** - * One validator (and its nominators) has been slashed by the given amount. - * \[validator, amount\] + * A slash for the given validator, for the given percentage of their stake, at the given + * era as been reported. **/ - Slashed: AugmentedEvent; + SlashReported: AugmentedEvent; /** * A new set of stakers was elected. **/ @@ -2380,18 +2388,18 @@ declare module '@polkadot/api-base/types/events' { **/ StakingElectionFailed: AugmentedEvent; /** - * An account has unbonded this amount. \[stash, amount\] + * An account has unbonded this amount. **/ - Unbonded: AugmentedEvent; + Unbonded: AugmentedEvent; /** * A validator has set their preferences. **/ - ValidatorPrefsSet: AugmentedEvent; + ValidatorPrefsSet: AugmentedEvent; /** * An account has called `withdraw_unbonded` and removed unbonding chunks worth `Balance` - * from the unlocking queue. \[stash, amount\] + * from the unlocking queue. **/ - Withdrawn: AugmentedEvent; + Withdrawn: AugmentedEvent; }; storage: { /** @@ -2884,11 +2892,11 @@ declare module '@polkadot/api-base/types/events' { /** * An extrinsic failed. **/ - ExtrinsicFailed: AugmentedEvent; + ExtrinsicFailed: AugmentedEvent; /** * An extrinsic completed successfully. **/ - ExtrinsicSuccess: AugmentedEvent; + ExtrinsicSuccess: AugmentedEvent; /** * An account was reaped. **/ @@ -2902,6 +2910,13 @@ declare module '@polkadot/api-base/types/events' { **/ Remarked: AugmentedEvent; }; + transactionPayment: { + /** + * A transaction fee `actual_fee`, of which `tip` was added to the minimum inclusion fee, + * has been paid by `who`. + **/ + TransactionFeePaid: AugmentedEvent; + }; utility: { /** * Batch of dispatches completed fully with no error. diff --git a/types/src/augment/augment-api-query.ts b/types/src/augment/augment-api-query.ts index fec922c150..4f392a974d 100644 --- a/types/src/augment/augment-api-query.ts +++ b/types/src/augment/augment-api-query.ts @@ -2,10 +2,10 @@ /* eslint-disable */ import type { ApiTypes } from '@polkadot/api-base/types'; -import type { BTreeMap, Bytes, Null, Option, U8aFixed, Vec, WrapperKeepOpaque, WrapperOpaque, bool, u128, u32, u64, u8 } from '@polkadot/types-codec'; +import type { Bytes, Null, Option, U8aFixed, Vec, WrapperOpaque, bool, u128, u32, u64, u8 } from '@polkadot/types-codec'; import type { AnyNumber, ITuple } from '@polkadot/types-codec/types'; -import type { AccountId32, Call, H256, Perbill, Percent, Permill } from '@polkadot/types/interfaces/runtime'; -import type { FrameSupportWeightsPerDispatchClassU64, FrameSystemAccountInfo, FrameSystemEventRecord, FrameSystemLastRuntimeUpgradeInfo, FrameSystemPhase, JoystreamNodeRuntimeSessionKeys, PalletAuthorshipUncleEntryItem, PalletBagsListListBag, PalletBagsListListNode, PalletBalancesAccountData, PalletBalancesBalanceLock, PalletBalancesReleases, PalletBalancesReserveData, PalletBountyBountyActor, PalletBountyBountyRecord, PalletBountyContribution, PalletBountyEntryRecord, PalletConstitutionConstitutionInfo, PalletContentChannelRecord, PalletContentLimitPerPeriod, PalletContentNftCounter, PalletContentNftTypesOpenAuctionBidRecord, PalletContentPermissionsCuratorGroupCuratorGroupRecord, PalletContentVideoRecord, PalletCouncilCandidate, PalletCouncilCouncilMember, PalletCouncilCouncilStageUpdate, PalletElectionProviderMultiPhasePhase, PalletElectionProviderMultiPhaseReadySolution, PalletElectionProviderMultiPhaseRoundSnapshot, PalletElectionProviderMultiPhaseSignedSignedSubmission, PalletElectionProviderMultiPhaseSolutionOrSnapshotSize, PalletForumCategory, PalletForumPost, PalletForumThread, PalletGrandpaStoredPendingChange, PalletGrandpaStoredState, PalletImOnlineBoundedOpaqueNetworkState, PalletImOnlineSr25519AppSr25519Public, PalletMembershipMembershipObject, PalletMembershipStakingAccountMemberBinding, PalletMultisigMultisig, PalletProjectTokenAccountData, PalletProjectTokenTokenData, PalletProposalsDiscussionDiscussionPost, PalletProposalsDiscussionDiscussionThread, PalletProposalsEngineProposal, PalletProposalsEngineVoteKind, PalletReferendumCastVote, PalletReferendumReferendumStage, PalletStakingActiveEraInfo, PalletStakingEraRewardPoints, PalletStakingExposure, PalletStakingForcing, PalletStakingNominations, PalletStakingReleases, PalletStakingRewardDestination, PalletStakingSlashingSlashingSpans, PalletStakingSlashingSpanRecord, PalletStakingStakingLedger, PalletStakingUnappliedSlash, PalletStakingValidatorPrefs, PalletStorageBagIdType, PalletStorageBagRecord, PalletStorageDataObject, PalletStorageDistributionBucketFamilyRecord, PalletStorageDistributionBucketRecord, PalletStorageDynamicBagCreationPolicy, PalletStorageDynamicBagType, PalletStorageStorageBucketRecord, PalletTransactionPaymentReleases, PalletVestingReleases, PalletVestingVestingInfo, PalletWorkingGroupGroupWorker, PalletWorkingGroupJobApplication, PalletWorkingGroupOpening, SpAuthorityDiscoveryAppPublic, SpConsensusBabeAppPublic, SpConsensusBabeBabeEpochConfiguration, SpConsensusBabeDigestsNextConfigDescriptor, SpConsensusBabeDigestsPreDigest, SpCoreCryptoKeyTypeId, SpNposElectionsElectionScore, SpRuntimeDigest, SpStakingOffenceOffenceDetails } from '@polkadot/types/lookup'; +import type { AccountId32, H256, Perbill, Percent, Permill } from '@polkadot/types/interfaces/runtime'; +import type { FrameSupportDispatchPerDispatchClassWeight, FrameSystemAccountInfo, FrameSystemEventRecord, FrameSystemLastRuntimeUpgradeInfo, FrameSystemPhase, JoystreamNodeRuntimeSessionKeys, PalletBagsListListBag, PalletBagsListListNode, PalletBalancesAccountData, PalletBalancesBalanceLock, PalletBalancesReserveData, PalletBountyBountyActor, PalletBountyBountyRecord, PalletBountyContribution, PalletBountyEntryRecord, PalletConstitutionConstitutionInfo, PalletContentChannelRecord, PalletContentLimitPerPeriod, PalletContentNftCounter, PalletContentNftTypesOpenAuctionBidRecord, PalletContentPermissionsCuratorGroupCuratorGroupRecord, PalletContentVideoRecord, PalletCouncilCandidate, PalletCouncilCouncilMember, PalletCouncilCouncilStageUpdate, PalletElectionProviderMultiPhasePhase, PalletElectionProviderMultiPhaseReadySolution, PalletElectionProviderMultiPhaseRoundSnapshot, PalletElectionProviderMultiPhaseSignedSignedSubmission, PalletElectionProviderMultiPhaseSolutionOrSnapshotSize, PalletForumCategory, PalletForumPost, PalletForumThread, PalletGrandpaStoredPendingChange, PalletGrandpaStoredState, PalletImOnlineBoundedOpaqueNetworkState, PalletImOnlineSr25519AppSr25519Public, PalletMembershipMembershipObject, PalletMembershipStakingAccountMemberBinding, PalletMultisigMultisig, PalletProjectTokenAccountData, PalletProjectTokenTokenData, PalletProposalsDiscussionDiscussionPost, PalletProposalsDiscussionDiscussionThread, PalletProposalsEngineProposal, PalletProposalsEngineVoteKind, PalletReferendumCastVote, PalletReferendumReferendumStage, PalletStakingActiveEraInfo, PalletStakingEraRewardPoints, PalletStakingExposure, PalletStakingForcing, PalletStakingNominations, PalletStakingRewardDestination, PalletStakingSlashingSlashingSpans, PalletStakingSlashingSpanRecord, PalletStakingStakingLedger, PalletStakingUnappliedSlash, PalletStakingValidatorPrefs, PalletStorageBagIdType, PalletStorageBagRecord, PalletStorageDataObject, PalletStorageDistributionBucketFamilyRecord, PalletStorageDistributionBucketRecord, PalletStorageDynamicBagCreationPolicy, PalletStorageDynamicBagType, PalletStorageStorageBucketRecord, PalletTransactionPaymentReleases, PalletVestingReleases, PalletVestingVestingInfo, PalletWorkingGroupGroupWorker, PalletWorkingGroupJobApplication, PalletWorkingGroupOpening, SpAuthorityDiscoveryAppPublic, SpConsensusBabeAppPublic, SpConsensusBabeBabeEpochConfiguration, SpConsensusBabeDigestsNextConfigDescriptor, SpConsensusBabeDigestsPreDigest, SpCoreCryptoKeyTypeId, SpNposElectionsElectionScore, SpRuntimeDigest, SpStakingOffenceOffenceDetails } from '@polkadot/types/lookup'; import type { Observable } from '@polkadot/types/types'; declare module '@polkadot/api-base/types/storage' { @@ -67,14 +67,6 @@ declare module '@polkadot/api-base/types/storage' { * Author of current block. **/ author: AugmentedQuery Observable>, []>; - /** - * Whether uncles were already set in this block. - **/ - didSetUncles: AugmentedQuery Observable, []>; - /** - * Uncles - **/ - uncles: AugmentedQuery Observable>, []>; }; babe: { /** @@ -169,6 +161,17 @@ declare module '@polkadot/api-base/types/storage' { * epoch. **/ segmentIndex: AugmentedQuery Observable, []>; + /** + * A list of the last 100 skipped epochs and the corresponding session index + * when the epoch was skipped. + * + * This is only used for validating equivocation proofs. An equivocation proof + * must contains a key-ownership proof for a given session, therefore we need a + * way to tie together sessions and epoch indices, i.e. we need to validate that + * a validator was the owner of a given key on a given session, and what the + * active epoch index was during that session. + **/ + skippedEpochs: AugmentedQuery Observable>>, []>; /** * TWOX-NOTE: `SegmentIndex` is an increasing integer, so this is okay. **/ @@ -220,6 +223,10 @@ declare module '@polkadot/api-base/types/storage' { * NOTE: This is only used in the case that this pallet is used to store balances. **/ account: AugmentedQuery Observable, [AccountId32]>; + /** + * The total units of outstanding deactivated balance in the system. + **/ + inactiveIssuance: AugmentedQuery Observable, []>; /** * Any liquidity locks on some account balances. * NOTE: Should only be accessed when setting, changing and freeing a lock. @@ -229,12 +236,6 @@ declare module '@polkadot/api-base/types/storage' { * Named reserves on some account balances. **/ reserves: AugmentedQuery Observable>, [AccountId32]>; - /** - * Storage version of the pallet. - * - * This is set to v2.0.0 for new networks. - **/ - storageVersion: AugmentedQuery Observable, []>; /** * The total units issued in the system. **/ @@ -522,14 +523,14 @@ declare module '@polkadot/api-base/types/storage' { **/ round: AugmentedQuery Observable, []>; /** - * A sorted, bounded set of `(score, index)`, where each `index` points to a value in - * `SignedSubmissions`. + * A sorted, bounded vector of `(score, block_number, index)`, where each `index` points to a + * value in `SignedSubmissions`. * * We never need to process more than a single signed submission at a time. Signed submissions * can be quite large, so we're willing to pay the cost of multiple database accesses to access * them one at a time instead of reading and decoding all of them at once. **/ - signedSubmissionIndices: AugmentedQuery Observable>, []>; + signedSubmissionIndices: AugmentedQuery Observable>>, []>; /** * The next index to be assigned to an incoming signed submission. * @@ -659,6 +660,12 @@ declare module '@polkadot/api-base/types/storage' { * A mapping from grandpa set ID to the index of the *most recent* session for which its * members were responsible. * + * This is only used for validating equivocation proofs. An equivocation proof must + * contains a key-ownership proof for a given session, therefore we need a way to tie + * together sessions and GRANDPA set ids, i.e. we need to validate that a validator + * was the owner of a given key on a given session, and what the active set ID was + * during that session. + * * TWOX-NOTE: `SetId` is not under user control. **/ setIdSession: AugmentedQuery Observable>, [u64]>; @@ -791,7 +798,6 @@ declare module '@polkadot/api-base/types/storage' { workerById: AugmentedQuery Observable>, [u64]>; }; multisig: { - calls: AugmentedQuery Observable, AccountId32, u128]>>>, [U8aFixed]>; /** * The set of open multisig operations. **/ @@ -1099,6 +1105,8 @@ declare module '@polkadot/api-base/types/storage' { activeEra: AugmentedQuery Observable>, []>; /** * Map from all locked "stash" accounts to the controller account. + * + * TWOX-NOTE: SAFE since `AccountId` is a secure hash. **/ bonded: AugmentedQuery Observable>, [AccountId32]>; /** @@ -1140,10 +1148,6 @@ declare module '@polkadot/api-base/types/storage' { * This is basically in sync with the call to [`pallet_session::SessionManager::new_session`]. **/ currentPlannedSession: AugmentedQuery Observable, []>; - /** - * The earliest era for which we have a pending, unapplied slash. - **/ - earliestUnappliedSlash: AugmentedQuery Observable>, []>; /** * Rewards for the last `HISTORY_DEPTH` eras. * If reward hasn't been set or has been removed then 0 reward is returned. @@ -1202,16 +1206,6 @@ declare module '@polkadot/api-base/types/storage' { * Mode of era forcing. **/ forceEra: AugmentedQuery Observable, []>; - /** - * Number of eras to keep in history. - * - * Information is kept for eras in `[current_era - history_depth; current_era]`. - * - * Must be more than the number of eras delayed by session otherwise. I.e. active era must - * always be in history. I.e. `active_era > current_era - history_depth` must be - * guaranteed. - **/ - historyDepth: AugmentedQuery Observable, []>; /** * 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 @@ -1240,6 +1234,10 @@ declare module '@polkadot/api-base/types/storage' { * If set to `0`, no limit exists. **/ minCommission: AugmentedQuery Observable, []>; + /** + * The minimum active nominator stake of the last successful election. + **/ + minimumActiveStake: AugmentedQuery Observable, []>; /** * Minimum number of staking participants before emergency conditions are imposed. **/ @@ -1269,6 +1267,8 @@ declare module '@polkadot/api-base/types/storage' { * * Lastly, if any of the nominators become non-decodable, they can be chilled immediately via * [`Call::chill_other`] dispatchable by anyone. + * + * TWOX-NOTE: SAFE since `AccountId` is a secure hash. **/ nominators: AugmentedQuery Observable>, [AccountId32]>; /** @@ -1289,6 +1289,8 @@ declare module '@polkadot/api-base/types/storage' { offendingValidators: AugmentedQuery Observable>>, []>; /** * Where the reward payment should be made. Keyed by stash. + * + * TWOX-NOTE: SAFE since `AccountId` is a secure hash. **/ payee: AugmentedQuery Observable, [AccountId32]>; /** @@ -1306,23 +1308,18 @@ declare module '@polkadot/api-base/types/storage' { * as well as how much reward has been paid out. **/ spanSlash: AugmentedQuery | [AccountId32 | string | Uint8Array, u32 | AnyNumber | Uint8Array]) => Observable, [ITuple<[AccountId32, u32]>]>; - /** - * True if network has been upgraded to this version. - * Storage version of the pallet. - * - * This is set to v7.0.0 for new networks. - **/ - storageVersion: AugmentedQuery Observable, []>; /** * All unapplied slashes that are queued for later. **/ unappliedSlashes: AugmentedQuery Observable>, [u32]>; /** - * The ideal number of staking participants. + * The ideal number of active validators. **/ validatorCount: AugmentedQuery Observable, []>; /** * The map from (wannabe) validator stash key to the preferences of that validator. + * + * TWOX-NOTE: SAFE since `AccountId` is a secure hash. **/ validators: AugmentedQuery Observable, [AccountId32]>; /** @@ -1467,7 +1464,7 @@ declare module '@polkadot/api-base/types/storage' { /** * The current weight for the block. **/ - blockWeight: AugmentedQuery Observable, []>; + blockWeight: AugmentedQuery Observable, []>; /** * Digest of the current block, also part of the block header. **/ diff --git a/types/src/augment/augment-api-tx.ts b/types/src/augment/augment-api-tx.ts index 250eb8a601..3dff379e23 100644 --- a/types/src/augment/augment-api-tx.ts +++ b/types/src/augment/augment-api-tx.ts @@ -2,10 +2,10 @@ /* eslint-disable */ import type { ApiTypes } from '@polkadot/api-base/types'; -import type { BTreeMap, BTreeSet, Bytes, Compact, Option, U8aFixed, Vec, WrapperKeepOpaque, bool, u128, u16, u32, u64, u8 } from '@polkadot/types-codec'; +import type { BTreeMap, BTreeSet, Bytes, Compact, Option, U8aFixed, Vec, bool, u128, u16, u32, u64, u8 } from '@polkadot/types-codec'; import type { AnyNumber, IMethod, ITuple } from '@polkadot/types-codec/types'; import type { AccountId32, Call, H256, Perbill, Percent, Permill } from '@polkadot/types/interfaces/runtime'; -import type { JoystreamNodeRuntimeOriginCaller, JoystreamNodeRuntimeSessionKeys, PalletBountyBountyActor, PalletBountyBountyParametersBTreeSet, PalletBountyOracleWorkEntryJudgment, PalletCommonBalanceKind, PalletCommonFundingRequestParameters, PalletCommonMerkleTreeProofElementRecord, PalletCommonWorkingGroupIterableEnumsWorkingGroup, PalletContentChannelBagWitness, PalletContentChannelCreationParametersRecord, PalletContentChannelOwner, PalletContentChannelUpdateParametersRecord, PalletContentInitTransferParameters, PalletContentIterableEnumsChannelActionPermission, PalletContentNftLimitPeriod, PalletContentNftTypesEnglishAuctionParamsRecord, PalletContentNftTypesNftIssuanceParametersRecord, PalletContentNftTypesOpenAuctionParamsRecord, PalletContentPermissionsContentActor, PalletContentPermissionsCuratorGroupIterableEnumsContentModerationAction, PalletContentPermissionsCuratorGroupIterableEnumsPausableChannelFeature, PalletContentPullPaymentElement, PalletContentTransferCommitmentParametersBTreeMap, PalletContentUpdateChannelPayoutsParametersRecord, PalletContentVideoCreationParametersRecord, PalletContentVideoUpdateParametersRecord, PalletElectionProviderMultiPhaseRawSolution, PalletElectionProviderMultiPhaseSolutionOrSnapshotSize, PalletForumExtendedPostIdObject, PalletForumPrivilegedActor, PalletImOnlineHeartbeat, PalletImOnlineSr25519AppSr25519Signature, PalletMembershipBuyMembershipParameters, PalletMembershipCreateMemberParameters, PalletMembershipGiftMembershipParameters, PalletMembershipInviteMembershipParameters, PalletMultisigTimepoint, PalletProjectTokenMerkleProof, PalletProjectTokenTokenIssuanceParameters, PalletProjectTokenTokenSaleParams, PalletProjectTokenTransfersPayment, PalletProjectTokenTransfersPaymentWithVesting, PalletProposalsCodexGeneralProposalParams, PalletProposalsCodexProposalDetails, PalletProposalsDiscussionThreadModeBTreeSet, PalletProposalsEngineVoteKind, PalletStakingPalletConfigOpPerbill, PalletStakingPalletConfigOpPercent, PalletStakingPalletConfigOpU128, PalletStakingPalletConfigOpU32, PalletStakingRewardDestination, PalletStakingValidatorPrefs, PalletStorageBagIdType, PalletStorageDistributionBucketIdRecord, PalletStorageDynamicBagType, PalletVestingVestingInfo, PalletWorkingGroupApplyOnOpeningParams, PalletWorkingGroupOpeningType, PalletWorkingGroupStakePolicy, SpConsensusBabeDigestsNextConfigDescriptor, SpConsensusSlotsEquivocationProof, SpFinalityGrandpaEquivocationProof, SpNposElectionsElectionScore, SpNposElectionsSupport, SpRuntimeHeader, SpSessionMembershipProof } from '@polkadot/types/lookup'; +import type { JoystreamNodeRuntimeOriginCaller, JoystreamNodeRuntimeSessionKeys, PalletBountyBountyActor, PalletBountyBountyParametersBTreeSet, PalletBountyOracleWorkEntryJudgment, PalletCommonBalanceKind, PalletCommonFundingRequestParameters, PalletCommonMerkleTreeProofElementRecord, PalletCommonWorkingGroupIterableEnumsWorkingGroup, PalletContentChannelBagWitness, PalletContentChannelCreationParametersRecord, PalletContentChannelOwner, PalletContentChannelUpdateParametersRecord, PalletContentInitTransferParameters, PalletContentIterableEnumsChannelActionPermission, PalletContentNftLimitPeriod, PalletContentNftTypesEnglishAuctionParamsRecord, PalletContentNftTypesNftIssuanceParametersRecord, PalletContentNftTypesOpenAuctionParamsRecord, PalletContentPermissionsContentActor, PalletContentPermissionsCuratorGroupIterableEnumsContentModerationAction, PalletContentPermissionsCuratorGroupIterableEnumsPausableChannelFeature, PalletContentPullPaymentElement, PalletContentTransferCommitmentParametersBTreeMap, PalletContentUpdateChannelPayoutsParametersRecord, PalletContentVideoCreationParametersRecord, PalletContentVideoUpdateParametersRecord, PalletElectionProviderMultiPhaseRawSolution, PalletElectionProviderMultiPhaseSolutionOrSnapshotSize, PalletForumExtendedPostIdObject, PalletForumPrivilegedActor, PalletImOnlineHeartbeat, PalletImOnlineSr25519AppSr25519Signature, PalletMembershipBuyMembershipParameters, PalletMembershipCreateMemberParameters, PalletMembershipGiftMembershipParameters, PalletMembershipInviteMembershipParameters, PalletMultisigTimepoint, PalletProjectTokenMerkleProof, PalletProjectTokenTokenIssuanceParameters, PalletProjectTokenTokenSaleParams, PalletProjectTokenTransfersPayment, PalletProjectTokenTransfersPaymentWithVesting, PalletProposalsCodexGeneralProposalParams, PalletProposalsCodexProposalDetails, PalletProposalsDiscussionThreadModeBTreeSet, PalletProposalsEngineVoteKind, PalletStakingPalletConfigOpPerbill, PalletStakingPalletConfigOpPercent, PalletStakingPalletConfigOpU128, PalletStakingPalletConfigOpU32, PalletStakingRewardDestination, PalletStakingValidatorPrefs, PalletStorageBagIdType, PalletStorageDistributionBucketIdRecord, PalletStorageDynamicBagType, PalletVestingVestingInfo, PalletWorkingGroupApplyOnOpeningParams, PalletWorkingGroupOpeningType, PalletWorkingGroupStakePolicy, SpConsensusBabeDigestsNextConfigDescriptor, SpConsensusSlotsEquivocationProof, SpFinalityGrandpaEquivocationProof, SpNposElectionsElectionScore, SpNposElectionsSupport, SpSessionMembershipProof, SpWeightsWeightV2Weight } from '@polkadot/types/lookup'; declare module '@polkadot/api-base/types/submittable' { export interface AugmentedSubmittables { @@ -258,12 +258,6 @@ declare module '@polkadot/api-base/types/submittable' { **/ workerRemark: AugmentedSubmittable<(workerId: u64 | AnyNumber | Uint8Array, msg: Bytes | string | Uint8Array) => SubmittableExtrinsic, [u64, Bytes]>; }; - authorship: { - /** - * Provide a set of uncles. - **/ - setUncles: AugmentedSubmittable<(newUncles: Vec | (SpRuntimeHeader | { parentHash?: any; number?: any; stateRoot?: any; extrinsicsRoot?: any; digest?: any } | string | Uint8Array)[]) => SubmittableExtrinsic, [Vec]>; - }; babe: { /** * Plan an epoch config change. The epoch config change is recorded and will be enacted on @@ -321,10 +315,9 @@ declare module '@polkadot/api-base/types/submittable' { /** * Exactly as `transfer`, except the origin must be root and the source account may be * specified. - * # + * ## Complexity * - Same as transfer, but additional read and write because the source account is not * assumed to be in the overlay. - * # **/ forceTransfer: AugmentedSubmittable<(source: AccountId32 | string | Uint8Array, dest: AccountId32 | string | Uint8Array, value: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [AccountId32, AccountId32, Compact]>; /** @@ -353,7 +346,7 @@ declare module '@polkadot/api-base/types/submittable' { * * The dispatch origin for this call must be `Signed` by the transactor. * - * # + * ## Complexity * - 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 @@ -367,9 +360,6 @@ declare module '@polkadot/api-base/types/submittable' { * - Removing enough funds from an account will trigger `T::DustRemoval::on_unbalanced`. * - `transfer_keep_alive` works the same way as `transfer`, but has an additional check * that the transfer will not kill the origin account. - * --------------------------------- - * - Origin account is already in memory, so no DB operations for them. - * # **/ transfer: AugmentedSubmittable<(dest: AccountId32 | string | Uint8Array, value: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [AccountId32, Compact]>; /** @@ -387,9 +377,8 @@ declare module '@polkadot/api-base/types/submittable' { * - `keep_alive`: A boolean to determine if the `transfer_all` operation should send all * of the funds the account has, causing the sender account to be killed (false), or * transfer everything except at least the existential deposit, which will guarantee to - * keep the sender account alive (true). # + * keep the sender account alive (true). ## Complexity * - O(1). Just like transfer, but reading the user's transferable balance first. - * # **/ transferAll: AugmentedSubmittable<(dest: AccountId32 | string | Uint8Array, keepAlive: bool | boolean | Uint8Array) => SubmittableExtrinsic, [AccountId32, bool]>; /** @@ -2570,12 +2559,17 @@ declare module '@polkadot/api-base/types/submittable' { }; grandpa: { /** - * Note that the current authority set of the GRANDPA finality gadget has - * stalled. This will trigger a forced authority set change at the beginning - * of the next session, to be enacted `delay` blocks after that. The delay - * should be high enough to safely assume that the block signalling the - * forced change will not be re-orged (e.g. 1000 blocks). The GRANDPA voters - * will start the new authority set using the given finalized block as base. + * Note that the current authority set of the GRANDPA finality gadget has stalled. + * + * This will trigger a forced authority set change at the beginning of the next session, to + * be enacted `delay` blocks after that. The `delay` should be high enough to safely assume + * that the block signalling the forced change will not be re-orged e.g. 1000 blocks. + * The block production rate (which may be slowed down because of finality lagging) should + * be taken into account when choosing the `delay`. The GRANDPA voters based on the new + * authority will start voting on top of `best_finalized_block_number` for new finalized + * blocks. `best_finalized_block_number` should be the highest of the latest finalized + * block of all validators of the new authority set. + * * Only callable by root. **/ noteStalled: AugmentedSubmittable<(delay: u32 | AnyNumber | Uint8Array, bestFinalizedBlockNumber: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32]>; @@ -2601,15 +2595,11 @@ declare module '@polkadot/api-base/types/submittable' { }; imOnline: { /** - * # - * - Complexity: `O(K + E)` where K is length of `Keys` (heartbeat.validators_len) and E is - * length of `heartbeat.network_state.external_address` + * ## Complexity: + * - `O(K + E)` where K is length of `Keys` (heartbeat.validators_len) and E is length of + * `heartbeat.network_state.external_address` * - `O(K)`: decoding of length `K` * - `O(E)`: decoding/encoding of length `E` - * - DbReads: pallet_session `Validators`, pallet_session `CurrentIndex`, `Keys`, - * `ReceivedHeartbeats` - * - DbWrites: `ReceivedHeartbeats` - * # **/ heartbeat: AugmentedSubmittable<(heartbeat: PalletImOnlineHeartbeat | { blockNumber?: any; networkState?: any; sessionIndex?: any; authorityIndex?: any; validatorsLen?: any } | string | Uint8Array, signature: PalletImOnlineSr25519AppSr25519Signature | string | Uint8Array) => SubmittableExtrinsic, [PalletImOnlineHeartbeat, PalletImOnlineSr25519AppSr25519Signature]>; }; @@ -3145,7 +3135,7 @@ declare module '@polkadot/api-base/types/submittable' { * * NOTE: If this is the final approval, you will want to use `as_multi` instead. * - * # + * ## Complexity * - `O(S)`. * - Up to one balance-reserve or unreserve operation. * - One passthrough operation, one insert, both `O(S)` where `S` is the number of @@ -3156,13 +3146,8 @@ declare module '@polkadot/api-base/types/submittable' { * - One event. * - Storage: inserts one item, value size bounded by `MaxSignatories`, with a deposit * taken for its lifetime of `DepositBase + threshold * DepositFactor`. - * ---------------------------------- - * - DB Weight: - * - Read: Multisig Storage, [Caller Account] - * - Write: Multisig Storage, [Caller Account] - * # **/ - approveAsMulti: AugmentedSubmittable<(threshold: u16 | AnyNumber | Uint8Array, otherSignatories: Vec | (AccountId32 | string | Uint8Array)[], maybeTimepoint: Option | null | object | string | Uint8Array, callHash: U8aFixed | string | Uint8Array, maxWeight: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u16, Vec, Option, U8aFixed, u64]>; + approveAsMulti: AugmentedSubmittable<(threshold: u16 | AnyNumber | Uint8Array, otherSignatories: Vec | (AccountId32 | string | Uint8Array)[], maybeTimepoint: Option | null | object | string | Uint8Array, callHash: U8aFixed | string | Uint8Array, maxWeight: SpWeightsWeightV2Weight | { refTime?: any; proofSize?: any } | string | Uint8Array) => SubmittableExtrinsic, [u16, Vec, Option, U8aFixed, SpWeightsWeightV2Weight]>; /** * Register approval for a dispatch to be made from a deterministic composite account if * approved by a total of `threshold - 1` of `other_signatories`. @@ -3190,7 +3175,7 @@ declare module '@polkadot/api-base/types/submittable' { * on success, result is `Ok` and the result from the interior call, if it was executed, * may be found in the deposited `MultisigExecuted` event. * - * # + * ## Complexity * - `O(S + Z + Call)`. * - Up to one balance-reserve or unreserve operation. * - One passthrough operation, one insert, both `O(S)` where `S` is the number of @@ -3203,14 +3188,8 @@ declare module '@polkadot/api-base/types/submittable' { * - The weight of the `call`. * - Storage: inserts one item, value size bounded by `MaxSignatories`, with a deposit * taken for its lifetime of `DepositBase + threshold * DepositFactor`. - * ------------------------------- - * - DB Weight: - * - Reads: Multisig Storage, [Caller Account], Calls (if `store_call`) - * - Writes: Multisig Storage, [Caller Account], Calls (if `store_call`) - * - Plus Call Weight - * # **/ - asMulti: AugmentedSubmittable<(threshold: u16 | AnyNumber | Uint8Array, otherSignatories: Vec | (AccountId32 | string | Uint8Array)[], maybeTimepoint: Option | null | object | string | Uint8Array, call: WrapperKeepOpaque | object | string | Uint8Array, storeCall: bool | boolean | Uint8Array, maxWeight: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u16, Vec, Option, WrapperKeepOpaque, bool, u64]>; + asMulti: AugmentedSubmittable<(threshold: u16 | AnyNumber | Uint8Array, otherSignatories: Vec | (AccountId32 | string | Uint8Array)[], maybeTimepoint: Option | null | object | string | Uint8Array, call: Call | IMethod | string | Uint8Array, maxWeight: SpWeightsWeightV2Weight | { refTime?: any; proofSize?: any } | string | Uint8Array) => SubmittableExtrinsic, [u16, Vec, Option, Call, SpWeightsWeightV2Weight]>; /** * Immediately dispatch a multi-signature call using a single approval from the caller. * @@ -3222,12 +3201,8 @@ declare module '@polkadot/api-base/types/submittable' { * * Result is equivalent to the dispatched result. * - * # + * ## Complexity * O(Z + C) where Z is the length of the call and C its execution weight. - * ------------------------------- - * - DB Weight: None - * - Plus Call Weight - * # **/ asMultiThreshold1: AugmentedSubmittable<(otherSignatories: Vec | (AccountId32 | string | Uint8Array)[], call: Call | IMethod | string | Uint8Array) => SubmittableExtrinsic, [Vec, Call]>; /** @@ -3243,7 +3218,7 @@ declare module '@polkadot/api-base/types/submittable' { * transaction for this dispatch. * - `call_hash`: The hash of the call to be executed. * - * # + * ## Complexity * - `O(S)`. * - Up to one balance-reserve or unreserve operation. * - One passthrough operation, one insert, both `O(S)` where `S` is the number of @@ -3252,11 +3227,6 @@ declare module '@polkadot/api-base/types/submittable' { * - One event. * - I/O: 1 read `O(S)`, one remove. * - Storage: removes one item. - * ---------------------------------- - * - DB Weight: - * - Read: Multisig Storage, [Caller Account], Refund Account, Calls - * - Write: Multisig Storage, [Caller Account], Refund Account, Calls - * # **/ cancelAsMulti: AugmentedSubmittable<(threshold: u16 | AnyNumber | Uint8Array, otherSignatories: Vec | (AccountId32 | string | Uint8Array)[], timepoint: PalletMultisigTimepoint | { height?: any; index?: any } | string | Uint8Array, callHash: U8aFixed | string | Uint8Array) => SubmittableExtrinsic, [u16, Vec, PalletMultisigTimepoint, U8aFixed]>; }; @@ -4415,13 +4385,9 @@ declare module '@polkadot/api-base/types/submittable' { * means being a controller account) or directly convertible into a validator ID (which * usually means being a stash account). * - * # - * - Complexity: `O(1)` in number of key types. Actual cost depends on the number of length - * of `T::Keys::key_ids()` which is fixed. - * - DbReads: `T::ValidatorIdOf`, `NextKeys`, `origin account` - * - DbWrites: `NextKeys`, `origin account` - * - DbWrites per key id: `KeyOwner` - * # + * ## Complexity + * - `O(1)` in number of key types. Actual cost depends on the number of length of + * `T::Keys::key_ids()` which is fixed. **/ purgeKeys: AugmentedSubmittable<() => SubmittableExtrinsic, []>; /** @@ -4431,14 +4397,9 @@ declare module '@polkadot/api-base/types/submittable' { * * The dispatch origin of this function must be signed. * - * # - * - Complexity: `O(1)`. Actual cost depends on the number of length of - * `T::Keys::key_ids()` which is fixed. - * - DbReads: `origin account`, `T::ValidatorIdOf`, `NextKeys` - * - DbWrites: `origin account`, `NextKeys` - * - DbReads per key id: `KeyOwner` - * - DbWrites per key id: `KeyOwner` - * # + * ## Complexity + * - `O(1)`. Actual cost depends on the number of length of `T::Keys::key_ids()` which is + * fixed. **/ setKeys: AugmentedSubmittable<(keys: JoystreamNodeRuntimeSessionKeys | { grandpa?: any; babe?: any; imOnline?: any; authorityDiscovery?: any } | string | Uint8Array, proof: Bytes | string | Uint8Array) => SubmittableExtrinsic, [JoystreamNodeRuntimeSessionKeys, Bytes]>; }; @@ -4452,15 +4413,13 @@ declare module '@polkadot/api-base/types/submittable' { * The dispatch origin for this call must be _Signed_ by the stash account. * * Emits `Bonded`. - * # + * ## Complexity * - 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. - * ------------------ - * # **/ bond: AugmentedSubmittable<(controller: AccountId32 | string | Uint8Array, value: Compact | AnyNumber | Uint8Array, payee: PalletStakingRewardDestination | { Staked: any } | { Stash: any } | { Controller: any } | { Account: any } | { None: any } | string | Uint8Array) => SubmittableExtrinsic, [AccountId32, Compact, PalletStakingRewardDestination]>; /** @@ -4475,16 +4434,15 @@ declare module '@polkadot/api-base/types/submittable' { * * Emits `Bonded`. * - * # + * ## Complexity * - Independent of the arguments. Insignificant complexity. * - O(1). - * # **/ bondExtra: AugmentedSubmittable<(maxAdditional: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; /** * Cancel enactment of a deferred slash. * - * Can be called by the `T::SlashCancelOrigin`. + * Can be called by the `T::AdminOrigin`. * * Parameters: era and indices of the slashes for that era to kill. **/ @@ -4496,11 +4454,10 @@ declare module '@polkadot/api-base/types/submittable' { * * The dispatch origin for this call must be _Signed_ by the controller, not the stash. * - * # + * ## Complexity * - Independent of the arguments. Insignificant complexity. * - Contains one read. * - Writes are limited to the `origin` account key. - * # **/ chill: AugmentedSubmittable<() => SubmittableExtrinsic, []>; /** @@ -4550,11 +4507,9 @@ declare module '@polkadot/api-base/types/submittable' { * If this is called just before a new era is triggered, the election process may not * have enough blocks to get a result. * - * # + * ## Complexity * - No arguments. * - Weight: O(1) - * - Write ForceEra - * # **/ forceNewEra: AugmentedSubmittable<() => SubmittableExtrinsic, []>; /** @@ -4580,11 +4535,9 @@ declare module '@polkadot/api-base/types/submittable' { * Thus the election process may be ongoing when this is called. In this case the * election will continue until the next era is triggered. * - * # + * ## Complexity * - No arguments. * - Weight: O(1) - * - Write: ForceEra - * # **/ forceNoEras: AugmentedSubmittable<() => SubmittableExtrinsic, []>; /** @@ -4594,13 +4547,13 @@ declare module '@polkadot/api-base/types/submittable' { **/ forceUnstake: AugmentedSubmittable<(stash: AccountId32 | string | Uint8Array, numSlashingSpans: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [AccountId32, u32]>; /** - * Increments the ideal number of validators. + * Increments the ideal number of validators upto maximum of + * `ElectionProviderBase::MaxWinners`. * * The dispatch origin must be Root. * - * # + * ## Complexity * Same as [`Self::set_validator_count`]. - * # **/ increaseValidatorCount: AugmentedSubmittable<(additional: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; /** @@ -4624,11 +4577,10 @@ declare module '@polkadot/api-base/types/submittable' { * * The dispatch origin for this call must be _Signed_ by the controller, not the stash. * - * # + * ## Complexity * - The transaction's complexity is proportional to the size of `targets` (N) * which is capped at CompactAssignments::LIMIT (T::MaxNominations). * - Both the reads and writes follow a similar pattern. - * # **/ nominate: AugmentedSubmittable<(targets: Vec | (AccountId32 | string | Uint8Array)[]) => SubmittableExtrinsic, [Vec]>; /** @@ -4641,18 +4593,8 @@ declare module '@polkadot/api-base/types/submittable' { * The origin of this call must be _Signed_. Any account can call this function, even if * it is not one of the stakers. * - * # - * - Time complexity: at most O(MaxNominatorRewardedPerValidator). - * - Contains a limited number of reads and writes. - * ----------- - * N is the Number of payouts for the validator (including the validator) - * Weight: - * - Reward Destination Staked: O(N) - * - Reward Destination Controller (Creating): O(N) - * - * NOTE: weights are assuming that payouts are made to alive stash account (Staked). - * Paying even a dead controller is cheaper weight-wise. We don't do any refunds here. - * # + * ## Complexity + * - At most O(MaxNominatorRewardedPerValidator). **/ payoutStakers: AugmentedSubmittable<(validatorStash: AccountId32 | string | Uint8Array, era: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [AccountId32, u32]>; /** @@ -4675,21 +4617,19 @@ declare module '@polkadot/api-base/types/submittable' { * * The dispatch origin must be signed by the controller. * - * # + * ## Complexity * - Time complexity: O(L), where L is unlocking chunks * - Bounded by `MaxUnlockingChunks`. - * - Storage changes: Can't increase storage, only decrease it. - * # **/ rebond: AugmentedSubmittable<(value: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; /** - * Scale up the ideal number of validators by a factor. + * Scale up the ideal number of validators by a factor upto maximum of + * `ElectionProviderBase::MaxWinners`. * * The dispatch origin must be Root. * - * # + * ## Complexity * Same as [`Self::set_validator_count`]. - * # **/ scaleValidatorCount: AugmentedSubmittable<(factor: Percent | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Percent]>; /** @@ -4699,49 +4639,26 @@ declare module '@polkadot/api-base/types/submittable' { * * The dispatch origin for this call must be _Signed_ by the stash, not the controller. * - * # + * ## Complexity + * O(1) * - Independent of the arguments. Insignificant complexity. * - Contains a limited number of reads. * - Writes are limited to the `origin` account key. - * ---------- - * Weight: O(1) - * DB Weight: - * - Read: Bonded, Ledger New Controller, Ledger Old Controller - * - Write: Bonded, Ledger New Controller, Ledger Old Controller - * # **/ setController: AugmentedSubmittable<(controller: AccountId32 | string | Uint8Array) => SubmittableExtrinsic, [AccountId32]>; - /** - * Set `HistoryDepth` value. This function will delete any history information - * when `HistoryDepth` is reduced. - * - * Parameters: - * - `new_history_depth`: The new history depth you would like to set. - * - `era_items_deleted`: The number of items that will be deleted by this dispatch. This - * should report all the storage items that will be deleted by clearing old era history. - * Needed to report an accurate weight for the dispatch. Trusted by `Root` to report an - * accurate number. - * - * Origin must be root. - * - * # - * - E: Number of history depths removed, i.e. 10 -> 7 = 3 - * - Weight: O(E) - * - DB Weight: - * - Reads: Current Era, History Depth - * - Writes: History Depth - * - Clear Prefix Each: Era Stakers, EraStakersClipped, ErasValidatorPrefs - * - Writes Each: ErasValidatorReward, ErasRewardPoints, ErasTotalStake, - * ErasStartSessionIndex - * # - **/ - setHistoryDepth: AugmentedSubmittable<(newHistoryDepth: Compact | AnyNumber | Uint8Array, eraItemsDeleted: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, Compact]>; /** * Set the validators who cannot be slashed (if any). * * The dispatch origin must be Root. **/ setInvulnerables: AugmentedSubmittable<(invulnerables: Vec | (AccountId32 | string | Uint8Array)[]) => SubmittableExtrinsic, [Vec]>; + /** + * Sets the minimum amount of commission that each validators must maintain. + * + * This call has lower privilege requirements than `set_staking_config` and can be called + * by the `T::AdminOrigin`. Root can always call this. + **/ + setMinCommission: AugmentedSubmittable<(updated: Perbill | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Perbill]>; /** * (Re-)set the payment target for a controller. * @@ -4749,16 +4666,12 @@ declare module '@polkadot/api-base/types/submittable' { * * The dispatch origin for this call must be _Signed_ by the controller, not the stash. * - * # + * ## Complexity + * - O(1) * - Independent of the arguments. Insignificant complexity. * - Contains a limited number of reads. * - Writes are limited to the `origin` account key. * --------- - * - Weight: O(1) - * - DB Weight: - * - Read: Ledger - * - Write: Payee - * # **/ setPayee: AugmentedSubmittable<(payee: PalletStakingRewardDestination | { Staked: any } | { Stash: any } | { Controller: any } | { Account: any } | { None: any } | string | Uint8Array) => SubmittableExtrinsic, [PalletStakingRewardDestination]>; /** @@ -4775,7 +4688,7 @@ declare module '@polkadot/api-base/types/submittable' { * * `min_commission`: The minimum amount of commission that each validators must maintain. * This is checked only upon calling `validate`. Existing validators are not affected. * - * Origin must be Root to call this function. + * RuntimeOrigin must be Root to call this function. * * NOTE: Existing nominators and validators will not be affected by this update. * to kick people under the new limits, `chill_other` should be called. @@ -4786,10 +4699,8 @@ declare module '@polkadot/api-base/types/submittable' { * * The dispatch origin must be Root. * - * # - * Weight: O(1) - * Write: Validator Count - * # + * ## Complexity + * O(1) **/ setValidatorCount: AugmentedSubmittable<(updated: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; /** @@ -4803,8 +4714,8 @@ declare module '@polkadot/api-base/types/submittable' { * the funds out of management ready for transfer. * * No more than a limited number of unlocking chunks (see `MaxUnlockingChunks`) - * 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). + * can co-exists at the same time. If there are no unlocking chunks slots available + * [`Call::withdraw_unbonded`] is called to remove some of the chunks (if possible). * * If a user encounters the `InsufficientBond` error when calling this extrinsic, * they should call `chill` first in order to free up their bonded funds. @@ -4834,10 +4745,9 @@ declare module '@polkadot/api-base/types/submittable' { * * See also [`Call::unbond`]. * - * # - * Complexity O(S) where S is the number of slashing spans to remove + * ## Complexity + * O(S) where S is the number of slashing spans to remove * NOTE: Weight annotation is the kill scenario, we refund otherwise. - * # **/ withdrawUnbonded: AugmentedSubmittable<(numSlashingSpans: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; }; @@ -5495,10 +5405,6 @@ declare module '@polkadot/api-base/types/submittable' { workerRemark: AugmentedSubmittable<(workerId: u64 | AnyNumber | Uint8Array, msg: Bytes | string | Uint8Array) => SubmittableExtrinsic, [u64, Bytes]>; }; system: { - /** - * A dispatch that will fill the block weight up to the given ratio. - **/ - fillBlock: AugmentedSubmittable<(ratio: Perbill | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Perbill]>; /** * Kill all storage items with a key that starts with the given prefix. * @@ -5513,9 +5419,8 @@ declare module '@polkadot/api-base/types/submittable' { /** * Make some on-chain remark. * - * # + * ## Complexity * - `O(1)` - * # **/ remark: AugmentedSubmittable<(remark: Bytes | string | Uint8Array) => SubmittableExtrinsic, [Bytes]>; /** @@ -5525,28 +5430,15 @@ declare module '@polkadot/api-base/types/submittable' { /** * Set the new runtime code. * - * # + * ## Complexity * - `O(C + S)` where `C` length of `code` and `S` complexity of `can_set_code` - * - 1 call to `can_set_code`: `O(S)` (calls `sp_io::misc::runtime_version` which is - * expensive). - * - 1 storage write (codec `O(C)`). - * - 1 digest item. - * - 1 event. - * The weight of this function is dependent on the runtime, but generally this is very - * expensive. We will treat this as a full block. - * # **/ setCode: AugmentedSubmittable<(code: Bytes | string | Uint8Array) => SubmittableExtrinsic, [Bytes]>; /** * Set the new runtime code without doing any checks of the given `code`. * - * # + * ## Complexity * - `O(C)` where `C` length of `code` - * - 1 storage write (codec `O(C)`). - * - 1 digest item. - * - 1 event. - * The weight of this function is dependent on the runtime. We will treat this as a full - * block. # **/ setCodeWithoutChecks: AugmentedSubmittable<(code: Bytes | string | Uint8Array) => SubmittableExtrinsic, [Bytes]>; /** @@ -5570,12 +5462,11 @@ declare module '@polkadot/api-base/types/submittable' { * * The dispatch origin for this call must be `Inherent`. * - * # + * ## Complexity * - `O(1)` (Note that implementations of `OnTimestampSet` must also be `O(1)`) * - 1 storage read and 1 storage mutation (codec `O(1)`). (because of `DidUpdate::take` in * `on_finalize`) * - 1 event handler `on_timestamp_set`. Must be `O(1)`. - * # **/ set: AugmentedSubmittable<(now: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; }; @@ -5599,17 +5490,16 @@ declare module '@polkadot/api-base/types/submittable' { /** * Send a batch of dispatch calls. * - * May be called from any origin. + * May be called from any origin except `None`. * * - `calls`: The calls to be dispatched from the same origin. The number of call must not * exceed the constant: `batched_calls_limit` (available in constant metadata). * - * If origin is root then call are dispatch without checking origin filter. (This includes - * bypassing `frame_system::Config::BaseCallFilter`). + * If origin is root then the calls are dispatched without checking origin filter. (This + * includes bypassing `frame_system::Config::BaseCallFilter`). * - * # - * - Complexity: O(C) where C is the number of calls to be batched. - * # + * ## Complexity + * - O(C) where C is the number of calls to be batched. * * This will return `Ok` in all circumstances. To determine the success of the batch, an * event is deposited. If a call failed and the batch was interrupted, then the @@ -5622,17 +5512,16 @@ declare module '@polkadot/api-base/types/submittable' { * Send a batch of dispatch calls and atomically execute them. * The whole transaction will rollback and fail if any of the calls failed. * - * May be called from any origin. + * May be called from any origin except `None`. * * - `calls`: The calls to be dispatched from the same origin. The number of call must not * exceed the constant: `batched_calls_limit` (available in constant metadata). * - * If origin is root then call are dispatch without checking origin filter. (This includes - * bypassing `frame_system::Config::BaseCallFilter`). + * If origin is root then the calls are dispatched without checking origin filter. (This + * includes bypassing `frame_system::Config::BaseCallFilter`). * - * # - * - Complexity: O(C) where C is the number of calls to be batched. - * # + * ## Complexity + * - O(C) where C is the number of calls to be batched. **/ batchAll: AugmentedSubmittable<(calls: Vec | (Call | IMethod | string | Uint8Array)[]) => SubmittableExtrinsic, [Vec]>; /** @@ -5640,31 +5529,35 @@ declare module '@polkadot/api-base/types/submittable' { * * The dispatch origin for this call must be _Root_. * - * # + * ## Complexity * - O(1). - * - Limited storage reads. - * - One DB write (event). - * - Weight of derivative `call` execution + T::WeightInfo::dispatch_as(). - * # **/ dispatchAs: AugmentedSubmittable<(asOrigin: JoystreamNodeRuntimeOriginCaller | { system: any } | { Void: any } | string | Uint8Array, call: Call | IMethod | string | Uint8Array) => SubmittableExtrinsic, [JoystreamNodeRuntimeOriginCaller, Call]>; /** * Send a batch of dispatch calls. * Unlike `batch`, it allows errors and won't interrupt. * - * May be called from any origin. + * May be called from any origin except `None`. * * - `calls`: The calls to be dispatched from the same origin. The number of call must not * exceed the constant: `batched_calls_limit` (available in constant metadata). * - * If origin is root then call are dispatch without checking origin filter. (This includes - * bypassing `frame_system::Config::BaseCallFilter`). + * If origin is root then the calls are dispatch without checking origin filter. (This + * includes bypassing `frame_system::Config::BaseCallFilter`). * - * # - * - Complexity: O(C) where C is the number of calls to be batched. - * # + * ## Complexity + * - O(C) where C is the number of calls to be batched. **/ forceBatch: AugmentedSubmittable<(calls: Vec | (Call | IMethod | string | Uint8Array)[]) => SubmittableExtrinsic, [Vec]>; + /** + * Dispatch a function call with a specified weight. + * + * This function does not check the weight of the call, and instead allows the + * Root origin to specify the weight of the call. + * + * The dispatch origin for this call must be _Root_. + **/ + withWeight: AugmentedSubmittable<(call: Call | IMethod | string | Uint8Array, weight: SpWeightsWeightV2Weight | { refTime?: any; proofSize?: any } | string | Uint8Array) => SubmittableExtrinsic, [Call, SpWeightsWeightV2Weight]>; }; vesting: { /** @@ -5680,12 +5573,8 @@ declare module '@polkadot/api-base/types/submittable' { * * NOTE: This will unlock all schedules through the current block. * - * # + * ## Complexity * - `O(1)`. - * - DbWeight: 4 Reads, 4 Writes - * - Reads: Vesting Storage, Balances Locks, Target Account, Source Account - * - Writes: Vesting Storage, Balances Locks, Target Account, Source Account - * # **/ forceVestedTransfer: AugmentedSubmittable<(source: AccountId32 | string | Uint8Array, target: AccountId32 | string | Uint8Array, schedule: PalletVestingVestingInfo | { locked?: any; perBlock?: any; startingBlock?: any } | string | Uint8Array) => SubmittableExtrinsic, [AccountId32, AccountId32, PalletVestingVestingInfo]>; /** @@ -5720,12 +5609,8 @@ declare module '@polkadot/api-base/types/submittable' { * * Emits either `VestingCompleted` or `VestingUpdated`. * - * # + * ## Complexity * - `O(1)`. - * - DbWeight: 2 Reads, 2 Writes - * - Reads: Vesting Storage, Balances Locks, [Sender Account] - * - Writes: Vesting Storage, Balances Locks, [Sender Account] - * # **/ vest: AugmentedSubmittable<() => SubmittableExtrinsic, []>; /** @@ -5740,12 +5625,8 @@ declare module '@polkadot/api-base/types/submittable' { * * NOTE: This will unlock all schedules through the current block. * - * # + * ## Complexity * - `O(1)`. - * - DbWeight: 3 Reads, 3 Writes - * - Reads: Vesting Storage, Balances Locks, Target Account, [Sender Account] - * - Writes: Vesting Storage, Balances Locks, Target Account, [Sender Account] - * # **/ vestedTransfer: AugmentedSubmittable<(target: AccountId32 | string | Uint8Array, schedule: PalletVestingVestingInfo | { locked?: any; perBlock?: any; startingBlock?: any } | string | Uint8Array) => SubmittableExtrinsic, [AccountId32, PalletVestingVestingInfo]>; /** @@ -5758,12 +5639,8 @@ declare module '@polkadot/api-base/types/submittable' { * * Emits either `VestingCompleted` or `VestingUpdated`. * - * # + * ## Complexity * - `O(1)`. - * - DbWeight: 3 Reads, 3 Writes - * - Reads: Vesting Storage, Balances Locks, Target Account - * - Writes: Vesting Storage, Balances Locks, Target Account - * # **/ vestOther: AugmentedSubmittable<(target: AccountId32 | string | Uint8Array) => SubmittableExtrinsic, [AccountId32]>; }; diff --git a/types/src/augment/lookup.ts b/types/src/augment/lookup.ts index 547a621508..c7d84c059b 100644 --- a/types/src/augment/lookup.ts +++ b/types/src/augment/lookup.ts @@ -24,21 +24,28 @@ export default { feeFrozen: 'u128' }, /** - * Lookup7: frame_support::weights::PerDispatchClass + * Lookup7: frame_support::dispatch::PerDispatchClass **/ - FrameSupportWeightsPerDispatchClassU64: { - normal: 'u64', - operational: 'u64', - mandatory: 'u64' + FrameSupportDispatchPerDispatchClassWeight: { + normal: 'SpWeightsWeightV2Weight', + operational: 'SpWeightsWeightV2Weight', + mandatory: 'SpWeightsWeightV2Weight' }, /** - * Lookup11: sp_runtime::generic::digest::Digest + * Lookup8: sp_weights::weight_v2::Weight + **/ + SpWeightsWeightV2Weight: { + refTime: 'Compact', + proofSize: 'Compact' + }, + /** + * Lookup13: sp_runtime::generic::digest::Digest **/ SpRuntimeDigest: { logs: 'Vec' }, /** - * Lookup13: sp_runtime::generic::digest::DigestItem + * Lookup15: sp_runtime::generic::digest::DigestItem **/ SpRuntimeDigestDigestItem: { _enum: { @@ -54,7 +61,7 @@ export default { } }, /** - * Lookup16: frame_system::EventRecord + * Lookup18: frame_system::EventRecord **/ FrameSystemEventRecord: { phase: 'FrameSystemPhase', @@ -62,16 +69,16 @@ export default { topics: 'Vec' }, /** - * Lookup18: frame_system::pallet::Event + * Lookup20: frame_system::pallet::Event **/ FrameSystemEvent: { _enum: { ExtrinsicSuccess: { - dispatchInfo: 'FrameSupportWeightsDispatchInfo', + dispatchInfo: 'FrameSupportDispatchDispatchInfo', }, ExtrinsicFailed: { dispatchError: 'SpRuntimeDispatchError', - dispatchInfo: 'FrameSupportWeightsDispatchInfo', + dispatchInfo: 'FrameSupportDispatchDispatchInfo', }, CodeUpdated: 'Null', NewAccount: { @@ -90,27 +97,27 @@ export default { } }, /** - * Lookup19: frame_support::weights::DispatchInfo + * Lookup21: frame_support::dispatch::DispatchInfo **/ - FrameSupportWeightsDispatchInfo: { - weight: 'u64', - class: 'FrameSupportWeightsDispatchClass', - paysFee: 'FrameSupportWeightsPays' + FrameSupportDispatchDispatchInfo: { + weight: 'SpWeightsWeightV2Weight', + class: 'FrameSupportDispatchDispatchClass', + paysFee: 'FrameSupportDispatchPays' }, /** - * Lookup20: frame_support::weights::DispatchClass + * Lookup22: frame_support::dispatch::DispatchClass **/ - FrameSupportWeightsDispatchClass: { + FrameSupportDispatchDispatchClass: { _enum: ['Normal', 'Operational', 'Mandatory'] }, /** - * Lookup21: frame_support::weights::Pays + * Lookup23: frame_support::dispatch::Pays **/ - FrameSupportWeightsPays: { + FrameSupportDispatchPays: { _enum: ['Yes', 'No'] }, /** - * Lookup22: sp_runtime::DispatchError + * Lookup24: sp_runtime::DispatchError **/ SpRuntimeDispatchError: { _enum: { @@ -122,37 +129,40 @@ export default { NoProviders: 'Null', TooManyConsumers: 'Null', Token: 'SpRuntimeTokenError', - Arithmetic: 'SpRuntimeArithmeticError', - Transactional: 'SpRuntimeTransactionalError' + Arithmetic: 'SpArithmeticArithmeticError', + Transactional: 'SpRuntimeTransactionalError', + Exhausted: 'Null', + Corruption: 'Null', + Unavailable: 'Null' } }, /** - * Lookup23: sp_runtime::ModuleError + * Lookup25: sp_runtime::ModuleError **/ SpRuntimeModuleError: { index: 'u8', error: '[u8;4]' }, /** - * Lookup24: sp_runtime::TokenError + * Lookup26: sp_runtime::TokenError **/ SpRuntimeTokenError: { _enum: ['NoFunds', 'WouldDie', 'BelowMinimum', 'CannotCreate', 'UnknownAsset', 'Frozen', 'Unsupported'] }, /** - * Lookup25: sp_runtime::ArithmeticError + * Lookup27: sp_arithmetic::ArithmeticError **/ - SpRuntimeArithmeticError: { + SpArithmeticArithmeticError: { _enum: ['Underflow', 'Overflow', 'DivisionByZero'] }, /** - * Lookup26: sp_runtime::TransactionalError + * Lookup28: sp_runtime::TransactionalError **/ SpRuntimeTransactionalError: { _enum: ['LimitReached', 'NoLayer'] }, /** - * Lookup27: pallet_utility::pallet::Event + * Lookup29: pallet_utility::pallet::Event **/ PalletUtilityEvent: { _enum: { @@ -172,7 +182,7 @@ export default { } }, /** - * Lookup30: pallet_balances::pallet::Event + * Lookup32: pallet_balances::pallet::Event **/ PalletBalancesEvent: { _enum: { @@ -223,23 +233,38 @@ export default { } }, /** - * Lookup31: frame_support::traits::tokens::misc::BalanceStatus + * Lookup33: frame_support::traits::tokens::misc::BalanceStatus **/ FrameSupportTokensMiscBalanceStatus: { _enum: ['Free', 'Reserved'] }, /** - * Lookup32: pallet_election_provider_multi_phase::pallet::Event + * Lookup34: pallet_transaction_payment::pallet::Event + **/ + PalletTransactionPaymentEvent: { + _enum: { + TransactionFeePaid: { + who: 'AccountId32', + actualFee: 'u128', + tip: 'u128' + } + } + }, + /** + * Lookup35: pallet_election_provider_multi_phase::pallet::Event **/ PalletElectionProviderMultiPhaseEvent: { _enum: { SolutionStored: { - electionCompute: 'PalletElectionProviderMultiPhaseElectionCompute', + compute: 'PalletElectionProviderMultiPhaseElectionCompute', + origin: 'Option', prevEjected: 'bool', }, ElectionFinalized: { - electionCompute: 'Option', + compute: 'PalletElectionProviderMultiPhaseElectionCompute', + score: 'SpNposElectionsElectionScore', }, + ElectionFailed: 'Null', Rewarded: { account: 'AccountId32', value: 'u128', @@ -248,49 +273,113 @@ export default { account: 'AccountId32', value: 'u128', }, - SignedPhaseStarted: { - round: 'u32', - }, - UnsignedPhaseStarted: { + PhaseTransitioned: { + from: 'PalletElectionProviderMultiPhasePhase', + to: 'PalletElectionProviderMultiPhasePhase', round: 'u32' } } }, /** - * Lookup33: pallet_election_provider_multi_phase::ElectionCompute + * Lookup36: pallet_election_provider_multi_phase::ElectionCompute **/ PalletElectionProviderMultiPhaseElectionCompute: { _enum: ['OnChain', 'Signed', 'Unsigned', 'Fallback', 'Emergency'] }, /** - * Lookup36: pallet_staking::pallet::pallet::Event + * Lookup39: sp_npos_elections::ElectionScore + **/ + SpNposElectionsElectionScore: { + minimalStake: 'u128', + sumStake: 'u128', + sumStakeSquared: 'u128' + }, + /** + * Lookup40: pallet_election_provider_multi_phase::Phase + **/ + PalletElectionProviderMultiPhasePhase: { + _enum: { + Off: 'Null', + Signed: 'Null', + Unsigned: '(bool,u32)', + Emergency: 'Null' + } + }, + /** + * Lookup42: pallet_staking::pallet::pallet::Event **/ PalletStakingPalletEvent: { _enum: { - EraPaid: '(u32,u128,u128)', - Rewarded: '(AccountId32,u128)', - Slashed: '(AccountId32,u128)', - OldSlashingReportDiscarded: 'u32', + EraPaid: { + eraIndex: 'u32', + validatorPayout: 'u128', + remainder: 'u128', + }, + Rewarded: { + stash: 'AccountId32', + amount: 'u128', + }, + Slashed: { + staker: 'AccountId32', + amount: 'u128', + }, + SlashReported: { + validator: 'AccountId32', + fraction: 'Perbill', + slashEra: 'u32', + }, + OldSlashingReportDiscarded: { + sessionIndex: 'u32', + }, StakersElected: 'Null', - Bonded: '(AccountId32,u128)', - Unbonded: '(AccountId32,u128)', - Withdrawn: '(AccountId32,u128)', - Kicked: '(AccountId32,AccountId32)', + Bonded: { + stash: 'AccountId32', + amount: 'u128', + }, + Unbonded: { + stash: 'AccountId32', + amount: 'u128', + }, + Withdrawn: { + stash: 'AccountId32', + amount: 'u128', + }, + Kicked: { + nominator: 'AccountId32', + stash: 'AccountId32', + }, StakingElectionFailed: 'Null', - Chilled: 'AccountId32', - PayoutStarted: '(u32,AccountId32)', - ValidatorPrefsSet: '(AccountId32,PalletStakingValidatorPrefs)' + Chilled: { + stash: 'AccountId32', + }, + PayoutStarted: { + eraIndex: 'u32', + validatorStash: 'AccountId32', + }, + ValidatorPrefsSet: { + stash: 'AccountId32', + prefs: 'PalletStakingValidatorPrefs', + }, + ForceEra: { + mode: 'PalletStakingForcing' + } } }, /** - * Lookup37: pallet_staking::ValidatorPrefs + * Lookup44: pallet_staking::ValidatorPrefs **/ PalletStakingValidatorPrefs: { commission: 'Compact', blocked: 'bool' }, /** - * Lookup40: pallet_session::pallet::Event + * Lookup46: pallet_staking::Forcing + **/ + PalletStakingForcing: { + _enum: ['NotForcing', 'ForceNew', 'ForceNone', 'ForceAlways'] + }, + /** + * Lookup47: pallet_session::pallet::Event **/ PalletSessionEvent: { _enum: { @@ -300,7 +389,7 @@ export default { } }, /** - * Lookup41: pallet_grandpa::pallet::Event + * Lookup48: pallet_grandpa::pallet::Event **/ PalletGrandpaEvent: { _enum: { @@ -312,15 +401,15 @@ export default { } }, /** - * Lookup44: sp_finality_grandpa::app::Public + * Lookup51: sp_finality_grandpa::app::Public **/ SpFinalityGrandpaAppPublic: 'SpCoreEd25519Public', /** - * Lookup45: sp_core::ed25519::Public + * Lookup52: sp_core::ed25519::Public **/ SpCoreEd25519Public: '[u8;32]', /** - * Lookup46: pallet_im_online::pallet::Event + * Lookup53: pallet_im_online::pallet::Event **/ PalletImOnlineEvent: { _enum: { @@ -334,15 +423,15 @@ export default { } }, /** - * Lookup47: pallet_im_online::sr25519::app_sr25519::Public + * Lookup54: pallet_im_online::sr25519::app_sr25519::Public **/ PalletImOnlineSr25519AppSr25519Public: 'SpCoreSr25519Public', /** - * Lookup48: sp_core::sr25519::Public + * Lookup55: sp_core::sr25519::Public **/ SpCoreSr25519Public: '[u8;32]', /** - * Lookup51: pallet_staking::Exposure + * Lookup58: pallet_staking::Exposure **/ PalletStakingExposure: { total: 'Compact', @@ -350,14 +439,14 @@ export default { others: 'Vec' }, /** - * Lookup54: pallet_staking::IndividualExposure + * Lookup61: pallet_staking::IndividualExposure **/ PalletStakingIndividualExposure: { who: 'AccountId32', value: 'Compact' }, /** - * Lookup55: pallet_offences::pallet::Event + * Lookup62: pallet_offences::pallet::Event **/ PalletOffencesEvent: { _enum: { @@ -368,7 +457,7 @@ export default { } }, /** - * Lookup57: pallet_bags_list::pallet::Event + * Lookup64: pallet_bags_list::pallet::Event **/ PalletBagsListEvent: { _enum: { @@ -384,7 +473,7 @@ export default { } }, /** - * Lookup58: pallet_vesting::pallet::Event + * Lookup65: pallet_vesting::pallet::Event **/ PalletVestingEvent: { _enum: { @@ -398,7 +487,7 @@ export default { } }, /** - * Lookup59: pallet_multisig::pallet::Event + * Lookup66: pallet_multisig::pallet::Event **/ PalletMultisigEvent: { _enum: { @@ -429,14 +518,14 @@ export default { } }, /** - * Lookup60: pallet_multisig::Timepoint + * Lookup67: pallet_multisig::Timepoint **/ PalletMultisigTimepoint: { height: 'u32', index: 'u32' }, /** - * Lookup61: pallet_council::RawEvent + * Lookup68: pallet_council::RawEvent **/ PalletCouncilRawEvent: { _enum: { @@ -462,7 +551,7 @@ export default { } }, /** - * Lookup63: pallet_referendum::RawEvent + * Lookup70: pallet_referendum::RawEvent **/ PalletReferendumRawEvent: { _enum: { @@ -477,18 +566,18 @@ export default { } }, /** - * Lookup64: pallet_referendum::Instance1 + * Lookup71: pallet_referendum::Instance1 **/ PalletReferendumInstance1: 'Null', /** - * Lookup66: pallet_referendum::OptionResult + * Lookup73: pallet_referendum::OptionResult **/ PalletReferendumOptionResult: { optionId: 'u64', votePower: 'u128' }, /** - * Lookup67: pallet_membership::RawEvent, ActorId, pallet_membership::InviteMembershipParameters, pallet_membership::CreateMemberParameters, pallet_membership::GiftMembershipParameters> + * Lookup74: pallet_membership::RawEvent, ActorId, pallet_membership::InviteMembershipParameters, pallet_membership::CreateMemberParameters, pallet_membership::GiftMembershipParameters> **/ PalletMembershipRawEvent: { _enum: { @@ -512,7 +601,7 @@ export default { } }, /** - * Lookup68: pallet_membership::BuyMembershipParameters + * Lookup75: pallet_membership::BuyMembershipParameters **/ PalletMembershipBuyMembershipParameters: { rootAccount: 'AccountId32', @@ -522,7 +611,7 @@ export default { referrerId: 'Option' }, /** - * Lookup71: pallet_membership::InviteMembershipParameters + * Lookup78: pallet_membership::InviteMembershipParameters **/ PalletMembershipInviteMembershipParameters: { invitingMemberId: 'u64', @@ -532,7 +621,7 @@ export default { metadata: 'Bytes' }, /** - * Lookup72: pallet_membership::CreateMemberParameters + * Lookup79: pallet_membership::CreateMemberParameters **/ PalletMembershipCreateMemberParameters: { rootAccount: 'AccountId32', @@ -542,7 +631,7 @@ export default { isFoundingMember: 'bool' }, /** - * Lookup73: pallet_membership::GiftMembershipParameters + * Lookup80: pallet_membership::GiftMembershipParameters **/ PalletMembershipGiftMembershipParameters: { rootAccount: 'AccountId32', @@ -555,7 +644,7 @@ export default { applyRootAccountInvitationLock: 'Option' }, /** - * Lookup78: pallet_forum::RawEvent, pallet_forum::ExtendedPostIdObject> + * Lookup84: pallet_forum::RawEvent, pallet_forum::ExtendedPostIdObject> **/ PalletForumRawEvent: { _enum: { @@ -579,7 +668,7 @@ export default { } }, /** - * Lookup79: pallet_forum::PrivilegedActor + * Lookup85: pallet_forum::PrivilegedActor **/ PalletForumPrivilegedActor: { _enum: { @@ -588,7 +677,7 @@ export default { } }, /** - * Lookup80: pallet_forum::ExtendedPostIdObject + * Lookup86: pallet_forum::ExtendedPostIdObject **/ PalletForumExtendedPostIdObject: { categoryId: 'u64', @@ -596,7 +685,7 @@ export default { postId: 'u64' }, /** - * Lookup85: pallet_constitution::RawEvent + * Lookup91: pallet_constitution::RawEvent **/ PalletConstitutionRawEvent: { _enum: { @@ -604,7 +693,7 @@ export default { } }, /** - * Lookup86: pallet_bounty::RawEvent>, BTreeMap>> + * Lookup92: pallet_bounty::RawEvent>, BTreeMap>> **/ PalletBountyRawEvent: { _enum: { @@ -634,7 +723,7 @@ export default { } }, /** - * Lookup87: pallet_bounty::BountyParameters> + * Lookup93: pallet_bounty::BountyParameters> **/ PalletBountyBountyParametersBTreeSet: { oracle: 'PalletBountyBountyActor', @@ -646,7 +735,7 @@ export default { fundingType: 'PalletBountyFundingType' }, /** - * Lookup88: pallet_bounty::BountyActor + * Lookup94: pallet_bounty::BountyActor **/ PalletBountyBountyActor: { _enum: { @@ -655,7 +744,7 @@ export default { } }, /** - * Lookup89: pallet_bounty::AssuranceContractType> + * Lookup95: pallet_bounty::AssuranceContractType> **/ PalletBountyAssuranceContractTypeBTreeSet: { _enum: { @@ -664,7 +753,7 @@ export default { } }, /** - * Lookup90: pallet_bounty::FundingType + * Lookup96: pallet_bounty::FundingType **/ PalletBountyFundingType: { _enum: { @@ -678,7 +767,7 @@ export default { } }, /** - * Lookup92: pallet_bounty::OracleWorkEntryJudgment + * Lookup98: pallet_bounty::OracleWorkEntryJudgment **/ PalletBountyOracleWorkEntryJudgment: { _enum: { @@ -692,7 +781,7 @@ export default { } }, /** - * Lookup95: pallet_utility::RawEvent + * Lookup101: pallet_utility::RawEvent **/ PalletUtilityRawEvent: { _enum: { @@ -703,19 +792,19 @@ export default { } }, /** - * Lookup96: pallet_common::working_group::iterable_enums::WorkingGroup + * Lookup102: pallet_common::working_group::iterable_enums::WorkingGroup **/ PalletCommonWorkingGroupIterableEnumsWorkingGroup: { _enum: ['Forum', 'Storage', 'Content', 'OperationsAlpha', 'App', 'Distribution', 'OperationsBeta', 'OperationsGamma', 'Membership'] }, /** - * Lookup97: pallet_common::BalanceKind + * Lookup103: pallet_common::BalanceKind **/ PalletCommonBalanceKind: { _enum: ['Positive', 'Negative'] }, /** - * Lookup98: pallet_content::RawEvent, MemberId, CuratorGroupId, CuratorId, VideoId, ChannelId, pallet_content::types::ChannelRecord, frame_support::storage::bounded_btree_map::BoundedBTreeMap, S>, frame_support::storage::bounded_btree_set::BoundedBTreeSet, pallet_common::bloat_bond::RepayableBloatBond>, DataObjectId, pallet_content::nft::types::EnglishAuctionParamsRecord, pallet_content::nft::types::OpenAuctionParamsRecord, OpenAuctionId, pallet_content::nft::types::NftIssuanceParametersRecord, pallet_content::nft::types::OpenAuctionParamsRecord, MemberId, Balance>>, Balance, pallet_content::types::ChannelCreationParametersRecord, MemberId, StorageBucketId, pallet_storage::DistributionBucketIdRecord, Balance>, pallet_content::types::ChannelUpdateParametersRecord, DataObjectId, MemberId, Balance>, pallet_content::types::VideoCreationParametersRecord, pallet_content::nft::types::NftIssuanceParametersRecord, pallet_content::nft::types::OpenAuctionParamsRecord, MemberId, Balance>>, Balance>, pallet_content::types::VideoUpdateParametersRecord, DataObjectId, pallet_content::nft::types::NftIssuanceParametersRecord, pallet_content::nft::types::OpenAuctionParamsRecord, MemberId, Balance>>, Balance>, ChannelPrivilegeLevel, BTreeMap>, pallet_content::types::TransferCommitmentParameters>, Balance, TransferId>, pallet_content::types::PendingTransfer, S>>, sp_core::crypto::AccountId32, pallet_content::types::UpdateChannelPayoutsParametersRecord, Balance, primitive_types::H256>, TokenId, pallet_content::types::ChannelFundsDestination> + * Lookup104: pallet_content::RawEvent, MemberId, CuratorGroupId, CuratorId, VideoId, ChannelId, pallet_content::types::ChannelRecord, bounded_collections::bounded_btree_map::BoundedBTreeMap, S>, bounded_collections::bounded_btree_set::BoundedBTreeSet, pallet_common::bloat_bond::RepayableBloatBond>, DataObjectId, pallet_content::nft::types::EnglishAuctionParamsRecord, pallet_content::nft::types::OpenAuctionParamsRecord, OpenAuctionId, pallet_content::nft::types::NftIssuanceParametersRecord, pallet_content::nft::types::OpenAuctionParamsRecord, MemberId, Balance>>, Balance, pallet_content::types::ChannelCreationParametersRecord, MemberId, StorageBucketId, pallet_storage::DistributionBucketIdRecord, Balance>, pallet_content::types::ChannelUpdateParametersRecord, DataObjectId, MemberId, Balance>, pallet_content::types::VideoCreationParametersRecord, pallet_content::nft::types::NftIssuanceParametersRecord, pallet_content::nft::types::OpenAuctionParamsRecord, MemberId, Balance>>, Balance>, pallet_content::types::VideoUpdateParametersRecord, DataObjectId, pallet_content::nft::types::NftIssuanceParametersRecord, pallet_content::nft::types::OpenAuctionParamsRecord, MemberId, Balance>>, Balance>, ChannelPrivilegeLevel, BTreeMap>, pallet_content::types::TransferCommitmentParameters>, Balance, TransferId>, pallet_content::types::PendingTransfer, S>>, sp_core::crypto::AccountId32, pallet_content::types::UpdateChannelPayoutsParametersRecord, Balance, primitive_types::H256>, TokenId, pallet_content::types::ChannelFundsDestination> **/ PalletContentRawEvent: { _enum: { @@ -776,7 +865,7 @@ export default { } }, /** - * Lookup99: pallet_content::permissions::ContentActor + * Lookup105: pallet_content::permissions::ContentActor **/ PalletContentPermissionsContentActor: { _enum: { @@ -786,7 +875,7 @@ export default { } }, /** - * Lookup100: pallet_content::types::ChannelRecord, frame_support::storage::bounded_btree_map::BoundedBTreeMap, S>, frame_support::storage::bounded_btree_set::BoundedBTreeSet, pallet_common::bloat_bond::RepayableBloatBond> + * Lookup106: pallet_content::types::ChannelRecord, bounded_collections::bounded_btree_map::BoundedBTreeMap, S>, bounded_collections::bounded_btree_set::BoundedBTreeSet, pallet_common::bloat_bond::RepayableBloatBond> **/ PalletContentChannelRecord: { owner: 'PalletContentChannelOwner', @@ -805,26 +894,26 @@ export default { channelStateBloatBond: 'PalletCommonBloatBondRepayableBloatBond' }, /** - * Lookup104: pallet_content::types::iterable_enums::ChannelActionPermission + * Lookup110: pallet_content::types::iterable_enums::ChannelActionPermission **/ PalletContentIterableEnumsChannelActionPermission: { _enum: ['UpdateChannelMetadata', 'ManageNonVideoChannelAssets', 'ManageChannelCollaborators', 'UpdateVideoMetadata', 'AddVideo', 'ManageVideoAssets', 'DeleteChannel', 'DeleteVideo', 'ManageVideoNfts', 'AgentRemark', 'TransferChannel', 'ClaimChannelReward', 'WithdrawFromChannelBalance', 'IssueCreatorToken', 'ClaimCreatorTokenPatronage', 'InitAndManageCreatorTokenSale', 'CreatorTokenIssuerTransfer', 'MakeCreatorTokenPermissionless', 'ReduceCreatorTokenPatronageRate', 'ManageRevenueSplits', 'DeissueCreatorToken'] }, /** - * Lookup111: pallet_content::permissions::curator_group::iterable_enums::PausableChannelFeature + * Lookup117: pallet_content::permissions::curator_group::iterable_enums::PausableChannelFeature **/ PalletContentPermissionsCuratorGroupIterableEnumsPausableChannelFeature: { _enum: ['ChannelFundsTransfer', 'CreatorCashout', 'VideoNftIssuance', 'VideoCreation', 'VideoUpdate', 'ChannelUpdate', 'CreatorTokenIssuance'] }, /** - * Lookup114: pallet_common::bloat_bond::RepayableBloatBond + * Lookup120: pallet_common::bloat_bond::RepayableBloatBond **/ PalletCommonBloatBondRepayableBloatBond: { repaymentRestrictedTo: 'Option', amount: 'u128' }, /** - * Lookup115: pallet_content::types::ChannelOwner + * Lookup121: pallet_content::types::ChannelOwner **/ PalletContentChannelOwner: { _enum: { @@ -833,7 +922,7 @@ export default { } }, /** - * Lookup116: pallet_content::types::ChannelTransferStatus, S>> + * Lookup122: pallet_content::types::ChannelTransferStatus, S>> **/ PalletContentChannelTransferStatus: { _enum: { @@ -842,14 +931,14 @@ export default { } }, /** - * Lookup117: pallet_content::types::PendingTransfer, S>> + * Lookup123: pallet_content::types::PendingTransfer, S>> **/ PalletContentPendingTransfer: { newOwner: 'PalletContentChannelOwner', transferParams: 'PalletContentTransferCommitmentParametersBoundedBTreeMap' }, /** - * Lookup118: pallet_content::types::TransferCommitmentParameters, S>, Balance, TransferId> + * Lookup124: pallet_content::types::TransferCommitmentParameters, S>, Balance, TransferId> **/ PalletContentTransferCommitmentParametersBoundedBTreeMap: { newCollaborators: 'BTreeMap>', @@ -857,21 +946,21 @@ export default { transferId: 'u64' }, /** - * Lookup119: pallet_content::types::LimitPerPeriod + * Lookup125: pallet_content::types::LimitPerPeriod **/ PalletContentLimitPerPeriod: { limit: 'u64', blockNumberPeriod: 'u32' }, /** - * Lookup120: pallet_content::types::NftCounter + * Lookup126: pallet_content::types::NftCounter **/ PalletContentNftCounter: { counter: 'u64', lastUpdated: 'u32' }, /** - * Lookup121: pallet_content::nft::types::EnglishAuctionParamsRecord + * Lookup127: pallet_content::nft::types::EnglishAuctionParamsRecord **/ PalletContentNftTypesEnglishAuctionParamsRecord: { startingPrice: 'u128', @@ -883,7 +972,7 @@ export default { minBidStep: 'u128' }, /** - * Lookup123: pallet_content::nft::types::OpenAuctionParamsRecord + * Lookup129: pallet_content::nft::types::OpenAuctionParamsRecord **/ PalletContentNftTypesOpenAuctionParamsRecord: { startingPrice: 'u128', @@ -893,7 +982,7 @@ export default { bidLockDuration: 'u32' }, /** - * Lookup124: pallet_content::nft::types::NftIssuanceParametersRecord, pallet_content::nft::types::OpenAuctionParamsRecord, MemberId, Balance>> + * Lookup130: pallet_content::nft::types::NftIssuanceParametersRecord, pallet_content::nft::types::OpenAuctionParamsRecord, MemberId, Balance>> **/ PalletContentNftTypesNftIssuanceParametersRecord: { royalty: 'Option', @@ -902,7 +991,7 @@ export default { initTransactionalStatus: 'PalletContentNftTypesInitTransactionalStatusRecord' }, /** - * Lookup125: pallet_content::nft::types::InitTransactionalStatusRecord, pallet_content::nft::types::OpenAuctionParamsRecord, MemberId, Balance> + * Lookup131: pallet_content::nft::types::InitTransactionalStatusRecord, pallet_content::nft::types::OpenAuctionParamsRecord, MemberId, Balance> **/ PalletContentNftTypesInitTransactionalStatusRecord: { _enum: { @@ -914,7 +1003,7 @@ export default { } }, /** - * Lookup127: pallet_content::types::ChannelCreationParametersRecord, MemberId, StorageBucketId, pallet_storage::DistributionBucketIdRecord, Balance> + * Lookup133: pallet_content::types::ChannelCreationParametersRecord, MemberId, StorageBucketId, pallet_storage::DistributionBucketIdRecord, Balance> **/ PalletContentChannelCreationParametersRecord: { assets: 'Option', @@ -926,14 +1015,14 @@ export default { expectedDataObjectStateBloatBond: 'u128' }, /** - * Lookup128: pallet_content::types::StorageAssetsRecord + * Lookup134: pallet_content::types::StorageAssetsRecord **/ PalletContentStorageAssetsRecord: { objectCreationList: 'Vec', expectedDataSizeFee: 'u128' }, /** - * Lookup130: pallet_storage::DataObjectCreationParameters + * Lookup136: pallet_storage::DataObjectCreationParameters **/ PalletStorageDataObjectCreationParameters: { _alias: { @@ -943,14 +1032,14 @@ export default { ipfsContentId: 'Bytes' }, /** - * Lookup131: pallet_storage::DistributionBucketIdRecord + * Lookup137: pallet_storage::DistributionBucketIdRecord **/ PalletStorageDistributionBucketIdRecord: { distributionBucketFamilyId: 'u64', distributionBucketIndex: 'u64' }, /** - * Lookup138: pallet_content::types::ChannelUpdateParametersRecord, DataObjectId, MemberId, Balance> + * Lookup144: pallet_content::types::ChannelUpdateParametersRecord, DataObjectId, MemberId, Balance> **/ PalletContentChannelUpdateParametersRecord: { assetsToUpload: 'Option', @@ -961,7 +1050,7 @@ export default { storageBucketsNumWitness: 'Option' }, /** - * Lookup140: pallet_content::types::VideoCreationParametersRecord, pallet_content::nft::types::NftIssuanceParametersRecord, pallet_content::nft::types::OpenAuctionParamsRecord, MemberId, Balance>>, Balance> + * Lookup146: pallet_content::types::VideoCreationParametersRecord, pallet_content::nft::types::NftIssuanceParametersRecord, pallet_content::nft::types::OpenAuctionParamsRecord, MemberId, Balance>>, Balance> **/ PalletContentVideoCreationParametersRecord: { assets: 'Option', @@ -972,7 +1061,7 @@ export default { storageBucketsNumWitness: 'u32' }, /** - * Lookup142: pallet_content::types::VideoUpdateParametersRecord, DataObjectId, pallet_content::nft::types::NftIssuanceParametersRecord, pallet_content::nft::types::OpenAuctionParamsRecord, MemberId, Balance>>, Balance> + * Lookup148: pallet_content::types::VideoUpdateParametersRecord, DataObjectId, pallet_content::nft::types::NftIssuanceParametersRecord, pallet_content::nft::types::OpenAuctionParamsRecord, MemberId, Balance>>, Balance> **/ PalletContentVideoUpdateParametersRecord: { assetsToUpload: 'Option', @@ -983,7 +1072,7 @@ export default { storageBucketsNumWitness: 'Option' }, /** - * Lookup145: pallet_content::permissions::curator_group::iterable_enums::ContentModerationAction + * Lookup151: pallet_content::permissions::curator_group::iterable_enums::ContentModerationAction **/ PalletContentPermissionsCuratorGroupIterableEnumsContentModerationAction: { _enum: { @@ -998,7 +1087,7 @@ export default { } }, /** - * Lookup149: pallet_content::types::TransferCommitmentParameters>, Balance, TransferId> + * Lookup155: pallet_content::types::TransferCommitmentParameters>, Balance, TransferId> **/ PalletContentTransferCommitmentParametersBTreeMap: { newCollaborators: 'BTreeMap>', @@ -1006,7 +1095,7 @@ export default { transferId: 'u64' }, /** - * Lookup150: pallet_content::types::UpdateChannelPayoutsParametersRecord, Balance, primitive_types::H256> + * Lookup156: pallet_content::types::UpdateChannelPayoutsParametersRecord, Balance, primitive_types::H256> **/ PalletContentUpdateChannelPayoutsParametersRecord: { commitment: 'Option', @@ -1016,7 +1105,7 @@ export default { channelCashoutsEnabled: 'Option' }, /** - * Lookup151: pallet_content::types::ChannelPayoutsPayloadParametersRecord + * Lookup157: pallet_content::types::ChannelPayoutsPayloadParametersRecord **/ PalletContentChannelPayoutsPayloadParametersRecord: { objectCreationParams: 'PalletStorageDataObjectCreationParameters', @@ -1024,7 +1113,7 @@ export default { expectedDataObjectStateBloatBond: 'u128' }, /** - * Lookup155: pallet_content::types::ChannelFundsDestination + * Lookup161: pallet_content::types::ChannelFundsDestination **/ PalletContentChannelFundsDestination: { _enum: { @@ -1033,13 +1122,13 @@ export default { } }, /** - * Lookup156: pallet_content::types::NftLimitPeriod + * Lookup162: pallet_content::types::NftLimitPeriod **/ PalletContentNftLimitPeriod: { _enum: ['Daily', 'Weekly'] }, /** - * Lookup157: pallet_storage::RawEvent, sp_core::crypto::AccountId32, Balance>, pallet_storage::BagIdType, pallet_storage::DynamicBagIdType, sp_core::crypto::AccountId32, Balance, DistributionBucketFamilyId, pallet_storage::DistributionBucketIdRecord, DistributionBucketIndex, pallet_storage::DynBagCreationParametersRecord, sp_core::crypto::AccountId32, Balance, StorageBucketId, pallet_storage::DistributionBucketIdRecord>> + * Lookup163: pallet_storage::RawEvent, sp_core::crypto::AccountId32, Balance>, pallet_storage::BagIdType, pallet_storage::DynamicBagIdType, sp_core::crypto::AccountId32, Balance, DistributionBucketFamilyId, pallet_storage::DistributionBucketIdRecord, DistributionBucketIndex, pallet_storage::DynBagCreationParametersRecord, sp_core::crypto::AccountId32, Balance, StorageBucketId, pallet_storage::DistributionBucketIdRecord>> **/ PalletStorageRawEvent: { _enum: { @@ -1088,7 +1177,7 @@ export default { } }, /** - * Lookup158: pallet_storage::UploadParametersRecord, sp_core::crypto::AccountId32, Balance> + * Lookup164: pallet_storage::UploadParametersRecord, sp_core::crypto::AccountId32, Balance> **/ PalletStorageUploadParametersRecord: { bagId: 'PalletStorageBagIdType', @@ -1098,7 +1187,7 @@ export default { expectedDataObjectStateBloatBond: 'u128' }, /** - * Lookup159: pallet_storage::BagIdType + * Lookup165: pallet_storage::BagIdType **/ PalletStorageBagIdType: { _enum: { @@ -1107,7 +1196,7 @@ export default { } }, /** - * Lookup160: pallet_storage::StaticBagId + * Lookup166: pallet_storage::StaticBagId **/ PalletStorageStaticBagId: { _enum: { @@ -1116,7 +1205,7 @@ export default { } }, /** - * Lookup161: pallet_storage::DynamicBagIdType + * Lookup167: pallet_storage::DynamicBagIdType **/ PalletStorageDynamicBagIdType: { _enum: { @@ -1125,7 +1214,7 @@ export default { } }, /** - * Lookup162: pallet_storage::DynBagCreationParametersRecord, sp_core::crypto::AccountId32, Balance, StorageBucketId, pallet_storage::DistributionBucketIdRecord> + * Lookup168: pallet_storage::DynBagCreationParametersRecord, sp_core::crypto::AccountId32, Balance, StorageBucketId, pallet_storage::DistributionBucketIdRecord> **/ PalletStorageDynBagCreationParametersRecord: { bagId: 'PalletStorageDynamicBagIdType', @@ -1137,7 +1226,7 @@ export default { distributionBuckets: 'BTreeSet' }, /** - * Lookup165: pallet_storage::Voucher + * Lookup171: pallet_storage::Voucher **/ PalletStorageVoucher: { sizeLimit: 'u64', @@ -1146,13 +1235,13 @@ export default { objectsUsed: 'u64' }, /** - * Lookup166: pallet_storage::DynamicBagType + * Lookup172: pallet_storage::DynamicBagType **/ PalletStorageDynamicBagType: { _enum: ['Member', 'Channel'] }, /** - * Lookup170: pallet_project_token::events::RawEvent, pallet_project_token::types::TokenIssuanceParameters>, pallet_project_token::types::TransferPolicyParams>>, MemberId>, pallet_project_token::types::Transfers, pallet_project_token::types::ValidatedPayment>>>, pallet_project_token::types::TokenSale, MemberId, sp_core::crypto::AccountId32>> + * Lookup176: pallet_project_token::events::RawEvent, pallet_project_token::types::TokenIssuanceParameters>, pallet_project_token::types::TransferPolicyParams>>, MemberId>, pallet_project_token::types::Transfers, pallet_project_token::types::ValidatedPayment>>>, pallet_project_token::types::TokenSale, MemberId, sp_core::crypto::AccountId32>> **/ PalletProjectTokenEventsRawEvent: { _enum: { @@ -1177,7 +1266,7 @@ export default { } }, /** - * Lookup171: pallet_project_token::types::TransferPolicy + * Lookup177: pallet_project_token::types::TransferPolicy **/ PalletProjectTokenTransferPolicy: { _enum: { @@ -1186,7 +1275,7 @@ export default { } }, /** - * Lookup172: pallet_project_token::types::TokenIssuanceParameters>, pallet_project_token::types::TransferPolicyParams>>, MemberId> + * Lookup178: pallet_project_token::types::TokenIssuanceParameters>, pallet_project_token::types::TransferPolicyParams>>, MemberId> **/ PalletProjectTokenTokenIssuanceParameters: { initialAllocation: 'BTreeMap', @@ -1196,14 +1285,14 @@ export default { revenueSplitRate: 'Permill' }, /** - * Lookup173: pallet_project_token::types::TokenAllocation> + * Lookup179: pallet_project_token::types::TokenAllocation> **/ PalletProjectTokenTokenAllocation: { amount: 'u128', vestingScheduleParams: 'Option' }, /** - * Lookup174: pallet_project_token::types::VestingScheduleParams + * Lookup180: pallet_project_token::types::VestingScheduleParams **/ PalletProjectTokenVestingScheduleParams: { linearVestingDuration: 'u32', @@ -1211,7 +1300,7 @@ export default { cliffAmountPercentage: 'Permill' }, /** - * Lookup177: pallet_project_token::types::TransferPolicyParams>> + * Lookup183: pallet_project_token::types::TransferPolicyParams>> **/ PalletProjectTokenTransferPolicyParams: { _enum: { @@ -1220,14 +1309,14 @@ export default { } }, /** - * Lookup178: pallet_project_token::types::WhitelistParams> + * Lookup184: pallet_project_token::types::WhitelistParams> **/ PalletProjectTokenWhitelistParams: { commitment: 'H256', payload: 'Option' }, /** - * Lookup179: pallet_project_token::types::SingleDataObjectUploadParams + * Lookup185: pallet_project_token::types::SingleDataObjectUploadParams **/ PalletProjectTokenSingleDataObjectUploadParams: { objectCreationParams: 'PalletStorageDataObjectCreationParameters', @@ -1235,7 +1324,7 @@ export default { expectedDataObjectStateBloatBond: 'u128' }, /** - * Lookup186: pallet_project_token::types::Validated + * Lookup192: pallet_project_token::types::Validated **/ PalletProjectTokenValidated: { _enum: { @@ -1244,21 +1333,21 @@ export default { } }, /** - * Lookup187: pallet_project_token::types::ValidatedPayment>> + * Lookup193: pallet_project_token::types::ValidatedPayment>> **/ PalletProjectTokenValidatedPayment: { payment: 'PalletProjectTokenPaymentWithVesting', vestingCleanupCandidate: 'Option' }, /** - * Lookup188: pallet_project_token::types::PaymentWithVesting> + * Lookup194: pallet_project_token::types::PaymentWithVesting> **/ PalletProjectTokenPaymentWithVesting: { amount: 'u128', vestingSchedule: 'Option' }, /** - * Lookup190: pallet_project_token::types::VestingSource + * Lookup196: pallet_project_token::types::VestingSource **/ PalletProjectTokenVestingSource: { _enum: { @@ -1268,7 +1357,7 @@ export default { } }, /** - * Lookup194: pallet_project_token::types::TokenSale, MemberId, sp_core::crypto::AccountId32> + * Lookup200: pallet_project_token::types::TokenSale, MemberId, sp_core::crypto::AccountId32> **/ PalletProjectTokenTokenSale: { unitPrice: 'u128', @@ -1283,7 +1372,7 @@ export default { autoFinalize: 'bool' }, /** - * Lookup196: pallet_proposals_engine::RawEvent + * Lookup202: pallet_proposals_engine::RawEvent **/ PalletProposalsEngineRawEvent: { _enum: { @@ -1296,7 +1385,7 @@ export default { } }, /** - * Lookup197: pallet_proposals_engine::types::proposal_statuses::ProposalStatus + * Lookup203: pallet_proposals_engine::types::proposal_statuses::ProposalStatus **/ PalletProposalsEngineProposalStatusesProposalStatus: { _enum: { @@ -1306,7 +1395,7 @@ export default { } }, /** - * Lookup198: pallet_proposals_engine::types::proposal_statuses::ProposalDecision + * Lookup204: pallet_proposals_engine::types::proposal_statuses::ProposalDecision **/ PalletProposalsEngineProposalStatusesProposalDecision: { _enum: { @@ -1320,13 +1409,13 @@ export default { } }, /** - * Lookup199: pallet_proposals_engine::types::proposal_statuses::ApprovedProposalDecision + * Lookup205: pallet_proposals_engine::types::proposal_statuses::ApprovedProposalDecision **/ PalletProposalsEngineProposalStatusesApprovedProposalDecision: { _enum: ['PendingExecution', 'PendingConstitutionality'] }, /** - * Lookup200: pallet_proposals_engine::types::proposal_statuses::ExecutionStatus + * Lookup206: pallet_proposals_engine::types::proposal_statuses::ExecutionStatus **/ PalletProposalsEngineProposalStatusesExecutionStatus: { _enum: { @@ -1337,13 +1426,13 @@ export default { } }, /** - * Lookup201: pallet_proposals_engine::types::VoteKind + * Lookup207: pallet_proposals_engine::types::VoteKind **/ PalletProposalsEngineVoteKind: { _enum: ['Approve', 'Reject', 'Slash', 'Abstain'] }, /** - * Lookup202: pallet_proposals_discussion::RawEvent + * Lookup208: pallet_proposals_discussion::RawEvent **/ PalletProposalsDiscussionRawEvent: { _enum: { @@ -1355,7 +1444,7 @@ export default { } }, /** - * Lookup203: pallet_proposals_discussion::types::ThreadMode> + * Lookup209: pallet_proposals_discussion::types::ThreadMode> **/ PalletProposalsDiscussionThreadModeBTreeSet: { _enum: { @@ -1364,7 +1453,7 @@ export default { } }, /** - * Lookup204: pallet_proposals_codex::RawEvent, pallet_proposals_codex::types::ProposalDetails, Balance, primitive_types::H256>>, ProposalId, ThreadId> + * Lookup210: pallet_proposals_codex::RawEvent, pallet_proposals_codex::types::ProposalDetails, Balance, primitive_types::H256>>, ProposalId, ThreadId> **/ PalletProposalsCodexRawEvent: { _enum: { @@ -1372,7 +1461,7 @@ export default { } }, /** - * Lookup205: pallet_proposals_codex::types::GeneralProposalParams + * Lookup211: pallet_proposals_codex::types::GeneralProposalParams **/ PalletProposalsCodexGeneralProposalParams: { memberId: 'u64', @@ -1382,7 +1471,7 @@ export default { exactExecutionBlock: 'Option' }, /** - * Lookup206: pallet_proposals_codex::types::ProposalDetails, Balance, primitive_types::H256>> + * Lookup212: pallet_proposals_codex::types::ProposalDetails, Balance, primitive_types::H256>> **/ PalletProposalsCodexProposalDetails: { _enum: { @@ -1412,14 +1501,14 @@ export default { } }, /** - * Lookup208: pallet_common::FundingRequestParameters + * Lookup214: pallet_common::FundingRequestParameters **/ PalletCommonFundingRequestParameters: { account: 'AccountId32', amount: 'u128' }, /** - * Lookup209: pallet_proposals_codex::types::CreateOpeningParameters + * Lookup215: pallet_proposals_codex::types::CreateOpeningParameters **/ PalletProposalsCodexCreateOpeningParameters: { description: 'Bytes', @@ -1428,14 +1517,14 @@ export default { group: 'PalletCommonWorkingGroupIterableEnumsWorkingGroup' }, /** - * Lookup210: pallet_working_group::types::StakePolicy + * Lookup216: pallet_working_group::types::StakePolicy **/ PalletWorkingGroupStakePolicy: { stakeAmount: 'u128', leavingUnstakingPeriod: 'u32' }, /** - * Lookup211: pallet_proposals_codex::types::FillOpeningParameters + * Lookup217: pallet_proposals_codex::types::FillOpeningParameters **/ PalletProposalsCodexFillOpeningParameters: { openingId: 'u64', @@ -1443,7 +1532,7 @@ export default { workingGroup: 'PalletCommonWorkingGroupIterableEnumsWorkingGroup' }, /** - * Lookup212: pallet_proposals_codex::types::TerminateRoleParameters + * Lookup218: pallet_proposals_codex::types::TerminateRoleParameters **/ PalletProposalsCodexTerminateRoleParameters: { workerId: 'u64', @@ -1451,7 +1540,7 @@ export default { group: 'PalletCommonWorkingGroupIterableEnumsWorkingGroup' }, /** - * Lookup213: pallet_working_group::RawEvent, WorkerId, sp_core::crypto::AccountId32, Balance, pallet_working_group::types::OpeningType, pallet_working_group::types::StakePolicy, pallet_working_group::types::ApplyOnOpeningParams, MemberId, primitive_types::H256, pallet_working_group::Instance1> + * Lookup219: pallet_working_group::RawEvent, WorkerId, sp_core::crypto::AccountId32, Balance, pallet_working_group::types::OpeningType, pallet_working_group::types::StakePolicy, pallet_working_group::types::ApplyOnOpeningParams, MemberId, primitive_types::H256, pallet_working_group::Instance1> **/ PalletWorkingGroupRawEventInstance1: { _enum: { @@ -1483,13 +1572,13 @@ export default { } }, /** - * Lookup217: pallet_working_group::types::OpeningType + * Lookup223: pallet_working_group::types::OpeningType **/ PalletWorkingGroupOpeningType: { _enum: ['Leader', 'Regular'] }, /** - * Lookup218: pallet_working_group::types::ApplyOnOpeningParams + * Lookup224: pallet_working_group::types::ApplyOnOpeningParams **/ PalletWorkingGroupApplyOnOpeningParams: { memberId: 'u64', @@ -1500,24 +1589,24 @@ export default { stakeParameters: 'PalletWorkingGroupStakeParameters' }, /** - * Lookup219: pallet_working_group::types::StakeParameters + * Lookup225: pallet_working_group::types::StakeParameters **/ PalletWorkingGroupStakeParameters: { stake: 'u128', stakingAccountId: 'AccountId32' }, /** - * Lookup220: pallet_working_group::Instance1 + * Lookup226: pallet_working_group::Instance1 **/ PalletWorkingGroupInstance1: 'Null', /** - * Lookup221: pallet_working_group::types::RewardPaymentType + * Lookup227: pallet_working_group::types::RewardPaymentType **/ PalletWorkingGroupRewardPaymentType: { _enum: ['MissedReward', 'RegularReward'] }, /** - * Lookup222: pallet_working_group::RawEvent, WorkerId, sp_core::crypto::AccountId32, Balance, pallet_working_group::types::OpeningType, pallet_working_group::types::StakePolicy, pallet_working_group::types::ApplyOnOpeningParams, MemberId, primitive_types::H256, pallet_working_group::Instance2> + * Lookup228: pallet_working_group::RawEvent, WorkerId, sp_core::crypto::AccountId32, Balance, pallet_working_group::types::OpeningType, pallet_working_group::types::StakePolicy, pallet_working_group::types::ApplyOnOpeningParams, MemberId, primitive_types::H256, pallet_working_group::Instance2> **/ PalletWorkingGroupRawEventInstance2: { _enum: { @@ -1549,11 +1638,11 @@ export default { } }, /** - * Lookup223: pallet_working_group::Instance2 + * Lookup229: pallet_working_group::Instance2 **/ PalletWorkingGroupInstance2: 'Null', /** - * Lookup224: pallet_working_group::RawEvent, WorkerId, sp_core::crypto::AccountId32, Balance, pallet_working_group::types::OpeningType, pallet_working_group::types::StakePolicy, pallet_working_group::types::ApplyOnOpeningParams, MemberId, primitive_types::H256, pallet_working_group::Instance3> + * Lookup230: pallet_working_group::RawEvent, WorkerId, sp_core::crypto::AccountId32, Balance, pallet_working_group::types::OpeningType, pallet_working_group::types::StakePolicy, pallet_working_group::types::ApplyOnOpeningParams, MemberId, primitive_types::H256, pallet_working_group::Instance3> **/ PalletWorkingGroupRawEventInstance3: { _enum: { @@ -1585,11 +1674,11 @@ export default { } }, /** - * Lookup225: pallet_working_group::Instance3 + * Lookup231: pallet_working_group::Instance3 **/ PalletWorkingGroupInstance3: 'Null', /** - * Lookup226: pallet_working_group::RawEvent, WorkerId, sp_core::crypto::AccountId32, Balance, pallet_working_group::types::OpeningType, pallet_working_group::types::StakePolicy, pallet_working_group::types::ApplyOnOpeningParams, MemberId, primitive_types::H256, pallet_working_group::Instance4> + * Lookup232: pallet_working_group::RawEvent, WorkerId, sp_core::crypto::AccountId32, Balance, pallet_working_group::types::OpeningType, pallet_working_group::types::StakePolicy, pallet_working_group::types::ApplyOnOpeningParams, MemberId, primitive_types::H256, pallet_working_group::Instance4> **/ PalletWorkingGroupRawEventInstance4: { _enum: { @@ -1621,11 +1710,11 @@ export default { } }, /** - * Lookup227: pallet_working_group::Instance4 + * Lookup233: pallet_working_group::Instance4 **/ PalletWorkingGroupInstance4: 'Null', /** - * Lookup228: pallet_working_group::RawEvent, WorkerId, sp_core::crypto::AccountId32, Balance, pallet_working_group::types::OpeningType, pallet_working_group::types::StakePolicy, pallet_working_group::types::ApplyOnOpeningParams, MemberId, primitive_types::H256, pallet_working_group::Instance5> + * Lookup234: pallet_working_group::RawEvent, WorkerId, sp_core::crypto::AccountId32, Balance, pallet_working_group::types::OpeningType, pallet_working_group::types::StakePolicy, pallet_working_group::types::ApplyOnOpeningParams, MemberId, primitive_types::H256, pallet_working_group::Instance5> **/ PalletWorkingGroupRawEventInstance5: { _enum: { @@ -1657,11 +1746,11 @@ export default { } }, /** - * Lookup229: pallet_working_group::Instance5 + * Lookup235: pallet_working_group::Instance5 **/ PalletWorkingGroupInstance5: 'Null', /** - * Lookup230: pallet_working_group::RawEvent, WorkerId, sp_core::crypto::AccountId32, Balance, pallet_working_group::types::OpeningType, pallet_working_group::types::StakePolicy, pallet_working_group::types::ApplyOnOpeningParams, MemberId, primitive_types::H256, pallet_working_group::Instance6> + * Lookup236: pallet_working_group::RawEvent, WorkerId, sp_core::crypto::AccountId32, Balance, pallet_working_group::types::OpeningType, pallet_working_group::types::StakePolicy, pallet_working_group::types::ApplyOnOpeningParams, MemberId, primitive_types::H256, pallet_working_group::Instance6> **/ PalletWorkingGroupRawEventInstance6: { _enum: { @@ -1693,11 +1782,11 @@ export default { } }, /** - * Lookup231: pallet_working_group::Instance6 + * Lookup237: pallet_working_group::Instance6 **/ PalletWorkingGroupInstance6: 'Null', /** - * Lookup232: pallet_working_group::RawEvent, WorkerId, sp_core::crypto::AccountId32, Balance, pallet_working_group::types::OpeningType, pallet_working_group::types::StakePolicy, pallet_working_group::types::ApplyOnOpeningParams, MemberId, primitive_types::H256, pallet_working_group::Instance7> + * Lookup238: pallet_working_group::RawEvent, WorkerId, sp_core::crypto::AccountId32, Balance, pallet_working_group::types::OpeningType, pallet_working_group::types::StakePolicy, pallet_working_group::types::ApplyOnOpeningParams, MemberId, primitive_types::H256, pallet_working_group::Instance7> **/ PalletWorkingGroupRawEventInstance7: { _enum: { @@ -1729,11 +1818,11 @@ export default { } }, /** - * Lookup233: pallet_working_group::Instance7 + * Lookup239: pallet_working_group::Instance7 **/ PalletWorkingGroupInstance7: 'Null', /** - * Lookup234: pallet_working_group::RawEvent, WorkerId, sp_core::crypto::AccountId32, Balance, pallet_working_group::types::OpeningType, pallet_working_group::types::StakePolicy, pallet_working_group::types::ApplyOnOpeningParams, MemberId, primitive_types::H256, pallet_working_group::Instance8> + * Lookup240: pallet_working_group::RawEvent, WorkerId, sp_core::crypto::AccountId32, Balance, pallet_working_group::types::OpeningType, pallet_working_group::types::StakePolicy, pallet_working_group::types::ApplyOnOpeningParams, MemberId, primitive_types::H256, pallet_working_group::Instance8> **/ PalletWorkingGroupRawEventInstance8: { _enum: { @@ -1765,11 +1854,11 @@ export default { } }, /** - * Lookup235: pallet_working_group::Instance8 + * Lookup241: pallet_working_group::Instance8 **/ PalletWorkingGroupInstance8: 'Null', /** - * Lookup236: pallet_working_group::RawEvent, WorkerId, sp_core::crypto::AccountId32, Balance, pallet_working_group::types::OpeningType, pallet_working_group::types::StakePolicy, pallet_working_group::types::ApplyOnOpeningParams, MemberId, primitive_types::H256, pallet_working_group::Instance9> + * Lookup242: pallet_working_group::RawEvent, WorkerId, sp_core::crypto::AccountId32, Balance, pallet_working_group::types::OpeningType, pallet_working_group::types::StakePolicy, pallet_working_group::types::ApplyOnOpeningParams, MemberId, primitive_types::H256, pallet_working_group::Instance9> **/ PalletWorkingGroupRawEventInstance9: { _enum: { @@ -1801,11 +1890,11 @@ export default { } }, /** - * Lookup237: pallet_working_group::Instance9 + * Lookup243: pallet_working_group::Instance9 **/ PalletWorkingGroupInstance9: 'Null', /** - * Lookup238: frame_system::Phase + * Lookup244: frame_system::Phase **/ FrameSystemPhase: { _enum: { @@ -1815,20 +1904,17 @@ export default { } }, /** - * Lookup242: frame_system::LastRuntimeUpgradeInfo + * Lookup248: frame_system::LastRuntimeUpgradeInfo **/ FrameSystemLastRuntimeUpgradeInfo: { specVersion: 'Compact', specName: 'Text' }, /** - * Lookup245: frame_system::pallet::Call + * Lookup251: frame_system::pallet::Call **/ FrameSystemCall: { _enum: { - fill_block: { - ratio: 'Perbill', - }, remark: { remark: 'Bytes', }, @@ -1860,53 +1946,53 @@ export default { } }, /** - * Lookup248: frame_system::limits::BlockWeights + * Lookup254: frame_system::limits::BlockWeights **/ FrameSystemLimitsBlockWeights: { - baseBlock: 'u64', - maxBlock: 'u64', - perClass: 'FrameSupportWeightsPerDispatchClassWeightsPerClass' + baseBlock: 'SpWeightsWeightV2Weight', + maxBlock: 'SpWeightsWeightV2Weight', + perClass: 'FrameSupportDispatchPerDispatchClassWeightsPerClass' }, /** - * Lookup249: frame_support::weights::PerDispatchClass + * Lookup255: frame_support::dispatch::PerDispatchClass **/ - FrameSupportWeightsPerDispatchClassWeightsPerClass: { + FrameSupportDispatchPerDispatchClassWeightsPerClass: { normal: 'FrameSystemLimitsWeightsPerClass', operational: 'FrameSystemLimitsWeightsPerClass', mandatory: 'FrameSystemLimitsWeightsPerClass' }, /** - * Lookup250: frame_system::limits::WeightsPerClass + * Lookup256: frame_system::limits::WeightsPerClass **/ FrameSystemLimitsWeightsPerClass: { - baseExtrinsic: 'u64', - maxExtrinsic: 'Option', - maxTotal: 'Option', - reserved: 'Option' + baseExtrinsic: 'SpWeightsWeightV2Weight', + maxExtrinsic: 'Option', + maxTotal: 'Option', + reserved: 'Option' }, /** - * Lookup251: frame_system::limits::BlockLength + * Lookup258: frame_system::limits::BlockLength **/ FrameSystemLimitsBlockLength: { - max: 'FrameSupportWeightsPerDispatchClassU32' + max: 'FrameSupportDispatchPerDispatchClassU32' }, /** - * Lookup252: frame_support::weights::PerDispatchClass + * Lookup259: frame_support::dispatch::PerDispatchClass **/ - FrameSupportWeightsPerDispatchClassU32: { + FrameSupportDispatchPerDispatchClassU32: { normal: 'u32', operational: 'u32', mandatory: 'u32' }, /** - * Lookup253: frame_support::weights::RuntimeDbWeight + * Lookup260: sp_weights::RuntimeDbWeight **/ - FrameSupportWeightsRuntimeDbWeight: { + SpWeightsRuntimeDbWeight: { read: 'u64', write: 'u64' }, /** - * Lookup254: sp_version::RuntimeVersion + * Lookup261: sp_version::RuntimeVersion **/ SpVersionRuntimeVersion: { specName: 'Text', @@ -1919,13 +2005,13 @@ export default { stateVersion: 'u8' }, /** - * Lookup260: frame_system::pallet::Error + * Lookup267: frame_system::pallet::Error **/ FrameSystemError: { _enum: ['InvalidSpecName', 'SpecVersionNeedsToIncrease', 'FailedToExtractRuntimeVersion', 'NonDefaultComposite', 'NonZeroRefCount', 'CallFiltered'] }, /** - * Lookup261: pallet_utility::pallet::Call + * Lookup268: pallet_utility::pallet::Call **/ PalletUtilityCall: { _enum: { @@ -1944,12 +2030,16 @@ export default { call: 'Call', }, force_batch: { - calls: 'Vec' + calls: 'Vec', + }, + with_weight: { + call: 'Call', + weight: 'SpWeightsWeightV2Weight' } } }, /** - * Lookup264: pallet_babe::pallet::Call + * Lookup271: pallet_babe::pallet::Call **/ PalletBabeCall: { _enum: { @@ -1967,7 +2057,7 @@ export default { } }, /** - * Lookup265: sp_consensus_slots::EquivocationProof, sp_consensus_babe::app::Public> + * Lookup272: sp_consensus_slots::EquivocationProof, sp_consensus_babe::app::Public> **/ SpConsensusSlotsEquivocationProof: { offender: 'SpConsensusBabeAppPublic', @@ -1976,7 +2066,7 @@ export default { secondHeader: 'SpRuntimeHeader' }, /** - * Lookup266: sp_runtime::generic::header::Header + * Lookup273: sp_runtime::generic::header::Header **/ SpRuntimeHeader: { parentHash: 'H256', @@ -1986,15 +2076,15 @@ export default { digest: 'SpRuntimeDigest' }, /** - * Lookup267: sp_runtime::traits::BlakeTwo256 + * Lookup274: sp_runtime::traits::BlakeTwo256 **/ SpRuntimeBlakeTwo256: 'Null', /** - * Lookup268: sp_consensus_babe::app::Public + * Lookup275: sp_consensus_babe::app::Public **/ SpConsensusBabeAppPublic: 'SpCoreSr25519Public', /** - * Lookup270: sp_session::MembershipProof + * Lookup277: sp_session::MembershipProof **/ SpSessionMembershipProof: { session: 'u32', @@ -2002,7 +2092,7 @@ export default { validatorCount: 'u32' }, /** - * Lookup271: sp_consensus_babe::digests::NextConfigDescriptor + * Lookup278: sp_consensus_babe::digests::NextConfigDescriptor **/ SpConsensusBabeDigestsNextConfigDescriptor: { _enum: { @@ -2014,13 +2104,13 @@ export default { } }, /** - * Lookup272: sp_consensus_babe::AllowedSlots + * Lookup279: sp_consensus_babe::AllowedSlots **/ SpConsensusBabeAllowedSlots: { _enum: ['PrimarySlots', 'PrimaryAndSecondaryPlainSlots', 'PrimaryAndSecondaryVRFSlots'] }, /** - * Lookup273: pallet_timestamp::pallet::Call + * Lookup280: pallet_timestamp::pallet::Call **/ PalletTimestampCall: { _enum: { @@ -2030,17 +2120,7 @@ export default { } }, /** - * Lookup275: pallet_authorship::pallet::Call - **/ - PalletAuthorshipCall: { - _enum: { - set_uncles: { - newUncles: 'Vec' - } - } - }, - /** - * Lookup277: pallet_balances::pallet::Call + * Lookup281: pallet_balances::pallet::Call **/ PalletBalancesCall: { _enum: { @@ -2073,7 +2153,7 @@ export default { } }, /** - * Lookup278: pallet_election_provider_multi_phase::pallet::Call + * Lookup282: pallet_election_provider_multi_phase::pallet::Call **/ PalletElectionProviderMultiPhaseCall: { _enum: { @@ -2097,7 +2177,7 @@ export default { } }, /** - * Lookup279: pallet_election_provider_multi_phase::RawSolution + * Lookup283: pallet_election_provider_multi_phase::RawSolution **/ PalletElectionProviderMultiPhaseRawSolution: { solution: 'JoystreamNodeRuntimeNposSolution16', @@ -2105,7 +2185,7 @@ export default { round: 'u32' }, /** - * Lookup280: joystream_node_runtime::NposSolution16 + * Lookup284: joystream_node_runtime::NposSolution16 **/ JoystreamNodeRuntimeNposSolution16: { votes1: 'Vec<(Compact,Compact)>', @@ -2126,29 +2206,21 @@ export default { votes16: 'Vec<(Compact,[(Compact,Compact);15],Compact)>' }, /** - * Lookup331: sp_npos_elections::ElectionScore - **/ - SpNposElectionsElectionScore: { - minimalStake: 'u128', - sumStake: 'u128', - sumStakeSquared: 'u128' - }, - /** - * Lookup332: pallet_election_provider_multi_phase::SolutionOrSnapshotSize + * Lookup335: pallet_election_provider_multi_phase::SolutionOrSnapshotSize **/ PalletElectionProviderMultiPhaseSolutionOrSnapshotSize: { voters: 'Compact', targets: 'Compact' }, /** - * Lookup336: sp_npos_elections::Support + * Lookup339: sp_npos_elections::Support **/ SpNposElectionsSupport: { total: 'u128', voters: 'Vec<(AccountId32,u128)>' }, /** - * Lookup338: pallet_staking::pallet::pallet::Call + * Lookup341: pallet_staking::pallet::pallet::Call **/ PalletStakingPalletCall: { _enum: { @@ -2212,10 +2284,6 @@ export default { rebond: { value: 'Compact', }, - set_history_depth: { - newHistoryDepth: 'Compact', - eraItemsDeleted: 'Compact', - }, reap_stash: { stash: 'AccountId32', numSlashingSpans: 'u32', @@ -2235,12 +2303,18 @@ export default { controller: 'AccountId32', }, force_apply_min_commission: { - validatorStash: 'AccountId32' + validatorStash: 'AccountId32', + }, + set_min_commission: { + _alias: { + new_: 'new', + }, + new_: 'Perbill' } } }, /** - * Lookup339: pallet_staking::RewardDestination + * Lookup342: pallet_staking::RewardDestination **/ PalletStakingRewardDestination: { _enum: { @@ -2252,7 +2326,7 @@ export default { } }, /** - * Lookup343: pallet_staking::pallet::pallet::ConfigOp + * Lookup346: pallet_staking::pallet::pallet::ConfigOp **/ PalletStakingPalletConfigOpU128: { _enum: { @@ -2262,7 +2336,7 @@ export default { } }, /** - * Lookup344: pallet_staking::pallet::pallet::ConfigOp + * Lookup347: pallet_staking::pallet::pallet::ConfigOp **/ PalletStakingPalletConfigOpU32: { _enum: { @@ -2272,7 +2346,7 @@ export default { } }, /** - * Lookup345: pallet_staking::pallet::pallet::ConfigOp + * Lookup348: pallet_staking::pallet::pallet::ConfigOp **/ PalletStakingPalletConfigOpPercent: { _enum: { @@ -2282,7 +2356,7 @@ export default { } }, /** - * Lookup346: pallet_staking::pallet::pallet::ConfigOp + * Lookup349: pallet_staking::pallet::pallet::ConfigOp **/ PalletStakingPalletConfigOpPerbill: { _enum: { @@ -2292,7 +2366,7 @@ export default { } }, /** - * Lookup347: pallet_session::pallet::Call + * Lookup350: pallet_session::pallet::Call **/ PalletSessionCall: { _enum: { @@ -2307,7 +2381,7 @@ export default { } }, /** - * Lookup348: joystream_node_runtime::SessionKeys + * Lookup351: joystream_node_runtime::SessionKeys **/ JoystreamNodeRuntimeSessionKeys: { grandpa: 'SpFinalityGrandpaAppPublic', @@ -2316,11 +2390,11 @@ export default { authorityDiscovery: 'SpAuthorityDiscoveryAppPublic' }, /** - * Lookup349: sp_authority_discovery::app::Public + * Lookup352: sp_authority_discovery::app::Public **/ SpAuthorityDiscoveryAppPublic: 'SpCoreSr25519Public', /** - * Lookup350: pallet_grandpa::pallet::Call + * Lookup353: pallet_grandpa::pallet::Call **/ PalletGrandpaCall: { _enum: { @@ -2339,14 +2413,14 @@ export default { } }, /** - * Lookup351: sp_finality_grandpa::EquivocationProof + * Lookup354: sp_finality_grandpa::EquivocationProof **/ SpFinalityGrandpaEquivocationProof: { setId: 'u64', equivocation: 'SpFinalityGrandpaEquivocation' }, /** - * Lookup352: sp_finality_grandpa::Equivocation + * Lookup355: sp_finality_grandpa::Equivocation **/ SpFinalityGrandpaEquivocation: { _enum: { @@ -2355,7 +2429,7 @@ export default { } }, /** - * Lookup353: finality_grandpa::Equivocation, sp_finality_grandpa::app::Signature> + * Lookup356: finality_grandpa::Equivocation, sp_finality_grandpa::app::Signature> **/ FinalityGrandpaEquivocationPrevote: { roundNumber: 'u64', @@ -2364,22 +2438,22 @@ export default { second: '(FinalityGrandpaPrevote,SpFinalityGrandpaAppSignature)' }, /** - * Lookup354: finality_grandpa::Prevote + * Lookup357: finality_grandpa::Prevote **/ FinalityGrandpaPrevote: { targetHash: 'H256', targetNumber: 'u32' }, /** - * Lookup355: sp_finality_grandpa::app::Signature + * Lookup358: sp_finality_grandpa::app::Signature **/ SpFinalityGrandpaAppSignature: 'SpCoreEd25519Signature', /** - * Lookup356: sp_core::ed25519::Signature + * Lookup359: sp_core::ed25519::Signature **/ SpCoreEd25519Signature: '[u8;64]', /** - * Lookup359: finality_grandpa::Equivocation, sp_finality_grandpa::app::Signature> + * Lookup362: finality_grandpa::Equivocation, sp_finality_grandpa::app::Signature> **/ FinalityGrandpaEquivocationPrecommit: { roundNumber: 'u64', @@ -2388,14 +2462,14 @@ export default { second: '(FinalityGrandpaPrecommit,SpFinalityGrandpaAppSignature)' }, /** - * Lookup360: finality_grandpa::Precommit + * Lookup363: finality_grandpa::Precommit **/ FinalityGrandpaPrecommit: { targetHash: 'H256', targetNumber: 'u32' }, /** - * Lookup362: pallet_im_online::pallet::Call + * Lookup365: pallet_im_online::pallet::Call **/ PalletImOnlineCall: { _enum: { @@ -2406,7 +2480,7 @@ export default { } }, /** - * Lookup363: pallet_im_online::Heartbeat + * Lookup366: pallet_im_online::Heartbeat **/ PalletImOnlineHeartbeat: { blockNumber: 'u32', @@ -2416,22 +2490,22 @@ export default { validatorsLen: 'u32' }, /** - * Lookup364: sp_core::offchain::OpaqueNetworkState + * Lookup367: sp_core::offchain::OpaqueNetworkState **/ SpCoreOffchainOpaqueNetworkState: { peerId: 'Bytes', externalAddresses: 'Vec' }, /** - * Lookup368: pallet_im_online::sr25519::app_sr25519::Signature + * Lookup371: pallet_im_online::sr25519::app_sr25519::Signature **/ PalletImOnlineSr25519AppSr25519Signature: 'SpCoreSr25519Signature', /** - * Lookup369: sp_core::sr25519::Signature + * Lookup372: sp_core::sr25519::Signature **/ SpCoreSr25519Signature: '[u8;64]', /** - * Lookup370: pallet_bags_list::pallet::Call + * Lookup373: pallet_bags_list::pallet::Call **/ PalletBagsListCall: { _enum: { @@ -2444,7 +2518,7 @@ export default { } }, /** - * Lookup371: pallet_vesting::pallet::Call + * Lookup374: pallet_vesting::pallet::Call **/ PalletVestingCall: { _enum: { @@ -2468,7 +2542,7 @@ export default { } }, /** - * Lookup372: pallet_vesting::vesting_info::VestingInfo + * Lookup375: pallet_vesting::vesting_info::VestingInfo **/ PalletVestingVestingInfo: { locked: 'u128', @@ -2476,7 +2550,7 @@ export default { startingBlock: 'u32' }, /** - * Lookup373: pallet_multisig::pallet::Call + * Lookup376: pallet_multisig::pallet::Call **/ PalletMultisigCall: { _enum: { @@ -2488,16 +2562,15 @@ export default { threshold: 'u16', otherSignatories: 'Vec', maybeTimepoint: 'Option', - call: 'WrapperKeepOpaque', - storeCall: 'bool', - maxWeight: 'u64', + call: 'Call', + maxWeight: 'SpWeightsWeightV2Weight', }, approve_as_multi: { threshold: 'u16', otherSignatories: 'Vec', maybeTimepoint: 'Option', callHash: '[u8;32]', - maxWeight: 'u64', + maxWeight: 'SpWeightsWeightV2Weight', }, cancel_as_multi: { threshold: 'u16', @@ -2508,7 +2581,7 @@ export default { } }, /** - * Lookup376: pallet_council::Call + * Lookup378: pallet_council::Call **/ PalletCouncilCall: { _enum: { @@ -2559,7 +2632,7 @@ export default { } }, /** - * Lookup377: pallet_referendum::Call + * Lookup379: pallet_referendum::Call **/ PalletReferendumCall: { _enum: { @@ -2576,7 +2649,7 @@ export default { } }, /** - * Lookup378: pallet_membership::Call + * Lookup380: pallet_membership::Call **/ PalletMembershipCall: { _enum: { @@ -2645,7 +2718,7 @@ export default { } }, /** - * Lookup379: pallet_forum::Call + * Lookup381: pallet_forum::Call **/ PalletForumCall: { _enum: { @@ -2742,7 +2815,7 @@ export default { } }, /** - * Lookup380: pallet_constitution::Call + * Lookup382: pallet_constitution::Call **/ PalletConstitutionCall: { _enum: { @@ -2752,7 +2825,7 @@ export default { } }, /** - * Lookup381: pallet_bounty::Call + * Lookup383: pallet_bounty::Call **/ PalletBountyCall: { _enum: { @@ -2828,7 +2901,7 @@ export default { } }, /** - * Lookup383: pallet_content::Call + * Lookup385: pallet_content::Call **/ PalletContentCall: { _enum: { @@ -3142,14 +3215,14 @@ export default { } }, /** - * Lookup384: pallet_content::types::ChannelBagWitness + * Lookup386: pallet_content::types::ChannelBagWitness **/ PalletContentChannelBagWitness: { storageBucketsNum: 'u32', distributionBucketsNum: 'u32' }, /** - * Lookup386: pallet_common::merkle_tree::ProofElementRecord + * Lookup388: pallet_common::merkle_tree::ProofElementRecord **/ PalletCommonMerkleTreeProofElementRecord: { _alias: { @@ -3159,13 +3232,13 @@ export default { side: 'PalletCommonMerkleTreeSide' }, /** - * Lookup387: pallet_common::merkle_tree::Side + * Lookup389: pallet_common::merkle_tree::Side **/ PalletCommonMerkleTreeSide: { _enum: ['Left', 'Right'] }, /** - * Lookup388: pallet_content::types::PullPaymentElement + * Lookup390: pallet_content::types::PullPaymentElement **/ PalletContentPullPaymentElement: { channelId: 'u64', @@ -3173,7 +3246,7 @@ export default { reason: 'H256' }, /** - * Lookup389: pallet_content::types::InitTransferParameters + * Lookup391: pallet_content::types::InitTransferParameters **/ PalletContentInitTransferParameters: { newCollaborators: 'BTreeMap>', @@ -3181,7 +3254,7 @@ export default { newOwner: 'PalletContentChannelOwner' }, /** - * Lookup390: pallet_project_token::types::TokenSaleParams> + * Lookup392: pallet_project_token::types::TokenSaleParams> **/ PalletProjectTokenTokenSaleParams: { unitPrice: 'u128', @@ -3193,11 +3266,11 @@ export default { metadata: 'Option' }, /** - * Lookup391: pallet_project_token::types::Transfers>> + * Lookup393: pallet_project_token::types::Transfers>> **/ PalletProjectTokenTransfersPaymentWithVesting: 'BTreeMap', /** - * Lookup395: pallet_storage::Call + * Lookup397: pallet_storage::Call **/ PalletStorageCall: { _enum: { @@ -3344,7 +3417,7 @@ export default { } }, /** - * Lookup396: pallet_project_token::Call + * Lookup398: pallet_project_token::Call **/ PalletProjectTokenCall: { _enum: { @@ -3385,27 +3458,27 @@ export default { } }, /** - * Lookup397: pallet_project_token::types::Transfers> + * Lookup399: pallet_project_token::types::Transfers> **/ PalletProjectTokenTransfersPayment: 'BTreeMap', /** - * Lookup398: pallet_project_token::types::Payment + * Lookup400: pallet_project_token::types::Payment **/ PalletProjectTokenPayment: { amount: 'u128' }, /** - * Lookup402: pallet_project_token::types::MerkleProof + * Lookup404: pallet_project_token::types::MerkleProof **/ PalletProjectTokenMerkleProof: 'Vec<(H256,PalletProjectTokenMerkleSide)>', /** - * Lookup405: pallet_project_token::types::MerkleSide + * Lookup407: pallet_project_token::types::MerkleSide **/ PalletProjectTokenMerkleSide: { _enum: ['Right', 'Left'] }, /** - * Lookup406: pallet_proposals_engine::Call + * Lookup408: pallet_proposals_engine::Call **/ PalletProposalsEngineCall: { _enum: { @@ -3430,7 +3503,7 @@ export default { } }, /** - * Lookup407: pallet_proposals_discussion::Call + * Lookup409: pallet_proposals_discussion::Call **/ PalletProposalsDiscussionCall: { _enum: { @@ -3459,7 +3532,7 @@ export default { } }, /** - * Lookup408: pallet_proposals_codex::Call + * Lookup410: pallet_proposals_codex::Call **/ PalletProposalsCodexCall: { _enum: { @@ -3470,7 +3543,7 @@ export default { } }, /** - * Lookup409: pallet_working_group::Call + * Lookup411: pallet_working_group::Call **/ PalletWorkingGroupCall: { _enum: { @@ -3553,7 +3626,7 @@ export default { } }, /** - * Lookup418: joystream_node_runtime::OriginCaller + * Lookup420: joystream_node_runtime::OriginCaller **/ JoystreamNodeRuntimeOriginCaller: { _enum: { @@ -3562,7 +3635,7 @@ export default { } }, /** - * Lookup419: frame_support::dispatch::RawOrigin + * Lookup421: frame_support::dispatch::RawOrigin **/ FrameSupportDispatchRawOrigin: { _enum: { @@ -3572,17 +3645,17 @@ export default { } }, /** - * Lookup420: sp_core::Void + * Lookup422: sp_core::Void **/ SpCoreVoid: 'Null', /** - * Lookup421: pallet_utility::pallet::Error + * Lookup423: pallet_utility::pallet::Error **/ PalletUtilityError: { _enum: ['TooManyCalls'] }, /** - * Lookup428: sp_consensus_babe::digests::PreDigest + * Lookup430: sp_consensus_babe::digests::PreDigest **/ SpConsensusBabeDigestsPreDigest: { _enum: { @@ -3593,7 +3666,7 @@ export default { } }, /** - * Lookup429: sp_consensus_babe::digests::PrimaryPreDigest + * Lookup431: sp_consensus_babe::digests::PrimaryPreDigest **/ SpConsensusBabeDigestsPrimaryPreDigest: { authorityIndex: 'u32', @@ -3602,14 +3675,14 @@ export default { vrfProof: '[u8;64]' }, /** - * Lookup430: sp_consensus_babe::digests::SecondaryPlainPreDigest + * Lookup432: sp_consensus_babe::digests::SecondaryPlainPreDigest **/ SpConsensusBabeDigestsSecondaryPlainPreDigest: { authorityIndex: 'u32', slot: 'u64' }, /** - * Lookup431: sp_consensus_babe::digests::SecondaryVRFPreDigest + * Lookup433: sp_consensus_babe::digests::SecondaryVRFPreDigest **/ SpConsensusBabeDigestsSecondaryVRFPreDigest: { authorityIndex: 'u32', @@ -3618,33 +3691,18 @@ export default { vrfProof: '[u8;64]' }, /** - * Lookup433: sp_consensus_babe::BabeEpochConfiguration + * Lookup435: sp_consensus_babe::BabeEpochConfiguration **/ SpConsensusBabeBabeEpochConfiguration: { c: '(u64,u64)', allowedSlots: 'SpConsensusBabeAllowedSlots' }, /** - * Lookup434: pallet_babe::pallet::Error + * Lookup437: pallet_babe::pallet::Error **/ PalletBabeError: { _enum: ['InvalidEquivocationProof', 'InvalidKeyOwnershipProof', 'DuplicateOffenceReport', 'InvalidConfiguration'] }, - /** - * Lookup436: pallet_authorship::UncleEntryItem - **/ - PalletAuthorshipUncleEntryItem: { - _enum: { - InclusionHeight: 'u32', - Uncle: '(H256,Option)' - } - }, - /** - * Lookup437: pallet_authorship::pallet::Error - **/ - PalletAuthorshipError: { - _enum: ['InvalidUncleParent', 'UnclesAlreadySet', 'TooManyUncles', 'GenesisUncle', 'TooHighUncle', 'UncleAlreadyIncluded', 'OldUncle'] - }, /** * Lookup439: pallet_balances::BalanceLock **/ @@ -3667,36 +3725,19 @@ export default { amount: 'u128' }, /** - * Lookup445: pallet_balances::Releases - **/ - PalletBalancesReleases: { - _enum: ['V1_0_0', 'V2_0_0'] - }, - /** - * Lookup446: pallet_balances::pallet::Error + * Lookup445: pallet_balances::pallet::Error **/ PalletBalancesError: { _enum: ['VestingBalance', 'LiquidityRestrictions', 'InsufficientBalance', 'ExistentialDeposit', 'KeepAlive', 'ExistingVestingSchedule', 'DeadAccount', 'TooManyReserves'] }, /** - * Lookup448: pallet_transaction_payment::Releases + * Lookup447: pallet_transaction_payment::Releases **/ PalletTransactionPaymentReleases: { _enum: ['V1Ancient', 'V2'] }, /** - * Lookup449: pallet_election_provider_multi_phase::Phase - **/ - PalletElectionProviderMultiPhasePhase: { - _enum: { - Off: 'Null', - Signed: 'Null', - Unsigned: '(bool,u32)', - Emergency: 'Null' - } - }, - /** - * Lookup451: pallet_election_provider_multi_phase::ReadySolution + * Lookup448: pallet_election_provider_multi_phase::ReadySolution **/ PalletElectionProviderMultiPhaseReadySolution: { supports: 'Vec<(AccountId32,SpNposElectionsSupport)>', @@ -3704,14 +3745,14 @@ export default { compute: 'PalletElectionProviderMultiPhaseElectionCompute' }, /** - * Lookup452: pallet_election_provider_multi_phase::RoundSnapshot + * Lookup450: pallet_election_provider_multi_phase::RoundSnapshot **/ PalletElectionProviderMultiPhaseRoundSnapshot: { voters: 'Vec<(AccountId32,u64,Vec)>', targets: 'Vec' }, /** - * Lookup460: pallet_election_provider_multi_phase::signed::SignedSubmission + * Lookup457: pallet_election_provider_multi_phase::signed::SignedSubmission **/ PalletElectionProviderMultiPhaseSignedSignedSubmission: { who: 'AccountId32', @@ -3720,13 +3761,13 @@ export default { callFee: 'u128' }, /** - * Lookup461: pallet_election_provider_multi_phase::pallet::Error + * Lookup458: pallet_election_provider_multi_phase::pallet::Error **/ PalletElectionProviderMultiPhaseError: { - _enum: ['PreDispatchEarlySubmission', 'PreDispatchWrongWinnerCount', 'PreDispatchWeakSubmission', 'SignedQueueFull', 'SignedCannotPayDeposit', 'SignedInvalidWitness', 'SignedTooMuchWeight', 'OcwCallWrongEra', 'MissingSnapshotMetadata', 'InvalidSubmissionIndex', 'CallNotAllowed', 'FallbackFailed'] + _enum: ['PreDispatchEarlySubmission', 'PreDispatchWrongWinnerCount', 'PreDispatchWeakSubmission', 'SignedQueueFull', 'SignedCannotPayDeposit', 'SignedInvalidWitness', 'SignedTooMuchWeight', 'OcwCallWrongEra', 'MissingSnapshotMetadata', 'InvalidSubmissionIndex', 'CallNotAllowed', 'FallbackFailed', 'BoundNotMet', 'TooManyWinners'] }, /** - * Lookup462: pallet_staking::StakingLedger + * Lookup459: pallet_staking::StakingLedger **/ PalletStakingStakingLedger: { stash: 'AccountId32', @@ -3736,14 +3777,14 @@ export default { claimedRewards: 'Vec' }, /** - * Lookup464: pallet_staking::UnlockChunk + * Lookup461: pallet_staking::UnlockChunk **/ PalletStakingUnlockChunk: { value: 'Compact', era: 'Compact' }, /** - * Lookup466: pallet_staking::Nominations + * Lookup464: pallet_staking::Nominations **/ PalletStakingNominations: { targets: 'Vec', @@ -3751,27 +3792,21 @@ export default { suppressed: 'bool' }, /** - * Lookup467: pallet_staking::ActiveEraInfo + * Lookup465: pallet_staking::ActiveEraInfo **/ PalletStakingActiveEraInfo: { index: 'u32', start: 'Option' }, /** - * Lookup469: pallet_staking::EraRewardPoints + * Lookup467: pallet_staking::EraRewardPoints **/ PalletStakingEraRewardPoints: { total: 'u32', individual: 'BTreeMap' }, /** - * Lookup473: pallet_staking::Forcing - **/ - PalletStakingForcing: { - _enum: ['NotForcing', 'ForceNew', 'ForceNone', 'ForceAlways'] - }, - /** - * Lookup475: pallet_staking::UnappliedSlash + * Lookup472: pallet_staking::UnappliedSlash **/ PalletStakingUnappliedSlash: { validator: 'AccountId32', @@ -3781,7 +3816,7 @@ export default { payout: 'u128' }, /** - * Lookup477: pallet_staking::slashing::SlashingSpans + * Lookup474: pallet_staking::slashing::SlashingSpans **/ PalletStakingSlashingSlashingSpans: { spanIndex: 'u32', @@ -3790,36 +3825,30 @@ export default { prior: 'Vec' }, /** - * Lookup478: pallet_staking::slashing::SpanRecord + * Lookup475: pallet_staking::slashing::SpanRecord **/ PalletStakingSlashingSpanRecord: { slashed: 'u128', paidOut: 'u128' }, /** - * Lookup481: pallet_staking::Releases - **/ - PalletStakingReleases: { - _enum: ['V1_0_0Ancient', 'V2_0_0', 'V3_0_0', 'V4_0_0', 'V5_0_0', 'V6_0_0', 'V7_0_0', 'V8_0_0', 'V9_0_0'] - }, - /** - * Lookup482: pallet_staking::pallet::pallet::Error + * Lookup478: pallet_staking::pallet::pallet::Error **/ PalletStakingPalletError: { - _enum: ['NotController', 'NotStash', 'AlreadyBonded', 'AlreadyPaired', 'EmptyTargets', 'DuplicateIndex', 'InvalidSlashIndex', 'InsufficientBond', 'NoMoreChunks', 'NoUnlockChunk', 'FundedTarget', 'InvalidEraToReward', 'InvalidNumberOfNominations', 'NotSortedAndUnique', 'AlreadyClaimed', 'IncorrectHistoryDepth', 'IncorrectSlashingSpans', 'BadState', 'TooManyTargets', 'BadTarget', 'CannotChillOther', 'TooManyNominators', 'TooManyValidators', 'CommissionTooLow', 'BondingRestricted'] + _enum: ['NotController', 'NotStash', 'AlreadyBonded', 'AlreadyPaired', 'EmptyTargets', 'DuplicateIndex', 'InvalidSlashIndex', 'InsufficientBond', 'NoMoreChunks', 'NoUnlockChunk', 'FundedTarget', 'InvalidEraToReward', 'InvalidNumberOfNominations', 'NotSortedAndUnique', 'AlreadyClaimed', 'IncorrectHistoryDepth', 'IncorrectSlashingSpans', 'BadState', 'TooManyTargets', 'BadTarget', 'CannotChillOther', 'TooManyNominators', 'TooManyValidators', 'CommissionTooLow', 'BoundNotMet', 'BondingRestricted'] }, /** - * Lookup486: sp_core::crypto::KeyTypeId + * Lookup482: sp_core::crypto::KeyTypeId **/ SpCoreCryptoKeyTypeId: '[u8;4]', /** - * Lookup487: pallet_session::pallet::Error + * Lookup483: pallet_session::pallet::Error **/ PalletSessionError: { _enum: ['InvalidProof', 'NoAssociatedValidatorId', 'DuplicatedKey', 'NoKeys', 'NoAccount'] }, /** - * Lookup489: pallet_grandpa::StoredState + * Lookup485: pallet_grandpa::StoredState **/ PalletGrandpaStoredState: { _enum: { @@ -3836,7 +3865,7 @@ export default { } }, /** - * Lookup490: pallet_grandpa::StoredPendingChange + * Lookup486: pallet_grandpa::StoredPendingChange **/ PalletGrandpaStoredPendingChange: { scheduledAt: 'u32', @@ -3845,33 +3874,33 @@ export default { forced: 'Option' }, /** - * Lookup492: pallet_grandpa::pallet::Error + * Lookup488: pallet_grandpa::pallet::Error **/ PalletGrandpaError: { _enum: ['PauseFailed', 'ResumeFailed', 'ChangePending', 'TooSoon', 'InvalidKeyOwnershipProof', 'InvalidEquivocationProof', 'DuplicateOffenceReport'] }, /** - * Lookup498: pallet_im_online::BoundedOpaqueNetworkState + * Lookup494: pallet_im_online::BoundedOpaqueNetworkState **/ PalletImOnlineBoundedOpaqueNetworkState: { peerId: 'Bytes', externalAddresses: 'Vec' }, /** - * Lookup502: pallet_im_online::pallet::Error + * Lookup498: pallet_im_online::pallet::Error **/ PalletImOnlineError: { _enum: ['InvalidKey', 'DuplicatedHeartbeat'] }, /** - * Lookup503: sp_staking::offence::OffenceDetails + * Lookup499: sp_staking::offence::OffenceDetails **/ SpStakingOffenceOffenceDetails: { offender: '(AccountId32,PalletStakingExposure)', reporters: 'Vec' }, /** - * Lookup506: pallet_bags_list::list::Node + * Lookup502: pallet_bags_list::list::Node **/ PalletBagsListListNode: { id: 'AccountId32', @@ -3881,14 +3910,14 @@ export default { score: 'u64' }, /** - * Lookup507: pallet_bags_list::list::Bag + * Lookup503: pallet_bags_list::list::Bag **/ PalletBagsListListBag: { head: 'Option', tail: 'Option' }, /** - * Lookup508: pallet_bags_list::pallet::Error + * Lookup504: pallet_bags_list::pallet::Error **/ PalletBagsListError: { _enum: { @@ -3896,25 +3925,25 @@ export default { } }, /** - * Lookup509: pallet_bags_list::list::ListError + * Lookup505: pallet_bags_list::list::ListError **/ PalletBagsListListListError: { _enum: ['Duplicate', 'NotHeavier', 'NotInSameBag', 'NodeNotFound'] }, /** - * Lookup512: pallet_vesting::Releases + * Lookup508: pallet_vesting::Releases **/ PalletVestingReleases: { _enum: ['V0', 'V1'] }, /** - * Lookup513: pallet_vesting::pallet::Error + * Lookup509: pallet_vesting::pallet::Error **/ PalletVestingError: { _enum: ['NotVesting', 'AtMaxVestingSchedules', 'AmountLow', 'ScheduleIndexOutOfBounds', 'InvalidScheduleParams'] }, /** - * Lookup515: pallet_multisig::Multisig + * Lookup511: pallet_multisig::Multisig **/ PalletMultisigMultisig: { when: 'PalletMultisigTimepoint', @@ -3923,20 +3952,20 @@ export default { approvals: 'Vec' }, /** - * Lookup517: pallet_multisig::pallet::Error + * Lookup513: pallet_multisig::pallet::Error **/ PalletMultisigError: { _enum: ['MinimumThreshold', 'AlreadyApproved', 'NoApprovalsNeeded', 'TooFewSignatories', 'TooManySignatories', 'SignatoriesOutOfOrder', 'SenderInSignatories', 'NotFound', 'NotOwner', 'NoTimepoint', 'WrongTimepoint', 'UnexpectedTimepoint', 'MaxWeightTooLow', 'AlreadyStored'] }, /** - * Lookup518: pallet_council::CouncilStageUpdate + * Lookup514: pallet_council::CouncilStageUpdate **/ PalletCouncilCouncilStageUpdate: { stage: 'PalletCouncilCouncilStage', changedAt: 'u32' }, /** - * Lookup519: pallet_council::CouncilStage + * Lookup515: pallet_council::CouncilStage **/ PalletCouncilCouncilStage: { _enum: { @@ -3946,26 +3975,26 @@ export default { } }, /** - * Lookup520: pallet_council::CouncilStageAnnouncing + * Lookup516: pallet_council::CouncilStageAnnouncing **/ PalletCouncilCouncilStageAnnouncing: { candidatesCount: 'u32', endsAt: 'u32' }, /** - * Lookup521: pallet_council::CouncilStageElection + * Lookup517: pallet_council::CouncilStageElection **/ PalletCouncilCouncilStageElection: { candidatesCount: 'u32' }, /** - * Lookup522: pallet_council::CouncilStageIdle + * Lookup518: pallet_council::CouncilStageIdle **/ PalletCouncilCouncilStageIdle: { endsAt: 'u32' }, /** - * Lookup524: pallet_council::CouncilMember + * Lookup520: pallet_council::CouncilMember **/ PalletCouncilCouncilMember: { stakingAccountId: 'AccountId32', @@ -3976,7 +4005,7 @@ export default { unpaidReward: 'u128' }, /** - * Lookup526: pallet_council::Candidate + * Lookup522: pallet_council::Candidate **/ PalletCouncilCandidate: { stakingAccountId: 'AccountId32', @@ -3987,13 +4016,13 @@ export default { noteHash: 'Option' }, /** - * Lookup527: pallet_council::Error + * Lookup523: pallet_council::Error **/ PalletCouncilError: { _enum: ['ArithmeticError', 'BadOrigin', 'CantCandidateNow', 'CantReleaseStakeNow', 'CandidacyStakeTooLow', 'CantCandidateTwice', 'ConflictingStake', 'StakeStillNeeded', 'NoStake', 'InsufficientBalanceForStaking', 'CantVoteForYourself', 'MemberIdNotMatchAccount', 'InvalidAccountToStakeReuse', 'NotCandidatingNow', 'CantWithdrawCandidacyNow', 'NotCouncilor', 'InsufficientFundsForFundingRequest', 'ZeroBalanceFundRequest', 'RepeatedFundRequestAccount', 'EmptyFundingRequests', 'InsufficientTokensForFunding', 'ZeroTokensFunding', 'CandidateDoesNotExist', 'InsufficientBalanceForTransfer'] }, /** - * Lookup528: pallet_referendum::ReferendumStage, S>> + * Lookup524: pallet_referendum::ReferendumStage, S>> **/ PalletReferendumReferendumStage: { _enum: { @@ -4003,7 +4032,7 @@ export default { } }, /** - * Lookup530: pallet_referendum::ReferendumStageVoting + * Lookup526: pallet_referendum::ReferendumStageVoting **/ PalletReferendumReferendumStageVoting: { started: 'u32', @@ -4012,7 +4041,7 @@ export default { endsAt: 'u32' }, /** - * Lookup531: pallet_referendum::ReferendumStageRevealing, S>> + * Lookup527: pallet_referendum::ReferendumStageRevealing, S>> **/ PalletReferendumReferendumStageRevealing: { started: 'u32', @@ -4022,7 +4051,7 @@ export default { endsAt: 'u32' }, /** - * Lookup532: pallet_referendum::CastVote + * Lookup528: pallet_referendum::CastVote **/ PalletReferendumCastVote: { commitment: 'H256', @@ -4031,13 +4060,13 @@ export default { voteFor: 'Option' }, /** - * Lookup533: pallet_referendum::Error + * Lookup529: pallet_referendum::Error **/ PalletReferendumError: { _enum: ['BadOrigin', 'ReferendumNotRunning', 'RevealingNotInProgress', 'ConflictStakesOnAccount', 'InsufficientBalanceToStake', 'InsufficientStake', 'InvalidReveal', 'InvalidVote', 'VoteNotExisting', 'AlreadyVotedThisCycle', 'UnstakingVoteInSameCycle', 'SaltTooLong', 'UnstakingForbidden', 'AccountAlreadyOptedOutOfVoting'] }, /** - * Lookup534: pallet_membership::MembershipObject + * Lookup530: pallet_membership::MembershipObject **/ PalletMembershipMembershipObject: { handleHash: 'H256', @@ -4047,20 +4076,20 @@ export default { invites: 'u32' }, /** - * Lookup535: pallet_membership::StakingAccountMemberBinding + * Lookup531: pallet_membership::StakingAccountMemberBinding **/ PalletMembershipStakingAccountMemberBinding: { memberId: 'u64', confirmed: 'bool' }, /** - * Lookup536: pallet_membership::Error + * Lookup532: pallet_membership::Error **/ PalletMembershipError: { _enum: ['NotEnoughBalanceToBuyMembership', 'ControllerAccountRequired', 'RootAccountRequired', 'UnsignedOrigin', 'MemberProfileNotFound', 'HandleAlreadyRegistered', 'HandleMustBeProvidedDuringRegistration', 'ReferrerIsNotMember', 'CannotTransferInvitesForNotMember', 'NotEnoughInvites', 'WorkingGroupLeaderNotSet', 'StakingAccountIsAlreadyRegistered', 'StakingAccountDoesntExist', 'StakingAccountAlreadyConfirmed', 'WorkingGroupBudgetIsNotSufficientForInviting', 'ConflictingLock', 'CannotExceedReferralCutPercentLimit', 'ConflictStakesOnAccount', 'InsufficientBalanceToCoverStake', 'GifLockExceedsCredit', 'InsufficientBalanceToGift', 'InsufficientBalanceToCoverPayment'] }, /** - * Lookup537: pallet_forum::Category> + * Lookup533: pallet_forum::Category> **/ PalletForumCategory: { titleHash: 'H256', @@ -4073,7 +4102,7 @@ export default { stickyThreadIds: 'BTreeSet' }, /** - * Lookup539: pallet_forum::Thread> + * Lookup535: pallet_forum::Thread> **/ PalletForumThread: { categoryId: 'u64', @@ -4082,7 +4111,7 @@ export default { numberOfEditablePosts: 'u64' }, /** - * Lookup540: pallet_forum::Post> + * Lookup536: pallet_forum::Post> **/ PalletForumPost: { threadId: 'u64', @@ -4092,19 +4121,19 @@ export default { lastEdited: 'u32' }, /** - * Lookup541: pallet_forum::Error + * Lookup537: pallet_forum::Error **/ PalletForumError: { _enum: ['ArithmeticError', 'OriginNotForumLead', 'ForumUserIdNotMatchAccount', 'ModeratorIdNotMatchAccount', 'AccountDoesNotMatchThreadAuthor', 'ThreadDoesNotExist', 'ModeratorModerateOriginCategory', 'ModeratorModerateDestinationCategory', 'ThreadMoveInvalid', 'ThreadNotBeingUpdated', 'InsufficientBalanceForThreadCreation', 'CannotDeleteThreadWithOutstandingPosts', 'PostDoesNotExist', 'AccountDoesNotMatchPostAuthor', 'InsufficientBalanceForPost', 'CategoryNotBeingUpdated', 'AncestorCategoryImmutable', 'MaxValidCategoryDepthExceeded', 'CategoryDoesNotExist', 'CategoryModeratorDoesNotExist', 'CategoryNotEmptyThreads', 'CategoryNotEmptyCategories', 'ModeratorCantDeleteCategory', 'ModeratorCantUpdateCategory', 'MapSizeLimit', 'PathLengthShouldBeGreaterThanZero', 'MaxNumberOfStickiedThreadsExceeded'] }, /** - * Lookup542: pallet_constitution::ConstitutionInfo + * Lookup538: pallet_constitution::ConstitutionInfo **/ PalletConstitutionConstitutionInfo: { textHash: 'H256' }, /** - * Lookup543: pallet_bounty::BountyRecord> + * Lookup539: pallet_bounty::BountyRecord> **/ PalletBountyBountyRecord: { creationParams: 'PalletBountyBountyParametersBoundedBTreeSet', @@ -4114,7 +4143,7 @@ export default { hasUnpaidOracleReward: 'bool' }, /** - * Lookup545: pallet_bounty::BountyParameters> + * Lookup541: pallet_bounty::BountyParameters> **/ PalletBountyBountyParametersBoundedBTreeSet: { oracle: 'PalletBountyBountyActor', @@ -4126,7 +4155,7 @@ export default { fundingType: 'PalletBountyFundingType' }, /** - * Lookup546: pallet_bounty::AssuranceContractType> + * Lookup542: pallet_bounty::AssuranceContractType> **/ PalletBountyAssuranceContractTypeBoundedBTreeSet: { _enum: { @@ -4135,7 +4164,7 @@ export default { } }, /** - * Lookup547: pallet_bounty::BountyMilestone + * Lookup543: pallet_bounty::BountyMilestone **/ PalletBountyBountyMilestone: { _enum: { @@ -4152,14 +4181,14 @@ export default { } }, /** - * Lookup549: pallet_bounty::Contribution + * Lookup545: pallet_bounty::Contribution **/ PalletBountyContribution: { amount: 'u128', funderStateBloatBondAmount: 'u128' }, /** - * Lookup550: pallet_bounty::EntryRecord + * Lookup546: pallet_bounty::EntryRecord **/ PalletBountyEntryRecord: { memberId: 'u64', @@ -4168,13 +4197,13 @@ export default { workSubmitted: 'bool' }, /** - * Lookup551: pallet_bounty::Error + * Lookup547: pallet_bounty::Error **/ PalletBountyError: { _enum: ['ArithmeticError', 'MinFundingAmountCannotBeGreaterThanMaxAmount', 'BountyDoesntExist', 'SwitchOracleOriginIsRoot', 'InvalidStageUnexpectedFunding', 'InvalidStageUnexpectedNoFundingContributed', 'InvalidStageUnexpectedCancelled', 'InvalidStageUnexpectedWorkSubmission', 'InvalidStageUnexpectedJudgment', 'InvalidStageUnexpectedSuccessfulBountyWithdrawal', 'InvalidStageUnexpectedFailedBountyWithdrawal', 'InsufficientBalanceForBounty', 'NoBountyContributionFound', 'InsufficientBalanceForStake', 'ConflictingStakes', 'WorkEntryDoesntExist', 'CherryLessThenMinimumAllowed', 'CannotSubmitWorkToClosedContractBounty', 'ClosedContractMemberListIsEmpty', 'ClosedContractMemberListIsTooLarge', 'ClosedContractMemberNotFound', 'InvalidOracleMemberId', 'InvalidStakingAccountForMember', 'ZeroWinnerReward', 'TotalRewardShouldBeEqualToTotalFunding', 'EntrantStakeIsLessThanMininum', 'FundingAmountCannotBeZero', 'FundingPeriodCannotBeZero', 'WinnerShouldHasWorkSubmission', 'InvalidContributorActorSpecified', 'InvalidOracleActorSpecified', 'InvalidEntrantWorkerSpecified', 'InvalidCreatorActorSpecified', 'WorkEntryDoesntBelongToWorker', 'OracleRewardAlreadyWithdrawn'] }, /** - * Lookup553: pallet_content::types::VideoRecord>, pallet_content::nft::types::OpenAuctionRecord>>, MemberId, AuctionId>, frame_support::storage::bounded_btree_set::BoundedBTreeSet, pallet_common::bloat_bond::RepayableBloatBond> + * Lookup549: pallet_content::types::VideoRecord>, pallet_content::nft::types::OpenAuctionRecord>>, MemberId, AuctionId>, bounded_collections::bounded_btree_set::BoundedBTreeSet, pallet_common::bloat_bond::RepayableBloatBond> **/ PalletContentVideoRecord: { inChannel: 'u64', @@ -4183,7 +4212,7 @@ export default { videoStateBloatBond: 'PalletCommonBloatBondRepayableBloatBond' }, /** - * Lookup554: pallet_content::nft::types::OwnedNft>, pallet_content::nft::types::OpenAuctionRecord>>, MemberId, AuctionId> + * Lookup550: pallet_content::nft::types::OwnedNft>, pallet_content::nft::types::OpenAuctionRecord>>, MemberId, AuctionId> **/ PalletContentNftTypesOwnedNft: { owner: 'PalletContentNftTypesNftOwner', @@ -4192,7 +4221,7 @@ export default { openAuctionsNonce: 'u64' }, /** - * Lookup555: pallet_content::nft::types::TransactionalStatusRecord>, pallet_content::nft::types::OpenAuctionRecord>> + * Lookup551: pallet_content::nft::types::TransactionalStatusRecord>, pallet_content::nft::types::OpenAuctionRecord>> **/ PalletContentNftTypesTransactionalStatusRecord: { _enum: { @@ -4204,7 +4233,7 @@ export default { } }, /** - * Lookup556: pallet_content::nft::types::EnglishAuctionRecord> + * Lookup552: pallet_content::nft::types::EnglishAuctionRecord> **/ PalletContentNftTypesEnglishAuctionRecord: { startingPrice: 'u128', @@ -4217,14 +4246,14 @@ export default { topBid: 'Option' }, /** - * Lookup559: pallet_content::nft::types::EnglishAuctionBid + * Lookup555: pallet_content::nft::types::EnglishAuctionBid **/ PalletContentNftTypesEnglishAuctionBid: { amount: 'u128', bidderId: 'u64' }, /** - * Lookup560: pallet_content::nft::types::OpenAuctionRecord> + * Lookup556: pallet_content::nft::types::OpenAuctionRecord> **/ PalletContentNftTypesOpenAuctionRecord: { startingPrice: 'u128', @@ -4235,7 +4264,7 @@ export default { start: 'u32' }, /** - * Lookup561: pallet_content::nft::types::NftOwner + * Lookup557: pallet_content::nft::types::NftOwner **/ PalletContentNftTypesNftOwner: { _enum: { @@ -4244,7 +4273,7 @@ export default { } }, /** - * Lookup564: pallet_content::permissions::curator_group::CuratorGroupRecord, S>, frame_support::storage::bounded_btree_map::BoundedBTreeMap, S>> + * Lookup560: pallet_content::permissions::curator_group::CuratorGroupRecord, S>, bounded_collections::bounded_btree_map::BoundedBTreeMap, S>> **/ PalletContentPermissionsCuratorGroupCuratorGroupRecord: { curators: 'BTreeMap>', @@ -4252,7 +4281,7 @@ export default { permissionsByLevel: 'BTreeMap>' }, /** - * Lookup571: pallet_content::nft::types::OpenAuctionBidRecord + * Lookup567: pallet_content::nft::types::OpenAuctionBidRecord **/ PalletContentNftTypesOpenAuctionBidRecord: { amount: 'u128', @@ -4260,13 +4289,13 @@ export default { auctionId: 'u64' }, /** - * Lookup572: pallet_content::errors::Error + * Lookup568: pallet_content::errors::Error **/ PalletContentErrorsError: { _enum: ['ChannelStateBloatBondChanged', 'VideoStateBloatBondChanged', 'MinCashoutValueTooLow', 'MaxCashoutValueTooHigh', 'MaxNumberOfChannelCollaboratorsExceeded', 'MaxNumberOfChannelAssetsExceeded', 'MaxNumberOfVideoAssetsExceeded', 'MaxNumberOfChannelAgentPermissionsExceeded', 'MaxNumberOfPausedFeaturesPerChannelExceeded', 'InvalidChannelBagWitnessProvided', 'InvalidStorageBucketsNumWitnessProvided', 'MissingStorageBucketsNumWitness', 'ChannelOwnerMemberDoesNotExist', 'ChannelOwnerCuratorGroupDoesNotExist', 'ChannelStateBloatBondBelowExistentialDeposit', 'NumberOfAssetsToRemoveIsZero', 'CuratorIsNotAMemberOfGivenCuratorGroup', 'CuratorIsAlreadyAMemberOfGivenCuratorGroup', 'CuratorGroupDoesNotExist', 'CuratorsPerGroupLimitReached', 'CuratorGroupIsNotActive', 'CuratorIdInvalid', 'LeadAuthFailed', 'MemberAuthFailed', 'CuratorAuthFailed', 'BadOrigin', 'ActorNotAuthorized', 'CategoryDoesNotExist', 'ChannelDoesNotExist', 'VideoDoesNotExist', 'VideoInSeason', 'ActorCannotBeLead', 'ActorCannotOwnChannel', 'NftAlreadyOwnedByChannel', 'NftAlreadyExists', 'NftDoesNotExist', 'OverflowOrUnderflowHappened', 'DoesNotOwnNft', 'RoyaltyUpperBoundExceeded', 'RoyaltyLowerBoundExceeded', 'AuctionDurationUpperBoundExceeded', 'AuctionDurationLowerBoundExceeded', 'ExtensionPeriodUpperBoundExceeded', 'ExtensionPeriodLowerBoundExceeded', 'BidLockDurationUpperBoundExceeded', 'BidLockDurationLowerBoundExceeded', 'StartingPriceUpperBoundExceeded', 'StartingPriceLowerBoundExceeded', 'AuctionBidStepUpperBoundExceeded', 'AuctionBidStepLowerBoundExceeded', 'InsufficientBalance', 'BidStepConstraintViolated', 'InvalidBidAmountSpecified', 'StartingPriceConstraintViolated', 'ActionHasBidsAlready', 'NftIsNotIdle', 'PendingOfferDoesNotExist', 'RewardAccountIsNotSet', 'ActorIsNotBidder', 'AuctionCannotBeCompleted', 'BidDoesNotExist', 'BidIsForPastAuction', 'StartsAtLowerBoundExceeded', 'StartsAtUpperBoundExceeded', 'AuctionDidNotStart', 'NotInAuctionState', 'MemberIsNotAllowedToParticipate', 'MemberProfileNotFound', 'NftNotInBuyNowState', 'InvalidBuyNowWitnessPriceProvided', 'IsNotOpenAuctionType', 'IsNotEnglishAuctionType', 'BidLockDurationIsNotExpired', 'NftAuctionIsAlreadyExpired', 'BuyNowMustBeGreaterThanStartingPrice', 'TargetMemberDoesNotExist', 'InvalidNftOfferWitnessPriceProvided', 'MaxAuctionWhiteListLengthUpperBoundExceeded', 'WhitelistHasOnlyOneMember', 'WhitelistedMemberDoesNotExist', 'NftNonChannelOwnerDoesNotExist', 'ExtensionPeriodIsGreaterThenAuctionDuration', 'NoAssetsSpecified', 'InvalidAssetsProvided', 'ChannelContainsVideos', 'ChannelContainsAssets', 'InvalidBagSizeSpecified', 'MigrationNotFinished', 'ReplyDoesNotExist', 'UnsufficientBalance', 'InsufficientTreasuryBalance', 'InvalidMemberProvided', 'ActorNotAMember', 'PaymentProofVerificationFailed', 'CashoutAmountExceedsMaximumAmount', 'CashoutAmountBelowMinimumAmount', 'WithdrawalAmountExceedsChannelAccountWithdrawableBalance', 'WithdrawFromChannelAmountIsZero', 'ChannelCashoutsDisabled', 'MinCashoutAllowedExceedsMaxCashoutAllowed', 'CuratorModerationActionNotAllowed', 'MaxCuratorPermissionsPerLevelExceeded', 'CuratorGroupMaxPermissionsByLevelMapSizeExceeded', 'ChannelFeaturePaused', 'ChannelBagMissing', 'AssetsToRemoveBeyondEntityAssetsSet', 'InvalidVideoDataObjectsCountProvided', 'InvalidChannelTransferStatus', 'InvalidChannelTransferAcceptor', 'InvalidChannelTransferCommitmentParams', 'ChannelAgentInsufficientPermissions', 'InvalidChannelOwner', 'ZeroReward', 'InsufficientBalanceForTransfer', 'InsufficientBalanceForChannelCreation', 'InsufficientBalanceForVideoCreation', 'InsufficientCouncilBudget', 'GlobalNftDailyLimitExceeded', 'GlobalNftWeeklyLimitExceeded', 'ChannelNftDailyLimitExceeded', 'ChannelNftWeeklyLimitExceeded', 'CreatorTokenAlreadyIssued', 'CreatorTokenNotIssued', 'MemberIdCouldNotBeDerivedFromActor', 'CannotWithdrawFromChannelWithCreatorTokenIssued', 'PatronageCanOnlyBeClaimedForMemberOwnedChannels', 'ChannelTransfersBlockedDuringRevenueSplits', 'ChannelTransfersBlockedDuringTokenSales'] }, /** - * Lookup573: pallet_storage::BagRecord, frame_support::storage::bounded_btree_set::BoundedBTreeSet, S>> + * Lookup569: pallet_storage::BagRecord, bounded_collections::bounded_btree_set::BoundedBTreeSet, S>> **/ PalletStorageBagRecord: { storedBy: 'BTreeSet', @@ -4275,7 +4304,7 @@ export default { objectsNumber: 'u64' }, /** - * Lookup576: pallet_storage::StorageBucketRecord + * Lookup572: pallet_storage::StorageBucketRecord **/ PalletStorageStorageBucketRecord: { operatorStatus: 'PalletStorageStorageBucketOperatorStatus', @@ -4284,7 +4313,7 @@ export default { assignedBags: 'u64' }, /** - * Lookup577: pallet_storage::StorageBucketOperatorStatus + * Lookup573: pallet_storage::StorageBucketOperatorStatus **/ PalletStorageStorageBucketOperatorStatus: { _enum: { @@ -4294,14 +4323,14 @@ export default { } }, /** - * Lookup579: pallet_storage::DynamicBagCreationPolicy> + * Lookup575: pallet_storage::DynamicBagCreationPolicy> **/ PalletStorageDynamicBagCreationPolicy: { numberOfStorageBuckets: 'u32', families: 'BTreeMap' }, /** - * Lookup582: pallet_storage::DataObject> + * Lookup578: pallet_storage::DataObject> **/ PalletStorageDataObject: { _alias: { @@ -4313,13 +4342,13 @@ export default { ipfsContentId: 'Bytes' }, /** - * Lookup583: pallet_storage::DistributionBucketFamilyRecord + * Lookup579: pallet_storage::DistributionBucketFamilyRecord **/ PalletStorageDistributionBucketFamilyRecord: { nextDistributionBucketIndex: 'u64' }, /** - * Lookup584: pallet_storage::DistributionBucketRecord, frame_support::storage::bounded_btree_set::BoundedBTreeSet> + * Lookup580: pallet_storage::DistributionBucketRecord, bounded_collections::bounded_btree_set::BoundedBTreeSet> **/ PalletStorageDistributionBucketRecord: { acceptingNewBags: 'bool', @@ -4329,13 +4358,13 @@ export default { assignedBags: 'u64' }, /** - * Lookup587: pallet_storage::Error + * Lookup583: pallet_storage::Error **/ PalletStorageError: { _enum: ['ArithmeticError', 'InvalidCidLength', 'NoObjectsOnUpload', 'StorageBucketDoesntExist', 'StorageBucketIsNotBoundToBag', 'StorageBucketIsBoundToBag', 'NoStorageBucketInvitation', 'StorageProviderAlreadySet', 'StorageProviderMustBeSet', 'DifferentStorageProviderInvited', 'InvitedStorageProvider', 'StorageBucketIdCollectionsAreEmpty', 'StorageBucketsNumberViolatesDynamicBagCreationPolicy', 'DistributionBucketsViolatesDynamicBagCreationPolicy', 'EmptyContentId', 'ZeroObjectSize', 'InvalidStateBloatBondSourceAccount', 'InvalidStorageProvider', 'InsufficientBalance', 'DataObjectDoesntExist', 'UploadingBlocked', 'DataObjectIdCollectionIsEmpty', 'SourceAndDestinationBagsAreEqual', 'DataObjectBlacklisted', 'BlacklistSizeLimitExceeded', 'VoucherMaxObjectSizeLimitExceeded', 'VoucherMaxObjectNumberLimitExceeded', 'StorageBucketObjectNumberLimitReached', 'StorageBucketObjectSizeLimitReached', 'InsufficientTreasuryBalance', 'CannotDeleteNonEmptyStorageBucket', 'DataObjectIdParamsAreEmpty', 'StorageBucketsPerBagLimitTooLow', 'StorageBucketsPerBagLimitTooHigh', 'StorageBucketPerBagLimitExceeded', 'StorageBucketDoesntAcceptNewBags', 'DynamicBagExists', 'DynamicBagDoesntExist', 'StorageProviderOperatorDoesntExist', 'DataSizeFeeChanged', 'DataObjectStateBloatBondChanged', 'CannotDeleteNonEmptyDynamicBag', 'MaxDistributionBucketFamilyNumberLimitExceeded', 'DistributionBucketFamilyDoesntExist', 'DistributionBucketDoesntExist', 'DistributionBucketIdCollectionsAreEmpty', 'DistributionBucketDoesntAcceptNewBags', 'MaxDistributionBucketNumberPerBagLimitExceeded', 'DistributionBucketIsNotBoundToBag', 'DistributionBucketIsBoundToBag', 'DistributionBucketsPerBagLimitTooLow', 'DistributionBucketsPerBagLimitTooHigh', 'DistributionProviderOperatorDoesntExist', 'DistributionProviderOperatorAlreadyInvited', 'DistributionProviderOperatorSet', 'NoDistributionBucketInvitation', 'MustBeDistributionProviderOperatorForBucket', 'MaxNumberOfPendingInvitationsLimitForDistributionBucketReached', 'MaxNumberOfOperatorsPerDistributionBucketReached', 'DistributionFamilyBoundToBagCreationPolicy', 'MaxDataObjectSizeExceeded', 'InvalidTransactorAccount', 'NumberOfStorageBucketsOutsideOfAllowedContraints', 'NumberOfDistributionBucketsOutsideOfAllowedContraints', 'CallDisabled'] }, /** - * Lookup588: pallet_project_token::types::AccountData, pallet_common::bloat_bond::RepayableBloatBond, frame_support::storage::bounded_btree_map::BoundedBTreeMap, S>> + * Lookup584: pallet_project_token::types::AccountData, pallet_common::bloat_bond::RepayableBloatBond, bounded_collections::bounded_btree_map::BoundedBTreeMap, S>> **/ PalletProjectTokenAccountData: { vestingSchedules: 'BTreeMap', @@ -4346,14 +4375,14 @@ export default { lastSaleTotalPurchasedAmount: 'Option<(u32,u128)>' }, /** - * Lookup589: pallet_project_token::types::StakingStatus + * Lookup585: pallet_project_token::types::StakingStatus **/ PalletProjectTokenStakingStatus: { splitId: 'u32', amount: 'u128' }, /** - * Lookup591: pallet_project_token::types::VestingSchedule + * Lookup587: pallet_project_token::types::VestingSchedule **/ PalletProjectTokenVestingSchedule: { linearVestingStartBlock: 'u32', @@ -4363,7 +4392,7 @@ export default { burnedAmount: 'u128' }, /** - * Lookup598: pallet_project_token::types::TokenData, MemberId, sp_core::crypto::AccountId32>, pallet_project_token::types::RevenueSplitState> + * Lookup594: pallet_project_token::types::TokenData, MemberId, sp_core::crypto::AccountId32>, pallet_project_token::types::RevenueSplitState> **/ PalletProjectTokenTokenData: { totalSupply: 'u128', @@ -4379,7 +4408,7 @@ export default { nextRevenueSplitId: 'u32' }, /** - * Lookup599: pallet_project_token::types::RevenueSplitState + * Lookup595: pallet_project_token::types::RevenueSplitState **/ PalletProjectTokenRevenueSplitState: { _enum: { @@ -4388,7 +4417,7 @@ export default { } }, /** - * Lookup600: pallet_project_token::types::RevenueSplitInfo + * Lookup596: pallet_project_token::types::RevenueSplitInfo **/ PalletProjectTokenRevenueSplitInfo: { allocation: 'u128', @@ -4396,14 +4425,14 @@ export default { dividendsClaimed: 'u128' }, /** - * Lookup601: pallet_project_token::types::Timeline + * Lookup597: pallet_project_token::types::Timeline **/ PalletProjectTokenTimeline: { start: 'u32', duration: 'u32' }, /** - * Lookup603: pallet_project_token::types::PatronageData + * Lookup599: pallet_project_token::types::PatronageData **/ PalletProjectTokenPatronageData: { rate: 'Perquintill', @@ -4411,13 +4440,13 @@ export default { lastUnclaimedPatronageTallyBlock: 'u32' }, /** - * Lookup605: pallet_project_token::errors::Error + * Lookup601: pallet_project_token::errors::Error **/ PalletProjectTokenErrorsError: { _enum: ['ArithmeticError', 'InsufficientTransferrableBalance', 'TokenDoesNotExist', 'AccountInformationDoesNotExist', 'TransferDestinationMemberDoesNotExist', 'MerkleProofVerificationFailure', 'TargetPatronageRateIsHigherThanCurrentRate', 'TokenSymbolAlreadyInUse', 'InitialAllocationToNonExistingMember', 'AccountAlreadyExists', 'TokenIssuanceNotInIdleState', 'InsufficientJoyBalance', 'JoyTransferSubjectToDusting', 'AttemptToRemoveNonOwnedAccountUnderPermissionedMode', 'AttemptToRemoveNonEmptyAccount', 'CannotJoinWhitelistInPermissionlessMode', 'CannotDeissueTokenWithOutstandingAccounts', 'NoUpcomingSale', 'NoActiveSale', 'InsufficientBalanceForTokenPurchase', 'NotEnoughTokensOnSale', 'SaleStartingBlockInThePast', 'SaleAccessProofRequired', 'SaleAccessProofParticipantIsNotSender', 'SalePurchaseCapExceeded', 'MaxVestingSchedulesPerAccountPerTokenReached', 'PreviousSaleNotFinalized', 'NoTokensToRecover', 'SaleDurationTooShort', 'SaleDurationIsZero', 'SaleUpperBoundQuantityIsZero', 'SaleCapPerMemberIsZero', 'SaleUnitPriceIsZero', 'SalePurchaseAmountIsZero', 'RevenueSplitTimeToStartTooShort', 'RevenueSplitDurationTooShort', 'RevenueSplitAlreadyActiveForToken', 'RevenueSplitNotActiveForToken', 'RevenueSplitDidNotEnd', 'RevenueSplitNotOngoing', 'UserAlreadyParticipating', 'InsufficientBalanceForSplitParticipation', 'UserNotParticipantingInAnySplit', 'CannotParticipateInSplitWithZeroAmount', 'CannotIssueSplitWithZeroAllocationAmount', 'CannotModifySupplyWhenRevenueSplitsAreActive', 'RevenueSplitRateIsZero', 'BurnAmountIsZero', 'BurnAmountGreaterThanAccountTokensAmount'] }, /** - * Lookup606: pallet_proposals_engine::types::Proposal + * Lookup602: pallet_proposals_engine::types::Proposal **/ PalletProposalsEngineProposal: { parameters: 'PalletProposalsEngineProposalParameters', @@ -4430,7 +4459,7 @@ export default { stakingAccountId: 'Option' }, /** - * Lookup607: pallet_proposals_engine::types::ProposalParameters + * Lookup603: pallet_proposals_engine::types::ProposalParameters **/ PalletProposalsEngineProposalParameters: { votingPeriod: 'u32', @@ -4443,7 +4472,7 @@ export default { constitutionality: 'u32' }, /** - * Lookup608: pallet_proposals_engine::types::VotingResults + * Lookup604: pallet_proposals_engine::types::VotingResults **/ PalletProposalsEngineVotingResults: { abstentions: 'u32', @@ -4452,13 +4481,13 @@ export default { slashes: 'u32' }, /** - * Lookup611: pallet_proposals_engine::Error + * Lookup607: pallet_proposals_engine::Error **/ PalletProposalsEngineError: { _enum: ['ArithmeticError', 'EmptyTitleProvided', 'EmptyDescriptionProvided', 'TitleIsTooLong', 'DescriptionIsTooLong', 'ProposalNotFound', 'ProposalFinalized', 'AlreadyVoted', 'NotAuthor', 'MaxActiveProposalNumberExceeded', 'EmptyStake', 'StakeShouldBeEmpty', 'StakeDiffersFromRequired', 'InvalidParameterApprovalThreshold', 'InvalidParameterSlashingThreshold', 'RequireRootOrigin', 'ProposalHasVotes', 'ZeroExactExecutionBlock', 'InvalidExactExecutionBlock', 'InsufficientBalanceForStake', 'ConflictingStakes', 'InvalidStakingAccountForMember', 'MaxDispatchableCallCodeSizeExceeded'] }, /** - * Lookup612: pallet_proposals_discussion::types::DiscussionThread> + * Lookup608: pallet_proposals_discussion::types::DiscussionThread> **/ PalletProposalsDiscussionDiscussionThread: { activatedAt: 'u32', @@ -4466,7 +4495,7 @@ export default { mode: 'PalletProposalsDiscussionThreadModeBoundedBTreeSet' }, /** - * Lookup614: pallet_proposals_discussion::types::ThreadMode> + * Lookup610: pallet_proposals_discussion::types::ThreadMode> **/ PalletProposalsDiscussionThreadModeBoundedBTreeSet: { _enum: { @@ -4475,7 +4504,7 @@ export default { } }, /** - * Lookup615: pallet_proposals_discussion::types::DiscussionPost> + * Lookup611: pallet_proposals_discussion::types::DiscussionPost> **/ PalletProposalsDiscussionDiscussionPost: { authorId: 'u64', @@ -4483,19 +4512,19 @@ export default { lastEdited: 'u32' }, /** - * Lookup616: pallet_proposals_discussion::Error + * Lookup612: pallet_proposals_discussion::Error **/ PalletProposalsDiscussionError: { _enum: ['ArithmeticError', 'ThreadDoesntExist', 'PostDoesntExist', 'RequireRootOrigin', 'CannotPostOnClosedThread', 'NotAuthorOrCouncilor', 'MaxWhiteListSizeExceeded', 'WhitelistedMemberDoesNotExist', 'InsufficientBalanceForPost', 'CannotDeletePost'] }, /** - * Lookup617: pallet_proposals_codex::Error + * Lookup613: pallet_proposals_codex::Error **/ PalletProposalsCodexError: { _enum: ['SignalProposalIsEmpty', 'RuntimeProposalIsEmpty', 'InvalidFundingRequestProposalBalance', 'InvalidValidatorCount', 'RequireRootOrigin', 'InvalidCouncilElectionParameterCouncilSize', 'InvalidCouncilElectionParameterCandidacyLimit', 'InvalidCouncilElectionParameterMinVotingStake', 'InvalidCouncilElectionParameterNewTermDuration', 'InvalidCouncilElectionParameterMinCouncilStake', 'InvalidCouncilElectionParameterRevealingPeriod', 'InvalidCouncilElectionParameterVotingPeriod', 'InvalidCouncilElectionParameterAnnouncingPeriod', 'InvalidWorkingGroupBudgetCapacity', 'InvalidSetLeadParameterCannotBeCouncilor', 'SlashingStakeIsZero', 'DecreasingStakeIsZero', 'InsufficientFundsForBudgetUpdate', 'InvalidFundingRequestProposalNumberOfAccount', 'InvalidFundingRequestProposalRepeatedAccount', 'InvalidChannelPayoutsProposalMinCashoutExceedsMaxCashout', 'InvalidLeadWorkerId', 'InvalidLeadOpeningId', 'InvalidLeadApplicationId', 'InvalidProposalId', 'ArithmeticError'] }, /** - * Lookup618: pallet_working_group::types::Opening + * Lookup614: pallet_working_group::types::Opening **/ PalletWorkingGroupOpening: { openingType: 'PalletWorkingGroupOpeningType', @@ -4506,7 +4535,7 @@ export default { creationStake: 'u128' }, /** - * Lookup619: pallet_working_group::types::JobApplication + * Lookup615: pallet_working_group::types::JobApplication **/ PalletWorkingGroupJobApplication: { roleAccountId: 'AccountId32', @@ -4517,7 +4546,7 @@ export default { openingId: 'u64' }, /** - * Lookup620: pallet_working_group::types::GroupWorker + * Lookup616: pallet_working_group::types::GroupWorker **/ PalletWorkingGroupGroupWorker: { memberId: 'u64', @@ -4531,13 +4560,13 @@ export default { createdAt: 'u32' }, /** - * Lookup621: pallet_working_group::errors::Error + * Lookup617: pallet_working_group::errors::Error **/ PalletWorkingGroupErrorsError: { _enum: ['ArithmeticError', 'StakeBalanceCannotBeZero', 'OpeningDoesNotExist', 'CannotHireMultipleLeaders', 'WorkerApplicationDoesNotExist', 'MaxActiveWorkerNumberExceeded', 'SuccessfulWorkerApplicationDoesNotExist', 'CannotHireLeaderWhenLeaderExists', 'IsNotLeadAccount', 'CurrentLeadNotSet', 'WorkerDoesNotExist', 'InvalidMemberOrigin', 'SignerIsNotWorkerRoleAccount', 'BelowMinimumStakes', 'InsufficientBalanceToCoverStake', 'ApplicationStakeDoesntMatchOpening', 'OriginIsNotApplicant', 'WorkerIsLeaving', 'CannotRewardWithZero', 'InvalidStakingAccountForMember', 'ConflictStakesOnAccount', 'WorkerHasNoReward', 'UnstakingPeriodLessThanMinimum', 'CannotSpendZero', 'InsufficientBudgetForSpending', 'NoApplicationsProvided', 'CannotDecreaseStakeDeltaGreaterThanStake', 'ApplicationsNotForOpening', 'WorkerStorageValueTooLong', 'InsufficientTokensForFunding', 'ZeroTokensFunding', 'InsufficientBalanceForTransfer'] }, /** - * Lookup631: sp_runtime::MultiSignature + * Lookup627: sp_runtime::MultiSignature **/ SpRuntimeMultiSignature: { _enum: { @@ -4547,39 +4576,39 @@ export default { } }, /** - * Lookup632: sp_core::ecdsa::Signature + * Lookup628: sp_core::ecdsa::Signature **/ SpCoreEcdsaSignature: '[u8;65]', /** - * Lookup635: frame_system::extensions::check_non_zero_sender::CheckNonZeroSender + * Lookup631: frame_system::extensions::check_non_zero_sender::CheckNonZeroSender **/ FrameSystemExtensionsCheckNonZeroSender: 'Null', /** - * Lookup636: frame_system::extensions::check_spec_version::CheckSpecVersion + * Lookup632: frame_system::extensions::check_spec_version::CheckSpecVersion **/ FrameSystemExtensionsCheckSpecVersion: 'Null', /** - * Lookup637: frame_system::extensions::check_tx_version::CheckTxVersion + * Lookup633: frame_system::extensions::check_tx_version::CheckTxVersion **/ FrameSystemExtensionsCheckTxVersion: 'Null', /** - * Lookup638: frame_system::extensions::check_genesis::CheckGenesis + * Lookup634: frame_system::extensions::check_genesis::CheckGenesis **/ FrameSystemExtensionsCheckGenesis: 'Null', /** - * Lookup641: frame_system::extensions::check_nonce::CheckNonce + * Lookup637: frame_system::extensions::check_nonce::CheckNonce **/ FrameSystemExtensionsCheckNonce: 'Compact', /** - * Lookup642: frame_system::extensions::check_weight::CheckWeight + * Lookup638: frame_system::extensions::check_weight::CheckWeight **/ FrameSystemExtensionsCheckWeight: 'Null', /** - * Lookup643: pallet_transaction_payment::ChargeTransactionPayment + * Lookup639: pallet_transaction_payment::ChargeTransactionPayment **/ PalletTransactionPaymentChargeTransactionPayment: 'Compact', /** - * Lookup644: joystream_node_runtime::Runtime + * Lookup640: joystream_node_runtime::Runtime **/ JoystreamNodeRuntimeRuntime: 'Null' }; diff --git a/types/src/augment/registry.ts b/types/src/augment/registry.ts index 2d0e9dfdde..0b2df7739d 100644 --- a/types/src/augment/registry.ts +++ b/types/src/augment/registry.ts @@ -1,7 +1,7 @@ // Auto-generated via `yarn polkadot-types-from-defs`, do not edit /* eslint-disable */ -import type { FinalityGrandpaEquivocationPrecommit, FinalityGrandpaEquivocationPrevote, FinalityGrandpaPrecommit, FinalityGrandpaPrevote, FrameSupportDispatchRawOrigin, FrameSupportTokensMiscBalanceStatus, FrameSupportWeightsDispatchClass, FrameSupportWeightsDispatchInfo, FrameSupportWeightsPays, FrameSupportWeightsPerDispatchClassU32, FrameSupportWeightsPerDispatchClassU64, FrameSupportWeightsPerDispatchClassWeightsPerClass, FrameSupportWeightsRuntimeDbWeight, FrameSystemAccountInfo, FrameSystemCall, FrameSystemError, FrameSystemEvent, FrameSystemEventRecord, FrameSystemExtensionsCheckGenesis, FrameSystemExtensionsCheckNonZeroSender, FrameSystemExtensionsCheckNonce, FrameSystemExtensionsCheckSpecVersion, FrameSystemExtensionsCheckTxVersion, FrameSystemExtensionsCheckWeight, FrameSystemLastRuntimeUpgradeInfo, FrameSystemLimitsBlockLength, FrameSystemLimitsBlockWeights, FrameSystemLimitsWeightsPerClass, FrameSystemPhase, JoystreamNodeRuntimeNposSolution16, JoystreamNodeRuntimeOriginCaller, JoystreamNodeRuntimeRuntime, JoystreamNodeRuntimeSessionKeys, PalletAuthorshipCall, PalletAuthorshipError, PalletAuthorshipUncleEntryItem, PalletBabeCall, PalletBabeError, PalletBagsListCall, PalletBagsListError, PalletBagsListEvent, PalletBagsListListBag, PalletBagsListListListError, PalletBagsListListNode, PalletBalancesAccountData, PalletBalancesBalanceLock, PalletBalancesCall, PalletBalancesError, PalletBalancesEvent, PalletBalancesReasons, PalletBalancesReleases, PalletBalancesReserveData, PalletBountyAssuranceContractTypeBTreeSet, PalletBountyAssuranceContractTypeBoundedBTreeSet, PalletBountyBountyActor, PalletBountyBountyMilestone, PalletBountyBountyParametersBTreeSet, PalletBountyBountyParametersBoundedBTreeSet, PalletBountyBountyRecord, PalletBountyCall, PalletBountyContribution, PalletBountyEntryRecord, PalletBountyError, PalletBountyFundingType, PalletBountyOracleWorkEntryJudgment, PalletBountyRawEvent, PalletCommonBalanceKind, PalletCommonBloatBondRepayableBloatBond, PalletCommonFundingRequestParameters, PalletCommonMerkleTreeProofElementRecord, PalletCommonMerkleTreeSide, PalletCommonWorkingGroupIterableEnumsWorkingGroup, PalletConstitutionCall, PalletConstitutionConstitutionInfo, PalletConstitutionRawEvent, PalletContentCall, PalletContentChannelBagWitness, PalletContentChannelCreationParametersRecord, PalletContentChannelFundsDestination, PalletContentChannelOwner, PalletContentChannelPayoutsPayloadParametersRecord, PalletContentChannelRecord, PalletContentChannelTransferStatus, PalletContentChannelUpdateParametersRecord, PalletContentErrorsError, PalletContentInitTransferParameters, PalletContentIterableEnumsChannelActionPermission, PalletContentLimitPerPeriod, PalletContentNftCounter, PalletContentNftLimitPeriod, PalletContentNftTypesEnglishAuctionBid, PalletContentNftTypesEnglishAuctionParamsRecord, PalletContentNftTypesEnglishAuctionRecord, PalletContentNftTypesInitTransactionalStatusRecord, PalletContentNftTypesNftIssuanceParametersRecord, PalletContentNftTypesNftOwner, PalletContentNftTypesOpenAuctionBidRecord, PalletContentNftTypesOpenAuctionParamsRecord, PalletContentNftTypesOpenAuctionRecord, PalletContentNftTypesOwnedNft, PalletContentNftTypesTransactionalStatusRecord, PalletContentPendingTransfer, PalletContentPermissionsContentActor, PalletContentPermissionsCuratorGroupCuratorGroupRecord, PalletContentPermissionsCuratorGroupIterableEnumsContentModerationAction, PalletContentPermissionsCuratorGroupIterableEnumsPausableChannelFeature, PalletContentPullPaymentElement, PalletContentRawEvent, PalletContentStorageAssetsRecord, PalletContentTransferCommitmentParametersBTreeMap, PalletContentTransferCommitmentParametersBoundedBTreeMap, PalletContentUpdateChannelPayoutsParametersRecord, PalletContentVideoCreationParametersRecord, PalletContentVideoRecord, PalletContentVideoUpdateParametersRecord, PalletCouncilCall, PalletCouncilCandidate, PalletCouncilCouncilMember, PalletCouncilCouncilStage, PalletCouncilCouncilStageAnnouncing, PalletCouncilCouncilStageElection, PalletCouncilCouncilStageIdle, PalletCouncilCouncilStageUpdate, PalletCouncilError, PalletCouncilRawEvent, PalletElectionProviderMultiPhaseCall, PalletElectionProviderMultiPhaseElectionCompute, PalletElectionProviderMultiPhaseError, PalletElectionProviderMultiPhaseEvent, PalletElectionProviderMultiPhasePhase, PalletElectionProviderMultiPhaseRawSolution, PalletElectionProviderMultiPhaseReadySolution, PalletElectionProviderMultiPhaseRoundSnapshot, PalletElectionProviderMultiPhaseSignedSignedSubmission, PalletElectionProviderMultiPhaseSolutionOrSnapshotSize, PalletForumCall, PalletForumCategory, PalletForumError, PalletForumExtendedPostIdObject, PalletForumPost, PalletForumPrivilegedActor, PalletForumRawEvent, PalletForumThread, PalletGrandpaCall, PalletGrandpaError, PalletGrandpaEvent, PalletGrandpaStoredPendingChange, PalletGrandpaStoredState, PalletImOnlineBoundedOpaqueNetworkState, PalletImOnlineCall, PalletImOnlineError, PalletImOnlineEvent, PalletImOnlineHeartbeat, PalletImOnlineSr25519AppSr25519Public, PalletImOnlineSr25519AppSr25519Signature, PalletMembershipBuyMembershipParameters, PalletMembershipCall, PalletMembershipCreateMemberParameters, PalletMembershipError, PalletMembershipGiftMembershipParameters, PalletMembershipInviteMembershipParameters, PalletMembershipMembershipObject, PalletMembershipRawEvent, PalletMembershipStakingAccountMemberBinding, PalletMultisigCall, PalletMultisigError, PalletMultisigEvent, PalletMultisigMultisig, PalletMultisigTimepoint, PalletOffencesEvent, PalletProjectTokenAccountData, PalletProjectTokenCall, PalletProjectTokenErrorsError, PalletProjectTokenEventsRawEvent, PalletProjectTokenMerkleProof, PalletProjectTokenMerkleSide, PalletProjectTokenPatronageData, PalletProjectTokenPayment, PalletProjectTokenPaymentWithVesting, PalletProjectTokenRevenueSplitInfo, PalletProjectTokenRevenueSplitState, PalletProjectTokenSingleDataObjectUploadParams, PalletProjectTokenStakingStatus, PalletProjectTokenTimeline, PalletProjectTokenTokenAllocation, PalletProjectTokenTokenData, PalletProjectTokenTokenIssuanceParameters, PalletProjectTokenTokenSale, PalletProjectTokenTokenSaleParams, PalletProjectTokenTransferPolicy, PalletProjectTokenTransferPolicyParams, PalletProjectTokenTransfersPayment, PalletProjectTokenTransfersPaymentWithVesting, PalletProjectTokenValidated, PalletProjectTokenValidatedPayment, PalletProjectTokenVestingSchedule, PalletProjectTokenVestingScheduleParams, PalletProjectTokenVestingSource, PalletProjectTokenWhitelistParams, PalletProposalsCodexCall, PalletProposalsCodexCreateOpeningParameters, PalletProposalsCodexError, PalletProposalsCodexFillOpeningParameters, PalletProposalsCodexGeneralProposalParams, PalletProposalsCodexProposalDetails, PalletProposalsCodexRawEvent, PalletProposalsCodexTerminateRoleParameters, PalletProposalsDiscussionCall, PalletProposalsDiscussionDiscussionPost, PalletProposalsDiscussionDiscussionThread, PalletProposalsDiscussionError, PalletProposalsDiscussionRawEvent, PalletProposalsDiscussionThreadModeBTreeSet, PalletProposalsDiscussionThreadModeBoundedBTreeSet, PalletProposalsEngineCall, PalletProposalsEngineError, PalletProposalsEngineProposal, PalletProposalsEngineProposalParameters, PalletProposalsEngineProposalStatusesApprovedProposalDecision, PalletProposalsEngineProposalStatusesExecutionStatus, PalletProposalsEngineProposalStatusesProposalDecision, PalletProposalsEngineProposalStatusesProposalStatus, PalletProposalsEngineRawEvent, PalletProposalsEngineVoteKind, PalletProposalsEngineVotingResults, PalletReferendumCall, PalletReferendumCastVote, PalletReferendumError, PalletReferendumInstance1, PalletReferendumOptionResult, PalletReferendumRawEvent, PalletReferendumReferendumStage, PalletReferendumReferendumStageRevealing, PalletReferendumReferendumStageVoting, PalletSessionCall, PalletSessionError, PalletSessionEvent, PalletStakingActiveEraInfo, PalletStakingEraRewardPoints, PalletStakingExposure, PalletStakingForcing, PalletStakingIndividualExposure, PalletStakingNominations, PalletStakingPalletCall, PalletStakingPalletConfigOpPerbill, PalletStakingPalletConfigOpPercent, PalletStakingPalletConfigOpU128, PalletStakingPalletConfigOpU32, PalletStakingPalletError, PalletStakingPalletEvent, PalletStakingReleases, PalletStakingRewardDestination, PalletStakingSlashingSlashingSpans, PalletStakingSlashingSpanRecord, PalletStakingStakingLedger, PalletStakingUnappliedSlash, PalletStakingUnlockChunk, PalletStakingValidatorPrefs, PalletStorageBagIdType, PalletStorageBagRecord, PalletStorageCall, PalletStorageDataObject, PalletStorageDataObjectCreationParameters, PalletStorageDistributionBucketFamilyRecord, PalletStorageDistributionBucketIdRecord, PalletStorageDistributionBucketRecord, PalletStorageDynBagCreationParametersRecord, PalletStorageDynamicBagCreationPolicy, PalletStorageDynamicBagIdType, PalletStorageDynamicBagType, PalletStorageError, PalletStorageRawEvent, PalletStorageStaticBagId, PalletStorageStorageBucketOperatorStatus, PalletStorageStorageBucketRecord, PalletStorageUploadParametersRecord, PalletStorageVoucher, PalletTimestampCall, PalletTransactionPaymentChargeTransactionPayment, PalletTransactionPaymentReleases, PalletUtilityCall, PalletUtilityError, PalletUtilityEvent, PalletUtilityRawEvent, PalletVestingCall, PalletVestingError, PalletVestingEvent, PalletVestingReleases, PalletVestingVestingInfo, PalletWorkingGroupApplyOnOpeningParams, PalletWorkingGroupCall, PalletWorkingGroupErrorsError, PalletWorkingGroupGroupWorker, PalletWorkingGroupInstance1, PalletWorkingGroupInstance2, PalletWorkingGroupInstance3, PalletWorkingGroupInstance4, PalletWorkingGroupInstance5, PalletWorkingGroupInstance6, PalletWorkingGroupInstance7, PalletWorkingGroupInstance8, PalletWorkingGroupInstance9, PalletWorkingGroupJobApplication, PalletWorkingGroupOpening, PalletWorkingGroupOpeningType, PalletWorkingGroupRawEventInstance1, PalletWorkingGroupRawEventInstance2, PalletWorkingGroupRawEventInstance3, PalletWorkingGroupRawEventInstance4, PalletWorkingGroupRawEventInstance5, PalletWorkingGroupRawEventInstance6, PalletWorkingGroupRawEventInstance7, PalletWorkingGroupRawEventInstance8, PalletWorkingGroupRawEventInstance9, PalletWorkingGroupRewardPaymentType, PalletWorkingGroupStakeParameters, PalletWorkingGroupStakePolicy, SpAuthorityDiscoveryAppPublic, SpConsensusBabeAllowedSlots, SpConsensusBabeAppPublic, SpConsensusBabeBabeEpochConfiguration, SpConsensusBabeDigestsNextConfigDescriptor, SpConsensusBabeDigestsPreDigest, SpConsensusBabeDigestsPrimaryPreDigest, SpConsensusBabeDigestsSecondaryPlainPreDigest, SpConsensusBabeDigestsSecondaryVRFPreDigest, SpConsensusSlotsEquivocationProof, SpCoreCryptoKeyTypeId, SpCoreEcdsaSignature, SpCoreEd25519Public, SpCoreEd25519Signature, SpCoreOffchainOpaqueNetworkState, SpCoreSr25519Public, SpCoreSr25519Signature, SpCoreVoid, SpFinalityGrandpaAppPublic, SpFinalityGrandpaAppSignature, SpFinalityGrandpaEquivocation, SpFinalityGrandpaEquivocationProof, SpNposElectionsElectionScore, SpNposElectionsSupport, SpRuntimeArithmeticError, SpRuntimeBlakeTwo256, SpRuntimeDigest, SpRuntimeDigestDigestItem, SpRuntimeDispatchError, SpRuntimeHeader, SpRuntimeModuleError, SpRuntimeMultiSignature, SpRuntimeTokenError, SpRuntimeTransactionalError, SpSessionMembershipProof, SpStakingOffenceOffenceDetails, SpVersionRuntimeVersion } from '@polkadot/types/lookup'; +import type { FinalityGrandpaEquivocationPrecommit, FinalityGrandpaEquivocationPrevote, FinalityGrandpaPrecommit, FinalityGrandpaPrevote, FrameSupportDispatchDispatchClass, FrameSupportDispatchDispatchInfo, FrameSupportDispatchPays, FrameSupportDispatchPerDispatchClassU32, FrameSupportDispatchPerDispatchClassWeight, FrameSupportDispatchPerDispatchClassWeightsPerClass, FrameSupportDispatchRawOrigin, FrameSupportTokensMiscBalanceStatus, FrameSystemAccountInfo, FrameSystemCall, FrameSystemError, FrameSystemEvent, FrameSystemEventRecord, FrameSystemExtensionsCheckGenesis, FrameSystemExtensionsCheckNonZeroSender, FrameSystemExtensionsCheckNonce, FrameSystemExtensionsCheckSpecVersion, FrameSystemExtensionsCheckTxVersion, FrameSystemExtensionsCheckWeight, FrameSystemLastRuntimeUpgradeInfo, FrameSystemLimitsBlockLength, FrameSystemLimitsBlockWeights, FrameSystemLimitsWeightsPerClass, FrameSystemPhase, JoystreamNodeRuntimeNposSolution16, JoystreamNodeRuntimeOriginCaller, JoystreamNodeRuntimeRuntime, JoystreamNodeRuntimeSessionKeys, PalletBabeCall, PalletBabeError, PalletBagsListCall, PalletBagsListError, PalletBagsListEvent, PalletBagsListListBag, PalletBagsListListListError, PalletBagsListListNode, PalletBalancesAccountData, PalletBalancesBalanceLock, PalletBalancesCall, PalletBalancesError, PalletBalancesEvent, PalletBalancesReasons, PalletBalancesReserveData, PalletBountyAssuranceContractTypeBTreeSet, PalletBountyAssuranceContractTypeBoundedBTreeSet, PalletBountyBountyActor, PalletBountyBountyMilestone, PalletBountyBountyParametersBTreeSet, PalletBountyBountyParametersBoundedBTreeSet, PalletBountyBountyRecord, PalletBountyCall, PalletBountyContribution, PalletBountyEntryRecord, PalletBountyError, PalletBountyFundingType, PalletBountyOracleWorkEntryJudgment, PalletBountyRawEvent, PalletCommonBalanceKind, PalletCommonBloatBondRepayableBloatBond, PalletCommonFundingRequestParameters, PalletCommonMerkleTreeProofElementRecord, PalletCommonMerkleTreeSide, PalletCommonWorkingGroupIterableEnumsWorkingGroup, PalletConstitutionCall, PalletConstitutionConstitutionInfo, PalletConstitutionRawEvent, PalletContentCall, PalletContentChannelBagWitness, PalletContentChannelCreationParametersRecord, PalletContentChannelFundsDestination, PalletContentChannelOwner, PalletContentChannelPayoutsPayloadParametersRecord, PalletContentChannelRecord, PalletContentChannelTransferStatus, PalletContentChannelUpdateParametersRecord, PalletContentErrorsError, PalletContentInitTransferParameters, PalletContentIterableEnumsChannelActionPermission, PalletContentLimitPerPeriod, PalletContentNftCounter, PalletContentNftLimitPeriod, PalletContentNftTypesEnglishAuctionBid, PalletContentNftTypesEnglishAuctionParamsRecord, PalletContentNftTypesEnglishAuctionRecord, PalletContentNftTypesInitTransactionalStatusRecord, PalletContentNftTypesNftIssuanceParametersRecord, PalletContentNftTypesNftOwner, PalletContentNftTypesOpenAuctionBidRecord, PalletContentNftTypesOpenAuctionParamsRecord, PalletContentNftTypesOpenAuctionRecord, PalletContentNftTypesOwnedNft, PalletContentNftTypesTransactionalStatusRecord, PalletContentPendingTransfer, PalletContentPermissionsContentActor, PalletContentPermissionsCuratorGroupCuratorGroupRecord, PalletContentPermissionsCuratorGroupIterableEnumsContentModerationAction, PalletContentPermissionsCuratorGroupIterableEnumsPausableChannelFeature, PalletContentPullPaymentElement, PalletContentRawEvent, PalletContentStorageAssetsRecord, PalletContentTransferCommitmentParametersBTreeMap, PalletContentTransferCommitmentParametersBoundedBTreeMap, PalletContentUpdateChannelPayoutsParametersRecord, PalletContentVideoCreationParametersRecord, PalletContentVideoRecord, PalletContentVideoUpdateParametersRecord, PalletCouncilCall, PalletCouncilCandidate, PalletCouncilCouncilMember, PalletCouncilCouncilStage, PalletCouncilCouncilStageAnnouncing, PalletCouncilCouncilStageElection, PalletCouncilCouncilStageIdle, PalletCouncilCouncilStageUpdate, PalletCouncilError, PalletCouncilRawEvent, PalletElectionProviderMultiPhaseCall, PalletElectionProviderMultiPhaseElectionCompute, PalletElectionProviderMultiPhaseError, PalletElectionProviderMultiPhaseEvent, PalletElectionProviderMultiPhasePhase, PalletElectionProviderMultiPhaseRawSolution, PalletElectionProviderMultiPhaseReadySolution, PalletElectionProviderMultiPhaseRoundSnapshot, PalletElectionProviderMultiPhaseSignedSignedSubmission, PalletElectionProviderMultiPhaseSolutionOrSnapshotSize, PalletForumCall, PalletForumCategory, PalletForumError, PalletForumExtendedPostIdObject, PalletForumPost, PalletForumPrivilegedActor, PalletForumRawEvent, PalletForumThread, PalletGrandpaCall, PalletGrandpaError, PalletGrandpaEvent, PalletGrandpaStoredPendingChange, PalletGrandpaStoredState, PalletImOnlineBoundedOpaqueNetworkState, PalletImOnlineCall, PalletImOnlineError, PalletImOnlineEvent, PalletImOnlineHeartbeat, PalletImOnlineSr25519AppSr25519Public, PalletImOnlineSr25519AppSr25519Signature, PalletMembershipBuyMembershipParameters, PalletMembershipCall, PalletMembershipCreateMemberParameters, PalletMembershipError, PalletMembershipGiftMembershipParameters, PalletMembershipInviteMembershipParameters, PalletMembershipMembershipObject, PalletMembershipRawEvent, PalletMembershipStakingAccountMemberBinding, PalletMultisigCall, PalletMultisigError, PalletMultisigEvent, PalletMultisigMultisig, PalletMultisigTimepoint, PalletOffencesEvent, PalletProjectTokenAccountData, PalletProjectTokenCall, PalletProjectTokenErrorsError, PalletProjectTokenEventsRawEvent, PalletProjectTokenMerkleProof, PalletProjectTokenMerkleSide, PalletProjectTokenPatronageData, PalletProjectTokenPayment, PalletProjectTokenPaymentWithVesting, PalletProjectTokenRevenueSplitInfo, PalletProjectTokenRevenueSplitState, PalletProjectTokenSingleDataObjectUploadParams, PalletProjectTokenStakingStatus, PalletProjectTokenTimeline, PalletProjectTokenTokenAllocation, PalletProjectTokenTokenData, PalletProjectTokenTokenIssuanceParameters, PalletProjectTokenTokenSale, PalletProjectTokenTokenSaleParams, PalletProjectTokenTransferPolicy, PalletProjectTokenTransferPolicyParams, PalletProjectTokenTransfersPayment, PalletProjectTokenTransfersPaymentWithVesting, PalletProjectTokenValidated, PalletProjectTokenValidatedPayment, PalletProjectTokenVestingSchedule, PalletProjectTokenVestingScheduleParams, PalletProjectTokenVestingSource, PalletProjectTokenWhitelistParams, PalletProposalsCodexCall, PalletProposalsCodexCreateOpeningParameters, PalletProposalsCodexError, PalletProposalsCodexFillOpeningParameters, PalletProposalsCodexGeneralProposalParams, PalletProposalsCodexProposalDetails, PalletProposalsCodexRawEvent, PalletProposalsCodexTerminateRoleParameters, PalletProposalsDiscussionCall, PalletProposalsDiscussionDiscussionPost, PalletProposalsDiscussionDiscussionThread, PalletProposalsDiscussionError, PalletProposalsDiscussionRawEvent, PalletProposalsDiscussionThreadModeBTreeSet, PalletProposalsDiscussionThreadModeBoundedBTreeSet, PalletProposalsEngineCall, PalletProposalsEngineError, PalletProposalsEngineProposal, PalletProposalsEngineProposalParameters, PalletProposalsEngineProposalStatusesApprovedProposalDecision, PalletProposalsEngineProposalStatusesExecutionStatus, PalletProposalsEngineProposalStatusesProposalDecision, PalletProposalsEngineProposalStatusesProposalStatus, PalletProposalsEngineRawEvent, PalletProposalsEngineVoteKind, PalletProposalsEngineVotingResults, PalletReferendumCall, PalletReferendumCastVote, PalletReferendumError, PalletReferendumInstance1, PalletReferendumOptionResult, PalletReferendumRawEvent, PalletReferendumReferendumStage, PalletReferendumReferendumStageRevealing, PalletReferendumReferendumStageVoting, PalletSessionCall, PalletSessionError, PalletSessionEvent, PalletStakingActiveEraInfo, PalletStakingEraRewardPoints, PalletStakingExposure, PalletStakingForcing, PalletStakingIndividualExposure, PalletStakingNominations, PalletStakingPalletCall, PalletStakingPalletConfigOpPerbill, PalletStakingPalletConfigOpPercent, PalletStakingPalletConfigOpU128, PalletStakingPalletConfigOpU32, PalletStakingPalletError, PalletStakingPalletEvent, PalletStakingRewardDestination, PalletStakingSlashingSlashingSpans, PalletStakingSlashingSpanRecord, PalletStakingStakingLedger, PalletStakingUnappliedSlash, PalletStakingUnlockChunk, PalletStakingValidatorPrefs, PalletStorageBagIdType, PalletStorageBagRecord, PalletStorageCall, PalletStorageDataObject, PalletStorageDataObjectCreationParameters, PalletStorageDistributionBucketFamilyRecord, PalletStorageDistributionBucketIdRecord, PalletStorageDistributionBucketRecord, PalletStorageDynBagCreationParametersRecord, PalletStorageDynamicBagCreationPolicy, PalletStorageDynamicBagIdType, PalletStorageDynamicBagType, PalletStorageError, PalletStorageRawEvent, PalletStorageStaticBagId, PalletStorageStorageBucketOperatorStatus, PalletStorageStorageBucketRecord, PalletStorageUploadParametersRecord, PalletStorageVoucher, PalletTimestampCall, PalletTransactionPaymentChargeTransactionPayment, PalletTransactionPaymentEvent, PalletTransactionPaymentReleases, PalletUtilityCall, PalletUtilityError, PalletUtilityEvent, PalletUtilityRawEvent, PalletVestingCall, PalletVestingError, PalletVestingEvent, PalletVestingReleases, PalletVestingVestingInfo, PalletWorkingGroupApplyOnOpeningParams, PalletWorkingGroupCall, PalletWorkingGroupErrorsError, PalletWorkingGroupGroupWorker, PalletWorkingGroupInstance1, PalletWorkingGroupInstance2, PalletWorkingGroupInstance3, PalletWorkingGroupInstance4, PalletWorkingGroupInstance5, PalletWorkingGroupInstance6, PalletWorkingGroupInstance7, PalletWorkingGroupInstance8, PalletWorkingGroupInstance9, PalletWorkingGroupJobApplication, PalletWorkingGroupOpening, PalletWorkingGroupOpeningType, PalletWorkingGroupRawEventInstance1, PalletWorkingGroupRawEventInstance2, PalletWorkingGroupRawEventInstance3, PalletWorkingGroupRawEventInstance4, PalletWorkingGroupRawEventInstance5, PalletWorkingGroupRawEventInstance6, PalletWorkingGroupRawEventInstance7, PalletWorkingGroupRawEventInstance8, PalletWorkingGroupRawEventInstance9, PalletWorkingGroupRewardPaymentType, PalletWorkingGroupStakeParameters, PalletWorkingGroupStakePolicy, SpArithmeticArithmeticError, SpAuthorityDiscoveryAppPublic, SpConsensusBabeAllowedSlots, SpConsensusBabeAppPublic, SpConsensusBabeBabeEpochConfiguration, SpConsensusBabeDigestsNextConfigDescriptor, SpConsensusBabeDigestsPreDigest, SpConsensusBabeDigestsPrimaryPreDigest, SpConsensusBabeDigestsSecondaryPlainPreDigest, SpConsensusBabeDigestsSecondaryVRFPreDigest, SpConsensusSlotsEquivocationProof, SpCoreCryptoKeyTypeId, SpCoreEcdsaSignature, SpCoreEd25519Public, SpCoreEd25519Signature, SpCoreOffchainOpaqueNetworkState, SpCoreSr25519Public, SpCoreSr25519Signature, SpCoreVoid, SpFinalityGrandpaAppPublic, SpFinalityGrandpaAppSignature, SpFinalityGrandpaEquivocation, SpFinalityGrandpaEquivocationProof, SpNposElectionsElectionScore, SpNposElectionsSupport, SpRuntimeBlakeTwo256, SpRuntimeDigest, SpRuntimeDigestDigestItem, SpRuntimeDispatchError, SpRuntimeHeader, SpRuntimeModuleError, SpRuntimeMultiSignature, SpRuntimeTokenError, SpRuntimeTransactionalError, SpSessionMembershipProof, SpStakingOffenceOffenceDetails, SpVersionRuntimeVersion, SpWeightsRuntimeDbWeight, SpWeightsWeightV2Weight } from '@polkadot/types/lookup'; declare module '@polkadot/types/types/registry' { export interface InterfaceTypes { @@ -9,15 +9,14 @@ declare module '@polkadot/types/types/registry' { FinalityGrandpaEquivocationPrevote: FinalityGrandpaEquivocationPrevote; FinalityGrandpaPrecommit: FinalityGrandpaPrecommit; FinalityGrandpaPrevote: FinalityGrandpaPrevote; + FrameSupportDispatchDispatchClass: FrameSupportDispatchDispatchClass; + FrameSupportDispatchDispatchInfo: FrameSupportDispatchDispatchInfo; + FrameSupportDispatchPays: FrameSupportDispatchPays; + FrameSupportDispatchPerDispatchClassU32: FrameSupportDispatchPerDispatchClassU32; + FrameSupportDispatchPerDispatchClassWeight: FrameSupportDispatchPerDispatchClassWeight; + FrameSupportDispatchPerDispatchClassWeightsPerClass: FrameSupportDispatchPerDispatchClassWeightsPerClass; FrameSupportDispatchRawOrigin: FrameSupportDispatchRawOrigin; FrameSupportTokensMiscBalanceStatus: FrameSupportTokensMiscBalanceStatus; - FrameSupportWeightsDispatchClass: FrameSupportWeightsDispatchClass; - FrameSupportWeightsDispatchInfo: FrameSupportWeightsDispatchInfo; - FrameSupportWeightsPays: FrameSupportWeightsPays; - FrameSupportWeightsPerDispatchClassU32: FrameSupportWeightsPerDispatchClassU32; - FrameSupportWeightsPerDispatchClassU64: FrameSupportWeightsPerDispatchClassU64; - FrameSupportWeightsPerDispatchClassWeightsPerClass: FrameSupportWeightsPerDispatchClassWeightsPerClass; - FrameSupportWeightsRuntimeDbWeight: FrameSupportWeightsRuntimeDbWeight; FrameSystemAccountInfo: FrameSystemAccountInfo; FrameSystemCall: FrameSystemCall; FrameSystemError: FrameSystemError; @@ -38,9 +37,6 @@ declare module '@polkadot/types/types/registry' { JoystreamNodeRuntimeOriginCaller: JoystreamNodeRuntimeOriginCaller; JoystreamNodeRuntimeRuntime: JoystreamNodeRuntimeRuntime; JoystreamNodeRuntimeSessionKeys: JoystreamNodeRuntimeSessionKeys; - PalletAuthorshipCall: PalletAuthorshipCall; - PalletAuthorshipError: PalletAuthorshipError; - PalletAuthorshipUncleEntryItem: PalletAuthorshipUncleEntryItem; PalletBabeCall: PalletBabeCall; PalletBabeError: PalletBabeError; PalletBagsListCall: PalletBagsListCall; @@ -55,7 +51,6 @@ declare module '@polkadot/types/types/registry' { PalletBalancesError: PalletBalancesError; PalletBalancesEvent: PalletBalancesEvent; PalletBalancesReasons: PalletBalancesReasons; - PalletBalancesReleases: PalletBalancesReleases; PalletBalancesReserveData: PalletBalancesReserveData; PalletBountyAssuranceContractTypeBTreeSet: PalletBountyAssuranceContractTypeBTreeSet; PalletBountyAssuranceContractTypeBoundedBTreeSet: PalletBountyAssuranceContractTypeBoundedBTreeSet; @@ -255,7 +250,6 @@ declare module '@polkadot/types/types/registry' { PalletStakingPalletConfigOpU32: PalletStakingPalletConfigOpU32; PalletStakingPalletError: PalletStakingPalletError; PalletStakingPalletEvent: PalletStakingPalletEvent; - PalletStakingReleases: PalletStakingReleases; PalletStakingRewardDestination: PalletStakingRewardDestination; PalletStakingSlashingSlashingSpans: PalletStakingSlashingSlashingSpans; PalletStakingSlashingSpanRecord: PalletStakingSlashingSpanRecord; @@ -284,6 +278,7 @@ declare module '@polkadot/types/types/registry' { PalletStorageVoucher: PalletStorageVoucher; PalletTimestampCall: PalletTimestampCall; PalletTransactionPaymentChargeTransactionPayment: PalletTransactionPaymentChargeTransactionPayment; + PalletTransactionPaymentEvent: PalletTransactionPaymentEvent; PalletTransactionPaymentReleases: PalletTransactionPaymentReleases; PalletUtilityCall: PalletUtilityCall; PalletUtilityError: PalletUtilityError; @@ -322,6 +317,7 @@ declare module '@polkadot/types/types/registry' { PalletWorkingGroupRewardPaymentType: PalletWorkingGroupRewardPaymentType; PalletWorkingGroupStakeParameters: PalletWorkingGroupStakeParameters; PalletWorkingGroupStakePolicy: PalletWorkingGroupStakePolicy; + SpArithmeticArithmeticError: SpArithmeticArithmeticError; SpAuthorityDiscoveryAppPublic: SpAuthorityDiscoveryAppPublic; SpConsensusBabeAllowedSlots: SpConsensusBabeAllowedSlots; SpConsensusBabeAppPublic: SpConsensusBabeAppPublic; @@ -346,7 +342,6 @@ declare module '@polkadot/types/types/registry' { SpFinalityGrandpaEquivocationProof: SpFinalityGrandpaEquivocationProof; SpNposElectionsElectionScore: SpNposElectionsElectionScore; SpNposElectionsSupport: SpNposElectionsSupport; - SpRuntimeArithmeticError: SpRuntimeArithmeticError; SpRuntimeBlakeTwo256: SpRuntimeBlakeTwo256; SpRuntimeDigest: SpRuntimeDigest; SpRuntimeDigestDigestItem: SpRuntimeDigestDigestItem; @@ -359,5 +354,7 @@ declare module '@polkadot/types/types/registry' { SpSessionMembershipProof: SpSessionMembershipProof; SpStakingOffenceOffenceDetails: SpStakingOffenceOffenceDetails; SpVersionRuntimeVersion: SpVersionRuntimeVersion; + SpWeightsRuntimeDbWeight: SpWeightsRuntimeDbWeight; + SpWeightsWeightV2Weight: SpWeightsWeightV2Weight; } // InterfaceTypes } // declare module diff --git a/types/src/augment/types-lookup.ts b/types/src/augment/types-lookup.ts index 79138beb61..7793087c10 100644 --- a/types/src/augment/types-lookup.ts +++ b/types/src/augment/types-lookup.ts @@ -2,7 +2,7 @@ /* eslint-disable */ declare module '@polkadot/types/lookup' { - import type { BTreeMap, BTreeSet, Bytes, Compact, Enum, Null, Option, Result, Struct, Text, U8aFixed, Vec, WrapperKeepOpaque, bool, u128, u16, u32, u64, u8 } from '@polkadot/types-codec'; + import type { BTreeMap, BTreeSet, Bytes, Compact, Enum, Null, Option, Result, Struct, Text, U8aFixed, Vec, bool, u128, u16, u32, u64, u8 } from '@polkadot/types-codec'; import type { ITuple } from '@polkadot/types-codec/types'; import type { AccountId32, Call, H256, PerU16, Perbill, Percent, Permill, Perquintill } from '@polkadot/types/interfaces/runtime'; import type { Event } from '@polkadot/types/interfaces/system'; @@ -24,19 +24,25 @@ declare module '@polkadot/types/lookup' { readonly feeFrozen: u128; } - /** @name FrameSupportWeightsPerDispatchClassU64 (7) */ - export interface FrameSupportWeightsPerDispatchClassU64 extends Struct { - readonly normal: u64; - readonly operational: u64; - readonly mandatory: u64; + /** @name FrameSupportDispatchPerDispatchClassWeight (7) */ + export interface FrameSupportDispatchPerDispatchClassWeight extends Struct { + readonly normal: SpWeightsWeightV2Weight; + readonly operational: SpWeightsWeightV2Weight; + readonly mandatory: SpWeightsWeightV2Weight; } - /** @name SpRuntimeDigest (11) */ + /** @name SpWeightsWeightV2Weight (8) */ + export interface SpWeightsWeightV2Weight extends Struct { + readonly refTime: Compact; + readonly proofSize: Compact; + } + + /** @name SpRuntimeDigest (13) */ export interface SpRuntimeDigest extends Struct { readonly logs: Vec; } - /** @name SpRuntimeDigestDigestItem (13) */ + /** @name SpRuntimeDigestDigestItem (15) */ export interface SpRuntimeDigestDigestItem extends Enum { readonly isOther: boolean; readonly asOther: Bytes; @@ -50,23 +56,23 @@ declare module '@polkadot/types/lookup' { readonly type: 'Other' | 'Consensus' | 'Seal' | 'PreRuntime' | 'RuntimeEnvironmentUpdated'; } - /** @name FrameSystemEventRecord (16) */ + /** @name FrameSystemEventRecord (18) */ export interface FrameSystemEventRecord extends Struct { readonly phase: FrameSystemPhase; readonly event: Event; readonly topics: Vec; } - /** @name FrameSystemEvent (18) */ + /** @name FrameSystemEvent (20) */ export interface FrameSystemEvent extends Enum { readonly isExtrinsicSuccess: boolean; readonly asExtrinsicSuccess: { - readonly dispatchInfo: FrameSupportWeightsDispatchInfo; + readonly dispatchInfo: FrameSupportDispatchDispatchInfo; } & Struct; readonly isExtrinsicFailed: boolean; readonly asExtrinsicFailed: { readonly dispatchError: SpRuntimeDispatchError; - readonly dispatchInfo: FrameSupportWeightsDispatchInfo; + readonly dispatchInfo: FrameSupportDispatchDispatchInfo; } & Struct; readonly isCodeUpdated: boolean; readonly isNewAccount: boolean; @@ -85,29 +91,29 @@ declare module '@polkadot/types/lookup' { readonly type: 'ExtrinsicSuccess' | 'ExtrinsicFailed' | 'CodeUpdated' | 'NewAccount' | 'KilledAccount' | 'Remarked'; } - /** @name FrameSupportWeightsDispatchInfo (19) */ - export interface FrameSupportWeightsDispatchInfo extends Struct { - readonly weight: u64; - readonly class: FrameSupportWeightsDispatchClass; - readonly paysFee: FrameSupportWeightsPays; + /** @name FrameSupportDispatchDispatchInfo (21) */ + export interface FrameSupportDispatchDispatchInfo extends Struct { + readonly weight: SpWeightsWeightV2Weight; + readonly class: FrameSupportDispatchDispatchClass; + readonly paysFee: FrameSupportDispatchPays; } - /** @name FrameSupportWeightsDispatchClass (20) */ - export interface FrameSupportWeightsDispatchClass extends Enum { + /** @name FrameSupportDispatchDispatchClass (22) */ + export interface FrameSupportDispatchDispatchClass extends Enum { readonly isNormal: boolean; readonly isOperational: boolean; readonly isMandatory: boolean; readonly type: 'Normal' | 'Operational' | 'Mandatory'; } - /** @name FrameSupportWeightsPays (21) */ - export interface FrameSupportWeightsPays extends Enum { + /** @name FrameSupportDispatchPays (23) */ + export interface FrameSupportDispatchPays extends Enum { readonly isYes: boolean; readonly isNo: boolean; readonly type: 'Yes' | 'No'; } - /** @name SpRuntimeDispatchError (22) */ + /** @name SpRuntimeDispatchError (24) */ export interface SpRuntimeDispatchError extends Enum { readonly isOther: boolean; readonly isCannotLookup: boolean; @@ -120,19 +126,22 @@ declare module '@polkadot/types/lookup' { readonly isToken: boolean; readonly asToken: SpRuntimeTokenError; readonly isArithmetic: boolean; - readonly asArithmetic: SpRuntimeArithmeticError; + readonly asArithmetic: SpArithmeticArithmeticError; readonly isTransactional: boolean; readonly asTransactional: SpRuntimeTransactionalError; - readonly type: 'Other' | 'CannotLookup' | 'BadOrigin' | 'Module' | 'ConsumerRemaining' | 'NoProviders' | 'TooManyConsumers' | 'Token' | 'Arithmetic' | 'Transactional'; + readonly isExhausted: boolean; + readonly isCorruption: boolean; + readonly isUnavailable: boolean; + readonly type: 'Other' | 'CannotLookup' | 'BadOrigin' | 'Module' | 'ConsumerRemaining' | 'NoProviders' | 'TooManyConsumers' | 'Token' | 'Arithmetic' | 'Transactional' | 'Exhausted' | 'Corruption' | 'Unavailable'; } - /** @name SpRuntimeModuleError (23) */ + /** @name SpRuntimeModuleError (25) */ export interface SpRuntimeModuleError extends Struct { readonly index: u8; readonly error: U8aFixed; } - /** @name SpRuntimeTokenError (24) */ + /** @name SpRuntimeTokenError (26) */ export interface SpRuntimeTokenError extends Enum { readonly isNoFunds: boolean; readonly isWouldDie: boolean; @@ -144,22 +153,22 @@ declare module '@polkadot/types/lookup' { readonly type: 'NoFunds' | 'WouldDie' | 'BelowMinimum' | 'CannotCreate' | 'UnknownAsset' | 'Frozen' | 'Unsupported'; } - /** @name SpRuntimeArithmeticError (25) */ - export interface SpRuntimeArithmeticError extends Enum { + /** @name SpArithmeticArithmeticError (27) */ + export interface SpArithmeticArithmeticError extends Enum { readonly isUnderflow: boolean; readonly isOverflow: boolean; readonly isDivisionByZero: boolean; readonly type: 'Underflow' | 'Overflow' | 'DivisionByZero'; } - /** @name SpRuntimeTransactionalError (26) */ + /** @name SpRuntimeTransactionalError (28) */ export interface SpRuntimeTransactionalError extends Enum { readonly isLimitReached: boolean; readonly isNoLayer: boolean; readonly type: 'LimitReached' | 'NoLayer'; } - /** @name PalletUtilityEvent (27) */ + /** @name PalletUtilityEvent (29) */ export interface PalletUtilityEvent extends Enum { readonly isBatchInterrupted: boolean; readonly asBatchInterrupted: { @@ -180,7 +189,7 @@ declare module '@polkadot/types/lookup' { readonly type: 'BatchInterrupted' | 'BatchCompleted' | 'BatchCompletedWithErrors' | 'ItemCompleted' | 'ItemFailed' | 'DispatchedAs'; } - /** @name PalletBalancesEvent (30) */ + /** @name PalletBalancesEvent (32) */ export interface PalletBalancesEvent extends Enum { readonly isEndowed: boolean; readonly asEndowed: { @@ -239,24 +248,38 @@ declare module '@polkadot/types/lookup' { readonly type: 'Endowed' | 'DustLost' | 'Transfer' | 'BalanceSet' | 'Reserved' | 'Unreserved' | 'ReserveRepatriated' | 'Deposit' | 'Withdraw' | 'Slashed'; } - /** @name FrameSupportTokensMiscBalanceStatus (31) */ + /** @name FrameSupportTokensMiscBalanceStatus (33) */ export interface FrameSupportTokensMiscBalanceStatus extends Enum { readonly isFree: boolean; readonly isReserved: boolean; readonly type: 'Free' | 'Reserved'; } - /** @name PalletElectionProviderMultiPhaseEvent (32) */ + /** @name PalletTransactionPaymentEvent (34) */ + export interface PalletTransactionPaymentEvent extends Enum { + readonly isTransactionFeePaid: boolean; + readonly asTransactionFeePaid: { + readonly who: AccountId32; + readonly actualFee: u128; + readonly tip: u128; + } & Struct; + readonly type: 'TransactionFeePaid'; + } + + /** @name PalletElectionProviderMultiPhaseEvent (35) */ export interface PalletElectionProviderMultiPhaseEvent extends Enum { readonly isSolutionStored: boolean; readonly asSolutionStored: { - readonly electionCompute: PalletElectionProviderMultiPhaseElectionCompute; + readonly compute: PalletElectionProviderMultiPhaseElectionCompute; + readonly origin: Option; readonly prevEjected: bool; } & Struct; readonly isElectionFinalized: boolean; readonly asElectionFinalized: { - readonly electionCompute: Option; + readonly compute: PalletElectionProviderMultiPhaseElectionCompute; + readonly score: SpNposElectionsElectionScore; } & Struct; + readonly isElectionFailed: boolean; readonly isRewarded: boolean; readonly asRewarded: { readonly account: AccountId32; @@ -267,18 +290,16 @@ declare module '@polkadot/types/lookup' { readonly account: AccountId32; readonly value: u128; } & Struct; - readonly isSignedPhaseStarted: boolean; - readonly asSignedPhaseStarted: { + readonly isPhaseTransitioned: boolean; + readonly asPhaseTransitioned: { + readonly from: PalletElectionProviderMultiPhasePhase; + readonly to: PalletElectionProviderMultiPhasePhase; readonly round: u32; } & Struct; - readonly isUnsignedPhaseStarted: boolean; - readonly asUnsignedPhaseStarted: { - readonly round: u32; - } & Struct; - readonly type: 'SolutionStored' | 'ElectionFinalized' | 'Rewarded' | 'Slashed' | 'SignedPhaseStarted' | 'UnsignedPhaseStarted'; + readonly type: 'SolutionStored' | 'ElectionFinalized' | 'ElectionFailed' | 'Rewarded' | 'Slashed' | 'PhaseTransitioned'; } - /** @name PalletElectionProviderMultiPhaseElectionCompute (33) */ + /** @name PalletElectionProviderMultiPhaseElectionCompute (36) */ export interface PalletElectionProviderMultiPhaseElectionCompute extends Enum { readonly isOnChain: boolean; readonly isSigned: boolean; @@ -288,42 +309,110 @@ declare module '@polkadot/types/lookup' { readonly type: 'OnChain' | 'Signed' | 'Unsigned' | 'Fallback' | 'Emergency'; } - /** @name PalletStakingPalletEvent (36) */ + /** @name SpNposElectionsElectionScore (39) */ + export interface SpNposElectionsElectionScore extends Struct { + readonly minimalStake: u128; + readonly sumStake: u128; + readonly sumStakeSquared: u128; + } + + /** @name PalletElectionProviderMultiPhasePhase (40) */ + export interface PalletElectionProviderMultiPhasePhase extends Enum { + readonly isOff: boolean; + readonly isSigned: boolean; + readonly isUnsigned: boolean; + readonly asUnsigned: ITuple<[bool, u32]>; + readonly isEmergency: boolean; + readonly type: 'Off' | 'Signed' | 'Unsigned' | 'Emergency'; + } + + /** @name PalletStakingPalletEvent (42) */ export interface PalletStakingPalletEvent extends Enum { readonly isEraPaid: boolean; - readonly asEraPaid: ITuple<[u32, u128, u128]>; + readonly asEraPaid: { + readonly eraIndex: u32; + readonly validatorPayout: u128; + readonly remainder: u128; + } & Struct; readonly isRewarded: boolean; - readonly asRewarded: ITuple<[AccountId32, u128]>; + readonly asRewarded: { + readonly stash: AccountId32; + readonly amount: u128; + } & Struct; readonly isSlashed: boolean; - readonly asSlashed: ITuple<[AccountId32, u128]>; + readonly asSlashed: { + readonly staker: AccountId32; + readonly amount: u128; + } & Struct; + readonly isSlashReported: boolean; + readonly asSlashReported: { + readonly validator: AccountId32; + readonly fraction: Perbill; + readonly slashEra: u32; + } & Struct; readonly isOldSlashingReportDiscarded: boolean; - readonly asOldSlashingReportDiscarded: u32; + readonly asOldSlashingReportDiscarded: { + readonly sessionIndex: u32; + } & Struct; readonly isStakersElected: boolean; readonly isBonded: boolean; - readonly asBonded: ITuple<[AccountId32, u128]>; + readonly asBonded: { + readonly stash: AccountId32; + readonly amount: u128; + } & Struct; readonly isUnbonded: boolean; - readonly asUnbonded: ITuple<[AccountId32, u128]>; + readonly asUnbonded: { + readonly stash: AccountId32; + readonly amount: u128; + } & Struct; readonly isWithdrawn: boolean; - readonly asWithdrawn: ITuple<[AccountId32, u128]>; + readonly asWithdrawn: { + readonly stash: AccountId32; + readonly amount: u128; + } & Struct; readonly isKicked: boolean; - readonly asKicked: ITuple<[AccountId32, AccountId32]>; + readonly asKicked: { + readonly nominator: AccountId32; + readonly stash: AccountId32; + } & Struct; readonly isStakingElectionFailed: boolean; readonly isChilled: boolean; - readonly asChilled: AccountId32; + readonly asChilled: { + readonly stash: AccountId32; + } & Struct; readonly isPayoutStarted: boolean; - readonly asPayoutStarted: ITuple<[u32, AccountId32]>; + readonly asPayoutStarted: { + readonly eraIndex: u32; + readonly validatorStash: AccountId32; + } & Struct; readonly isValidatorPrefsSet: boolean; - readonly asValidatorPrefsSet: ITuple<[AccountId32, PalletStakingValidatorPrefs]>; - readonly type: 'EraPaid' | 'Rewarded' | 'Slashed' | 'OldSlashingReportDiscarded' | 'StakersElected' | 'Bonded' | 'Unbonded' | 'Withdrawn' | 'Kicked' | 'StakingElectionFailed' | 'Chilled' | 'PayoutStarted' | 'ValidatorPrefsSet'; + readonly asValidatorPrefsSet: { + readonly stash: AccountId32; + readonly prefs: PalletStakingValidatorPrefs; + } & Struct; + readonly isForceEra: boolean; + readonly asForceEra: { + readonly mode: PalletStakingForcing; + } & Struct; + readonly type: 'EraPaid' | 'Rewarded' | 'Slashed' | 'SlashReported' | 'OldSlashingReportDiscarded' | 'StakersElected' | 'Bonded' | 'Unbonded' | 'Withdrawn' | 'Kicked' | 'StakingElectionFailed' | 'Chilled' | 'PayoutStarted' | 'ValidatorPrefsSet' | 'ForceEra'; } - /** @name PalletStakingValidatorPrefs (37) */ + /** @name PalletStakingValidatorPrefs (44) */ export interface PalletStakingValidatorPrefs extends Struct { readonly commission: Compact; readonly blocked: bool; } - /** @name PalletSessionEvent (40) */ + /** @name PalletStakingForcing (46) */ + export interface PalletStakingForcing extends Enum { + readonly isNotForcing: boolean; + readonly isForceNew: boolean; + readonly isForceNone: boolean; + readonly isForceAlways: boolean; + readonly type: 'NotForcing' | 'ForceNew' | 'ForceNone' | 'ForceAlways'; + } + + /** @name PalletSessionEvent (47) */ export interface PalletSessionEvent extends Enum { readonly isNewSession: boolean; readonly asNewSession: { @@ -332,7 +421,7 @@ declare module '@polkadot/types/lookup' { readonly type: 'NewSession'; } - /** @name PalletGrandpaEvent (41) */ + /** @name PalletGrandpaEvent (48) */ export interface PalletGrandpaEvent extends Enum { readonly isNewAuthorities: boolean; readonly asNewAuthorities: { @@ -343,13 +432,13 @@ declare module '@polkadot/types/lookup' { readonly type: 'NewAuthorities' | 'Paused' | 'Resumed'; } - /** @name SpFinalityGrandpaAppPublic (44) */ + /** @name SpFinalityGrandpaAppPublic (51) */ export interface SpFinalityGrandpaAppPublic extends SpCoreEd25519Public {} - /** @name SpCoreEd25519Public (45) */ + /** @name SpCoreEd25519Public (52) */ export interface SpCoreEd25519Public extends U8aFixed {} - /** @name PalletImOnlineEvent (46) */ + /** @name PalletImOnlineEvent (53) */ export interface PalletImOnlineEvent extends Enum { readonly isHeartbeatReceived: boolean; readonly asHeartbeatReceived: { @@ -363,26 +452,26 @@ declare module '@polkadot/types/lookup' { readonly type: 'HeartbeatReceived' | 'AllGood' | 'SomeOffline'; } - /** @name PalletImOnlineSr25519AppSr25519Public (47) */ + /** @name PalletImOnlineSr25519AppSr25519Public (54) */ export interface PalletImOnlineSr25519AppSr25519Public extends SpCoreSr25519Public {} - /** @name SpCoreSr25519Public (48) */ + /** @name SpCoreSr25519Public (55) */ export interface SpCoreSr25519Public extends U8aFixed {} - /** @name PalletStakingExposure (51) */ + /** @name PalletStakingExposure (58) */ export interface PalletStakingExposure extends Struct { readonly total: Compact; readonly own: Compact; readonly others: Vec; } - /** @name PalletStakingIndividualExposure (54) */ + /** @name PalletStakingIndividualExposure (61) */ export interface PalletStakingIndividualExposure extends Struct { readonly who: AccountId32; readonly value: Compact; } - /** @name PalletOffencesEvent (55) */ + /** @name PalletOffencesEvent (62) */ export interface PalletOffencesEvent extends Enum { readonly isOffence: boolean; readonly asOffence: { @@ -392,7 +481,7 @@ declare module '@polkadot/types/lookup' { readonly type: 'Offence'; } - /** @name PalletBagsListEvent (57) */ + /** @name PalletBagsListEvent (64) */ export interface PalletBagsListEvent extends Enum { readonly isRebagged: boolean; readonly asRebagged: { @@ -408,7 +497,7 @@ declare module '@polkadot/types/lookup' { readonly type: 'Rebagged' | 'ScoreUpdated'; } - /** @name PalletVestingEvent (58) */ + /** @name PalletVestingEvent (65) */ export interface PalletVestingEvent extends Enum { readonly isVestingUpdated: boolean; readonly asVestingUpdated: { @@ -422,7 +511,7 @@ declare module '@polkadot/types/lookup' { readonly type: 'VestingUpdated' | 'VestingCompleted'; } - /** @name PalletMultisigEvent (59) */ + /** @name PalletMultisigEvent (66) */ export interface PalletMultisigEvent extends Enum { readonly isNewMultisig: boolean; readonly asNewMultisig: { @@ -455,13 +544,13 @@ declare module '@polkadot/types/lookup' { readonly type: 'NewMultisig' | 'MultisigApproval' | 'MultisigExecuted' | 'MultisigCancelled'; } - /** @name PalletMultisigTimepoint (60) */ + /** @name PalletMultisigTimepoint (67) */ export interface PalletMultisigTimepoint extends Struct { readonly height: u32; readonly index: u32; } - /** @name PalletCouncilRawEvent (61) */ + /** @name PalletCouncilRawEvent (68) */ export interface PalletCouncilRawEvent extends Enum { readonly isAnnouncingPeriodStarted: boolean; readonly asAnnouncingPeriodStarted: u32; @@ -504,7 +593,7 @@ declare module '@polkadot/types/lookup' { readonly type: 'AnnouncingPeriodStarted' | 'NotEnoughCandidates' | 'VotingPeriodStarted' | 'NewCandidate' | 'NewCouncilElected' | 'NewCouncilNotElected' | 'CandidacyStakeRelease' | 'CandidacyWithdraw' | 'CandidacyNoteSet' | 'RewardPayment' | 'BudgetBalanceSet' | 'BudgetRefill' | 'BudgetRefillPlanned' | 'BudgetIncrementUpdated' | 'CouncilorRewardUpdated' | 'RequestFunded' | 'CouncilBudgetFunded' | 'CouncilorRemarked' | 'CandidateRemarked'; } - /** @name PalletReferendumRawEvent (63) */ + /** @name PalletReferendumRawEvent (70) */ export interface PalletReferendumRawEvent extends Enum { readonly isReferendumStarted: boolean; readonly asReferendumStarted: ITuple<[u32, u32]>; @@ -525,16 +614,16 @@ declare module '@polkadot/types/lookup' { readonly type: 'ReferendumStarted' | 'ReferendumStartedForcefully' | 'RevealingStageStarted' | 'ReferendumFinished' | 'VoteCast' | 'VoteRevealed' | 'StakeReleased' | 'AccountOptedOutOfVoting'; } - /** @name PalletReferendumInstance1 (64) */ + /** @name PalletReferendumInstance1 (71) */ export type PalletReferendumInstance1 = Null; - /** @name PalletReferendumOptionResult (66) */ + /** @name PalletReferendumOptionResult (73) */ export interface PalletReferendumOptionResult extends Struct { readonly optionId: u64; readonly votePower: u128; } - /** @name PalletMembershipRawEvent (67) */ + /** @name PalletMembershipRawEvent (74) */ export interface PalletMembershipRawEvent extends Enum { readonly isMemberInvited: boolean; readonly asMemberInvited: ITuple<[u64, PalletMembershipInviteMembershipParameters, u128]>; @@ -573,7 +662,7 @@ declare module '@polkadot/types/lookup' { readonly type: 'MemberInvited' | 'MembershipGifted' | 'MembershipBought' | 'MemberProfileUpdated' | 'MemberAccountsUpdated' | 'MemberVerificationStatusUpdated' | 'ReferralCutUpdated' | 'InvitesTransferred' | 'MembershipPriceUpdated' | 'InitialInvitationBalanceUpdated' | 'LeaderInvitationQuotaUpdated' | 'InitialInvitationCountUpdated' | 'StakingAccountAdded' | 'StakingAccountRemoved' | 'StakingAccountConfirmed' | 'MemberRemarked' | 'MemberCreated'; } - /** @name PalletMembershipBuyMembershipParameters (68) */ + /** @name PalletMembershipBuyMembershipParameters (75) */ export interface PalletMembershipBuyMembershipParameters extends Struct { readonly rootAccount: AccountId32; readonly controllerAccount: AccountId32; @@ -582,7 +671,7 @@ declare module '@polkadot/types/lookup' { readonly referrerId: Option; } - /** @name PalletMembershipInviteMembershipParameters (71) */ + /** @name PalletMembershipInviteMembershipParameters (78) */ export interface PalletMembershipInviteMembershipParameters extends Struct { readonly invitingMemberId: u64; readonly rootAccount: AccountId32; @@ -591,7 +680,7 @@ declare module '@polkadot/types/lookup' { readonly metadata: Bytes; } - /** @name PalletMembershipCreateMemberParameters (72) */ + /** @name PalletMembershipCreateMemberParameters (79) */ export interface PalletMembershipCreateMemberParameters extends Struct { readonly rootAccount: AccountId32; readonly controllerAccount: AccountId32; @@ -600,7 +689,7 @@ declare module '@polkadot/types/lookup' { readonly isFoundingMember: bool; } - /** @name PalletMembershipGiftMembershipParameters (73) */ + /** @name PalletMembershipGiftMembershipParameters (80) */ export interface PalletMembershipGiftMembershipParameters extends Struct { readonly rootAccount: AccountId32; readonly controllerAccount: AccountId32; @@ -612,7 +701,7 @@ declare module '@polkadot/types/lookup' { readonly applyRootAccountInvitationLock: Option; } - /** @name PalletForumRawEvent (78) */ + /** @name PalletForumRawEvent (84) */ export interface PalletForumRawEvent extends Enum { readonly isCategoryCreated: boolean; readonly asCategoryCreated: ITuple<[u64, Option, Bytes, Bytes]>; @@ -651,7 +740,7 @@ declare module '@polkadot/types/lookup' { readonly type: 'CategoryCreated' | 'CategoryArchivalStatusUpdated' | 'CategoryTitleUpdated' | 'CategoryDescriptionUpdated' | 'CategoryDeleted' | 'ThreadCreated' | 'ThreadModerated' | 'ThreadUpdated' | 'ThreadMetadataUpdated' | 'ThreadDeleted' | 'ThreadMoved' | 'PostAdded' | 'PostModerated' | 'PostDeleted' | 'PostTextUpdated' | 'CategoryStickyThreadUpdate' | 'CategoryMembershipOfModeratorUpdated'; } - /** @name PalletForumPrivilegedActor (79) */ + /** @name PalletForumPrivilegedActor (85) */ export interface PalletForumPrivilegedActor extends Enum { readonly isLead: boolean; readonly isModerator: boolean; @@ -659,21 +748,21 @@ declare module '@polkadot/types/lookup' { readonly type: 'Lead' | 'Moderator'; } - /** @name PalletForumExtendedPostIdObject (80) */ + /** @name PalletForumExtendedPostIdObject (86) */ export interface PalletForumExtendedPostIdObject extends Struct { readonly categoryId: u64; readonly threadId: u64; readonly postId: u64; } - /** @name PalletConstitutionRawEvent (85) */ + /** @name PalletConstitutionRawEvent (91) */ export interface PalletConstitutionRawEvent extends Enum { readonly isConstutionAmended: boolean; readonly asConstutionAmended: ITuple<[H256, Bytes]>; readonly type: 'ConstutionAmended'; } - /** @name PalletBountyRawEvent (86) */ + /** @name PalletBountyRawEvent (92) */ export interface PalletBountyRawEvent extends Enum { readonly isBountyCreated: boolean; readonly asBountyCreated: ITuple<[u64, PalletBountyBountyParametersBTreeSet, Bytes]>; @@ -724,7 +813,7 @@ declare module '@polkadot/types/lookup' { readonly type: 'BountyCreated' | 'BountyOracleSwitched' | 'BountyTerminated' | 'BountyFunded' | 'BountyMaxFundingReached' | 'BountyFundingWithdrawal' | 'BountyCreatorCherryWithdrawal' | 'BountyCreatorOracleRewardWithdrawal' | 'BountyOracleRewardWithdrawal' | 'BountyRemoved' | 'WorkEntryAnnounced' | 'WorkSubmitted' | 'OracleJudgmentSubmitted' | 'WorkEntrantFundsWithdrawn' | 'BountyContributorRemarked' | 'BountyOracleRemarked' | 'BountyEntrantRemarked' | 'BountyCreatorRemarked' | 'WorkSubmissionPeriodEnded' | 'WorkEntrantStakeUnlocked' | 'WorkEntrantStakeSlashed' | 'FunderStateBloatBondWithdrawn' | 'CreatorStateBloatBondWithdrawn'; } - /** @name PalletBountyBountyParametersBTreeSet (87) */ + /** @name PalletBountyBountyParametersBTreeSet (93) */ export interface PalletBountyBountyParametersBTreeSet extends Struct { readonly oracle: PalletBountyBountyActor; readonly contractType: PalletBountyAssuranceContractTypeBTreeSet; @@ -735,7 +824,7 @@ declare module '@polkadot/types/lookup' { readonly fundingType: PalletBountyFundingType; } - /** @name PalletBountyBountyActor (88) */ + /** @name PalletBountyBountyActor (94) */ export interface PalletBountyBountyActor extends Enum { readonly isCouncil: boolean; readonly isMember: boolean; @@ -743,7 +832,7 @@ declare module '@polkadot/types/lookup' { readonly type: 'Council' | 'Member'; } - /** @name PalletBountyAssuranceContractTypeBTreeSet (89) */ + /** @name PalletBountyAssuranceContractTypeBTreeSet (95) */ export interface PalletBountyAssuranceContractTypeBTreeSet extends Enum { readonly isOpen: boolean; readonly isClosed: boolean; @@ -751,7 +840,7 @@ declare module '@polkadot/types/lookup' { readonly type: 'Open' | 'Closed'; } - /** @name PalletBountyFundingType (90) */ + /** @name PalletBountyFundingType (96) */ export interface PalletBountyFundingType extends Enum { readonly isPerpetual: boolean; readonly asPerpetual: { @@ -765,7 +854,7 @@ declare module '@polkadot/types/lookup' { readonly type: 'Perpetual' | 'Limited'; } - /** @name PalletBountyOracleWorkEntryJudgment (92) */ + /** @name PalletBountyOracleWorkEntryJudgment (98) */ export interface PalletBountyOracleWorkEntryJudgment extends Enum { readonly isWinner: boolean; readonly asWinner: { @@ -779,7 +868,7 @@ declare module '@polkadot/types/lookup' { readonly type: 'Winner' | 'Rejected'; } - /** @name PalletUtilityRawEvent (95) */ + /** @name PalletUtilityRawEvent (101) */ export interface PalletUtilityRawEvent extends Enum { readonly isSignaled: boolean; readonly asSignaled: Bytes; @@ -792,7 +881,7 @@ declare module '@polkadot/types/lookup' { readonly type: 'Signaled' | 'RuntimeUpgraded' | 'UpdatedWorkingGroupBudget' | 'TokensBurned'; } - /** @name PalletCommonWorkingGroupIterableEnumsWorkingGroup (96) */ + /** @name PalletCommonWorkingGroupIterableEnumsWorkingGroup (102) */ export interface PalletCommonWorkingGroupIterableEnumsWorkingGroup extends Enum { readonly isForum: boolean; readonly isStorage: boolean; @@ -806,14 +895,14 @@ declare module '@polkadot/types/lookup' { readonly type: 'Forum' | 'Storage' | 'Content' | 'OperationsAlpha' | 'App' | 'Distribution' | 'OperationsBeta' | 'OperationsGamma' | 'Membership'; } - /** @name PalletCommonBalanceKind (97) */ + /** @name PalletCommonBalanceKind (103) */ export interface PalletCommonBalanceKind extends Enum { readonly isPositive: boolean; readonly isNegative: boolean; readonly type: 'Positive' | 'Negative'; } - /** @name PalletContentRawEvent (98) */ + /** @name PalletContentRawEvent (104) */ export interface PalletContentRawEvent extends Enum { readonly isCuratorGroupCreated: boolean; readonly asCuratorGroupCreated: u64; @@ -926,7 +1015,7 @@ declare module '@polkadot/types/lookup' { readonly type: 'CuratorGroupCreated' | 'CuratorGroupPermissionsUpdated' | 'CuratorGroupStatusSet' | 'CuratorAdded' | 'CuratorRemoved' | 'ChannelCreated' | 'ChannelUpdated' | 'ChannelPrivilegeLevelUpdated' | 'ChannelStateBloatBondValueUpdated' | 'VideoStateBloatBondValueUpdated' | 'ChannelAssetsRemoved' | 'ChannelDeleted' | 'ChannelDeletedByModerator' | 'ChannelVisibilitySetByModerator' | 'ChannelPausedFeaturesUpdatedByModerator' | 'ChannelAssetsDeletedByModerator' | 'ChannelFundsWithdrawn' | 'ChannelRewardClaimedAndWithdrawn' | 'VideoCreated' | 'VideoUpdated' | 'VideoDeleted' | 'VideoDeletedByModerator' | 'VideoVisibilitySetByModerator' | 'VideoAssetsDeletedByModerator' | 'ChannelPayoutsUpdated' | 'ChannelRewardUpdated' | 'EnglishAuctionStarted' | 'OpenAuctionStarted' | 'NftIssued' | 'NftDestroyed' | 'AuctionBidMade' | 'AuctionBidCanceled' | 'AuctionCanceled' | 'EnglishAuctionSettled' | 'BidMadeCompletingAuction' | 'OpenAuctionBidAccepted' | 'OfferStarted' | 'OfferAccepted' | 'OfferCanceled' | 'NftSellOrderMade' | 'NftBought' | 'BuyNowCanceled' | 'BuyNowPriceUpdated' | 'NftSlingedBackToTheOriginalArtist' | 'ChannelOwnerRemarked' | 'ChannelAgentRemarked' | 'NftOwnerRemarked' | 'InitializedChannelTransfer' | 'CancelChannelTransfer' | 'ChannelTransferAccepted' | 'GlobalNftLimitUpdated' | 'ChannelNftLimitUpdated' | 'ToggledNftLimits' | 'CreatorTokenIssued'; } - /** @name PalletContentPermissionsContentActor (99) */ + /** @name PalletContentPermissionsContentActor (105) */ export interface PalletContentPermissionsContentActor extends Enum { readonly isCurator: boolean; readonly asCurator: ITuple<[u64, u64]>; @@ -936,7 +1025,7 @@ declare module '@polkadot/types/lookup' { readonly type: 'Curator' | 'Member' | 'Lead'; } - /** @name PalletContentChannelRecord (100) */ + /** @name PalletContentChannelRecord (106) */ export interface PalletContentChannelRecord extends Struct { readonly owner: PalletContentChannelOwner; readonly numVideos: u64; @@ -954,7 +1043,7 @@ declare module '@polkadot/types/lookup' { readonly channelStateBloatBond: PalletCommonBloatBondRepayableBloatBond; } - /** @name PalletContentIterableEnumsChannelActionPermission (104) */ + /** @name PalletContentIterableEnumsChannelActionPermission (110) */ export interface PalletContentIterableEnumsChannelActionPermission extends Enum { readonly isUpdateChannelMetadata: boolean; readonly isManageNonVideoChannelAssets: boolean; @@ -980,7 +1069,7 @@ declare module '@polkadot/types/lookup' { readonly type: 'UpdateChannelMetadata' | 'ManageNonVideoChannelAssets' | 'ManageChannelCollaborators' | 'UpdateVideoMetadata' | 'AddVideo' | 'ManageVideoAssets' | 'DeleteChannel' | 'DeleteVideo' | 'ManageVideoNfts' | 'AgentRemark' | 'TransferChannel' | 'ClaimChannelReward' | 'WithdrawFromChannelBalance' | 'IssueCreatorToken' | 'ClaimCreatorTokenPatronage' | 'InitAndManageCreatorTokenSale' | 'CreatorTokenIssuerTransfer' | 'MakeCreatorTokenPermissionless' | 'ReduceCreatorTokenPatronageRate' | 'ManageRevenueSplits' | 'DeissueCreatorToken'; } - /** @name PalletContentPermissionsCuratorGroupIterableEnumsPausableChannelFeature (111) */ + /** @name PalletContentPermissionsCuratorGroupIterableEnumsPausableChannelFeature (117) */ export interface PalletContentPermissionsCuratorGroupIterableEnumsPausableChannelFeature extends Enum { readonly isChannelFundsTransfer: boolean; readonly isCreatorCashout: boolean; @@ -992,13 +1081,13 @@ declare module '@polkadot/types/lookup' { readonly type: 'ChannelFundsTransfer' | 'CreatorCashout' | 'VideoNftIssuance' | 'VideoCreation' | 'VideoUpdate' | 'ChannelUpdate' | 'CreatorTokenIssuance'; } - /** @name PalletCommonBloatBondRepayableBloatBond (114) */ + /** @name PalletCommonBloatBondRepayableBloatBond (120) */ export interface PalletCommonBloatBondRepayableBloatBond extends Struct { readonly repaymentRestrictedTo: Option; readonly amount: u128; } - /** @name PalletContentChannelOwner (115) */ + /** @name PalletContentChannelOwner (121) */ export interface PalletContentChannelOwner extends Enum { readonly isMember: boolean; readonly asMember: u64; @@ -1007,7 +1096,7 @@ declare module '@polkadot/types/lookup' { readonly type: 'Member' | 'CuratorGroup'; } - /** @name PalletContentChannelTransferStatus (116) */ + /** @name PalletContentChannelTransferStatus (122) */ export interface PalletContentChannelTransferStatus extends Enum { readonly isNoActiveTransfer: boolean; readonly isPendingTransfer: boolean; @@ -1015,32 +1104,32 @@ declare module '@polkadot/types/lookup' { readonly type: 'NoActiveTransfer' | 'PendingTransfer'; } - /** @name PalletContentPendingTransfer (117) */ + /** @name PalletContentPendingTransfer (123) */ export interface PalletContentPendingTransfer extends Struct { readonly newOwner: PalletContentChannelOwner; readonly transferParams: PalletContentTransferCommitmentParametersBoundedBTreeMap; } - /** @name PalletContentTransferCommitmentParametersBoundedBTreeMap (118) */ + /** @name PalletContentTransferCommitmentParametersBoundedBTreeMap (124) */ export interface PalletContentTransferCommitmentParametersBoundedBTreeMap extends Struct { readonly newCollaborators: BTreeMap>; readonly price: u128; readonly transferId: u64; } - /** @name PalletContentLimitPerPeriod (119) */ + /** @name PalletContentLimitPerPeriod (125) */ export interface PalletContentLimitPerPeriod extends Struct { readonly limit: u64; readonly blockNumberPeriod: u32; } - /** @name PalletContentNftCounter (120) */ + /** @name PalletContentNftCounter (126) */ export interface PalletContentNftCounter extends Struct { readonly counter: u64; readonly lastUpdated: u32; } - /** @name PalletContentNftTypesEnglishAuctionParamsRecord (121) */ + /** @name PalletContentNftTypesEnglishAuctionParamsRecord (127) */ export interface PalletContentNftTypesEnglishAuctionParamsRecord extends Struct { readonly startingPrice: u128; readonly buyNowPrice: Option; @@ -1051,7 +1140,7 @@ declare module '@polkadot/types/lookup' { readonly minBidStep: u128; } - /** @name PalletContentNftTypesOpenAuctionParamsRecord (123) */ + /** @name PalletContentNftTypesOpenAuctionParamsRecord (129) */ export interface PalletContentNftTypesOpenAuctionParamsRecord extends Struct { readonly startingPrice: u128; readonly buyNowPrice: Option; @@ -1060,7 +1149,7 @@ declare module '@polkadot/types/lookup' { readonly bidLockDuration: u32; } - /** @name PalletContentNftTypesNftIssuanceParametersRecord (124) */ + /** @name PalletContentNftTypesNftIssuanceParametersRecord (130) */ export interface PalletContentNftTypesNftIssuanceParametersRecord extends Struct { readonly royalty: Option; readonly nftMetadata: Bytes; @@ -1068,7 +1157,7 @@ declare module '@polkadot/types/lookup' { readonly initTransactionalStatus: PalletContentNftTypesInitTransactionalStatusRecord; } - /** @name PalletContentNftTypesInitTransactionalStatusRecord (125) */ + /** @name PalletContentNftTypesInitTransactionalStatusRecord (131) */ export interface PalletContentNftTypesInitTransactionalStatusRecord extends Enum { readonly isIdle: boolean; readonly isBuyNow: boolean; @@ -1082,7 +1171,7 @@ declare module '@polkadot/types/lookup' { readonly type: 'Idle' | 'BuyNow' | 'InitiatedOfferToMember' | 'EnglishAuction' | 'OpenAuction'; } - /** @name PalletContentChannelCreationParametersRecord (127) */ + /** @name PalletContentChannelCreationParametersRecord (133) */ export interface PalletContentChannelCreationParametersRecord extends Struct { readonly assets: Option; readonly meta: Option; @@ -1093,25 +1182,25 @@ declare module '@polkadot/types/lookup' { readonly expectedDataObjectStateBloatBond: u128; } - /** @name PalletContentStorageAssetsRecord (128) */ + /** @name PalletContentStorageAssetsRecord (134) */ export interface PalletContentStorageAssetsRecord extends Struct { readonly objectCreationList: Vec; readonly expectedDataSizeFee: u128; } - /** @name PalletStorageDataObjectCreationParameters (130) */ + /** @name PalletStorageDataObjectCreationParameters (136) */ export interface PalletStorageDataObjectCreationParameters extends Struct { readonly size_: u64; readonly ipfsContentId: Bytes; } - /** @name PalletStorageDistributionBucketIdRecord (131) */ + /** @name PalletStorageDistributionBucketIdRecord (137) */ export interface PalletStorageDistributionBucketIdRecord extends Struct { readonly distributionBucketFamilyId: u64; readonly distributionBucketIndex: u64; } - /** @name PalletContentChannelUpdateParametersRecord (138) */ + /** @name PalletContentChannelUpdateParametersRecord (144) */ export interface PalletContentChannelUpdateParametersRecord extends Struct { readonly assetsToUpload: Option; readonly newMeta: Option; @@ -1121,7 +1210,7 @@ declare module '@polkadot/types/lookup' { readonly storageBucketsNumWitness: Option; } - /** @name PalletContentVideoCreationParametersRecord (140) */ + /** @name PalletContentVideoCreationParametersRecord (146) */ export interface PalletContentVideoCreationParametersRecord extends Struct { readonly assets: Option; readonly meta: Option; @@ -1131,7 +1220,7 @@ declare module '@polkadot/types/lookup' { readonly storageBucketsNumWitness: u32; } - /** @name PalletContentVideoUpdateParametersRecord (142) */ + /** @name PalletContentVideoUpdateParametersRecord (148) */ export interface PalletContentVideoUpdateParametersRecord extends Struct { readonly assetsToUpload: Option; readonly newMeta: Option; @@ -1141,7 +1230,7 @@ declare module '@polkadot/types/lookup' { readonly storageBucketsNumWitness: Option; } - /** @name PalletContentPermissionsCuratorGroupIterableEnumsContentModerationAction (145) */ + /** @name PalletContentPermissionsCuratorGroupIterableEnumsContentModerationAction (151) */ export interface PalletContentPermissionsCuratorGroupIterableEnumsContentModerationAction extends Enum { readonly isHideVideo: boolean; readonly isHideChannel: boolean; @@ -1156,14 +1245,14 @@ declare module '@polkadot/types/lookup' { readonly type: 'HideVideo' | 'HideChannel' | 'ChangeChannelFeatureStatus' | 'DeleteVideo' | 'DeleteChannel' | 'DeleteVideoAssets' | 'DeleteNonVideoChannelAssets' | 'UpdateChannelNftLimits'; } - /** @name PalletContentTransferCommitmentParametersBTreeMap (149) */ + /** @name PalletContentTransferCommitmentParametersBTreeMap (155) */ export interface PalletContentTransferCommitmentParametersBTreeMap extends Struct { readonly newCollaborators: BTreeMap>; readonly price: u128; readonly transferId: u64; } - /** @name PalletContentUpdateChannelPayoutsParametersRecord (150) */ + /** @name PalletContentUpdateChannelPayoutsParametersRecord (156) */ export interface PalletContentUpdateChannelPayoutsParametersRecord extends Struct { readonly commitment: Option; readonly payload: Option; @@ -1172,14 +1261,14 @@ declare module '@polkadot/types/lookup' { readonly channelCashoutsEnabled: Option; } - /** @name PalletContentChannelPayoutsPayloadParametersRecord (151) */ + /** @name PalletContentChannelPayoutsPayloadParametersRecord (157) */ export interface PalletContentChannelPayoutsPayloadParametersRecord extends Struct { readonly objectCreationParams: PalletStorageDataObjectCreationParameters; readonly expectedDataSizeFee: u128; readonly expectedDataObjectStateBloatBond: u128; } - /** @name PalletContentChannelFundsDestination (155) */ + /** @name PalletContentChannelFundsDestination (161) */ export interface PalletContentChannelFundsDestination extends Enum { readonly isAccountId: boolean; readonly asAccountId: AccountId32; @@ -1187,14 +1276,14 @@ declare module '@polkadot/types/lookup' { readonly type: 'AccountId' | 'CouncilBudget'; } - /** @name PalletContentNftLimitPeriod (156) */ + /** @name PalletContentNftLimitPeriod (162) */ export interface PalletContentNftLimitPeriod extends Enum { readonly isDaily: boolean; readonly isWeekly: boolean; readonly type: 'Daily' | 'Weekly'; } - /** @name PalletStorageRawEvent (157) */ + /** @name PalletStorageRawEvent (163) */ export interface PalletStorageRawEvent extends Enum { readonly isStorageBucketCreated: boolean; readonly asStorageBucketCreated: ITuple<[u64, Option, bool, u64, u64]>; @@ -1283,7 +1372,7 @@ declare module '@polkadot/types/lookup' { readonly type: 'StorageBucketCreated' | 'StorageBucketInvitationAccepted' | 'StorageBucketsUpdatedForBag' | 'DataObjectsUploaded' | 'StorageOperatorMetadataSet' | 'StorageBucketVoucherLimitsSet' | 'PendingDataObjectsAccepted' | 'StorageBucketInvitationCancelled' | 'StorageBucketOperatorInvited' | 'StorageBucketOperatorRemoved' | 'UploadingBlockStatusUpdated' | 'DataObjectPerMegabyteFeeUpdated' | 'StorageBucketsPerBagLimitUpdated' | 'StorageBucketsVoucherMaxLimitsUpdated' | 'DataObjectsMoved' | 'DataObjectsDeleted' | 'StorageBucketStatusUpdated' | 'UpdateBlacklist' | 'DynamicBagDeleted' | 'DynamicBagCreated' | 'VoucherChanged' | 'StorageBucketDeleted' | 'NumberOfStorageBucketsInDynamicBagCreationPolicyUpdated' | 'DistributionBucketFamilyCreated' | 'DistributionBucketFamilyDeleted' | 'DistributionBucketCreated' | 'DistributionBucketStatusUpdated' | 'DistributionBucketDeleted' | 'DistributionBucketsUpdatedForBag' | 'DistributionBucketsPerBagLimitUpdated' | 'DistributionBucketModeUpdated' | 'FamiliesInDynamicBagCreationPolicyUpdated' | 'DistributionBucketOperatorInvited' | 'DistributionBucketInvitationCancelled' | 'DistributionBucketInvitationAccepted' | 'DistributionBucketMetadataSet' | 'DistributionBucketOperatorRemoved' | 'DistributionBucketFamilyMetadataSet' | 'DataObjectStateBloatBondValueUpdated' | 'DataObjectsUpdated' | 'StorageOperatorRemarked' | 'DistributionOperatorRemarked'; } - /** @name PalletStorageUploadParametersRecord (158) */ + /** @name PalletStorageUploadParametersRecord (164) */ export interface PalletStorageUploadParametersRecord extends Struct { readonly bagId: PalletStorageBagIdType; readonly objectCreationList: Vec; @@ -1292,7 +1381,7 @@ declare module '@polkadot/types/lookup' { readonly expectedDataObjectStateBloatBond: u128; } - /** @name PalletStorageBagIdType (159) */ + /** @name PalletStorageBagIdType (165) */ export interface PalletStorageBagIdType extends Enum { readonly isStatic: boolean; readonly asStatic: PalletStorageStaticBagId; @@ -1301,7 +1390,7 @@ declare module '@polkadot/types/lookup' { readonly type: 'Static' | 'Dynamic'; } - /** @name PalletStorageStaticBagId (160) */ + /** @name PalletStorageStaticBagId (166) */ export interface PalletStorageStaticBagId extends Enum { readonly isCouncil: boolean; readonly isWorkingGroup: boolean; @@ -1309,7 +1398,7 @@ declare module '@polkadot/types/lookup' { readonly type: 'Council' | 'WorkingGroup'; } - /** @name PalletStorageDynamicBagIdType (161) */ + /** @name PalletStorageDynamicBagIdType (167) */ export interface PalletStorageDynamicBagIdType extends Enum { readonly isMember: boolean; readonly asMember: u64; @@ -1318,7 +1407,7 @@ declare module '@polkadot/types/lookup' { readonly type: 'Member' | 'Channel'; } - /** @name PalletStorageDynBagCreationParametersRecord (162) */ + /** @name PalletStorageDynBagCreationParametersRecord (168) */ export interface PalletStorageDynBagCreationParametersRecord extends Struct { readonly bagId: PalletStorageDynamicBagIdType; readonly objectCreationList: Vec; @@ -1329,7 +1418,7 @@ declare module '@polkadot/types/lookup' { readonly distributionBuckets: BTreeSet; } - /** @name PalletStorageVoucher (165) */ + /** @name PalletStorageVoucher (171) */ export interface PalletStorageVoucher extends Struct { readonly sizeLimit: u64; readonly objectsLimit: u64; @@ -1337,14 +1426,14 @@ declare module '@polkadot/types/lookup' { readonly objectsUsed: u64; } - /** @name PalletStorageDynamicBagType (166) */ + /** @name PalletStorageDynamicBagType (172) */ export interface PalletStorageDynamicBagType extends Enum { readonly isMember: boolean; readonly isChannel: boolean; readonly type: 'Member' | 'Channel'; } - /** @name PalletProjectTokenEventsRawEvent (170) */ + /** @name PalletProjectTokenEventsRawEvent (176) */ export interface PalletProjectTokenEventsRawEvent extends Enum { readonly isTokenAmountTransferred: boolean; readonly asTokenAmountTransferred: ITuple<[u64, u64, BTreeMap, Bytes]>; @@ -1385,7 +1474,7 @@ declare module '@polkadot/types/lookup' { readonly type: 'TokenAmountTransferred' | 'TokenAmountTransferredByIssuer' | 'PatronageRateDecreasedTo' | 'PatronageCreditClaimed' | 'RevenueSplitIssued' | 'RevenueSplitFinalized' | 'UserParticipatedInSplit' | 'RevenueSplitLeft' | 'MemberJoinedWhitelist' | 'AccountDustedBy' | 'TokenDeissued' | 'TokenIssued' | 'TokenSaleInitialized' | 'UpcomingTokenSaleUpdated' | 'TokensPurchasedOnSale' | 'TokenSaleFinalized' | 'TransferPolicyChangedToPermissionless' | 'TokensBurned'; } - /** @name PalletProjectTokenTransferPolicy (171) */ + /** @name PalletProjectTokenTransferPolicy (177) */ export interface PalletProjectTokenTransferPolicy extends Enum { readonly isPermissionless: boolean; readonly isPermissioned: boolean; @@ -1393,7 +1482,7 @@ declare module '@polkadot/types/lookup' { readonly type: 'Permissionless' | 'Permissioned'; } - /** @name PalletProjectTokenTokenIssuanceParameters (172) */ + /** @name PalletProjectTokenTokenIssuanceParameters (178) */ export interface PalletProjectTokenTokenIssuanceParameters extends Struct { readonly initialAllocation: BTreeMap; readonly symbol: H256; @@ -1402,20 +1491,20 @@ declare module '@polkadot/types/lookup' { readonly revenueSplitRate: Permill; } - /** @name PalletProjectTokenTokenAllocation (173) */ + /** @name PalletProjectTokenTokenAllocation (179) */ export interface PalletProjectTokenTokenAllocation extends Struct { readonly amount: u128; readonly vestingScheduleParams: Option; } - /** @name PalletProjectTokenVestingScheduleParams (174) */ + /** @name PalletProjectTokenVestingScheduleParams (180) */ export interface PalletProjectTokenVestingScheduleParams extends Struct { readonly linearVestingDuration: u32; readonly blocksBeforeCliff: u32; readonly cliffAmountPercentage: Permill; } - /** @name PalletProjectTokenTransferPolicyParams (177) */ + /** @name PalletProjectTokenTransferPolicyParams (183) */ export interface PalletProjectTokenTransferPolicyParams extends Enum { readonly isPermissionless: boolean; readonly isPermissioned: boolean; @@ -1423,20 +1512,20 @@ declare module '@polkadot/types/lookup' { readonly type: 'Permissionless' | 'Permissioned'; } - /** @name PalletProjectTokenWhitelistParams (178) */ + /** @name PalletProjectTokenWhitelistParams (184) */ export interface PalletProjectTokenWhitelistParams extends Struct { readonly commitment: H256; readonly payload: Option; } - /** @name PalletProjectTokenSingleDataObjectUploadParams (179) */ + /** @name PalletProjectTokenSingleDataObjectUploadParams (185) */ export interface PalletProjectTokenSingleDataObjectUploadParams extends Struct { readonly objectCreationParams: PalletStorageDataObjectCreationParameters; readonly expectedDataSizeFee: u128; readonly expectedDataObjectStateBloatBond: u128; } - /** @name PalletProjectTokenValidated (186) */ + /** @name PalletProjectTokenValidated (192) */ export interface PalletProjectTokenValidated extends Enum { readonly isExisting: boolean; readonly asExisting: u64; @@ -1445,19 +1534,19 @@ declare module '@polkadot/types/lookup' { readonly type: 'Existing' | 'NonExisting'; } - /** @name PalletProjectTokenValidatedPayment (187) */ + /** @name PalletProjectTokenValidatedPayment (193) */ export interface PalletProjectTokenValidatedPayment extends Struct { readonly payment: PalletProjectTokenPaymentWithVesting; readonly vestingCleanupCandidate: Option; } - /** @name PalletProjectTokenPaymentWithVesting (188) */ + /** @name PalletProjectTokenPaymentWithVesting (194) */ export interface PalletProjectTokenPaymentWithVesting extends Struct { readonly amount: u128; readonly vestingSchedule: Option; } - /** @name PalletProjectTokenVestingSource (190) */ + /** @name PalletProjectTokenVestingSource (196) */ export interface PalletProjectTokenVestingSource extends Enum { readonly isInitialIssuance: boolean; readonly isSale: boolean; @@ -1467,7 +1556,7 @@ declare module '@polkadot/types/lookup' { readonly type: 'InitialIssuance' | 'Sale' | 'IssuerTransfer'; } - /** @name PalletProjectTokenTokenSale (194) */ + /** @name PalletProjectTokenTokenSale (200) */ export interface PalletProjectTokenTokenSale extends Struct { readonly unitPrice: u128; readonly quantityLeft: u128; @@ -1481,7 +1570,7 @@ declare module '@polkadot/types/lookup' { readonly autoFinalize: bool; } - /** @name PalletProposalsEngineRawEvent (196) */ + /** @name PalletProposalsEngineRawEvent (202) */ export interface PalletProposalsEngineRawEvent extends Enum { readonly isProposalStatusUpdated: boolean; readonly asProposalStatusUpdated: ITuple<[u32, PalletProposalsEngineProposalStatusesProposalStatus]>; @@ -1498,7 +1587,7 @@ declare module '@polkadot/types/lookup' { readonly type: 'ProposalStatusUpdated' | 'ProposalDecisionMade' | 'ProposalExecuted' | 'Voted' | 'ProposalCancelled' | 'ProposerRemarked'; } - /** @name PalletProposalsEngineProposalStatusesProposalStatus (197) */ + /** @name PalletProposalsEngineProposalStatusesProposalStatus (203) */ export interface PalletProposalsEngineProposalStatusesProposalStatus extends Enum { readonly isActive: boolean; readonly isPendingExecution: boolean; @@ -1507,7 +1596,7 @@ declare module '@polkadot/types/lookup' { readonly type: 'Active' | 'PendingExecution' | 'PendingConstitutionality'; } - /** @name PalletProposalsEngineProposalStatusesProposalDecision (198) */ + /** @name PalletProposalsEngineProposalStatusesProposalDecision (204) */ export interface PalletProposalsEngineProposalStatusesProposalDecision extends Enum { readonly isCanceled: boolean; readonly isCanceledByRuntime: boolean; @@ -1520,14 +1609,14 @@ declare module '@polkadot/types/lookup' { readonly type: 'Canceled' | 'CanceledByRuntime' | 'Vetoed' | 'Rejected' | 'Slashed' | 'Expired' | 'Approved'; } - /** @name PalletProposalsEngineProposalStatusesApprovedProposalDecision (199) */ + /** @name PalletProposalsEngineProposalStatusesApprovedProposalDecision (205) */ export interface PalletProposalsEngineProposalStatusesApprovedProposalDecision extends Enum { readonly isPendingExecution: boolean; readonly isPendingConstitutionality: boolean; readonly type: 'PendingExecution' | 'PendingConstitutionality'; } - /** @name PalletProposalsEngineProposalStatusesExecutionStatus (200) */ + /** @name PalletProposalsEngineProposalStatusesExecutionStatus (206) */ export interface PalletProposalsEngineProposalStatusesExecutionStatus extends Enum { readonly isExecuted: boolean; readonly isExecutionFailed: boolean; @@ -1537,7 +1626,7 @@ declare module '@polkadot/types/lookup' { readonly type: 'Executed' | 'ExecutionFailed'; } - /** @name PalletProposalsEngineVoteKind (201) */ + /** @name PalletProposalsEngineVoteKind (207) */ export interface PalletProposalsEngineVoteKind extends Enum { readonly isApprove: boolean; readonly isReject: boolean; @@ -1546,7 +1635,7 @@ declare module '@polkadot/types/lookup' { readonly type: 'Approve' | 'Reject' | 'Slash' | 'Abstain'; } - /** @name PalletProposalsDiscussionRawEvent (202) */ + /** @name PalletProposalsDiscussionRawEvent (208) */ export interface PalletProposalsDiscussionRawEvent extends Enum { readonly isThreadCreated: boolean; readonly asThreadCreated: ITuple<[u64, u64]>; @@ -1561,7 +1650,7 @@ declare module '@polkadot/types/lookup' { readonly type: 'ThreadCreated' | 'PostCreated' | 'PostUpdated' | 'ThreadModeChanged' | 'PostDeleted'; } - /** @name PalletProposalsDiscussionThreadModeBTreeSet (203) */ + /** @name PalletProposalsDiscussionThreadModeBTreeSet (209) */ export interface PalletProposalsDiscussionThreadModeBTreeSet extends Enum { readonly isOpen: boolean; readonly isClosed: boolean; @@ -1569,14 +1658,14 @@ declare module '@polkadot/types/lookup' { readonly type: 'Open' | 'Closed'; } - /** @name PalletProposalsCodexRawEvent (204) */ + /** @name PalletProposalsCodexRawEvent (210) */ export interface PalletProposalsCodexRawEvent extends Enum { readonly isProposalCreated: boolean; readonly asProposalCreated: ITuple<[u32, PalletProposalsCodexGeneralProposalParams, PalletProposalsCodexProposalDetails, u64]>; readonly type: 'ProposalCreated'; } - /** @name PalletProposalsCodexGeneralProposalParams (205) */ + /** @name PalletProposalsCodexGeneralProposalParams (211) */ export interface PalletProposalsCodexGeneralProposalParams extends Struct { readonly memberId: u64; readonly title: Bytes; @@ -1585,7 +1674,7 @@ declare module '@polkadot/types/lookup' { readonly exactExecutionBlock: Option; } - /** @name PalletProposalsCodexProposalDetails (206) */ + /** @name PalletProposalsCodexProposalDetails (212) */ export interface PalletProposalsCodexProposalDetails extends Enum { readonly isSignal: boolean; readonly asSignal: Bytes; @@ -1636,13 +1725,13 @@ declare module '@polkadot/types/lookup' { readonly type: 'Signal' | 'RuntimeUpgrade' | 'FundingRequest' | 'SetMaxValidatorCount' | 'CreateWorkingGroupLeadOpening' | 'FillWorkingGroupLeadOpening' | 'UpdateWorkingGroupBudget' | 'DecreaseWorkingGroupLeadStake' | 'SlashWorkingGroupLead' | 'SetWorkingGroupLeadReward' | 'TerminateWorkingGroupLead' | 'AmendConstitution' | 'CancelWorkingGroupLeadOpening' | 'SetMembershipPrice' | 'SetCouncilBudgetIncrement' | 'SetCouncilorReward' | 'SetInitialInvitationBalance' | 'SetInitialInvitationCount' | 'SetMembershipLeadInvitationQuota' | 'SetReferralCut' | 'VetoProposal' | 'UpdateGlobalNftLimit' | 'UpdateChannelPayouts'; } - /** @name PalletCommonFundingRequestParameters (208) */ + /** @name PalletCommonFundingRequestParameters (214) */ export interface PalletCommonFundingRequestParameters extends Struct { readonly account: AccountId32; readonly amount: u128; } - /** @name PalletProposalsCodexCreateOpeningParameters (209) */ + /** @name PalletProposalsCodexCreateOpeningParameters (215) */ export interface PalletProposalsCodexCreateOpeningParameters extends Struct { readonly description: Bytes; readonly stakePolicy: PalletWorkingGroupStakePolicy; @@ -1650,27 +1739,27 @@ declare module '@polkadot/types/lookup' { readonly group: PalletCommonWorkingGroupIterableEnumsWorkingGroup; } - /** @name PalletWorkingGroupStakePolicy (210) */ + /** @name PalletWorkingGroupStakePolicy (216) */ export interface PalletWorkingGroupStakePolicy extends Struct { readonly stakeAmount: u128; readonly leavingUnstakingPeriod: u32; } - /** @name PalletProposalsCodexFillOpeningParameters (211) */ + /** @name PalletProposalsCodexFillOpeningParameters (217) */ export interface PalletProposalsCodexFillOpeningParameters extends Struct { readonly openingId: u64; readonly applicationId: u64; readonly workingGroup: PalletCommonWorkingGroupIterableEnumsWorkingGroup; } - /** @name PalletProposalsCodexTerminateRoleParameters (212) */ + /** @name PalletProposalsCodexTerminateRoleParameters (218) */ export interface PalletProposalsCodexTerminateRoleParameters extends Struct { readonly workerId: u64; readonly slashingAmount: Option; readonly group: PalletCommonWorkingGroupIterableEnumsWorkingGroup; } - /** @name PalletWorkingGroupRawEventInstance1 (213) */ + /** @name PalletWorkingGroupRawEventInstance1 (219) */ export interface PalletWorkingGroupRawEventInstance1 extends Enum { readonly isOpeningAdded: boolean; readonly asOpeningAdded: ITuple<[u64, Bytes, PalletWorkingGroupOpeningType, PalletWorkingGroupStakePolicy, Option]>; @@ -1724,14 +1813,14 @@ declare module '@polkadot/types/lookup' { readonly type: 'OpeningAdded' | 'AppliedOnOpening' | 'OpeningFilled' | 'LeaderSet' | 'WorkerRoleAccountUpdated' | 'LeaderUnset' | 'WorkerExited' | 'WorkerStartedLeaving' | 'TerminatedWorker' | 'TerminatedLeader' | 'StakeSlashed' | 'StakeDecreased' | 'StakeIncreased' | 'ApplicationWithdrawn' | 'OpeningCanceled' | 'BudgetSet' | 'WorkerRewardAccountUpdated' | 'WorkerRewardAmountUpdated' | 'StatusTextChanged' | 'BudgetSpending' | 'RewardPaid' | 'NewMissedRewardLevelReached' | 'WorkingGroupBudgetFunded' | 'LeadRemarked' | 'WorkerRemarked'; } - /** @name PalletWorkingGroupOpeningType (217) */ + /** @name PalletWorkingGroupOpeningType (223) */ export interface PalletWorkingGroupOpeningType extends Enum { readonly isLeader: boolean; readonly isRegular: boolean; readonly type: 'Leader' | 'Regular'; } - /** @name PalletWorkingGroupApplyOnOpeningParams (218) */ + /** @name PalletWorkingGroupApplyOnOpeningParams (224) */ export interface PalletWorkingGroupApplyOnOpeningParams extends Struct { readonly memberId: u64; readonly openingId: u64; @@ -1741,23 +1830,23 @@ declare module '@polkadot/types/lookup' { readonly stakeParameters: PalletWorkingGroupStakeParameters; } - /** @name PalletWorkingGroupStakeParameters (219) */ + /** @name PalletWorkingGroupStakeParameters (225) */ export interface PalletWorkingGroupStakeParameters extends Struct { readonly stake: u128; readonly stakingAccountId: AccountId32; } - /** @name PalletWorkingGroupInstance1 (220) */ + /** @name PalletWorkingGroupInstance1 (226) */ export type PalletWorkingGroupInstance1 = Null; - /** @name PalletWorkingGroupRewardPaymentType (221) */ + /** @name PalletWorkingGroupRewardPaymentType (227) */ export interface PalletWorkingGroupRewardPaymentType extends Enum { readonly isMissedReward: boolean; readonly isRegularReward: boolean; readonly type: 'MissedReward' | 'RegularReward'; } - /** @name PalletWorkingGroupRawEventInstance2 (222) */ + /** @name PalletWorkingGroupRawEventInstance2 (228) */ export interface PalletWorkingGroupRawEventInstance2 extends Enum { readonly isOpeningAdded: boolean; readonly asOpeningAdded: ITuple<[u64, Bytes, PalletWorkingGroupOpeningType, PalletWorkingGroupStakePolicy, Option]>; @@ -1811,10 +1900,10 @@ declare module '@polkadot/types/lookup' { readonly type: 'OpeningAdded' | 'AppliedOnOpening' | 'OpeningFilled' | 'LeaderSet' | 'WorkerRoleAccountUpdated' | 'LeaderUnset' | 'WorkerExited' | 'WorkerStartedLeaving' | 'TerminatedWorker' | 'TerminatedLeader' | 'StakeSlashed' | 'StakeDecreased' | 'StakeIncreased' | 'ApplicationWithdrawn' | 'OpeningCanceled' | 'BudgetSet' | 'WorkerRewardAccountUpdated' | 'WorkerRewardAmountUpdated' | 'StatusTextChanged' | 'BudgetSpending' | 'RewardPaid' | 'NewMissedRewardLevelReached' | 'WorkingGroupBudgetFunded' | 'LeadRemarked' | 'WorkerRemarked'; } - /** @name PalletWorkingGroupInstance2 (223) */ + /** @name PalletWorkingGroupInstance2 (229) */ export type PalletWorkingGroupInstance2 = Null; - /** @name PalletWorkingGroupRawEventInstance3 (224) */ + /** @name PalletWorkingGroupRawEventInstance3 (230) */ export interface PalletWorkingGroupRawEventInstance3 extends Enum { readonly isOpeningAdded: boolean; readonly asOpeningAdded: ITuple<[u64, Bytes, PalletWorkingGroupOpeningType, PalletWorkingGroupStakePolicy, Option]>; @@ -1868,10 +1957,10 @@ declare module '@polkadot/types/lookup' { readonly type: 'OpeningAdded' | 'AppliedOnOpening' | 'OpeningFilled' | 'LeaderSet' | 'WorkerRoleAccountUpdated' | 'LeaderUnset' | 'WorkerExited' | 'WorkerStartedLeaving' | 'TerminatedWorker' | 'TerminatedLeader' | 'StakeSlashed' | 'StakeDecreased' | 'StakeIncreased' | 'ApplicationWithdrawn' | 'OpeningCanceled' | 'BudgetSet' | 'WorkerRewardAccountUpdated' | 'WorkerRewardAmountUpdated' | 'StatusTextChanged' | 'BudgetSpending' | 'RewardPaid' | 'NewMissedRewardLevelReached' | 'WorkingGroupBudgetFunded' | 'LeadRemarked' | 'WorkerRemarked'; } - /** @name PalletWorkingGroupInstance3 (225) */ + /** @name PalletWorkingGroupInstance3 (231) */ export type PalletWorkingGroupInstance3 = Null; - /** @name PalletWorkingGroupRawEventInstance4 (226) */ + /** @name PalletWorkingGroupRawEventInstance4 (232) */ export interface PalletWorkingGroupRawEventInstance4 extends Enum { readonly isOpeningAdded: boolean; readonly asOpeningAdded: ITuple<[u64, Bytes, PalletWorkingGroupOpeningType, PalletWorkingGroupStakePolicy, Option]>; @@ -1925,10 +2014,10 @@ declare module '@polkadot/types/lookup' { readonly type: 'OpeningAdded' | 'AppliedOnOpening' | 'OpeningFilled' | 'LeaderSet' | 'WorkerRoleAccountUpdated' | 'LeaderUnset' | 'WorkerExited' | 'WorkerStartedLeaving' | 'TerminatedWorker' | 'TerminatedLeader' | 'StakeSlashed' | 'StakeDecreased' | 'StakeIncreased' | 'ApplicationWithdrawn' | 'OpeningCanceled' | 'BudgetSet' | 'WorkerRewardAccountUpdated' | 'WorkerRewardAmountUpdated' | 'StatusTextChanged' | 'BudgetSpending' | 'RewardPaid' | 'NewMissedRewardLevelReached' | 'WorkingGroupBudgetFunded' | 'LeadRemarked' | 'WorkerRemarked'; } - /** @name PalletWorkingGroupInstance4 (227) */ + /** @name PalletWorkingGroupInstance4 (233) */ export type PalletWorkingGroupInstance4 = Null; - /** @name PalletWorkingGroupRawEventInstance5 (228) */ + /** @name PalletWorkingGroupRawEventInstance5 (234) */ export interface PalletWorkingGroupRawEventInstance5 extends Enum { readonly isOpeningAdded: boolean; readonly asOpeningAdded: ITuple<[u64, Bytes, PalletWorkingGroupOpeningType, PalletWorkingGroupStakePolicy, Option]>; @@ -1982,10 +2071,10 @@ declare module '@polkadot/types/lookup' { readonly type: 'OpeningAdded' | 'AppliedOnOpening' | 'OpeningFilled' | 'LeaderSet' | 'WorkerRoleAccountUpdated' | 'LeaderUnset' | 'WorkerExited' | 'WorkerStartedLeaving' | 'TerminatedWorker' | 'TerminatedLeader' | 'StakeSlashed' | 'StakeDecreased' | 'StakeIncreased' | 'ApplicationWithdrawn' | 'OpeningCanceled' | 'BudgetSet' | 'WorkerRewardAccountUpdated' | 'WorkerRewardAmountUpdated' | 'StatusTextChanged' | 'BudgetSpending' | 'RewardPaid' | 'NewMissedRewardLevelReached' | 'WorkingGroupBudgetFunded' | 'LeadRemarked' | 'WorkerRemarked'; } - /** @name PalletWorkingGroupInstance5 (229) */ + /** @name PalletWorkingGroupInstance5 (235) */ export type PalletWorkingGroupInstance5 = Null; - /** @name PalletWorkingGroupRawEventInstance6 (230) */ + /** @name PalletWorkingGroupRawEventInstance6 (236) */ export interface PalletWorkingGroupRawEventInstance6 extends Enum { readonly isOpeningAdded: boolean; readonly asOpeningAdded: ITuple<[u64, Bytes, PalletWorkingGroupOpeningType, PalletWorkingGroupStakePolicy, Option]>; @@ -2039,10 +2128,10 @@ declare module '@polkadot/types/lookup' { readonly type: 'OpeningAdded' | 'AppliedOnOpening' | 'OpeningFilled' | 'LeaderSet' | 'WorkerRoleAccountUpdated' | 'LeaderUnset' | 'WorkerExited' | 'WorkerStartedLeaving' | 'TerminatedWorker' | 'TerminatedLeader' | 'StakeSlashed' | 'StakeDecreased' | 'StakeIncreased' | 'ApplicationWithdrawn' | 'OpeningCanceled' | 'BudgetSet' | 'WorkerRewardAccountUpdated' | 'WorkerRewardAmountUpdated' | 'StatusTextChanged' | 'BudgetSpending' | 'RewardPaid' | 'NewMissedRewardLevelReached' | 'WorkingGroupBudgetFunded' | 'LeadRemarked' | 'WorkerRemarked'; } - /** @name PalletWorkingGroupInstance6 (231) */ + /** @name PalletWorkingGroupInstance6 (237) */ export type PalletWorkingGroupInstance6 = Null; - /** @name PalletWorkingGroupRawEventInstance7 (232) */ + /** @name PalletWorkingGroupRawEventInstance7 (238) */ export interface PalletWorkingGroupRawEventInstance7 extends Enum { readonly isOpeningAdded: boolean; readonly asOpeningAdded: ITuple<[u64, Bytes, PalletWorkingGroupOpeningType, PalletWorkingGroupStakePolicy, Option]>; @@ -2096,10 +2185,10 @@ declare module '@polkadot/types/lookup' { readonly type: 'OpeningAdded' | 'AppliedOnOpening' | 'OpeningFilled' | 'LeaderSet' | 'WorkerRoleAccountUpdated' | 'LeaderUnset' | 'WorkerExited' | 'WorkerStartedLeaving' | 'TerminatedWorker' | 'TerminatedLeader' | 'StakeSlashed' | 'StakeDecreased' | 'StakeIncreased' | 'ApplicationWithdrawn' | 'OpeningCanceled' | 'BudgetSet' | 'WorkerRewardAccountUpdated' | 'WorkerRewardAmountUpdated' | 'StatusTextChanged' | 'BudgetSpending' | 'RewardPaid' | 'NewMissedRewardLevelReached' | 'WorkingGroupBudgetFunded' | 'LeadRemarked' | 'WorkerRemarked'; } - /** @name PalletWorkingGroupInstance7 (233) */ + /** @name PalletWorkingGroupInstance7 (239) */ export type PalletWorkingGroupInstance7 = Null; - /** @name PalletWorkingGroupRawEventInstance8 (234) */ + /** @name PalletWorkingGroupRawEventInstance8 (240) */ export interface PalletWorkingGroupRawEventInstance8 extends Enum { readonly isOpeningAdded: boolean; readonly asOpeningAdded: ITuple<[u64, Bytes, PalletWorkingGroupOpeningType, PalletWorkingGroupStakePolicy, Option]>; @@ -2153,10 +2242,10 @@ declare module '@polkadot/types/lookup' { readonly type: 'OpeningAdded' | 'AppliedOnOpening' | 'OpeningFilled' | 'LeaderSet' | 'WorkerRoleAccountUpdated' | 'LeaderUnset' | 'WorkerExited' | 'WorkerStartedLeaving' | 'TerminatedWorker' | 'TerminatedLeader' | 'StakeSlashed' | 'StakeDecreased' | 'StakeIncreased' | 'ApplicationWithdrawn' | 'OpeningCanceled' | 'BudgetSet' | 'WorkerRewardAccountUpdated' | 'WorkerRewardAmountUpdated' | 'StatusTextChanged' | 'BudgetSpending' | 'RewardPaid' | 'NewMissedRewardLevelReached' | 'WorkingGroupBudgetFunded' | 'LeadRemarked' | 'WorkerRemarked'; } - /** @name PalletWorkingGroupInstance8 (235) */ + /** @name PalletWorkingGroupInstance8 (241) */ export type PalletWorkingGroupInstance8 = Null; - /** @name PalletWorkingGroupRawEventInstance9 (236) */ + /** @name PalletWorkingGroupRawEventInstance9 (242) */ export interface PalletWorkingGroupRawEventInstance9 extends Enum { readonly isOpeningAdded: boolean; readonly asOpeningAdded: ITuple<[u64, Bytes, PalletWorkingGroupOpeningType, PalletWorkingGroupStakePolicy, Option]>; @@ -2210,10 +2299,10 @@ declare module '@polkadot/types/lookup' { readonly type: 'OpeningAdded' | 'AppliedOnOpening' | 'OpeningFilled' | 'LeaderSet' | 'WorkerRoleAccountUpdated' | 'LeaderUnset' | 'WorkerExited' | 'WorkerStartedLeaving' | 'TerminatedWorker' | 'TerminatedLeader' | 'StakeSlashed' | 'StakeDecreased' | 'StakeIncreased' | 'ApplicationWithdrawn' | 'OpeningCanceled' | 'BudgetSet' | 'WorkerRewardAccountUpdated' | 'WorkerRewardAmountUpdated' | 'StatusTextChanged' | 'BudgetSpending' | 'RewardPaid' | 'NewMissedRewardLevelReached' | 'WorkingGroupBudgetFunded' | 'LeadRemarked' | 'WorkerRemarked'; } - /** @name PalletWorkingGroupInstance9 (237) */ + /** @name PalletWorkingGroupInstance9 (243) */ export type PalletWorkingGroupInstance9 = Null; - /** @name FrameSystemPhase (238) */ + /** @name FrameSystemPhase (244) */ export interface FrameSystemPhase extends Enum { readonly isApplyExtrinsic: boolean; readonly asApplyExtrinsic: u32; @@ -2222,18 +2311,14 @@ declare module '@polkadot/types/lookup' { readonly type: 'ApplyExtrinsic' | 'Finalization' | 'Initialization'; } - /** @name FrameSystemLastRuntimeUpgradeInfo (242) */ + /** @name FrameSystemLastRuntimeUpgradeInfo (248) */ export interface FrameSystemLastRuntimeUpgradeInfo extends Struct { readonly specVersion: Compact; readonly specName: Text; } - /** @name FrameSystemCall (245) */ + /** @name FrameSystemCall (251) */ export interface FrameSystemCall extends Enum { - readonly isFillBlock: boolean; - readonly asFillBlock: { - readonly ratio: Perbill; - } & Struct; readonly isRemark: boolean; readonly asRemark: { readonly remark: Bytes; @@ -2267,50 +2352,50 @@ declare module '@polkadot/types/lookup' { readonly asRemarkWithEvent: { readonly remark: Bytes; } & Struct; - readonly type: 'FillBlock' | 'Remark' | 'SetHeapPages' | 'SetCode' | 'SetCodeWithoutChecks' | 'SetStorage' | 'KillStorage' | 'KillPrefix' | 'RemarkWithEvent'; + readonly type: 'Remark' | 'SetHeapPages' | 'SetCode' | 'SetCodeWithoutChecks' | 'SetStorage' | 'KillStorage' | 'KillPrefix' | 'RemarkWithEvent'; } - /** @name FrameSystemLimitsBlockWeights (248) */ + /** @name FrameSystemLimitsBlockWeights (254) */ export interface FrameSystemLimitsBlockWeights extends Struct { - readonly baseBlock: u64; - readonly maxBlock: u64; - readonly perClass: FrameSupportWeightsPerDispatchClassWeightsPerClass; + readonly baseBlock: SpWeightsWeightV2Weight; + readonly maxBlock: SpWeightsWeightV2Weight; + readonly perClass: FrameSupportDispatchPerDispatchClassWeightsPerClass; } - /** @name FrameSupportWeightsPerDispatchClassWeightsPerClass (249) */ - export interface FrameSupportWeightsPerDispatchClassWeightsPerClass extends Struct { + /** @name FrameSupportDispatchPerDispatchClassWeightsPerClass (255) */ + export interface FrameSupportDispatchPerDispatchClassWeightsPerClass extends Struct { readonly normal: FrameSystemLimitsWeightsPerClass; readonly operational: FrameSystemLimitsWeightsPerClass; readonly mandatory: FrameSystemLimitsWeightsPerClass; } - /** @name FrameSystemLimitsWeightsPerClass (250) */ + /** @name FrameSystemLimitsWeightsPerClass (256) */ export interface FrameSystemLimitsWeightsPerClass extends Struct { - readonly baseExtrinsic: u64; - readonly maxExtrinsic: Option; - readonly maxTotal: Option; - readonly reserved: Option; + readonly baseExtrinsic: SpWeightsWeightV2Weight; + readonly maxExtrinsic: Option; + readonly maxTotal: Option; + readonly reserved: Option; } - /** @name FrameSystemLimitsBlockLength (251) */ + /** @name FrameSystemLimitsBlockLength (258) */ export interface FrameSystemLimitsBlockLength extends Struct { - readonly max: FrameSupportWeightsPerDispatchClassU32; + readonly max: FrameSupportDispatchPerDispatchClassU32; } - /** @name FrameSupportWeightsPerDispatchClassU32 (252) */ - export interface FrameSupportWeightsPerDispatchClassU32 extends Struct { + /** @name FrameSupportDispatchPerDispatchClassU32 (259) */ + export interface FrameSupportDispatchPerDispatchClassU32 extends Struct { readonly normal: u32; readonly operational: u32; readonly mandatory: u32; } - /** @name FrameSupportWeightsRuntimeDbWeight (253) */ - export interface FrameSupportWeightsRuntimeDbWeight extends Struct { + /** @name SpWeightsRuntimeDbWeight (260) */ + export interface SpWeightsRuntimeDbWeight extends Struct { readonly read: u64; readonly write: u64; } - /** @name SpVersionRuntimeVersion (254) */ + /** @name SpVersionRuntimeVersion (261) */ export interface SpVersionRuntimeVersion extends Struct { readonly specName: Text; readonly implName: Text; @@ -2322,7 +2407,7 @@ declare module '@polkadot/types/lookup' { readonly stateVersion: u8; } - /** @name FrameSystemError (260) */ + /** @name FrameSystemError (267) */ export interface FrameSystemError extends Enum { readonly isInvalidSpecName: boolean; readonly isSpecVersionNeedsToIncrease: boolean; @@ -2333,7 +2418,7 @@ declare module '@polkadot/types/lookup' { readonly type: 'InvalidSpecName' | 'SpecVersionNeedsToIncrease' | 'FailedToExtractRuntimeVersion' | 'NonDefaultComposite' | 'NonZeroRefCount' | 'CallFiltered'; } - /** @name PalletUtilityCall (261) */ + /** @name PalletUtilityCall (268) */ export interface PalletUtilityCall extends Enum { readonly isBatch: boolean; readonly asBatch: { @@ -2357,10 +2442,15 @@ declare module '@polkadot/types/lookup' { readonly asForceBatch: { readonly calls: Vec; } & Struct; - readonly type: 'Batch' | 'AsDerivative' | 'BatchAll' | 'DispatchAs' | 'ForceBatch'; + readonly isWithWeight: boolean; + readonly asWithWeight: { + readonly call: Call; + readonly weight: SpWeightsWeightV2Weight; + } & Struct; + readonly type: 'Batch' | 'AsDerivative' | 'BatchAll' | 'DispatchAs' | 'ForceBatch' | 'WithWeight'; } - /** @name PalletBabeCall (264) */ + /** @name PalletBabeCall (271) */ export interface PalletBabeCall extends Enum { readonly isReportEquivocation: boolean; readonly asReportEquivocation: { @@ -2379,7 +2469,7 @@ declare module '@polkadot/types/lookup' { readonly type: 'ReportEquivocation' | 'ReportEquivocationUnsigned' | 'PlanConfigChange'; } - /** @name SpConsensusSlotsEquivocationProof (265) */ + /** @name SpConsensusSlotsEquivocationProof (272) */ export interface SpConsensusSlotsEquivocationProof extends Struct { readonly offender: SpConsensusBabeAppPublic; readonly slot: u64; @@ -2387,7 +2477,7 @@ declare module '@polkadot/types/lookup' { readonly secondHeader: SpRuntimeHeader; } - /** @name SpRuntimeHeader (266) */ + /** @name SpRuntimeHeader (273) */ export interface SpRuntimeHeader extends Struct { readonly parentHash: H256; readonly number: Compact; @@ -2396,20 +2486,20 @@ declare module '@polkadot/types/lookup' { readonly digest: SpRuntimeDigest; } - /** @name SpRuntimeBlakeTwo256 (267) */ + /** @name SpRuntimeBlakeTwo256 (274) */ export type SpRuntimeBlakeTwo256 = Null; - /** @name SpConsensusBabeAppPublic (268) */ + /** @name SpConsensusBabeAppPublic (275) */ export interface SpConsensusBabeAppPublic extends SpCoreSr25519Public {} - /** @name SpSessionMembershipProof (270) */ + /** @name SpSessionMembershipProof (277) */ export interface SpSessionMembershipProof extends Struct { readonly session: u32; readonly trieNodes: Vec; readonly validatorCount: u32; } - /** @name SpConsensusBabeDigestsNextConfigDescriptor (271) */ + /** @name SpConsensusBabeDigestsNextConfigDescriptor (278) */ export interface SpConsensusBabeDigestsNextConfigDescriptor extends Enum { readonly isV1: boolean; readonly asV1: { @@ -2419,7 +2509,7 @@ declare module '@polkadot/types/lookup' { readonly type: 'V1'; } - /** @name SpConsensusBabeAllowedSlots (272) */ + /** @name SpConsensusBabeAllowedSlots (279) */ export interface SpConsensusBabeAllowedSlots extends Enum { readonly isPrimarySlots: boolean; readonly isPrimaryAndSecondaryPlainSlots: boolean; @@ -2427,7 +2517,7 @@ declare module '@polkadot/types/lookup' { readonly type: 'PrimarySlots' | 'PrimaryAndSecondaryPlainSlots' | 'PrimaryAndSecondaryVRFSlots'; } - /** @name PalletTimestampCall (273) */ + /** @name PalletTimestampCall (280) */ export interface PalletTimestampCall extends Enum { readonly isSet: boolean; readonly asSet: { @@ -2436,16 +2526,7 @@ declare module '@polkadot/types/lookup' { readonly type: 'Set'; } - /** @name PalletAuthorshipCall (275) */ - export interface PalletAuthorshipCall extends Enum { - readonly isSetUncles: boolean; - readonly asSetUncles: { - readonly newUncles: Vec; - } & Struct; - readonly type: 'SetUncles'; - } - - /** @name PalletBalancesCall (277) */ + /** @name PalletBalancesCall (281) */ export interface PalletBalancesCall extends Enum { readonly isTransfer: boolean; readonly asTransfer: { @@ -2482,7 +2563,7 @@ declare module '@polkadot/types/lookup' { readonly type: 'Transfer' | 'SetBalance' | 'ForceTransfer' | 'TransferKeepAlive' | 'TransferAll' | 'ForceUnreserve'; } - /** @name PalletElectionProviderMultiPhaseCall (278) */ + /** @name PalletElectionProviderMultiPhaseCall (282) */ export interface PalletElectionProviderMultiPhaseCall extends Enum { readonly isSubmitUnsigned: boolean; readonly asSubmitUnsigned: { @@ -2509,14 +2590,14 @@ declare module '@polkadot/types/lookup' { readonly type: 'SubmitUnsigned' | 'SetMinimumUntrustedScore' | 'SetEmergencyElectionResult' | 'Submit' | 'GovernanceFallback'; } - /** @name PalletElectionProviderMultiPhaseRawSolution (279) */ + /** @name PalletElectionProviderMultiPhaseRawSolution (283) */ export interface PalletElectionProviderMultiPhaseRawSolution extends Struct { readonly solution: JoystreamNodeRuntimeNposSolution16; readonly score: SpNposElectionsElectionScore; readonly round: u32; } - /** @name JoystreamNodeRuntimeNposSolution16 (280) */ + /** @name JoystreamNodeRuntimeNposSolution16 (284) */ export interface JoystreamNodeRuntimeNposSolution16 extends Struct { readonly votes1: Vec, Compact]>>; readonly votes2: Vec, ITuple<[Compact, Compact]>, Compact]>>; @@ -2536,26 +2617,19 @@ declare module '@polkadot/types/lookup' { readonly votes16: Vec, Vec, Compact]>>, Compact]>>; } - /** @name SpNposElectionsElectionScore (331) */ - export interface SpNposElectionsElectionScore extends Struct { - readonly minimalStake: u128; - readonly sumStake: u128; - readonly sumStakeSquared: u128; - } - - /** @name PalletElectionProviderMultiPhaseSolutionOrSnapshotSize (332) */ + /** @name PalletElectionProviderMultiPhaseSolutionOrSnapshotSize (335) */ export interface PalletElectionProviderMultiPhaseSolutionOrSnapshotSize extends Struct { readonly voters: Compact; readonly targets: Compact; } - /** @name SpNposElectionsSupport (336) */ + /** @name SpNposElectionsSupport (339) */ export interface SpNposElectionsSupport extends Struct { readonly total: u128; readonly voters: Vec>; } - /** @name PalletStakingPalletCall (338) */ + /** @name PalletStakingPalletCall (341) */ export interface PalletStakingPalletCall extends Enum { readonly isBond: boolean; readonly asBond: { @@ -2630,11 +2704,6 @@ declare module '@polkadot/types/lookup' { readonly asRebond: { readonly value: Compact; } & Struct; - readonly isSetHistoryDepth: boolean; - readonly asSetHistoryDepth: { - readonly newHistoryDepth: Compact; - readonly eraItemsDeleted: Compact; - } & Struct; readonly isReapStash: boolean; readonly asReapStash: { readonly stash: AccountId32; @@ -2661,10 +2730,14 @@ declare module '@polkadot/types/lookup' { readonly asForceApplyMinCommission: { readonly validatorStash: AccountId32; } & Struct; - readonly type: 'Bond' | 'BondExtra' | 'Unbond' | 'WithdrawUnbonded' | 'Validate' | 'Nominate' | 'Chill' | 'SetPayee' | 'SetController' | 'SetValidatorCount' | 'IncreaseValidatorCount' | 'ScaleValidatorCount' | 'ForceNoEras' | 'ForceNewEra' | 'SetInvulnerables' | 'ForceUnstake' | 'ForceNewEraAlways' | 'CancelDeferredSlash' | 'PayoutStakers' | 'Rebond' | 'SetHistoryDepth' | 'ReapStash' | 'Kick' | 'SetStakingConfigs' | 'ChillOther' | 'ForceApplyMinCommission'; + readonly isSetMinCommission: boolean; + readonly asSetMinCommission: { + readonly new_: Perbill; + } & Struct; + readonly type: 'Bond' | 'BondExtra' | 'Unbond' | 'WithdrawUnbonded' | 'Validate' | 'Nominate' | 'Chill' | 'SetPayee' | 'SetController' | 'SetValidatorCount' | 'IncreaseValidatorCount' | 'ScaleValidatorCount' | 'ForceNoEras' | 'ForceNewEra' | 'SetInvulnerables' | 'ForceUnstake' | 'ForceNewEraAlways' | 'CancelDeferredSlash' | 'PayoutStakers' | 'Rebond' | 'ReapStash' | 'Kick' | 'SetStakingConfigs' | 'ChillOther' | 'ForceApplyMinCommission' | 'SetMinCommission'; } - /** @name PalletStakingRewardDestination (339) */ + /** @name PalletStakingRewardDestination (342) */ export interface PalletStakingRewardDestination extends Enum { readonly isStaked: boolean; readonly isStash: boolean; @@ -2675,7 +2748,7 @@ declare module '@polkadot/types/lookup' { readonly type: 'Staked' | 'Stash' | 'Controller' | 'Account' | 'None'; } - /** @name PalletStakingPalletConfigOpU128 (343) */ + /** @name PalletStakingPalletConfigOpU128 (346) */ export interface PalletStakingPalletConfigOpU128 extends Enum { readonly isNoop: boolean; readonly isSet: boolean; @@ -2684,7 +2757,7 @@ declare module '@polkadot/types/lookup' { readonly type: 'Noop' | 'Set' | 'Remove'; } - /** @name PalletStakingPalletConfigOpU32 (344) */ + /** @name PalletStakingPalletConfigOpU32 (347) */ export interface PalletStakingPalletConfigOpU32 extends Enum { readonly isNoop: boolean; readonly isSet: boolean; @@ -2693,7 +2766,7 @@ declare module '@polkadot/types/lookup' { readonly type: 'Noop' | 'Set' | 'Remove'; } - /** @name PalletStakingPalletConfigOpPercent (345) */ + /** @name PalletStakingPalletConfigOpPercent (348) */ export interface PalletStakingPalletConfigOpPercent extends Enum { readonly isNoop: boolean; readonly isSet: boolean; @@ -2702,7 +2775,7 @@ declare module '@polkadot/types/lookup' { readonly type: 'Noop' | 'Set' | 'Remove'; } - /** @name PalletStakingPalletConfigOpPerbill (346) */ + /** @name PalletStakingPalletConfigOpPerbill (349) */ export interface PalletStakingPalletConfigOpPerbill extends Enum { readonly isNoop: boolean; readonly isSet: boolean; @@ -2711,7 +2784,7 @@ declare module '@polkadot/types/lookup' { readonly type: 'Noop' | 'Set' | 'Remove'; } - /** @name PalletSessionCall (347) */ + /** @name PalletSessionCall (350) */ export interface PalletSessionCall extends Enum { readonly isSetKeys: boolean; readonly asSetKeys: { @@ -2722,7 +2795,7 @@ declare module '@polkadot/types/lookup' { readonly type: 'SetKeys' | 'PurgeKeys'; } - /** @name JoystreamNodeRuntimeSessionKeys (348) */ + /** @name JoystreamNodeRuntimeSessionKeys (351) */ export interface JoystreamNodeRuntimeSessionKeys extends Struct { readonly grandpa: SpFinalityGrandpaAppPublic; readonly babe: SpConsensusBabeAppPublic; @@ -2730,10 +2803,10 @@ declare module '@polkadot/types/lookup' { readonly authorityDiscovery: SpAuthorityDiscoveryAppPublic; } - /** @name SpAuthorityDiscoveryAppPublic (349) */ + /** @name SpAuthorityDiscoveryAppPublic (352) */ export interface SpAuthorityDiscoveryAppPublic extends SpCoreSr25519Public {} - /** @name PalletGrandpaCall (350) */ + /** @name PalletGrandpaCall (353) */ export interface PalletGrandpaCall extends Enum { readonly isReportEquivocation: boolean; readonly asReportEquivocation: { @@ -2753,13 +2826,13 @@ declare module '@polkadot/types/lookup' { readonly type: 'ReportEquivocation' | 'ReportEquivocationUnsigned' | 'NoteStalled'; } - /** @name SpFinalityGrandpaEquivocationProof (351) */ + /** @name SpFinalityGrandpaEquivocationProof (354) */ export interface SpFinalityGrandpaEquivocationProof extends Struct { readonly setId: u64; readonly equivocation: SpFinalityGrandpaEquivocation; } - /** @name SpFinalityGrandpaEquivocation (352) */ + /** @name SpFinalityGrandpaEquivocation (355) */ export interface SpFinalityGrandpaEquivocation extends Enum { readonly isPrevote: boolean; readonly asPrevote: FinalityGrandpaEquivocationPrevote; @@ -2768,7 +2841,7 @@ declare module '@polkadot/types/lookup' { readonly type: 'Prevote' | 'Precommit'; } - /** @name FinalityGrandpaEquivocationPrevote (353) */ + /** @name FinalityGrandpaEquivocationPrevote (356) */ export interface FinalityGrandpaEquivocationPrevote extends Struct { readonly roundNumber: u64; readonly identity: SpFinalityGrandpaAppPublic; @@ -2776,19 +2849,19 @@ declare module '@polkadot/types/lookup' { readonly second: ITuple<[FinalityGrandpaPrevote, SpFinalityGrandpaAppSignature]>; } - /** @name FinalityGrandpaPrevote (354) */ + /** @name FinalityGrandpaPrevote (357) */ export interface FinalityGrandpaPrevote extends Struct { readonly targetHash: H256; readonly targetNumber: u32; } - /** @name SpFinalityGrandpaAppSignature (355) */ + /** @name SpFinalityGrandpaAppSignature (358) */ export interface SpFinalityGrandpaAppSignature extends SpCoreEd25519Signature {} - /** @name SpCoreEd25519Signature (356) */ + /** @name SpCoreEd25519Signature (359) */ export interface SpCoreEd25519Signature extends U8aFixed {} - /** @name FinalityGrandpaEquivocationPrecommit (359) */ + /** @name FinalityGrandpaEquivocationPrecommit (362) */ export interface FinalityGrandpaEquivocationPrecommit extends Struct { readonly roundNumber: u64; readonly identity: SpFinalityGrandpaAppPublic; @@ -2796,13 +2869,13 @@ declare module '@polkadot/types/lookup' { readonly second: ITuple<[FinalityGrandpaPrecommit, SpFinalityGrandpaAppSignature]>; } - /** @name FinalityGrandpaPrecommit (360) */ + /** @name FinalityGrandpaPrecommit (363) */ export interface FinalityGrandpaPrecommit extends Struct { readonly targetHash: H256; readonly targetNumber: u32; } - /** @name PalletImOnlineCall (362) */ + /** @name PalletImOnlineCall (365) */ export interface PalletImOnlineCall extends Enum { readonly isHeartbeat: boolean; readonly asHeartbeat: { @@ -2812,7 +2885,7 @@ declare module '@polkadot/types/lookup' { readonly type: 'Heartbeat'; } - /** @name PalletImOnlineHeartbeat (363) */ + /** @name PalletImOnlineHeartbeat (366) */ export interface PalletImOnlineHeartbeat extends Struct { readonly blockNumber: u32; readonly networkState: SpCoreOffchainOpaqueNetworkState; @@ -2821,19 +2894,19 @@ declare module '@polkadot/types/lookup' { readonly validatorsLen: u32; } - /** @name SpCoreOffchainOpaqueNetworkState (364) */ + /** @name SpCoreOffchainOpaqueNetworkState (367) */ export interface SpCoreOffchainOpaqueNetworkState extends Struct { readonly peerId: Bytes; readonly externalAddresses: Vec; } - /** @name PalletImOnlineSr25519AppSr25519Signature (368) */ + /** @name PalletImOnlineSr25519AppSr25519Signature (371) */ export interface PalletImOnlineSr25519AppSr25519Signature extends SpCoreSr25519Signature {} - /** @name SpCoreSr25519Signature (369) */ + /** @name SpCoreSr25519Signature (372) */ export interface SpCoreSr25519Signature extends U8aFixed {} - /** @name PalletBagsListCall (370) */ + /** @name PalletBagsListCall (373) */ export interface PalletBagsListCall extends Enum { readonly isRebag: boolean; readonly asRebag: { @@ -2846,7 +2919,7 @@ declare module '@polkadot/types/lookup' { readonly type: 'Rebag' | 'PutInFrontOf'; } - /** @name PalletVestingCall (371) */ + /** @name PalletVestingCall (374) */ export interface PalletVestingCall extends Enum { readonly isVest: boolean; readonly isVestOther: boolean; @@ -2872,14 +2945,14 @@ declare module '@polkadot/types/lookup' { readonly type: 'Vest' | 'VestOther' | 'VestedTransfer' | 'ForceVestedTransfer' | 'MergeSchedules'; } - /** @name PalletVestingVestingInfo (372) */ + /** @name PalletVestingVestingInfo (375) */ export interface PalletVestingVestingInfo extends Struct { readonly locked: u128; readonly perBlock: u128; readonly startingBlock: u32; } - /** @name PalletMultisigCall (373) */ + /** @name PalletMultisigCall (376) */ export interface PalletMultisigCall extends Enum { readonly isAsMultiThreshold1: boolean; readonly asAsMultiThreshold1: { @@ -2891,9 +2964,8 @@ declare module '@polkadot/types/lookup' { readonly threshold: u16; readonly otherSignatories: Vec; readonly maybeTimepoint: Option; - readonly call: WrapperKeepOpaque; - readonly storeCall: bool; - readonly maxWeight: u64; + readonly call: Call; + readonly maxWeight: SpWeightsWeightV2Weight; } & Struct; readonly isApproveAsMulti: boolean; readonly asApproveAsMulti: { @@ -2901,7 +2973,7 @@ declare module '@polkadot/types/lookup' { readonly otherSignatories: Vec; readonly maybeTimepoint: Option; readonly callHash: U8aFixed; - readonly maxWeight: u64; + readonly maxWeight: SpWeightsWeightV2Weight; } & Struct; readonly isCancelAsMulti: boolean; readonly asCancelAsMulti: { @@ -2913,7 +2985,7 @@ declare module '@polkadot/types/lookup' { readonly type: 'AsMultiThreshold1' | 'AsMulti' | 'ApproveAsMulti' | 'CancelAsMulti'; } - /** @name PalletCouncilCall (376) */ + /** @name PalletCouncilCall (378) */ export interface PalletCouncilCall extends Enum { readonly isAnnounceCandidacy: boolean; readonly asAnnounceCandidacy: { @@ -2974,7 +3046,7 @@ declare module '@polkadot/types/lookup' { readonly type: 'AnnounceCandidacy' | 'ReleaseCandidacyStake' | 'WithdrawCandidacy' | 'SetCandidacyNote' | 'SetBudget' | 'PlanBudgetRefill' | 'SetBudgetIncrement' | 'SetCouncilorReward' | 'FundingRequest' | 'FundCouncilBudget' | 'CouncilorRemark' | 'CandidateRemark'; } - /** @name PalletReferendumCall (377) */ + /** @name PalletReferendumCall (379) */ export interface PalletReferendumCall extends Enum { readonly isVote: boolean; readonly asVote: { @@ -2991,7 +3063,7 @@ declare module '@polkadot/types/lookup' { readonly type: 'Vote' | 'RevealVote' | 'ReleaseVoteStake' | 'OptOutOfVoting'; } - /** @name PalletMembershipCall (378) */ + /** @name PalletMembershipCall (380) */ export interface PalletMembershipCall extends Enum { readonly isBuyMembership: boolean; readonly asBuyMembership: { @@ -3075,7 +3147,7 @@ declare module '@polkadot/types/lookup' { readonly type: 'BuyMembership' | 'UpdateProfile' | 'UpdateAccounts' | 'UpdateProfileVerification' | 'SetReferralCut' | 'TransferInvites' | 'InviteMember' | 'GiftMembership' | 'SetMembershipPrice' | 'SetLeaderInvitationQuota' | 'SetInitialInvitationBalance' | 'SetInitialInvitationCount' | 'AddStakingAccountCandidate' | 'RemoveStakingAccount' | 'ConfirmStakingAccount' | 'MemberRemark' | 'CreateMember'; } - /** @name PalletForumCall (379) */ + /** @name PalletForumCall (381) */ export interface PalletForumCall extends Enum { readonly isUpdateCategoryMembershipOfModerator: boolean; readonly asUpdateCategoryMembershipOfModerator: { @@ -3186,7 +3258,7 @@ declare module '@polkadot/types/lookup' { readonly type: 'UpdateCategoryMembershipOfModerator' | 'CreateCategory' | 'UpdateCategoryArchivalStatus' | 'UpdateCategoryTitle' | 'UpdateCategoryDescription' | 'DeleteCategory' | 'CreateThread' | 'EditThreadMetadata' | 'DeleteThread' | 'MoveThreadToCategory' | 'ModerateThread' | 'AddPost' | 'EditPostText' | 'ModeratePost' | 'DeletePosts' | 'SetStickiedThreads'; } - /** @name PalletConstitutionCall (380) */ + /** @name PalletConstitutionCall (382) */ export interface PalletConstitutionCall extends Enum { readonly isAmendConstitution: boolean; readonly asAmendConstitution: { @@ -3195,7 +3267,7 @@ declare module '@polkadot/types/lookup' { readonly type: 'AmendConstitution'; } - /** @name PalletBountyCall (381) */ + /** @name PalletBountyCall (383) */ export interface PalletBountyCall extends Enum { readonly isCreateBounty: boolean; readonly asCreateBounty: { @@ -3284,7 +3356,7 @@ declare module '@polkadot/types/lookup' { readonly type: 'CreateBounty' | 'FundBounty' | 'TerminateBounty' | 'SwitchOracle' | 'WithdrawFunding' | 'AnnounceWorkEntry' | 'SubmitWork' | 'EndWorkingPeriod' | 'SubmitOracleJudgment' | 'WithdrawEntrantStake' | 'WithdrawOracleReward' | 'ContributorRemark' | 'OracleRemark' | 'EntrantRemark' | 'CreatorRemark'; } - /** @name PalletContentCall (383) */ + /** @name PalletContentCall (385) */ export interface PalletContentCall extends Enum { readonly isCreateCuratorGroup: boolean; readonly asCreateCuratorGroup: { @@ -3660,40 +3732,40 @@ declare module '@polkadot/types/lookup' { readonly type: 'CreateCuratorGroup' | 'UpdateCuratorGroupPermissions' | 'SetCuratorGroupStatus' | 'AddCuratorToGroup' | 'RemoveCuratorFromGroup' | 'CreateChannel' | 'UpdateChannel' | 'UpdateChannelPrivilegeLevel' | 'SetChannelPausedFeaturesAsModerator' | 'DeleteChannel' | 'DeleteChannelAssetsAsModerator' | 'DeleteChannelAsModerator' | 'SetChannelVisibilityAsModerator' | 'CreateVideo' | 'UpdateVideo' | 'DeleteVideo' | 'DeleteVideoAssetsAsModerator' | 'DeleteVideoAsModerator' | 'SetVideoVisibilityAsModerator' | 'UpdateChannelPayouts' | 'ClaimChannelReward' | 'WithdrawFromChannelBalance' | 'UpdateChannelStateBloatBond' | 'UpdateVideoStateBloatBond' | 'ClaimAndWithdrawChannelReward' | 'IssueNft' | 'DestroyNft' | 'StartOpenAuction' | 'StartEnglishAuction' | 'CancelEnglishAuction' | 'CancelOpenAuction' | 'CancelOffer' | 'CancelBuyNow' | 'UpdateBuyNowPrice' | 'MakeOpenAuctionBid' | 'MakeEnglishAuctionBid' | 'CancelOpenAuctionBid' | 'SettleEnglishAuction' | 'PickOpenAuctionWinner' | 'OfferNft' | 'SlingNftBack' | 'AcceptIncomingOffer' | 'SellNft' | 'BuyNft' | 'ToggleNftLimits' | 'ChannelOwnerRemark' | 'ChannelAgentRemark' | 'NftOwnerRemark' | 'InitializeChannelTransfer' | 'CancelChannelTransfer' | 'AcceptChannelTransfer' | 'UpdateGlobalNftLimit' | 'UpdateChannelNftLimit' | 'IssueCreatorToken' | 'InitCreatorTokenSale' | 'UpdateUpcomingCreatorTokenSale' | 'CreatorTokenIssuerTransfer' | 'MakeCreatorTokenPermissionless' | 'ReduceCreatorTokenPatronageRateTo' | 'ClaimCreatorTokenPatronageCredit' | 'IssueRevenueSplit' | 'FinalizeRevenueSplit' | 'FinalizeCreatorTokenSale' | 'DeissueCreatorToken'; } - /** @name PalletContentChannelBagWitness (384) */ + /** @name PalletContentChannelBagWitness (386) */ export interface PalletContentChannelBagWitness extends Struct { readonly storageBucketsNum: u32; readonly distributionBucketsNum: u32; } - /** @name PalletCommonMerkleTreeProofElementRecord (386) */ + /** @name PalletCommonMerkleTreeProofElementRecord (388) */ export interface PalletCommonMerkleTreeProofElementRecord extends Struct { readonly hash_: H256; readonly side: PalletCommonMerkleTreeSide; } - /** @name PalletCommonMerkleTreeSide (387) */ + /** @name PalletCommonMerkleTreeSide (389) */ export interface PalletCommonMerkleTreeSide extends Enum { readonly isLeft: boolean; readonly isRight: boolean; readonly type: 'Left' | 'Right'; } - /** @name PalletContentPullPaymentElement (388) */ + /** @name PalletContentPullPaymentElement (390) */ export interface PalletContentPullPaymentElement extends Struct { readonly channelId: u64; readonly cumulativeRewardEarned: u128; readonly reason: H256; } - /** @name PalletContentInitTransferParameters (389) */ + /** @name PalletContentInitTransferParameters (391) */ export interface PalletContentInitTransferParameters extends Struct { readonly newCollaborators: BTreeMap>; readonly price: u128; readonly newOwner: PalletContentChannelOwner; } - /** @name PalletProjectTokenTokenSaleParams (390) */ + /** @name PalletProjectTokenTokenSaleParams (392) */ export interface PalletProjectTokenTokenSaleParams extends Struct { readonly unitPrice: u128; readonly upperBoundQuantity: u128; @@ -3704,10 +3776,10 @@ declare module '@polkadot/types/lookup' { readonly metadata: Option; } - /** @name PalletProjectTokenTransfersPaymentWithVesting (391) */ + /** @name PalletProjectTokenTransfersPaymentWithVesting (393) */ export interface PalletProjectTokenTransfersPaymentWithVesting extends BTreeMap {} - /** @name PalletStorageCall (395) */ + /** @name PalletStorageCall (397) */ export interface PalletStorageCall extends Enum { readonly isDeleteStorageBucket: boolean; readonly asDeleteStorageBucket: { @@ -3886,7 +3958,7 @@ declare module '@polkadot/types/lookup' { readonly type: 'DeleteStorageBucket' | 'UpdateUploadingBlockedStatus' | 'UpdateDataSizeFee' | 'UpdateStorageBucketsPerBagLimit' | 'UpdateStorageBucketsVoucherMaxLimits' | 'UpdateDataObjectStateBloatBond' | 'UpdateNumberOfStorageBucketsInDynamicBagCreationPolicy' | 'UpdateBlacklist' | 'CreateStorageBucket' | 'UpdateStorageBucketsForBag' | 'CancelStorageBucketOperatorInvite' | 'InviteStorageBucketOperator' | 'RemoveStorageBucketOperator' | 'UpdateStorageBucketStatus' | 'SetStorageBucketVoucherLimits' | 'AcceptStorageBucketInvitation' | 'SetStorageOperatorMetadata' | 'AcceptPendingDataObjects' | 'CreateDistributionBucketFamily' | 'DeleteDistributionBucketFamily' | 'CreateDistributionBucket' | 'UpdateDistributionBucketStatus' | 'DeleteDistributionBucket' | 'UpdateDistributionBucketsForBag' | 'UpdateDistributionBucketsPerBagLimit' | 'UpdateDistributionBucketMode' | 'UpdateFamiliesInDynamicBagCreationPolicy' | 'InviteDistributionBucketOperator' | 'CancelDistributionBucketOperatorInvite' | 'RemoveDistributionBucketOperator' | 'SetDistributionBucketFamilyMetadata' | 'AcceptDistributionBucketInvitation' | 'SetDistributionOperatorMetadata' | 'StorageOperatorRemark' | 'DistributionOperatorRemark'; } - /** @name PalletProjectTokenCall (396) */ + /** @name PalletProjectTokenCall (398) */ export interface PalletProjectTokenCall extends Enum { readonly isTransfer: boolean; readonly asTransfer: { @@ -3932,25 +4004,25 @@ declare module '@polkadot/types/lookup' { readonly type: 'Transfer' | 'Burn' | 'DustAccount' | 'JoinWhitelist' | 'PurchaseTokensOnSale' | 'ParticipateInSplit' | 'ExitRevenueSplit'; } - /** @name PalletProjectTokenTransfersPayment (397) */ + /** @name PalletProjectTokenTransfersPayment (399) */ export interface PalletProjectTokenTransfersPayment extends BTreeMap {} - /** @name PalletProjectTokenPayment (398) */ + /** @name PalletProjectTokenPayment (400) */ export interface PalletProjectTokenPayment extends Struct { readonly amount: u128; } - /** @name PalletProjectTokenMerkleProof (402) */ + /** @name PalletProjectTokenMerkleProof (404) */ export interface PalletProjectTokenMerkleProof extends Vec> {} - /** @name PalletProjectTokenMerkleSide (405) */ + /** @name PalletProjectTokenMerkleSide (407) */ export interface PalletProjectTokenMerkleSide extends Enum { readonly isRight: boolean; readonly isLeft: boolean; readonly type: 'Right' | 'Left'; } - /** @name PalletProposalsEngineCall (406) */ + /** @name PalletProposalsEngineCall (408) */ export interface PalletProposalsEngineCall extends Enum { readonly isVote: boolean; readonly asVote: { @@ -3977,7 +4049,7 @@ declare module '@polkadot/types/lookup' { readonly type: 'Vote' | 'CancelProposal' | 'VetoProposal' | 'ProposerRemark'; } - /** @name PalletProposalsDiscussionCall (407) */ + /** @name PalletProposalsDiscussionCall (409) */ export interface PalletProposalsDiscussionCall extends Enum { readonly isAddPost: boolean; readonly asAddPost: { @@ -4008,7 +4080,7 @@ declare module '@polkadot/types/lookup' { readonly type: 'AddPost' | 'DeletePost' | 'UpdatePost' | 'ChangeThreadMode'; } - /** @name PalletProposalsCodexCall (408) */ + /** @name PalletProposalsCodexCall (410) */ export interface PalletProposalsCodexCall extends Enum { readonly isCreateProposal: boolean; readonly asCreateProposal: { @@ -4018,7 +4090,7 @@ declare module '@polkadot/types/lookup' { readonly type: 'CreateProposal'; } - /** @name PalletWorkingGroupCall (409) */ + /** @name PalletWorkingGroupCall (411) */ export interface PalletWorkingGroupCall extends Enum { readonly isAddOpening: boolean; readonly asAddOpening: { @@ -4118,7 +4190,7 @@ declare module '@polkadot/types/lookup' { readonly type: 'AddOpening' | 'ApplyOnOpening' | 'FillOpening' | 'UpdateRoleAccount' | 'LeaveRole' | 'TerminateRole' | 'SlashStake' | 'DecreaseStake' | 'IncreaseStake' | 'WithdrawApplication' | 'CancelOpening' | 'SetBudget' | 'UpdateRewardAccount' | 'UpdateRewardAmount' | 'SetStatusText' | 'SpendFromBudget' | 'FundWorkingGroupBudget' | 'LeadRemark' | 'WorkerRemark'; } - /** @name JoystreamNodeRuntimeOriginCaller (418) */ + /** @name JoystreamNodeRuntimeOriginCaller (420) */ export interface JoystreamNodeRuntimeOriginCaller extends Enum { readonly isSystem: boolean; readonly asSystem: FrameSupportDispatchRawOrigin; @@ -4126,7 +4198,7 @@ declare module '@polkadot/types/lookup' { readonly type: 'System' | 'Void'; } - /** @name FrameSupportDispatchRawOrigin (419) */ + /** @name FrameSupportDispatchRawOrigin (421) */ export interface FrameSupportDispatchRawOrigin extends Enum { readonly isRoot: boolean; readonly isSigned: boolean; @@ -4135,16 +4207,16 @@ declare module '@polkadot/types/lookup' { readonly type: 'Root' | 'Signed' | 'None'; } - /** @name SpCoreVoid (420) */ + /** @name SpCoreVoid (422) */ export type SpCoreVoid = Null; - /** @name PalletUtilityError (421) */ + /** @name PalletUtilityError (423) */ export interface PalletUtilityError extends Enum { readonly isTooManyCalls: boolean; readonly type: 'TooManyCalls'; } - /** @name SpConsensusBabeDigestsPreDigest (428) */ + /** @name SpConsensusBabeDigestsPreDigest (430) */ export interface SpConsensusBabeDigestsPreDigest extends Enum { readonly isPrimary: boolean; readonly asPrimary: SpConsensusBabeDigestsPrimaryPreDigest; @@ -4155,7 +4227,7 @@ declare module '@polkadot/types/lookup' { readonly type: 'Primary' | 'SecondaryPlain' | 'SecondaryVRF'; } - /** @name SpConsensusBabeDigestsPrimaryPreDigest (429) */ + /** @name SpConsensusBabeDigestsPrimaryPreDigest (431) */ export interface SpConsensusBabeDigestsPrimaryPreDigest extends Struct { readonly authorityIndex: u32; readonly slot: u64; @@ -4163,13 +4235,13 @@ declare module '@polkadot/types/lookup' { readonly vrfProof: U8aFixed; } - /** @name SpConsensusBabeDigestsSecondaryPlainPreDigest (430) */ + /** @name SpConsensusBabeDigestsSecondaryPlainPreDigest (432) */ export interface SpConsensusBabeDigestsSecondaryPlainPreDigest extends Struct { readonly authorityIndex: u32; readonly slot: u64; } - /** @name SpConsensusBabeDigestsSecondaryVRFPreDigest (431) */ + /** @name SpConsensusBabeDigestsSecondaryVRFPreDigest (433) */ export interface SpConsensusBabeDigestsSecondaryVRFPreDigest extends Struct { readonly authorityIndex: u32; readonly slot: u64; @@ -4177,13 +4249,13 @@ declare module '@polkadot/types/lookup' { readonly vrfProof: U8aFixed; } - /** @name SpConsensusBabeBabeEpochConfiguration (433) */ + /** @name SpConsensusBabeBabeEpochConfiguration (435) */ export interface SpConsensusBabeBabeEpochConfiguration extends Struct { readonly c: ITuple<[u64, u64]>; readonly allowedSlots: SpConsensusBabeAllowedSlots; } - /** @name PalletBabeError (434) */ + /** @name PalletBabeError (437) */ export interface PalletBabeError extends Enum { readonly isInvalidEquivocationProof: boolean; readonly isInvalidKeyOwnershipProof: boolean; @@ -4192,27 +4264,6 @@ declare module '@polkadot/types/lookup' { readonly type: 'InvalidEquivocationProof' | 'InvalidKeyOwnershipProof' | 'DuplicateOffenceReport' | 'InvalidConfiguration'; } - /** @name PalletAuthorshipUncleEntryItem (436) */ - export interface PalletAuthorshipUncleEntryItem extends Enum { - readonly isInclusionHeight: boolean; - readonly asInclusionHeight: u32; - readonly isUncle: boolean; - readonly asUncle: ITuple<[H256, Option]>; - readonly type: 'InclusionHeight' | 'Uncle'; - } - - /** @name PalletAuthorshipError (437) */ - export interface PalletAuthorshipError extends Enum { - readonly isInvalidUncleParent: boolean; - readonly isUnclesAlreadySet: boolean; - readonly isTooManyUncles: boolean; - readonly isGenesisUncle: boolean; - readonly isTooHighUncle: boolean; - readonly isUncleAlreadyIncluded: boolean; - readonly isOldUncle: boolean; - readonly type: 'InvalidUncleParent' | 'UnclesAlreadySet' | 'TooManyUncles' | 'GenesisUncle' | 'TooHighUncle' | 'UncleAlreadyIncluded' | 'OldUncle'; - } - /** @name PalletBalancesBalanceLock (439) */ export interface PalletBalancesBalanceLock extends Struct { readonly id: U8aFixed; @@ -4234,14 +4285,7 @@ declare module '@polkadot/types/lookup' { readonly amount: u128; } - /** @name PalletBalancesReleases (445) */ - export interface PalletBalancesReleases extends Enum { - readonly isV100: boolean; - readonly isV200: boolean; - readonly type: 'V100' | 'V200'; - } - - /** @name PalletBalancesError (446) */ + /** @name PalletBalancesError (445) */ export interface PalletBalancesError extends Enum { readonly isVestingBalance: boolean; readonly isLiquidityRestrictions: boolean; @@ -4254,37 +4298,27 @@ declare module '@polkadot/types/lookup' { readonly type: 'VestingBalance' | 'LiquidityRestrictions' | 'InsufficientBalance' | 'ExistentialDeposit' | 'KeepAlive' | 'ExistingVestingSchedule' | 'DeadAccount' | 'TooManyReserves'; } - /** @name PalletTransactionPaymentReleases (448) */ + /** @name PalletTransactionPaymentReleases (447) */ export interface PalletTransactionPaymentReleases extends Enum { readonly isV1Ancient: boolean; readonly isV2: boolean; readonly type: 'V1Ancient' | 'V2'; } - /** @name PalletElectionProviderMultiPhasePhase (449) */ - export interface PalletElectionProviderMultiPhasePhase extends Enum { - readonly isOff: boolean; - readonly isSigned: boolean; - readonly isUnsigned: boolean; - readonly asUnsigned: ITuple<[bool, u32]>; - readonly isEmergency: boolean; - readonly type: 'Off' | 'Signed' | 'Unsigned' | 'Emergency'; - } - - /** @name PalletElectionProviderMultiPhaseReadySolution (451) */ + /** @name PalletElectionProviderMultiPhaseReadySolution (448) */ export interface PalletElectionProviderMultiPhaseReadySolution extends Struct { readonly supports: Vec>; readonly score: SpNposElectionsElectionScore; readonly compute: PalletElectionProviderMultiPhaseElectionCompute; } - /** @name PalletElectionProviderMultiPhaseRoundSnapshot (452) */ + /** @name PalletElectionProviderMultiPhaseRoundSnapshot (450) */ export interface PalletElectionProviderMultiPhaseRoundSnapshot extends Struct { readonly voters: Vec]>>; readonly targets: Vec; } - /** @name PalletElectionProviderMultiPhaseSignedSignedSubmission (460) */ + /** @name PalletElectionProviderMultiPhaseSignedSignedSubmission (457) */ export interface PalletElectionProviderMultiPhaseSignedSignedSubmission extends Struct { readonly who: AccountId32; readonly deposit: u128; @@ -4292,7 +4326,7 @@ declare module '@polkadot/types/lookup' { readonly callFee: u128; } - /** @name PalletElectionProviderMultiPhaseError (461) */ + /** @name PalletElectionProviderMultiPhaseError (458) */ export interface PalletElectionProviderMultiPhaseError extends Enum { readonly isPreDispatchEarlySubmission: boolean; readonly isPreDispatchWrongWinnerCount: boolean; @@ -4306,10 +4340,12 @@ declare module '@polkadot/types/lookup' { readonly isInvalidSubmissionIndex: boolean; readonly isCallNotAllowed: boolean; readonly isFallbackFailed: boolean; - readonly type: 'PreDispatchEarlySubmission' | 'PreDispatchWrongWinnerCount' | 'PreDispatchWeakSubmission' | 'SignedQueueFull' | 'SignedCannotPayDeposit' | 'SignedInvalidWitness' | 'SignedTooMuchWeight' | 'OcwCallWrongEra' | 'MissingSnapshotMetadata' | 'InvalidSubmissionIndex' | 'CallNotAllowed' | 'FallbackFailed'; + readonly isBoundNotMet: boolean; + readonly isTooManyWinners: boolean; + readonly type: 'PreDispatchEarlySubmission' | 'PreDispatchWrongWinnerCount' | 'PreDispatchWeakSubmission' | 'SignedQueueFull' | 'SignedCannotPayDeposit' | 'SignedInvalidWitness' | 'SignedTooMuchWeight' | 'OcwCallWrongEra' | 'MissingSnapshotMetadata' | 'InvalidSubmissionIndex' | 'CallNotAllowed' | 'FallbackFailed' | 'BoundNotMet' | 'TooManyWinners'; } - /** @name PalletStakingStakingLedger (462) */ + /** @name PalletStakingStakingLedger (459) */ export interface PalletStakingStakingLedger extends Struct { readonly stash: AccountId32; readonly total: Compact; @@ -4318,41 +4354,32 @@ declare module '@polkadot/types/lookup' { readonly claimedRewards: Vec; } - /** @name PalletStakingUnlockChunk (464) */ + /** @name PalletStakingUnlockChunk (461) */ export interface PalletStakingUnlockChunk extends Struct { readonly value: Compact; readonly era: Compact; } - /** @name PalletStakingNominations (466) */ + /** @name PalletStakingNominations (464) */ export interface PalletStakingNominations extends Struct { readonly targets: Vec; readonly submittedIn: u32; readonly suppressed: bool; } - /** @name PalletStakingActiveEraInfo (467) */ + /** @name PalletStakingActiveEraInfo (465) */ export interface PalletStakingActiveEraInfo extends Struct { readonly index: u32; readonly start: Option; } - /** @name PalletStakingEraRewardPoints (469) */ + /** @name PalletStakingEraRewardPoints (467) */ export interface PalletStakingEraRewardPoints extends Struct { readonly total: u32; readonly individual: BTreeMap; } - /** @name PalletStakingForcing (473) */ - export interface PalletStakingForcing extends Enum { - readonly isNotForcing: boolean; - readonly isForceNew: boolean; - readonly isForceNone: boolean; - readonly isForceAlways: boolean; - readonly type: 'NotForcing' | 'ForceNew' | 'ForceNone' | 'ForceAlways'; - } - - /** @name PalletStakingUnappliedSlash (475) */ + /** @name PalletStakingUnappliedSlash (472) */ export interface PalletStakingUnappliedSlash extends Struct { readonly validator: AccountId32; readonly own: u128; @@ -4361,7 +4388,7 @@ declare module '@polkadot/types/lookup' { readonly payout: u128; } - /** @name PalletStakingSlashingSlashingSpans (477) */ + /** @name PalletStakingSlashingSlashingSpans (474) */ export interface PalletStakingSlashingSlashingSpans extends Struct { readonly spanIndex: u32; readonly lastStart: u32; @@ -4369,27 +4396,13 @@ declare module '@polkadot/types/lookup' { readonly prior: Vec; } - /** @name PalletStakingSlashingSpanRecord (478) */ + /** @name PalletStakingSlashingSpanRecord (475) */ export interface PalletStakingSlashingSpanRecord extends Struct { readonly slashed: u128; readonly paidOut: u128; } - /** @name PalletStakingReleases (481) */ - export interface PalletStakingReleases extends Enum { - readonly isV100Ancient: boolean; - readonly isV200: boolean; - readonly isV300: boolean; - readonly isV400: boolean; - readonly isV500: boolean; - readonly isV600: boolean; - readonly isV700: boolean; - readonly isV800: boolean; - readonly isV900: boolean; - readonly type: 'V100Ancient' | 'V200' | 'V300' | 'V400' | 'V500' | 'V600' | 'V700' | 'V800' | 'V900'; - } - - /** @name PalletStakingPalletError (482) */ + /** @name PalletStakingPalletError (478) */ export interface PalletStakingPalletError extends Enum { readonly isNotController: boolean; readonly isNotStash: boolean; @@ -4415,14 +4428,15 @@ declare module '@polkadot/types/lookup' { readonly isTooManyNominators: boolean; readonly isTooManyValidators: boolean; readonly isCommissionTooLow: boolean; + readonly isBoundNotMet: boolean; readonly isBondingRestricted: boolean; - readonly type: 'NotController' | 'NotStash' | 'AlreadyBonded' | 'AlreadyPaired' | 'EmptyTargets' | 'DuplicateIndex' | 'InvalidSlashIndex' | 'InsufficientBond' | 'NoMoreChunks' | 'NoUnlockChunk' | 'FundedTarget' | 'InvalidEraToReward' | 'InvalidNumberOfNominations' | 'NotSortedAndUnique' | 'AlreadyClaimed' | 'IncorrectHistoryDepth' | 'IncorrectSlashingSpans' | 'BadState' | 'TooManyTargets' | 'BadTarget' | 'CannotChillOther' | 'TooManyNominators' | 'TooManyValidators' | 'CommissionTooLow' | 'BondingRestricted'; + readonly type: 'NotController' | 'NotStash' | 'AlreadyBonded' | 'AlreadyPaired' | 'EmptyTargets' | 'DuplicateIndex' | 'InvalidSlashIndex' | 'InsufficientBond' | 'NoMoreChunks' | 'NoUnlockChunk' | 'FundedTarget' | 'InvalidEraToReward' | 'InvalidNumberOfNominations' | 'NotSortedAndUnique' | 'AlreadyClaimed' | 'IncorrectHistoryDepth' | 'IncorrectSlashingSpans' | 'BadState' | 'TooManyTargets' | 'BadTarget' | 'CannotChillOther' | 'TooManyNominators' | 'TooManyValidators' | 'CommissionTooLow' | 'BoundNotMet' | 'BondingRestricted'; } - /** @name SpCoreCryptoKeyTypeId (486) */ + /** @name SpCoreCryptoKeyTypeId (482) */ export interface SpCoreCryptoKeyTypeId extends U8aFixed {} - /** @name PalletSessionError (487) */ + /** @name PalletSessionError (483) */ export interface PalletSessionError extends Enum { readonly isInvalidProof: boolean; readonly isNoAssociatedValidatorId: boolean; @@ -4432,7 +4446,7 @@ declare module '@polkadot/types/lookup' { readonly type: 'InvalidProof' | 'NoAssociatedValidatorId' | 'DuplicatedKey' | 'NoKeys' | 'NoAccount'; } - /** @name PalletGrandpaStoredState (489) */ + /** @name PalletGrandpaStoredState (485) */ export interface PalletGrandpaStoredState extends Enum { readonly isLive: boolean; readonly isPendingPause: boolean; @@ -4449,7 +4463,7 @@ declare module '@polkadot/types/lookup' { readonly type: 'Live' | 'PendingPause' | 'Paused' | 'PendingResume'; } - /** @name PalletGrandpaStoredPendingChange (490) */ + /** @name PalletGrandpaStoredPendingChange (486) */ export interface PalletGrandpaStoredPendingChange extends Struct { readonly scheduledAt: u32; readonly delay: u32; @@ -4457,7 +4471,7 @@ declare module '@polkadot/types/lookup' { readonly forced: Option; } - /** @name PalletGrandpaError (492) */ + /** @name PalletGrandpaError (488) */ export interface PalletGrandpaError extends Enum { readonly isPauseFailed: boolean; readonly isResumeFailed: boolean; @@ -4469,26 +4483,26 @@ declare module '@polkadot/types/lookup' { readonly type: 'PauseFailed' | 'ResumeFailed' | 'ChangePending' | 'TooSoon' | 'InvalidKeyOwnershipProof' | 'InvalidEquivocationProof' | 'DuplicateOffenceReport'; } - /** @name PalletImOnlineBoundedOpaqueNetworkState (498) */ + /** @name PalletImOnlineBoundedOpaqueNetworkState (494) */ export interface PalletImOnlineBoundedOpaqueNetworkState extends Struct { readonly peerId: Bytes; readonly externalAddresses: Vec; } - /** @name PalletImOnlineError (502) */ + /** @name PalletImOnlineError (498) */ export interface PalletImOnlineError extends Enum { readonly isInvalidKey: boolean; readonly isDuplicatedHeartbeat: boolean; readonly type: 'InvalidKey' | 'DuplicatedHeartbeat'; } - /** @name SpStakingOffenceOffenceDetails (503) */ + /** @name SpStakingOffenceOffenceDetails (499) */ export interface SpStakingOffenceOffenceDetails extends Struct { readonly offender: ITuple<[AccountId32, PalletStakingExposure]>; readonly reporters: Vec; } - /** @name PalletBagsListListNode (506) */ + /** @name PalletBagsListListNode (502) */ export interface PalletBagsListListNode extends Struct { readonly id: AccountId32; readonly prev: Option; @@ -4497,20 +4511,20 @@ declare module '@polkadot/types/lookup' { readonly score: u64; } - /** @name PalletBagsListListBag (507) */ + /** @name PalletBagsListListBag (503) */ export interface PalletBagsListListBag extends Struct { readonly head: Option; readonly tail: Option; } - /** @name PalletBagsListError (508) */ + /** @name PalletBagsListError (504) */ export interface PalletBagsListError extends Enum { readonly isList: boolean; readonly asList: PalletBagsListListListError; readonly type: 'List'; } - /** @name PalletBagsListListListError (509) */ + /** @name PalletBagsListListListError (505) */ export interface PalletBagsListListListError extends Enum { readonly isDuplicate: boolean; readonly isNotHeavier: boolean; @@ -4519,14 +4533,14 @@ declare module '@polkadot/types/lookup' { readonly type: 'Duplicate' | 'NotHeavier' | 'NotInSameBag' | 'NodeNotFound'; } - /** @name PalletVestingReleases (512) */ + /** @name PalletVestingReleases (508) */ export interface PalletVestingReleases extends Enum { readonly isV0: boolean; readonly isV1: boolean; readonly type: 'V0' | 'V1'; } - /** @name PalletVestingError (513) */ + /** @name PalletVestingError (509) */ export interface PalletVestingError extends Enum { readonly isNotVesting: boolean; readonly isAtMaxVestingSchedules: boolean; @@ -4536,7 +4550,7 @@ declare module '@polkadot/types/lookup' { readonly type: 'NotVesting' | 'AtMaxVestingSchedules' | 'AmountLow' | 'ScheduleIndexOutOfBounds' | 'InvalidScheduleParams'; } - /** @name PalletMultisigMultisig (515) */ + /** @name PalletMultisigMultisig (511) */ export interface PalletMultisigMultisig extends Struct { readonly when: PalletMultisigTimepoint; readonly deposit: u128; @@ -4544,7 +4558,7 @@ declare module '@polkadot/types/lookup' { readonly approvals: Vec; } - /** @name PalletMultisigError (517) */ + /** @name PalletMultisigError (513) */ export interface PalletMultisigError extends Enum { readonly isMinimumThreshold: boolean; readonly isAlreadyApproved: boolean; @@ -4563,13 +4577,13 @@ declare module '@polkadot/types/lookup' { readonly type: 'MinimumThreshold' | 'AlreadyApproved' | 'NoApprovalsNeeded' | 'TooFewSignatories' | 'TooManySignatories' | 'SignatoriesOutOfOrder' | 'SenderInSignatories' | 'NotFound' | 'NotOwner' | 'NoTimepoint' | 'WrongTimepoint' | 'UnexpectedTimepoint' | 'MaxWeightTooLow' | 'AlreadyStored'; } - /** @name PalletCouncilCouncilStageUpdate (518) */ + /** @name PalletCouncilCouncilStageUpdate (514) */ export interface PalletCouncilCouncilStageUpdate extends Struct { readonly stage: PalletCouncilCouncilStage; readonly changedAt: u32; } - /** @name PalletCouncilCouncilStage (519) */ + /** @name PalletCouncilCouncilStage (515) */ export interface PalletCouncilCouncilStage extends Enum { readonly isAnnouncing: boolean; readonly asAnnouncing: PalletCouncilCouncilStageAnnouncing; @@ -4580,23 +4594,23 @@ declare module '@polkadot/types/lookup' { readonly type: 'Announcing' | 'Election' | 'Idle'; } - /** @name PalletCouncilCouncilStageAnnouncing (520) */ + /** @name PalletCouncilCouncilStageAnnouncing (516) */ export interface PalletCouncilCouncilStageAnnouncing extends Struct { readonly candidatesCount: u32; readonly endsAt: u32; } - /** @name PalletCouncilCouncilStageElection (521) */ + /** @name PalletCouncilCouncilStageElection (517) */ export interface PalletCouncilCouncilStageElection extends Struct { readonly candidatesCount: u32; } - /** @name PalletCouncilCouncilStageIdle (522) */ + /** @name PalletCouncilCouncilStageIdle (518) */ export interface PalletCouncilCouncilStageIdle extends Struct { readonly endsAt: u32; } - /** @name PalletCouncilCouncilMember (524) */ + /** @name PalletCouncilCouncilMember (520) */ export interface PalletCouncilCouncilMember extends Struct { readonly stakingAccountId: AccountId32; readonly rewardAccountId: AccountId32; @@ -4606,7 +4620,7 @@ declare module '@polkadot/types/lookup' { readonly unpaidReward: u128; } - /** @name PalletCouncilCandidate (526) */ + /** @name PalletCouncilCandidate (522) */ export interface PalletCouncilCandidate extends Struct { readonly stakingAccountId: AccountId32; readonly rewardAccountId: AccountId32; @@ -4616,7 +4630,7 @@ declare module '@polkadot/types/lookup' { readonly noteHash: Option; } - /** @name PalletCouncilError (527) */ + /** @name PalletCouncilError (523) */ export interface PalletCouncilError extends Enum { readonly isArithmeticError: boolean; readonly isBadOrigin: boolean; @@ -4645,7 +4659,7 @@ declare module '@polkadot/types/lookup' { readonly type: 'ArithmeticError' | 'BadOrigin' | 'CantCandidateNow' | 'CantReleaseStakeNow' | 'CandidacyStakeTooLow' | 'CantCandidateTwice' | 'ConflictingStake' | 'StakeStillNeeded' | 'NoStake' | 'InsufficientBalanceForStaking' | 'CantVoteForYourself' | 'MemberIdNotMatchAccount' | 'InvalidAccountToStakeReuse' | 'NotCandidatingNow' | 'CantWithdrawCandidacyNow' | 'NotCouncilor' | 'InsufficientFundsForFundingRequest' | 'ZeroBalanceFundRequest' | 'RepeatedFundRequestAccount' | 'EmptyFundingRequests' | 'InsufficientTokensForFunding' | 'ZeroTokensFunding' | 'CandidateDoesNotExist' | 'InsufficientBalanceForTransfer'; } - /** @name PalletReferendumReferendumStage (528) */ + /** @name PalletReferendumReferendumStage (524) */ export interface PalletReferendumReferendumStage extends Enum { readonly isInactive: boolean; readonly isVoting: boolean; @@ -4655,7 +4669,7 @@ declare module '@polkadot/types/lookup' { readonly type: 'Inactive' | 'Voting' | 'Revealing'; } - /** @name PalletReferendumReferendumStageVoting (530) */ + /** @name PalletReferendumReferendumStageVoting (526) */ export interface PalletReferendumReferendumStageVoting extends Struct { readonly started: u32; readonly winningTargetCount: u32; @@ -4663,7 +4677,7 @@ declare module '@polkadot/types/lookup' { readonly endsAt: u32; } - /** @name PalletReferendumReferendumStageRevealing (531) */ + /** @name PalletReferendumReferendumStageRevealing (527) */ export interface PalletReferendumReferendumStageRevealing extends Struct { readonly started: u32; readonly winningTargetCount: u32; @@ -4672,7 +4686,7 @@ declare module '@polkadot/types/lookup' { readonly endsAt: u32; } - /** @name PalletReferendumCastVote (532) */ + /** @name PalletReferendumCastVote (528) */ export interface PalletReferendumCastVote extends Struct { readonly commitment: H256; readonly cycleId: u64; @@ -4680,7 +4694,7 @@ declare module '@polkadot/types/lookup' { readonly voteFor: Option; } - /** @name PalletReferendumError (533) */ + /** @name PalletReferendumError (529) */ export interface PalletReferendumError extends Enum { readonly isBadOrigin: boolean; readonly isReferendumNotRunning: boolean; @@ -4699,7 +4713,7 @@ declare module '@polkadot/types/lookup' { readonly type: 'BadOrigin' | 'ReferendumNotRunning' | 'RevealingNotInProgress' | 'ConflictStakesOnAccount' | 'InsufficientBalanceToStake' | 'InsufficientStake' | 'InvalidReveal' | 'InvalidVote' | 'VoteNotExisting' | 'AlreadyVotedThisCycle' | 'UnstakingVoteInSameCycle' | 'SaltTooLong' | 'UnstakingForbidden' | 'AccountAlreadyOptedOutOfVoting'; } - /** @name PalletMembershipMembershipObject (534) */ + /** @name PalletMembershipMembershipObject (530) */ export interface PalletMembershipMembershipObject extends Struct { readonly handleHash: H256; readonly rootAccount: AccountId32; @@ -4708,13 +4722,13 @@ declare module '@polkadot/types/lookup' { readonly invites: u32; } - /** @name PalletMembershipStakingAccountMemberBinding (535) */ + /** @name PalletMembershipStakingAccountMemberBinding (531) */ export interface PalletMembershipStakingAccountMemberBinding extends Struct { readonly memberId: u64; readonly confirmed: bool; } - /** @name PalletMembershipError (536) */ + /** @name PalletMembershipError (532) */ export interface PalletMembershipError extends Enum { readonly isNotEnoughBalanceToBuyMembership: boolean; readonly isControllerAccountRequired: boolean; @@ -4741,7 +4755,7 @@ declare module '@polkadot/types/lookup' { readonly type: 'NotEnoughBalanceToBuyMembership' | 'ControllerAccountRequired' | 'RootAccountRequired' | 'UnsignedOrigin' | 'MemberProfileNotFound' | 'HandleAlreadyRegistered' | 'HandleMustBeProvidedDuringRegistration' | 'ReferrerIsNotMember' | 'CannotTransferInvitesForNotMember' | 'NotEnoughInvites' | 'WorkingGroupLeaderNotSet' | 'StakingAccountIsAlreadyRegistered' | 'StakingAccountDoesntExist' | 'StakingAccountAlreadyConfirmed' | 'WorkingGroupBudgetIsNotSufficientForInviting' | 'ConflictingLock' | 'CannotExceedReferralCutPercentLimit' | 'ConflictStakesOnAccount' | 'InsufficientBalanceToCoverStake' | 'GifLockExceedsCredit' | 'InsufficientBalanceToGift' | 'InsufficientBalanceToCoverPayment'; } - /** @name PalletForumCategory (537) */ + /** @name PalletForumCategory (533) */ export interface PalletForumCategory extends Struct { readonly titleHash: H256; readonly descriptionHash: H256; @@ -4753,7 +4767,7 @@ declare module '@polkadot/types/lookup' { readonly stickyThreadIds: BTreeSet; } - /** @name PalletForumThread (539) */ + /** @name PalletForumThread (535) */ export interface PalletForumThread extends Struct { readonly categoryId: u64; readonly authorId: u64; @@ -4761,7 +4775,7 @@ declare module '@polkadot/types/lookup' { readonly numberOfEditablePosts: u64; } - /** @name PalletForumPost (540) */ + /** @name PalletForumPost (536) */ export interface PalletForumPost extends Struct { readonly threadId: u64; readonly textHash: H256; @@ -4770,7 +4784,7 @@ declare module '@polkadot/types/lookup' { readonly lastEdited: u32; } - /** @name PalletForumError (541) */ + /** @name PalletForumError (537) */ export interface PalletForumError extends Enum { readonly isArithmeticError: boolean; readonly isOriginNotForumLead: boolean; @@ -4802,12 +4816,12 @@ declare module '@polkadot/types/lookup' { readonly type: 'ArithmeticError' | 'OriginNotForumLead' | 'ForumUserIdNotMatchAccount' | 'ModeratorIdNotMatchAccount' | 'AccountDoesNotMatchThreadAuthor' | 'ThreadDoesNotExist' | 'ModeratorModerateOriginCategory' | 'ModeratorModerateDestinationCategory' | 'ThreadMoveInvalid' | 'ThreadNotBeingUpdated' | 'InsufficientBalanceForThreadCreation' | 'CannotDeleteThreadWithOutstandingPosts' | 'PostDoesNotExist' | 'AccountDoesNotMatchPostAuthor' | 'InsufficientBalanceForPost' | 'CategoryNotBeingUpdated' | 'AncestorCategoryImmutable' | 'MaxValidCategoryDepthExceeded' | 'CategoryDoesNotExist' | 'CategoryModeratorDoesNotExist' | 'CategoryNotEmptyThreads' | 'CategoryNotEmptyCategories' | 'ModeratorCantDeleteCategory' | 'ModeratorCantUpdateCategory' | 'MapSizeLimit' | 'PathLengthShouldBeGreaterThanZero' | 'MaxNumberOfStickiedThreadsExceeded'; } - /** @name PalletConstitutionConstitutionInfo (542) */ + /** @name PalletConstitutionConstitutionInfo (538) */ export interface PalletConstitutionConstitutionInfo extends Struct { readonly textHash: H256; } - /** @name PalletBountyBountyRecord (543) */ + /** @name PalletBountyBountyRecord (539) */ export interface PalletBountyBountyRecord extends Struct { readonly creationParams: PalletBountyBountyParametersBoundedBTreeSet; readonly totalFunding: u128; @@ -4816,7 +4830,7 @@ declare module '@polkadot/types/lookup' { readonly hasUnpaidOracleReward: bool; } - /** @name PalletBountyBountyParametersBoundedBTreeSet (545) */ + /** @name PalletBountyBountyParametersBoundedBTreeSet (541) */ export interface PalletBountyBountyParametersBoundedBTreeSet extends Struct { readonly oracle: PalletBountyBountyActor; readonly contractType: PalletBountyAssuranceContractTypeBoundedBTreeSet; @@ -4827,7 +4841,7 @@ declare module '@polkadot/types/lookup' { readonly fundingType: PalletBountyFundingType; } - /** @name PalletBountyAssuranceContractTypeBoundedBTreeSet (546) */ + /** @name PalletBountyAssuranceContractTypeBoundedBTreeSet (542) */ export interface PalletBountyAssuranceContractTypeBoundedBTreeSet extends Enum { readonly isOpen: boolean; readonly isClosed: boolean; @@ -4835,7 +4849,7 @@ declare module '@polkadot/types/lookup' { readonly type: 'Open' | 'Closed'; } - /** @name PalletBountyBountyMilestone (547) */ + /** @name PalletBountyBountyMilestone (543) */ export interface PalletBountyBountyMilestone extends Enum { readonly isCreated: boolean; readonly asCreated: { @@ -4852,13 +4866,13 @@ declare module '@polkadot/types/lookup' { readonly type: 'Created' | 'BountyMaxFundingReached' | 'WorkSubmitted' | 'Terminated' | 'JudgmentSubmitted'; } - /** @name PalletBountyContribution (549) */ + /** @name PalletBountyContribution (545) */ export interface PalletBountyContribution extends Struct { readonly amount: u128; readonly funderStateBloatBondAmount: u128; } - /** @name PalletBountyEntryRecord (550) */ + /** @name PalletBountyEntryRecord (546) */ export interface PalletBountyEntryRecord extends Struct { readonly memberId: u64; readonly stakingAccountId: AccountId32; @@ -4866,7 +4880,7 @@ declare module '@polkadot/types/lookup' { readonly workSubmitted: bool; } - /** @name PalletBountyError (551) */ + /** @name PalletBountyError (547) */ export interface PalletBountyError extends Enum { readonly isArithmeticError: boolean; readonly isMinFundingAmountCannotBeGreaterThanMaxAmount: boolean; @@ -4906,7 +4920,7 @@ declare module '@polkadot/types/lookup' { readonly type: 'ArithmeticError' | 'MinFundingAmountCannotBeGreaterThanMaxAmount' | 'BountyDoesntExist' | 'SwitchOracleOriginIsRoot' | 'InvalidStageUnexpectedFunding' | 'InvalidStageUnexpectedNoFundingContributed' | 'InvalidStageUnexpectedCancelled' | 'InvalidStageUnexpectedWorkSubmission' | 'InvalidStageUnexpectedJudgment' | 'InvalidStageUnexpectedSuccessfulBountyWithdrawal' | 'InvalidStageUnexpectedFailedBountyWithdrawal' | 'InsufficientBalanceForBounty' | 'NoBountyContributionFound' | 'InsufficientBalanceForStake' | 'ConflictingStakes' | 'WorkEntryDoesntExist' | 'CherryLessThenMinimumAllowed' | 'CannotSubmitWorkToClosedContractBounty' | 'ClosedContractMemberListIsEmpty' | 'ClosedContractMemberListIsTooLarge' | 'ClosedContractMemberNotFound' | 'InvalidOracleMemberId' | 'InvalidStakingAccountForMember' | 'ZeroWinnerReward' | 'TotalRewardShouldBeEqualToTotalFunding' | 'EntrantStakeIsLessThanMininum' | 'FundingAmountCannotBeZero' | 'FundingPeriodCannotBeZero' | 'WinnerShouldHasWorkSubmission' | 'InvalidContributorActorSpecified' | 'InvalidOracleActorSpecified' | 'InvalidEntrantWorkerSpecified' | 'InvalidCreatorActorSpecified' | 'WorkEntryDoesntBelongToWorker' | 'OracleRewardAlreadyWithdrawn'; } - /** @name PalletContentVideoRecord (553) */ + /** @name PalletContentVideoRecord (549) */ export interface PalletContentVideoRecord extends Struct { readonly inChannel: u64; readonly nftStatus: Option; @@ -4914,7 +4928,7 @@ declare module '@polkadot/types/lookup' { readonly videoStateBloatBond: PalletCommonBloatBondRepayableBloatBond; } - /** @name PalletContentNftTypesOwnedNft (554) */ + /** @name PalletContentNftTypesOwnedNft (550) */ export interface PalletContentNftTypesOwnedNft extends Struct { readonly owner: PalletContentNftTypesNftOwner; readonly transactionalStatus: PalletContentNftTypesTransactionalStatusRecord; @@ -4922,7 +4936,7 @@ declare module '@polkadot/types/lookup' { readonly openAuctionsNonce: u64; } - /** @name PalletContentNftTypesTransactionalStatusRecord (555) */ + /** @name PalletContentNftTypesTransactionalStatusRecord (551) */ export interface PalletContentNftTypesTransactionalStatusRecord extends Enum { readonly isIdle: boolean; readonly isInitiatedOfferToMember: boolean; @@ -4936,7 +4950,7 @@ declare module '@polkadot/types/lookup' { readonly type: 'Idle' | 'InitiatedOfferToMember' | 'EnglishAuction' | 'OpenAuction' | 'BuyNow'; } - /** @name PalletContentNftTypesEnglishAuctionRecord (556) */ + /** @name PalletContentNftTypesEnglishAuctionRecord (552) */ export interface PalletContentNftTypesEnglishAuctionRecord extends Struct { readonly startingPrice: u128; readonly buyNowPrice: Option; @@ -4948,13 +4962,13 @@ declare module '@polkadot/types/lookup' { readonly topBid: Option; } - /** @name PalletContentNftTypesEnglishAuctionBid (559) */ + /** @name PalletContentNftTypesEnglishAuctionBid (555) */ export interface PalletContentNftTypesEnglishAuctionBid extends Struct { readonly amount: u128; readonly bidderId: u64; } - /** @name PalletContentNftTypesOpenAuctionRecord (560) */ + /** @name PalletContentNftTypesOpenAuctionRecord (556) */ export interface PalletContentNftTypesOpenAuctionRecord extends Struct { readonly startingPrice: u128; readonly buyNowPrice: Option; @@ -4964,7 +4978,7 @@ declare module '@polkadot/types/lookup' { readonly start: u32; } - /** @name PalletContentNftTypesNftOwner (561) */ + /** @name PalletContentNftTypesNftOwner (557) */ export interface PalletContentNftTypesNftOwner extends Enum { readonly isChannelOwner: boolean; readonly isMember: boolean; @@ -4972,21 +4986,21 @@ declare module '@polkadot/types/lookup' { readonly type: 'ChannelOwner' | 'Member'; } - /** @name PalletContentPermissionsCuratorGroupCuratorGroupRecord (564) */ + /** @name PalletContentPermissionsCuratorGroupCuratorGroupRecord (560) */ export interface PalletContentPermissionsCuratorGroupCuratorGroupRecord extends Struct { readonly curators: BTreeMap>; readonly active: bool; readonly permissionsByLevel: BTreeMap>; } - /** @name PalletContentNftTypesOpenAuctionBidRecord (571) */ + /** @name PalletContentNftTypesOpenAuctionBidRecord (567) */ export interface PalletContentNftTypesOpenAuctionBidRecord extends Struct { readonly amount: u128; readonly madeAtBlock: u32; readonly auctionId: u64; } - /** @name PalletContentErrorsError (572) */ + /** @name PalletContentErrorsError (568) */ export interface PalletContentErrorsError extends Enum { readonly isChannelStateBloatBondChanged: boolean; readonly isVideoStateBloatBondChanged: boolean; @@ -5119,7 +5133,7 @@ declare module '@polkadot/types/lookup' { readonly type: 'ChannelStateBloatBondChanged' | 'VideoStateBloatBondChanged' | 'MinCashoutValueTooLow' | 'MaxCashoutValueTooHigh' | 'MaxNumberOfChannelCollaboratorsExceeded' | 'MaxNumberOfChannelAssetsExceeded' | 'MaxNumberOfVideoAssetsExceeded' | 'MaxNumberOfChannelAgentPermissionsExceeded' | 'MaxNumberOfPausedFeaturesPerChannelExceeded' | 'InvalidChannelBagWitnessProvided' | 'InvalidStorageBucketsNumWitnessProvided' | 'MissingStorageBucketsNumWitness' | 'ChannelOwnerMemberDoesNotExist' | 'ChannelOwnerCuratorGroupDoesNotExist' | 'ChannelStateBloatBondBelowExistentialDeposit' | 'NumberOfAssetsToRemoveIsZero' | 'CuratorIsNotAMemberOfGivenCuratorGroup' | 'CuratorIsAlreadyAMemberOfGivenCuratorGroup' | 'CuratorGroupDoesNotExist' | 'CuratorsPerGroupLimitReached' | 'CuratorGroupIsNotActive' | 'CuratorIdInvalid' | 'LeadAuthFailed' | 'MemberAuthFailed' | 'CuratorAuthFailed' | 'BadOrigin' | 'ActorNotAuthorized' | 'CategoryDoesNotExist' | 'ChannelDoesNotExist' | 'VideoDoesNotExist' | 'VideoInSeason' | 'ActorCannotBeLead' | 'ActorCannotOwnChannel' | 'NftAlreadyOwnedByChannel' | 'NftAlreadyExists' | 'NftDoesNotExist' | 'OverflowOrUnderflowHappened' | 'DoesNotOwnNft' | 'RoyaltyUpperBoundExceeded' | 'RoyaltyLowerBoundExceeded' | 'AuctionDurationUpperBoundExceeded' | 'AuctionDurationLowerBoundExceeded' | 'ExtensionPeriodUpperBoundExceeded' | 'ExtensionPeriodLowerBoundExceeded' | 'BidLockDurationUpperBoundExceeded' | 'BidLockDurationLowerBoundExceeded' | 'StartingPriceUpperBoundExceeded' | 'StartingPriceLowerBoundExceeded' | 'AuctionBidStepUpperBoundExceeded' | 'AuctionBidStepLowerBoundExceeded' | 'InsufficientBalance' | 'BidStepConstraintViolated' | 'InvalidBidAmountSpecified' | 'StartingPriceConstraintViolated' | 'ActionHasBidsAlready' | 'NftIsNotIdle' | 'PendingOfferDoesNotExist' | 'RewardAccountIsNotSet' | 'ActorIsNotBidder' | 'AuctionCannotBeCompleted' | 'BidDoesNotExist' | 'BidIsForPastAuction' | 'StartsAtLowerBoundExceeded' | 'StartsAtUpperBoundExceeded' | 'AuctionDidNotStart' | 'NotInAuctionState' | 'MemberIsNotAllowedToParticipate' | 'MemberProfileNotFound' | 'NftNotInBuyNowState' | 'InvalidBuyNowWitnessPriceProvided' | 'IsNotOpenAuctionType' | 'IsNotEnglishAuctionType' | 'BidLockDurationIsNotExpired' | 'NftAuctionIsAlreadyExpired' | 'BuyNowMustBeGreaterThanStartingPrice' | 'TargetMemberDoesNotExist' | 'InvalidNftOfferWitnessPriceProvided' | 'MaxAuctionWhiteListLengthUpperBoundExceeded' | 'WhitelistHasOnlyOneMember' | 'WhitelistedMemberDoesNotExist' | 'NftNonChannelOwnerDoesNotExist' | 'ExtensionPeriodIsGreaterThenAuctionDuration' | 'NoAssetsSpecified' | 'InvalidAssetsProvided' | 'ChannelContainsVideos' | 'ChannelContainsAssets' | 'InvalidBagSizeSpecified' | 'MigrationNotFinished' | 'ReplyDoesNotExist' | 'UnsufficientBalance' | 'InsufficientTreasuryBalance' | 'InvalidMemberProvided' | 'ActorNotAMember' | 'PaymentProofVerificationFailed' | 'CashoutAmountExceedsMaximumAmount' | 'CashoutAmountBelowMinimumAmount' | 'WithdrawalAmountExceedsChannelAccountWithdrawableBalance' | 'WithdrawFromChannelAmountIsZero' | 'ChannelCashoutsDisabled' | 'MinCashoutAllowedExceedsMaxCashoutAllowed' | 'CuratorModerationActionNotAllowed' | 'MaxCuratorPermissionsPerLevelExceeded' | 'CuratorGroupMaxPermissionsByLevelMapSizeExceeded' | 'ChannelFeaturePaused' | 'ChannelBagMissing' | 'AssetsToRemoveBeyondEntityAssetsSet' | 'InvalidVideoDataObjectsCountProvided' | 'InvalidChannelTransferStatus' | 'InvalidChannelTransferAcceptor' | 'InvalidChannelTransferCommitmentParams' | 'ChannelAgentInsufficientPermissions' | 'InvalidChannelOwner' | 'ZeroReward' | 'InsufficientBalanceForTransfer' | 'InsufficientBalanceForChannelCreation' | 'InsufficientBalanceForVideoCreation' | 'InsufficientCouncilBudget' | 'GlobalNftDailyLimitExceeded' | 'GlobalNftWeeklyLimitExceeded' | 'ChannelNftDailyLimitExceeded' | 'ChannelNftWeeklyLimitExceeded' | 'CreatorTokenAlreadyIssued' | 'CreatorTokenNotIssued' | 'MemberIdCouldNotBeDerivedFromActor' | 'CannotWithdrawFromChannelWithCreatorTokenIssued' | 'PatronageCanOnlyBeClaimedForMemberOwnedChannels' | 'ChannelTransfersBlockedDuringRevenueSplits' | 'ChannelTransfersBlockedDuringTokenSales'; } - /** @name PalletStorageBagRecord (573) */ + /** @name PalletStorageBagRecord (569) */ export interface PalletStorageBagRecord extends Struct { readonly storedBy: BTreeSet; readonly distributedBy: BTreeSet; @@ -5127,7 +5141,7 @@ declare module '@polkadot/types/lookup' { readonly objectsNumber: u64; } - /** @name PalletStorageStorageBucketRecord (576) */ + /** @name PalletStorageStorageBucketRecord (572) */ export interface PalletStorageStorageBucketRecord extends Struct { readonly operatorStatus: PalletStorageStorageBucketOperatorStatus; readonly acceptingNewBags: bool; @@ -5135,7 +5149,7 @@ declare module '@polkadot/types/lookup' { readonly assignedBags: u64; } - /** @name PalletStorageStorageBucketOperatorStatus (577) */ + /** @name PalletStorageStorageBucketOperatorStatus (573) */ export interface PalletStorageStorageBucketOperatorStatus extends Enum { readonly isMissing: boolean; readonly isInvitedStorageWorker: boolean; @@ -5145,13 +5159,13 @@ declare module '@polkadot/types/lookup' { readonly type: 'Missing' | 'InvitedStorageWorker' | 'StorageWorker'; } - /** @name PalletStorageDynamicBagCreationPolicy (579) */ + /** @name PalletStorageDynamicBagCreationPolicy (575) */ export interface PalletStorageDynamicBagCreationPolicy extends Struct { readonly numberOfStorageBuckets: u32; readonly families: BTreeMap; } - /** @name PalletStorageDataObject (582) */ + /** @name PalletStorageDataObject (578) */ export interface PalletStorageDataObject extends Struct { readonly accepted: bool; readonly stateBloatBond: PalletCommonBloatBondRepayableBloatBond; @@ -5159,12 +5173,12 @@ declare module '@polkadot/types/lookup' { readonly ipfsContentId: Bytes; } - /** @name PalletStorageDistributionBucketFamilyRecord (583) */ + /** @name PalletStorageDistributionBucketFamilyRecord (579) */ export interface PalletStorageDistributionBucketFamilyRecord extends Struct { readonly nextDistributionBucketIndex: u64; } - /** @name PalletStorageDistributionBucketRecord (584) */ + /** @name PalletStorageDistributionBucketRecord (580) */ export interface PalletStorageDistributionBucketRecord extends Struct { readonly acceptingNewBags: bool; readonly distributing: bool; @@ -5173,7 +5187,7 @@ declare module '@polkadot/types/lookup' { readonly assignedBags: u64; } - /** @name PalletStorageError (587) */ + /** @name PalletStorageError (583) */ export interface PalletStorageError extends Enum { readonly isArithmeticError: boolean; readonly isInvalidCidLength: boolean; @@ -5243,7 +5257,7 @@ declare module '@polkadot/types/lookup' { readonly type: 'ArithmeticError' | 'InvalidCidLength' | 'NoObjectsOnUpload' | 'StorageBucketDoesntExist' | 'StorageBucketIsNotBoundToBag' | 'StorageBucketIsBoundToBag' | 'NoStorageBucketInvitation' | 'StorageProviderAlreadySet' | 'StorageProviderMustBeSet' | 'DifferentStorageProviderInvited' | 'InvitedStorageProvider' | 'StorageBucketIdCollectionsAreEmpty' | 'StorageBucketsNumberViolatesDynamicBagCreationPolicy' | 'DistributionBucketsViolatesDynamicBagCreationPolicy' | 'EmptyContentId' | 'ZeroObjectSize' | 'InvalidStateBloatBondSourceAccount' | 'InvalidStorageProvider' | 'InsufficientBalance' | 'DataObjectDoesntExist' | 'UploadingBlocked' | 'DataObjectIdCollectionIsEmpty' | 'SourceAndDestinationBagsAreEqual' | 'DataObjectBlacklisted' | 'BlacklistSizeLimitExceeded' | 'VoucherMaxObjectSizeLimitExceeded' | 'VoucherMaxObjectNumberLimitExceeded' | 'StorageBucketObjectNumberLimitReached' | 'StorageBucketObjectSizeLimitReached' | 'InsufficientTreasuryBalance' | 'CannotDeleteNonEmptyStorageBucket' | 'DataObjectIdParamsAreEmpty' | 'StorageBucketsPerBagLimitTooLow' | 'StorageBucketsPerBagLimitTooHigh' | 'StorageBucketPerBagLimitExceeded' | 'StorageBucketDoesntAcceptNewBags' | 'DynamicBagExists' | 'DynamicBagDoesntExist' | 'StorageProviderOperatorDoesntExist' | 'DataSizeFeeChanged' | 'DataObjectStateBloatBondChanged' | 'CannotDeleteNonEmptyDynamicBag' | 'MaxDistributionBucketFamilyNumberLimitExceeded' | 'DistributionBucketFamilyDoesntExist' | 'DistributionBucketDoesntExist' | 'DistributionBucketIdCollectionsAreEmpty' | 'DistributionBucketDoesntAcceptNewBags' | 'MaxDistributionBucketNumberPerBagLimitExceeded' | 'DistributionBucketIsNotBoundToBag' | 'DistributionBucketIsBoundToBag' | 'DistributionBucketsPerBagLimitTooLow' | 'DistributionBucketsPerBagLimitTooHigh' | 'DistributionProviderOperatorDoesntExist' | 'DistributionProviderOperatorAlreadyInvited' | 'DistributionProviderOperatorSet' | 'NoDistributionBucketInvitation' | 'MustBeDistributionProviderOperatorForBucket' | 'MaxNumberOfPendingInvitationsLimitForDistributionBucketReached' | 'MaxNumberOfOperatorsPerDistributionBucketReached' | 'DistributionFamilyBoundToBagCreationPolicy' | 'MaxDataObjectSizeExceeded' | 'InvalidTransactorAccount' | 'NumberOfStorageBucketsOutsideOfAllowedContraints' | 'NumberOfDistributionBucketsOutsideOfAllowedContraints' | 'CallDisabled'; } - /** @name PalletProjectTokenAccountData (588) */ + /** @name PalletProjectTokenAccountData (584) */ export interface PalletProjectTokenAccountData extends Struct { readonly vestingSchedules: BTreeMap; readonly amount: u128; @@ -5253,13 +5267,13 @@ declare module '@polkadot/types/lookup' { readonly lastSaleTotalPurchasedAmount: Option>; } - /** @name PalletProjectTokenStakingStatus (589) */ + /** @name PalletProjectTokenStakingStatus (585) */ export interface PalletProjectTokenStakingStatus extends Struct { readonly splitId: u32; readonly amount: u128; } - /** @name PalletProjectTokenVestingSchedule (591) */ + /** @name PalletProjectTokenVestingSchedule (587) */ export interface PalletProjectTokenVestingSchedule extends Struct { readonly linearVestingStartBlock: u32; readonly linearVestingDuration: u32; @@ -5268,7 +5282,7 @@ declare module '@polkadot/types/lookup' { readonly burnedAmount: u128; } - /** @name PalletProjectTokenTokenData (598) */ + /** @name PalletProjectTokenTokenData (594) */ export interface PalletProjectTokenTokenData extends Struct { readonly totalSupply: u128; readonly tokensIssued: u128; @@ -5283,7 +5297,7 @@ declare module '@polkadot/types/lookup' { readonly nextRevenueSplitId: u32; } - /** @name PalletProjectTokenRevenueSplitState (599) */ + /** @name PalletProjectTokenRevenueSplitState (595) */ export interface PalletProjectTokenRevenueSplitState extends Enum { readonly isInactive: boolean; readonly isActive: boolean; @@ -5291,27 +5305,27 @@ declare module '@polkadot/types/lookup' { readonly type: 'Inactive' | 'Active'; } - /** @name PalletProjectTokenRevenueSplitInfo (600) */ + /** @name PalletProjectTokenRevenueSplitInfo (596) */ export interface PalletProjectTokenRevenueSplitInfo extends Struct { readonly allocation: u128; readonly timeline: PalletProjectTokenTimeline; readonly dividendsClaimed: u128; } - /** @name PalletProjectTokenTimeline (601) */ + /** @name PalletProjectTokenTimeline (597) */ export interface PalletProjectTokenTimeline extends Struct { readonly start: u32; readonly duration: u32; } - /** @name PalletProjectTokenPatronageData (603) */ + /** @name PalletProjectTokenPatronageData (599) */ export interface PalletProjectTokenPatronageData extends Struct { readonly rate: Perquintill; readonly unclaimedPatronageTallyAmount: u128; readonly lastUnclaimedPatronageTallyBlock: u32; } - /** @name PalletProjectTokenErrorsError (605) */ + /** @name PalletProjectTokenErrorsError (601) */ export interface PalletProjectTokenErrorsError extends Enum { readonly isArithmeticError: boolean; readonly isInsufficientTransferrableBalance: boolean; @@ -5365,7 +5379,7 @@ declare module '@polkadot/types/lookup' { readonly type: 'ArithmeticError' | 'InsufficientTransferrableBalance' | 'TokenDoesNotExist' | 'AccountInformationDoesNotExist' | 'TransferDestinationMemberDoesNotExist' | 'MerkleProofVerificationFailure' | 'TargetPatronageRateIsHigherThanCurrentRate' | 'TokenSymbolAlreadyInUse' | 'InitialAllocationToNonExistingMember' | 'AccountAlreadyExists' | 'TokenIssuanceNotInIdleState' | 'InsufficientJoyBalance' | 'JoyTransferSubjectToDusting' | 'AttemptToRemoveNonOwnedAccountUnderPermissionedMode' | 'AttemptToRemoveNonEmptyAccount' | 'CannotJoinWhitelistInPermissionlessMode' | 'CannotDeissueTokenWithOutstandingAccounts' | 'NoUpcomingSale' | 'NoActiveSale' | 'InsufficientBalanceForTokenPurchase' | 'NotEnoughTokensOnSale' | 'SaleStartingBlockInThePast' | 'SaleAccessProofRequired' | 'SaleAccessProofParticipantIsNotSender' | 'SalePurchaseCapExceeded' | 'MaxVestingSchedulesPerAccountPerTokenReached' | 'PreviousSaleNotFinalized' | 'NoTokensToRecover' | 'SaleDurationTooShort' | 'SaleDurationIsZero' | 'SaleUpperBoundQuantityIsZero' | 'SaleCapPerMemberIsZero' | 'SaleUnitPriceIsZero' | 'SalePurchaseAmountIsZero' | 'RevenueSplitTimeToStartTooShort' | 'RevenueSplitDurationTooShort' | 'RevenueSplitAlreadyActiveForToken' | 'RevenueSplitNotActiveForToken' | 'RevenueSplitDidNotEnd' | 'RevenueSplitNotOngoing' | 'UserAlreadyParticipating' | 'InsufficientBalanceForSplitParticipation' | 'UserNotParticipantingInAnySplit' | 'CannotParticipateInSplitWithZeroAmount' | 'CannotIssueSplitWithZeroAllocationAmount' | 'CannotModifySupplyWhenRevenueSplitsAreActive' | 'RevenueSplitRateIsZero' | 'BurnAmountIsZero' | 'BurnAmountGreaterThanAccountTokensAmount'; } - /** @name PalletProposalsEngineProposal (606) */ + /** @name PalletProposalsEngineProposal (602) */ export interface PalletProposalsEngineProposal extends Struct { readonly parameters: PalletProposalsEngineProposalParameters; readonly proposerId: u64; @@ -5377,7 +5391,7 @@ declare module '@polkadot/types/lookup' { readonly stakingAccountId: Option; } - /** @name PalletProposalsEngineProposalParameters (607) */ + /** @name PalletProposalsEngineProposalParameters (603) */ export interface PalletProposalsEngineProposalParameters extends Struct { readonly votingPeriod: u32; readonly gracePeriod: u32; @@ -5389,7 +5403,7 @@ declare module '@polkadot/types/lookup' { readonly constitutionality: u32; } - /** @name PalletProposalsEngineVotingResults (608) */ + /** @name PalletProposalsEngineVotingResults (604) */ export interface PalletProposalsEngineVotingResults extends Struct { readonly abstentions: u32; readonly approvals: u32; @@ -5397,7 +5411,7 @@ declare module '@polkadot/types/lookup' { readonly slashes: u32; } - /** @name PalletProposalsEngineError (611) */ + /** @name PalletProposalsEngineError (607) */ export interface PalletProposalsEngineError extends Enum { readonly isArithmeticError: boolean; readonly isEmptyTitleProvided: boolean; @@ -5425,14 +5439,14 @@ declare module '@polkadot/types/lookup' { readonly type: 'ArithmeticError' | 'EmptyTitleProvided' | 'EmptyDescriptionProvided' | 'TitleIsTooLong' | 'DescriptionIsTooLong' | 'ProposalNotFound' | 'ProposalFinalized' | 'AlreadyVoted' | 'NotAuthor' | 'MaxActiveProposalNumberExceeded' | 'EmptyStake' | 'StakeShouldBeEmpty' | 'StakeDiffersFromRequired' | 'InvalidParameterApprovalThreshold' | 'InvalidParameterSlashingThreshold' | 'RequireRootOrigin' | 'ProposalHasVotes' | 'ZeroExactExecutionBlock' | 'InvalidExactExecutionBlock' | 'InsufficientBalanceForStake' | 'ConflictingStakes' | 'InvalidStakingAccountForMember' | 'MaxDispatchableCallCodeSizeExceeded'; } - /** @name PalletProposalsDiscussionDiscussionThread (612) */ + /** @name PalletProposalsDiscussionDiscussionThread (608) */ export interface PalletProposalsDiscussionDiscussionThread extends Struct { readonly activatedAt: u32; readonly authorId: u64; readonly mode: PalletProposalsDiscussionThreadModeBoundedBTreeSet; } - /** @name PalletProposalsDiscussionThreadModeBoundedBTreeSet (614) */ + /** @name PalletProposalsDiscussionThreadModeBoundedBTreeSet (610) */ export interface PalletProposalsDiscussionThreadModeBoundedBTreeSet extends Enum { readonly isOpen: boolean; readonly isClosed: boolean; @@ -5440,14 +5454,14 @@ declare module '@polkadot/types/lookup' { readonly type: 'Open' | 'Closed'; } - /** @name PalletProposalsDiscussionDiscussionPost (615) */ + /** @name PalletProposalsDiscussionDiscussionPost (611) */ export interface PalletProposalsDiscussionDiscussionPost extends Struct { readonly authorId: u64; readonly cleanupPayOff: PalletCommonBloatBondRepayableBloatBond; readonly lastEdited: u32; } - /** @name PalletProposalsDiscussionError (616) */ + /** @name PalletProposalsDiscussionError (612) */ export interface PalletProposalsDiscussionError extends Enum { readonly isArithmeticError: boolean; readonly isThreadDoesntExist: boolean; @@ -5462,7 +5476,7 @@ declare module '@polkadot/types/lookup' { readonly type: 'ArithmeticError' | 'ThreadDoesntExist' | 'PostDoesntExist' | 'RequireRootOrigin' | 'CannotPostOnClosedThread' | 'NotAuthorOrCouncilor' | 'MaxWhiteListSizeExceeded' | 'WhitelistedMemberDoesNotExist' | 'InsufficientBalanceForPost' | 'CannotDeletePost'; } - /** @name PalletProposalsCodexError (617) */ + /** @name PalletProposalsCodexError (613) */ export interface PalletProposalsCodexError extends Enum { readonly isSignalProposalIsEmpty: boolean; readonly isRuntimeProposalIsEmpty: boolean; @@ -5493,7 +5507,7 @@ declare module '@polkadot/types/lookup' { readonly type: 'SignalProposalIsEmpty' | 'RuntimeProposalIsEmpty' | 'InvalidFundingRequestProposalBalance' | 'InvalidValidatorCount' | 'RequireRootOrigin' | 'InvalidCouncilElectionParameterCouncilSize' | 'InvalidCouncilElectionParameterCandidacyLimit' | 'InvalidCouncilElectionParameterMinVotingStake' | 'InvalidCouncilElectionParameterNewTermDuration' | 'InvalidCouncilElectionParameterMinCouncilStake' | 'InvalidCouncilElectionParameterRevealingPeriod' | 'InvalidCouncilElectionParameterVotingPeriod' | 'InvalidCouncilElectionParameterAnnouncingPeriod' | 'InvalidWorkingGroupBudgetCapacity' | 'InvalidSetLeadParameterCannotBeCouncilor' | 'SlashingStakeIsZero' | 'DecreasingStakeIsZero' | 'InsufficientFundsForBudgetUpdate' | 'InvalidFundingRequestProposalNumberOfAccount' | 'InvalidFundingRequestProposalRepeatedAccount' | 'InvalidChannelPayoutsProposalMinCashoutExceedsMaxCashout' | 'InvalidLeadWorkerId' | 'InvalidLeadOpeningId' | 'InvalidLeadApplicationId' | 'InvalidProposalId' | 'ArithmeticError'; } - /** @name PalletWorkingGroupOpening (618) */ + /** @name PalletWorkingGroupOpening (614) */ export interface PalletWorkingGroupOpening extends Struct { readonly openingType: PalletWorkingGroupOpeningType; readonly created: u32; @@ -5503,7 +5517,7 @@ declare module '@polkadot/types/lookup' { readonly creationStake: u128; } - /** @name PalletWorkingGroupJobApplication (619) */ + /** @name PalletWorkingGroupJobApplication (615) */ export interface PalletWorkingGroupJobApplication extends Struct { readonly roleAccountId: AccountId32; readonly rewardAccountId: AccountId32; @@ -5513,7 +5527,7 @@ declare module '@polkadot/types/lookup' { readonly openingId: u64; } - /** @name PalletWorkingGroupGroupWorker (620) */ + /** @name PalletWorkingGroupGroupWorker (616) */ export interface PalletWorkingGroupGroupWorker extends Struct { readonly memberId: u64; readonly roleAccountId: AccountId32; @@ -5526,7 +5540,7 @@ declare module '@polkadot/types/lookup' { readonly createdAt: u32; } - /** @name PalletWorkingGroupErrorsError (621) */ + /** @name PalletWorkingGroupErrorsError (617) */ export interface PalletWorkingGroupErrorsError extends Enum { readonly isArithmeticError: boolean; readonly isStakeBalanceCannotBeZero: boolean; @@ -5563,7 +5577,7 @@ declare module '@polkadot/types/lookup' { readonly type: 'ArithmeticError' | 'StakeBalanceCannotBeZero' | 'OpeningDoesNotExist' | 'CannotHireMultipleLeaders' | 'WorkerApplicationDoesNotExist' | 'MaxActiveWorkerNumberExceeded' | 'SuccessfulWorkerApplicationDoesNotExist' | 'CannotHireLeaderWhenLeaderExists' | 'IsNotLeadAccount' | 'CurrentLeadNotSet' | 'WorkerDoesNotExist' | 'InvalidMemberOrigin' | 'SignerIsNotWorkerRoleAccount' | 'BelowMinimumStakes' | 'InsufficientBalanceToCoverStake' | 'ApplicationStakeDoesntMatchOpening' | 'OriginIsNotApplicant' | 'WorkerIsLeaving' | 'CannotRewardWithZero' | 'InvalidStakingAccountForMember' | 'ConflictStakesOnAccount' | 'WorkerHasNoReward' | 'UnstakingPeriodLessThanMinimum' | 'CannotSpendZero' | 'InsufficientBudgetForSpending' | 'NoApplicationsProvided' | 'CannotDecreaseStakeDeltaGreaterThanStake' | 'ApplicationsNotForOpening' | 'WorkerStorageValueTooLong' | 'InsufficientTokensForFunding' | 'ZeroTokensFunding' | 'InsufficientBalanceForTransfer'; } - /** @name SpRuntimeMultiSignature (631) */ + /** @name SpRuntimeMultiSignature (627) */ export interface SpRuntimeMultiSignature extends Enum { readonly isEd25519: boolean; readonly asEd25519: SpCoreEd25519Signature; @@ -5574,31 +5588,31 @@ declare module '@polkadot/types/lookup' { readonly type: 'Ed25519' | 'Sr25519' | 'Ecdsa'; } - /** @name SpCoreEcdsaSignature (632) */ + /** @name SpCoreEcdsaSignature (628) */ export interface SpCoreEcdsaSignature extends U8aFixed {} - /** @name FrameSystemExtensionsCheckNonZeroSender (635) */ + /** @name FrameSystemExtensionsCheckNonZeroSender (631) */ export type FrameSystemExtensionsCheckNonZeroSender = Null; - /** @name FrameSystemExtensionsCheckSpecVersion (636) */ + /** @name FrameSystemExtensionsCheckSpecVersion (632) */ export type FrameSystemExtensionsCheckSpecVersion = Null; - /** @name FrameSystemExtensionsCheckTxVersion (637) */ + /** @name FrameSystemExtensionsCheckTxVersion (633) */ export type FrameSystemExtensionsCheckTxVersion = Null; - /** @name FrameSystemExtensionsCheckGenesis (638) */ + /** @name FrameSystemExtensionsCheckGenesis (634) */ export type FrameSystemExtensionsCheckGenesis = Null; - /** @name FrameSystemExtensionsCheckNonce (641) */ + /** @name FrameSystemExtensionsCheckNonce (637) */ export interface FrameSystemExtensionsCheckNonce extends Compact {} - /** @name FrameSystemExtensionsCheckWeight (642) */ + /** @name FrameSystemExtensionsCheckWeight (638) */ export type FrameSystemExtensionsCheckWeight = Null; - /** @name PalletTransactionPaymentChargeTransactionPayment (643) */ + /** @name PalletTransactionPaymentChargeTransactionPayment (639) */ export interface PalletTransactionPaymentChargeTransactionPayment extends Compact {} - /** @name JoystreamNodeRuntimeRuntime (644) */ + /** @name JoystreamNodeRuntimeRuntime (640) */ export type JoystreamNodeRuntimeRuntime = Null; } // declare module From d0a80bf80e1221cce233bf48b5e22b00af5ad29e Mon Sep 17 00:00:00 2001 From: Mokhtar Naamani Date: Tue, 14 Mar 2023 15:07:18 +0400 Subject: [PATCH 28/87] v0.9.39 - test correct spec version on upgrade --- tests/network-tests/src/misc/postRuntimUpdateChecks.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/network-tests/src/misc/postRuntimUpdateChecks.ts b/tests/network-tests/src/misc/postRuntimUpdateChecks.ts index 3ed99a7d39..b8356b6810 100644 --- a/tests/network-tests/src/misc/postRuntimUpdateChecks.ts +++ b/tests/network-tests/src/misc/postRuntimUpdateChecks.ts @@ -8,7 +8,7 @@ export default async function assertValues({ api }: FlowProps): Promise { debug('Check runtime spec version') const version = await api.rpc.state.getRuntimeVersion() - assert.equal(version.specVersion.toNumber(), 2001) + assert.equal(version.specVersion.toNumber(), 3000) debug('Done') } From 2762641002f9512332b4c5f2714b76a3825df911 Mon Sep 17 00:00:00 2001 From: Mokhtar Naamani Date: Wed, 15 Mar 2023 11:21:50 +0400 Subject: [PATCH 29/87] v0.9.39 - use benchmarking v1 explicitly --- bin/node/src/node_executor.rs | 2 +- runtime-modules/bounty/src/benchmarking.rs | 2 +- runtime-modules/constitution/src/benchmarking.rs | 2 +- .../content/src/benchmarks/benchmarking.rs | 2 +- runtime-modules/content/src/benchmarks/mod.rs | 2 +- runtime-modules/council/src/benchmarking.rs | 2 +- runtime-modules/forum/src/benchmarking.rs | 2 +- runtime-modules/membership/src/benchmarking.rs | 2 +- runtime-modules/project-token/src/benchmarking.rs | 2 +- runtime-modules/proposals/codex/src/benchmarking.rs | 2 +- .../proposals/discussion/src/benchmarking.rs | 2 +- runtime-modules/proposals/engine/src/benchmarking.rs | 2 +- runtime-modules/referendum/src/benchmarking.rs | 2 +- runtime-modules/storage/src/benchmarking.rs | 2 +- runtime-modules/utility/src/benchmarking.rs | 2 +- runtime-modules/working-group/src/benchmarking.rs | 2 +- runtime/src/runtime_api.rs | 12 ++++++------ 17 files changed, 22 insertions(+), 22 deletions(-) diff --git a/bin/node/src/node_executor.rs b/bin/node/src/node_executor.rs index 8dc759c172..f5014a1d21 100644 --- a/bin/node/src/node_executor.rs +++ b/bin/node/src/node_executor.rs @@ -25,7 +25,7 @@ pub use sc_executor::NativeElseWasmExecutor; pub struct ExecutorDispatch; impl sc_executor::NativeExecutionDispatch for ExecutorDispatch { - type ExtendHostFunctions = frame_benchmarking::benchmarking::HostFunctions; + type ExtendHostFunctions = frame_benchmarking::v1::benchmarking::HostFunctions; fn dispatch(method: &str, data: &[u8]) -> Option> { node_runtime::api::dispatch(method, data) diff --git a/runtime-modules/bounty/src/benchmarking.rs b/runtime-modules/bounty/src/benchmarking.rs index 4b5c7f5d02..1d135d5716 100644 --- a/runtime-modules/bounty/src/benchmarking.rs +++ b/runtime-modules/bounty/src/benchmarking.rs @@ -8,7 +8,7 @@ use crate::{ use balances::Pallet as Balances; use common::council::CouncilBudgetManager; use core::convert::TryInto; -use frame_benchmarking::{account, benchmarks}; +use frame_benchmarking::v1::{account, benchmarks}; use frame_support::storage::{StorageDoubleMap, StorageMap, StorageValue}; use frame_support::traits::{Currency, Get, OnFinalize, OnInitialize}; use frame_system::Pallet as System; diff --git a/runtime-modules/constitution/src/benchmarking.rs b/runtime-modules/constitution/src/benchmarking.rs index d170ecb10c..4706ac125e 100644 --- a/runtime-modules/constitution/src/benchmarking.rs +++ b/runtime-modules/constitution/src/benchmarking.rs @@ -1,7 +1,7 @@ #![cfg(feature = "runtime-benchmarks")] use crate::{Call, Config, ConstitutionInfo, Event, Module as Pallet}; -use frame_benchmarking::benchmarks; +use frame_benchmarking::v1::benchmarks; use frame_system::Pallet as System; use frame_system::{EventRecord, RawOrigin}; use sp_runtime::traits::Hash; diff --git a/runtime-modules/content/src/benchmarks/benchmarking.rs b/runtime-modules/content/src/benchmarks/benchmarking.rs index dd60056dbb..4d6d958bec 100644 --- a/runtime-modules/content/src/benchmarks/benchmarking.rs +++ b/runtime-modules/content/src/benchmarks/benchmarking.rs @@ -14,7 +14,7 @@ use common::{ merkle_tree::helpers::{build_merkle_path_helper, generate_merkle_root_helper}, BudgetManager, }; -use frame_benchmarking::{benchmarks, Zero}; +use frame_benchmarking::v1::{benchmarks, Zero}; use frame_support::{ storage::StorageMap, traits::{Currency, Get}, diff --git a/runtime-modules/content/src/benchmarks/mod.rs b/runtime-modules/content/src/benchmarks/mod.rs index 6a6c422d00..c21abf67cb 100644 --- a/runtime-modules/content/src/benchmarks/mod.rs +++ b/runtime-modules/content/src/benchmarks/mod.rs @@ -13,7 +13,7 @@ use crate::{ use balances::Pallet as Balances; use common::{working_group::WorkingGroupAuthenticator, MembershipTypes}; -use frame_benchmarking::account; +use frame_benchmarking::v1::account; use frame_support::{ dispatch::DispatchError, storage::{StorageDoubleMap, StorageMap, StorageValue}, diff --git a/runtime-modules/council/src/benchmarking.rs b/runtime-modules/council/src/benchmarking.rs index a11439ff76..bb68e6727f 100644 --- a/runtime-modules/council/src/benchmarking.rs +++ b/runtime-modules/council/src/benchmarking.rs @@ -1,7 +1,7 @@ #![cfg(feature = "runtime-benchmarks")] use super::*; use balances::Pallet as Balances; -use frame_benchmarking::{account, benchmarks, Zero}; +use frame_benchmarking::v1::{account, benchmarks, Zero}; use frame_support::traits::{Currency, OnFinalize, OnInitialize}; use frame_system::EventRecord; use frame_system::Pallet as System; diff --git a/runtime-modules/forum/src/benchmarking.rs b/runtime-modules/forum/src/benchmarking.rs index 56a07421fa..e73b51b783 100644 --- a/runtime-modules/forum/src/benchmarking.rs +++ b/runtime-modules/forum/src/benchmarking.rs @@ -2,7 +2,7 @@ use super::*; use balances::Pallet as Balances; use core::convert::TryInto; -use frame_benchmarking::{account, benchmarks, Zero}; +use frame_benchmarking::v1::{account, benchmarks, Zero}; use frame_support::storage::StorageMap; use frame_support::traits::Currency; use frame_system::Pallet as System; diff --git a/runtime-modules/membership/src/benchmarking.rs b/runtime-modules/membership/src/benchmarking.rs index 300b075d24..8eb6d3f609 100644 --- a/runtime-modules/membership/src/benchmarking.rs +++ b/runtime-modules/membership/src/benchmarking.rs @@ -6,7 +6,7 @@ use crate::{ }; use balances::Pallet as Balances; use core::convert::TryInto; -use frame_benchmarking::{account, benchmarks}; +use frame_benchmarking::v1::{account, benchmarks}; use frame_support::storage::StorageMap; use frame_support::traits::Currency; use frame_system::Pallet as System; diff --git a/runtime-modules/project-token/src/benchmarking.rs b/runtime-modules/project-token/src/benchmarking.rs index 1cded11ca2..e5987fad37 100644 --- a/runtime-modules/project-token/src/benchmarking.rs +++ b/runtime-modules/project-token/src/benchmarking.rs @@ -5,7 +5,7 @@ use crate::utils::{build_merkle_path_helper, generate_merkle_root_helper}; use crate::Module as Token; use balances::Pallet as Balances; use common::membership::MembershipTypes; -use frame_benchmarking::{account, benchmarks, Zero}; +use frame_benchmarking::v1::{account, benchmarks, Zero}; use frame_system::EventRecord; use frame_system::Pallet as System; use frame_system::RawOrigin; diff --git a/runtime-modules/proposals/codex/src/benchmarking.rs b/runtime-modules/proposals/codex/src/benchmarking.rs index c5f5781455..7c6b886270 100644 --- a/runtime-modules/proposals/codex/src/benchmarking.rs +++ b/runtime-modules/proposals/codex/src/benchmarking.rs @@ -10,7 +10,7 @@ use common::to_kb; use common::working_group::WorkingGroup; use common::BalanceKind; use content::NftLimitPeriod; -use frame_benchmarking::{account, benchmarks, Zero}; +use frame_benchmarking::v1::{account, benchmarks, Zero}; use frame_support::sp_runtime::traits::Bounded; use frame_support::traits::Currency; use frame_system::EventRecord; diff --git a/runtime-modules/proposals/discussion/src/benchmarking.rs b/runtime-modules/proposals/discussion/src/benchmarking.rs index 3730c52688..cc98d75a57 100644 --- a/runtime-modules/proposals/discussion/src/benchmarking.rs +++ b/runtime-modules/proposals/discussion/src/benchmarking.rs @@ -4,7 +4,7 @@ use super::*; use crate::Module as ProposalsDiscussion; use balances::Pallet as Balances; use council::Module as Council; -use frame_benchmarking::{account, benchmarks}; +use frame_benchmarking::v1::{account, benchmarks}; use frame_support::sp_runtime::traits::Bounded; use frame_support::traits::{Currency, OnFinalize, OnInitialize}; use frame_system::EventRecord; diff --git a/runtime-modules/proposals/engine/src/benchmarking.rs b/runtime-modules/proposals/engine/src/benchmarking.rs index a527932cab..30b8e0723e 100644 --- a/runtime-modules/proposals/engine/src/benchmarking.rs +++ b/runtime-modules/proposals/engine/src/benchmarking.rs @@ -5,7 +5,7 @@ use crate::Module as ProposalsEngine; use balances::Pallet as Balances; use core::convert::TryInto; use council::Module as Council; -use frame_benchmarking::{account, benchmarks}; +use frame_benchmarking::v1::{account, benchmarks}; use frame_support::traits::{Currency, OnFinalize, OnInitialize}; use frame_system::EventRecord; use frame_system::Pallet as System; diff --git a/runtime-modules/referendum/src/benchmarking.rs b/runtime-modules/referendum/src/benchmarking.rs index 637b175cd3..3f992f2068 100644 --- a/runtime-modules/referendum/src/benchmarking.rs +++ b/runtime-modules/referendum/src/benchmarking.rs @@ -1,7 +1,7 @@ #![allow(clippy::type_complexity)] #![cfg(feature = "runtime-benchmarks")] use super::*; -use frame_benchmarking::{account, benchmarks_instance, Zero}; +use frame_benchmarking::v1::{account, benchmarks_instance, Zero}; use frame_support::traits::{Currency, OnFinalize, OnInitialize}; use frame_system::EventRecord; use frame_system::Pallet as System; diff --git a/runtime-modules/storage/src/benchmarking.rs b/runtime-modules/storage/src/benchmarking.rs index 17bda254d2..6b19c93051 100644 --- a/runtime-modules/storage/src/benchmarking.rs +++ b/runtime-modules/storage/src/benchmarking.rs @@ -1,6 +1,6 @@ #![cfg(feature = "runtime-benchmarks")] -use frame_benchmarking::{account, benchmarks}; +use frame_benchmarking::v1::{account, benchmarks}; use frame_support::storage::{StorageDoubleMap, StorageMap, StorageValue}; use frame_support::traits::Instance; use frame_support::traits::{Currency, Get}; diff --git a/runtime-modules/utility/src/benchmarking.rs b/runtime-modules/utility/src/benchmarking.rs index 90371d3f2d..2cb5cfe08d 100644 --- a/runtime-modules/utility/src/benchmarking.rs +++ b/runtime-modules/utility/src/benchmarking.rs @@ -1,7 +1,7 @@ #![cfg(feature = "runtime-benchmarks")] use super::*; -use frame_benchmarking::{account, benchmarks}; +use frame_benchmarking::v1::{account, benchmarks}; use frame_system::Pallet as System; use frame_system::{EventRecord, RawOrigin}; use sp_runtime::traits::One; diff --git a/runtime-modules/working-group/src/benchmarking.rs b/runtime-modules/working-group/src/benchmarking.rs index e5f7bf73f5..d870b1f7cb 100644 --- a/runtime-modules/working-group/src/benchmarking.rs +++ b/runtime-modules/working-group/src/benchmarking.rs @@ -1,7 +1,7 @@ #![cfg(feature = "runtime-benchmarks")] use super::*; use core::convert::TryInto; -use frame_benchmarking::{account, benchmarks_instance, Zero}; +use frame_benchmarking::v1::{account, benchmarks_instance, Zero}; use frame_support::traits::OnInitialize; use frame_system::EventRecord; use frame_system::Pallet as System; diff --git a/runtime/src/runtime_api.rs b/runtime/src/runtime_api.rs index 80d830e02a..289013e588 100644 --- a/runtime/src/runtime_api.rs +++ b/runtime/src/runtime_api.rs @@ -309,12 +309,12 @@ impl_runtime_apis! { } #[cfg(feature = "runtime-benchmarks")] - impl frame_benchmarking::Benchmark for Runtime { + impl frame_benchmarking::v1::Benchmark for Runtime { fn benchmark_metadata(extra: bool) -> ( - Vec, + Vec, Vec, ) { - use frame_benchmarking::{baseline, Benchmarking, BenchmarkList}; + use frame_benchmarking::v1::{baseline, Benchmarking, BenchmarkList}; use frame_support::traits::StorageInfoTrait; use crate::*; @@ -335,9 +335,9 @@ impl_runtime_apis! { } fn dispatch_benchmark( - config: frame_benchmarking::BenchmarkConfig - ) -> Result, sp_runtime::RuntimeString> { - use frame_benchmarking::{baseline, Benchmarking, BenchmarkBatch, TrackedStorageKey}; + config: frame_benchmarking::v1::BenchmarkConfig + ) -> Result, sp_runtime::RuntimeString> { + use frame_benchmarking::v1::{baseline, Benchmarking, BenchmarkBatch, TrackedStorageKey}; use crate::*; // Trying to add benchmarks directly to the Session Pallet caused cyclic dependency From 6e670ebb4b8f7b30e918b673d80461b8f428598d Mon Sep 17 00:00:00 2001 From: Mokhtar Naamani Date: Wed, 15 Mar 2023 13:28:24 +0400 Subject: [PATCH 30/87] v0.9.39 - update benchmarking templates --- Cargo.lock | 1 + devops/frame-weight-template.hbs | 13 ++++++++++++- devops/joystream-pallet-weight-template.hbs | 13 ++++++++++++- runtime/Cargo.toml | 2 ++ 4 files changed, 27 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 0e29f0d06d..8fb74d8512 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3451,6 +3451,7 @@ dependencies = [ "sp-std", "sp-transaction-pool", "sp-version", + "sp-weights", "static_assertions", "strum 0.19.5", "substrate-wasm-builder", diff --git a/devops/frame-weight-template.hbs b/devops/frame-weight-template.hbs index b70ff70e65..5676e9523b 100644 --- a/devops/frame-weight-template.hbs +++ b/devops/frame-weight-template.hbs @@ -43,15 +43,23 @@ impl WeightInfo for SubstrateWeight { {{#each benchmark.comments as |comment|}} // {{comment}} {{/each}} + {{#each benchmark.component_ranges as |range|}} + /// The range of component `{{range.name}}` is `[{{range.min}}, {{range.max}}]`. + {{/each}} fn {{benchmark.name~}} ( {{~#each benchmark.components as |c| ~}} {{~#if (not c.is_used)}}_{{/if}}{{c.name}}: u32, {{/each~}} ) -> Weight { + // Proof Size summary in bytes: + // Measured: `{{benchmark.base_recorded_proof_size}}{{#each benchmark.component_recorded_proof_size as |cp|}} + {{cp.name}} * ({{cp.slope}} ±{{underscore cp.error}}){{/each}}` + // Estimated: `{{benchmark.base_calculated_proof_size}}{{#each benchmark.component_calculated_proof_size as |cp|}} + {{cp.name}} * ({{cp.slope}} ±{{underscore cp.error}}){{/each}}` + // Minimum execution time: {{underscore benchmark.min_execution_time}} nanoseconds. Weight::from_ref_time({{underscore benchmark.base_weight}}) + .saturating_add(Weight::from_proof_size({{benchmark.base_calculated_proof_size}})) {{#each benchmark.component_weight as |cw|}} // Standard Error: {{underscore cw.error}} - .saturating_add(Weight::from_all({{underscore cw.slope}}).saturating_mul({{cw.name}}.into())) + .saturating_add(Weight::from_ref_time({{underscore cw.slope}}).saturating_mul({{cw.name}}.into())) {{/each}} {{#if (ne benchmark.base_reads "0")}} .saturating_add(T::DbWeight::get().reads({{benchmark.base_reads}}_u64)) @@ -65,6 +73,9 @@ impl WeightInfo for SubstrateWeight { {{#each benchmark.component_writes as |cw|}} .saturating_add(T::DbWeight::get().writes(({{cw.slope}}_u64).saturating_mul({{cw.name}}.into()))) {{/each}} + {{#each benchmark.component_calculated_proof_size as |cp|}} + .saturating_add(Weight::from_proof_size({{cp.slope}}).saturating_mul({{cp.name}}.into())) + {{/each}} } {{/each}} } diff --git a/devops/joystream-pallet-weight-template.hbs b/devops/joystream-pallet-weight-template.hbs index 935781de48..947b403c60 100644 --- a/devops/joystream-pallet-weight-template.hbs +++ b/devops/joystream-pallet-weight-template.hbs @@ -52,15 +52,23 @@ impl WeightInfo for SubstrateWeight { {{#each benchmark.comments as |comment|}} // {{comment}} {{/each}} + {{#each benchmark.component_ranges as |range|}} + /// The range of component `{{range.name}}` is `[{{range.min}}, {{range.max}}]`. + {{/each}} fn {{benchmark.name~}} ( {{~#each benchmark.components as |c| ~}} {{~#if (not c.is_used)}}_{{/if}}{{c.name}}: u32, {{/each~}} ) -> Weight { + // Proof Size summary in bytes: + // Measured: `{{benchmark.base_recorded_proof_size}}{{#each benchmark.component_recorded_proof_size as |cp|}} + {{cp.name}} * ({{cp.slope}} ±{{underscore cp.error}}){{/each}}` + // Estimated: `{{benchmark.base_calculated_proof_size}}{{#each benchmark.component_calculated_proof_size as |cp|}} + {{cp.name}} * ({{cp.slope}} ±{{underscore cp.error}}){{/each}}` + // Minimum execution time: {{underscore benchmark.min_execution_time}} nanoseconds. Weight::from_ref_time({{underscore benchmark.base_weight}}) + .saturating_add(Weight::from_proof_size({{benchmark.base_calculated_proof_size}})) {{#each benchmark.component_weight as |cw|}} // Standard Error: {{underscore cw.error}} - .saturating_add(Weight::from_all({{underscore cw.slope}}).saturating_mul({{cw.name}}.into())) + .saturating_add(Weight::from_ref_time({{underscore cw.slope}}).saturating_mul({{cw.name}}.into())) {{/each}} {{#if (ne benchmark.base_reads "0")}} .saturating_add(T::DbWeight::get().reads({{benchmark.base_reads}}_u64)) @@ -74,6 +82,9 @@ impl WeightInfo for SubstrateWeight { {{#each benchmark.component_writes as |cw|}} .saturating_add(T::DbWeight::get().writes(({{cw.slope}}_u64).saturating_mul({{cw.name}}.into()))) {{/each}} + {{#each benchmark.component_calculated_proof_size as |cp|}} + .saturating_add(Weight::from_proof_size({{cp.slope}}).saturating_mul({{cp.name}}.into())) + {{/each}} } {{/each}} } diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index f8f5cb87a8..672dbd5987 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -35,6 +35,7 @@ sp-version = { package = 'sp-version', default-features = false, git = 'https:// sp-staking = { package = 'sp-staking', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} sp-application-crypto = { package = 'sp-application-crypto', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} sp-io = { package = 'sp-io', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sp-weights = { package = 'sp-weights', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} # Frame frame-support = { package = 'frame-support', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} @@ -110,6 +111,7 @@ std = [ # Substrate primitives 'sp-std/std', 'sp-core/std', + 'sp-weights/std', 'sp-api/std', 'sp-version/std', 'sp-runtime/std', From 946f7d3726f7f866a1e8c0a933166f6a5d014d65 Mon Sep 17 00:00:00 2001 From: Mokhtar Naamani Date: Wed, 15 Mar 2023 15:11:22 +0400 Subject: [PATCH 31/87] v0.9.39 - use generated weights (not final weights) --- runtime-modules/bounty/src/weights.rs | 450 ++++- runtime-modules/constitution/src/weights.rs | 30 +- runtime-modules/content/src/weights.rs | 1529 ++++++++++++++--- runtime-modules/council/src/weights.rs | 205 ++- runtime-modules/forum/src/weights.rs | 592 +++++-- runtime-modules/membership/src/weights.rs | 289 +++- runtime-modules/project-token/src/weights.rs | 116 +- .../proposals/codex/src/weights.rs | 690 ++++++-- .../proposals/discussion/src/weights.rs | 79 +- .../proposals/engine/src/weights.rs | 260 ++- runtime-modules/referendum/src/weights.rs | 141 +- runtime-modules/storage/src/weights.rs | 463 ++++- runtime-modules/utility/src/weights.rs | 55 +- runtime-modules/working-group/src/weights.rs | 379 +++- runtime/Cargo.toml | 1 + runtime/src/lib.rs | 24 +- runtime/src/weights/block_weights.rs | 58 +- runtime/src/weights/extrinsic_weights.rs | 56 +- runtime/src/weights/frame_system.rs | 103 +- runtime/src/weights/mod.rs | 24 +- runtime/src/weights/pallet_babe.rs | 19 +- runtime/src/weights/pallet_bags_list.rs | 62 +- runtime/src/weights/pallet_balances.rs | 73 +- .../pallet_election_provider_multi_phase.rs | 241 ++- ..._election_provider_support_benchmarking.rs | 55 +- runtime/src/weights/pallet_grandpa.rs | 22 +- runtime/src/weights/pallet_im_online.rs | 46 +- runtime/src/weights/pallet_multisig.rs | 185 +- runtime/src/weights/pallet_session.rs | 45 +- runtime/src/weights/pallet_staking.rs | 715 ++++++-- runtime/src/weights/pallet_timestamp.rs | 37 +- runtime/src/weights/pallet_vesting.rs | 207 ++- runtime/src/weights/rocksdb_weights.rs | 72 +- runtime/src/weights/substrate_utility.rs | 67 +- scripts/generate-weights.sh | 2 +- 35 files changed, 5653 insertions(+), 1739 deletions(-) diff --git a/runtime-modules/bounty/src/weights.rs b/runtime-modules/bounty/src/weights.rs index 6f5e608320..ffd8c55418 100644 --- a/runtime-modules/bounty/src/weights.rs +++ b/runtime-modules/bounty/src/weights.rs @@ -18,22 +18,21 @@ //! Autogenerated weights for bounty //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-10-20, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! DATE: 2023-03-15, STEPS: `2`, REPEAT: 2, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("prod-test"), DB CACHE: 1024 // Executed Command: -// ./../target/release/joystream-node +// ./scripts/../target/release/joystream-node // benchmark // pallet -// --base-path=/mnt/disks/local-ssd/ // --pallet=bounty // --extrinsic=* -// --chain=dev -// --steps=50 -// --repeat=20 +// --chain=prod-test +// --steps=2 +// --repeat=2 // --execution=wasm -// --template=./../devops/joystream-pallet-weight-template.hbs -// --output=./../runtime-modules/bounty/src/weights.rs +// --template=./scripts/../devops/joystream-pallet-weight-template.hbs +// --output=./scripts/../runtime-modules/bounty/src/weights.rs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -83,315 +82,608 @@ pub trait WeightInfo { pub struct SubstrateWeight(PhantomData); impl WeightInfo for SubstrateWeight { // Storage: Membership MembershipById (r:50 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: Council Budget (r:1 w:1) + // Proof: Council Budget (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) // Storage: Bounty BountyCount (r:1 w:1) + // Proof: Bounty BountyCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) // Storage: Bounty Bounties (r:0 w:1) + // Proof: Bounty Bounties (max_values: None, max_size: Some(540), added: 3015, mode: MaxEncodedLen) + /// The range of component `i` is `[1, 100]`. + /// The range of component `j` is `[1, 50]`. fn create_bounty_by_council(i: u32, j: u32, ) -> Weight { - Weight::from_ref_time(66_826_000) - // Standard Error: 3_000 - .saturating_add(Weight::from_ref_time(594_000).saturating_mul(i.into())) - // Standard Error: 8_000 - .saturating_add(Weight::from_ref_time(5_110_000).saturating_mul(j.into())) + // Proof Size summary in bytes: + // Measured: `395 + j * (168 ±0)` + // Estimated: `3613 + j * (2600 ±0)` + // Minimum execution time: 89_000 nanoseconds. + Weight::from_ref_time(45_561_327) + .saturating_add(Weight::from_proof_size(3613)) + // Standard Error: 136_643 + .saturating_add(Weight::from_ref_time(510_101).saturating_mul(i.into())) + // Standard Error: 276_076 + .saturating_add(Weight::from_ref_time(2_928_571).saturating_mul(j.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(j.into()))) .saturating_add(T::DbWeight::get().writes(4_u64)) + .saturating_add(Weight::from_proof_size(2600).saturating_mul(j.into())) } // Storage: Membership MembershipById (r:51 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: System Account (r:2 w:2) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) // Storage: Bounty BountyCount (r:1 w:1) + // Proof: Bounty BountyCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Bounty Bounties (r:0 w:1) + // Proof: Bounty Bounties (max_values: None, max_size: Some(540), added: 3015, mode: MaxEncodedLen) + /// The range of component `i` is `[1, 100]`. + /// The range of component `j` is `[1, 50]`. fn create_bounty_by_member(i: u32, j: u32, ) -> Weight { - Weight::from_ref_time(67_970_000) - // Standard Error: 4_000 - .saturating_add(Weight::from_ref_time(671_000).saturating_mul(i.into())) - // Standard Error: 10_000 - .saturating_add(Weight::from_ref_time(5_173_000).saturating_mul(j.into())) + // Proof Size summary in bytes: + // Measured: `462 + j * (168 ±0)` + // Estimated: `8305 + j * (2600 ±0)` + // Minimum execution time: 93_000 nanoseconds. + Weight::from_ref_time(51_142_547) + .saturating_add(Weight::from_proof_size(8305)) + // Standard Error: 91_189 + .saturating_add(Weight::from_ref_time(469_696).saturating_mul(i.into())) + // Standard Error: 184_239 + .saturating_add(Weight::from_ref_time(2_887_755).saturating_mul(j.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(j.into()))) .saturating_add(T::DbWeight::get().writes(4_u64)) + .saturating_add(Weight::from_proof_size(2600).saturating_mul(j.into())) } // Storage: Bounty Bounties (r:1 w:1) + // Proof: Bounty Bounties (max_values: None, max_size: Some(540), added: 3015, mode: MaxEncodedLen) // Storage: Bounty BountyContributions (r:1 w:0) + // Proof: Bounty BountyContributions (max_values: None, max_size: Some(81), added: 2556, mode: MaxEncodedLen) // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) // Storage: Council Budget (r:1 w:1) + // Proof: Council Budget (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) fn terminate_bounty_w_oracle_reward_funding_expired() -> Weight { - Weight::from_ref_time(56_590_000) + // Proof Size summary in bytes: + // Measured: `620` + // Estimated: `8685` + // Minimum execution time: 41_000 nanoseconds. + Weight::from_ref_time(43_000_000) + .saturating_add(Weight::from_proof_size(8685)) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } // Storage: Bounty Bounties (r:1 w:1) + // Proof: Bounty Bounties (max_values: None, max_size: Some(540), added: 3015, mode: MaxEncodedLen) // Storage: Bounty BountyContributions (r:1 w:0) + // Proof: Bounty BountyContributions (max_values: None, max_size: Some(81), added: 2556, mode: MaxEncodedLen) // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) // Storage: Council Budget (r:1 w:1) + // Proof: Council Budget (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) fn terminate_bounty_wo_oracle_reward_funding_expired() -> Weight { - Weight::from_ref_time(83_450_000) + // Proof Size summary in bytes: + // Measured: `620` + // Estimated: `8685` + // Minimum execution time: 58_000 nanoseconds. + Weight::from_ref_time(58_000_000) + .saturating_add(Weight::from_proof_size(8685)) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } // Storage: Bounty Bounties (r:1 w:1) + // Proof: Bounty Bounties (max_values: None, max_size: Some(540), added: 3015, mode: MaxEncodedLen) // Storage: Bounty BountyContributions (r:1 w:0) + // Proof: Bounty BountyContributions (max_values: None, max_size: Some(81), added: 2556, mode: MaxEncodedLen) // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) // Storage: Council Budget (r:1 w:1) + // Proof: Council Budget (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) fn terminate_bounty_w_oracle_reward_wo_funds_funding() -> Weight { - Weight::from_ref_time(56_290_000) + // Proof Size summary in bytes: + // Measured: `620` + // Estimated: `8685` + // Minimum execution time: 38_000 nanoseconds. + Weight::from_ref_time(39_000_000) + .saturating_add(Weight::from_proof_size(8685)) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } // Storage: Bounty Bounties (r:1 w:1) + // Proof: Bounty Bounties (max_values: None, max_size: Some(540), added: 3015, mode: MaxEncodedLen) // Storage: Bounty BountyContributions (r:1 w:0) + // Proof: Bounty BountyContributions (max_values: None, max_size: Some(81), added: 2556, mode: MaxEncodedLen) // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) // Storage: Council Budget (r:1 w:1) + // Proof: Council Budget (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) fn terminate_bounty_wo_oracle_reward_wo_funds_funding() -> Weight { - Weight::from_ref_time(83_020_000) + // Proof Size summary in bytes: + // Measured: `620` + // Estimated: `8685` + // Minimum execution time: 58_000 nanoseconds. + Weight::from_ref_time(58_000_000) + .saturating_add(Weight::from_proof_size(8685)) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } // Storage: Bounty Bounties (r:1 w:1) + // Proof: Bounty Bounties (max_values: None, max_size: Some(540), added: 3015, mode: MaxEncodedLen) // Storage: Bounty BountyContributions (r:2 w:0) + // Proof: Bounty BountyContributions (max_values: None, max_size: Some(81), added: 2556, mode: MaxEncodedLen) fn terminate_bounty_w_oracle_reward_w_funds_funding() -> Weight { - Weight::from_ref_time(31_990_000) + // Proof Size summary in bytes: + // Measured: `315` + // Estimated: `8127` + // Minimum execution time: 22_000 nanoseconds. + Weight::from_ref_time(27_000_000) + .saturating_add(Weight::from_proof_size(8127)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Bounty Bounties (r:1 w:1) + // Proof: Bounty Bounties (max_values: None, max_size: Some(540), added: 3015, mode: MaxEncodedLen) // Storage: Bounty BountyContributions (r:2 w:0) + // Proof: Bounty BountyContributions (max_values: None, max_size: Some(81), added: 2556, mode: MaxEncodedLen) fn terminate_bounty_wo_oracle_reward_w_funds_funding() -> Weight { - Weight::from_ref_time(38_500_000) + // Proof Size summary in bytes: + // Measured: `315` + // Estimated: `8127` + // Minimum execution time: 27_000 nanoseconds. + Weight::from_ref_time(28_000_000) + .saturating_add(Weight::from_proof_size(8127)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Bounty Bounties (r:1 w:1) + // Proof: Bounty Bounties (max_values: None, max_size: Some(540), added: 3015, mode: MaxEncodedLen) // Storage: Bounty BountyContributions (r:2 w:0) + // Proof: Bounty BountyContributions (max_values: None, max_size: Some(81), added: 2556, mode: MaxEncodedLen) fn terminate_bounty_work_or_judging_period() -> Weight { - Weight::from_ref_time(31_911_000) + // Proof Size summary in bytes: + // Measured: `306` + // Estimated: `8127` + // Minimum execution time: 21_000 nanoseconds. + Weight::from_ref_time(22_000_000) + .saturating_add(Weight::from_proof_size(8127)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Membership MembershipById (r:1 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: Bounty Bounties (r:1 w:1) + // Proof: Bounty Bounties (max_values: None, max_size: Some(540), added: 3015, mode: MaxEncodedLen) // Storage: Bounty BountyContributions (r:1 w:1) + // Proof: Bounty BountyContributions (max_values: None, max_size: Some(81), added: 2556, mode: MaxEncodedLen) // Storage: System Account (r:2 w:2) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn fund_bounty_by_member() -> Weight { - Weight::from_ref_time(69_380_000) + // Proof Size summary in bytes: + // Measured: `800` + // Estimated: `13377` + // Minimum execution time: 48_000 nanoseconds. + Weight::from_ref_time(49_000_000) + .saturating_add(Weight::from_proof_size(13377)) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } // Storage: Bounty Bounties (r:1 w:1) + // Proof: Bounty Bounties (max_values: None, max_size: Some(540), added: 3015, mode: MaxEncodedLen) // Storage: Bounty BountyContributions (r:1 w:1) + // Proof: Bounty BountyContributions (max_values: None, max_size: Some(81), added: 2556, mode: MaxEncodedLen) // Storage: Council Budget (r:1 w:1) + // Proof: Council Budget (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn fund_bounty_by_council() -> Weight { - Weight::from_ref_time(58_100_000) + // Proof Size summary in bytes: + // Measured: `616` + // Estimated: `8685` + // Minimum execution time: 41_000 nanoseconds. + Weight::from_ref_time(41_000_000) + .saturating_add(Weight::from_proof_size(8685)) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } // Storage: Membership MembershipById (r:1 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: Bounty Bounties (r:1 w:0) + // Proof: Bounty Bounties (max_values: None, max_size: Some(540), added: 3015, mode: MaxEncodedLen) // Storage: Bounty BountyContributions (r:1 w:1) + // Proof: Bounty BountyContributions (max_values: None, max_size: Some(81), added: 2556, mode: MaxEncodedLen) // Storage: System Account (r:2 w:2) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn withdraw_funding_by_member() -> Weight { - Weight::from_ref_time(65_930_000) + // Proof Size summary in bytes: + // Measured: `907` + // Estimated: `13377` + // Minimum execution time: 48_000 nanoseconds. + Weight::from_ref_time(51_000_000) + .saturating_add(Weight::from_proof_size(13377)) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } // Storage: Bounty Bounties (r:1 w:0) + // Proof: Bounty Bounties (max_values: None, max_size: Some(540), added: 3015, mode: MaxEncodedLen) // Storage: Bounty BountyContributions (r:1 w:1) + // Proof: Bounty BountyContributions (max_values: None, max_size: Some(81), added: 2556, mode: MaxEncodedLen) // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) // Storage: Council Budget (r:1 w:1) + // Proof: Council Budget (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) fn withdraw_funding_by_council() -> Weight { - Weight::from_ref_time(57_700_000) + // Proof Size summary in bytes: + // Measured: `715` + // Estimated: `8685` + // Minimum execution time: 40_000 nanoseconds. + Weight::from_ref_time(40_000_000) + .saturating_add(Weight::from_proof_size(8685)) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } // Storage: Membership MembershipById (r:1 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: Bounty Bounties (r:1 w:1) + // Proof: Bounty Bounties (max_values: None, max_size: Some(540), added: 3015, mode: MaxEncodedLen) // Storage: Membership StakingAccountIdMemberStatus (r:1 w:0) + // Proof: Membership StakingAccountIdMemberStatus (max_values: None, max_size: Some(57), added: 2532, mode: MaxEncodedLen) // Storage: Balances Locks (r:1 w:1) + // Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) // Storage: Bounty EntryCount (r:1 w:1) + // Proof: Bounty EntryCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Bounty Entries (r:0 w:1) + // Proof: Bounty Entries (max_values: None, max_size: Some(93), added: 2568, mode: MaxEncodedLen) + /// The range of component `i` is `[1, 100]`. + /// The range of component `j` is `[1, 50]`. fn announce_work_entry(i: u32, j: u32, ) -> Weight { - Weight::from_ref_time(64_714_000) - // Standard Error: 4_000 - .saturating_add(Weight::from_ref_time(791_000).saturating_mul(i.into())) - // Standard Error: 10_000 - .saturating_add(Weight::from_ref_time(350_000).saturating_mul(j.into())) + // Proof Size summary in bytes: + // Measured: `806 + j * (41 ±0)` + // Estimated: `15023` + // Minimum execution time: 62_000 nanoseconds. + Weight::from_ref_time(46_633_168) + .saturating_add(Weight::from_proof_size(15023)) + // Standard Error: 90_815 + .saturating_add(Weight::from_ref_time(550_505).saturating_mul(i.into())) + // Standard Error: 183_484 + .saturating_add(Weight::from_ref_time(316_326).saturating_mul(j.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(5_u64)) } // Storage: Membership MembershipById (r:1 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: Bounty Bounties (r:1 w:0) + // Proof: Bounty Bounties (max_values: None, max_size: Some(540), added: 3015, mode: MaxEncodedLen) // Storage: Bounty Entries (r:1 w:1) + // Proof: Bounty Entries (max_values: None, max_size: Some(93), added: 2568, mode: MaxEncodedLen) + /// The range of component `i` is `[0, 100]`. fn submit_work(i: u32, ) -> Weight { - Weight::from_ref_time(35_985_000) - // Standard Error: 1_000 - .saturating_add(Weight::from_ref_time(722_000).saturating_mul(i.into())) + // Proof Size summary in bytes: + // Measured: `696` + // Estimated: `8183` + // Minimum execution time: 24_000 nanoseconds. + Weight::from_ref_time(24_000_000) + .saturating_add(Weight::from_proof_size(8183)) + // Standard Error: 80_000 + .saturating_add(Weight::from_ref_time(550_000).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Bounty Bounties (r:1 w:1) + // Proof: Bounty Bounties (max_values: None, max_size: Some(540), added: 3015, mode: MaxEncodedLen) // Storage: Bounty Entries (r:40 w:40) + // Proof: Bounty Entries (max_values: None, max_size: Some(93), added: 2568, mode: MaxEncodedLen) // Storage: Membership MembershipById (r:40 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: System Account (r:41 w:41) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) // Storage: Council Budget (r:1 w:1) + // Proof: Council Budget (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) // Storage: Balances Locks (r:40 w:40) + // Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) + /// The range of component `j` is `[0, 100]`. + /// The range of component `k` is `[0, 100]`. + /// The range of component `w` is `[1, 20]`. + /// The range of component `r` is `[1, 20]`. fn submit_oracle_judgment_by_council(j: u32, k: u32, w: u32, r: u32, ) -> Weight { - Weight::from_ref_time(0) - // Standard Error: 13_000 - .saturating_add(Weight::from_ref_time(886_000).saturating_mul(j.into())) - // Standard Error: 13_000 - .saturating_add(Weight::from_ref_time(824_000).saturating_mul(k.into())) - // Standard Error: 95_000 - .saturating_add(Weight::from_ref_time(60_240_000).saturating_mul(w.into())) - // Standard Error: 95_000 - .saturating_add(Weight::from_ref_time(76_631_000).saturating_mul(r.into())) + // Proof Size summary in bytes: + // Measured: `979 + w * (576 ±0) + r * (576 ±0)` + // Estimated: `6129 + w * (11545 ±0) + r * (11545 ±0)` + // Minimum execution time: 962_000 nanoseconds. + Weight::from_ref_time(7_355_263) + .saturating_add(Weight::from_proof_size(6129)) + // Standard Error: 141_557 + .saturating_add(Weight::from_ref_time(562_500).saturating_mul(j.into())) + // Standard Error: 141_557 + .saturating_add(Weight::from_ref_time(617_500).saturating_mul(k.into())) + // Standard Error: 745_037 + .saturating_add(Weight::from_ref_time(39_776_315).saturating_mul(w.into())) + // Standard Error: 745_037 + .saturating_add(Weight::from_ref_time(51_618_421).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().reads((4_u64).saturating_mul(w.into()))) .saturating_add(T::DbWeight::get().reads((4_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(T::DbWeight::get().writes((3_u64).saturating_mul(w.into()))) .saturating_add(T::DbWeight::get().writes((3_u64).saturating_mul(r.into()))) + .saturating_add(Weight::from_proof_size(11545).saturating_mul(w.into())) + .saturating_add(Weight::from_proof_size(11545).saturating_mul(r.into())) } // Storage: Bounty Bounties (r:1 w:1) + // Proof: Bounty Bounties (max_values: None, max_size: Some(540), added: 3015, mode: MaxEncodedLen) // Storage: Membership MembershipById (r:40 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: Bounty Entries (r:39 w:39) + // Proof: Bounty Entries (max_values: None, max_size: Some(93), added: 2568, mode: MaxEncodedLen) // Storage: System Account (r:40 w:40) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) // Storage: Council Budget (r:1 w:1) + // Proof: Council Budget (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) // Storage: Balances Locks (r:39 w:39) + // Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) + /// The range of component `j` is `[0, 100]`. + /// The range of component `k` is `[0, 100]`. + /// The range of component `w` is `[1, 20]`. + /// The range of component `r` is `[1, 19]`. fn submit_oracle_judgment_by_member(j: u32, k: u32, w: u32, r: u32, ) -> Weight { - Weight::from_ref_time(0) - // Standard Error: 25_000 - .saturating_add(Weight::from_ref_time(970_000).saturating_mul(j.into())) - // Standard Error: 25_000 - .saturating_add(Weight::from_ref_time(1_037_000).saturating_mul(k.into())) - // Standard Error: 176_000 - .saturating_add(Weight::from_ref_time(60_734_000).saturating_mul(w.into())) - // Standard Error: 189_000 - .saturating_add(Weight::from_ref_time(75_651_000).saturating_mul(r.into())) + // Proof Size summary in bytes: + // Measured: `1132 + w * (578 ±0) + r * (579 ±0)` + // Estimated: `8729 + w * (11545 ±0) + r * (11545 ±0)` + // Minimum execution time: 964_000 nanoseconds. + Weight::from_ref_time(3_223_684) + .saturating_add(Weight::from_proof_size(8729)) + // Standard Error: 104_103 + .saturating_add(Weight::from_ref_time(520_000).saturating_mul(j.into())) + // Standard Error: 104_103 + .saturating_add(Weight::from_ref_time(675_000).saturating_mul(k.into())) + // Standard Error: 547_912 + .saturating_add(Weight::from_ref_time(40_026_315).saturating_mul(w.into())) + // Standard Error: 578_351 + .saturating_add(Weight::from_ref_time(51_750_000).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().reads((4_u64).saturating_mul(w.into()))) .saturating_add(T::DbWeight::get().reads((4_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(T::DbWeight::get().writes((3_u64).saturating_mul(w.into()))) .saturating_add(T::DbWeight::get().writes((3_u64).saturating_mul(r.into()))) + .saturating_add(Weight::from_proof_size(11545).saturating_mul(w.into())) + .saturating_add(Weight::from_proof_size(11545).saturating_mul(r.into())) } // Storage: Bounty Bounties (r:1 w:1) + // Proof: Bounty Bounties (max_values: None, max_size: Some(540), added: 3015, mode: MaxEncodedLen) fn switch_oracle_to_council_by_council_successful() -> Weight { - Weight::from_ref_time(25_029_000) + // Proof Size summary in bytes: + // Measured: `216` + // Estimated: `3015` + // Minimum execution time: 17_000 nanoseconds. + Weight::from_ref_time(17_000_000) + .saturating_add(Weight::from_proof_size(3015)) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Bounty Bounties (r:1 w:1) + // Proof: Bounty Bounties (max_values: None, max_size: Some(540), added: 3015, mode: MaxEncodedLen) // Storage: Membership MembershipById (r:1 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) fn switch_oracle_to_member_by_oracle_council() -> Weight { - Weight::from_ref_time(29_030_000) + // Proof Size summary in bytes: + // Measured: `493` + // Estimated: `5615` + // Minimum execution time: 20_000 nanoseconds. + Weight::from_ref_time(20_000_000) + .saturating_add(Weight::from_proof_size(5615)) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Bounty Bounties (r:1 w:1) + // Proof: Bounty Bounties (max_values: None, max_size: Some(540), added: 3015, mode: MaxEncodedLen) // Storage: Membership MembershipById (r:1 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) fn switch_oracle_to_member_by_council() -> Weight { - Weight::from_ref_time(30_520_000) + // Proof Size summary in bytes: + // Measured: `538` + // Estimated: `5615` + // Minimum execution time: 21_000 nanoseconds. + Weight::from_ref_time(21_000_000) + .saturating_add(Weight::from_proof_size(5615)) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Bounty Bounties (r:1 w:1) + // Proof: Bounty Bounties (max_values: None, max_size: Some(540), added: 3015, mode: MaxEncodedLen) // Storage: Membership MembershipById (r:2 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) fn switch_oracle_to_member_by_oracle_member() -> Weight { - Weight::from_ref_time(34_780_000) + // Proof Size summary in bytes: + // Measured: `669` + // Estimated: `8215` + // Minimum execution time: 23_000 nanoseconds. + Weight::from_ref_time(23_000_000) + .saturating_add(Weight::from_proof_size(8215)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Bounty Bounties (r:1 w:1) + // Proof: Bounty Bounties (max_values: None, max_size: Some(540), added: 3015, mode: MaxEncodedLen) // Storage: Membership MembershipById (r:1 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) fn switch_oracle_to_council_by_oracle_member() -> Weight { - Weight::from_ref_time(29_320_000) + // Proof Size summary in bytes: + // Measured: `501` + // Estimated: `5615` + // Minimum execution time: 20_000 nanoseconds. + Weight::from_ref_time(20_000_000) + .saturating_add(Weight::from_proof_size(5615)) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Bounty Bounties (r:1 w:1) + // Proof: Bounty Bounties (max_values: None, max_size: Some(540), added: 3015, mode: MaxEncodedLen) // Storage: Membership MembershipById (r:1 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) fn end_working_period() -> Weight { - Weight::from_ref_time(30_200_000) + // Proof Size summary in bytes: + // Measured: `622` + // Estimated: `5615` + // Minimum execution time: 21_000 nanoseconds. + Weight::from_ref_time(22_000_000) + .saturating_add(Weight::from_proof_size(5615)) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Membership MembershipById (r:1 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: Bounty Bounties (r:1 w:1) + // Proof: Bounty Bounties (max_values: None, max_size: Some(540), added: 3015, mode: MaxEncodedLen) // Storage: Bounty Entries (r:1 w:1) + // Proof: Bounty Entries (max_values: None, max_size: Some(93), added: 2568, mode: MaxEncodedLen) // Storage: Balances Locks (r:1 w:1) + // Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn withdraw_entrant_stake() -> Weight { - Weight::from_ref_time(52_629_000) + // Proof Size summary in bytes: + // Measured: `1022` + // Estimated: `14560` + // Minimum execution time: 37_000 nanoseconds. + Weight::from_ref_time(38_000_000) + .saturating_add(Weight::from_proof_size(14560)) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } // Storage: Bounty Bounties (r:1 w:0) + // Proof: Bounty Bounties (max_values: None, max_size: Some(540), added: 3015, mode: MaxEncodedLen) // Storage: Bounty BountyContributions (r:1 w:1) + // Proof: Bounty BountyContributions (max_values: None, max_size: Some(81), added: 2556, mode: MaxEncodedLen) // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) // Storage: Council Budget (r:1 w:1) + // Proof: Council Budget (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) fn withdraw_funding_state_bloat_bond_by_council() -> Weight { - Weight::from_ref_time(56_640_000) + // Proof Size summary in bytes: + // Measured: `738` + // Estimated: `8685` + // Minimum execution time: 38_000 nanoseconds. + Weight::from_ref_time(38_000_000) + .saturating_add(Weight::from_proof_size(8685)) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } // Storage: Membership MembershipById (r:1 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: Bounty Bounties (r:1 w:0) + // Proof: Bounty Bounties (max_values: None, max_size: Some(540), added: 3015, mode: MaxEncodedLen) // Storage: Bounty BountyContributions (r:1 w:1) + // Proof: Bounty BountyContributions (max_values: None, max_size: Some(81), added: 2556, mode: MaxEncodedLen) // Storage: System Account (r:2 w:2) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn withdraw_funding_state_bloat_bond_by_member() -> Weight { - Weight::from_ref_time(65_190_000) + // Proof Size summary in bytes: + // Measured: `1035` + // Estimated: `13377` + // Minimum execution time: 46_000 nanoseconds. + Weight::from_ref_time(51_000_000) + .saturating_add(Weight::from_proof_size(13377)) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } // Storage: Bounty Bounties (r:1 w:1) + // Proof: Bounty Bounties (max_values: None, max_size: Some(540), added: 3015, mode: MaxEncodedLen) // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) // Storage: Council Budget (r:1 w:1) + // Proof: Council Budget (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) // Storage: Bounty BountyContributions (r:1 w:0) + // Proof: Bounty BountyContributions (max_values: None, max_size: Some(81), added: 2556, mode: MaxEncodedLen) fn withdraw_oracle_reward_by_oracle_council() -> Weight { - Weight::from_ref_time(85_380_000) + // Proof Size summary in bytes: + // Measured: `611` + // Estimated: `8685` + // Minimum execution time: 60_000 nanoseconds. + Weight::from_ref_time(60_000_000) + .saturating_add(Weight::from_proof_size(8685)) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } // Storage: Bounty Bounties (r:1 w:1) + // Proof: Bounty Bounties (max_values: None, max_size: Some(540), added: 3015, mode: MaxEncodedLen) // Storage: Membership MembershipById (r:1 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: System Account (r:2 w:2) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) // Storage: Bounty BountyContributions (r:1 w:0) + // Proof: Bounty BountyContributions (max_values: None, max_size: Some(81), added: 2556, mode: MaxEncodedLen) // Storage: Council Budget (r:1 w:1) + // Proof: Council Budget (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) fn withdraw_oracle_reward_by_oracle_member() -> Weight { - Weight::from_ref_time(99_320_000) + // Proof Size summary in bytes: + // Measured: `1076` + // Estimated: `13888` + // Minimum execution time: 69_000 nanoseconds. + Weight::from_ref_time(70_000_000) + .saturating_add(Weight::from_proof_size(13888)) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } // Storage: Membership MembershipById (r:1 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: Bounty Entries (r:1 w:0) + // Proof: Bounty Entries (max_values: None, max_size: Some(93), added: 2568, mode: MaxEncodedLen) + /// The range of component `i` is `[0, 100]`. fn entrant_remark(i: u32, ) -> Weight { - Weight::from_ref_time(24_192_000) - // Standard Error: 1_000 - .saturating_add(Weight::from_ref_time(735_000).saturating_mul(i.into())) + // Proof Size summary in bytes: + // Measured: `555` + // Estimated: `5168` + // Minimum execution time: 17_000 nanoseconds. + Weight::from_ref_time(17_000_000) + .saturating_add(Weight::from_proof_size(5168)) + // Standard Error: 75_000 + .saturating_add(Weight::from_ref_time(565_000).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) } // Storage: Membership MembershipById (r:1 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: Bounty BountyContributions (r:1 w:0) + // Proof: Bounty BountyContributions (max_values: None, max_size: Some(81), added: 2556, mode: MaxEncodedLen) + /// The range of component `i` is `[0, 100]`. fn contributor_remark(i: u32, ) -> Weight { - Weight::from_ref_time(23_858_000) - // Standard Error: 0 - .saturating_add(Weight::from_ref_time(664_000).saturating_mul(i.into())) + // Proof Size summary in bytes: + // Measured: `454` + // Estimated: `5156` + // Minimum execution time: 17_000 nanoseconds. + Weight::from_ref_time(17_500_000) + .saturating_add(Weight::from_proof_size(5156)) + // Standard Error: 90_138 + .saturating_add(Weight::from_ref_time(505_000).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) } // Storage: Bounty Bounties (r:1 w:0) + // Proof: Bounty Bounties (max_values: None, max_size: Some(540), added: 3015, mode: MaxEncodedLen) + /// The range of component `i` is `[0, 100]`. fn oracle_remark(i: u32, ) -> Weight { - Weight::from_ref_time(19_514_000) - // Standard Error: 5_000 - .saturating_add(Weight::from_ref_time(672_000).saturating_mul(i.into())) + // Proof Size summary in bytes: + // Measured: `236` + // Estimated: `3015` + // Minimum execution time: 13_000 nanoseconds. + Weight::from_ref_time(13_500_000) + .saturating_add(Weight::from_proof_size(3015)) + // Standard Error: 90_138 + .saturating_add(Weight::from_ref_time(525_000).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) } // Storage: Bounty Bounties (r:1 w:0) + // Proof: Bounty Bounties (max_values: None, max_size: Some(540), added: 3015, mode: MaxEncodedLen) + /// The range of component `i` is `[0, 100]`. fn creator_remark(i: u32, ) -> Weight { - Weight::from_ref_time(19_577_000) - // Standard Error: 5_000 - .saturating_add(Weight::from_ref_time(671_000).saturating_mul(i.into())) + // Proof Size summary in bytes: + // Measured: `236` + // Estimated: `3015` + // Minimum execution time: 13_000 nanoseconds. + Weight::from_ref_time(13_000_000) + .saturating_add(Weight::from_proof_size(3015)) + // Standard Error: 85_000 + .saturating_add(Weight::from_ref_time(535_000).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) } } diff --git a/runtime-modules/constitution/src/weights.rs b/runtime-modules/constitution/src/weights.rs index 7fc4cc1f00..c818de0fe9 100644 --- a/runtime-modules/constitution/src/weights.rs +++ b/runtime-modules/constitution/src/weights.rs @@ -18,22 +18,21 @@ //! Autogenerated weights for pallet_constitution //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-10-20, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! DATE: 2023-03-15, STEPS: `2`, REPEAT: 2, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("prod-test"), DB CACHE: 1024 // Executed Command: -// ./../target/release/joystream-node +// ./scripts/../target/release/joystream-node // benchmark // pallet -// --base-path=/mnt/disks/local-ssd/ // --pallet=pallet_constitution // --extrinsic=* -// --chain=dev -// --steps=50 -// --repeat=20 +// --chain=prod-test +// --steps=2 +// --repeat=2 // --execution=wasm -// --template=./../devops/joystream-pallet-weight-template.hbs -// --output=./../runtime-modules/constitution/src/weights.rs +// --template=./scripts/../devops/joystream-pallet-weight-template.hbs +// --output=./scripts/../runtime-modules/constitution/src/weights.rs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -52,10 +51,17 @@ pub trait WeightInfo { pub struct SubstrateWeight(PhantomData); impl WeightInfo for SubstrateWeight { // Storage: Constitution Constitution (r:0 w:1) + // Proof: Constitution Constitution (max_values: Some(1), max_size: Some(32), added: 527, mode: MaxEncodedLen) + /// The range of component `i` is `[1, 50000]`. fn amend_constitution(i: u32, ) -> Weight { - Weight::from_ref_time(31_909_000) - // Standard Error: 0 - .saturating_add(Weight::from_ref_time(2_000).saturating_mul(i.into())) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 8_000 nanoseconds. + Weight::from_ref_time(8_498_429) + .saturating_add(Weight::from_proof_size(0)) + // Standard Error: 80 + .saturating_add(Weight::from_ref_time(1_570).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().writes(1_u64)) } } diff --git a/runtime-modules/content/src/weights.rs b/runtime-modules/content/src/weights.rs index 1faf1a94fc..37f9700cd2 100644 --- a/runtime-modules/content/src/weights.rs +++ b/runtime-modules/content/src/weights.rs @@ -18,22 +18,21 @@ //! Autogenerated weights for content //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-10-20, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! DATE: 2023-03-15, STEPS: `2`, REPEAT: 2, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("prod-test"), DB CACHE: 1024 // Executed Command: -// ./../target/release/joystream-node +// ./scripts/../target/release/joystream-node // benchmark // pallet -// --base-path=/mnt/disks/local-ssd/ // --pallet=content // --extrinsic=* -// --chain=dev -// --steps=50 -// --repeat=20 +// --chain=prod-test +// --steps=2 +// --repeat=2 // --execution=wasm -// --template=./../devops/joystream-pallet-weight-template.hbs -// --output=./../runtime-modules/content/src/weights.rs +// --template=./scripts/../devops/joystream-pallet-weight-template.hbs +// --output=./scripts/../runtime-modules/content/src/weights.rs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -127,35 +126,63 @@ pub trait WeightInfo { pub struct SubstrateWeight(PhantomData); impl WeightInfo for SubstrateWeight { // Storage: Instance3WorkingGroup CurrentLead (r:1 w:0) + // Proof: Instance3WorkingGroup CurrentLead (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance3WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Content ChannelStateBloatBondValue (r:1 w:0) + // Proof: Content ChannelStateBloatBondValue (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) // Storage: Content CuratorGroupById (r:1 w:0) - // Storage: Membership MembershipById (r:1 w:0) + // Proof: Content CuratorGroupById (max_values: None, max_size: Some(1127), added: 3602, mode: MaxEncodedLen) + // Storage: Membership MembershipById (r:10 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: Content NextChannelId (r:1 w:1) + // Proof: Content NextChannelId (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Storage DataObjectStateBloatBondValue (r:1 w:0) + // Proof: Storage DataObjectStateBloatBondValue (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) // Storage: Storage DataObjectPerMegabyteFee (r:1 w:0) + // Proof: Storage DataObjectPerMegabyteFee (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) // Storage: System Account (r:3 w:3) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) // Storage: Storage DynamicBagCreationPolicies (r:1 w:0) + // Proof: Storage DynamicBagCreationPolicies (max_values: None, max_size: Some(634), added: 3109, mode: MaxEncodedLen) // Storage: Storage StorageBucketById (r:13 w:13) + // Proof: Storage StorageBucketById (max_values: None, max_size: Some(106), added: 2581, mode: MaxEncodedLen) // Storage: Storage DistributionBucketByFamilyIdById (r:51 w:51) + // Proof: Storage DistributionBucketByFamilyIdById (max_values: None, max_size: Some(380), added: 2855, mode: MaxEncodedLen) // Storage: Storage UploadingBlocked (r:1 w:0) + // Proof: Storage UploadingBlocked (max_values: Some(1), max_size: Some(1), added: 496, mode: MaxEncodedLen) // Storage: Storage Blacklist (r:1 w:0) + // Proof: Storage Blacklist (max_values: None, max_size: Some(63), added: 2538, mode: MaxEncodedLen) // Storage: Storage Bags (r:1 w:1) + // Proof: Storage Bags (max_values: None, max_size: Some(964), added: 3439, mode: MaxEncodedLen) // Storage: Storage NextDataObjectId (r:1 w:1) + // Proof: Storage NextDataObjectId (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Storage DataObjectsById (r:0 w:10) + // Proof: Storage DataObjectsById (max_values: None, max_size: Some(155), added: 2630, mode: MaxEncodedLen) // Storage: Content ChannelById (r:0 w:1) + // Proof: Content ChannelById (max_values: None, max_size: Some(889), added: 3364, mode: MaxEncodedLen) + /// The range of component `a` is `[1, 10]`. + /// The range of component `b` is `[3, 13]`. + /// The range of component `c` is `[1, 51]`. + /// The range of component `d` is `[1, 10]`. + /// The range of component `e` is `[1, 100]`. fn create_channel(a: u32, b: u32, c: u32, d: u32, e: u32, ) -> Weight { - Weight::from_ref_time(463_947_000) - // Standard Error: 262_000 - .saturating_add(Weight::from_ref_time(18_010_000).saturating_mul(a.into())) - // Standard Error: 227_000 - .saturating_add(Weight::from_ref_time(31_794_000).saturating_mul(b.into())) - // Standard Error: 26_000 - .saturating_add(Weight::from_ref_time(30_073_000).saturating_mul(c.into())) - // Standard Error: 262_000 - .saturating_add(Weight::from_ref_time(15_433_000).saturating_mul(d.into())) - // Standard Error: 11_000 - .saturating_add(Weight::from_ref_time(634_000).saturating_mul(e.into())) + // Proof Size summary in bytes: + // Measured: `2462 + a * (185 ±0) + b * (104 ±0) + c * (40 ±0)` + // Estimated: `26685 + c * (2855 ±0) + a * (2600 ±0) + b * (2581 ±0)` + // Minimum execution time: 450_000 nanoseconds. + Weight::from_ref_time(171_694_915) + .saturating_add(Weight::from_proof_size(26685)) + // Standard Error: 979_137 + .saturating_add(Weight::from_ref_time(5_851_851).saturating_mul(a.into())) + // Standard Error: 881_223 + .saturating_add(Weight::from_ref_time(8_816_666).saturating_mul(b.into())) + // Standard Error: 176_244 + .saturating_add(Weight::from_ref_time(9_013_333).saturating_mul(c.into())) + // Standard Error: 979_137 + .saturating_add(Weight::from_ref_time(5_851_851).saturating_mul(d.into())) + // Standard Error: 89_012 + .saturating_add(Weight::from_ref_time(471_380).saturating_mul(e.into())) .saturating_add(T::DbWeight::get().reads(15_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(a.into()))) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(b.into()))) @@ -164,32 +191,58 @@ impl WeightInfo for SubstrateWeight { .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(b.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(c.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(d.into()))) + .saturating_add(Weight::from_proof_size(2855).saturating_mul(c.into())) + .saturating_add(Weight::from_proof_size(2600).saturating_mul(a.into())) + .saturating_add(Weight::from_proof_size(2581).saturating_mul(b.into())) } // Storage: Content ChannelById (r:1 w:1) + // Proof: Content ChannelById (max_values: None, max_size: Some(889), added: 3364, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance3WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Content CuratorGroupById (r:1 w:0) - // Storage: Membership MembershipById (r:1 w:0) + // Proof: Content CuratorGroupById (max_values: None, max_size: Some(1127), added: 3602, mode: MaxEncodedLen) + // Storage: Membership MembershipById (r:10 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: Storage Bags (r:1 w:1) + // Proof: Storage Bags (max_values: None, max_size: Some(964), added: 3439, mode: MaxEncodedLen) // Storage: Storage DataObjectPerMegabyteFee (r:1 w:0) + // Proof: Storage DataObjectPerMegabyteFee (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) // Storage: Storage DataObjectStateBloatBondValue (r:1 w:0) + // Proof: Storage DataObjectStateBloatBondValue (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) // Storage: Storage UploadingBlocked (r:1 w:0) + // Proof: Storage UploadingBlocked (max_values: Some(1), max_size: Some(1), added: 496, mode: MaxEncodedLen) // Storage: Storage Blacklist (r:1 w:0) + // Proof: Storage Blacklist (max_values: None, max_size: Some(63), added: 2538, mode: MaxEncodedLen) // Storage: Storage DataObjectsById (r:10 w:20) + // Proof: Storage DataObjectsById (max_values: None, max_size: Some(155), added: 2630, mode: MaxEncodedLen) // Storage: Storage StorageBucketById (r:13 w:13) + // Proof: Storage StorageBucketById (max_values: None, max_size: Some(106), added: 2581, mode: MaxEncodedLen) // Storage: System Account (r:12 w:12) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) // Storage: Storage NextDataObjectId (r:1 w:1) + // Proof: Storage NextDataObjectId (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) + /// The range of component `a` is `[1, 10]`. + /// The range of component `b` is `[1, 10]`. + /// The range of component `c` is `[1, 10]`. + /// The range of component `d` is `[1, 100]`. + /// The range of component `e` is `[3, 13]`. fn channel_update_with_assets(a: u32, b: u32, c: u32, d: u32, e: u32, ) -> Weight { - Weight::from_ref_time(604_768_000) - // Standard Error: 191_000 - .saturating_add(Weight::from_ref_time(18_531_000).saturating_mul(a.into())) - // Standard Error: 191_000 - .saturating_add(Weight::from_ref_time(18_335_000).saturating_mul(b.into())) - // Standard Error: 191_000 - .saturating_add(Weight::from_ref_time(70_468_000).saturating_mul(c.into())) - // Standard Error: 8_000 - .saturating_add(Weight::from_ref_time(786_000).saturating_mul(d.into())) - // Standard Error: 166_000 - .saturating_add(Weight::from_ref_time(28_887_000).saturating_mul(e.into())) + // Proof Size summary in bytes: + // Measured: `4888 + a * (181 ±0) + c * (383 ±0) + e * (112 ±0)` + // Estimated: `22820 + c * (5233 ±0) + e * (2581 ±0) + a * (2600 ±0)` + // Minimum execution time: 556_000 nanoseconds. + Weight::from_ref_time(254_062_794) + .saturating_add(Weight::from_proof_size(22820)) + // Standard Error: 753_228 + .saturating_add(Weight::from_ref_time(7_759_259).saturating_mul(a.into())) + // Standard Error: 753_228 + .saturating_add(Weight::from_ref_time(6_314_814).saturating_mul(b.into())) + // Standard Error: 753_228 + .saturating_add(Weight::from_ref_time(20_925_925).saturating_mul(c.into())) + // Standard Error: 68_475 + .saturating_add(Weight::from_ref_time(553_872).saturating_mul(d.into())) + // Standard Error: 677_905 + .saturating_add(Weight::from_ref_time(7_183_333).saturating_mul(e.into())) .saturating_add(T::DbWeight::get().reads(11_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(a.into()))) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(c.into()))) @@ -198,37 +251,68 @@ impl WeightInfo for SubstrateWeight { .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(b.into()))) .saturating_add(T::DbWeight::get().writes((2_u64).saturating_mul(c.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(e.into()))) + .saturating_add(Weight::from_proof_size(5233).saturating_mul(c.into())) + .saturating_add(Weight::from_proof_size(2581).saturating_mul(e.into())) + .saturating_add(Weight::from_proof_size(2600).saturating_mul(a.into())) } // Storage: Content ChannelById (r:1 w:1) + // Proof: Content ChannelById (max_values: None, max_size: Some(889), added: 3364, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance3WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Content CuratorGroupById (r:1 w:0) - // Storage: Membership MembershipById (r:1 w:0) + // Proof: Content CuratorGroupById (max_values: None, max_size: Some(1127), added: 3602, mode: MaxEncodedLen) + // Storage: Membership MembershipById (r:10 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) + /// The range of component `a` is `[1, 10]`. + /// The range of component `b` is `[1, 100]`. fn channel_update_without_assets(a: u32, b: u32, ) -> Weight { - Weight::from_ref_time(370_489_000) - // Standard Error: 85_000 - .saturating_add(Weight::from_ref_time(18_862_000).saturating_mul(a.into())) - // Standard Error: 4_000 - .saturating_add(Weight::from_ref_time(706_000).saturating_mul(b.into())) + // Proof Size summary in bytes: + // Measured: `3441 + a * (181 ±0)` + // Estimated: `9616 + a * (2600 ±0)` + // Minimum execution time: 209_000 nanoseconds. + Weight::from_ref_time(160_020_202) + .saturating_add(Weight::from_proof_size(9616)) + // Standard Error: 655_775 + .saturating_add(Weight::from_ref_time(7_000_000).saturating_mul(a.into())) + // Standard Error: 59_615 + .saturating_add(Weight::from_ref_time(479_797).saturating_mul(b.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(a.into()))) .saturating_add(T::DbWeight::get().writes(1_u64)) + .saturating_add(Weight::from_proof_size(2600).saturating_mul(a.into())) } // Storage: Content ChannelById (r:1 w:1) + // Proof: Content ChannelById (max_values: None, max_size: Some(889), added: 3364, mode: MaxEncodedLen) // Storage: Storage Bags (r:1 w:1) + // Proof: Storage Bags (max_values: None, max_size: Some(964), added: 3439, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance3WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Content CuratorGroupById (r:1 w:0) - // Storage: Storage DataObjectsById (r:2 w:1) + // Proof: Content CuratorGroupById (max_values: None, max_size: Some(1127), added: 3602, mode: MaxEncodedLen) + // Storage: Storage DataObjectsById (r:11 w:10) + // Proof: Storage DataObjectsById (max_values: None, max_size: Some(155), added: 2630, mode: MaxEncodedLen) // Storage: Storage StorageBucketById (r:13 w:13) + // Proof: Storage StorageBucketById (max_values: None, max_size: Some(106), added: 2581, mode: MaxEncodedLen) // Storage: Storage DistributionBucketByFamilyIdById (r:51 w:51) - // Storage: System Account (r:4 w:4) + // Proof: Storage DistributionBucketByFamilyIdById (max_values: None, max_size: Some(380), added: 2855, mode: MaxEncodedLen) + // Storage: System Account (r:13 w:13) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// The range of component `a` is `[1, 10]`. + /// The range of component `b` is `[3, 13]`. + /// The range of component `c` is `[1, 51]`. fn delete_channel(a: u32, b: u32, c: u32, ) -> Weight { - Weight::from_ref_time(504_219_000) - // Standard Error: 377_000 - .saturating_add(Weight::from_ref_time(70_080_000).saturating_mul(a.into())) - // Standard Error: 329_000 - .saturating_add(Weight::from_ref_time(26_378_000).saturating_mul(b.into())) - // Standard Error: 45_000 - .saturating_add(Weight::from_ref_time(21_866_000).saturating_mul(c.into())) + // Proof Size summary in bytes: + // Measured: `4282 + a * (400 ±0) + b * (112 ±0) + c * (56 ±0)` + // Estimated: `23494 + a * (5233 ±0) + c * (2855 ±0) + b * (2581 ±0)` + // Minimum execution time: 511_000 nanoseconds. + Weight::from_ref_time(208_402_222) + .saturating_add(Weight::from_proof_size(23494)) + // Standard Error: 700_253 + .saturating_add(Weight::from_ref_time(21_527_777).saturating_mul(a.into())) + // Standard Error: 630_228 + .saturating_add(Weight::from_ref_time(6_425_000).saturating_mul(b.into())) + // Standard Error: 126_045 + .saturating_add(Weight::from_ref_time(6_295_000).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(a.into()))) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(b.into()))) @@ -237,67 +321,123 @@ impl WeightInfo for SubstrateWeight { .saturating_add(T::DbWeight::get().writes((2_u64).saturating_mul(a.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(b.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(c.into()))) + .saturating_add(Weight::from_proof_size(5233).saturating_mul(a.into())) + .saturating_add(Weight::from_proof_size(2855).saturating_mul(c.into())) + .saturating_add(Weight::from_proof_size(2581).saturating_mul(b.into())) } // Storage: Instance3WorkingGroup CurrentLead (r:1 w:0) + // Proof: Instance3WorkingGroup CurrentLead (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance3WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Content ChannelById (r:1 w:1) + // Proof: Content ChannelById (max_values: None, max_size: Some(889), added: 3364, mode: MaxEncodedLen) fn update_channel_privilege_level() -> Weight { - Weight::from_ref_time(226_269_000) + // Proof Size summary in bytes: + // Measured: `2064` + // Estimated: `6517` + // Minimum execution time: 88_000 nanoseconds. + Weight::from_ref_time(89_000_000) + .saturating_add(Weight::from_proof_size(6517)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Content ChannelById (r:1 w:1) + // Proof: Content ChannelById (max_values: None, max_size: Some(889), added: 3364, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance3WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Content CuratorGroupById (r:1 w:0) + // Proof: Content CuratorGroupById (max_values: None, max_size: Some(1127), added: 3602, mode: MaxEncodedLen) + /// The range of component `a` is `[1, 100]`. fn set_channel_paused_features_as_moderator(a: u32, ) -> Weight { - Weight::from_ref_time(417_835_000) - // Standard Error: 6_000 - .saturating_add(Weight::from_ref_time(690_000).saturating_mul(a.into())) + // Proof Size summary in bytes: + // Measured: `3129` + // Estimated: `9616` + // Minimum execution time: 170_000 nanoseconds. + Weight::from_ref_time(170_994_949) + .saturating_add(Weight::from_proof_size(9616)) + // Standard Error: 117_145 + .saturating_add(Weight::from_ref_time(505_050).saturating_mul(a.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Content ChannelById (r:1 w:1) + // Proof: Content ChannelById (max_values: None, max_size: Some(889), added: 3364, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance3WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Content CuratorGroupById (r:1 w:0) + // Proof: Content CuratorGroupById (max_values: None, max_size: Some(1127), added: 3602, mode: MaxEncodedLen) // Storage: Storage Bags (r:1 w:1) + // Proof: Storage Bags (max_values: None, max_size: Some(964), added: 3439, mode: MaxEncodedLen) // Storage: Storage DataObjectStateBloatBondValue (r:1 w:0) - // Storage: Storage DataObjectsById (r:1 w:1) + // Proof: Storage DataObjectStateBloatBondValue (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) + // Storage: Storage DataObjectsById (r:10 w:10) + // Proof: Storage DataObjectsById (max_values: None, max_size: Some(155), added: 2630, mode: MaxEncodedLen) // Storage: Storage DataObjectPerMegabyteFee (r:1 w:0) + // Proof: Storage DataObjectPerMegabyteFee (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) // Storage: Storage StorageBucketById (r:13 w:13) - // Storage: System Account (r:2 w:2) + // Proof: Storage StorageBucketById (max_values: None, max_size: Some(106), added: 2581, mode: MaxEncodedLen) + // Storage: System Account (r:11 w:11) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// The range of component `a` is `[1, 10]`. + /// The range of component `b` is `[3, 13]`. + /// The range of component `c` is `[1, 100]`. fn delete_channel_assets_as_moderator(a: u32, b: u32, c: u32, ) -> Weight { - Weight::from_ref_time(510_662_000) - // Standard Error: 157_000 - .saturating_add(Weight::from_ref_time(68_791_000).saturating_mul(a.into())) - // Standard Error: 137_000 - .saturating_add(Weight::from_ref_time(27_409_000).saturating_mul(b.into())) - // Standard Error: 7_000 - .saturating_add(Weight::from_ref_time(698_000).saturating_mul(c.into())) + // Proof Size summary in bytes: + // Measured: `4668 + a * (400 ±0) + b * (112 ±0)` + // Estimated: `16680 + a * (5233 ±0) + b * (2581 ±0)` + // Minimum execution time: 378_000 nanoseconds. + Weight::from_ref_time(215_814_141) + .saturating_add(Weight::from_proof_size(16680)) + // Standard Error: 1_064_653 + .saturating_add(Weight::from_ref_time(20_500_000).saturating_mul(a.into())) + // Standard Error: 958_188 + .saturating_add(Weight::from_ref_time(7_200_000).saturating_mul(b.into())) + // Standard Error: 96_786 + .saturating_add(Weight::from_ref_time(585_858).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(a.into()))) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(b.into()))) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(T::DbWeight::get().writes((2_u64).saturating_mul(a.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(b.into()))) + .saturating_add(Weight::from_proof_size(5233).saturating_mul(a.into())) + .saturating_add(Weight::from_proof_size(2581).saturating_mul(b.into())) } // Storage: Content ChannelById (r:1 w:1) + // Proof: Content ChannelById (max_values: None, max_size: Some(889), added: 3364, mode: MaxEncodedLen) // Storage: Storage Bags (r:1 w:1) + // Proof: Storage Bags (max_values: None, max_size: Some(964), added: 3439, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance3WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Content CuratorGroupById (r:1 w:0) - // Storage: Storage DataObjectsById (r:2 w:1) + // Proof: Content CuratorGroupById (max_values: None, max_size: Some(1127), added: 3602, mode: MaxEncodedLen) + // Storage: Storage DataObjectsById (r:11 w:10) + // Proof: Storage DataObjectsById (max_values: None, max_size: Some(155), added: 2630, mode: MaxEncodedLen) // Storage: Storage StorageBucketById (r:13 w:13) + // Proof: Storage StorageBucketById (max_values: None, max_size: Some(106), added: 2581, mode: MaxEncodedLen) // Storage: Storage DistributionBucketByFamilyIdById (r:51 w:51) - // Storage: System Account (r:3 w:3) + // Proof: Storage DistributionBucketByFamilyIdById (max_values: None, max_size: Some(380), added: 2855, mode: MaxEncodedLen) + // Storage: System Account (r:12 w:12) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// The range of component `a` is `[1, 10]`. + /// The range of component `b` is `[3, 13]`. + /// The range of component `c` is `[1, 51]`. + /// The range of component `d` is `[1, 100]`. fn delete_channel_as_moderator(a: u32, b: u32, c: u32, d: u32, ) -> Weight { - Weight::from_ref_time(430_842_000) - // Standard Error: 337_000 - .saturating_add(Weight::from_ref_time(73_406_000).saturating_mul(a.into())) - // Standard Error: 292_000 - .saturating_add(Weight::from_ref_time(29_563_000).saturating_mul(b.into())) - // Standard Error: 34_000 - .saturating_add(Weight::from_ref_time(22_069_000).saturating_mul(c.into())) - // Standard Error: 15_000 - .saturating_add(Weight::from_ref_time(474_000).saturating_mul(d.into())) + // Proof Size summary in bytes: + // Measured: `4010 + a * (400 ±0) + b * (112 ±0) + c * (56 ±0)` + // Estimated: `20891 + b * (2581 ±0) + a * (5233 ±0) + c * (2855 ±0)` + // Minimum execution time: 547_000 nanoseconds. + Weight::from_ref_time(191_668_888) + .saturating_add(Weight::from_proof_size(20891)) + // Standard Error: 1_264_989 + .saturating_add(Weight::from_ref_time(21_083_333).saturating_mul(a.into())) + // Standard Error: 1_138_490 + .saturating_add(Weight::from_ref_time(7_375_000).saturating_mul(b.into())) + // Standard Error: 227_698 + .saturating_add(Weight::from_ref_time(6_345_000).saturating_mul(c.into())) + // Standard Error: 114_999 + .saturating_add(Weight::from_ref_time(527_777).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(a.into()))) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(b.into()))) @@ -306,244 +446,459 @@ impl WeightInfo for SubstrateWeight { .saturating_add(T::DbWeight::get().writes((2_u64).saturating_mul(a.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(b.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(c.into()))) + .saturating_add(Weight::from_proof_size(2581).saturating_mul(b.into())) + .saturating_add(Weight::from_proof_size(5233).saturating_mul(a.into())) + .saturating_add(Weight::from_proof_size(2855).saturating_mul(c.into())) } // Storage: Content ChannelById (r:1 w:0) + // Proof: Content ChannelById (max_values: None, max_size: Some(889), added: 3364, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance3WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Content CuratorGroupById (r:1 w:0) + // Proof: Content CuratorGroupById (max_values: None, max_size: Some(1127), added: 3602, mode: MaxEncodedLen) + /// The range of component `a` is `[1, 100]`. fn set_channel_visibility_as_moderator(a: u32, ) -> Weight { - Weight::from_ref_time(342_786_000) - // Standard Error: 6_000 - .saturating_add(Weight::from_ref_time(771_000).saturating_mul(a.into())) + // Proof Size summary in bytes: + // Measured: `3135` + // Estimated: `9616` + // Minimum execution time: 132_000 nanoseconds. + Weight::from_ref_time(132_434_343) + .saturating_add(Weight::from_proof_size(9616)) + // Standard Error: 91_468 + .saturating_add(Weight::from_ref_time(565_656).saturating_mul(a.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) } // Storage: Content VideoById (r:1 w:1) + // Proof: Content VideoById (max_values: None, max_size: Some(513), added: 2988, mode: MaxEncodedLen) // Storage: Content ChannelById (r:1 w:0) + // Proof: Content ChannelById (max_values: None, max_size: Some(889), added: 3364, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance3WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Content CuratorGroupById (r:1 w:0) + // Proof: Content CuratorGroupById (max_values: None, max_size: Some(1127), added: 3602, mode: MaxEncodedLen) // Storage: Storage Bags (r:1 w:1) + // Proof: Storage Bags (max_values: None, max_size: Some(964), added: 3439, mode: MaxEncodedLen) // Storage: Storage DataObjectStateBloatBondValue (r:1 w:0) - // Storage: Storage DataObjectsById (r:1 w:1) + // Proof: Storage DataObjectStateBloatBondValue (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) + // Storage: Storage DataObjectsById (r:20 w:20) + // Proof: Storage DataObjectsById (max_values: None, max_size: Some(155), added: 2630, mode: MaxEncodedLen) // Storage: Storage DataObjectPerMegabyteFee (r:1 w:0) + // Proof: Storage DataObjectPerMegabyteFee (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) // Storage: Storage StorageBucketById (r:13 w:13) - // Storage: System Account (r:2 w:2) + // Proof: Storage StorageBucketById (max_values: None, max_size: Some(106), added: 2581, mode: MaxEncodedLen) + // Storage: System Account (r:21 w:21) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// The range of component `a` is `[1, 20]`. + /// The range of component `b` is `[3, 13]`. + /// The range of component `c` is `[1, 100]`. fn delete_video_assets_as_moderator(a: u32, b: u32, c: u32, ) -> Weight { - Weight::from_ref_time(413_599_000_u64) - // Standard Error: 79_000 - .saturating_add(Weight::from_ref_time(69_041_000).saturating_mul(a.into())) - // Standard Error: 187_000 - .saturating_add(Weight::from_ref_time(29_597_000).saturating_mul(b.into())) - // Standard Error: 10_000 - .saturating_add(Weight::from_ref_time(738_000).saturating_mul(c.into())) + // Proof Size summary in bytes: + // Measured: `5212 + a * (386 ±0) + b * (112 ±0)` + // Estimated: `19668 + b * (2581 ±0) + a * (5233 ±0)` + // Minimum execution time: 349_000 nanoseconds. + Weight::from_ref_time(172_121_889) + .saturating_add(Weight::from_proof_size(19668)) + // Standard Error: 578_423 + .saturating_add(Weight::from_ref_time(21_039_473).saturating_mul(a.into())) + // Standard Error: 1_099_005 + .saturating_add(Weight::from_ref_time(8_075_000).saturating_mul(b.into())) + // Standard Error: 111_010 + .saturating_add(Weight::from_ref_time(613_636).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(a.into()))) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(b.into()))) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(T::DbWeight::get().writes((2_u64).saturating_mul(a.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(b.into()))) + .saturating_add(Weight::from_proof_size(2581).saturating_mul(b.into())) + .saturating_add(Weight::from_proof_size(5233).saturating_mul(a.into())) } // Storage: Content VideoById (r:1 w:1) + // Proof: Content VideoById (max_values: None, max_size: Some(513), added: 2988, mode: MaxEncodedLen) // Storage: Content ChannelById (r:1 w:1) + // Proof: Content ChannelById (max_values: None, max_size: Some(889), added: 3364, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance3WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Content CuratorGroupById (r:1 w:0) + // Proof: Content CuratorGroupById (max_values: None, max_size: Some(1127), added: 3602, mode: MaxEncodedLen) // Storage: Storage Bags (r:1 w:1) + // Proof: Storage Bags (max_values: None, max_size: Some(964), added: 3439, mode: MaxEncodedLen) // Storage: Storage DataObjectStateBloatBondValue (r:1 w:0) - // Storage: Storage DataObjectsById (r:1 w:1) + // Proof: Storage DataObjectStateBloatBondValue (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) + // Storage: Storage DataObjectsById (r:20 w:20) + // Proof: Storage DataObjectsById (max_values: None, max_size: Some(155), added: 2630, mode: MaxEncodedLen) // Storage: Storage DataObjectPerMegabyteFee (r:1 w:0) + // Proof: Storage DataObjectPerMegabyteFee (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) // Storage: Storage StorageBucketById (r:13 w:13) - // Storage: System Account (r:3 w:3) + // Proof: Storage StorageBucketById (max_values: None, max_size: Some(106), added: 2581, mode: MaxEncodedLen) + // Storage: System Account (r:22 w:22) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// The range of component `a` is `[1, 20]`. + /// The range of component `b` is `[3, 13]`. + /// The range of component `c` is `[1, 100]`. fn delete_video_as_moderator_with_assets(a: u32, b: u32, c: u32, ) -> Weight { - Weight::from_ref_time(505_700_000) - // Standard Error: 77_000 - .saturating_add(Weight::from_ref_time(67_678_000).saturating_mul(a.into())) - // Standard Error: 182_000 - .saturating_add(Weight::from_ref_time(27_205_000).saturating_mul(b.into())) - // Standard Error: 10_000 - .saturating_add(Weight::from_ref_time(703_000).saturating_mul(c.into())) + // Proof Size summary in bytes: + // Measured: `4782 + a * (390 ±0) + b * (112 ±0)` + // Estimated: `22271 + a * (5233 ±0) + b * (2581 ±0)` + // Minimum execution time: 365_000 nanoseconds. + Weight::from_ref_time(203_444_670) + .saturating_add(Weight::from_proof_size(22271)) + // Standard Error: 463_990 + .saturating_add(Weight::from_ref_time(20_513_157).saturating_mul(a.into())) + // Standard Error: 881_582 + .saturating_add(Weight::from_ref_time(8_025_000).saturating_mul(b.into())) + // Standard Error: 89_048 + .saturating_add(Weight::from_ref_time(467_171).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(9_u64)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(a.into()))) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(b.into()))) .saturating_add(T::DbWeight::get().writes(5_u64)) .saturating_add(T::DbWeight::get().writes((2_u64).saturating_mul(a.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(b.into()))) + .saturating_add(Weight::from_proof_size(5233).saturating_mul(a.into())) + .saturating_add(Weight::from_proof_size(2581).saturating_mul(b.into())) } // Storage: Content VideoById (r:1 w:1) + // Proof: Content VideoById (max_values: None, max_size: Some(513), added: 2988, mode: MaxEncodedLen) // Storage: Content ChannelById (r:1 w:1) + // Proof: Content ChannelById (max_values: None, max_size: Some(889), added: 3364, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance3WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Content CuratorGroupById (r:1 w:0) + // Proof: Content CuratorGroupById (max_values: None, max_size: Some(1127), added: 3602, mode: MaxEncodedLen) // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// The range of component `a` is `[1, 100]`. fn delete_video_as_moderator_without_assets(a: u32, ) -> Weight { - Weight::from_ref_time(407_427_000) - // Standard Error: 4_000 - .saturating_add(Weight::from_ref_time(658_000).saturating_mul(a.into())) + // Proof Size summary in bytes: + // Measured: `3099` + // Estimated: `15207` + // Minimum execution time: 160_000 nanoseconds. + Weight::from_ref_time(160_000_000) + .saturating_add(Weight::from_proof_size(15207)) + // Standard Error: 80_965 + .saturating_add(Weight::from_ref_time(500_000).saturating_mul(a.into())) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } // Storage: Content VideoById (r:1 w:0) + // Proof: Content VideoById (max_values: None, max_size: Some(513), added: 2988, mode: MaxEncodedLen) // Storage: Content ChannelById (r:1 w:0) + // Proof: Content ChannelById (max_values: None, max_size: Some(889), added: 3364, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance3WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Content CuratorGroupById (r:1 w:0) + // Proof: Content CuratorGroupById (max_values: None, max_size: Some(1127), added: 3602, mode: MaxEncodedLen) + /// The range of component `a` is `[1, 100]`. fn set_video_visibility_as_moderator(a: u32, ) -> Weight { - Weight::from_ref_time(319_990_000) - // Standard Error: 4_000 - .saturating_add(Weight::from_ref_time(743_000).saturating_mul(a.into())) + // Proof Size summary in bytes: + // Measured: `3087` + // Estimated: `12604` + // Minimum execution time: 128_000 nanoseconds. + Weight::from_ref_time(127_449_494) + .saturating_add(Weight::from_proof_size(12604)) + // Standard Error: 75_757 + .saturating_add(Weight::from_ref_time(550_505).saturating_mul(a.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) } // Storage: Instance3WorkingGroup CurrentLead (r:1 w:0) + // Proof: Instance3WorkingGroup CurrentLead (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance3WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Content NextCuratorGroupId (r:1 w:1) + // Proof: Content NextCuratorGroupId (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Content CuratorGroupById (r:0 w:1) + // Proof: Content CuratorGroupById (max_values: None, max_size: Some(1127), added: 3602, mode: MaxEncodedLen) + /// The range of component `a` is `[0, 25]`. fn create_curator_group(a: u32, ) -> Weight { - Weight::from_ref_time(63_682_000) - // Standard Error: 12_000 - .saturating_add(Weight::from_ref_time(4_949_000).saturating_mul(a.into())) + // Proof Size summary in bytes: + // Measured: `924` + // Estimated: `3656` + // Minimum execution time: 23_000 nanoseconds. + Weight::from_ref_time(24_000_000) + .saturating_add(Weight::from_proof_size(3656)) + // Standard Error: 40_000 + .saturating_add(Weight::from_ref_time(2_000_000).saturating_mul(a.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } // Storage: Instance3WorkingGroup CurrentLead (r:1 w:0) + // Proof: Instance3WorkingGroup CurrentLead (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance3WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Content CuratorGroupById (r:1 w:1) + // Proof: Content CuratorGroupById (max_values: None, max_size: Some(1127), added: 3602, mode: MaxEncodedLen) + /// The range of component `a` is `[0, 25]`. fn update_curator_group_permissions(a: u32, ) -> Weight { - Weight::from_ref_time(167_913_000) - // Standard Error: 19_000 - .saturating_add(Weight::from_ref_time(5_370_000).saturating_mul(a.into())) + // Proof Size summary in bytes: + // Measured: `2178` + // Estimated: `6755` + // Minimum execution time: 67_000 nanoseconds. + Weight::from_ref_time(67_500_000) + .saturating_add(Weight::from_proof_size(6755)) + // Standard Error: 121_655 + .saturating_add(Weight::from_ref_time(2_620_000).saturating_mul(a.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Instance3WorkingGroup CurrentLead (r:1 w:0) + // Proof: Instance3WorkingGroup CurrentLead (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance3WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Content CuratorGroupById (r:1 w:1) + // Proof: Content CuratorGroupById (max_values: None, max_size: Some(1127), added: 3602, mode: MaxEncodedLen) fn set_curator_group_status() -> Weight { - Weight::from_ref_time(172_570_000) + // Proof Size summary in bytes: + // Measured: `2178` + // Estimated: `6755` + // Minimum execution time: 78_000 nanoseconds. + Weight::from_ref_time(82_000_000) + .saturating_add(Weight::from_proof_size(6755)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Instance3WorkingGroup CurrentLead (r:1 w:0) + // Proof: Instance3WorkingGroup CurrentLead (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup WorkerById (r:2 w:0) + // Proof: Instance3WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Content CuratorGroupById (r:1 w:1) + // Proof: Content CuratorGroupById (max_values: None, max_size: Some(1127), added: 3602, mode: MaxEncodedLen) fn add_curator_to_group() -> Weight { - Weight::from_ref_time(278_010_000) + // Proof Size summary in bytes: + // Measured: `2309` + // Estimated: `9405` + // Minimum execution time: 118_000 nanoseconds. + Weight::from_ref_time(120_000_000) + .saturating_add(Weight::from_proof_size(9405)) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Instance3WorkingGroup CurrentLead (r:1 w:0) + // Proof: Instance3WorkingGroup CurrentLead (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance3WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Content CuratorGroupById (r:1 w:1) + // Proof: Content CuratorGroupById (max_values: None, max_size: Some(1127), added: 3602, mode: MaxEncodedLen) fn remove_curator_from_group() -> Weight { - Weight::from_ref_time(268_000_000) + // Proof Size summary in bytes: + // Measured: `2178` + // Estimated: `6755` + // Minimum execution time: 115_000 nanoseconds. + Weight::from_ref_time(116_000_000) + .saturating_add(Weight::from_proof_size(6755)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Content ChannelById (r:1 w:1) + // Proof: Content ChannelById (max_values: None, max_size: Some(889), added: 3364, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance3WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Content CuratorGroupById (r:1 w:0) + // Proof: Content CuratorGroupById (max_values: None, max_size: Some(1127), added: 3602, mode: MaxEncodedLen) // Storage: Storage Bags (r:1 w:1) + // Proof: Storage Bags (max_values: None, max_size: Some(964), added: 3439, mode: MaxEncodedLen) // Storage: Content NextVideoId (r:1 w:1) + // Proof: Content NextVideoId (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Content VideoStateBloatBondValue (r:1 w:0) + // Proof: Content VideoStateBloatBondValue (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) // Storage: Storage DataObjectStateBloatBondValue (r:1 w:0) + // Proof: Storage DataObjectStateBloatBondValue (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) // Storage: Storage DataObjectPerMegabyteFee (r:1 w:0) + // Proof: Storage DataObjectPerMegabyteFee (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) // Storage: System Account (r:3 w:3) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) // Storage: Storage UploadingBlocked (r:1 w:0) + // Proof: Storage UploadingBlocked (max_values: Some(1), max_size: Some(1), added: 496, mode: MaxEncodedLen) // Storage: Storage Blacklist (r:1 w:0) + // Proof: Storage Blacklist (max_values: None, max_size: Some(63), added: 2538, mode: MaxEncodedLen) // Storage: Storage StorageBucketById (r:13 w:13) + // Proof: Storage StorageBucketById (max_values: None, max_size: Some(106), added: 2581, mode: MaxEncodedLen) // Storage: Storage NextDataObjectId (r:1 w:1) - // Storage: Storage DataObjectsById (r:0 w:1) + // Proof: Storage NextDataObjectId (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) + // Storage: Storage DataObjectsById (r:0 w:20) + // Proof: Storage DataObjectsById (max_values: None, max_size: Some(155), added: 2630, mode: MaxEncodedLen) // Storage: Content VideoById (r:0 w:1) + // Proof: Content VideoById (max_values: None, max_size: Some(513), added: 2988, mode: MaxEncodedLen) + /// The range of component `a` is `[1, 20]`. + /// The range of component `b` is `[3, 13]`. + /// The range of component `c` is `[1, 100]`. fn create_video_without_nft(a: u32, b: u32, c: u32, ) -> Weight { - Weight::from_ref_time(689_869_000) - // Standard Error: 49_000 - .saturating_add(Weight::from_ref_time(17_798_000).saturating_mul(a.into())) - // Standard Error: 115_000 - .saturating_add(Weight::from_ref_time(27_864_000).saturating_mul(b.into())) - // Standard Error: 6_000 - .saturating_add(Weight::from_ref_time(732_000).saturating_mul(c.into())) + // Proof Size summary in bytes: + // Measured: `4820 + b * (112 ±0)` + // Estimated: `26437 + b * (2581 ±0)` + // Minimum execution time: 408_000 nanoseconds. + Weight::from_ref_time(252_855_901) + .saturating_add(Weight::from_proof_size(26437)) + // Standard Error: 321_763 + .saturating_add(Weight::from_ref_time(6_078_947).saturating_mul(a.into())) + // Standard Error: 611_350 + .saturating_add(Weight::from_ref_time(7_850_000).saturating_mul(b.into())) + // Standard Error: 61_752 + .saturating_add(Weight::from_ref_time(515_151).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(14_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(b.into()))) .saturating_add(T::DbWeight::get().writes(8_u64)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(a.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(b.into()))) + .saturating_add(Weight::from_proof_size(2581).saturating_mul(b.into())) } // Storage: Content ChannelById (r:1 w:1) + // Proof: Content ChannelById (max_values: None, max_size: Some(889), added: 3364, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance3WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Content CuratorGroupById (r:1 w:0) + // Proof: Content CuratorGroupById (max_values: None, max_size: Some(1127), added: 3602, mode: MaxEncodedLen) // Storage: Storage Bags (r:1 w:1) + // Proof: Storage Bags (max_values: None, max_size: Some(964), added: 3439, mode: MaxEncodedLen) // Storage: Content NextVideoId (r:1 w:1) + // Proof: Content NextVideoId (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Content MaxAuctionDuration (r:1 w:0) + // Proof: Content MaxAuctionDuration (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Content MinAuctionDuration (r:1 w:0) + // Proof: Content MinAuctionDuration (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Content MaxAuctionExtensionPeriod (r:1 w:0) + // Proof: Content MaxAuctionExtensionPeriod (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Content MinAuctionExtensionPeriod (r:1 w:0) + // Proof: Content MinAuctionExtensionPeriod (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Content MaxBidStep (r:1 w:0) + // Proof: Content MaxBidStep (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) // Storage: Content MinBidStep (r:1 w:0) + // Proof: Content MinBidStep (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) // Storage: Content AuctionStartsAtMaxDelta (r:1 w:0) + // Proof: Content AuctionStartsAtMaxDelta (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Content MinStartingPrice (r:1 w:0) + // Proof: Content MinStartingPrice (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) // Storage: Content MaxStartingPrice (r:1 w:0) + // Proof: Content MaxStartingPrice (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) // Storage: Membership MembershipById (r:21 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: Content MaxCreatorRoyalty (r:1 w:0) + // Proof: Content MaxCreatorRoyalty (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Content MinCreatorRoyalty (r:1 w:0) + // Proof: Content MinCreatorRoyalty (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Content VideoStateBloatBondValue (r:1 w:0) + // Proof: Content VideoStateBloatBondValue (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) // Storage: Storage DataObjectStateBloatBondValue (r:1 w:0) + // Proof: Storage DataObjectStateBloatBondValue (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) // Storage: Storage DataObjectPerMegabyteFee (r:1 w:0) + // Proof: Storage DataObjectPerMegabyteFee (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) // Storage: System Account (r:3 w:3) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) // Storage: Content NftLimitsEnabled (r:1 w:0) + // Proof: Content NftLimitsEnabled (max_values: Some(1), max_size: Some(1), added: 496, mode: MaxEncodedLen) // Storage: Content GlobalDailyNftLimit (r:1 w:0) + // Proof: Content GlobalDailyNftLimit (max_values: Some(1), max_size: Some(12), added: 507, mode: MaxEncodedLen) // Storage: Content GlobalDailyNftCounter (r:1 w:1) + // Proof: Content GlobalDailyNftCounter (max_values: Some(1), max_size: Some(12), added: 507, mode: MaxEncodedLen) // Storage: Content GlobalWeeklyNftLimit (r:1 w:0) + // Proof: Content GlobalWeeklyNftLimit (max_values: Some(1), max_size: Some(12), added: 507, mode: MaxEncodedLen) // Storage: Content GlobalWeeklyNftCounter (r:1 w:1) + // Proof: Content GlobalWeeklyNftCounter (max_values: Some(1), max_size: Some(12), added: 507, mode: MaxEncodedLen) // Storage: Storage UploadingBlocked (r:1 w:0) + // Proof: Storage UploadingBlocked (max_values: Some(1), max_size: Some(1), added: 496, mode: MaxEncodedLen) // Storage: Storage Blacklist (r:1 w:0) + // Proof: Storage Blacklist (max_values: None, max_size: Some(63), added: 2538, mode: MaxEncodedLen) // Storage: Storage StorageBucketById (r:13 w:13) + // Proof: Storage StorageBucketById (max_values: None, max_size: Some(106), added: 2581, mode: MaxEncodedLen) // Storage: Storage NextDataObjectId (r:1 w:1) - // Storage: Storage DataObjectsById (r:0 w:1) + // Proof: Storage NextDataObjectId (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) + // Storage: Storage DataObjectsById (r:0 w:20) + // Proof: Storage DataObjectsById (max_values: None, max_size: Some(155), added: 2630, mode: MaxEncodedLen) // Storage: Content VideoById (r:0 w:1) + // Proof: Content VideoById (max_values: None, max_size: Some(513), added: 2988, mode: MaxEncodedLen) + /// The range of component `a` is `[1, 20]`. + /// The range of component `b` is `[3, 13]`. + /// The range of component `c` is `[2, 20]`. + /// The range of component `d` is `[1, 100]`. fn create_video_with_nft(a: u32, b: u32, c: u32, d: u32, ) -> Weight { - Weight::from_ref_time(872_659_000) - // Standard Error: 94_000 - .saturating_add(Weight::from_ref_time(17_826_000).saturating_mul(a.into())) - // Standard Error: 222_000 - .saturating_add(Weight::from_ref_time(27_054_000).saturating_mul(b.into())) - // Standard Error: 101_000 - .saturating_add(Weight::from_ref_time(11_019_000).saturating_mul(c.into())) - // Standard Error: 11_000 - .saturating_add(Weight::from_ref_time(725_000).saturating_mul(d.into())) + // Proof Size summary in bytes: + // Measured: `5809 + b * (112 ±0) + c * (191 ±0)` + // Estimated: `37098 + b * (2581 ±0) + c * (2600 ±0)` + // Minimum execution time: 517_000 nanoseconds. + Weight::from_ref_time(303_416_799) + .saturating_add(Weight::from_proof_size(37098)) + // Standard Error: 366_063 + .saturating_add(Weight::from_ref_time(6_184_210).saturating_mul(a.into())) + // Standard Error: 695_521 + .saturating_add(Weight::from_ref_time(7_500_000).saturating_mul(b.into())) + // Standard Error: 386_400 + .saturating_add(Weight::from_ref_time(3_194_444).saturating_mul(c.into())) + // Standard Error: 70_254 + .saturating_add(Weight::from_ref_time(510_101).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(31_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(b.into()))) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(c.into()))) .saturating_add(T::DbWeight::get().writes(10_u64)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(a.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(b.into()))) + .saturating_add(Weight::from_proof_size(2581).saturating_mul(b.into())) + .saturating_add(Weight::from_proof_size(2600).saturating_mul(c.into())) } // Storage: Content VideoById (r:1 w:0) + // Proof: Content VideoById (max_values: None, max_size: Some(513), added: 2988, mode: MaxEncodedLen) // Storage: Content ChannelById (r:1 w:0) + // Proof: Content ChannelById (max_values: None, max_size: Some(889), added: 3364, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance3WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Content CuratorGroupById (r:1 w:0) + // Proof: Content CuratorGroupById (max_values: None, max_size: Some(1127), added: 3602, mode: MaxEncodedLen) + /// The range of component `a` is `[1, 100]`. fn update_video_without_assets_without_nft(a: u32, ) -> Weight { - Weight::from_ref_time(326_441_000) - // Standard Error: 5_000 - .saturating_add(Weight::from_ref_time(724_000).saturating_mul(a.into())) + // Proof Size summary in bytes: + // Measured: `3087` + // Estimated: `12604` + // Minimum execution time: 131_000 nanoseconds. + Weight::from_ref_time(131_045_454) + .saturating_add(Weight::from_proof_size(12604)) + // Standard Error: 45_734 + .saturating_add(Weight::from_ref_time(454_545).saturating_mul(a.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) } // Storage: Content VideoById (r:1 w:1) + // Proof: Content VideoById (max_values: None, max_size: Some(513), added: 2988, mode: MaxEncodedLen) // Storage: Content ChannelById (r:1 w:0) + // Proof: Content ChannelById (max_values: None, max_size: Some(889), added: 3364, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance3WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Content CuratorGroupById (r:1 w:0) + // Proof: Content CuratorGroupById (max_values: None, max_size: Some(1127), added: 3602, mode: MaxEncodedLen) // Storage: Storage Bags (r:1 w:1) + // Proof: Storage Bags (max_values: None, max_size: Some(964), added: 3439, mode: MaxEncodedLen) // Storage: Storage DataObjectPerMegabyteFee (r:1 w:0) + // Proof: Storage DataObjectPerMegabyteFee (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) // Storage: Storage DataObjectStateBloatBondValue (r:1 w:0) + // Proof: Storage DataObjectStateBloatBondValue (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) // Storage: Storage UploadingBlocked (r:1 w:0) + // Proof: Storage UploadingBlocked (max_values: Some(1), max_size: Some(1), added: 496, mode: MaxEncodedLen) // Storage: Storage Blacklist (r:1 w:0) - // Storage: Storage DataObjectsById (r:20 w:21) + // Proof: Storage Blacklist (max_values: None, max_size: Some(63), added: 2538, mode: MaxEncodedLen) + // Storage: Storage DataObjectsById (r:20 w:40) + // Proof: Storage DataObjectsById (max_values: None, max_size: Some(155), added: 2630, mode: MaxEncodedLen) // Storage: Storage StorageBucketById (r:13 w:13) + // Proof: Storage StorageBucketById (max_values: None, max_size: Some(106), added: 2581, mode: MaxEncodedLen) // Storage: System Account (r:22 w:22) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) // Storage: Storage NextDataObjectId (r:1 w:1) + // Proof: Storage NextDataObjectId (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) + /// The range of component `a` is `[1, 20]`. + /// The range of component `b` is `[1, 20]`. + /// The range of component `c` is `[3, 13]`. + /// The range of component `d` is `[1, 100]`. fn update_video_with_assets_without_nft(a: u32, b: u32, c: u32, d: u32, ) -> Weight { - Weight::from_ref_time(578_286_000) - // Standard Error: 90_000 - .saturating_add(Weight::from_ref_time(17_922_000).saturating_mul(a.into())) - // Standard Error: 90_000 - .saturating_add(Weight::from_ref_time(68_366_000).saturating_mul(b.into())) - // Standard Error: 214_000 - .saturating_add(Weight::from_ref_time(26_273_000).saturating_mul(c.into())) - // Standard Error: 11_000 - .saturating_add(Weight::from_ref_time(801_000).saturating_mul(d.into())) + // Proof Size summary in bytes: + // Measured: `4848 + b * (390 ±0) + c * (112 ±0)` + // Estimated: `25808 + b * (5233 ±0) + c * (2581 ±0)` + // Minimum execution time: 500_000 nanoseconds. + Weight::from_ref_time(219_960_592) + .saturating_add(Weight::from_proof_size(25808)) + // Standard Error: 362_704 + .saturating_add(Weight::from_ref_time(5_776_315).saturating_mul(a.into())) + // Standard Error: 362_704 + .saturating_add(Weight::from_ref_time(20_855_263).saturating_mul(b.into())) + // Standard Error: 689_137 + .saturating_add(Weight::from_ref_time(7_375_000).saturating_mul(c.into())) + // Standard Error: 69_609 + .saturating_add(Weight::from_ref_time(532_828).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(12_u64)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(b.into()))) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(c.into()))) @@ -551,80 +906,151 @@ impl WeightInfo for SubstrateWeight { .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(a.into()))) .saturating_add(T::DbWeight::get().writes((2_u64).saturating_mul(b.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(c.into()))) + .saturating_add(Weight::from_proof_size(5233).saturating_mul(b.into())) + .saturating_add(Weight::from_proof_size(2581).saturating_mul(c.into())) } // Storage: Content VideoById (r:1 w:1) + // Proof: Content VideoById (max_values: None, max_size: Some(513), added: 2988, mode: MaxEncodedLen) // Storage: Content ChannelById (r:1 w:1) + // Proof: Content ChannelById (max_values: None, max_size: Some(889), added: 3364, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance3WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Content CuratorGroupById (r:1 w:0) + // Proof: Content CuratorGroupById (max_values: None, max_size: Some(1127), added: 3602, mode: MaxEncodedLen) // Storage: Content MaxAuctionDuration (r:1 w:0) + // Proof: Content MaxAuctionDuration (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Content MinAuctionDuration (r:1 w:0) + // Proof: Content MinAuctionDuration (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Content MaxAuctionExtensionPeriod (r:1 w:0) + // Proof: Content MaxAuctionExtensionPeriod (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Content MinAuctionExtensionPeriod (r:1 w:0) + // Proof: Content MinAuctionExtensionPeriod (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Content MaxBidStep (r:1 w:0) + // Proof: Content MaxBidStep (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) // Storage: Content MinBidStep (r:1 w:0) + // Proof: Content MinBidStep (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) // Storage: Content AuctionStartsAtMaxDelta (r:1 w:0) + // Proof: Content AuctionStartsAtMaxDelta (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Content MinStartingPrice (r:1 w:0) + // Proof: Content MinStartingPrice (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) // Storage: Content MaxStartingPrice (r:1 w:0) - // Storage: Membership MembershipById (r:3 w:0) + // Proof: Content MaxStartingPrice (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) + // Storage: Membership MembershipById (r:21 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: Content MaxCreatorRoyalty (r:1 w:0) + // Proof: Content MaxCreatorRoyalty (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Content MinCreatorRoyalty (r:1 w:0) + // Proof: Content MinCreatorRoyalty (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Content NftLimitsEnabled (r:1 w:0) + // Proof: Content NftLimitsEnabled (max_values: Some(1), max_size: Some(1), added: 496, mode: MaxEncodedLen) // Storage: Content GlobalDailyNftLimit (r:1 w:0) + // Proof: Content GlobalDailyNftLimit (max_values: Some(1), max_size: Some(12), added: 507, mode: MaxEncodedLen) // Storage: Content GlobalDailyNftCounter (r:1 w:1) + // Proof: Content GlobalDailyNftCounter (max_values: Some(1), max_size: Some(12), added: 507, mode: MaxEncodedLen) // Storage: Content GlobalWeeklyNftLimit (r:1 w:0) + // Proof: Content GlobalWeeklyNftLimit (max_values: Some(1), max_size: Some(12), added: 507, mode: MaxEncodedLen) // Storage: Content GlobalWeeklyNftCounter (r:1 w:1) + // Proof: Content GlobalWeeklyNftCounter (max_values: Some(1), max_size: Some(12), added: 507, mode: MaxEncodedLen) + /// The range of component `a` is `[2, 20]`. + /// The range of component `b` is `[1, 100]`. fn update_video_without_assets_with_nft(a: u32, b: u32, ) -> Weight { - Weight::from_ref_time(554_456_000) - // Standard Error: 59_000 - .saturating_add(Weight::from_ref_time(10_494_000).saturating_mul(a.into())) - // Standard Error: 7_000 - .saturating_add(Weight::from_ref_time(697_000).saturating_mul(b.into())) + // Proof Size summary in bytes: + // Measured: `4294 + a * (202 ±0)` + // Estimated: `23265 + a * (2600 ±0)` + // Minimum execution time: 248_000 nanoseconds. + Weight::from_ref_time(200_358_585) + .saturating_add(Weight::from_proof_size(23265)) + // Standard Error: 340_962 + .saturating_add(Weight::from_ref_time(3_083_333).saturating_mul(a.into())) + // Standard Error: 61_993 + .saturating_add(Weight::from_ref_time(474_747).saturating_mul(b.into())) .saturating_add(T::DbWeight::get().reads(21_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(a.into()))) .saturating_add(T::DbWeight::get().writes(4_u64)) + .saturating_add(Weight::from_proof_size(2600).saturating_mul(a.into())) } // Storage: Content VideoById (r:1 w:1) + // Proof: Content VideoById (max_values: None, max_size: Some(513), added: 2988, mode: MaxEncodedLen) // Storage: Content ChannelById (r:1 w:1) + // Proof: Content ChannelById (max_values: None, max_size: Some(889), added: 3364, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance3WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Content CuratorGroupById (r:1 w:0) + // Proof: Content CuratorGroupById (max_values: None, max_size: Some(1127), added: 3602, mode: MaxEncodedLen) // Storage: Storage Bags (r:1 w:1) + // Proof: Storage Bags (max_values: None, max_size: Some(964), added: 3439, mode: MaxEncodedLen) // Storage: Content MaxAuctionDuration (r:1 w:0) + // Proof: Content MaxAuctionDuration (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Content MinAuctionDuration (r:1 w:0) + // Proof: Content MinAuctionDuration (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Content MaxAuctionExtensionPeriod (r:1 w:0) + // Proof: Content MaxAuctionExtensionPeriod (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Content MinAuctionExtensionPeriod (r:1 w:0) + // Proof: Content MinAuctionExtensionPeriod (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Content MaxBidStep (r:1 w:0) + // Proof: Content MaxBidStep (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) // Storage: Content MinBidStep (r:1 w:0) + // Proof: Content MinBidStep (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) // Storage: Content AuctionStartsAtMaxDelta (r:1 w:0) + // Proof: Content AuctionStartsAtMaxDelta (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Content MinStartingPrice (r:1 w:0) + // Proof: Content MinStartingPrice (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) // Storage: Content MaxStartingPrice (r:1 w:0) + // Proof: Content MaxStartingPrice (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) // Storage: Membership MembershipById (r:21 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: Content MaxCreatorRoyalty (r:1 w:0) + // Proof: Content MaxCreatorRoyalty (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Content MinCreatorRoyalty (r:1 w:0) + // Proof: Content MinCreatorRoyalty (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Content NftLimitsEnabled (r:1 w:0) + // Proof: Content NftLimitsEnabled (max_values: Some(1), max_size: Some(1), added: 496, mode: MaxEncodedLen) // Storage: Content GlobalDailyNftLimit (r:1 w:0) + // Proof: Content GlobalDailyNftLimit (max_values: Some(1), max_size: Some(12), added: 507, mode: MaxEncodedLen) // Storage: Content GlobalDailyNftCounter (r:1 w:1) + // Proof: Content GlobalDailyNftCounter (max_values: Some(1), max_size: Some(12), added: 507, mode: MaxEncodedLen) // Storage: Content GlobalWeeklyNftLimit (r:1 w:0) + // Proof: Content GlobalWeeklyNftLimit (max_values: Some(1), max_size: Some(12), added: 507, mode: MaxEncodedLen) // Storage: Content GlobalWeeklyNftCounter (r:1 w:1) + // Proof: Content GlobalWeeklyNftCounter (max_values: Some(1), max_size: Some(12), added: 507, mode: MaxEncodedLen) // Storage: Storage DataObjectPerMegabyteFee (r:1 w:0) + // Proof: Storage DataObjectPerMegabyteFee (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) // Storage: Storage DataObjectStateBloatBondValue (r:1 w:0) + // Proof: Storage DataObjectStateBloatBondValue (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) // Storage: Storage UploadingBlocked (r:1 w:0) + // Proof: Storage UploadingBlocked (max_values: Some(1), max_size: Some(1), added: 496, mode: MaxEncodedLen) // Storage: Storage Blacklist (r:1 w:0) - // Storage: Storage DataObjectsById (r:20 w:21) + // Proof: Storage Blacklist (max_values: None, max_size: Some(63), added: 2538, mode: MaxEncodedLen) + // Storage: Storage DataObjectsById (r:20 w:40) + // Proof: Storage DataObjectsById (max_values: None, max_size: Some(155), added: 2630, mode: MaxEncodedLen) // Storage: Storage StorageBucketById (r:13 w:13) + // Proof: Storage StorageBucketById (max_values: None, max_size: Some(106), added: 2581, mode: MaxEncodedLen) // Storage: System Account (r:22 w:22) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) // Storage: Storage NextDataObjectId (r:1 w:1) + // Proof: Storage NextDataObjectId (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) + /// The range of component `a` is `[1, 20]`. + /// The range of component `b` is `[1, 20]`. + /// The range of component `c` is `[3, 13]`. + /// The range of component `d` is `[2, 20]`. + /// The range of component `e` is `[1, 100]`. fn update_video_with_assets_with_nft(a: u32, b: u32, c: u32, d: u32, e: u32, ) -> Weight { - Weight::from_ref_time(811_555_000) - // Standard Error: 93_000 - .saturating_add(Weight::from_ref_time(18_513_000).saturating_mul(a.into())) - // Standard Error: 93_000 - .saturating_add(Weight::from_ref_time(68_356_000).saturating_mul(b.into())) - // Standard Error: 223_000 - .saturating_add(Weight::from_ref_time(24_790_000).saturating_mul(c.into())) - // Standard Error: 100_000 - .saturating_add(Weight::from_ref_time(10_167_000).saturating_mul(d.into())) - // Standard Error: 11_000 - .saturating_add(Weight::from_ref_time(870_000).saturating_mul(e.into())) + // Proof Size summary in bytes: + // Measured: `5261 + b * (433 ±0) + c * (112 ±0) + d * (217 ±0)` + // Estimated: `36469 + c * (2581 ±0) + d * (2600 ±0) + b * (5233 ±0)` + // Minimum execution time: 636_000 nanoseconds. + Weight::from_ref_time(268_761_137) + .saturating_add(Weight::from_proof_size(36469)) + // Standard Error: 316_519 + .saturating_add(Weight::from_ref_time(6_342_105).saturating_mul(a.into())) + // Standard Error: 316_519 + .saturating_add(Weight::from_ref_time(20_894_736).saturating_mul(b.into())) + // Standard Error: 601_387 + .saturating_add(Weight::from_ref_time(7_600_000).saturating_mul(c.into())) + // Standard Error: 334_104 + .saturating_add(Weight::from_ref_time(3_305_555).saturating_mul(d.into())) + // Standard Error: 60_746 + .saturating_add(Weight::from_ref_time(590_909).saturating_mul(e.into())) .saturating_add(T::DbWeight::get().reads(29_u64)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(b.into()))) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(c.into()))) @@ -633,603 +1059,1188 @@ impl WeightInfo for SubstrateWeight { .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(a.into()))) .saturating_add(T::DbWeight::get().writes((2_u64).saturating_mul(b.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(c.into()))) + .saturating_add(Weight::from_proof_size(2581).saturating_mul(c.into())) + .saturating_add(Weight::from_proof_size(2600).saturating_mul(d.into())) + .saturating_add(Weight::from_proof_size(5233).saturating_mul(b.into())) } // Storage: Content VideoById (r:1 w:1) + // Proof: Content VideoById (max_values: None, max_size: Some(513), added: 2988, mode: MaxEncodedLen) // Storage: Content ChannelById (r:1 w:1) + // Proof: Content ChannelById (max_values: None, max_size: Some(889), added: 3364, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance3WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Content CuratorGroupById (r:1 w:0) + // Proof: Content CuratorGroupById (max_values: None, max_size: Some(1127), added: 3602, mode: MaxEncodedLen) // Storage: System Account (r:2 w:2) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn delete_video_without_assets() -> Weight { - Weight::from_ref_time(429_170_000) + // Proof Size summary in bytes: + // Measured: `3371` + // Estimated: `17810` + // Minimum execution time: 167_000 nanoseconds. + Weight::from_ref_time(167_000_000) + .saturating_add(Weight::from_proof_size(17810)) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } // Storage: Content VideoById (r:1 w:1) + // Proof: Content VideoById (max_values: None, max_size: Some(513), added: 2988, mode: MaxEncodedLen) // Storage: Content ChannelById (r:1 w:1) + // Proof: Content ChannelById (max_values: None, max_size: Some(889), added: 3364, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance3WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Content CuratorGroupById (r:1 w:0) + // Proof: Content CuratorGroupById (max_values: None, max_size: Some(1127), added: 3602, mode: MaxEncodedLen) // Storage: Storage Bags (r:1 w:1) + // Proof: Storage Bags (max_values: None, max_size: Some(964), added: 3439, mode: MaxEncodedLen) // Storage: Storage DataObjectStateBloatBondValue (r:1 w:0) - // Storage: Storage DataObjectsById (r:1 w:1) + // Proof: Storage DataObjectStateBloatBondValue (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) + // Storage: Storage DataObjectsById (r:20 w:20) + // Proof: Storage DataObjectsById (max_values: None, max_size: Some(155), added: 2630, mode: MaxEncodedLen) // Storage: Storage DataObjectPerMegabyteFee (r:1 w:0) + // Proof: Storage DataObjectPerMegabyteFee (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) // Storage: Storage StorageBucketById (r:13 w:13) - // Storage: System Account (r:4 w:4) + // Proof: Storage StorageBucketById (max_values: None, max_size: Some(106), added: 2581, mode: MaxEncodedLen) + // Storage: System Account (r:23 w:23) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// The range of component `a` is `[1, 20]`. + /// The range of component `b` is `[3, 13]`. fn delete_video_with_assets(a: u32, b: u32, ) -> Weight { - Weight::from_ref_time(519_265_000) - // Standard Error: 78_000 - .saturating_add(Weight::from_ref_time(68_055_000).saturating_mul(a.into())) - // Standard Error: 166_000 - .saturating_add(Weight::from_ref_time(27_069_000).saturating_mul(b.into())) + // Proof Size summary in bytes: + // Measured: `5054 + a * (390 ±0) + b * (112 ±0)` + // Estimated: `24874 + b * (2581 ±0) + a * (5233 ±0)` + // Minimum execution time: 328_000 nanoseconds. + Weight::from_ref_time(213_697_368) + .saturating_add(Weight::from_proof_size(24874)) + // Standard Error: 199_259 + .saturating_add(Weight::from_ref_time(20_552_631).saturating_mul(a.into())) + // Standard Error: 378_593 + .saturating_add(Weight::from_ref_time(7_250_000).saturating_mul(b.into())) .saturating_add(T::DbWeight::get().reads(10_u64)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(a.into()))) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(b.into()))) .saturating_add(T::DbWeight::get().writes(6_u64)) .saturating_add(T::DbWeight::get().writes((2_u64).saturating_mul(a.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(b.into()))) + .saturating_add(Weight::from_proof_size(2581).saturating_mul(b.into())) + .saturating_add(Weight::from_proof_size(5233).saturating_mul(a.into())) } // Storage: Content ChannelById (r:1 w:1) + // Proof: Content ChannelById (max_values: None, max_size: Some(889), added: 3364, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance3WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Content CuratorGroupById (r:1 w:0) - // Storage: Membership MembershipById (r:1 w:0) + // Proof: Content CuratorGroupById (max_values: None, max_size: Some(1127), added: 3602, mode: MaxEncodedLen) + // Storage: Membership MembershipById (r:11 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: Content NextTransferId (r:1 w:1) + // Proof: Content NextTransferId (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) + /// The range of component `a` is `[0, 10]`. fn initialize_channel_transfer(a: u32, ) -> Weight { - Weight::from_ref_time(380_990_000) - // Standard Error: 163_000 - .saturating_add(Weight::from_ref_time(19_090_000).saturating_mul(a.into())) + // Proof Size summary in bytes: + // Measured: `3629 + a * (196 ±0)` + // Estimated: `12719 + a * (2600 ±0)` + // Minimum execution time: 153_000 nanoseconds. + Weight::from_ref_time(153_000_000) + .saturating_add(Weight::from_proof_size(12719)) + // Standard Error: 100_000 + .saturating_add(Weight::from_ref_time(7_400_000).saturating_mul(a.into())) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(a.into()))) .saturating_add(T::DbWeight::get().writes(2_u64)) + .saturating_add(Weight::from_proof_size(2600).saturating_mul(a.into())) } // Storage: Content ChannelById (r:1 w:1) + // Proof: Content ChannelById (max_values: None, max_size: Some(889), added: 3364, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance3WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Content CuratorGroupById (r:1 w:0) + // Proof: Content CuratorGroupById (max_values: None, max_size: Some(1127), added: 3602, mode: MaxEncodedLen) fn cancel_channel_transfer() -> Weight { - Weight::from_ref_time(407_910_000) + // Proof Size summary in bytes: + // Measured: `3135` + // Estimated: `9616` + // Minimum execution time: 165_000 nanoseconds. + Weight::from_ref_time(166_000_000) + .saturating_add(Weight::from_proof_size(9616)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Content ChannelById (r:1 w:1) + // Proof: Content ChannelById (max_values: None, max_size: Some(889), added: 3364, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup CurrentLead (r:1 w:0) + // Proof: Instance3WorkingGroup CurrentLead (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance3WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup Budget (r:1 w:0) + // Proof: Instance3WorkingGroup Budget (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) + /// The range of component `a` is `[0, 10]`. fn accept_channel_transfer_curator_to_curator(a: u32, ) -> Weight { - Weight::from_ref_time(166_319_000) - // Standard Error: 122_000 - .saturating_add(Weight::from_ref_time(12_662_000).saturating_mul(a.into())) + // Proof Size summary in bytes: + // Measured: `1800 + a * (30 ±0)` + // Estimated: `7028` + // Minimum execution time: 60_000 nanoseconds. + Weight::from_ref_time(60_500_000) + .saturating_add(Weight::from_proof_size(7028)) + // Standard Error: 111_803 + .saturating_add(Weight::from_ref_time(6_550_000).saturating_mul(a.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Content ChannelById (r:1 w:1) + // Proof: Content ChannelById (max_values: None, max_size: Some(889), added: 3364, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup CurrentLead (r:1 w:0) + // Proof: Instance3WorkingGroup CurrentLead (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance3WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup Budget (r:1 w:1) + // Proof: Instance3WorkingGroup Budget (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) // Storage: Membership MembershipById (r:1 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// The range of component `a` is `[0, 10]`. fn accept_channel_transfer_member_to_curator(a: u32, ) -> Weight { - Weight::from_ref_time(219_045_000) - // Standard Error: 83_000 - .saturating_add(Weight::from_ref_time(13_216_000).saturating_mul(a.into())) + // Proof Size summary in bytes: + // Measured: `2862 + a * (33 ±0)` + // Estimated: `12231` + // Minimum execution time: 80_000 nanoseconds. + Weight::from_ref_time(80_500_000) + .saturating_add(Weight::from_proof_size(12231)) + // Standard Error: 70_710 + .saturating_add(Weight::from_ref_time(6_600_000).saturating_mul(a.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } // Storage: Content ChannelById (r:1 w:1) + // Proof: Content ChannelById (max_values: None, max_size: Some(889), added: 3364, mode: MaxEncodedLen) // Storage: Membership MembershipById (r:2 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: System Account (r:2 w:2) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// The range of component `a` is `[0, 10]`. fn accept_channel_transfer_member_to_member(a: u32, ) -> Weight { - Weight::from_ref_time(229_376_000) - // Standard Error: 135_000 - .saturating_add(Weight::from_ref_time(14_048_000).saturating_mul(a.into())) + // Proof Size summary in bytes: + // Measured: `2422 + a * (53 ±0)` + // Estimated: `13770` + // Minimum execution time: 81_000 nanoseconds. + Weight::from_ref_time(81_500_000) + .saturating_add(Weight::from_proof_size(13770)) + // Standard Error: 50_000 + .saturating_add(Weight::from_ref_time(6_550_000).saturating_mul(a.into())) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } // Storage: Content ChannelById (r:1 w:1) + // Proof: Content ChannelById (max_values: None, max_size: Some(889), added: 3364, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance3WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Content CuratorGroupById (r:1 w:0) + // Proof: Content CuratorGroupById (max_values: None, max_size: Some(1127), added: 3602, mode: MaxEncodedLen) // Storage: Token NextTokenId (r:1 w:1) + // Proof: Token NextTokenId (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Token BloatBond (r:1 w:0) + // Proof: Token BloatBond (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) // Storage: Token SymbolsUsed (r:1 w:1) - // Storage: Membership MembershipById (r:1 w:0) + // Proof: Token SymbolsUsed (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) + // Storage: Membership MembershipById (r:1024 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: System Account (r:2 w:2) - // Storage: Token AccountInfoByTokenAndMember (r:0 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + // Storage: Token AccountInfoByTokenAndMember (r:0 w:1024) + // Proof: Token AccountInfoByTokenAndMember (max_values: None, max_size: Some(489), added: 2964, mode: MaxEncodedLen) // Storage: Token TokenInfoById (r:0 w:1) + // Proof: Token TokenInfoById (max_values: None, max_size: Some(339), added: 2814, mode: MaxEncodedLen) + /// The range of component `a` is `[1, 1024]`. fn issue_creator_token(a: u32, ) -> Weight { - Weight::from_ref_time(181_375_000) - // Standard Error: 27_000 - .saturating_add(Weight::from_ref_time(27_453_000).saturating_mul(a.into())) + // Proof Size summary in bytes: + // Measured: `4114 + a * (166 ±0)` + // Estimated: `18359 + a * (2600 ±0)` + // Minimum execution time: 205_000 nanoseconds. + Weight::from_ref_time(197_575_268) + .saturating_add(Weight::from_proof_size(18359)) + // Standard Error: 26_899 + .saturating_add(Weight::from_ref_time(8_424_731).saturating_mul(a.into())) .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(a.into()))) .saturating_add(T::DbWeight::get().writes(6_u64)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(a.into()))) + .saturating_add(Weight::from_proof_size(2600).saturating_mul(a.into())) } // Storage: Content ChannelById (r:1 w:0) + // Proof: Content ChannelById (max_values: None, max_size: Some(889), added: 3364, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance3WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Content CuratorGroupById (r:1 w:0) + // Proof: Content CuratorGroupById (max_values: None, max_size: Some(1127), added: 3602, mode: MaxEncodedLen) // Storage: Token TokenInfoById (r:1 w:1) - // Storage: Token AccountInfoByTokenAndMember (r:2 w:2) - // Storage: Membership MembershipById (r:1 w:0) + // Proof: Token TokenInfoById (max_values: None, max_size: Some(339), added: 2814, mode: MaxEncodedLen) + // Storage: Token AccountInfoByTokenAndMember (r:1025 w:1025) + // Proof: Token AccountInfoByTokenAndMember (max_values: None, max_size: Some(489), added: 2964, mode: MaxEncodedLen) + // Storage: Membership MembershipById (r:1024 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: Token BloatBond (r:1 w:0) + // Proof: Token BloatBond (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) // Storage: System Account (r:2 w:2) - fn creator_token_issuer_transfer(a: u32, _b: u32, ) -> Weight { - Weight::from_ref_time(104_522_000) - // Standard Error: 25_000 - .saturating_add(Weight::from_ref_time(38_487_000).saturating_mul(a.into())) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// The range of component `a` is `[1, 1024]`. + /// The range of component `b` is `[1, 100]`. + fn creator_token_issuer_transfer(a: u32, b: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `4858 + a * (166 ±0)` + // Estimated: `21111 + a * (5564 ±0)` + // Minimum execution time: 236_000 nanoseconds. + Weight::from_ref_time(155_946_236) + .saturating_add(Weight::from_proof_size(21111)) + // Standard Error: 18_383 + .saturating_add(Weight::from_ref_time(10_250_733).saturating_mul(a.into())) + // Standard Error: 189_959 + .saturating_add(Weight::from_ref_time(803_030).saturating_mul(b.into())) .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(a.into()))) .saturating_add(T::DbWeight::get().writes(4_u64)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(a.into()))) + .saturating_add(Weight::from_proof_size(5564).saturating_mul(a.into())) } // Storage: Content ChannelById (r:1 w:0) + // Proof: Content ChannelById (max_values: None, max_size: Some(889), added: 3364, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance3WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Content CuratorGroupById (r:1 w:0) + // Proof: Content CuratorGroupById (max_values: None, max_size: Some(1127), added: 3602, mode: MaxEncodedLen) // Storage: Token TokenInfoById (r:1 w:1) + // Proof: Token TokenInfoById (max_values: None, max_size: Some(339), added: 2814, mode: MaxEncodedLen) fn make_creator_token_permissionless() -> Weight { - Weight::from_ref_time(335_571_000) + // Proof Size summary in bytes: + // Measured: `3245` + // Estimated: `12430` + // Minimum execution time: 134_000 nanoseconds. + Weight::from_ref_time(135_000_000) + .saturating_add(Weight::from_proof_size(12430)) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Content ChannelById (r:1 w:1) + // Proof: Content ChannelById (max_values: None, max_size: Some(889), added: 3364, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance3WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Content CuratorGroupById (r:1 w:0) + // Proof: Content CuratorGroupById (max_values: None, max_size: Some(1127), added: 3602, mode: MaxEncodedLen) // Storage: Token TokenInfoById (r:1 w:1) + // Proof: Token TokenInfoById (max_values: None, max_size: Some(339), added: 2814, mode: MaxEncodedLen) // Storage: Token SymbolsUsed (r:0 w:1) + // Proof: Token SymbolsUsed (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) fn deissue_creator_token() -> Weight { - Weight::from_ref_time(390_060_000) + // Proof Size summary in bytes: + // Measured: `3212` + // Estimated: `12430` + // Minimum execution time: 156_000 nanoseconds. + Weight::from_ref_time(157_000_000) + .saturating_add(Weight::from_proof_size(12430)) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } // Storage: Content ChannelById (r:1 w:0) + // Proof: Content ChannelById (max_values: None, max_size: Some(889), added: 3364, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance3WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Content CuratorGroupById (r:1 w:0) + // Proof: Content CuratorGroupById (max_values: None, max_size: Some(1127), added: 3602, mode: MaxEncodedLen) // Storage: Token TokenInfoById (r:1 w:1) + // Proof: Token TokenInfoById (max_values: None, max_size: Some(339), added: 2814, mode: MaxEncodedLen) // Storage: Token MinSaleDuration (r:1 w:0) + // Proof: Token MinSaleDuration (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Token AccountInfoByTokenAndMember (r:1 w:1) + // Proof: Token AccountInfoByTokenAndMember (max_values: None, max_size: Some(489), added: 2964, mode: MaxEncodedLen) + /// The range of component `a` is `[1, 100]`. fn init_creator_token_sale(a: u32, ) -> Weight { - Weight::from_ref_time(387_903_000) - // Standard Error: 3_000 - .saturating_add(Weight::from_ref_time(807_000).saturating_mul(a.into())) + // Proof Size summary in bytes: + // Measured: `3684` + // Estimated: `15893` + // Minimum execution time: 150_000 nanoseconds. + Weight::from_ref_time(151_904_040) + .saturating_add(Weight::from_proof_size(15893)) + // Standard Error: 89_495 + .saturating_add(Weight::from_ref_time(595_959).saturating_mul(a.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } // Storage: Content ChannelById (r:1 w:0) + // Proof: Content ChannelById (max_values: None, max_size: Some(889), added: 3364, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance3WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Content CuratorGroupById (r:1 w:0) + // Proof: Content CuratorGroupById (max_values: None, max_size: Some(1127), added: 3602, mode: MaxEncodedLen) // Storage: Token TokenInfoById (r:1 w:1) + // Proof: Token TokenInfoById (max_values: None, max_size: Some(339), added: 2814, mode: MaxEncodedLen) // Storage: Token MinSaleDuration (r:1 w:0) + // Proof: Token MinSaleDuration (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) fn update_upcoming_creator_token_sale() -> Weight { - Weight::from_ref_time(362_009_000) + // Proof Size summary in bytes: + // Measured: `3341` + // Estimated: `12929` + // Minimum execution time: 139_000 nanoseconds. + Weight::from_ref_time(143_000_000) + .saturating_add(Weight::from_proof_size(12929)) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Content ChannelById (r:1 w:0) + // Proof: Content ChannelById (max_values: None, max_size: Some(889), added: 3364, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance3WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Content CuratorGroupById (r:1 w:0) + // Proof: Content CuratorGroupById (max_values: None, max_size: Some(1127), added: 3602, mode: MaxEncodedLen) // Storage: Token TokenInfoById (r:1 w:1) + // Proof: Token TokenInfoById (max_values: None, max_size: Some(339), added: 2814, mode: MaxEncodedLen) // Storage: Token AccountInfoByTokenAndMember (r:1 w:1) + // Proof: Token AccountInfoByTokenAndMember (max_values: None, max_size: Some(489), added: 2964, mode: MaxEncodedLen) // Storage: Council Budget (r:1 w:1) + // Proof: Council Budget (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) fn finalize_creator_token_sale() -> Weight { - Weight::from_ref_time(382_379_000) + // Proof Size summary in bytes: + // Measured: `4106` + // Estimated: `15905` + // Minimum execution time: 149_000 nanoseconds. + Weight::from_ref_time(153_000_000) + .saturating_add(Weight::from_proof_size(15905)) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } // Storage: Content ChannelById (r:1 w:0) + // Proof: Content ChannelById (max_values: None, max_size: Some(889), added: 3364, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance3WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Content CuratorGroupById (r:1 w:0) + // Proof: Content CuratorGroupById (max_values: None, max_size: Some(1127), added: 3602, mode: MaxEncodedLen) // Storage: System Account (r:2 w:2) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) // Storage: Token TokenInfoById (r:1 w:1) + // Proof: Token TokenInfoById (max_values: None, max_size: Some(339), added: 2814, mode: MaxEncodedLen) // Storage: Token MinRevenueSplitDuration (r:1 w:0) + // Proof: Token MinRevenueSplitDuration (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Token MinRevenueSplitTimeToStart (r:1 w:0) + // Proof: Token MinRevenueSplitTimeToStart (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Council Budget (r:1 w:1) + // Proof: Council Budget (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) fn issue_revenue_split() -> Weight { - Weight::from_ref_time(471_740_000) + // Proof Size summary in bytes: + // Measured: `3996` + // Estimated: `19145` + // Minimum execution time: 174_000 nanoseconds. + Weight::from_ref_time(175_000_000) + .saturating_add(Weight::from_proof_size(19145)) .saturating_add(T::DbWeight::get().reads(9_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } // Storage: Content ChannelById (r:1 w:0) + // Proof: Content ChannelById (max_values: None, max_size: Some(889), added: 3364, mode: MaxEncodedLen) // Storage: Membership MembershipById (r:2 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: System Account (r:3 w:3) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) // Storage: Token TokenInfoById (r:1 w:1) + // Proof: Token TokenInfoById (max_values: None, max_size: Some(339), added: 2814, mode: MaxEncodedLen) // Storage: Token MinRevenueSplitDuration (r:1 w:0) + // Proof: Token MinRevenueSplitDuration (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Token MinRevenueSplitTimeToStart (r:1 w:0) + // Proof: Token MinRevenueSplitTimeToStart (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) fn issue_revenue_split_as_collaborator() -> Weight { - Weight::from_ref_time(286_690_000) + // Proof Size summary in bytes: + // Measured: `3275` + // Estimated: `20185` + // Minimum execution time: 94_000 nanoseconds. + Weight::from_ref_time(94_000_000) + .saturating_add(Weight::from_proof_size(20185)) .saturating_add(T::DbWeight::get().reads(9_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } // Storage: Content ChannelById (r:1 w:0) + // Proof: Content ChannelById (max_values: None, max_size: Some(889), added: 3364, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance3WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Content CuratorGroupById (r:1 w:0) + // Proof: Content CuratorGroupById (max_values: None, max_size: Some(1127), added: 3602, mode: MaxEncodedLen) // Storage: Token TokenInfoById (r:1 w:1) + // Proof: Token TokenInfoById (max_values: None, max_size: Some(339), added: 2814, mode: MaxEncodedLen) // Storage: System Account (r:2 w:2) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn finalize_revenue_split() -> Weight { - Weight::from_ref_time(401_180_000) + // Proof Size summary in bytes: + // Measured: `3730` + // Estimated: `17636` + // Minimum execution time: 153_000 nanoseconds. + Weight::from_ref_time(153_000_000) + .saturating_add(Weight::from_proof_size(17636)) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } // Storage: Content ChannelById (r:1 w:0) + // Proof: Content ChannelById (max_values: None, max_size: Some(889), added: 3364, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance3WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Content CuratorGroupById (r:1 w:0) + // Proof: Content CuratorGroupById (max_values: None, max_size: Some(1127), added: 3602, mode: MaxEncodedLen) // Storage: Token TokenInfoById (r:1 w:1) + // Proof: Token TokenInfoById (max_values: None, max_size: Some(339), added: 2814, mode: MaxEncodedLen) fn reduce_creator_token_patronage_rate_to() -> Weight { - Weight::from_ref_time(370_090_000) + // Proof Size summary in bytes: + // Measured: `3245` + // Estimated: `12430` + // Minimum execution time: 156_000 nanoseconds. + Weight::from_ref_time(185_000_000) + .saturating_add(Weight::from_proof_size(12430)) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Content ChannelById (r:1 w:0) + // Proof: Content ChannelById (max_values: None, max_size: Some(889), added: 3364, mode: MaxEncodedLen) // Storage: Membership MembershipById (r:1 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: Token TokenInfoById (r:1 w:1) + // Proof: Token TokenInfoById (max_values: None, max_size: Some(339), added: 2814, mode: MaxEncodedLen) // Storage: Token AccountInfoByTokenAndMember (r:1 w:1) + // Proof: Token AccountInfoByTokenAndMember (max_values: None, max_size: Some(489), added: 2964, mode: MaxEncodedLen) fn claim_creator_token_patronage_credit() -> Weight { - Weight::from_ref_time(190_920_000) + // Proof Size summary in bytes: + // Measured: `2829` + // Estimated: `11742` + // Minimum execution time: 71_000 nanoseconds. + Weight::from_ref_time(82_000_000) + .saturating_add(Weight::from_proof_size(11742)) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } // Storage: Storage NextDataObjectId (r:1 w:1) + // Proof: Storage NextDataObjectId (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Storage DataObjectPerMegabyteFee (r:1 w:0) + // Proof: Storage DataObjectPerMegabyteFee (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) // Storage: Storage DataObjectStateBloatBondValue (r:1 w:0) + // Proof: Storage DataObjectStateBloatBondValue (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) // Storage: Storage Bags (r:1 w:1) + // Proof: Storage Bags (max_values: None, max_size: Some(964), added: 3439, mode: MaxEncodedLen) // Storage: Storage UploadingBlocked (r:1 w:0) + // Proof: Storage UploadingBlocked (max_values: Some(1), max_size: Some(1), added: 496, mode: MaxEncodedLen) // Storage: Storage Blacklist (r:1 w:0) + // Proof: Storage Blacklist (max_values: None, max_size: Some(63), added: 2538, mode: MaxEncodedLen) // Storage: System Account (r:2 w:2) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) // Storage: Storage DataObjectsById (r:0 w:1) + // Proof: Storage DataObjectsById (max_values: None, max_size: Some(155), added: 2630, mode: MaxEncodedLen) // Storage: Content ChannelCashoutsEnabled (r:0 w:1) + // Proof: Content ChannelCashoutsEnabled (max_values: Some(1), max_size: Some(1), added: 496, mode: MaxEncodedLen) // Storage: Content MaxCashoutAllowed (r:0 w:1) + // Proof: Content MaxCashoutAllowed (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) // Storage: Content MinCashoutAllowed (r:0 w:1) + // Proof: Content MinCashoutAllowed (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) // Storage: Content Commitment (r:0 w:1) + // Proof: Content Commitment (max_values: Some(1), max_size: Some(32), added: 527, mode: MaxEncodedLen) fn update_channel_payouts() -> Weight { - Weight::from_ref_time(138_756_000) + // Proof Size summary in bytes: + // Measured: `425` + // Estimated: `13204` + // Minimum execution time: 73_000 nanoseconds. + Weight::from_ref_time(75_000_000) + .saturating_add(Weight::from_proof_size(13204)) .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().writes(9_u64)) } // Storage: Content ChannelById (r:1 w:0) + // Proof: Content ChannelById (max_values: None, max_size: Some(889), added: 3364, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup CurrentLead (r:1 w:0) + // Proof: Instance3WorkingGroup CurrentLead (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance3WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) // Storage: Council Budget (r:1 w:1) + // Proof: Council Budget (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) fn withdraw_from_curator_channel_balance() -> Weight { - Weight::from_ref_time(188_400_000) + // Proof Size summary in bytes: + // Measured: `2208` + // Estimated: `9631` + // Minimum execution time: 65_000 nanoseconds. + Weight::from_ref_time(65_000_000) + .saturating_add(Weight::from_proof_size(9631)) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } // Storage: Content ChannelById (r:1 w:0) + // Proof: Content ChannelById (max_values: None, max_size: Some(889), added: 3364, mode: MaxEncodedLen) // Storage: Membership MembershipById (r:1 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: System Account (r:2 w:2) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn withdraw_from_member_channel_balance() -> Weight { - Weight::from_ref_time(178_320_000) + // Proof Size summary in bytes: + // Measured: `2257` + // Estimated: `11170` + // Minimum execution time: 61_000 nanoseconds. + Weight::from_ref_time(64_000_000) + .saturating_add(Weight::from_proof_size(11170)) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } // Storage: Content ChannelById (r:1 w:1) + // Proof: Content ChannelById (max_values: None, max_size: Some(889), added: 3364, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup CurrentLead (r:1 w:0) + // Proof: Instance3WorkingGroup CurrentLead (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance3WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Content ChannelCashoutsEnabled (r:1 w:0) + // Proof: Content ChannelCashoutsEnabled (max_values: Some(1), max_size: Some(1), added: 496, mode: MaxEncodedLen) // Storage: Content MaxCashoutAllowed (r:1 w:0) + // Proof: Content MaxCashoutAllowed (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) // Storage: Content MinCashoutAllowed (r:1 w:0) + // Proof: Content MinCashoutAllowed (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) // Storage: Council Budget (r:1 w:1) + // Proof: Council Budget (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) // Storage: Content Commitment (r:1 w:0) + // Proof: Content Commitment (max_values: Some(1), max_size: Some(32), added: 527, mode: MaxEncodedLen) // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// The range of component `h` is `[1, 10]`. fn claim_channel_reward(h: u32, ) -> Weight { - Weight::from_ref_time(156_101_000) - // Standard Error: 56_000 - .saturating_add(Weight::from_ref_time(951_000).saturating_mul(h.into())) + // Proof Size summary in bytes: + // Measured: `2331` + // Estimated: `11676` + // Minimum execution time: 93_000 nanoseconds. + Weight::from_ref_time(93_500_000) + .saturating_add(Weight::from_proof_size(11676)) + // Standard Error: 124_225 + .saturating_add(Weight::from_ref_time(500_000).saturating_mul(h.into())) .saturating_add(T::DbWeight::get().reads(9_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } // Storage: Content ChannelById (r:1 w:1) + // Proof: Content ChannelById (max_values: None, max_size: Some(889), added: 3364, mode: MaxEncodedLen) // Storage: Membership MembershipById (r:1 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: Content ChannelCashoutsEnabled (r:1 w:0) + // Proof: Content ChannelCashoutsEnabled (max_values: Some(1), max_size: Some(1), added: 496, mode: MaxEncodedLen) // Storage: Content MaxCashoutAllowed (r:1 w:0) + // Proof: Content MaxCashoutAllowed (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) // Storage: Content MinCashoutAllowed (r:1 w:0) + // Proof: Content MinCashoutAllowed (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) // Storage: Council Budget (r:1 w:1) + // Proof: Council Budget (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) // Storage: Content Commitment (r:1 w:0) + // Proof: Content Commitment (max_values: Some(1), max_size: Some(32), added: 527, mode: MaxEncodedLen) // Storage: System Account (r:2 w:2) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// The range of component `h` is `[1, 10]`. fn claim_and_withdraw_member_channel_reward(h: u32, ) -> Weight { - Weight::from_ref_time(300_227_000) - // Standard Error: 100_000 - .saturating_add(Weight::from_ref_time(1_850_000).saturating_mul(h.into())) + // Proof Size summary in bytes: + // Measured: `2685` + // Estimated: `13726` + // Minimum execution time: 107_000 nanoseconds. + Weight::from_ref_time(106_833_333) + .saturating_add(Weight::from_proof_size(13726)) + // Standard Error: 175_682 + .saturating_add(Weight::from_ref_time(666_666).saturating_mul(h.into())) .saturating_add(T::DbWeight::get().reads(9_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } // Storage: Content ChannelById (r:1 w:1) + // Proof: Content ChannelById (max_values: None, max_size: Some(889), added: 3364, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup CurrentLead (r:1 w:0) + // Proof: Instance3WorkingGroup CurrentLead (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance3WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Content ChannelCashoutsEnabled (r:1 w:0) + // Proof: Content ChannelCashoutsEnabled (max_values: Some(1), max_size: Some(1), added: 496, mode: MaxEncodedLen) // Storage: Content MaxCashoutAllowed (r:1 w:0) + // Proof: Content MaxCashoutAllowed (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) // Storage: Content MinCashoutAllowed (r:1 w:0) + // Proof: Content MinCashoutAllowed (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) // Storage: Council Budget (r:1 w:1) + // Proof: Council Budget (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) // Storage: Content Commitment (r:1 w:0) + // Proof: Content Commitment (max_values: Some(1), max_size: Some(32), added: 527, mode: MaxEncodedLen) // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// The range of component `h` is `[1, 10]`. fn claim_and_withdraw_curator_channel_reward(h: u32, ) -> Weight { - Weight::from_ref_time(298_738_000) - // Standard Error: 75_000 - .saturating_add(Weight::from_ref_time(1_759_000).saturating_mul(h.into())) + // Proof Size summary in bytes: + // Measured: `2330` + // Estimated: `11676` + // Minimum execution time: 105_000 nanoseconds. + Weight::from_ref_time(105_277_777) + .saturating_add(Weight::from_proof_size(11676)) + // Standard Error: 200_308 + .saturating_add(Weight::from_ref_time(722_222).saturating_mul(h.into())) .saturating_add(T::DbWeight::get().reads(9_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } // Storage: Content VideoById (r:1 w:1) + // Proof: Content VideoById (max_values: None, max_size: Some(513), added: 2988, mode: MaxEncodedLen) // Storage: Content ChannelById (r:1 w:1) + // Proof: Content ChannelById (max_values: None, max_size: Some(889), added: 3364, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance3WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Content CuratorGroupById (r:1 w:0) + // Proof: Content CuratorGroupById (max_values: None, max_size: Some(1127), added: 3602, mode: MaxEncodedLen) // Storage: Content MaxAuctionDuration (r:1 w:0) + // Proof: Content MaxAuctionDuration (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Content MinAuctionDuration (r:1 w:0) + // Proof: Content MinAuctionDuration (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Content MaxAuctionExtensionPeriod (r:1 w:0) + // Proof: Content MaxAuctionExtensionPeriod (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Content MinAuctionExtensionPeriod (r:1 w:0) + // Proof: Content MinAuctionExtensionPeriod (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Content MaxBidStep (r:1 w:0) + // Proof: Content MaxBidStep (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) // Storage: Content MinBidStep (r:1 w:0) + // Proof: Content MinBidStep (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) // Storage: Content AuctionStartsAtMaxDelta (r:1 w:0) + // Proof: Content AuctionStartsAtMaxDelta (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Content MinStartingPrice (r:1 w:0) + // Proof: Content MinStartingPrice (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) // Storage: Content MaxStartingPrice (r:1 w:0) - // Storage: Membership MembershipById (r:2 w:0) + // Proof: Content MaxStartingPrice (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) + // Storage: Membership MembershipById (r:20 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: Content MaxCreatorRoyalty (r:1 w:0) + // Proof: Content MaxCreatorRoyalty (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Content MinCreatorRoyalty (r:1 w:0) + // Proof: Content MinCreatorRoyalty (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Content NftLimitsEnabled (r:1 w:0) + // Proof: Content NftLimitsEnabled (max_values: Some(1), max_size: Some(1), added: 496, mode: MaxEncodedLen) // Storage: Content GlobalDailyNftLimit (r:1 w:0) + // Proof: Content GlobalDailyNftLimit (max_values: Some(1), max_size: Some(12), added: 507, mode: MaxEncodedLen) // Storage: Content GlobalDailyNftCounter (r:1 w:1) + // Proof: Content GlobalDailyNftCounter (max_values: Some(1), max_size: Some(12), added: 507, mode: MaxEncodedLen) // Storage: Content GlobalWeeklyNftLimit (r:1 w:0) + // Proof: Content GlobalWeeklyNftLimit (max_values: Some(1), max_size: Some(12), added: 507, mode: MaxEncodedLen) // Storage: Content GlobalWeeklyNftCounter (r:1 w:1) + // Proof: Content GlobalWeeklyNftCounter (max_values: Some(1), max_size: Some(12), added: 507, mode: MaxEncodedLen) + /// The range of component `w` is `[2, 20]`. + /// The range of component `b` is `[1, 100]`. fn issue_nft(w: u32, b: u32, ) -> Weight { - Weight::from_ref_time(585_229_000) - // Standard Error: 71_000 - .saturating_add(Weight::from_ref_time(9_833_000).saturating_mul(w.into())) - // Standard Error: 8_000 - .saturating_add(Weight::from_ref_time(491_000).saturating_mul(b.into())) + // Proof Size summary in bytes: + // Measured: `4015 + w * (207 ±0)` + // Estimated: `20665 + w * (2600 ±0)` + // Minimum execution time: 249_000 nanoseconds. + Weight::from_ref_time(194_262_626) + .saturating_add(Weight::from_proof_size(20665)) + // Standard Error: 409_506 + .saturating_add(Weight::from_ref_time(3_083_333).saturating_mul(w.into())) + // Standard Error: 74_455 + .saturating_add(Weight::from_ref_time(570_707).saturating_mul(b.into())) .saturating_add(T::DbWeight::get().reads(20_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(w.into()))) .saturating_add(T::DbWeight::get().writes(4_u64)) + .saturating_add(Weight::from_proof_size(2600).saturating_mul(w.into())) } // Storage: Content VideoById (r:1 w:1) + // Proof: Content VideoById (max_values: None, max_size: Some(513), added: 2988, mode: MaxEncodedLen) // Storage: Content ChannelById (r:1 w:0) + // Proof: Content ChannelById (max_values: None, max_size: Some(889), added: 3364, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance3WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Content CuratorGroupById (r:1 w:0) + // Proof: Content CuratorGroupById (max_values: None, max_size: Some(1127), added: 3602, mode: MaxEncodedLen) fn destroy_nft() -> Weight { - Weight::from_ref_time(469_109_000) + // Proof Size summary in bytes: + // Measured: `3112` + // Estimated: `12604` + // Minimum execution time: 183_000 nanoseconds. + Weight::from_ref_time(185_000_000) + .saturating_add(Weight::from_proof_size(12604)) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Content VideoById (r:1 w:1) + // Proof: Content VideoById (max_values: None, max_size: Some(513), added: 2988, mode: MaxEncodedLen) // Storage: Content ChannelById (r:1 w:0) + // Proof: Content ChannelById (max_values: None, max_size: Some(889), added: 3364, mode: MaxEncodedLen) // Storage: Membership MembershipById (r:1 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) fn sling_nft_back() -> Weight { - Weight::from_ref_time(126_850_000) + // Proof Size summary in bytes: + // Measured: `2397` + // Estimated: `8952` + // Minimum execution time: 49_000 nanoseconds. + Weight::from_ref_time(49_000_000) + .saturating_add(Weight::from_proof_size(8952)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Content VideoById (r:1 w:1) + // Proof: Content VideoById (max_values: None, max_size: Some(513), added: 2988, mode: MaxEncodedLen) // Storage: Content ChannelById (r:1 w:0) + // Proof: Content ChannelById (max_values: None, max_size: Some(889), added: 3364, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance3WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Content CuratorGroupById (r:1 w:0) + // Proof: Content CuratorGroupById (max_values: None, max_size: Some(1127), added: 3602, mode: MaxEncodedLen) // Storage: Membership MembershipById (r:1 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) fn offer_nft() -> Weight { - Weight::from_ref_time(481_389_000) + // Proof Size summary in bytes: + // Measured: `4034` + // Estimated: `15204` + // Minimum execution time: 193_000 nanoseconds. + Weight::from_ref_time(197_000_000) + .saturating_add(Weight::from_proof_size(15204)) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Content VideoById (r:1 w:1) + // Proof: Content VideoById (max_values: None, max_size: Some(513), added: 2988, mode: MaxEncodedLen) // Storage: Content ChannelById (r:1 w:0) + // Proof: Content ChannelById (max_values: None, max_size: Some(889), added: 3364, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance3WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Content CuratorGroupById (r:1 w:0) + // Proof: Content CuratorGroupById (max_values: None, max_size: Some(1127), added: 3602, mode: MaxEncodedLen) fn cancel_offer() -> Weight { - Weight::from_ref_time(470_080_000) + // Proof Size summary in bytes: + // Measured: `3137` + // Estimated: `12604` + // Minimum execution time: 185_000 nanoseconds. + Weight::from_ref_time(188_000_000) + .saturating_add(Weight::from_proof_size(12604)) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Content VideoById (r:1 w:1) + // Proof: Content VideoById (max_values: None, max_size: Some(513), added: 2988, mode: MaxEncodedLen) // Storage: Content ChannelById (r:1 w:0) + // Proof: Content ChannelById (max_values: None, max_size: Some(889), added: 3364, mode: MaxEncodedLen) // Storage: Membership MembershipById (r:2 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: System Account (r:3 w:3) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) // Storage: Content PlatfromFeePercentage (r:1 w:0) + // Proof: Content PlatfromFeePercentage (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) fn accept_incoming_offer() -> Weight { - Weight::from_ref_time(268_660_000) + // Proof Size summary in bytes: + // Measured: `3462` + // Estimated: `19860` + // Minimum execution time: 95_000 nanoseconds. + Weight::from_ref_time(95_000_000) + .saturating_add(Weight::from_proof_size(19860)) .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } // Storage: Content VideoById (r:1 w:1) + // Proof: Content VideoById (max_values: None, max_size: Some(513), added: 2988, mode: MaxEncodedLen) // Storage: Content ChannelById (r:1 w:0) + // Proof: Content ChannelById (max_values: None, max_size: Some(889), added: 3364, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance3WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Content CuratorGroupById (r:1 w:0) + // Proof: Content CuratorGroupById (max_values: None, max_size: Some(1127), added: 3602, mode: MaxEncodedLen) fn sell_nft() -> Weight { - Weight::from_ref_time(468_940_000) + // Proof Size summary in bytes: + // Measured: `3112` + // Estimated: `12604` + // Minimum execution time: 186_000 nanoseconds. + Weight::from_ref_time(187_000_000) + .saturating_add(Weight::from_proof_size(12604)) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Content VideoById (r:1 w:1) + // Proof: Content VideoById (max_values: None, max_size: Some(513), added: 2988, mode: MaxEncodedLen) // Storage: Content ChannelById (r:1 w:0) + // Proof: Content ChannelById (max_values: None, max_size: Some(889), added: 3364, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance3WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Content CuratorGroupById (r:1 w:0) + // Proof: Content CuratorGroupById (max_values: None, max_size: Some(1127), added: 3602, mode: MaxEncodedLen) fn cancel_buy_now() -> Weight { - Weight::from_ref_time(477_060_000) + // Proof Size summary in bytes: + // Measured: `3128` + // Estimated: `12604` + // Minimum execution time: 188_000 nanoseconds. + Weight::from_ref_time(191_000_000) + .saturating_add(Weight::from_proof_size(12604)) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Content VideoById (r:1 w:1) + // Proof: Content VideoById (max_values: None, max_size: Some(513), added: 2988, mode: MaxEncodedLen) // Storage: Content ChannelById (r:1 w:0) + // Proof: Content ChannelById (max_values: None, max_size: Some(889), added: 3364, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance3WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Content CuratorGroupById (r:1 w:0) + // Proof: Content CuratorGroupById (max_values: None, max_size: Some(1127), added: 3602, mode: MaxEncodedLen) fn update_buy_now_price() -> Weight { - Weight::from_ref_time(469_370_000) + // Proof Size summary in bytes: + // Measured: `3128` + // Estimated: `12604` + // Minimum execution time: 188_000 nanoseconds. + Weight::from_ref_time(189_000_000) + .saturating_add(Weight::from_proof_size(12604)) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Membership MembershipById (r:2 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: Content VideoById (r:1 w:1) + // Proof: Content VideoById (max_values: None, max_size: Some(513), added: 2988, mode: MaxEncodedLen) // Storage: Content ChannelById (r:1 w:0) + // Proof: Content ChannelById (max_values: None, max_size: Some(889), added: 3364, mode: MaxEncodedLen) // Storage: System Account (r:3 w:3) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) // Storage: Content PlatfromFeePercentage (r:1 w:0) + // Proof: Content PlatfromFeePercentage (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) fn buy_nft() -> Weight { - Weight::from_ref_time(269_391_000) + // Proof Size summary in bytes: + // Measured: `3453` + // Estimated: `19860` + // Minimum execution time: 96_000 nanoseconds. + Weight::from_ref_time(97_000_000) + .saturating_add(Weight::from_proof_size(19860)) .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } // Storage: Content NftLimitsEnabled (r:1 w:1) + // Proof: Content NftLimitsEnabled (max_values: Some(1), max_size: Some(1), added: 496, mode: MaxEncodedLen) fn toggle_nft_limits() -> Weight { - Weight::from_ref_time(37_130_000) + // Proof Size summary in bytes: + // Measured: `546` + // Estimated: `496` + // Minimum execution time: 13_000 nanoseconds. + Weight::from_ref_time(14_000_000) + .saturating_add(Weight::from_proof_size(496)) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Content GlobalDailyNftLimit (r:1 w:1) + // Proof: Content GlobalDailyNftLimit (max_values: Some(1), max_size: Some(12), added: 507, mode: MaxEncodedLen) fn update_global_nft_limit() -> Weight { - Weight::from_ref_time(38_129_000) + // Proof Size summary in bytes: + // Measured: `599` + // Estimated: `507` + // Minimum execution time: 14_000 nanoseconds. + Weight::from_ref_time(14_000_000) + .saturating_add(Weight::from_proof_size(507)) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Content ChannelById (r:1 w:1) + // Proof: Content ChannelById (max_values: None, max_size: Some(889), added: 3364, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance3WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Content CuratorGroupById (r:1 w:0) + // Proof: Content CuratorGroupById (max_values: None, max_size: Some(1127), added: 3602, mode: MaxEncodedLen) fn update_channel_nft_limit() -> Weight { - Weight::from_ref_time(342_840_000) + // Proof Size summary in bytes: + // Measured: `2801` + // Estimated: `9616` + // Minimum execution time: 139_000 nanoseconds. + Weight::from_ref_time(142_000_000) + .saturating_add(Weight::from_proof_size(9616)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Content VideoById (r:1 w:1) + // Proof: Content VideoById (max_values: None, max_size: Some(513), added: 2988, mode: MaxEncodedLen) // Storage: Content ChannelById (r:1 w:0) + // Proof: Content ChannelById (max_values: None, max_size: Some(889), added: 3364, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance3WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Content CuratorGroupById (r:1 w:0) + // Proof: Content CuratorGroupById (max_values: None, max_size: Some(1127), added: 3602, mode: MaxEncodedLen) // Storage: Content MaxAuctionDuration (r:1 w:0) + // Proof: Content MaxAuctionDuration (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Content MinAuctionDuration (r:1 w:0) + // Proof: Content MinAuctionDuration (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Content MaxAuctionExtensionPeriod (r:1 w:0) + // Proof: Content MaxAuctionExtensionPeriod (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Content MinAuctionExtensionPeriod (r:1 w:0) + // Proof: Content MinAuctionExtensionPeriod (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Content MaxBidStep (r:1 w:0) + // Proof: Content MaxBidStep (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) // Storage: Content MinBidStep (r:1 w:0) + // Proof: Content MinBidStep (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) // Storage: Content AuctionStartsAtMaxDelta (r:1 w:0) + // Proof: Content AuctionStartsAtMaxDelta (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Content MinStartingPrice (r:1 w:0) + // Proof: Content MinStartingPrice (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) // Storage: Content MaxStartingPrice (r:1 w:0) - // Storage: Membership MembershipById (r:2 w:0) + // Proof: Content MaxStartingPrice (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) + // Storage: Membership MembershipById (r:20 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) + /// The range of component `w` is `[2, 20]`. fn start_english_auction(w: u32, ) -> Weight { - Weight::from_ref_time(548_144_000) - // Standard Error: 55_000 - .saturating_add(Weight::from_ref_time(11_411_000).saturating_mul(w.into())) + // Proof Size summary in bytes: + // Measured: `4082 + w * (207 ±0)` + // Estimated: `17143 + w * (2600 ±0)` + // Minimum execution time: 219_000 nanoseconds. + Weight::from_ref_time(213_444_444) + .saturating_add(Weight::from_proof_size(17143)) + // Standard Error: 78_567 + .saturating_add(Weight::from_ref_time(3_277_777).saturating_mul(w.into())) .saturating_add(T::DbWeight::get().reads(13_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(w.into()))) .saturating_add(T::DbWeight::get().writes(1_u64)) + .saturating_add(Weight::from_proof_size(2600).saturating_mul(w.into())) } // Storage: Content VideoById (r:1 w:1) + // Proof: Content VideoById (max_values: None, max_size: Some(513), added: 2988, mode: MaxEncodedLen) // Storage: Content ChannelById (r:1 w:0) + // Proof: Content ChannelById (max_values: None, max_size: Some(889), added: 3364, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance3WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Content CuratorGroupById (r:1 w:0) + // Proof: Content CuratorGroupById (max_values: None, max_size: Some(1127), added: 3602, mode: MaxEncodedLen) fn cancel_english_auction() -> Weight { - Weight::from_ref_time(483_320_000) + // Proof Size summary in bytes: + // Measured: `3335` + // Estimated: `12604` + // Minimum execution time: 191_000 nanoseconds. + Weight::from_ref_time(195_000_000) + .saturating_add(Weight::from_proof_size(12604)) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Membership MembershipById (r:3 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: Content VideoById (r:1 w:1) + // Proof: Content VideoById (max_values: None, max_size: Some(513), added: 2988, mode: MaxEncodedLen) // Storage: Content ChannelById (r:1 w:0) + // Proof: Content ChannelById (max_values: None, max_size: Some(889), added: 3364, mode: MaxEncodedLen) // Storage: System Account (r:5 w:5) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) // Storage: Content PlatfromFeePercentage (r:1 w:0) + // Proof: Content PlatfromFeePercentage (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) fn make_english_auction_bid() -> Weight { - Weight::from_ref_time(392_440_000) + // Proof Size summary in bytes: + // Measured: `4462` + // Estimated: `27666` + // Minimum execution time: 130_000 nanoseconds. + Weight::from_ref_time(132_000_000) + .saturating_add(Weight::from_proof_size(27666)) .saturating_add(T::DbWeight::get().reads(11_u64)) .saturating_add(T::DbWeight::get().writes(6_u64)) } // Storage: Content VideoById (r:1 w:1) + // Proof: Content VideoById (max_values: None, max_size: Some(513), added: 2988, mode: MaxEncodedLen) // Storage: Content ChannelById (r:1 w:0) + // Proof: Content ChannelById (max_values: None, max_size: Some(889), added: 3364, mode: MaxEncodedLen) // Storage: Membership MembershipById (r:1 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: System Account (r:3 w:3) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) // Storage: Content PlatfromFeePercentage (r:1 w:0) + // Proof: Content PlatfromFeePercentage (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) fn settle_english_auction() -> Weight { - Weight::from_ref_time(265_260_000) + // Proof Size summary in bytes: + // Measured: `3345` + // Estimated: `17260` + // Minimum execution time: 93_000 nanoseconds. + Weight::from_ref_time(93_000_000) + .saturating_add(Weight::from_proof_size(17260)) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } // Storage: Content VideoById (r:1 w:1) + // Proof: Content VideoById (max_values: None, max_size: Some(513), added: 2988, mode: MaxEncodedLen) // Storage: Content ChannelById (r:1 w:0) + // Proof: Content ChannelById (max_values: None, max_size: Some(889), added: 3364, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance3WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Content CuratorGroupById (r:1 w:0) + // Proof: Content CuratorGroupById (max_values: None, max_size: Some(1127), added: 3602, mode: MaxEncodedLen) // Storage: Content MaxBidLockDuration (r:1 w:0) + // Proof: Content MaxBidLockDuration (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Content MinBidLockDuration (r:1 w:0) + // Proof: Content MinBidLockDuration (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Content MinStartingPrice (r:1 w:0) + // Proof: Content MinStartingPrice (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) // Storage: Content MaxStartingPrice (r:1 w:0) - // Storage: Membership MembershipById (r:2 w:0) + // Proof: Content MaxStartingPrice (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) + // Storage: Membership MembershipById (r:20 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: Content AuctionStartsAtMaxDelta (r:1 w:0) + // Proof: Content AuctionStartsAtMaxDelta (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + /// The range of component `w` is `[2, 20]`. fn start_open_auction(w: u32, ) -> Weight { - Weight::from_ref_time(519_399_000) - // Standard Error: 53_000 - .saturating_add(Weight::from_ref_time(11_276_000).saturating_mul(w.into())) + // Proof Size summary in bytes: + // Measured: `3987 + w * (202 ±0)` + // Estimated: `15123 + w * (2600 ±0)` + // Minimum execution time: 210_000 nanoseconds. + Weight::from_ref_time(206_166_666) + .saturating_add(Weight::from_proof_size(15123)) + // Standard Error: 141_639 + .saturating_add(Weight::from_ref_time(3_166_666).saturating_mul(w.into())) .saturating_add(T::DbWeight::get().reads(9_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(w.into()))) .saturating_add(T::DbWeight::get().writes(1_u64)) + .saturating_add(Weight::from_proof_size(2600).saturating_mul(w.into())) } // Storage: Content VideoById (r:1 w:1) + // Proof: Content VideoById (max_values: None, max_size: Some(513), added: 2988, mode: MaxEncodedLen) // Storage: Content ChannelById (r:1 w:0) + // Proof: Content ChannelById (max_values: None, max_size: Some(889), added: 3364, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance3WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Content CuratorGroupById (r:1 w:0) + // Proof: Content CuratorGroupById (max_values: None, max_size: Some(1127), added: 3602, mode: MaxEncodedLen) fn cancel_open_auction() -> Weight { - Weight::from_ref_time(479_989_000) + // Proof Size summary in bytes: + // Measured: `3322` + // Estimated: `12604` + // Minimum execution time: 188_000 nanoseconds. + Weight::from_ref_time(189_000_000) + .saturating_add(Weight::from_proof_size(12604)) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Membership MembershipById (r:1 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: Content VideoById (r:1 w:0) + // Proof: Content VideoById (max_values: None, max_size: Some(513), added: 2988, mode: MaxEncodedLen) // Storage: Content ChannelById (r:1 w:0) + // Proof: Content ChannelById (max_values: None, max_size: Some(889), added: 3364, mode: MaxEncodedLen) // Storage: Content OpenAuctionBidByVideoAndMember (r:1 w:1) + // Proof: Content OpenAuctionBidByVideoAndMember (max_values: None, max_size: Some(76), added: 2551, mode: MaxEncodedLen) // Storage: System Account (r:2 w:2) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn cancel_open_auction_bid() -> Weight { - Weight::from_ref_time(215_480_000) + // Proof Size summary in bytes: + // Measured: `3387` + // Estimated: `16709` + // Minimum execution time: 80_000 nanoseconds. + Weight::from_ref_time(81_000_000) + .saturating_add(Weight::from_proof_size(16709)) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } // Storage: Membership MembershipById (r:2 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: Content VideoById (r:1 w:1) + // Proof: Content VideoById (max_values: None, max_size: Some(513), added: 2988, mode: MaxEncodedLen) // Storage: Content ChannelById (r:1 w:0) + // Proof: Content ChannelById (max_values: None, max_size: Some(889), added: 3364, mode: MaxEncodedLen) // Storage: Content OpenAuctionBidByVideoAndMember (r:1 w:1) + // Proof: Content OpenAuctionBidByVideoAndMember (max_values: None, max_size: Some(76), added: 2551, mode: MaxEncodedLen) // Storage: System Account (r:3 w:3) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) // Storage: Content PlatfromFeePercentage (r:1 w:0) + // Proof: Content PlatfromFeePercentage (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) fn pick_open_auction_winner() -> Weight { - Weight::from_ref_time(294_170_000) + // Proof Size summary in bytes: + // Measured: `3678` + // Estimated: `22411` + // Minimum execution time: 102_000 nanoseconds. + Weight::from_ref_time(103_000_000) + .saturating_add(Weight::from_proof_size(22411)) .saturating_add(T::DbWeight::get().reads(9_u64)) .saturating_add(T::DbWeight::get().writes(5_u64)) } // Storage: Membership MembershipById (r:2 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: Content OpenAuctionBidByVideoAndMember (r:1 w:0) + // Proof: Content OpenAuctionBidByVideoAndMember (max_values: None, max_size: Some(76), added: 2551, mode: MaxEncodedLen) // Storage: System Account (r:4 w:4) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) // Storage: Content VideoById (r:1 w:1) + // Proof: Content VideoById (max_values: None, max_size: Some(513), added: 2988, mode: MaxEncodedLen) // Storage: Content ChannelById (r:1 w:0) + // Proof: Content ChannelById (max_values: None, max_size: Some(889), added: 3364, mode: MaxEncodedLen) // Storage: Content PlatfromFeePercentage (r:1 w:0) + // Proof: Content PlatfromFeePercentage (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) fn make_open_auction_bid() -> Weight { - Weight::from_ref_time(353_009_000) + // Proof Size summary in bytes: + // Measured: `4087` + // Estimated: `25014` + // Minimum execution time: 122_000 nanoseconds. + Weight::from_ref_time(123_000_000) + .saturating_add(Weight::from_proof_size(25014)) .saturating_add(T::DbWeight::get().reads(10_u64)) .saturating_add(T::DbWeight::get().writes(5_u64)) } // Storage: Content ChannelById (r:1 w:0) + // Proof: Content ChannelById (max_values: None, max_size: Some(889), added: 3364, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup CurrentLead (r:1 w:0) + // Proof: Instance3WorkingGroup CurrentLead (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance3WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) + /// The range of component `b` is `[1, 100]`. fn channel_owner_remark(b: u32, ) -> Weight { - Weight::from_ref_time(113_465_000) - // Standard Error: 4_000 - .saturating_add(Weight::from_ref_time(726_000_u64).saturating_mul(b.into())) + // Proof Size summary in bytes: + // Measured: `1730` + // Estimated: `6517` + // Minimum execution time: 42_000 nanoseconds. + Weight::from_ref_time(41_393_939) + .saturating_add(Weight::from_proof_size(6517)) + // Standard Error: 40_404 + .saturating_add(Weight::from_ref_time(606_060).saturating_mul(b.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) } // Storage: Content ChannelById (r:1 w:0) + // Proof: Content ChannelById (max_values: None, max_size: Some(889), added: 3364, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance3WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Content CuratorGroupById (r:1 w:0) + // Proof: Content CuratorGroupById (max_values: None, max_size: Some(1127), added: 3602, mode: MaxEncodedLen) + /// The range of component `b` is `[1, 100]`. fn channel_agent_remark(b: u32, ) -> Weight { - Weight::from_ref_time(309_636_000) - // Standard Error: 5_000 - .saturating_add(Weight::from_ref_time(690_000).saturating_mul(b.into())) + // Proof Size summary in bytes: + // Measured: `2801` + // Estimated: `9616` + // Minimum execution time: 120_000 nanoseconds. + Weight::from_ref_time(120_969_696) + .saturating_add(Weight::from_proof_size(9616)) + // Standard Error: 82_216 + .saturating_add(Weight::from_ref_time(530_303).saturating_mul(b.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) } // Storage: Content VideoById (r:1 w:0) + // Proof: Content VideoById (max_values: None, max_size: Some(513), added: 2988, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance3WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Content CuratorGroupById (r:1 w:0) + // Proof: Content CuratorGroupById (max_values: None, max_size: Some(1127), added: 3602, mode: MaxEncodedLen) // Storage: Content ChannelById (r:1 w:0) + // Proof: Content ChannelById (max_values: None, max_size: Some(889), added: 3364, mode: MaxEncodedLen) + /// The range of component `b` is `[1, 100]`. fn nft_owner_remark(b: u32, ) -> Weight { - Weight::from_ref_time(433_008_000) - // Standard Error: 5_000 - .saturating_add(Weight::from_ref_time(712_000).saturating_mul(b.into())) + // Proof Size summary in bytes: + // Measured: `3335` + // Estimated: `12604` + // Minimum execution time: 170_000 nanoseconds. + Weight::from_ref_time(170_964_646) + .saturating_add(Weight::from_proof_size(12604)) + // Standard Error: 87_185 + .saturating_add(Weight::from_ref_time(535_353).saturating_mul(b.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) } // Storage: Instance3WorkingGroup CurrentLead (r:1 w:0) + // Proof: Instance3WorkingGroup CurrentLead (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance3WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Content ChannelStateBloatBondValue (r:0 w:1) + // Proof: Content ChannelStateBloatBondValue (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) fn update_channel_state_bloat_bond() -> Weight { - Weight::from_ref_time(48_800_000) + // Proof Size summary in bytes: + // Measured: `371` + // Estimated: `3153` + // Minimum execution time: 16_000 nanoseconds. + Weight::from_ref_time(17_000_000) + .saturating_add(Weight::from_proof_size(3153)) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Instance3WorkingGroup CurrentLead (r:1 w:0) + // Proof: Instance3WorkingGroup CurrentLead (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance3WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Content VideoStateBloatBondValue (r:0 w:1) + // Proof: Content VideoStateBloatBondValue (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) fn update_video_state_bloat_bond() -> Weight { - Weight::from_ref_time(47_290_000) + // Proof Size summary in bytes: + // Measured: `371` + // Estimated: `3153` + // Minimum execution time: 16_000 nanoseconds. + Weight::from_ref_time(16_000_000) + .saturating_add(Weight::from_proof_size(3153)) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -1333,7 +2344,7 @@ impl WeightInfo for () { fn issue_creator_token(a: u32, ) -> Weight { Weight::from_ref_time(0) } - fn creator_token_issuer_transfer(a: u32, _b: u32, ) -> Weight { + fn creator_token_issuer_transfer(a: u32, b: u32, ) -> Weight { Weight::from_ref_time(0) } fn make_creator_token_permissionless() -> Weight { diff --git a/runtime-modules/council/src/weights.rs b/runtime-modules/council/src/weights.rs index 2b205ce750..62fba4a1ea 100644 --- a/runtime-modules/council/src/weights.rs +++ b/runtime-modules/council/src/weights.rs @@ -18,22 +18,21 @@ //! Autogenerated weights for council //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-10-20, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! DATE: 2023-03-15, STEPS: `2`, REPEAT: 2, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("prod-test"), DB CACHE: 1024 // Executed Command: -// ./../target/release/joystream-node +// ./scripts/../target/release/joystream-node // benchmark // pallet -// --base-path=/mnt/disks/local-ssd/ // --pallet=council // --extrinsic=* -// --chain=dev -// --steps=50 -// --repeat=20 +// --chain=prod-test +// --steps=2 +// --repeat=2 // --execution=wasm -// --template=./../devops/joystream-pallet-weight-template.hbs -// --output=./../runtime-modules/council/src/weights.rs +// --template=./scripts/../devops/joystream-pallet-weight-template.hbs +// --output=./scripts/../runtime-modules/council/src/weights.rs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -68,141 +67,281 @@ pub trait WeightInfo { pub struct SubstrateWeight(PhantomData); impl WeightInfo for SubstrateWeight { // Storage: Council BudgetIncrement (r:0 w:1) + // Proof: Council BudgetIncrement (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) fn set_budget_increment() -> Weight { - Weight::from_ref_time(29_210_000) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 8_000 nanoseconds. + Weight::from_ref_time(8_000_000) + .saturating_add(Weight::from_proof_size(0)) .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Council CouncilorReward (r:0 w:1) + // Proof: Council CouncilorReward (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) fn set_councilor_reward() -> Weight { - Weight::from_ref_time(29_330_000) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 8_000 nanoseconds. + Weight::from_ref_time(8_000_000) + .saturating_add(Weight::from_proof_size(0)) .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Council Budget (r:1 w:1) - // Storage: System Account (r:1 w:1) + // Proof: Council Budget (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) + // Storage: System Account (r:100 w:100) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// The range of component `i` is `[1, 100]`. fn funding_request(i: u32, ) -> Weight { - Weight::from_ref_time(18_104_000) - // Standard Error: 13_000 - .saturating_add(Weight::from_ref_time(69_917_000).saturating_mul(i.into())) + // Proof Size summary in bytes: + // Measured: `319 + i * (5 ±0)` + // Estimated: `511 + i * (2603 ±0)` + // Minimum execution time: 31_000 nanoseconds. + Weight::from_ref_time(12_757_575) + .saturating_add(Weight::from_proof_size(511)) + // Standard Error: 132_858 + .saturating_add(Weight::from_ref_time(20_242_424).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(1_u64)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) + .saturating_add(Weight::from_proof_size(2603).saturating_mul(i.into())) } // Storage: Council BudgetIncrement (r:1 w:0) + // Proof: Council BudgetIncrement (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) // Storage: Council Budget (r:1 w:1) + // Proof: Council Budget (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) // Storage: Council NextBudgetRefill (r:0 w:1) + // Proof: Council NextBudgetRefill (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) fn try_process_budget_refill_budget_only() -> Weight { - Weight::from_ref_time(52_040_000) + // Proof Size summary in bytes: + // Measured: `276` + // Estimated: `1022` + // Minimum execution time: 14_000 nanoseconds. + Weight::from_ref_time(16_000_000) + .saturating_add(Weight::from_proof_size(1022)) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } // Storage: Council CouncilorReward (r:1 w:0) + // Proof: Council CouncilorReward (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) // Storage: Council Budget (r:1 w:1) + // Proof: Council Budget (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) // Storage: Council CouncilMembers (r:1 w:1) + // Proof: Council CouncilMembers (max_values: Some(1), max_size: Some(325), added: 820, mode: MaxEncodedLen) // Storage: System Account (r:3 w:3) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) // Storage: Council NextRewardPayments (r:0 w:1) + // Proof: Council NextRewardPayments (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) fn try_process_budget_payout_council_members_only() -> Weight { - Weight::from_ref_time(169_890_000) + // Proof Size summary in bytes: + // Measured: `1169` + // Estimated: `9651` + // Minimum execution time: 46_000 nanoseconds. + Weight::from_ref_time(47_000_000) + .saturating_add(Weight::from_proof_size(9651)) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(6_u64)) } // Storage: Council Stage (r:1 w:1) + // Proof: Council Stage (max_values: Some(1), max_size: Some(13), added: 508, mode: MaxEncodedLen) // Storage: Council AnnouncementPeriodNr (r:1 w:1) + // Proof: Council AnnouncementPeriodNr (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) fn try_progress_stage_idle() -> Weight { - Weight::from_ref_time(47_270_000) + // Proof Size summary in bytes: + // Measured: `270` + // Estimated: `1011` + // Minimum execution time: 10_000 nanoseconds. + Weight::from_ref_time(11_000_000) + .saturating_add(Weight::from_proof_size(1011)) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } // Storage: Council Stage (r:1 w:1) + // Proof: Council Stage (max_values: Some(1), max_size: Some(13), added: 508, mode: MaxEncodedLen) // Storage: Council AnnouncementPeriodNr (r:1 w:0) + // Proof: Council AnnouncementPeriodNr (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Instance1Referendum Stage (r:1 w:1) + // Proof: Instance1Referendum Stage (max_values: Some(1), max_size: Some(94), added: 589, mode: MaxEncodedLen) + /// The range of component `i` is `[3, 103]`. fn try_progress_stage_announcing_start_election(i: u32, ) -> Weight { - Weight::from_ref_time(75_045_000) - // Standard Error: 9_000 - .saturating_add(Weight::from_ref_time(195_000).saturating_mul(i.into())) + // Proof Size summary in bytes: + // Measured: `379` + // Estimated: `1600` + // Minimum execution time: 16_000 nanoseconds. + Weight::from_ref_time(15_925_000) + .saturating_add(Weight::from_proof_size(1600)) + // Standard Error: 5_000 + .saturating_add(Weight::from_ref_time(25_000).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } // Storage: Council Stage (r:1 w:1) + // Proof: Council Stage (max_values: Some(1), max_size: Some(13), added: 508, mode: MaxEncodedLen) // Storage: Council AnnouncementPeriodNr (r:1 w:1) + // Proof: Council AnnouncementPeriodNr (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) fn try_progress_stage_announcing_restart() -> Weight { - Weight::from_ref_time(53_390_000) + // Proof Size summary in bytes: + // Measured: `274` + // Estimated: `1011` + // Minimum execution time: 10_000 nanoseconds. + Weight::from_ref_time(10_000_000) + .saturating_add(Weight::from_proof_size(1011)) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } // Storage: Membership MembershipById (r:1 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: Membership StakingAccountIdMemberStatus (r:1 w:0) + // Proof: Membership StakingAccountIdMemberStatus (max_values: None, max_size: Some(57), added: 2532, mode: MaxEncodedLen) // Storage: Balances Locks (r:1 w:1) + // Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) // Storage: Council Stage (r:1 w:1) + // Proof: Council Stage (max_values: Some(1), max_size: Some(13), added: 508, mode: MaxEncodedLen) // Storage: Council Candidates (r:1 w:1) + // Proof: Council Candidates (max_values: None, max_size: Some(161), added: 2636, mode: MaxEncodedLen) // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) // Storage: Council AnnouncementPeriodNr (r:1 w:0) + // Proof: Council AnnouncementPeriodNr (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) fn announce_candidacy() -> Weight { - Weight::from_ref_time(128_770_000) + // Proof Size summary in bytes: + // Measured: `877` + // Estimated: `15156` + // Minimum execution time: 40_000 nanoseconds. + Weight::from_ref_time(41_000_000) + .saturating_add(Weight::from_proof_size(15156)) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } // Storage: Membership MembershipById (r:1 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: Council Candidates (r:1 w:1) + // Proof: Council Candidates (max_values: None, max_size: Some(161), added: 2636, mode: MaxEncodedLen) // Storage: Council AnnouncementPeriodNr (r:1 w:0) + // Proof: Council AnnouncementPeriodNr (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Balances Locks (r:1 w:1) + // Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn release_candidacy_stake() -> Weight { - Weight::from_ref_time(91_360_000) + // Proof Size summary in bytes: + // Measured: `1074` + // Estimated: `12116` + // Minimum execution time: 31_000 nanoseconds. + Weight::from_ref_time(31_000_000) + .saturating_add(Weight::from_proof_size(12116)) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } // Storage: Membership MembershipById (r:1 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: Council Candidates (r:1 w:1) + // Proof: Council Candidates (max_values: None, max_size: Some(161), added: 2636, mode: MaxEncodedLen) // Storage: Council AnnouncementPeriodNr (r:1 w:0) + // Proof: Council AnnouncementPeriodNr (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Council Stage (r:1 w:0) + // Proof: Council Stage (max_values: Some(1), max_size: Some(13), added: 508, mode: MaxEncodedLen) + /// The range of component `i` is `[0, 100]`. fn set_candidacy_note(i: u32, ) -> Weight { - Weight::from_ref_time(68_023_000) - // Standard Error: 2_000 - .saturating_add(Weight::from_ref_time(1_744_000).saturating_mul(i.into())) + // Proof Size summary in bytes: + // Measured: `744` + // Estimated: `6247` + // Minimum execution time: 22_000 nanoseconds. + Weight::from_ref_time(22_000_000) + .saturating_add(Weight::from_proof_size(6247)) + // Standard Error: 75_000 + .saturating_add(Weight::from_ref_time(1_575_000).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Membership MembershipById (r:1 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: Council Candidates (r:1 w:1) + // Proof: Council Candidates (max_values: None, max_size: Some(161), added: 2636, mode: MaxEncodedLen) // Storage: Council Stage (r:1 w:1) + // Proof: Council Stage (max_values: Some(1), max_size: Some(13), added: 508, mode: MaxEncodedLen) // Storage: Council AnnouncementPeriodNr (r:1 w:0) + // Proof: Council AnnouncementPeriodNr (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Balances Locks (r:1 w:1) + // Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn withdraw_candidacy() -> Weight { - Weight::from_ref_time(99_240_000) + // Proof Size summary in bytes: + // Measured: `1074` + // Estimated: `12624` + // Minimum execution time: 33_000 nanoseconds. + Weight::from_ref_time(34_000_000) + .saturating_add(Weight::from_proof_size(12624)) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } // Storage: Council Budget (r:0 w:1) + // Proof: Council Budget (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) fn set_budget() -> Weight { - Weight::from_ref_time(29_330_000) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 8_000 nanoseconds. + Weight::from_ref_time(8_000_000) + .saturating_add(Weight::from_proof_size(0)) .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Council NextBudgetRefill (r:0 w:1) + // Proof: Council NextBudgetRefill (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) fn plan_budget_refill() -> Weight { - Weight::from_ref_time(28_589_000) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 8_000 nanoseconds. + Weight::from_ref_time(8_000_000) + .saturating_add(Weight::from_proof_size(0)) .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Membership MembershipById (r:1 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) // Storage: Council Budget (r:1 w:1) + // Proof: Council Budget (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) fn fund_council_budget() -> Weight { - Weight::from_ref_time(89_760_000) + // Proof Size summary in bytes: + // Measured: `730` + // Estimated: `5714` + // Minimum execution time: 29_000 nanoseconds. + Weight::from_ref_time(30_000_000) + .saturating_add(Weight::from_proof_size(5714)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } // Storage: Membership MembershipById (r:1 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: Council Candidates (r:1 w:0) + // Proof: Council Candidates (max_values: None, max_size: Some(161), added: 2636, mode: MaxEncodedLen) // Storage: Council AnnouncementPeriodNr (r:1 w:0) + // Proof: Council AnnouncementPeriodNr (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) fn candidate_remark() -> Weight { - Weight::from_ref_time(51_040_000) + // Proof Size summary in bytes: + // Measured: `744` + // Estimated: `5739` + // Minimum execution time: 18_000 nanoseconds. + Weight::from_ref_time(19_000_000) + .saturating_add(Weight::from_proof_size(5739)) .saturating_add(T::DbWeight::get().reads(3_u64)) } // Storage: Membership MembershipById (r:1 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: Council CouncilMembers (r:1 w:0) + // Proof: Council CouncilMembers (max_values: Some(1), max_size: Some(325), added: 820, mode: MaxEncodedLen) fn councilor_remark() -> Weight { - Weight::from_ref_time(49_349_000) + // Proof Size summary in bytes: + // Measured: `1006` + // Estimated: `3420` + // Minimum execution time: 18_000 nanoseconds. + Weight::from_ref_time(19_000_000) + .saturating_add(Weight::from_proof_size(3420)) .saturating_add(T::DbWeight::get().reads(2_u64)) } } diff --git a/runtime-modules/forum/src/weights.rs b/runtime-modules/forum/src/weights.rs index 860bb10c9d..ea024155cf 100644 --- a/runtime-modules/forum/src/weights.rs +++ b/runtime-modules/forum/src/weights.rs @@ -18,19 +18,18 @@ //! Autogenerated weights for forum //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-10-28, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! DATE: 2023-03-15, STEPS: `2`, REPEAT: 2, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("prod-test"), DB CACHE: 1024 // Executed Command: // ./scripts/../target/release/joystream-node // benchmark // pallet -// --base-path=/mnt/disks/local-ssd/ // --pallet=forum // --extrinsic=* -// --chain=dev -// --steps=50 -// --repeat=20 +// --chain=prod-test +// --steps=2 +// --repeat=2 // --execution=wasm // --template=./scripts/../devops/joystream-pallet-weight-template.hbs // --output=./scripts/../runtime-modules/forum/src/weights.rs @@ -76,345 +75,642 @@ pub trait WeightInfo { pub struct SubstrateWeight(PhantomData); impl WeightInfo for SubstrateWeight { // Storage: Instance1WorkingGroup CurrentLead (r:1 w:0) + // Proof: Instance1WorkingGroup CurrentLead (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Instance1WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance1WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Forum_1_1 CategoryCounter (r:1 w:1) + // Proof: Forum_1_1 CategoryCounter (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) + // Storage: Forum_1_1 CategoryById (r:6 w:2) + // Proof: Forum_1_1 CategoryById (max_values: None, max_size: Some(271), added: 2746, mode: MaxEncodedLen) // Storage: Forum_1_1 NextCategoryId (r:1 w:1) - // Storage: Forum_1_1 CategoryById (r:1 w:1) + // Proof: Forum_1_1 NextCategoryId (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) + /// The range of component `i` is `[1, 6]`. + /// The range of component `j` is `[0, 100]`. + /// The range of component `k` is `[0, 100]`. fn create_category(i: u32, j: u32, k: u32, ) -> Weight { - Weight::from_ref_time(22_133_000) - // Standard Error: 344_000 - .saturating_add(Weight::from_ref_time(8_641_000).saturating_mul(i.into())) - // Standard Error: 8_000 - .saturating_add(Weight::from_ref_time(1_503_000).saturating_mul(j.into())) - // Standard Error: 8_000 - .saturating_add(Weight::from_ref_time(1_636_000).saturating_mul(k.into())) + // Proof Size summary in bytes: + // Measured: `432 + i * (144 ±0)` + // Estimated: `4159 + i * (2746 ±0)` + // Minimum execution time: 194_000 nanoseconds. + Weight::from_ref_time(37_450_000) + .saturating_add(Weight::from_proof_size(4159)) + // Standard Error: 1_639_740 + .saturating_add(Weight::from_ref_time(4_050_000).saturating_mul(i.into())) + // Standard Error: 81_987 + .saturating_add(Weight::from_ref_time(1_372_500).saturating_mul(j.into())) + // Standard Error: 81_987 + .saturating_add(Weight::from_ref_time(1_407_500).saturating_mul(k.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(3_u64)) + .saturating_add(Weight::from_proof_size(2746).saturating_mul(i.into())) } // Storage: Instance1WorkingGroup CurrentLead (r:1 w:0) + // Proof: Instance1WorkingGroup CurrentLead (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Instance1WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance1WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Forum_1_1 CategoryById (r:1 w:1) + // Proof: Forum_1_1 CategoryById (max_values: None, max_size: Some(271), added: 2746, mode: MaxEncodedLen) // Storage: Forum_1_1 CategoryByModerator (r:0 w:1) + // Proof: Forum_1_1 CategoryByModerator (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) fn update_category_membership_of_moderator_new() -> Weight { - Weight::from_ref_time(39_850_000) + // Proof Size summary in bytes: + // Measured: `665` + // Estimated: `5899` + // Minimum execution time: 29_000 nanoseconds. + Weight::from_ref_time(29_000_000) + .saturating_add(Weight::from_proof_size(5899)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } // Storage: Instance1WorkingGroup CurrentLead (r:1 w:0) + // Proof: Instance1WorkingGroup CurrentLead (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Instance1WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance1WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Forum_1_1 CategoryById (r:1 w:1) + // Proof: Forum_1_1 CategoryById (max_values: None, max_size: Some(271), added: 2746, mode: MaxEncodedLen) // Storage: Forum_1_1 CategoryByModerator (r:1 w:1) + // Proof: Forum_1_1 CategoryByModerator (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) fn update_category_membership_of_moderator_old() -> Weight { - Weight::from_ref_time(41_130_000) + // Proof Size summary in bytes: + // Measured: `735` + // Estimated: `8422` + // Minimum execution time: 29_000 nanoseconds. + Weight::from_ref_time(30_000_000) + .saturating_add(Weight::from_proof_size(8422)) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } // Storage: Instance1WorkingGroup CurrentLead (r:1 w:0) + // Proof: Instance1WorkingGroup CurrentLead (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Instance1WorkingGroup WorkerById (r:1 w:0) - // Storage: Forum_1_1 CategoryById (r:1 w:1) + // Proof: Instance1WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) + // Storage: Forum_1_1 CategoryById (r:6 w:1) + // Proof: Forum_1_1 CategoryById (max_values: None, max_size: Some(271), added: 2746, mode: MaxEncodedLen) + /// The range of component `i` is `[1, 6]`. fn update_category_archival_status_lead(i: u32, ) -> Weight { - Weight::from_ref_time(29_526_000) - // Standard Error: 31_000 - .saturating_add(Weight::from_ref_time(4_275_000).saturating_mul(i.into())) + // Proof Size summary in bytes: + // Measured: `507 + i * (151 ±0)` + // Estimated: `3153 + i * (2746 ±0)` + // Minimum execution time: 26_000 nanoseconds. + Weight::from_ref_time(23_700_000) + .saturating_add(Weight::from_proof_size(3153)) + // Standard Error: 141_421 + .saturating_add(Weight::from_ref_time(2_800_000).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(1_u64)) + .saturating_add(Weight::from_proof_size(2746).saturating_mul(i.into())) } // Storage: Instance1WorkingGroup WorkerById (r:1 w:0) - // Storage: Forum_1_1 CategoryById (r:1 w:1) - // Storage: Forum_1_1 CategoryByModerator (r:1 w:0) + // Proof: Instance1WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) + // Storage: Forum_1_1 CategoryById (r:6 w:1) + // Proof: Forum_1_1 CategoryById (max_values: None, max_size: Some(271), added: 2746, mode: MaxEncodedLen) + // Storage: Forum_1_1 CategoryByModerator (r:6 w:0) + // Proof: Forum_1_1 CategoryByModerator (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) + /// The range of component `i` is `[1, 6]`. fn update_category_archival_status_moderator(i: u32, ) -> Weight { - Weight::from_ref_time(27_321_000) - // Standard Error: 42_000 - .saturating_add(Weight::from_ref_time(7_882_000).saturating_mul(i.into())) + // Proof Size summary in bytes: + // Measured: `577 + i * (151 ±0)` + // Estimated: `2650 + i * (5269 ±0)` + // Minimum execution time: 26_000 nanoseconds. + Weight::from_ref_time(21_900_000) + .saturating_add(Weight::from_proof_size(2650)) + // Standard Error: 141_421 + .saturating_add(Weight::from_ref_time(4_600_000).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(1_u64)) + .saturating_add(Weight::from_proof_size(5269).saturating_mul(i.into())) } // Storage: Instance1WorkingGroup CurrentLead (r:1 w:0) + // Proof: Instance1WorkingGroup CurrentLead (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Instance1WorkingGroup WorkerById (r:1 w:0) - // Storage: Forum_1_1 CategoryById (r:1 w:1) + // Proof: Instance1WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) + // Storage: Forum_1_1 CategoryById (r:6 w:1) + // Proof: Forum_1_1 CategoryById (max_values: None, max_size: Some(271), added: 2746, mode: MaxEncodedLen) + /// The range of component `i` is `[1, 6]`. + /// The range of component `j` is `[0, 99]`. fn update_category_title_lead(i: u32, j: u32, ) -> Weight { - Weight::from_ref_time(28_858_000) - // Standard Error: 110_000 - .saturating_add(Weight::from_ref_time(4_526_000).saturating_mul(i.into())) - // Standard Error: 2_000 - .saturating_add(Weight::from_ref_time(1_260_000).saturating_mul(j.into())) + // Proof Size summary in bytes: + // Measured: `507 + i * (151 ±0)` + // Estimated: `3153 + i * (2746 ±0)` + // Minimum execution time: 41_000 nanoseconds. + Weight::from_ref_time(23_100_000) + .saturating_add(Weight::from_proof_size(3153)) + // Standard Error: 439_696 + .saturating_add(Weight::from_ref_time(3_400_000).saturating_mul(i.into())) + // Standard Error: 22_206 + .saturating_add(Weight::from_ref_time(1_237_373).saturating_mul(j.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(1_u64)) + .saturating_add(Weight::from_proof_size(2746).saturating_mul(i.into())) } // Storage: Instance1WorkingGroup WorkerById (r:1 w:0) - // Storage: Forum_1_1 CategoryById (r:1 w:1) - // Storage: Forum_1_1 CategoryByModerator (r:1 w:0) + // Proof: Instance1WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) + // Storage: Forum_1_1 CategoryById (r:6 w:1) + // Proof: Forum_1_1 CategoryById (max_values: None, max_size: Some(271), added: 2746, mode: MaxEncodedLen) + // Storage: Forum_1_1 CategoryByModerator (r:6 w:0) + // Proof: Forum_1_1 CategoryByModerator (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) + /// The range of component `i` is `[1, 6]`. + /// The range of component `j` is `[0, 99]`. fn update_category_title_moderator(i: u32, j: u32, ) -> Weight { - Weight::from_ref_time(28_478_000) - // Standard Error: 85_000 - .saturating_add(Weight::from_ref_time(7_917_000).saturating_mul(i.into())) - // Standard Error: 1_000 - .saturating_add(Weight::from_ref_time(1_247_000).saturating_mul(j.into())) + // Proof Size summary in bytes: + // Measured: `577 + i * (151 ±0)` + // Estimated: `2650 + i * (5269 ±0)` + // Minimum execution time: 51_000 nanoseconds. + Weight::from_ref_time(16_100_000) + .saturating_add(Weight::from_proof_size(2650)) + // Standard Error: 115_470 + .saturating_add(Weight::from_ref_time(5_900_000).saturating_mul(i.into())) + // Standard Error: 5_831 + .saturating_add(Weight::from_ref_time(1_297_979).saturating_mul(j.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(1_u64)) + .saturating_add(Weight::from_proof_size(5269).saturating_mul(i.into())) } // Storage: Instance1WorkingGroup CurrentLead (r:1 w:0) + // Proof: Instance1WorkingGroup CurrentLead (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Instance1WorkingGroup WorkerById (r:1 w:0) - // Storage: Forum_1_1 CategoryById (r:1 w:1) + // Proof: Instance1WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) + // Storage: Forum_1_1 CategoryById (r:6 w:1) + // Proof: Forum_1_1 CategoryById (max_values: None, max_size: Some(271), added: 2746, mode: MaxEncodedLen) + /// The range of component `i` is `[1, 6]`. + /// The range of component `j` is `[0, 99]`. fn update_category_description_lead(i: u32, j: u32, ) -> Weight { - Weight::from_ref_time(29_028_000) - // Standard Error: 77_000 - .saturating_add(Weight::from_ref_time(4_510_000).saturating_mul(i.into())) - // Standard Error: 1_000 - .saturating_add(Weight::from_ref_time(1_259_000).saturating_mul(j.into())) + // Proof Size summary in bytes: + // Measured: `507 + i * (151 ±0)` + // Estimated: `3153 + i * (2746 ±0)` + // Minimum execution time: 41_000 nanoseconds. + Weight::from_ref_time(27_700_000) + .saturating_add(Weight::from_proof_size(3153)) + // Standard Error: 115_470 + .saturating_add(Weight::from_ref_time(2_300_000).saturating_mul(i.into())) + // Standard Error: 5_831 + .saturating_add(Weight::from_ref_time(1_242_424).saturating_mul(j.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(1_u64)) + .saturating_add(Weight::from_proof_size(2746).saturating_mul(i.into())) } // Storage: Instance1WorkingGroup WorkerById (r:1 w:0) - // Storage: Forum_1_1 CategoryById (r:1 w:1) - // Storage: Forum_1_1 CategoryByModerator (r:1 w:0) + // Proof: Instance1WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) + // Storage: Forum_1_1 CategoryById (r:6 w:1) + // Proof: Forum_1_1 CategoryById (max_values: None, max_size: Some(271), added: 2746, mode: MaxEncodedLen) + // Storage: Forum_1_1 CategoryByModerator (r:6 w:0) + // Proof: Forum_1_1 CategoryByModerator (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) + /// The range of component `i` is `[1, 6]`. + /// The range of component `j` is `[0, 99]`. fn update_category_description_moderator(i: u32, j: u32, ) -> Weight { - Weight::from_ref_time(28_376_000) - // Standard Error: 63_000 - .saturating_add(Weight::from_ref_time(7_871_000).saturating_mul(i.into())) - // Standard Error: 1_000 - .saturating_add(Weight::from_ref_time(1_251_000).saturating_mul(j.into())) + // Proof Size summary in bytes: + // Measured: `577 + i * (151 ±0)` + // Estimated: `2650 + i * (5269 ±0)` + // Minimum execution time: 50_000 nanoseconds. + Weight::from_ref_time(24_000_000) + .saturating_add(Weight::from_proof_size(2650)) + // Standard Error: 182_574 + .saturating_add(Weight::from_ref_time(4_500_000).saturating_mul(i.into())) + // Standard Error: 9_220 + .saturating_add(Weight::from_ref_time(1_227_272).saturating_mul(j.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(1_u64)) + .saturating_add(Weight::from_proof_size(5269).saturating_mul(i.into())) } // Storage: Instance1WorkingGroup CurrentLead (r:1 w:0) + // Proof: Instance1WorkingGroup CurrentLead (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Instance1WorkingGroup WorkerById (r:1 w:0) - // Storage: Forum_1_1 CategoryById (r:1 w:1) + // Proof: Instance1WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) + // Storage: Forum_1_1 CategoryById (r:6 w:2) + // Proof: Forum_1_1 CategoryById (max_values: None, max_size: Some(271), added: 2746, mode: MaxEncodedLen) // Storage: Forum_1_1 CategoryCounter (r:1 w:1) + // Proof: Forum_1_1 CategoryCounter (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) + /// The range of component `i` is `[1, 6]`. fn delete_category_lead(i: u32, ) -> Weight { - Weight::from_ref_time(31_586_000) - // Standard Error: 160_000 - .saturating_add(Weight::from_ref_time(5_142_000).saturating_mul(i.into())) + // Proof Size summary in bytes: + // Measured: `507 + i * (151 ±0)` + // Estimated: `3656 + i * (2746 ±0)` + // Minimum execution time: 24_000 nanoseconds. + Weight::from_ref_time(19_900_000) + .saturating_add(Weight::from_proof_size(3656)) + // Standard Error: 100_000 + .saturating_add(Weight::from_ref_time(4_100_000).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(2_u64)) + .saturating_add(Weight::from_proof_size(2746).saturating_mul(i.into())) } // Storage: Instance1WorkingGroup WorkerById (r:1 w:0) - // Storage: Forum_1_1 CategoryById (r:3 w:2) - // Storage: Forum_1_1 CategoryByModerator (r:2 w:0) + // Proof: Instance1WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) + // Storage: Forum_1_1 CategoryById (r:6 w:2) + // Proof: Forum_1_1 CategoryById (max_values: None, max_size: Some(271), added: 2746, mode: MaxEncodedLen) + // Storage: Forum_1_1 CategoryByModerator (r:5 w:0) + // Proof: Forum_1_1 CategoryByModerator (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) // Storage: Forum_1_1 CategoryCounter (r:1 w:1) + // Proof: Forum_1_1 CategoryCounter (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) + /// The range of component `i` is `[3, 6]`. fn delete_category_moderator(i: u32, ) -> Weight { - Weight::from_ref_time(29_291_000) - // Standard Error: 42_000 - .saturating_add(Weight::from_ref_time(8_080_000).saturating_mul(i.into())) + // Proof Size summary in bytes: + // Measured: `580 + i * (151 ±0)` + // Estimated: `8199 + i * (3755 ±0)` + // Minimum execution time: 38_000 nanoseconds. + Weight::from_ref_time(24_000_000) + .saturating_add(Weight::from_proof_size(8199)) + // Standard Error: 333_333 + .saturating_add(Weight::from_ref_time(4_666_666).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(3_u64)) + .saturating_add(Weight::from_proof_size(3755).saturating_mul(i.into())) } // Storage: Membership MembershipById (r:1 w:0) - // Storage: Forum_1_1 CategoryById (r:1 w:1) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) + // Storage: Forum_1_1 CategoryById (r:6 w:1) + // Proof: Forum_1_1 CategoryById (max_values: None, max_size: Some(271), added: 2746, mode: MaxEncodedLen) // Storage: System Account (r:2 w:2) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) // Storage: Forum_1_1 NextThreadId (r:1 w:1) + // Proof: Forum_1_1 NextThreadId (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Forum_1_1 ThreadById (r:1 w:1) + // Proof: Forum_1_1 ThreadById (max_values: None, max_size: Some(121), added: 2596, mode: MaxEncodedLen) // Storage: Forum_1_1 NextPostId (r:1 w:1) + // Proof: Forum_1_1 NextPostId (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Forum_1_1 PostById (r:0 w:1) + // Proof: Forum_1_1 PostById (max_values: None, max_size: Some(149), added: 2624, mode: MaxEncodedLen) + /// The range of component `i` is `[1, 6]`. + /// The range of component `j` is `[0, 100]`. + /// The range of component `k` is `[0, 100]`. fn create_thread(i: u32, j: u32, k: u32, ) -> Weight { - Weight::from_ref_time(96_321_000) - // Standard Error: 345_000 - .saturating_add(Weight::from_ref_time(7_680_000).saturating_mul(i.into())) - // Standard Error: 8_000 - .saturating_add(Weight::from_ref_time(610_000).saturating_mul(j.into())) - // Standard Error: 8_000 - .saturating_add(Weight::from_ref_time(1_693_000).saturating_mul(k.into())) + // Proof Size summary in bytes: + // Measured: `684 + i * (151 ±0)` + // Estimated: `11408 + i * (2746 ±0)` + // Minimum execution time: 145_000 nanoseconds. + Weight::from_ref_time(91_400_000) + .saturating_add(Weight::from_proof_size(11408)) + // Standard Error: 1_636_306 + .saturating_add(Weight::from_ref_time(2_100_000).saturating_mul(i.into())) + // Standard Error: 81_815 + .saturating_add(Weight::from_ref_time(435_000).saturating_mul(j.into())) + // Standard Error: 81_815 + .saturating_add(Weight::from_ref_time(1_465_000).saturating_mul(k.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(7_u64)) + .saturating_add(Weight::from_proof_size(2746).saturating_mul(i.into())) } // Storage: Membership MembershipById (r:1 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: Forum_1_1 ThreadById (r:1 w:0) - // Storage: Forum_1_1 CategoryById (r:1 w:0) + // Proof: Forum_1_1 ThreadById (max_values: None, max_size: Some(121), added: 2596, mode: MaxEncodedLen) + // Storage: Forum_1_1 CategoryById (r:6 w:0) + // Proof: Forum_1_1 CategoryById (max_values: None, max_size: Some(271), added: 2746, mode: MaxEncodedLen) + /// The range of component `i` is `[1, 6]`. + /// The range of component `j` is `[0, 100]`. fn edit_thread_metadata(i: u32, j: u32, ) -> Weight { - Weight::from_ref_time(29_622_000) - // Standard Error: 55_000 - .saturating_add(Weight::from_ref_time(4_635_000).saturating_mul(i.into())) - // Standard Error: 1_000 - .saturating_add(Weight::from_ref_time(733_000).saturating_mul(j.into())) + // Proof Size summary in bytes: + // Measured: `637 + i * (151 ±0)` + // Estimated: `5196 + i * (2746 ±0)` + // Minimum execution time: 40_000 nanoseconds. + Weight::from_ref_time(20_200_000) + .saturating_add(Weight::from_proof_size(5196)) + // Standard Error: 1_675_310 + .saturating_add(Weight::from_ref_time(3_300_000).saturating_mul(i.into())) + // Standard Error: 83_765 + .saturating_add(Weight::from_ref_time(555_000).saturating_mul(j.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) + .saturating_add(Weight::from_proof_size(2746).saturating_mul(i.into())) } // Storage: Forum_1_1 ThreadById (r:1 w:1) - // Storage: Forum_1_1 CategoryById (r:1 w:1) + // Proof: Forum_1_1 ThreadById (max_values: None, max_size: Some(121), added: 2596, mode: MaxEncodedLen) + // Storage: Forum_1_1 CategoryById (r:6 w:1) + // Proof: Forum_1_1 CategoryById (max_values: None, max_size: Some(271), added: 2746, mode: MaxEncodedLen) // Storage: Membership MembershipById (r:1 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: System Account (r:2 w:2) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// The range of component `i` is `[1, 6]`. fn delete_thread(i: u32, ) -> Weight { - Weight::from_ref_time(66_086_000) - // Standard Error: 57_000 - .saturating_add(Weight::from_ref_time(4_377_000).saturating_mul(i.into())) + // Proof Size summary in bytes: + // Measured: `948 + i * (151 ±0)` + // Estimated: `10402 + i * (2746 ±0)` + // Minimum execution time: 48_000 nanoseconds. + Weight::from_ref_time(44_900_000) + .saturating_add(Weight::from_proof_size(10402)) + // Standard Error: 316_227 + .saturating_add(Weight::from_ref_time(3_600_000).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(4_u64)) + .saturating_add(Weight::from_proof_size(2746).saturating_mul(i.into())) } // Storage: Instance1WorkingGroup CurrentLead (r:1 w:0) + // Proof: Instance1WorkingGroup CurrentLead (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Instance1WorkingGroup WorkerById (r:1 w:0) - // Storage: Forum_1_1 CategoryById (r:2 w:2) + // Proof: Instance1WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) + // Storage: Forum_1_1 CategoryById (r:6 w:2) + // Proof: Forum_1_1 CategoryById (max_values: None, max_size: Some(271), added: 2746, mode: MaxEncodedLen) // Storage: Forum_1_1 ThreadById (r:1 w:2) + // Proof: Forum_1_1 ThreadById (max_values: None, max_size: Some(121), added: 2596, mode: MaxEncodedLen) + /// The range of component `i` is `[1, 6]`. fn move_thread_to_category_lead(i: u32, ) -> Weight { - Weight::from_ref_time(48_374_000) - // Standard Error: 138_000 - .saturating_add(Weight::from_ref_time(5_455_000).saturating_mul(i.into())) + // Proof Size summary in bytes: + // Measured: `859 + i * (122 ±0)` + // Estimated: `9044 + i * (2197 ±0)` + // Minimum execution time: 40_000 nanoseconds. + Weight::from_ref_time(36_100_000) + .saturating_add(Weight::from_proof_size(9044)) + // Standard Error: 100_000 + .saturating_add(Weight::from_ref_time(3_900_000).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(4_u64)) + .saturating_add(Weight::from_proof_size(2197).saturating_mul(i.into())) } // Storage: Instance1WorkingGroup WorkerById (r:1 w:0) - // Storage: Forum_1_1 CategoryById (r:2 w:2) - // Storage: Forum_1_1 CategoryByModerator (r:2 w:0) + // Proof: Instance1WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) + // Storage: Forum_1_1 CategoryById (r:7 w:2) + // Proof: Forum_1_1 CategoryById (max_values: None, max_size: Some(271), added: 2746, mode: MaxEncodedLen) + // Storage: Forum_1_1 CategoryByModerator (r:7 w:0) + // Proof: Forum_1_1 CategoryByModerator (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) // Storage: Forum_1_1 ThreadById (r:1 w:2) + // Proof: Forum_1_1 ThreadById (max_values: None, max_size: Some(121), added: 2596, mode: MaxEncodedLen) + /// The range of component `i` is `[1, 6]`. fn move_thread_to_category_moderator(i: u32, ) -> Weight { - Weight::from_ref_time(50_636_000) - // Standard Error: 74_000 - .saturating_add(Weight::from_ref_time(12_010_000).saturating_mul(i.into())) + // Proof Size summary in bytes: + // Measured: `925 + i * (187 ±0)` + // Estimated: `10515 + i * (5269 ±0)` + // Minimum execution time: 48_000 nanoseconds. + Weight::from_ref_time(41_800_000) + .saturating_add(Weight::from_proof_size(10515)) + // Standard Error: 223_606 + .saturating_add(Weight::from_ref_time(6_700_000).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(4_u64)) + .saturating_add(Weight::from_proof_size(5269).saturating_mul(i.into())) } // Storage: Instance1WorkingGroup CurrentLead (r:1 w:0) + // Proof: Instance1WorkingGroup CurrentLead (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Instance1WorkingGroup WorkerById (r:1 w:0) - // Storage: Forum_1_1 CategoryById (r:1 w:1) + // Proof: Instance1WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) + // Storage: Forum_1_1 CategoryById (r:6 w:1) + // Proof: Forum_1_1 CategoryById (max_values: None, max_size: Some(271), added: 2746, mode: MaxEncodedLen) // Storage: Forum_1_1 ThreadById (r:1 w:1) + // Proof: Forum_1_1 ThreadById (max_values: None, max_size: Some(121), added: 2596, mode: MaxEncodedLen) // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// The range of component `i` is `[1, 6]`. + /// The range of component `k` is `[0, 100]`. fn moderate_thread_lead(i: u32, k: u32, ) -> Weight { - Weight::from_ref_time(60_089_000) - // Standard Error: 184_000 - .saturating_add(Weight::from_ref_time(5_115_000).saturating_mul(i.into())) - // Standard Error: 5_000 - .saturating_add(Weight::from_ref_time(743_000).saturating_mul(k.into())) + // Proof Size summary in bytes: + // Measured: `823 + i * (151 ±0)` + // Estimated: `8352 + i * (2746 ±0)` + // Minimum execution time: 62_000 nanoseconds. + Weight::from_ref_time(45_100_000) + .saturating_add(Weight::from_proof_size(8352)) + // Standard Error: 1_677_299 + .saturating_add(Weight::from_ref_time(2_900_000).saturating_mul(i.into())) + // Standard Error: 83_864 + .saturating_add(Weight::from_ref_time(545_000).saturating_mul(k.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(3_u64)) + .saturating_add(Weight::from_proof_size(2746).saturating_mul(i.into())) } // Storage: Instance1WorkingGroup WorkerById (r:1 w:0) - // Storage: Forum_1_1 CategoryById (r:1 w:1) - // Storage: Forum_1_1 CategoryByModerator (r:1 w:0) + // Proof: Instance1WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) + // Storage: Forum_1_1 CategoryById (r:6 w:1) + // Proof: Forum_1_1 CategoryById (max_values: None, max_size: Some(271), added: 2746, mode: MaxEncodedLen) + // Storage: Forum_1_1 CategoryByModerator (r:6 w:0) + // Proof: Forum_1_1 CategoryByModerator (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) // Storage: Forum_1_1 ThreadById (r:1 w:1) + // Proof: Forum_1_1 ThreadById (max_values: None, max_size: Some(121), added: 2596, mode: MaxEncodedLen) // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// The range of component `i` is `[1, 6]`. + /// The range of component `k` is `[0, 100]`. fn moderate_thread_moderator(i: u32, k: u32, ) -> Weight { - Weight::from_ref_time(59_169_000) - // Standard Error: 181_000 - .saturating_add(Weight::from_ref_time(8_646_000).saturating_mul(i.into())) - // Standard Error: 5_000 - .saturating_add(Weight::from_ref_time(740_000).saturating_mul(k.into())) + // Proof Size summary in bytes: + // Measured: `896 + i * (151 ±0)` + // Estimated: `7849 + i * (5269 ±0)` + // Minimum execution time: 72_000 nanoseconds. + Weight::from_ref_time(45_000_000) + .saturating_add(Weight::from_proof_size(7849)) + // Standard Error: 1_675_310 + .saturating_add(Weight::from_ref_time(4_500_000).saturating_mul(i.into())) + // Standard Error: 83_765 + .saturating_add(Weight::from_ref_time(545_000).saturating_mul(k.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(3_u64)) + .saturating_add(Weight::from_proof_size(5269).saturating_mul(i.into())) } // Storage: Membership MembershipById (r:1 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: Forum_1_1 ThreadById (r:1 w:1) - // Storage: Forum_1_1 CategoryById (r:1 w:0) + // Proof: Forum_1_1 ThreadById (max_values: None, max_size: Some(121), added: 2596, mode: MaxEncodedLen) + // Storage: Forum_1_1 CategoryById (r:6 w:0) + // Proof: Forum_1_1 CategoryById (max_values: None, max_size: Some(271), added: 2746, mode: MaxEncodedLen) // Storage: System Account (r:2 w:2) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) // Storage: Forum_1_1 NextPostId (r:1 w:1) + // Proof: Forum_1_1 NextPostId (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Forum_1_1 PostById (r:0 w:1) + // Proof: Forum_1_1 PostById (max_values: None, max_size: Some(149), added: 2624, mode: MaxEncodedLen) + /// The range of component `i` is `[1, 6]`. + /// The range of component `j` is `[0, 100]`. fn add_post(i: u32, j: u32, ) -> Weight { - Weight::from_ref_time(85_914_000) - // Standard Error: 109_000 - .saturating_add(Weight::from_ref_time(4_693_000).saturating_mul(i.into())) - // Standard Error: 3_000 - .saturating_add(Weight::from_ref_time(1_679_000).saturating_mul(j.into())) + // Proof Size summary in bytes: + // Measured: `981 + i * (151 ±0)` + // Estimated: `10905 + i * (2746 ±0)` + // Minimum execution time: 78_000 nanoseconds. + Weight::from_ref_time(58_200_000) + .saturating_add(Weight::from_proof_size(10905)) + // Standard Error: 752_772 + .saturating_add(Weight::from_ref_time(3_300_000).saturating_mul(i.into())) + // Standard Error: 37_638 + .saturating_add(Weight::from_ref_time(1_560_000).saturating_mul(j.into())) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(5_u64)) + .saturating_add(Weight::from_proof_size(2746).saturating_mul(i.into())) } // Storage: Membership MembershipById (r:1 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: Forum_1_1 ThreadById (r:1 w:0) + // Proof: Forum_1_1 ThreadById (max_values: None, max_size: Some(121), added: 2596, mode: MaxEncodedLen) // Storage: Forum_1_1 PostById (r:1 w:1) - // Storage: Forum_1_1 CategoryById (r:1 w:0) + // Proof: Forum_1_1 PostById (max_values: None, max_size: Some(149), added: 2624, mode: MaxEncodedLen) + // Storage: Forum_1_1 CategoryById (r:6 w:0) + // Proof: Forum_1_1 CategoryById (max_values: None, max_size: Some(271), added: 2746, mode: MaxEncodedLen) + /// The range of component `i` is `[1, 6]`. + /// The range of component `j` is `[0, 100]`. fn edit_post_text(i: u32, j: u32, ) -> Weight { - Weight::from_ref_time(42_885_000) - // Standard Error: 150_000 - .saturating_add(Weight::from_ref_time(4_682_000).saturating_mul(i.into())) - // Standard Error: 4_000 - .saturating_add(Weight::from_ref_time(1_674_000).saturating_mul(j.into())) + // Proof Size summary in bytes: + // Measured: `816 + i * (151 ±0)` + // Estimated: `7820 + i * (2746 ±0)` + // Minimum execution time: 49_000 nanoseconds. + Weight::from_ref_time(32_000_000) + .saturating_add(Weight::from_proof_size(7820)) + // Standard Error: 1_754_992 + .saturating_add(Weight::from_ref_time(3_000_000).saturating_mul(i.into())) + // Standard Error: 87_749 + .saturating_add(Weight::from_ref_time(1_575_000).saturating_mul(j.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(1_u64)) + .saturating_add(Weight::from_proof_size(2746).saturating_mul(i.into())) } // Storage: Instance1WorkingGroup CurrentLead (r:1 w:0) + // Proof: Instance1WorkingGroup CurrentLead (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Instance1WorkingGroup WorkerById (r:1 w:0) - // Storage: Forum_1_1 CategoryById (r:1 w:0) + // Proof: Instance1WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) + // Storage: Forum_1_1 CategoryById (r:6 w:0) + // Proof: Forum_1_1 CategoryById (max_values: None, max_size: Some(271), added: 2746, mode: MaxEncodedLen) // Storage: Forum_1_1 ThreadById (r:1 w:1) + // Proof: Forum_1_1 ThreadById (max_values: None, max_size: Some(121), added: 2596, mode: MaxEncodedLen) // Storage: Forum_1_1 PostById (r:1 w:1) + // Proof: Forum_1_1 PostById (max_values: None, max_size: Some(149), added: 2624, mode: MaxEncodedLen) // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// The range of component `i` is `[1, 6]`. + /// The range of component `j` is `[0, 100]`. fn moderate_post_lead(i: u32, j: u32, ) -> Weight { - Weight::from_ref_time(72_664_000) - // Standard Error: 63_000 - .saturating_add(Weight::from_ref_time(6_328_000).saturating_mul(i.into())) - // Standard Error: 1_000 - .saturating_add(Weight::from_ref_time(727_000).saturating_mul(j.into())) + // Proof Size summary in bytes: + // Measured: `1035 + i * (151 ±0)` + // Estimated: `10976 + i * (2746 ±0)` + // Minimum execution time: 77_000 nanoseconds. + Weight::from_ref_time(51_700_000) + .saturating_add(Weight::from_proof_size(10976)) + // Standard Error: 1_792_577 + .saturating_add(Weight::from_ref_time(4_300_000).saturating_mul(i.into())) + // Standard Error: 89_628 + .saturating_add(Weight::from_ref_time(565_000).saturating_mul(j.into())) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(3_u64)) + .saturating_add(Weight::from_proof_size(2746).saturating_mul(i.into())) } // Storage: Instance1WorkingGroup WorkerById (r:1 w:0) - // Storage: Forum_1_1 CategoryById (r:1 w:0) - // Storage: Forum_1_1 CategoryByModerator (r:1 w:0) + // Proof: Instance1WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) + // Storage: Forum_1_1 CategoryById (r:6 w:0) + // Proof: Forum_1_1 CategoryById (max_values: None, max_size: Some(271), added: 2746, mode: MaxEncodedLen) + // Storage: Forum_1_1 CategoryByModerator (r:6 w:0) + // Proof: Forum_1_1 CategoryByModerator (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) // Storage: Forum_1_1 ThreadById (r:1 w:1) + // Proof: Forum_1_1 ThreadById (max_values: None, max_size: Some(121), added: 2596, mode: MaxEncodedLen) // Storage: Forum_1_1 PostById (r:1 w:1) + // Proof: Forum_1_1 PostById (max_values: None, max_size: Some(149), added: 2624, mode: MaxEncodedLen) // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// The range of component `i` is `[1, 6]`. + /// The range of component `j` is `[0, 100]`. fn moderate_post_moderator(i: u32, j: u32, ) -> Weight { - Weight::from_ref_time(76_596_000) - // Standard Error: 122_000 - .saturating_add(Weight::from_ref_time(9_194_000).saturating_mul(i.into())) - // Standard Error: 3_000 - .saturating_add(Weight::from_ref_time(726_000).saturating_mul(j.into())) + // Proof Size summary in bytes: + // Measured: `1108 + i * (151 ±0)` + // Estimated: `10473 + i * (5269 ±0)` + // Minimum execution time: 87_000 nanoseconds. + Weight::from_ref_time(56_200_000) + .saturating_add(Weight::from_proof_size(10473)) + // Standard Error: 1_870_828 + .saturating_add(Weight::from_ref_time(5_300_000).saturating_mul(i.into())) + // Standard Error: 93_541 + .saturating_add(Weight::from_ref_time(555_000).saturating_mul(j.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(3_u64)) + .saturating_add(Weight::from_proof_size(5269).saturating_mul(i.into())) } // Storage: Forum_1_1 ThreadById (r:1 w:1) + // Proof: Forum_1_1 ThreadById (max_values: None, max_size: Some(121), added: 2596, mode: MaxEncodedLen) // Storage: Forum_1_1 PostById (r:20 w:20) - // Storage: Forum_1_1 CategoryById (r:1 w:0) + // Proof: Forum_1_1 PostById (max_values: None, max_size: Some(149), added: 2624, mode: MaxEncodedLen) + // Storage: Forum_1_1 CategoryById (r:6 w:0) + // Proof: Forum_1_1 CategoryById (max_values: None, max_size: Some(271), added: 2746, mode: MaxEncodedLen) // Storage: Membership MembershipById (r:1 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: System Account (r:2 w:2) - fn delete_posts(i: u32, j: u32, k: u32, ) -> Weight { - Weight::from_ref_time(0) - // Standard Error: 316_000 - .saturating_add(Weight::from_ref_time(36_264_000).saturating_mul(i.into())) - // Standard Error: 8_000 - .saturating_add(Weight::from_ref_time(739_000).saturating_mul(j.into())) - // Standard Error: 56_000 - .saturating_add(Weight::from_ref_time(49_827_000).saturating_mul(k.into())) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// The range of component `i` is `[1, 6]`. + /// The range of component `j` is `[0, 100]`. + /// The range of component `k` is `[1, 20]`. + fn delete_posts(i: u32, _j: u32, k: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `1097 + i * (151 ±0) + k * (132 ±0)` + // Estimated: `10402 + k * (2624 ±0) + i * (2746 ±0)` + // Minimum execution time: 126_000 nanoseconds. + Weight::from_ref_time(126_000_000) + .saturating_add(Weight::from_proof_size(10402)) + // Standard Error: 6_233_050 + .saturating_add(Weight::from_ref_time(7_382_472).saturating_mul(i.into())) + // Standard Error: 1_780_788 + .saturating_add(Weight::from_ref_time(31_743_476).saturating_mul(k.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(k.into()))) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(k.into()))) + .saturating_add(Weight::from_proof_size(2624).saturating_mul(k.into())) + .saturating_add(Weight::from_proof_size(2746).saturating_mul(i.into())) } // Storage: Instance1WorkingGroup CurrentLead (r:1 w:0) + // Proof: Instance1WorkingGroup CurrentLead (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Instance1WorkingGroup WorkerById (r:1 w:0) - // Storage: Forum_1_1 CategoryById (r:1 w:1) + // Proof: Instance1WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) + // Storage: Forum_1_1 CategoryById (r:6 w:1) + // Proof: Forum_1_1 CategoryById (max_values: None, max_size: Some(271), added: 2746, mode: MaxEncodedLen) // Storage: Forum_1_1 ThreadById (r:20 w:0) + // Proof: Forum_1_1 ThreadById (max_values: None, max_size: Some(121), added: 2596, mode: MaxEncodedLen) + /// The range of component `i` is `[1, 6]`. + /// The range of component `j` is `[0, 20]`. fn set_stickied_threads_lead(i: u32, j: u32, ) -> Weight { - Weight::from_ref_time(28_495_000) - // Standard Error: 66_000 - .saturating_add(Weight::from_ref_time(4_694_000).saturating_mul(i.into())) - // Standard Error: 12_000 - .saturating_add(Weight::from_ref_time(6_976_000).saturating_mul(j.into())) + // Proof Size summary in bytes: + // Measured: `507 + i * (151 ±0) + j * (107 ±0)` + // Estimated: `3282 + j * (2590 ±0) + i * (2746 ±0)` + // Minimum execution time: 41_000 nanoseconds. + Weight::from_ref_time(20_600_000) + .saturating_add(Weight::from_proof_size(3282)) + // Standard Error: 230_940 + .saturating_add(Weight::from_ref_time(3_400_000).saturating_mul(i.into())) + // Standard Error: 57_735 + .saturating_add(Weight::from_ref_time(4_250_000).saturating_mul(j.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(j.into()))) .saturating_add(T::DbWeight::get().writes(1_u64)) + .saturating_add(Weight::from_proof_size(2590).saturating_mul(j.into())) + .saturating_add(Weight::from_proof_size(2746).saturating_mul(i.into())) } // Storage: Instance1WorkingGroup WorkerById (r:1 w:0) - // Storage: Forum_1_1 CategoryById (r:1 w:1) - // Storage: Forum_1_1 CategoryByModerator (r:1 w:0) + // Proof: Instance1WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) + // Storage: Forum_1_1 CategoryById (r:6 w:1) + // Proof: Forum_1_1 CategoryById (max_values: None, max_size: Some(271), added: 2746, mode: MaxEncodedLen) + // Storage: Forum_1_1 CategoryByModerator (r:6 w:0) + // Proof: Forum_1_1 CategoryByModerator (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) // Storage: Forum_1_1 ThreadById (r:20 w:0) + // Proof: Forum_1_1 ThreadById (max_values: None, max_size: Some(121), added: 2596, mode: MaxEncodedLen) + /// The range of component `i` is `[1, 6]`. + /// The range of component `j` is `[0, 20]`. fn set_stickied_threads_moderator(i: u32, j: u32, ) -> Weight { - Weight::from_ref_time(26_618_000) - // Standard Error: 74_000 - .saturating_add(Weight::from_ref_time(8_377_000).saturating_mul(i.into())) - // Standard Error: 14_000 - .saturating_add(Weight::from_ref_time(7_274_000).saturating_mul(j.into())) + // Proof Size summary in bytes: + // Measured: `577 + i * (151 ±0) + j * (107 ±0)` + // Estimated: `2779 + i * (5269 ±0) + j * (2590 ±0)` + // Minimum execution time: 49_000 nanoseconds. + Weight::from_ref_time(24_300_000) + .saturating_add(Weight::from_proof_size(2779)) + // Standard Error: 496_655 + .saturating_add(Weight::from_ref_time(4_200_000).saturating_mul(i.into())) + // Standard Error: 124_163 + .saturating_add(Weight::from_ref_time(4_225_000).saturating_mul(j.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(j.into()))) .saturating_add(T::DbWeight::get().writes(1_u64)) + .saturating_add(Weight::from_proof_size(5269).saturating_mul(i.into())) + .saturating_add(Weight::from_proof_size(2590).saturating_mul(j.into())) } } @@ -486,7 +782,7 @@ impl WeightInfo for () { fn moderate_post_moderator(i: u32, j: u32, ) -> Weight { Weight::from_ref_time(0) } - fn delete_posts(i: u32, j: u32, k: u32, ) -> Weight { + fn delete_posts(i: u32, _j: u32, k: u32, ) -> Weight { Weight::from_ref_time(0) } fn set_stickied_threads_lead(i: u32, j: u32, ) -> Weight { diff --git a/runtime-modules/membership/src/weights.rs b/runtime-modules/membership/src/weights.rs index d3c49f6d6f..6af9770c98 100644 --- a/runtime-modules/membership/src/weights.rs +++ b/runtime-modules/membership/src/weights.rs @@ -18,19 +18,18 @@ //! Autogenerated weights for membership //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-10-28, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! DATE: 2023-03-15, STEPS: `2`, REPEAT: 2, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("prod-test"), DB CACHE: 1024 // Executed Command: // ./scripts/../target/release/joystream-node // benchmark // pallet -// --base-path=/mnt/disks/local-ssd/ // --pallet=membership // --extrinsic=* -// --chain=dev -// --steps=50 -// --repeat=20 +// --chain=prod-test +// --steps=2 +// --repeat=2 // --execution=wasm // --template=./scripts/../devops/joystream-pallet-weight-template.hbs // --output=./scripts/../runtime-modules/membership/src/weights.rs @@ -73,187 +72,367 @@ pub trait WeightInfo { pub struct SubstrateWeight(PhantomData); impl WeightInfo for SubstrateWeight { // Storage: Membership MembershipPrice (r:1 w:0) + // Proof: Membership MembershipPrice (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) // Storage: Membership MemberIdByHandleHash (r:1 w:1) + // Proof: Membership MemberIdByHandleHash (max_values: None, max_size: Some(56), added: 2531, mode: MaxEncodedLen) // Storage: Membership InitialInvitationCount (r:1 w:0) + // Proof: Membership InitialInvitationCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Membership NextMemberId (r:1 w:1) + // Proof: Membership NextMemberId (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Membership MembershipById (r:0 w:1) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) + /// The range of component `i` is `[0, 100]`. + /// The range of component `j` is `[0, 100]`. fn buy_membership_without_referrer(i: u32, j: u32, ) -> Weight { - Weight::from_ref_time(142_226_000) - // Standard Error: 9_000 - .saturating_add(Weight::from_ref_time(1_724_000).saturating_mul(i.into())) - // Standard Error: 9_000 - .saturating_add(Weight::from_ref_time(397_000).saturating_mul(j.into())) + // Proof Size summary in bytes: + // Measured: `212` + // Estimated: `6647` + // Minimum execution time: 84_000 nanoseconds. + Weight::from_ref_time(53_000_000) + .saturating_add(Weight::from_proof_size(6647)) + // Standard Error: 90_737 + .saturating_add(Weight::from_ref_time(1_290_000).saturating_mul(i.into())) + // Standard Error: 90_737 + .saturating_add(Weight::from_ref_time(375_000).saturating_mul(j.into())) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } // Storage: Membership MembershipPrice (r:1 w:0) + // Proof: Membership MembershipPrice (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) // Storage: Membership MemberIdByHandleHash (r:1 w:1) + // Proof: Membership MemberIdByHandleHash (max_values: None, max_size: Some(56), added: 2531, mode: MaxEncodedLen) // Storage: Membership MembershipById (r:1 w:1) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: Membership InitialInvitationCount (r:1 w:0) + // Proof: Membership InitialInvitationCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Membership NextMemberId (r:1 w:1) + // Proof: Membership NextMemberId (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Membership ReferralCut (r:1 w:0) + // Proof: Membership ReferralCut (max_values: Some(1), max_size: Some(1), added: 496, mode: MaxEncodedLen) + /// The range of component `i` is `[0, 100]`. + /// The range of component `j` is `[0, 100]`. fn buy_membership_with_referrer(i: u32, j: u32, ) -> Weight { - Weight::from_ref_time(160_318_000) - // Standard Error: 10_000 - .saturating_add(Weight::from_ref_time(1_563_000).saturating_mul(i.into())) - // Standard Error: 10_000 - .saturating_add(Weight::from_ref_time(784_000).saturating_mul(j.into())) + // Proof Size summary in bytes: + // Measured: `523` + // Estimated: `9743` + // Minimum execution time: 94_000 nanoseconds. + Weight::from_ref_time(61_500_000) + .saturating_add(Weight::from_proof_size(9743)) + // Standard Error: 87_273 + .saturating_add(Weight::from_ref_time(1_360_000).saturating_mul(i.into())) + // Standard Error: 87_273 + .saturating_add(Weight::from_ref_time(385_000).saturating_mul(j.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } // Storage: Membership MembershipById (r:1 w:1) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: Membership MemberIdByHandleHash (r:1 w:2) + // Proof: Membership MemberIdByHandleHash (max_values: None, max_size: Some(56), added: 2531, mode: MaxEncodedLen) + /// The range of component `i` is `[0, 100]`. + /// The range of component `j` is `[0, 100]`. fn update_profile(i: u32, j: u32, ) -> Weight { - Weight::from_ref_time(71_164_000) - // Standard Error: 9_000 - .saturating_add(Weight::from_ref_time(1_690_000).saturating_mul(i.into())) - // Standard Error: 9_000 - .saturating_add(Weight::from_ref_time(683_000).saturating_mul(j.into())) + // Proof Size summary in bytes: + // Measured: `297` + // Estimated: `5131` + // Minimum execution time: 65_000 nanoseconds. + Weight::from_ref_time(35_500_000) + .saturating_add(Weight::from_proof_size(5131)) + // Standard Error: 92_826 + .saturating_add(Weight::from_ref_time(1_410_000).saturating_mul(i.into())) + // Standard Error: 92_826 + .saturating_add(Weight::from_ref_time(385_000).saturating_mul(j.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } fn update_accounts_none() -> Weight { - Weight::from_ref_time(1_640_000) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_000 nanoseconds. + Weight::from_ref_time(3_000_000) + .saturating_add(Weight::from_proof_size(0)) } // Storage: Membership MembershipById (r:1 w:1) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) fn update_accounts_root() -> Weight { - Weight::from_ref_time(42_330_000) + // Proof Size summary in bytes: + // Measured: `252` + // Estimated: `2600` + // Minimum execution time: 13_000 nanoseconds. + Weight::from_ref_time(14_000_000) + .saturating_add(Weight::from_proof_size(2600)) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Membership MembershipById (r:1 w:1) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) fn update_accounts_controller() -> Weight { - Weight::from_ref_time(42_100_000) + // Proof Size summary in bytes: + // Measured: `252` + // Estimated: `2600` + // Minimum execution time: 14_000 nanoseconds. + Weight::from_ref_time(14_000_000) + .saturating_add(Weight::from_proof_size(2600)) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Membership MembershipById (r:1 w:1) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) fn update_accounts_both() -> Weight { - Weight::from_ref_time(41_829_000) + // Proof Size summary in bytes: + // Measured: `252` + // Estimated: `2600` + // Minimum execution time: 13_000 nanoseconds. + Weight::from_ref_time(14_000_000) + .saturating_add(Weight::from_proof_size(2600)) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Membership ReferralCut (r:0 w:1) + // Proof: Membership ReferralCut (max_values: Some(1), max_size: Some(1), added: 496, mode: MaxEncodedLen) fn set_referral_cut() -> Weight { - Weight::from_ref_time(28_990_000) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 7_000 nanoseconds. + Weight::from_ref_time(8_000_000) + .saturating_add(Weight::from_proof_size(0)) .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Membership MembershipById (r:2 w:2) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) fn transfer_invites() -> Weight { - Weight::from_ref_time(59_190_000) + // Proof Size summary in bytes: + // Measured: `420` + // Estimated: `5200` + // Minimum execution time: 19_000 nanoseconds. + Weight::from_ref_time(19_000_000) + .saturating_add(Weight::from_proof_size(5200)) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } // Storage: Membership MembershipById (r:1 w:2) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: Membership MemberIdByHandleHash (r:1 w:1) + // Proof: Membership MemberIdByHandleHash (max_values: None, max_size: Some(56), added: 2531, mode: MaxEncodedLen) // Storage: Instance6WorkingGroup Budget (r:1 w:1) + // Proof: Instance6WorkingGroup Budget (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) // Storage: Membership InitialInvitationBalance (r:1 w:0) + // Proof: Membership InitialInvitationBalance (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) // Storage: Balances Locks (r:1 w:1) + // Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) // Storage: Membership NextMemberId (r:1 w:1) + // Proof: Membership NextMemberId (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// The range of component `i` is `[1, 100]`. + /// The range of component `j` is `[0, 100]`. fn invite_member(i: u32, j: u32, ) -> Weight { - Weight::from_ref_time(151_032_000) - // Standard Error: 7_000 - .saturating_add(Weight::from_ref_time(1_599_000).saturating_mul(i.into())) - // Standard Error: 8_000 - .saturating_add(Weight::from_ref_time(743_000).saturating_mul(j.into())) + // Proof Size summary in bytes: + // Measured: `582` + // Estimated: `13033` + // Minimum execution time: 91_000 nanoseconds. + Weight::from_ref_time(70_590_909) + .saturating_add(Weight::from_proof_size(13033)) + // Standard Error: 100_503 + .saturating_add(Weight::from_ref_time(1_409_090).saturating_mul(i.into())) + // Standard Error: 99_498 + .saturating_add(Weight::from_ref_time(270_000).saturating_mul(j.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(7_u64)) } // Storage: Membership MemberIdByHandleHash (r:1 w:1) + // Proof: Membership MemberIdByHandleHash (max_values: None, max_size: Some(56), added: 2531, mode: MaxEncodedLen) // Storage: Membership MembershipPrice (r:1 w:0) + // Proof: Membership MembershipPrice (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) // Storage: System Account (r:3 w:3) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) // Storage: Balances Locks (r:2 w:2) + // Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) // Storage: Membership NextMemberId (r:1 w:1) + // Proof: Membership NextMemberId (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Membership MembershipById (r:0 w:1) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) + /// The range of component `i` is `[1, 100]`. + /// The range of component `j` is `[0, 100]`. fn gift_membership(i: u32, j: u32, ) -> Weight { - Weight::from_ref_time(310_496_000) - // Standard Error: 7_000 - .saturating_add(Weight::from_ref_time(1_590_000).saturating_mul(i.into())) - // Standard Error: 8_000 - .saturating_add(Weight::from_ref_time(743_000).saturating_mul(j.into())) + // Proof Size summary in bytes: + // Measured: `292` + // Estimated: `18902` + // Minimum execution time: 139_000 nanoseconds. + Weight::from_ref_time(108_131_313) + .saturating_add(Weight::from_proof_size(18902)) + // Standard Error: 90_815 + .saturating_add(Weight::from_ref_time(1_368_686).saturating_mul(i.into())) + // Standard Error: 89_907 + .saturating_add(Weight::from_ref_time(370_000).saturating_mul(j.into())) .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().writes(8_u64)) } // Storage: Membership MembershipPrice (r:0 w:1) + // Proof: Membership MembershipPrice (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) fn set_membership_price() -> Weight { - Weight::from_ref_time(29_270_000) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 7_000 nanoseconds. + Weight::from_ref_time(8_000_000) + .saturating_add(Weight::from_proof_size(0)) .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Instance6WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance6WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Membership MembershipById (r:1 w:1) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) fn update_profile_verification() -> Weight { - Weight::from_ref_time(56_340_000) + // Proof Size summary in bytes: + // Measured: `665` + // Estimated: `5250` + // Minimum execution time: 19_000 nanoseconds. + Weight::from_ref_time(19_000_000) + .saturating_add(Weight::from_proof_size(5250)) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Instance6WorkingGroup CurrentLead (r:1 w:0) + // Proof: Instance6WorkingGroup CurrentLead (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Instance6WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance6WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Membership MembershipById (r:1 w:1) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) fn set_leader_invitation_quota() -> Weight { - Weight::from_ref_time(60_390_000) + // Proof Size summary in bytes: + // Measured: `665` + // Estimated: `5753` + // Minimum execution time: 19_000 nanoseconds. + Weight::from_ref_time(20_000_000) + .saturating_add(Weight::from_proof_size(5753)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Membership InitialInvitationBalance (r:0 w:1) + // Proof: Membership InitialInvitationBalance (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) fn set_initial_invitation_balance() -> Weight { - Weight::from_ref_time(29_310_000) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 7_000 nanoseconds. + Weight::from_ref_time(8_000_000) + .saturating_add(Weight::from_proof_size(0)) .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Membership InitialInvitationCount (r:0 w:1) + // Proof: Membership InitialInvitationCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) fn set_initial_invitation_count() -> Weight { - Weight::from_ref_time(28_950_000) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 7_000 nanoseconds. + Weight::from_ref_time(7_000_000) + .saturating_add(Weight::from_proof_size(0)) .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Membership StakingAccountIdMemberStatus (r:1 w:1) + // Proof: Membership StakingAccountIdMemberStatus (max_values: None, max_size: Some(57), added: 2532, mode: MaxEncodedLen) // Storage: Membership MembershipById (r:1 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: Balances Locks (r:1 w:1) + // Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn add_staking_account_candidate() -> Weight { - Weight::from_ref_time(95_410_000) + // Proof Size summary in bytes: + // Measured: `520` + // Estimated: `11509` + // Minimum execution time: 30_000 nanoseconds. + Weight::from_ref_time(32_000_000) + .saturating_add(Weight::from_proof_size(11509)) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } // Storage: Membership MembershipById (r:1 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: Membership StakingAccountIdMemberStatus (r:1 w:1) + // Proof: Membership StakingAccountIdMemberStatus (max_values: None, max_size: Some(57), added: 2532, mode: MaxEncodedLen) fn confirm_staking_account() -> Weight { - Weight::from_ref_time(63_590_000) + // Proof Size summary in bytes: + // Measured: `331` + // Estimated: `5132` + // Minimum execution time: 20_000 nanoseconds. + Weight::from_ref_time(21_000_000) + .saturating_add(Weight::from_proof_size(5132)) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Membership MembershipById (r:1 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: Membership StakingAccountIdMemberStatus (r:1 w:1) + // Proof: Membership StakingAccountIdMemberStatus (max_values: None, max_size: Some(57), added: 2532, mode: MaxEncodedLen) // Storage: Balances Locks (r:1 w:1) + // Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn remove_staking_account() -> Weight { - Weight::from_ref_time(93_130_000) + // Proof Size summary in bytes: + // Measured: `637` + // Estimated: `11509` + // Minimum execution time: 30_000 nanoseconds. + Weight::from_ref_time(30_000_000) + .saturating_add(Weight::from_proof_size(11509)) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } // Storage: Membership MembershipById (r:1 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) fn member_remark_without_payment() -> Weight { - Weight::from_ref_time(22_917_000) + // Proof Size summary in bytes: + // Measured: `252` + // Estimated: `2600` + // Minimum execution time: 12_000 nanoseconds. + Weight::from_ref_time(12_000_000) + .saturating_add(Weight::from_proof_size(2600)) .saturating_add(T::DbWeight::get().reads(1_u64)) } // Storage: Membership MembershipById (r:1 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: System Account (r:2 w:2) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn member_remark_with_payment() -> Weight { - Weight::from_ref_time(69_370_000) + // Proof Size summary in bytes: + // Measured: `510` + // Estimated: `7806` + // Minimum execution time: 38_000 nanoseconds. + Weight::from_ref_time(39_000_000) + .saturating_add(Weight::from_proof_size(7806)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } // Storage: Membership MemberIdByHandleHash (r:1 w:1) + // Proof: Membership MemberIdByHandleHash (max_values: None, max_size: Some(56), added: 2531, mode: MaxEncodedLen) // Storage: Membership InitialInvitationCount (r:1 w:0) + // Proof: Membership InitialInvitationCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Membership NextMemberId (r:1 w:1) + // Proof: Membership NextMemberId (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Membership MembershipById (r:0 w:1) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) + /// The range of component `i` is `[1, 100]`. + /// The range of component `j` is `[0, 100]`. fn create_member(i: u32, j: u32, ) -> Weight { - Weight::from_ref_time(57_677_000) - // Standard Error: 7_000 - .saturating_add(Weight::from_ref_time(1_831_000).saturating_mul(i.into())) - // Standard Error: 8_000 - .saturating_add(Weight::from_ref_time(813_000).saturating_mul(j.into())) + // Proof Size summary in bytes: + // Measured: `6` + // Estimated: `3533` + // Minimum execution time: 66_000 nanoseconds. + Weight::from_ref_time(20_449_494) + .saturating_add(Weight::from_proof_size(3533)) + // Standard Error: 82_267 + .saturating_add(Weight::from_ref_time(1_550_505).saturating_mul(i.into())) + // Standard Error: 81_445 + .saturating_add(Weight::from_ref_time(475_000).saturating_mul(j.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -318,12 +497,12 @@ impl WeightInfo for () { fn remove_staking_account() -> Weight { Weight::from_ref_time(0) } - fn member_remark_with_payment() -> Weight { - Weight::from_ref_time(0) - } fn member_remark_without_payment() -> Weight { Weight::from_ref_time(0) } + fn member_remark_with_payment() -> Weight { + Weight::from_ref_time(0) + } fn create_member(i: u32, j: u32, ) -> Weight { Weight::from_ref_time(0) } diff --git a/runtime-modules/project-token/src/weights.rs b/runtime-modules/project-token/src/weights.rs index cdab62dc96..938697cf08 100644 --- a/runtime-modules/project-token/src/weights.rs +++ b/runtime-modules/project-token/src/weights.rs @@ -18,22 +18,21 @@ //! Autogenerated weights for project_token //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-10-20, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! DATE: 2023-03-15, STEPS: `2`, REPEAT: 2, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("prod-test"), DB CACHE: 1024 // Executed Command: -// ./../target/release/joystream-node +// ./scripts/../target/release/joystream-node // benchmark // pallet -// --base-path=/mnt/disks/local-ssd/ // --pallet=project_token // --extrinsic=* -// --chain=dev -// --steps=50 -// --repeat=20 +// --chain=prod-test +// --steps=2 +// --repeat=2 // --execution=wasm -// --template=./../devops/joystream-pallet-weight-template.hbs -// --output=./../runtime-modules/project-token/src/weights.rs +// --template=./scripts/../devops/joystream-pallet-weight-template.hbs +// --output=./scripts/../runtime-modules/project-token/src/weights.rs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -57,76 +56,145 @@ pub trait WeightInfo { /// Weights for project_token using the Substrate node and recommended hardware. pub struct SubstrateWeight(PhantomData); impl WeightInfo for SubstrateWeight { - // Storage: Membership MembershipById (r:2 w:0) + // Storage: Membership MembershipById (r:1025 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: Token TokenInfoById (r:1 w:1) - // Storage: Token AccountInfoByTokenAndMember (r:2 w:2) + // Proof: Token TokenInfoById (max_values: None, max_size: Some(339), added: 2814, mode: MaxEncodedLen) + // Storage: Token AccountInfoByTokenAndMember (r:1025 w:1025) + // Proof: Token AccountInfoByTokenAndMember (max_values: None, max_size: Some(489), added: 2964, mode: MaxEncodedLen) // Storage: Token BloatBond (r:1 w:0) + // Proof: Token BloatBond (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) // Storage: System Account (r:2 w:2) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// The range of component `o` is `[1, 1024]`. + /// The range of component `m` is `[1, 100]`. fn transfer(o: u32, m: u32, ) -> Weight { - Weight::from_ref_time(0) - // Standard Error: 7_000 - .saturating_add(Weight::from_ref_time(16_066_000).saturating_mul(o.into())) - // Standard Error: 68_000 - .saturating_add(Weight::from_ref_time(449_000).saturating_mul(m.into())) + // Proof Size summary in bytes: + // Measured: `1478 + o * (165 ±0)` + // Estimated: `14095 + o * (5564 ±0)` + // Minimum execution time: 123_000 nanoseconds. + Weight::from_ref_time(24_933_854) + .saturating_add(Weight::from_proof_size(14095)) + // Standard Error: 20_068 + .saturating_add(Weight::from_ref_time(9_591_397).saturating_mul(o.into())) + // Standard Error: 207_378 + .saturating_add(Weight::from_ref_time(974_747).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(o.into()))) .saturating_add(T::DbWeight::get().writes(4_u64)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(o.into()))) + .saturating_add(Weight::from_proof_size(5564).saturating_mul(o.into())) } // Storage: Token TokenInfoById (r:1 w:1) + // Proof: Token TokenInfoById (max_values: None, max_size: Some(339), added: 2814, mode: MaxEncodedLen) // Storage: Token AccountInfoByTokenAndMember (r:1 w:1) + // Proof: Token AccountInfoByTokenAndMember (max_values: None, max_size: Some(489), added: 2964, mode: MaxEncodedLen) // Storage: Membership MembershipById (r:1 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: System Account (r:2 w:2) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn dust_account() -> Weight { - Weight::from_ref_time(63_410_000) + // Proof Size summary in bytes: + // Measured: `1179` + // Estimated: `13584` + // Minimum execution time: 45_000 nanoseconds. + Weight::from_ref_time(46_000_000) + .saturating_add(Weight::from_proof_size(13584)) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } // Storage: Membership MembershipById (r:1 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: Token TokenInfoById (r:1 w:1) + // Proof: Token TokenInfoById (max_values: None, max_size: Some(339), added: 2814, mode: MaxEncodedLen) // Storage: Token AccountInfoByTokenAndMember (r:1 w:1) + // Proof: Token AccountInfoByTokenAndMember (max_values: None, max_size: Some(489), added: 2964, mode: MaxEncodedLen) // Storage: Token BloatBond (r:1 w:0) + // Proof: Token BloatBond (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) // Storage: System Account (r:2 w:2) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// The range of component `h` is `[1, 10]`. fn join_whitelist(h: u32, ) -> Weight { - Weight::from_ref_time(81_601_000) - // Standard Error: 23_000 - .saturating_add(Weight::from_ref_time(1_010_000).saturating_mul(h.into())) + // Proof Size summary in bytes: + // Measured: `1173` + // Estimated: `14095` + // Minimum execution time: 59_000 nanoseconds. + Weight::from_ref_time(58_500_000) + .saturating_add(Weight::from_proof_size(14095)) + // Standard Error: 283_278 + .saturating_add(Weight::from_ref_time(1_000_000).saturating_mul(h.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } // Storage: Membership MembershipById (r:1 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: Token TokenInfoById (r:1 w:1) + // Proof: Token TokenInfoById (max_values: None, max_size: Some(339), added: 2814, mode: MaxEncodedLen) // Storage: Token SalePlatformFee (r:1 w:0) + // Proof: Token SalePlatformFee (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Token AccountInfoByTokenAndMember (r:1 w:1) + // Proof: Token AccountInfoByTokenAndMember (max_values: None, max_size: Some(489), added: 2964, mode: MaxEncodedLen) // Storage: Token BloatBond (r:1 w:0) + // Proof: Token BloatBond (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) // Storage: System Account (r:3 w:3) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn purchase_tokens_on_sale() -> Weight { - Weight::from_ref_time(112_750_000) + // Proof Size summary in bytes: + // Measured: `1441` + // Estimated: `17197` + // Minimum execution time: 80_000 nanoseconds. + Weight::from_ref_time(80_000_000) + .saturating_add(Weight::from_proof_size(17197)) .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().writes(5_u64)) } // Storage: Membership MembershipById (r:1 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: Token TokenInfoById (r:1 w:1) + // Proof: Token TokenInfoById (max_values: None, max_size: Some(339), added: 2814, mode: MaxEncodedLen) // Storage: Token AccountInfoByTokenAndMember (r:1 w:1) + // Proof: Token AccountInfoByTokenAndMember (max_values: None, max_size: Some(489), added: 2964, mode: MaxEncodedLen) // Storage: System Account (r:2 w:2) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn participate_in_split() -> Weight { - Weight::from_ref_time(76_310_000) + // Proof Size summary in bytes: + // Measured: `1589` + // Estimated: `13584` + // Minimum execution time: 55_000 nanoseconds. + Weight::from_ref_time(56_000_000) + .saturating_add(Weight::from_proof_size(13584)) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } // Storage: Membership MembershipById (r:1 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: Token TokenInfoById (r:1 w:0) + // Proof: Token TokenInfoById (max_values: None, max_size: Some(339), added: 2814, mode: MaxEncodedLen) // Storage: Token AccountInfoByTokenAndMember (r:1 w:1) + // Proof: Token AccountInfoByTokenAndMember (max_values: None, max_size: Some(489), added: 2964, mode: MaxEncodedLen) fn exit_revenue_split() -> Weight { - Weight::from_ref_time(42_400_000) + // Proof Size summary in bytes: + // Measured: `1211` + // Estimated: `8378` + // Minimum execution time: 31_000 nanoseconds. + Weight::from_ref_time(31_000_000) + .saturating_add(Weight::from_proof_size(8378)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Membership MembershipById (r:1 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: Token TokenInfoById (r:1 w:1) + // Proof: Token TokenInfoById (max_values: None, max_size: Some(339), added: 2814, mode: MaxEncodedLen) // Storage: Token AccountInfoByTokenAndMember (r:1 w:1) + // Proof: Token AccountInfoByTokenAndMember (max_values: None, max_size: Some(489), added: 2964, mode: MaxEncodedLen) fn burn() -> Weight { - Weight::from_ref_time(43_910_000) + // Proof Size summary in bytes: + // Measured: `1095` + // Estimated: `8378` + // Minimum execution time: 32_000 nanoseconds. + Weight::from_ref_time(33_000_000) + .saturating_add(Weight::from_proof_size(8378)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } diff --git a/runtime-modules/proposals/codex/src/weights.rs b/runtime-modules/proposals/codex/src/weights.rs index 2487fc4c03..dcd19bd91b 100644 --- a/runtime-modules/proposals/codex/src/weights.rs +++ b/runtime-modules/proposals/codex/src/weights.rs @@ -18,7 +18,7 @@ //! Autogenerated weights for proposals_codex //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-02-09, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-03-15, STEPS: `2`, REPEAT: 2, LOW RANGE: `[]`, HIGH RANGE: `[]` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("prod-test"), DB CACHE: 1024 // Executed Command: @@ -28,8 +28,8 @@ // --pallet=proposals_codex // --extrinsic=* // --chain=prod-test -// --steps=50 -// --repeat=20 +// --steps=2 +// --repeat=2 // --execution=wasm // --template=./scripts/../devops/joystream-pallet-weight-template.hbs // --output=./scripts/../runtime-modules/proposals/codex/src/weights.rs @@ -73,480 +73,906 @@ pub trait WeightInfo { pub struct SubstrateWeight(PhantomData); impl WeightInfo for SubstrateWeight { // Storage: Membership MembershipById (r:1 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: ProposalEngine ActiveProposalCount (r:1 w:1) + // Proof: ProposalEngine ActiveProposalCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Membership StakingAccountIdMemberStatus (r:1 w:0) + // Proof: Membership StakingAccountIdMemberStatus (max_values: None, max_size: Some(57), added: 2532, mode: MaxEncodedLen) // Storage: Balances Locks (r:1 w:1) + // Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) // Storage: ProposalDiscussion ThreadCount (r:1 w:1) + // Proof: ProposalDiscussion ThreadCount (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: ProposalEngine ProposalCount (r:1 w:1) + // Proof: ProposalEngine ProposalCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: ProposalsCodex ThreadIdByProposalId (r:0 w:1) + // Proof: ProposalsCodex ThreadIdByProposalId (max_values: None, max_size: Some(28), added: 2503, mode: MaxEncodedLen) // Storage: ProposalDiscussion ThreadById (r:0 w:1) + // Proof: ProposalDiscussion ThreadById (max_values: None, max_size: Some(198), added: 2673, mode: MaxEncodedLen) // Storage: ProposalEngine Proposals (r:0 w:1) + // Proof: ProposalEngine Proposals (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen) // Storage: ProposalEngine DispatchableCallCode (r:0 w:1) - fn create_proposal_signal(i: u32, t: u32, d: u32, ) -> Weight { - Weight::from_ref_time(119_338_000) - // Standard Error: 8_000 - .saturating_add(Weight::from_ref_time(1_874_000).saturating_mul(i.into())) - // Standard Error: 66_000 - .saturating_add(Weight::from_ref_time(832_000).saturating_mul(t.into())) - // Standard Error: 66_000 - .saturating_add(Weight::from_ref_time(1_020_000).saturating_mul(d.into())) + // Proof: ProposalEngine DispatchableCallCode (max_values: None, max_size: Some(3145752), added: 3148227, mode: MaxEncodedLen) + /// The range of component `i` is `[1, 100]`. + /// The range of component `t` is `[1, 20]`. + /// The range of component `d` is `[1, 20]`. + fn create_proposal_signal(i: u32, _t: u32, _d: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `748` + // Estimated: `13010` + // Minimum execution time: 86_000 nanoseconds. + Weight::from_ref_time(139_119_085) + .saturating_add(Weight::from_proof_size(13010)) + // Standard Error: 284_547 + .saturating_add(Weight::from_ref_time(828_282).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(9_u64)) } // Storage: Membership MembershipById (r:1 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: ProposalEngine ActiveProposalCount (r:1 w:1) + // Proof: ProposalEngine ActiveProposalCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Membership StakingAccountIdMemberStatus (r:1 w:0) + // Proof: Membership StakingAccountIdMemberStatus (max_values: None, max_size: Some(57), added: 2532, mode: MaxEncodedLen) // Storage: Balances Locks (r:1 w:1) + // Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) // Storage: ProposalDiscussion ThreadCount (r:1 w:1) + // Proof: ProposalDiscussion ThreadCount (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: ProposalEngine ProposalCount (r:1 w:1) + // Proof: ProposalEngine ProposalCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: ProposalsCodex ThreadIdByProposalId (r:0 w:1) + // Proof: ProposalsCodex ThreadIdByProposalId (max_values: None, max_size: Some(28), added: 2503, mode: MaxEncodedLen) // Storage: ProposalDiscussion ThreadById (r:0 w:1) + // Proof: ProposalDiscussion ThreadById (max_values: None, max_size: Some(198), added: 2673, mode: MaxEncodedLen) // Storage: ProposalEngine Proposals (r:0 w:1) + // Proof: ProposalEngine Proposals (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen) // Storage: ProposalEngine DispatchableCallCode (r:0 w:1) + // Proof: ProposalEngine DispatchableCallCode (max_values: None, max_size: Some(3145752), added: 3148227, mode: MaxEncodedLen) + /// The range of component `i` is `[1, 100]`. + /// The range of component `t` is `[1, 20]`. + /// The range of component `d` is `[1, 20]`. fn create_proposal_runtime_upgrade(i: u32, t: u32, d: u32, ) -> Weight { - Weight::from_ref_time(114_863_000) - // Standard Error: 5_000 - .saturating_add(Weight::from_ref_time(1_891_000).saturating_mul(i.into())) - // Standard Error: 46_000 - .saturating_add(Weight::from_ref_time(855_000).saturating_mul(t.into())) - // Standard Error: 46_000 - .saturating_add(Weight::from_ref_time(1_089_000).saturating_mul(d.into())) + // Proof Size summary in bytes: + // Measured: `748` + // Estimated: `13010` + // Minimum execution time: 85_000 nanoseconds. + Weight::from_ref_time(76_070_042) + .saturating_add(Weight::from_proof_size(13010)) + // Standard Error: 110_405 + .saturating_add(Weight::from_ref_time(851_010).saturating_mul(i.into())) + // Standard Error: 575_272 + .saturating_add(Weight::from_ref_time(302_631).saturating_mul(t.into())) + // Standard Error: 575_272 + .saturating_add(Weight::from_ref_time(276_315).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(9_u64)) } // Storage: Membership MembershipById (r:1 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: ProposalEngine ActiveProposalCount (r:1 w:1) + // Proof: ProposalEngine ActiveProposalCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Membership StakingAccountIdMemberStatus (r:1 w:0) + // Proof: Membership StakingAccountIdMemberStatus (max_values: None, max_size: Some(57), added: 2532, mode: MaxEncodedLen) // Storage: Balances Locks (r:1 w:1) + // Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) // Storage: ProposalDiscussion ThreadCount (r:1 w:1) + // Proof: ProposalDiscussion ThreadCount (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: ProposalEngine ProposalCount (r:1 w:1) + // Proof: ProposalEngine ProposalCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: ProposalsCodex ThreadIdByProposalId (r:0 w:1) + // Proof: ProposalsCodex ThreadIdByProposalId (max_values: None, max_size: Some(28), added: 2503, mode: MaxEncodedLen) // Storage: ProposalDiscussion ThreadById (r:0 w:1) + // Proof: ProposalDiscussion ThreadById (max_values: None, max_size: Some(198), added: 2673, mode: MaxEncodedLen) // Storage: ProposalEngine Proposals (r:0 w:1) + // Proof: ProposalEngine Proposals (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen) // Storage: ProposalEngine DispatchableCallCode (r:0 w:1) - fn create_proposal_funding_request(_i: u32, t: u32, d: u32, ) -> Weight { - Weight::from_ref_time(106_889_000) - // Standard Error: 25_000 - .saturating_add(Weight::from_ref_time(1_318_000).saturating_mul(t.into())) - // Standard Error: 25_000 - .saturating_add(Weight::from_ref_time(1_443_000).saturating_mul(d.into())) + // Proof: ProposalEngine DispatchableCallCode (max_values: None, max_size: Some(3145752), added: 3148227, mode: MaxEncodedLen) + /// The range of component `i` is `[1, 20]`. + /// The range of component `t` is `[1, 20]`. + /// The range of component `d` is `[1, 20]`. + fn create_proposal_funding_request(i: u32, t: u32, d: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `748` + // Estimated: `13010` + // Minimum execution time: 73_000 nanoseconds. + Weight::from_ref_time(54_710_526) + .saturating_add(Weight::from_proof_size(13010)) + // Standard Error: 176_040 + .saturating_add(Weight::from_ref_time(184_210).saturating_mul(i.into())) + // Standard Error: 176_040 + .saturating_add(Weight::from_ref_time(763_157).saturating_mul(t.into())) + // Standard Error: 176_040 + .saturating_add(Weight::from_ref_time(842_105).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(9_u64)) } // Storage: Staking MinimumValidatorCount (r:1 w:0) + // Proof: Staking MinimumValidatorCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Membership MembershipById (r:1 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: ProposalEngine ActiveProposalCount (r:1 w:1) + // Proof: ProposalEngine ActiveProposalCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Membership StakingAccountIdMemberStatus (r:1 w:0) + // Proof: Membership StakingAccountIdMemberStatus (max_values: None, max_size: Some(57), added: 2532, mode: MaxEncodedLen) // Storage: Balances Locks (r:1 w:1) + // Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) // Storage: ProposalDiscussion ThreadCount (r:1 w:1) + // Proof: ProposalDiscussion ThreadCount (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: ProposalEngine ProposalCount (r:1 w:1) + // Proof: ProposalEngine ProposalCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: ProposalsCodex ThreadIdByProposalId (r:0 w:1) + // Proof: ProposalsCodex ThreadIdByProposalId (max_values: None, max_size: Some(28), added: 2503, mode: MaxEncodedLen) // Storage: ProposalDiscussion ThreadById (r:0 w:1) + // Proof: ProposalDiscussion ThreadById (max_values: None, max_size: Some(198), added: 2673, mode: MaxEncodedLen) // Storage: ProposalEngine Proposals (r:0 w:1) + // Proof: ProposalEngine Proposals (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen) // Storage: ProposalEngine DispatchableCallCode (r:0 w:1) + // Proof: ProposalEngine DispatchableCallCode (max_values: None, max_size: Some(3145752), added: 3148227, mode: MaxEncodedLen) + /// The range of component `t` is `[1, 20]`. + /// The range of component `d` is `[1, 20]`. fn create_proposal_set_max_validator_count(t: u32, d: u32, ) -> Weight { - Weight::from_ref_time(100_376_000) - // Standard Error: 21_000 - .saturating_add(Weight::from_ref_time(1_312_000).saturating_mul(t.into())) - // Standard Error: 21_000 - .saturating_add(Weight::from_ref_time(1_472_000).saturating_mul(d.into())) + // Proof Size summary in bytes: + // Measured: `1264` + // Estimated: `13509` + // Minimum execution time: 72_000 nanoseconds. + Weight::from_ref_time(60_605_263) + .saturating_add(Weight::from_proof_size(13509)) + // Standard Error: 259_625 + .saturating_add(Weight::from_ref_time(631_578).saturating_mul(t.into())) + // Standard Error: 259_625 + .saturating_add(Weight::from_ref_time(763_157).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().writes(9_u64)) } // Storage: ProposalEngine Proposals (r:1 w:1) + // Proof: ProposalEngine Proposals (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen) // Storage: Membership MembershipById (r:1 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: ProposalEngine ActiveProposalCount (r:1 w:1) + // Proof: ProposalEngine ActiveProposalCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Membership StakingAccountIdMemberStatus (r:1 w:0) + // Proof: Membership StakingAccountIdMemberStatus (max_values: None, max_size: Some(57), added: 2532, mode: MaxEncodedLen) // Storage: Balances Locks (r:1 w:1) + // Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) // Storage: ProposalDiscussion ThreadCount (r:1 w:1) + // Proof: ProposalDiscussion ThreadCount (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: ProposalEngine ProposalCount (r:1 w:1) + // Proof: ProposalEngine ProposalCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: ProposalsCodex ThreadIdByProposalId (r:0 w:1) + // Proof: ProposalsCodex ThreadIdByProposalId (max_values: None, max_size: Some(28), added: 2503, mode: MaxEncodedLen) // Storage: ProposalDiscussion ThreadById (r:0 w:1) + // Proof: ProposalDiscussion ThreadById (max_values: None, max_size: Some(198), added: 2673, mode: MaxEncodedLen) // Storage: ProposalEngine DispatchableCallCode (r:0 w:1) + // Proof: ProposalEngine DispatchableCallCode (max_values: None, max_size: Some(3145752), added: 3148227, mode: MaxEncodedLen) + /// The range of component `t` is `[1, 20]`. + /// The range of component `d` is `[1, 20]`. fn create_proposal_veto_proposal(t: u32, d: u32, ) -> Weight { - Weight::from_ref_time(115_318_000) - // Standard Error: 47_000 - .saturating_add(Weight::from_ref_time(1_112_000).saturating_mul(t.into())) - // Standard Error: 47_000 - .saturating_add(Weight::from_ref_time(1_334_000).saturating_mul(d.into())) + // Proof Size summary in bytes: + // Measured: `1110` + // Estimated: `15625` + // Minimum execution time: 77_000 nanoseconds. + Weight::from_ref_time(68_421_052) + .saturating_add(Weight::from_proof_size(15625)) + // Standard Error: 167_816 + .saturating_add(Weight::from_ref_time(552_631).saturating_mul(t.into())) + // Standard Error: 167_816 + .saturating_add(Weight::from_ref_time(526_315).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().writes(9_u64)) } // Storage: Membership MembershipById (r:1 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: ProposalEngine ActiveProposalCount (r:1 w:1) + // Proof: ProposalEngine ActiveProposalCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Membership StakingAccountIdMemberStatus (r:1 w:0) + // Proof: Membership StakingAccountIdMemberStatus (max_values: None, max_size: Some(57), added: 2532, mode: MaxEncodedLen) // Storage: Balances Locks (r:1 w:1) + // Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) // Storage: ProposalDiscussion ThreadCount (r:1 w:1) + // Proof: ProposalDiscussion ThreadCount (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: ProposalEngine ProposalCount (r:1 w:1) + // Proof: ProposalEngine ProposalCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: ProposalsCodex ThreadIdByProposalId (r:0 w:1) + // Proof: ProposalsCodex ThreadIdByProposalId (max_values: None, max_size: Some(28), added: 2503, mode: MaxEncodedLen) // Storage: ProposalDiscussion ThreadById (r:0 w:1) + // Proof: ProposalDiscussion ThreadById (max_values: None, max_size: Some(198), added: 2673, mode: MaxEncodedLen) // Storage: ProposalEngine Proposals (r:0 w:1) + // Proof: ProposalEngine Proposals (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen) // Storage: ProposalEngine DispatchableCallCode (r:0 w:1) + // Proof: ProposalEngine DispatchableCallCode (max_values: None, max_size: Some(3145752), added: 3148227, mode: MaxEncodedLen) + /// The range of component `i` is `[1, 100]`. + /// The range of component `t` is `[1, 20]`. + /// The range of component `d` is `[1, 20]`. fn create_proposal_create_working_group_lead_opening(i: u32, t: u32, d: u32, ) -> Weight { - Weight::from_ref_time(117_180_000) - // Standard Error: 5_000 - .saturating_add(Weight::from_ref_time(2_020_000).saturating_mul(i.into())) - // Standard Error: 42_000 - .saturating_add(Weight::from_ref_time(810_000).saturating_mul(t.into())) - // Standard Error: 42_000 - .saturating_add(Weight::from_ref_time(1_044_000).saturating_mul(d.into())) + // Proof Size summary in bytes: + // Measured: `748` + // Estimated: `13010` + // Minimum execution time: 81_000 nanoseconds. + Weight::from_ref_time(66_677_033) + .saturating_add(Weight::from_proof_size(13010)) + // Standard Error: 112_678 + .saturating_add(Weight::from_ref_time(954_545).saturating_mul(i.into())) + // Standard Error: 587_113 + .saturating_add(Weight::from_ref_time(342_105).saturating_mul(t.into())) + // Standard Error: 587_113 + .saturating_add(Weight::from_ref_time(526_315).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(9_u64)) } // Storage: Instance1WorkingGroup OpeningById (r:1 w:0) + // Proof: Instance1WorkingGroup OpeningById (max_values: None, max_size: Some(114), added: 2589, mode: MaxEncodedLen) // Storage: Instance1WorkingGroup ApplicationById (r:1 w:0) + // Proof: Instance1WorkingGroup ApplicationById (max_values: None, max_size: Some(168), added: 2643, mode: MaxEncodedLen) // Storage: Membership MembershipById (r:1 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: ProposalEngine ActiveProposalCount (r:1 w:1) + // Proof: ProposalEngine ActiveProposalCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Membership StakingAccountIdMemberStatus (r:1 w:0) + // Proof: Membership StakingAccountIdMemberStatus (max_values: None, max_size: Some(57), added: 2532, mode: MaxEncodedLen) // Storage: Balances Locks (r:1 w:1) + // Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) // Storage: ProposalDiscussion ThreadCount (r:1 w:1) + // Proof: ProposalDiscussion ThreadCount (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: ProposalEngine ProposalCount (r:1 w:1) + // Proof: ProposalEngine ProposalCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: ProposalsCodex ThreadIdByProposalId (r:0 w:1) + // Proof: ProposalsCodex ThreadIdByProposalId (max_values: None, max_size: Some(28), added: 2503, mode: MaxEncodedLen) // Storage: ProposalDiscussion ThreadById (r:0 w:1) + // Proof: ProposalDiscussion ThreadById (max_values: None, max_size: Some(198), added: 2673, mode: MaxEncodedLen) // Storage: ProposalEngine Proposals (r:0 w:1) + // Proof: ProposalEngine Proposals (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen) // Storage: ProposalEngine DispatchableCallCode (r:0 w:1) + // Proof: ProposalEngine DispatchableCallCode (max_values: None, max_size: Some(3145752), added: 3148227, mode: MaxEncodedLen) + /// The range of component `t` is `[1, 20]`. + /// The range of component `d` is `[1, 20]`. fn create_proposal_fill_working_group_lead_opening(t: u32, d: u32, ) -> Weight { - Weight::from_ref_time(118_975_000) - // Standard Error: 38_000 - .saturating_add(Weight::from_ref_time(1_264_000).saturating_mul(t.into())) - // Standard Error: 38_000 - .saturating_add(Weight::from_ref_time(1_302_000).saturating_mul(d.into())) + // Proof Size summary in bytes: + // Measured: `1199` + // Estimated: `18242` + // Minimum execution time: 79_000 nanoseconds. + Weight::from_ref_time(65_947_368) + .saturating_add(Weight::from_proof_size(18242)) + // Standard Error: 188_545 + .saturating_add(Weight::from_ref_time(736_842).saturating_mul(t.into())) + // Standard Error: 188_545 + .saturating_add(Weight::from_ref_time(815_789).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(9_u64)) .saturating_add(T::DbWeight::get().writes(9_u64)) } // Storage: Membership MembershipById (r:1 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: ProposalEngine ActiveProposalCount (r:1 w:1) + // Proof: ProposalEngine ActiveProposalCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Membership StakingAccountIdMemberStatus (r:1 w:0) + // Proof: Membership StakingAccountIdMemberStatus (max_values: None, max_size: Some(57), added: 2532, mode: MaxEncodedLen) // Storage: Balances Locks (r:1 w:1) + // Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) // Storage: ProposalDiscussion ThreadCount (r:1 w:1) + // Proof: ProposalDiscussion ThreadCount (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: ProposalEngine ProposalCount (r:1 w:1) + // Proof: ProposalEngine ProposalCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: ProposalsCodex ThreadIdByProposalId (r:0 w:1) + // Proof: ProposalsCodex ThreadIdByProposalId (max_values: None, max_size: Some(28), added: 2503, mode: MaxEncodedLen) // Storage: ProposalDiscussion ThreadById (r:0 w:1) + // Proof: ProposalDiscussion ThreadById (max_values: None, max_size: Some(198), added: 2673, mode: MaxEncodedLen) // Storage: ProposalEngine Proposals (r:0 w:1) + // Proof: ProposalEngine Proposals (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen) // Storage: ProposalEngine DispatchableCallCode (r:0 w:1) + // Proof: ProposalEngine DispatchableCallCode (max_values: None, max_size: Some(3145752), added: 3148227, mode: MaxEncodedLen) + /// The range of component `t` is `[1, 20]`. + /// The range of component `d` is `[1, 20]`. fn create_proposal_update_working_group_budget(t: u32, d: u32, ) -> Weight { - Weight::from_ref_time(99_672_000) - // Standard Error: 26_000 - .saturating_add(Weight::from_ref_time(1_222_000).saturating_mul(t.into())) - // Standard Error: 26_000 - .saturating_add(Weight::from_ref_time(1_351_000).saturating_mul(d.into())) + // Proof Size summary in bytes: + // Measured: `748` + // Estimated: `13010` + // Minimum execution time: 67_000 nanoseconds. + Weight::from_ref_time(55_578_947) + .saturating_add(Weight::from_proof_size(13010)) + // Standard Error: 231_419 + .saturating_add(Weight::from_ref_time(631_578).saturating_mul(t.into())) + // Standard Error: 231_419 + .saturating_add(Weight::from_ref_time(789_473).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(9_u64)) } // Storage: Instance1WorkingGroup CurrentLead (r:1 w:0) + // Proof: Instance1WorkingGroup CurrentLead (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Membership MembershipById (r:1 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: ProposalEngine ActiveProposalCount (r:1 w:1) + // Proof: ProposalEngine ActiveProposalCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Membership StakingAccountIdMemberStatus (r:1 w:0) + // Proof: Membership StakingAccountIdMemberStatus (max_values: None, max_size: Some(57), added: 2532, mode: MaxEncodedLen) // Storage: Balances Locks (r:1 w:1) + // Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) // Storage: ProposalDiscussion ThreadCount (r:1 w:1) + // Proof: ProposalDiscussion ThreadCount (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: ProposalEngine ProposalCount (r:1 w:1) + // Proof: ProposalEngine ProposalCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: ProposalsCodex ThreadIdByProposalId (r:0 w:1) + // Proof: ProposalsCodex ThreadIdByProposalId (max_values: None, max_size: Some(28), added: 2503, mode: MaxEncodedLen) // Storage: ProposalDiscussion ThreadById (r:0 w:1) + // Proof: ProposalDiscussion ThreadById (max_values: None, max_size: Some(198), added: 2673, mode: MaxEncodedLen) // Storage: ProposalEngine Proposals (r:0 w:1) + // Proof: ProposalEngine Proposals (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen) // Storage: ProposalEngine DispatchableCallCode (r:0 w:1) + // Proof: ProposalEngine DispatchableCallCode (max_values: None, max_size: Some(3145752), added: 3148227, mode: MaxEncodedLen) + /// The range of component `t` is `[1, 20]`. + /// The range of component `d` is `[1, 20]`. fn create_proposal_decrease_working_group_lead_stake(t: u32, d: u32, ) -> Weight { - Weight::from_ref_time(103_629_000) - // Standard Error: 19_000 - .saturating_add(Weight::from_ref_time(1_255_000).saturating_mul(t.into())) - // Standard Error: 19_000 - .saturating_add(Weight::from_ref_time(1_435_000).saturating_mul(d.into())) + // Proof Size summary in bytes: + // Measured: `883` + // Estimated: `13513` + // Minimum execution time: 73_000 nanoseconds. + Weight::from_ref_time(61_078_947) + .saturating_add(Weight::from_proof_size(13513)) + // Standard Error: 213_790 + .saturating_add(Weight::from_ref_time(736_842).saturating_mul(t.into())) + // Standard Error: 213_790 + .saturating_add(Weight::from_ref_time(684_210).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().writes(9_u64)) } // Storage: Instance1WorkingGroup CurrentLead (r:1 w:0) + // Proof: Instance1WorkingGroup CurrentLead (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Membership MembershipById (r:1 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: ProposalEngine ActiveProposalCount (r:1 w:1) + // Proof: ProposalEngine ActiveProposalCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Membership StakingAccountIdMemberStatus (r:1 w:0) + // Proof: Membership StakingAccountIdMemberStatus (max_values: None, max_size: Some(57), added: 2532, mode: MaxEncodedLen) // Storage: Balances Locks (r:1 w:1) + // Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) // Storage: ProposalDiscussion ThreadCount (r:1 w:1) + // Proof: ProposalDiscussion ThreadCount (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: ProposalEngine ProposalCount (r:1 w:1) + // Proof: ProposalEngine ProposalCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: ProposalsCodex ThreadIdByProposalId (r:0 w:1) + // Proof: ProposalsCodex ThreadIdByProposalId (max_values: None, max_size: Some(28), added: 2503, mode: MaxEncodedLen) // Storage: ProposalDiscussion ThreadById (r:0 w:1) + // Proof: ProposalDiscussion ThreadById (max_values: None, max_size: Some(198), added: 2673, mode: MaxEncodedLen) // Storage: ProposalEngine Proposals (r:0 w:1) + // Proof: ProposalEngine Proposals (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen) // Storage: ProposalEngine DispatchableCallCode (r:0 w:1) + // Proof: ProposalEngine DispatchableCallCode (max_values: None, max_size: Some(3145752), added: 3148227, mode: MaxEncodedLen) + /// The range of component `t` is `[1, 20]`. + /// The range of component `d` is `[1, 20]`. fn create_proposal_slash_working_group_lead(t: u32, d: u32, ) -> Weight { - Weight::from_ref_time(103_453_000) - // Standard Error: 26_000 - .saturating_add(Weight::from_ref_time(1_326_000).saturating_mul(t.into())) - // Standard Error: 26_000 - .saturating_add(Weight::from_ref_time(1_418_000).saturating_mul(d.into())) + // Proof Size summary in bytes: + // Measured: `883` + // Estimated: `13513` + // Minimum execution time: 73_000 nanoseconds. + Weight::from_ref_time(61_131_578) + .saturating_add(Weight::from_proof_size(13513)) + // Standard Error: 215_939 + .saturating_add(Weight::from_ref_time(657_894).saturating_mul(t.into())) + // Standard Error: 215_939 + .saturating_add(Weight::from_ref_time(710_526).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().writes(9_u64)) } // Storage: Instance1WorkingGroup CurrentLead (r:1 w:0) + // Proof: Instance1WorkingGroup CurrentLead (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Membership MembershipById (r:1 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: ProposalEngine ActiveProposalCount (r:1 w:1) + // Proof: ProposalEngine ActiveProposalCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Membership StakingAccountIdMemberStatus (r:1 w:0) + // Proof: Membership StakingAccountIdMemberStatus (max_values: None, max_size: Some(57), added: 2532, mode: MaxEncodedLen) // Storage: Balances Locks (r:1 w:1) + // Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) // Storage: ProposalDiscussion ThreadCount (r:1 w:1) + // Proof: ProposalDiscussion ThreadCount (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: ProposalEngine ProposalCount (r:1 w:1) + // Proof: ProposalEngine ProposalCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: ProposalsCodex ThreadIdByProposalId (r:0 w:1) + // Proof: ProposalsCodex ThreadIdByProposalId (max_values: None, max_size: Some(28), added: 2503, mode: MaxEncodedLen) // Storage: ProposalDiscussion ThreadById (r:0 w:1) + // Proof: ProposalDiscussion ThreadById (max_values: None, max_size: Some(198), added: 2673, mode: MaxEncodedLen) // Storage: ProposalEngine Proposals (r:0 w:1) + // Proof: ProposalEngine Proposals (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen) // Storage: ProposalEngine DispatchableCallCode (r:0 w:1) + // Proof: ProposalEngine DispatchableCallCode (max_values: None, max_size: Some(3145752), added: 3148227, mode: MaxEncodedLen) + /// The range of component `t` is `[1, 20]`. + /// The range of component `d` is `[1, 20]`. fn create_proposal_set_working_group_lead_reward(t: u32, d: u32, ) -> Weight { - Weight::from_ref_time(99_679_000) - // Standard Error: 37_000 - .saturating_add(Weight::from_ref_time(1_417_000).saturating_mul(t.into())) - // Standard Error: 37_000 - .saturating_add(Weight::from_ref_time(1_621_000).saturating_mul(d.into())) + // Proof Size summary in bytes: + // Measured: `883` + // Estimated: `13513` + // Minimum execution time: 72_000 nanoseconds. + Weight::from_ref_time(59_552_631) + .saturating_add(Weight::from_proof_size(13513)) + // Standard Error: 203_841 + .saturating_add(Weight::from_ref_time(684_210).saturating_mul(t.into())) + // Standard Error: 203_841 + .saturating_add(Weight::from_ref_time(763_157).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().writes(9_u64)) } // Storage: Instance1WorkingGroup CurrentLead (r:1 w:0) + // Proof: Instance1WorkingGroup CurrentLead (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Membership MembershipById (r:1 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: ProposalEngine ActiveProposalCount (r:1 w:1) + // Proof: ProposalEngine ActiveProposalCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Membership StakingAccountIdMemberStatus (r:1 w:0) + // Proof: Membership StakingAccountIdMemberStatus (max_values: None, max_size: Some(57), added: 2532, mode: MaxEncodedLen) // Storage: Balances Locks (r:1 w:1) + // Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) // Storage: ProposalDiscussion ThreadCount (r:1 w:1) + // Proof: ProposalDiscussion ThreadCount (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: ProposalEngine ProposalCount (r:1 w:1) + // Proof: ProposalEngine ProposalCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: ProposalsCodex ThreadIdByProposalId (r:0 w:1) + // Proof: ProposalsCodex ThreadIdByProposalId (max_values: None, max_size: Some(28), added: 2503, mode: MaxEncodedLen) // Storage: ProposalDiscussion ThreadById (r:0 w:1) + // Proof: ProposalDiscussion ThreadById (max_values: None, max_size: Some(198), added: 2673, mode: MaxEncodedLen) // Storage: ProposalEngine Proposals (r:0 w:1) + // Proof: ProposalEngine Proposals (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen) // Storage: ProposalEngine DispatchableCallCode (r:0 w:1) + // Proof: ProposalEngine DispatchableCallCode (max_values: None, max_size: Some(3145752), added: 3148227, mode: MaxEncodedLen) + /// The range of component `t` is `[1, 20]`. + /// The range of component `d` is `[1, 20]`. fn create_proposal_terminate_working_group_lead(t: u32, d: u32, ) -> Weight { - Weight::from_ref_time(102_435_000) - // Standard Error: 23_000 - .saturating_add(Weight::from_ref_time(1_320_000).saturating_mul(t.into())) - // Standard Error: 23_000 - .saturating_add(Weight::from_ref_time(1_501_000).saturating_mul(d.into())) + // Proof Size summary in bytes: + // Measured: `883` + // Estimated: `13513` + // Minimum execution time: 72_000 nanoseconds. + Weight::from_ref_time(60_605_263) + .saturating_add(Weight::from_proof_size(13513)) + // Standard Error: 229_415 + .saturating_add(Weight::from_ref_time(631_578).saturating_mul(t.into())) + // Standard Error: 229_415 + .saturating_add(Weight::from_ref_time(763_157).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().writes(9_u64)) } // Storage: Membership MembershipById (r:1 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: ProposalEngine ActiveProposalCount (r:1 w:1) + // Proof: ProposalEngine ActiveProposalCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Membership StakingAccountIdMemberStatus (r:1 w:0) + // Proof: Membership StakingAccountIdMemberStatus (max_values: None, max_size: Some(57), added: 2532, mode: MaxEncodedLen) // Storage: Balances Locks (r:1 w:1) + // Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) // Storage: ProposalDiscussion ThreadCount (r:1 w:1) + // Proof: ProposalDiscussion ThreadCount (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: ProposalEngine ProposalCount (r:1 w:1) + // Proof: ProposalEngine ProposalCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: ProposalsCodex ThreadIdByProposalId (r:0 w:1) + // Proof: ProposalsCodex ThreadIdByProposalId (max_values: None, max_size: Some(28), added: 2503, mode: MaxEncodedLen) // Storage: ProposalDiscussion ThreadById (r:0 w:1) + // Proof: ProposalDiscussion ThreadById (max_values: None, max_size: Some(198), added: 2673, mode: MaxEncodedLen) // Storage: ProposalEngine Proposals (r:0 w:1) + // Proof: ProposalEngine Proposals (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen) // Storage: ProposalEngine DispatchableCallCode (r:0 w:1) + // Proof: ProposalEngine DispatchableCallCode (max_values: None, max_size: Some(3145752), added: 3148227, mode: MaxEncodedLen) + /// The range of component `i` is `[1, 100]`. + /// The range of component `t` is `[1, 20]`. + /// The range of component `d` is `[1, 20]`. fn create_proposal_amend_constitution(i: u32, t: u32, d: u32, ) -> Weight { - Weight::from_ref_time(118_339_000) - // Standard Error: 5_000 - .saturating_add(Weight::from_ref_time(1_853_000).saturating_mul(i.into())) - // Standard Error: 45_000 - .saturating_add(Weight::from_ref_time(837_000).saturating_mul(t.into())) - // Standard Error: 45_000 - .saturating_add(Weight::from_ref_time(974_000).saturating_mul(d.into())) + // Proof Size summary in bytes: + // Measured: `748` + // Estimated: `13010` + // Minimum execution time: 82_000 nanoseconds. + Weight::from_ref_time(81_414_673) + .saturating_add(Weight::from_proof_size(13010)) + // Standard Error: 131_628 + .saturating_add(Weight::from_ref_time(848_484).saturating_mul(i.into())) + // Standard Error: 685_853 + .saturating_add(Weight::from_ref_time(52_631).saturating_mul(t.into())) + // Standard Error: 685_853 + .saturating_add(Weight::from_ref_time(184_210).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(9_u64)) } // Storage: Instance1WorkingGroup OpeningById (r:1 w:0) + // Proof: Instance1WorkingGroup OpeningById (max_values: None, max_size: Some(114), added: 2589, mode: MaxEncodedLen) // Storage: Membership MembershipById (r:1 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: ProposalEngine ActiveProposalCount (r:1 w:1) + // Proof: ProposalEngine ActiveProposalCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Membership StakingAccountIdMemberStatus (r:1 w:0) + // Proof: Membership StakingAccountIdMemberStatus (max_values: None, max_size: Some(57), added: 2532, mode: MaxEncodedLen) // Storage: Balances Locks (r:1 w:1) + // Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) // Storage: ProposalDiscussion ThreadCount (r:1 w:1) + // Proof: ProposalDiscussion ThreadCount (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: ProposalEngine ProposalCount (r:1 w:1) + // Proof: ProposalEngine ProposalCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: ProposalsCodex ThreadIdByProposalId (r:0 w:1) + // Proof: ProposalsCodex ThreadIdByProposalId (max_values: None, max_size: Some(28), added: 2503, mode: MaxEncodedLen) // Storage: ProposalDiscussion ThreadById (r:0 w:1) + // Proof: ProposalDiscussion ThreadById (max_values: None, max_size: Some(198), added: 2673, mode: MaxEncodedLen) // Storage: ProposalEngine Proposals (r:0 w:1) + // Proof: ProposalEngine Proposals (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen) // Storage: ProposalEngine DispatchableCallCode (r:0 w:1) + // Proof: ProposalEngine DispatchableCallCode (max_values: None, max_size: Some(3145752), added: 3148227, mode: MaxEncodedLen) + /// The range of component `t` is `[1, 20]`. + /// The range of component `d` is `[1, 20]`. fn create_proposal_cancel_working_group_lead_opening(t: u32, d: u32, ) -> Weight { - Weight::from_ref_time(109_349_000) - // Standard Error: 38_000 - .saturating_add(Weight::from_ref_time(1_247_000).saturating_mul(t.into())) - // Standard Error: 38_000 - .saturating_add(Weight::from_ref_time(1_240_000).saturating_mul(d.into())) + // Proof Size summary in bytes: + // Measured: `932` + // Estimated: `15599` + // Minimum execution time: 73_000 nanoseconds. + Weight::from_ref_time(61_657_894) + .saturating_add(Weight::from_proof_size(15599)) + // Standard Error: 203_841 + .saturating_add(Weight::from_ref_time(631_578).saturating_mul(t.into())) + // Standard Error: 203_841 + .saturating_add(Weight::from_ref_time(710_526).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().writes(9_u64)) } // Storage: Membership MembershipById (r:1 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: ProposalEngine ActiveProposalCount (r:1 w:1) + // Proof: ProposalEngine ActiveProposalCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Membership StakingAccountIdMemberStatus (r:1 w:0) + // Proof: Membership StakingAccountIdMemberStatus (max_values: None, max_size: Some(57), added: 2532, mode: MaxEncodedLen) // Storage: Balances Locks (r:1 w:1) + // Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) // Storage: ProposalDiscussion ThreadCount (r:1 w:1) + // Proof: ProposalDiscussion ThreadCount (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: ProposalEngine ProposalCount (r:1 w:1) + // Proof: ProposalEngine ProposalCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: ProposalsCodex ThreadIdByProposalId (r:0 w:1) + // Proof: ProposalsCodex ThreadIdByProposalId (max_values: None, max_size: Some(28), added: 2503, mode: MaxEncodedLen) // Storage: ProposalDiscussion ThreadById (r:0 w:1) + // Proof: ProposalDiscussion ThreadById (max_values: None, max_size: Some(198), added: 2673, mode: MaxEncodedLen) // Storage: ProposalEngine Proposals (r:0 w:1) + // Proof: ProposalEngine Proposals (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen) // Storage: ProposalEngine DispatchableCallCode (r:0 w:1) + // Proof: ProposalEngine DispatchableCallCode (max_values: None, max_size: Some(3145752), added: 3148227, mode: MaxEncodedLen) + /// The range of component `t` is `[1, 20]`. + /// The range of component `d` is `[1, 20]`. fn create_proposal_set_membership_price(t: u32, d: u32, ) -> Weight { - Weight::from_ref_time(95_468_000) - // Standard Error: 34_000 - .saturating_add(Weight::from_ref_time(1_383_000).saturating_mul(t.into())) - // Standard Error: 34_000 - .saturating_add(Weight::from_ref_time(1_501_000).saturating_mul(d.into())) + // Proof Size summary in bytes: + // Measured: `748` + // Estimated: `13010` + // Minimum execution time: 68_000 nanoseconds. + Weight::from_ref_time(55_500_000) + .saturating_add(Weight::from_proof_size(13010)) + // Standard Error: 225_354 + .saturating_add(Weight::from_ref_time(763_157).saturating_mul(t.into())) + // Standard Error: 225_354 + .saturating_add(Weight::from_ref_time(736_842).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(9_u64)) } // Storage: Membership MembershipById (r:1 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: ProposalEngine ActiveProposalCount (r:1 w:1) + // Proof: ProposalEngine ActiveProposalCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Membership StakingAccountIdMemberStatus (r:1 w:0) + // Proof: Membership StakingAccountIdMemberStatus (max_values: None, max_size: Some(57), added: 2532, mode: MaxEncodedLen) // Storage: Balances Locks (r:1 w:1) + // Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) // Storage: ProposalDiscussion ThreadCount (r:1 w:1) + // Proof: ProposalDiscussion ThreadCount (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: ProposalEngine ProposalCount (r:1 w:1) + // Proof: ProposalEngine ProposalCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: ProposalsCodex ThreadIdByProposalId (r:0 w:1) + // Proof: ProposalsCodex ThreadIdByProposalId (max_values: None, max_size: Some(28), added: 2503, mode: MaxEncodedLen) // Storage: ProposalDiscussion ThreadById (r:0 w:1) + // Proof: ProposalDiscussion ThreadById (max_values: None, max_size: Some(198), added: 2673, mode: MaxEncodedLen) // Storage: ProposalEngine Proposals (r:0 w:1) + // Proof: ProposalEngine Proposals (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen) // Storage: ProposalEngine DispatchableCallCode (r:0 w:1) + // Proof: ProposalEngine DispatchableCallCode (max_values: None, max_size: Some(3145752), added: 3148227, mode: MaxEncodedLen) + /// The range of component `t` is `[1, 20]`. + /// The range of component `d` is `[1, 20]`. fn create_proposal_set_council_budget_increment(t: u32, d: u32, ) -> Weight { - Weight::from_ref_time(97_264_000) - // Standard Error: 19_000 - .saturating_add(Weight::from_ref_time(1_261_000).saturating_mul(t.into())) - // Standard Error: 19_000 - .saturating_add(Weight::from_ref_time(1_439_000).saturating_mul(d.into())) + // Proof Size summary in bytes: + // Measured: `748` + // Estimated: `13010` + // Minimum execution time: 68_000 nanoseconds. + Weight::from_ref_time(53_973_684) + .saturating_add(Weight::from_proof_size(13010)) + // Standard Error: 195_753 + .saturating_add(Weight::from_ref_time(736_842).saturating_mul(t.into())) + // Standard Error: 195_753 + .saturating_add(Weight::from_ref_time(789_473).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(9_u64)) } // Storage: Membership MembershipById (r:1 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: ProposalEngine ActiveProposalCount (r:1 w:1) + // Proof: ProposalEngine ActiveProposalCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Membership StakingAccountIdMemberStatus (r:1 w:0) + // Proof: Membership StakingAccountIdMemberStatus (max_values: None, max_size: Some(57), added: 2532, mode: MaxEncodedLen) // Storage: Balances Locks (r:1 w:1) + // Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) // Storage: ProposalDiscussion ThreadCount (r:1 w:1) + // Proof: ProposalDiscussion ThreadCount (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: ProposalEngine ProposalCount (r:1 w:1) + // Proof: ProposalEngine ProposalCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: ProposalsCodex ThreadIdByProposalId (r:0 w:1) + // Proof: ProposalsCodex ThreadIdByProposalId (max_values: None, max_size: Some(28), added: 2503, mode: MaxEncodedLen) // Storage: ProposalDiscussion ThreadById (r:0 w:1) + // Proof: ProposalDiscussion ThreadById (max_values: None, max_size: Some(198), added: 2673, mode: MaxEncodedLen) // Storage: ProposalEngine Proposals (r:0 w:1) + // Proof: ProposalEngine Proposals (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen) // Storage: ProposalEngine DispatchableCallCode (r:0 w:1) + // Proof: ProposalEngine DispatchableCallCode (max_values: None, max_size: Some(3145752), added: 3148227, mode: MaxEncodedLen) + /// The range of component `t` is `[1, 20]`. + /// The range of component `d` is `[1, 20]`. fn create_proposal_set_councilor_reward(t: u32, d: u32, ) -> Weight { - Weight::from_ref_time(97_564_000) - // Standard Error: 18_000 - .saturating_add(Weight::from_ref_time(1_259_000).saturating_mul(t.into())) - // Standard Error: 18_000 - .saturating_add(Weight::from_ref_time(1_422_000).saturating_mul(d.into())) + // Proof Size summary in bytes: + // Measured: `748` + // Estimated: `13010` + // Minimum execution time: 68_000 nanoseconds. + Weight::from_ref_time(57_131_578) + .saturating_add(Weight::from_proof_size(13010)) + // Standard Error: 244_042 + .saturating_add(Weight::from_ref_time(605_263).saturating_mul(t.into())) + // Standard Error: 244_042 + .saturating_add(Weight::from_ref_time(763_157).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(9_u64)) } // Storage: Membership MembershipById (r:1 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: ProposalEngine ActiveProposalCount (r:1 w:1) + // Proof: ProposalEngine ActiveProposalCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Membership StakingAccountIdMemberStatus (r:1 w:0) + // Proof: Membership StakingAccountIdMemberStatus (max_values: None, max_size: Some(57), added: 2532, mode: MaxEncodedLen) // Storage: Balances Locks (r:1 w:1) + // Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) // Storage: ProposalDiscussion ThreadCount (r:1 w:1) + // Proof: ProposalDiscussion ThreadCount (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: ProposalEngine ProposalCount (r:1 w:1) + // Proof: ProposalEngine ProposalCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: ProposalsCodex ThreadIdByProposalId (r:0 w:1) + // Proof: ProposalsCodex ThreadIdByProposalId (max_values: None, max_size: Some(28), added: 2503, mode: MaxEncodedLen) // Storage: ProposalDiscussion ThreadById (r:0 w:1) + // Proof: ProposalDiscussion ThreadById (max_values: None, max_size: Some(198), added: 2673, mode: MaxEncodedLen) // Storage: ProposalEngine Proposals (r:0 w:1) + // Proof: ProposalEngine Proposals (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen) // Storage: ProposalEngine DispatchableCallCode (r:0 w:1) + // Proof: ProposalEngine DispatchableCallCode (max_values: None, max_size: Some(3145752), added: 3148227, mode: MaxEncodedLen) + /// The range of component `t` is `[1, 20]`. + /// The range of component `d` is `[1, 20]`. fn create_proposal_set_initial_invitation_balance(t: u32, d: u32, ) -> Weight { - Weight::from_ref_time(98_633_000) - // Standard Error: 25_000 - .saturating_add(Weight::from_ref_time(1_198_000).saturating_mul(t.into())) - // Standard Error: 25_000 - .saturating_add(Weight::from_ref_time(1_442_000).saturating_mul(d.into())) + // Proof Size summary in bytes: + // Measured: `748` + // Estimated: `13010` + // Minimum execution time: 68_000 nanoseconds. + Weight::from_ref_time(55_526_315) + .saturating_add(Weight::from_proof_size(13010)) + // Standard Error: 237_328 + .saturating_add(Weight::from_ref_time(657_894).saturating_mul(t.into())) + // Standard Error: 237_328 + .saturating_add(Weight::from_ref_time(815_789).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(9_u64)) } // Storage: Membership MembershipById (r:1 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: ProposalEngine ActiveProposalCount (r:1 w:1) + // Proof: ProposalEngine ActiveProposalCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Membership StakingAccountIdMemberStatus (r:1 w:0) + // Proof: Membership StakingAccountIdMemberStatus (max_values: None, max_size: Some(57), added: 2532, mode: MaxEncodedLen) // Storage: Balances Locks (r:1 w:1) + // Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) // Storage: ProposalDiscussion ThreadCount (r:1 w:1) + // Proof: ProposalDiscussion ThreadCount (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: ProposalEngine ProposalCount (r:1 w:1) + // Proof: ProposalEngine ProposalCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: ProposalsCodex ThreadIdByProposalId (r:0 w:1) + // Proof: ProposalsCodex ThreadIdByProposalId (max_values: None, max_size: Some(28), added: 2503, mode: MaxEncodedLen) // Storage: ProposalDiscussion ThreadById (r:0 w:1) + // Proof: ProposalDiscussion ThreadById (max_values: None, max_size: Some(198), added: 2673, mode: MaxEncodedLen) // Storage: ProposalEngine Proposals (r:0 w:1) + // Proof: ProposalEngine Proposals (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen) // Storage: ProposalEngine DispatchableCallCode (r:0 w:1) + // Proof: ProposalEngine DispatchableCallCode (max_values: None, max_size: Some(3145752), added: 3148227, mode: MaxEncodedLen) + /// The range of component `t` is `[1, 20]`. + /// The range of component `d` is `[1, 20]`. fn create_proposal_set_initial_invitation_count(t: u32, d: u32, ) -> Weight { - Weight::from_ref_time(96_739_000) - // Standard Error: 30_000 - .saturating_add(Weight::from_ref_time(1_310_000).saturating_mul(t.into())) - // Standard Error: 30_000 - .saturating_add(Weight::from_ref_time(1_446_000).saturating_mul(d.into())) + // Proof Size summary in bytes: + // Measured: `748` + // Estimated: `13010` + // Minimum execution time: 68_000 nanoseconds. + Weight::from_ref_time(55_078_947) + .saturating_add(Weight::from_proof_size(13010)) + // Standard Error: 193_380 + .saturating_add(Weight::from_ref_time(710_526).saturating_mul(t.into())) + // Standard Error: 193_380 + .saturating_add(Weight::from_ref_time(710_526).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(9_u64)) } // Storage: Membership MembershipById (r:1 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: ProposalEngine ActiveProposalCount (r:1 w:1) + // Proof: ProposalEngine ActiveProposalCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Membership StakingAccountIdMemberStatus (r:1 w:0) + // Proof: Membership StakingAccountIdMemberStatus (max_values: None, max_size: Some(57), added: 2532, mode: MaxEncodedLen) // Storage: Balances Locks (r:1 w:1) + // Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) // Storage: ProposalDiscussion ThreadCount (r:1 w:1) + // Proof: ProposalDiscussion ThreadCount (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: ProposalEngine ProposalCount (r:1 w:1) + // Proof: ProposalEngine ProposalCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: ProposalsCodex ThreadIdByProposalId (r:0 w:1) + // Proof: ProposalsCodex ThreadIdByProposalId (max_values: None, max_size: Some(28), added: 2503, mode: MaxEncodedLen) // Storage: ProposalDiscussion ThreadById (r:0 w:1) + // Proof: ProposalDiscussion ThreadById (max_values: None, max_size: Some(198), added: 2673, mode: MaxEncodedLen) // Storage: ProposalEngine Proposals (r:0 w:1) + // Proof: ProposalEngine Proposals (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen) // Storage: ProposalEngine DispatchableCallCode (r:0 w:1) + // Proof: ProposalEngine DispatchableCallCode (max_values: None, max_size: Some(3145752), added: 3148227, mode: MaxEncodedLen) + /// The range of component `t` is `[1, 20]`. + /// The range of component `d` is `[1, 20]`. fn create_proposal_set_membership_lead_invitation_quota(t: u32, d: u32, ) -> Weight { - Weight::from_ref_time(100_502_000) - // Standard Error: 24_000 - .saturating_add(Weight::from_ref_time(1_194_000).saturating_mul(t.into())) - // Standard Error: 24_000 - .saturating_add(Weight::from_ref_time(1_306_000).saturating_mul(d.into())) + // Proof Size summary in bytes: + // Measured: `748` + // Estimated: `13010` + // Minimum execution time: 67_000 nanoseconds. + Weight::from_ref_time(58_263_157) + .saturating_add(Weight::from_proof_size(13010)) + // Standard Error: 236_354 + .saturating_add(Weight::from_ref_time(552_631).saturating_mul(t.into())) + // Standard Error: 236_354 + .saturating_add(Weight::from_ref_time(684_210).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(9_u64)) } // Storage: Membership MembershipById (r:1 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: ProposalEngine ActiveProposalCount (r:1 w:1) + // Proof: ProposalEngine ActiveProposalCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Membership StakingAccountIdMemberStatus (r:1 w:0) + // Proof: Membership StakingAccountIdMemberStatus (max_values: None, max_size: Some(57), added: 2532, mode: MaxEncodedLen) // Storage: Balances Locks (r:1 w:1) + // Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) // Storage: ProposalDiscussion ThreadCount (r:1 w:1) + // Proof: ProposalDiscussion ThreadCount (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: ProposalEngine ProposalCount (r:1 w:1) + // Proof: ProposalEngine ProposalCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: ProposalsCodex ThreadIdByProposalId (r:0 w:1) + // Proof: ProposalsCodex ThreadIdByProposalId (max_values: None, max_size: Some(28), added: 2503, mode: MaxEncodedLen) // Storage: ProposalDiscussion ThreadById (r:0 w:1) + // Proof: ProposalDiscussion ThreadById (max_values: None, max_size: Some(198), added: 2673, mode: MaxEncodedLen) // Storage: ProposalEngine Proposals (r:0 w:1) + // Proof: ProposalEngine Proposals (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen) // Storage: ProposalEngine DispatchableCallCode (r:0 w:1) + // Proof: ProposalEngine DispatchableCallCode (max_values: None, max_size: Some(3145752), added: 3148227, mode: MaxEncodedLen) + /// The range of component `t` is `[1, 20]`. + /// The range of component `d` is `[1, 20]`. fn create_proposal_set_referral_cut(t: u32, d: u32, ) -> Weight { - Weight::from_ref_time(97_395_000) - // Standard Error: 22_000 - .saturating_add(Weight::from_ref_time(1_255_000).saturating_mul(t.into())) - // Standard Error: 22_000 - .saturating_add(Weight::from_ref_time(1_448_000).saturating_mul(d.into())) + // Proof Size summary in bytes: + // Measured: `748` + // Estimated: `13010` + // Minimum execution time: 68_000 nanoseconds. + Weight::from_ref_time(56_657_894) + .saturating_add(Weight::from_proof_size(13010)) + // Standard Error: 203_841 + .saturating_add(Weight::from_ref_time(631_578).saturating_mul(t.into())) + // Standard Error: 203_841 + .saturating_add(Weight::from_ref_time(710_526).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(9_u64)) } // Storage: Membership MembershipById (r:1 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: ProposalEngine ActiveProposalCount (r:1 w:1) + // Proof: ProposalEngine ActiveProposalCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Membership StakingAccountIdMemberStatus (r:1 w:0) + // Proof: Membership StakingAccountIdMemberStatus (max_values: None, max_size: Some(57), added: 2532, mode: MaxEncodedLen) // Storage: Balances Locks (r:1 w:1) + // Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) // Storage: ProposalDiscussion ThreadCount (r:1 w:1) + // Proof: ProposalDiscussion ThreadCount (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: ProposalEngine ProposalCount (r:1 w:1) + // Proof: ProposalEngine ProposalCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: ProposalsCodex ThreadIdByProposalId (r:0 w:1) + // Proof: ProposalsCodex ThreadIdByProposalId (max_values: None, max_size: Some(28), added: 2503, mode: MaxEncodedLen) // Storage: ProposalDiscussion ThreadById (r:0 w:1) + // Proof: ProposalDiscussion ThreadById (max_values: None, max_size: Some(198), added: 2673, mode: MaxEncodedLen) // Storage: ProposalEngine Proposals (r:0 w:1) + // Proof: ProposalEngine Proposals (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen) // Storage: ProposalEngine DispatchableCallCode (r:0 w:1) + // Proof: ProposalEngine DispatchableCallCode (max_values: None, max_size: Some(3145752), added: 3148227, mode: MaxEncodedLen) + /// The range of component `t` is `[1, 20]`. + /// The range of component `d` is `[1, 20]`. fn create_proposal_update_global_nft_limit(t: u32, d: u32, ) -> Weight { - Weight::from_ref_time(95_855_000) - // Standard Error: 23_000 - .saturating_add(Weight::from_ref_time(1_340_000).saturating_mul(t.into())) - // Standard Error: 23_000 - .saturating_add(Weight::from_ref_time(1_517_000).saturating_mul(d.into())) + // Proof Size summary in bytes: + // Measured: `748` + // Estimated: `13010` + // Minimum execution time: 68_000 nanoseconds. + Weight::from_ref_time(55_078_947) + .saturating_add(Weight::from_proof_size(13010)) + // Standard Error: 195_753 + .saturating_add(Weight::from_ref_time(684_210).saturating_mul(t.into())) + // Standard Error: 195_753 + .saturating_add(Weight::from_ref_time(736_842).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(9_u64)) } // Storage: Membership MembershipById (r:1 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: ProposalEngine ActiveProposalCount (r:1 w:1) + // Proof: ProposalEngine ActiveProposalCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Membership StakingAccountIdMemberStatus (r:1 w:0) + // Proof: Membership StakingAccountIdMemberStatus (max_values: None, max_size: Some(57), added: 2532, mode: MaxEncodedLen) // Storage: Balances Locks (r:1 w:1) + // Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) // Storage: ProposalDiscussion ThreadCount (r:1 w:1) + // Proof: ProposalDiscussion ThreadCount (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: ProposalEngine ProposalCount (r:1 w:1) + // Proof: ProposalEngine ProposalCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: ProposalsCodex ThreadIdByProposalId (r:0 w:1) + // Proof: ProposalsCodex ThreadIdByProposalId (max_values: None, max_size: Some(28), added: 2503, mode: MaxEncodedLen) // Storage: ProposalDiscussion ThreadById (r:0 w:1) + // Proof: ProposalDiscussion ThreadById (max_values: None, max_size: Some(198), added: 2673, mode: MaxEncodedLen) // Storage: ProposalEngine Proposals (r:0 w:1) + // Proof: ProposalEngine Proposals (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen) // Storage: ProposalEngine DispatchableCallCode (r:0 w:1) + // Proof: ProposalEngine DispatchableCallCode (max_values: None, max_size: Some(3145752), added: 3148227, mode: MaxEncodedLen) + /// The range of component `t` is `[1, 20]`. + /// The range of component `d` is `[1, 20]`. + /// The range of component `i` is `[0, 100]`. fn create_proposal_update_channel_payouts(t: u32, d: u32, i: u32, ) -> Weight { - Weight::from_ref_time(121_494_000) - // Standard Error: 43_000 - .saturating_add(Weight::from_ref_time(801_000).saturating_mul(t.into())) - // Standard Error: 43_000 - .saturating_add(Weight::from_ref_time(1_010_000).saturating_mul(d.into())) - // Standard Error: 6_000 - .saturating_add(Weight::from_ref_time(1_809_000).saturating_mul(i.into())) + // Proof Size summary in bytes: + // Measured: `748` + // Estimated: `13010` + // Minimum execution time: 83_000 nanoseconds. + Weight::from_ref_time(66_500_000) + .saturating_add(Weight::from_proof_size(13010)) + // Standard Error: 697_368 + .saturating_add(Weight::from_ref_time(578_947).saturating_mul(t.into())) + // Standard Error: 697_368 + .saturating_add(Weight::from_ref_time(421_052).saturating_mul(d.into())) + // Standard Error: 132_500 + .saturating_add(Weight::from_ref_time(895_000).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(9_u64)) } @@ -554,13 +980,13 @@ impl WeightInfo for SubstrateWeight { // Default implementation for tests impl WeightInfo for () { - fn create_proposal_signal(i: u32, t: u32, d: u32, ) -> Weight { + fn create_proposal_signal(i: u32, _t: u32, _d: u32, ) -> Weight { Weight::from_ref_time(0) } fn create_proposal_runtime_upgrade(i: u32, t: u32, d: u32, ) -> Weight { Weight::from_ref_time(0) } - fn create_proposal_funding_request(_i: u32, t: u32, d: u32, ) -> Weight { + fn create_proposal_funding_request(i: u32, t: u32, d: u32, ) -> Weight { Weight::from_ref_time(0) } fn create_proposal_set_max_validator_count(t: u32, d: u32, ) -> Weight { diff --git a/runtime-modules/proposals/discussion/src/weights.rs b/runtime-modules/proposals/discussion/src/weights.rs index 61b8c10b04..54f0ff8692 100644 --- a/runtime-modules/proposals/discussion/src/weights.rs +++ b/runtime-modules/proposals/discussion/src/weights.rs @@ -18,22 +18,21 @@ //! Autogenerated weights for proposals_discussion //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-10-20, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! DATE: 2023-03-15, STEPS: `2`, REPEAT: 2, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("prod-test"), DB CACHE: 1024 // Executed Command: -// ./../target/release/joystream-node +// ./scripts/../target/release/joystream-node // benchmark // pallet -// --base-path=/mnt/disks/local-ssd/ // --pallet=proposals_discussion // --extrinsic=* -// --chain=dev -// --steps=50 -// --repeat=20 +// --chain=prod-test +// --steps=2 +// --repeat=2 // --execution=wasm -// --template=./../devops/joystream-pallet-weight-template.hbs -// --output=./../runtime-modules/proposals/discussion/src/weights.rs +// --template=./scripts/../devops/joystream-pallet-weight-template.hbs +// --output=./scripts/../runtime-modules/proposals/discussion/src/weights.rs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -55,47 +54,87 @@ pub trait WeightInfo { pub struct SubstrateWeight(PhantomData); impl WeightInfo for SubstrateWeight { // Storage: Membership MembershipById (r:1 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: ProposalDiscussion ThreadById (r:1 w:0) + // Proof: ProposalDiscussion ThreadById (max_values: None, max_size: Some(198), added: 2673, mode: MaxEncodedLen) // Storage: Council CouncilMembers (r:1 w:0) + // Proof: Council CouncilMembers (max_values: Some(1), max_size: Some(325), added: 820, mode: MaxEncodedLen) // Storage: ProposalDiscussion PostCount (r:1 w:1) + // Proof: ProposalDiscussion PostCount (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: System Account (r:2 w:2) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) // Storage: ProposalDiscussion PostThreadIdByPostId (r:0 w:1) + // Proof: ProposalDiscussion PostThreadIdByPostId (max_values: None, max_size: Some(109), added: 2584, mode: MaxEncodedLen) + /// The range of component `j` is `[0, 100]`. fn add_post(j: u32, ) -> Weight { - Weight::from_ref_time(197_279_000) - // Standard Error: 3_000 - .saturating_add(Weight::from_ref_time(765_000).saturating_mul(j.into())) + // Proof Size summary in bytes: + // Measured: `2120` + // Estimated: `11802` + // Minimum execution time: 63_000 nanoseconds. + Weight::from_ref_time(63_500_000) + .saturating_add(Weight::from_proof_size(11802)) + // Standard Error: 50_249 + .saturating_add(Weight::from_ref_time(545_000).saturating_mul(j.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } // Storage: ProposalDiscussion ThreadById (r:1 w:0) + // Proof: ProposalDiscussion ThreadById (max_values: None, max_size: Some(198), added: 2673, mode: MaxEncodedLen) // Storage: ProposalDiscussion PostThreadIdByPostId (r:1 w:1) + // Proof: ProposalDiscussion PostThreadIdByPostId (max_values: None, max_size: Some(109), added: 2584, mode: MaxEncodedLen) // Storage: Membership MembershipById (r:1 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) + /// The range of component `j` is `[0, 100]`. fn update_post(j: u32, ) -> Weight { - Weight::from_ref_time(68_938_000) - // Standard Error: 2_000 - .saturating_add(Weight::from_ref_time(735_000).saturating_mul(j.into())) + // Proof Size summary in bytes: + // Measured: `626` + // Estimated: `7857` + // Minimum execution time: 24_000 nanoseconds. + Weight::from_ref_time(24_500_000) + .saturating_add(Weight::from_proof_size(7857)) + // Standard Error: 75_166 + .saturating_add(Weight::from_ref_time(560_000).saturating_mul(j.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Membership MembershipById (r:1 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: ProposalDiscussion PostThreadIdByPostId (r:1 w:1) + // Proof: ProposalDiscussion PostThreadIdByPostId (max_values: None, max_size: Some(109), added: 2584, mode: MaxEncodedLen) // Storage: ProposalDiscussion ThreadById (r:1 w:0) + // Proof: ProposalDiscussion ThreadById (max_values: None, max_size: Some(198), added: 2673, mode: MaxEncodedLen) // Storage: System Account (r:2 w:2) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn delete_post() -> Weight { - Weight::from_ref_time(122_960_000) + // Proof Size summary in bytes: + // Measured: `932` + // Estimated: `13063` + // Minimum execution time: 41_000 nanoseconds. + Weight::from_ref_time(42_000_000) + .saturating_add(Weight::from_proof_size(13063)) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } - // Storage: Membership MembershipById (r:1 w:0) + // Storage: Membership MembershipById (r:20 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: ProposalDiscussion ThreadById (r:1 w:1) + // Proof: ProposalDiscussion ThreadById (max_values: None, max_size: Some(198), added: 2673, mode: MaxEncodedLen) // Storage: Council CouncilMembers (r:1 w:0) + // Proof: Council CouncilMembers (max_values: Some(1), max_size: Some(325), added: 820, mode: MaxEncodedLen) + /// The range of component `i` is `[1, 20]`. fn change_thread_mode(i: u32, ) -> Weight { - Weight::from_ref_time(72_501_000) - // Standard Error: 34_000 - .saturating_add(Weight::from_ref_time(10_896_000).saturating_mul(i.into())) + // Proof Size summary in bytes: + // Measured: `1113 + i * (168 ±0)` + // Estimated: `3493 + i * (2600 ±0)` + // Minimum execution time: 30_000 nanoseconds. + Weight::from_ref_time(26_973_684) + .saturating_add(Weight::from_proof_size(3493)) + // Standard Error: 26_315 + .saturating_add(Weight::from_ref_time(3_026_315).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(1_u64)) + .saturating_add(Weight::from_proof_size(2600).saturating_mul(i.into())) } } diff --git a/runtime-modules/proposals/engine/src/weights.rs b/runtime-modules/proposals/engine/src/weights.rs index 1e3021d106..5f375bf63a 100644 --- a/runtime-modules/proposals/engine/src/weights.rs +++ b/runtime-modules/proposals/engine/src/weights.rs @@ -18,22 +18,21 @@ //! Autogenerated weights for proposals_engine //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-10-20, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! DATE: 2023-03-15, STEPS: `2`, REPEAT: 2, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("prod-test"), DB CACHE: 1024 // Executed Command: -// ./../target/release/joystream-node +// ./scripts/../target/release/joystream-node // benchmark // pallet -// --base-path=/mnt/disks/local-ssd/ // --pallet=proposals_engine // --extrinsic=* -// --chain=dev -// --steps=50 -// --repeat=20 +// --chain=prod-test +// --steps=2 +// --repeat=2 // --execution=wasm -// --template=./../devops/joystream-pallet-weight-template.hbs -// --output=./../runtime-modules/proposals/engine/src/weights.rs +// --template=./scripts/../devops/joystream-pallet-weight-template.hbs +// --output=./scripts/../runtime-modules/proposals/engine/src/weights.rs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -61,142 +60,269 @@ pub trait WeightInfo { pub struct SubstrateWeight(PhantomData); impl WeightInfo for SubstrateWeight { // Storage: Membership MembershipById (r:1 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: Council CouncilMembers (r:1 w:0) + // Proof: Council CouncilMembers (max_values: Some(1), max_size: Some(325), added: 820, mode: MaxEncodedLen) // Storage: ProposalEngine Proposals (r:1 w:1) + // Proof: ProposalEngine Proposals (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen) // Storage: ProposalEngine VoteExistsByProposalByVoter (r:1 w:1) + // Proof: ProposalEngine VoteExistsByProposalByVoter (max_values: None, max_size: Some(45), added: 2520, mode: MaxEncodedLen) + /// The range of component `i` is `[0, 100]`. fn vote(i: u32, ) -> Weight { - Weight::from_ref_time(47_888_000) - // Standard Error: 1_000 - .saturating_add(Weight::from_ref_time(675_000).saturating_mul(i.into())) + // Proof Size summary in bytes: + // Measured: `1432` + // Estimated: `8555` + // Minimum execution time: 31_000 nanoseconds. + Weight::from_ref_time(32_000_000) + .saturating_add(Weight::from_proof_size(8555)) + // Standard Error: 80_622 + .saturating_add(Weight::from_ref_time(490_000).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } // Storage: Membership MembershipById (r:1 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: ProposalEngine Proposals (r:1 w:1) + // Proof: ProposalEngine Proposals (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen) // Storage: Balances Locks (r:1 w:1) + // Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) // Storage: ProposalEngine ActiveProposalCount (r:1 w:1) + // Proof: ProposalEngine ActiveProposalCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: ProposalsCodex ThreadIdByProposalId (r:0 w:1) + // Proof: ProposalsCodex ThreadIdByProposalId (max_values: None, max_size: Some(28), added: 2503, mode: MaxEncodedLen) // Storage: ProposalDiscussion ThreadById (r:0 w:1) + // Proof: ProposalDiscussion ThreadById (max_values: None, max_size: Some(198), added: 2673, mode: MaxEncodedLen) // Storage: ProposalEngine DispatchableCallCode (r:0 w:1) + // Proof: ProposalEngine DispatchableCallCode (max_values: None, max_size: Some(3145752), added: 3148227, mode: MaxEncodedLen) fn cancel_proposal() -> Weight { - Weight::from_ref_time(98_790_000) + // Proof Size summary in bytes: + // Measured: `976` + // Estimated: `12091` + // Minimum execution time: 70_000 nanoseconds. + Weight::from_ref_time(70_000_000) + .saturating_add(Weight::from_proof_size(12091)) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(7_u64)) } // Storage: ProposalEngine Proposals (r:1 w:1) + // Proof: ProposalEngine Proposals (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen) // Storage: Balances Locks (r:1 w:1) + // Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) // Storage: ProposalEngine ActiveProposalCount (r:1 w:1) + // Proof: ProposalEngine ActiveProposalCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: ProposalsCodex ThreadIdByProposalId (r:0 w:1) + // Proof: ProposalsCodex ThreadIdByProposalId (max_values: None, max_size: Some(28), added: 2503, mode: MaxEncodedLen) // Storage: ProposalDiscussion ThreadById (r:0 w:1) + // Proof: ProposalDiscussion ThreadById (max_values: None, max_size: Some(198), added: 2673, mode: MaxEncodedLen) // Storage: ProposalEngine DispatchableCallCode (r:0 w:1) + // Proof: ProposalEngine DispatchableCallCode (max_values: None, max_size: Some(3145752), added: 3148227, mode: MaxEncodedLen) fn veto_proposal() -> Weight { - Weight::from_ref_time(53_520_000) + // Proof Size summary in bytes: + // Measured: `691` + // Estimated: `9491` + // Minimum execution time: 39_000 nanoseconds. + Weight::from_ref_time(42_000_000) + .saturating_add(Weight::from_proof_size(9491)) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(7_u64)) } // Storage: Membership MembershipById (r:1 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: ProposalEngine Proposals (r:1 w:0) + // Proof: ProposalEngine Proposals (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen) fn proposer_remark() -> Weight { - Weight::from_ref_time(24_591_000) + // Proof Size summary in bytes: + // Measured: `612` + // Estimated: `5215` + // Minimum execution time: 18_000 nanoseconds. + Weight::from_ref_time(18_000_000) + .saturating_add(Weight::from_proof_size(5215)) .saturating_add(T::DbWeight::get().reads(2_u64)) } - // Storage: ProposalEngine Proposals (r:2 w:1) + // Storage: ProposalEngine Proposals (r:21 w:20) + // Proof: ProposalEngine Proposals (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen) // Storage: Council CouncilMembers (r:1 w:0) - // Storage: Balances Locks (r:1 w:1) - // Storage: System Account (r:1 w:1) - // Storage: ProposalEngine DispatchableCallCode (r:1 w:1) + // Proof: Council CouncilMembers (max_values: Some(1), max_size: Some(325), added: 820, mode: MaxEncodedLen) + // Storage: Balances Locks (r:20 w:20) + // Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) + // Storage: System Account (r:20 w:20) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + // Storage: ProposalEngine DispatchableCallCode (r:20 w:20) + // Proof: ProposalEngine DispatchableCallCode (max_values: None, max_size: Some(3145752), added: 3148227, mode: MaxEncodedLen) + // Storage: ProposalEngine VoteExistsByProposalByVoter (r:20 w:20) + // Proof: ProposalEngine VoteExistsByProposalByVoter (max_values: None, max_size: Some(45), added: 2520, mode: MaxEncodedLen) // Storage: ProposalEngine ActiveProposalCount (r:1 w:1) - // Storage: ProposalsCodex ThreadIdByProposalId (r:0 w:1) + // Proof: ProposalEngine ActiveProposalCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + // Storage: ProposalsCodex ThreadIdByProposalId (r:0 w:20) + // Proof: ProposalsCodex ThreadIdByProposalId (max_values: None, max_size: Some(28), added: 2503, mode: MaxEncodedLen) // Storage: ProposalDiscussion ThreadById (r:0 w:1) - // Storage: ProposalEngine VoteExistsByProposalByVoter (r:0 w:1) + // Proof: ProposalDiscussion ThreadById (max_values: None, max_size: Some(198), added: 2673, mode: MaxEncodedLen) + /// The range of component `i` is `[1, 20]`. fn on_initialize_immediate_execution_decode_fails(i: u32, ) -> Weight { - Weight::from_ref_time(26_040_000) - // Standard Error: 64_000 - .saturating_add(Weight::from_ref_time(61_934_000).saturating_mul(i.into())) + // Proof Size summary in bytes: + // Measured: `1036 + i * (553 ±0)` + // Estimated: `3934 + i * (3159739 ±0)` + // Minimum execution time: 59_000 nanoseconds. + Weight::from_ref_time(18_605_263) + .saturating_add(Weight::from_proof_size(3934)) + // Standard Error: 78_947 + .saturating_add(Weight::from_ref_time(40_394_736).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) - .saturating_add(T::DbWeight::get().reads((4_u64).saturating_mul(i.into()))) + .saturating_add(T::DbWeight::get().reads((5_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(2_u64)) .saturating_add(T::DbWeight::get().writes((6_u64).saturating_mul(i.into()))) + .saturating_add(Weight::from_proof_size(3159739).saturating_mul(i.into())) } - // Storage: ProposalEngine Proposals (r:2 w:1) - // Storage: ProposalEngine DispatchableCallCode (r:1 w:1) + // Storage: ProposalEngine Proposals (r:21 w:20) + // Proof: ProposalEngine Proposals (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen) + // Storage: ProposalEngine DispatchableCallCode (r:20 w:20) + // Proof: ProposalEngine DispatchableCallCode (max_values: None, max_size: Some(3145752), added: 3148227, mode: MaxEncodedLen) + // Storage: ProposalEngine VoteExistsByProposalByVoter (r:20 w:20) + // Proof: ProposalEngine VoteExistsByProposalByVoter (max_values: None, max_size: Some(45), added: 2520, mode: MaxEncodedLen) // Storage: ProposalEngine ActiveProposalCount (r:1 w:1) - // Storage: ProposalsCodex ThreadIdByProposalId (r:0 w:1) + // Proof: ProposalEngine ActiveProposalCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + // Storage: ProposalsCodex ThreadIdByProposalId (r:0 w:20) + // Proof: ProposalsCodex ThreadIdByProposalId (max_values: None, max_size: Some(28), added: 2503, mode: MaxEncodedLen) // Storage: ProposalDiscussion ThreadById (r:0 w:1) - // Storage: ProposalEngine VoteExistsByProposalByVoter (r:0 w:1) + // Proof: ProposalDiscussion ThreadById (max_values: None, max_size: Some(198), added: 2673, mode: MaxEncodedLen) + /// The range of component `i` is `[1, 20]`. fn on_initialize_pending_execution_decode_fails(i: u32, ) -> Weight { - Weight::from_ref_time(21_694_000) - // Standard Error: 56_000 - .saturating_add(Weight::from_ref_time(32_464_000).saturating_mul(i.into())) + // Proof Size summary in bytes: + // Measured: `156 + i * (252 ±0)` + // Estimated: `3114 + i * (3153362 ±0)` + // Minimum execution time: 31_000 nanoseconds. + Weight::from_ref_time(9_552_631) + .saturating_add(Weight::from_proof_size(3114)) + // Standard Error: 184_210 + .saturating_add(Weight::from_ref_time(21_447_368).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) - .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(i.into()))) + .saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(2_u64)) .saturating_add(T::DbWeight::get().writes((4_u64).saturating_mul(i.into()))) + .saturating_add(Weight::from_proof_size(3153362).saturating_mul(i.into())) } - // Storage: ProposalEngine Proposals (r:2 w:1) + // Storage: ProposalEngine Proposals (r:21 w:20) + // Proof: ProposalEngine Proposals (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen) // Storage: Council CouncilMembers (r:1 w:0) + // Proof: Council CouncilMembers (max_values: Some(1), max_size: Some(325), added: 820, mode: MaxEncodedLen) + /// The range of component `i` is `[1, 20]`. fn on_initialize_approved_pending_constitutionality(i: u32, ) -> Weight { - Weight::from_ref_time(28_472_000_u64) - // Standard Error: 31_000 - .saturating_add(Weight::from_ref_time(21_495_000).saturating_mul(i.into())) + // Proof Size summary in bytes: + // Measured: `841 + i * (172 ±0)` + // Estimated: `3435 + i * (2615 ±0)` + // Minimum execution time: 28_000 nanoseconds. + Weight::from_ref_time(13_236_842) + .saturating_add(Weight::from_proof_size(3435)) + // Standard Error: 37_216 + .saturating_add(Weight::from_ref_time(15_263_157).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) + .saturating_add(Weight::from_proof_size(2615).saturating_mul(i.into())) } - // Storage: ProposalEngine Proposals (r:2 w:1) + // Storage: ProposalEngine Proposals (r:21 w:20) + // Proof: ProposalEngine Proposals (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen) // Storage: Council CouncilMembers (r:1 w:0) - // Storage: Balances Locks (r:1 w:1) - // Storage: System Account (r:1 w:1) + // Proof: Council CouncilMembers (max_values: Some(1), max_size: Some(325), added: 820, mode: MaxEncodedLen) + // Storage: Balances Locks (r:20 w:20) + // Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) + // Storage: System Account (r:20 w:20) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + // Storage: ProposalEngine VoteExistsByProposalByVoter (r:60 w:60) + // Proof: ProposalEngine VoteExistsByProposalByVoter (max_values: None, max_size: Some(45), added: 2520, mode: MaxEncodedLen) // Storage: ProposalEngine ActiveProposalCount (r:1 w:1) - // Storage: ProposalsCodex ThreadIdByProposalId (r:0 w:1) + // Proof: ProposalEngine ActiveProposalCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + // Storage: ProposalsCodex ThreadIdByProposalId (r:0 w:20) + // Proof: ProposalsCodex ThreadIdByProposalId (max_values: None, max_size: Some(28), added: 2503, mode: MaxEncodedLen) // Storage: ProposalDiscussion ThreadById (r:0 w:1) - // Storage: ProposalEngine VoteExistsByProposalByVoter (r:0 w:3) - // Storage: ProposalEngine DispatchableCallCode (r:0 w:1) + // Proof: ProposalDiscussion ThreadById (max_values: None, max_size: Some(198), added: 2673, mode: MaxEncodedLen) + // Storage: ProposalEngine DispatchableCallCode (r:0 w:20) + // Proof: ProposalEngine DispatchableCallCode (max_values: None, max_size: Some(3145752), added: 3148227, mode: MaxEncodedLen) + /// The range of component `i` is `[1, 20]`. fn on_initialize_rejected(i: u32, ) -> Weight { - Weight::from_ref_time(26_645_000) - // Standard Error: 81_000 - .saturating_add(Weight::from_ref_time(84_339_000).saturating_mul(i.into())) + // Proof Size summary in bytes: + // Measured: `1053 + i * (587 ±0)` + // Estimated: `3934 + i * (16552 ±0)` + // Minimum execution time: 74_000 nanoseconds. + Weight::from_ref_time(18_263_157) + .saturating_add(Weight::from_proof_size(3934)) + // Standard Error: 74_432 + .saturating_add(Weight::from_ref_time(56_736_842).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) - .saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(i.into()))) + .saturating_add(T::DbWeight::get().reads((6_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(2_u64)) .saturating_add(T::DbWeight::get().writes((8_u64).saturating_mul(i.into()))) + .saturating_add(Weight::from_proof_size(16552).saturating_mul(i.into())) } - // Storage: ProposalEngine Proposals (r:2 w:1) + // Storage: ProposalEngine Proposals (r:21 w:20) + // Proof: ProposalEngine Proposals (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen) // Storage: Council CouncilMembers (r:1 w:0) - // Storage: Balances Locks (r:1 w:1) - // Storage: System Account (r:1 w:1) + // Proof: Council CouncilMembers (max_values: Some(1), max_size: Some(325), added: 820, mode: MaxEncodedLen) + // Storage: Balances Locks (r:20 w:20) + // Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) + // Storage: System Account (r:20 w:20) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + // Storage: ProposalEngine VoteExistsByProposalByVoter (r:60 w:60) + // Proof: ProposalEngine VoteExistsByProposalByVoter (max_values: None, max_size: Some(45), added: 2520, mode: MaxEncodedLen) // Storage: ProposalEngine ActiveProposalCount (r:1 w:1) - // Storage: ProposalsCodex ThreadIdByProposalId (r:0 w:1) + // Proof: ProposalEngine ActiveProposalCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + // Storage: ProposalsCodex ThreadIdByProposalId (r:0 w:20) + // Proof: ProposalsCodex ThreadIdByProposalId (max_values: None, max_size: Some(28), added: 2503, mode: MaxEncodedLen) // Storage: ProposalDiscussion ThreadById (r:0 w:1) - // Storage: ProposalEngine VoteExistsByProposalByVoter (r:0 w:3) - // Storage: ProposalEngine DispatchableCallCode (r:0 w:1) + // Proof: ProposalDiscussion ThreadById (max_values: None, max_size: Some(198), added: 2673, mode: MaxEncodedLen) + // Storage: ProposalEngine DispatchableCallCode (r:0 w:20) + // Proof: ProposalEngine DispatchableCallCode (max_values: None, max_size: Some(3145752), added: 3148227, mode: MaxEncodedLen) + /// The range of component `i` is `[1, 20]`. fn on_initialize_slashed(i: u32, ) -> Weight { - Weight::from_ref_time(30_142_000) - // Standard Error: 66_000 - .saturating_add(Weight::from_ref_time(74_001_000).saturating_mul(i.into())) + // Proof Size summary in bytes: + // Measured: `1053 + i * (587 ±0)` + // Estimated: `3934 + i * (16552 ±0)` + // Minimum execution time: 68_000 nanoseconds. + Weight::from_ref_time(18_526_315) + .saturating_add(Weight::from_proof_size(3934)) + // Standard Error: 212_164 + .saturating_add(Weight::from_ref_time(49_973_684).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) - .saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(i.into()))) + .saturating_add(T::DbWeight::get().reads((6_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(2_u64)) .saturating_add(T::DbWeight::get().writes((8_u64).saturating_mul(i.into()))) + .saturating_add(Weight::from_proof_size(16552).saturating_mul(i.into())) } // Storage: ProposalEngine ActiveProposalCount (r:1 w:1) - // Storage: ProposalEngine Proposals (r:2 w:1) - // Storage: Balances Locks (r:1 w:1) - // Storage: System Account (r:1 w:1) - // Storage: ProposalsCodex ThreadIdByProposalId (r:0 w:1) + // Proof: ProposalEngine ActiveProposalCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + // Storage: ProposalEngine Proposals (r:21 w:20) + // Proof: ProposalEngine Proposals (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen) + // Storage: Balances Locks (r:20 w:20) + // Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) + // Storage: System Account (r:20 w:20) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + // Storage: ProposalEngine VoteExistsByProposalByVoter (r:60 w:60) + // Proof: ProposalEngine VoteExistsByProposalByVoter (max_values: None, max_size: Some(45), added: 2520, mode: MaxEncodedLen) + // Storage: ProposalsCodex ThreadIdByProposalId (r:0 w:20) + // Proof: ProposalsCodex ThreadIdByProposalId (max_values: None, max_size: Some(28), added: 2503, mode: MaxEncodedLen) // Storage: ProposalDiscussion ThreadById (r:0 w:1) - // Storage: ProposalEngine VoteExistsByProposalByVoter (r:0 w:3) - // Storage: ProposalEngine DispatchableCallCode (r:0 w:1) + // Proof: ProposalDiscussion ThreadById (max_values: None, max_size: Some(198), added: 2673, mode: MaxEncodedLen) + // Storage: ProposalEngine DispatchableCallCode (r:0 w:20) + // Proof: ProposalEngine DispatchableCallCode (max_values: None, max_size: Some(3145752), added: 3148227, mode: MaxEncodedLen) + /// The range of component `i` is `[1, 20]`. fn cancel_active_and_pending_proposals(i: u32, ) -> Weight { - Weight::from_ref_time(20_266_000) - // Standard Error: 83_000 - .saturating_add(Weight::from_ref_time(49_225_000).saturating_mul(i.into())) + // Proof Size summary in bytes: + // Measured: `403 + i * (587 ±0)` + // Estimated: `3114 + i * (16552 ±0)` + // Minimum execution time: 43_000 nanoseconds. + Weight::from_ref_time(13_578_947) + .saturating_add(Weight::from_proof_size(3114)) + // Standard Error: 148_864 + .saturating_add(Weight::from_ref_time(31_421_052).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) - .saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(i.into()))) + .saturating_add(T::DbWeight::get().reads((6_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(2_u64)) .saturating_add(T::DbWeight::get().writes((8_u64).saturating_mul(i.into()))) + .saturating_add(Weight::from_proof_size(16552).saturating_mul(i.into())) } } diff --git a/runtime-modules/referendum/src/weights.rs b/runtime-modules/referendum/src/weights.rs index 69816657f2..a86bb7c5d5 100644 --- a/runtime-modules/referendum/src/weights.rs +++ b/runtime-modules/referendum/src/weights.rs @@ -18,22 +18,21 @@ //! Autogenerated weights for referendum //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-10-20, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! DATE: 2023-03-15, STEPS: `2`, REPEAT: 2, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("prod-test"), DB CACHE: 1024 // Executed Command: -// ./../target/release/joystream-node +// ./scripts/../target/release/joystream-node // benchmark // pallet -// --base-path=/mnt/disks/local-ssd/ // --pallet=referendum // --extrinsic=* -// --chain=dev -// --steps=50 -// --repeat=20 +// --chain=prod-test +// --steps=2 +// --repeat=2 // --execution=wasm -// --template=./../devops/joystream-pallet-weight-template.hbs -// --output=./../runtime-modules/referendum/src/weights.rs +// --template=./scripts/../devops/joystream-pallet-weight-template.hbs +// --output=./scripts/../runtime-modules/referendum/src/weights.rs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -60,87 +59,165 @@ pub trait WeightInfo { pub struct SubstrateWeight(PhantomData); impl WeightInfo for SubstrateWeight { // Storage: Instance1Referendum Stage (r:1 w:1) + // Proof: Instance1Referendum Stage (max_values: Some(1), max_size: Some(94), added: 589, mode: MaxEncodedLen) // Storage: Council AnnouncementPeriodNr (r:1 w:1) + // Proof: Council AnnouncementPeriodNr (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Council Stage (r:0 w:1) + // Proof: Council Stage (max_values: Some(1), max_size: Some(13), added: 508, mode: MaxEncodedLen) + /// The range of component `i` is `[0, 2]`. fn on_initialize_revealing(i: u32, ) -> Weight { - Weight::from_ref_time(32_918_000) - // Standard Error: 86_000 - .saturating_add(Weight::from_ref_time(1_424_000).saturating_mul(i.into())) + // Proof Size summary in bytes: + // Measured: `474 + i * (41 ±0)` + // Estimated: `1092` + // Minimum execution time: 18_000 nanoseconds. + Weight::from_ref_time(18_000_000) + .saturating_add(Weight::from_proof_size(1092)) + // Standard Error: 0 + .saturating_add(Weight::from_ref_time(500_000).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } // Storage: Instance1Referendum Stage (r:1 w:1) + // Proof: Instance1Referendum Stage (max_values: Some(1), max_size: Some(94), added: 589, mode: MaxEncodedLen) fn on_initialize_voting() -> Weight { - Weight::from_ref_time(18_880_000) + // Proof Size summary in bytes: + // Measured: `128` + // Estimated: `589` + // Minimum execution time: 9_000 nanoseconds. + Weight::from_ref_time(10_000_000) + .saturating_add(Weight::from_proof_size(589)) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Instance1Referendum AccountsOptedOut (r:1 w:0) + // Proof: Instance1Referendum AccountsOptedOut (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) // Storage: Instance1Referendum Stage (r:1 w:0) + // Proof: Instance1Referendum Stage (max_values: Some(1), max_size: Some(94), added: 589, mode: MaxEncodedLen) // Storage: Instance1Referendum Votes (r:1 w:1) + // Proof: Instance1Referendum Votes (max_values: None, max_size: Some(113), added: 2588, mode: MaxEncodedLen) // Storage: Balances Locks (r:1 w:1) + // Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn vote() -> Weight { - Weight::from_ref_time(57_013_000) - .saturating_add(T::DbWeight::get().reads(5_u64)) + // Proof Size summary in bytes: + // Measured: `323` + // Estimated: `12077` + // Minimum execution time: 29_000 nanoseconds. + Weight::from_ref_time(30_000_000) + .saturating_add(Weight::from_proof_size(12077)) + .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } // Storage: Instance1Referendum Stage (r:1 w:1) + // Proof: Instance1Referendum Stage (max_values: Some(1), max_size: Some(94), added: 589, mode: MaxEncodedLen) // Storage: Instance1Referendum Votes (r:1 w:1) + // Proof: Instance1Referendum Votes (max_values: None, max_size: Some(113), added: 2588, mode: MaxEncodedLen) // Storage: Council Candidates (r:1 w:1) + // Proof: Council Candidates (max_values: None, max_size: Some(161), added: 2636, mode: MaxEncodedLen) // Storage: Council AnnouncementPeriodNr (r:1 w:0) + // Proof: Council AnnouncementPeriodNr (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) + /// The range of component `i` is `[0, 2]`. fn reveal_vote_space_for_new_winner(i: u32, ) -> Weight { - Weight::from_ref_time(45_258_000) - // Standard Error: 144_000 - .saturating_add(Weight::from_ref_time(2_127_000).saturating_mul(i.into())) + // Proof Size summary in bytes: + // Measured: `753 + i * (113 ±0)` + // Estimated: `6316` + // Minimum execution time: 30_000 nanoseconds. + Weight::from_ref_time(30_000_000) + .saturating_add(Weight::from_proof_size(6316)) + // Standard Error: 500_000 + .saturating_add(Weight::from_ref_time(1_500_000).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } // Storage: Instance1Referendum Stage (r:1 w:1) + // Proof: Instance1Referendum Stage (max_values: Some(1), max_size: Some(94), added: 589, mode: MaxEncodedLen) // Storage: Instance1Referendum Votes (r:1 w:1) + // Proof: Instance1Referendum Votes (max_values: None, max_size: Some(113), added: 2588, mode: MaxEncodedLen) // Storage: Council Candidates (r:1 w:1) + // Proof: Council Candidates (max_values: None, max_size: Some(161), added: 2636, mode: MaxEncodedLen) // Storage: Council AnnouncementPeriodNr (r:1 w:0) + // Proof: Council AnnouncementPeriodNr (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) + /// The range of component `i` is `[0, 2]`. fn reveal_vote_space_not_in_winners(i: u32, ) -> Weight { - Weight::from_ref_time(47_590_000) - // Standard Error: 58_000 - .saturating_add(Weight::from_ref_time(1_263_000).saturating_mul(i.into())) + // Proof Size summary in bytes: + // Measured: `886 + i * (91 ±0)` + // Estimated: `6316` + // Minimum execution time: 31_000 nanoseconds. + Weight::from_ref_time(31_000_000) + .saturating_add(Weight::from_proof_size(6316)) + // Standard Error: 250_000 + .saturating_add(Weight::from_ref_time(250_000).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } // Storage: Instance1Referendum Stage (r:1 w:1) + // Proof: Instance1Referendum Stage (max_values: Some(1), max_size: Some(94), added: 589, mode: MaxEncodedLen) // Storage: Instance1Referendum Votes (r:1 w:1) + // Proof: Instance1Referendum Votes (max_values: None, max_size: Some(113), added: 2588, mode: MaxEncodedLen) // Storage: Council Candidates (r:1 w:1) + // Proof: Council Candidates (max_values: None, max_size: Some(161), added: 2636, mode: MaxEncodedLen) // Storage: Council AnnouncementPeriodNr (r:1 w:0) - fn reveal_vote_space_replace_last_winner(i: u32, ) -> Weight { - Weight::from_ref_time(47_356_000) - // Standard Error: 72_000 - .saturating_add(Weight::from_ref_time(1_157_000).saturating_mul(i.into())) + // Proof: Council AnnouncementPeriodNr (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) + /// The range of component `i` is `[0, 2]`. + fn reveal_vote_space_replace_last_winner(_i: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `886 + i * (91 ±0)` + // Estimated: `6316` + // Minimum execution time: 31_000 nanoseconds. + Weight::from_ref_time(31_500_000) + .saturating_add(Weight::from_proof_size(6316)) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } // Storage: Instance1Referendum Stage (r:1 w:1) + // Proof: Instance1Referendum Stage (max_values: Some(1), max_size: Some(94), added: 589, mode: MaxEncodedLen) // Storage: Instance1Referendum Votes (r:1 w:1) + // Proof: Instance1Referendum Votes (max_values: None, max_size: Some(113), added: 2588, mode: MaxEncodedLen) // Storage: Council Candidates (r:1 w:1) + // Proof: Council Candidates (max_values: None, max_size: Some(161), added: 2636, mode: MaxEncodedLen) // Storage: Council AnnouncementPeriodNr (r:1 w:0) + // Proof: Council AnnouncementPeriodNr (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) + /// The range of component `i` is `[0, 2]`. fn reveal_vote_already_existing(i: u32, ) -> Weight { - Weight::from_ref_time(46_890_000) - // Standard Error: 74_000 - .saturating_add(Weight::from_ref_time(1_400_000).saturating_mul(i.into())) + // Proof Size summary in bytes: + // Measured: `849 + i * (93 ±0)` + // Estimated: `6316` + // Minimum execution time: 30_000 nanoseconds. + Weight::from_ref_time(30_000_000) + .saturating_add(Weight::from_proof_size(6316)) + // Standard Error: 0 + .saturating_add(Weight::from_ref_time(1_000_000).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } // Storage: Instance1Referendum Votes (r:1 w:1) + // Proof: Instance1Referendum Votes (max_values: None, max_size: Some(113), added: 2588, mode: MaxEncodedLen) // Storage: Council AnnouncementPeriodNr (r:1 w:0) + // Proof: Council AnnouncementPeriodNr (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Balances Locks (r:1 w:1) + // Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn release_vote_stake() -> Weight { - Weight::from_ref_time(46_810_000) + // Proof Size summary in bytes: + // Measured: `846` + // Estimated: `9468` + // Minimum execution time: 30_000 nanoseconds. + Weight::from_ref_time(31_000_000) + .saturating_add(Weight::from_proof_size(9468)) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } - // Storage: Instance1Referendum AccountsOptedOut (r:0 w:1) + // Storage: Instance1Referendum AccountsOptedOut (r:1 w:1) + // Proof: Instance1Referendum AccountsOptedOut (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) fn opt_out_of_voting() -> Weight { - Weight::from_ref_time(22_013_000) + // Proof Size summary in bytes: + // Measured: `72` + // Estimated: `2523` + // Minimum execution time: 12_000 nanoseconds. + Weight::from_ref_time(15_000_000) + .saturating_add(Weight::from_proof_size(2523)) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -163,7 +240,7 @@ impl WeightInfo for () { fn reveal_vote_space_not_in_winners(i: u32, ) -> Weight { Weight::from_ref_time(0) } - fn reveal_vote_space_replace_last_winner(i: u32, ) -> Weight { + fn reveal_vote_space_replace_last_winner(_i: u32, ) -> Weight { Weight::from_ref_time(0) } fn reveal_vote_already_existing(i: u32, ) -> Weight { diff --git a/runtime-modules/storage/src/weights.rs b/runtime-modules/storage/src/weights.rs index 89d140ccbd..5a6fe604b3 100644 --- a/runtime-modules/storage/src/weights.rs +++ b/runtime-modules/storage/src/weights.rs @@ -18,22 +18,21 @@ //! Autogenerated weights for storage //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-10-20, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! DATE: 2023-03-15, STEPS: `2`, REPEAT: 2, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("prod-test"), DB CACHE: 1024 // Executed Command: -// ./../target/release/joystream-node +// ./scripts/../target/release/joystream-node // benchmark // pallet -// --base-path=/mnt/disks/local-ssd/ // --pallet=storage // --extrinsic=* -// --chain=dev -// --steps=50 -// --repeat=20 +// --chain=prod-test +// --steps=2 +// --repeat=2 // --execution=wasm -// --template=./../devops/joystream-pallet-weight-template.hbs -// --output=./../runtime-modules/storage/src/weights.rs +// --template=./scripts/../devops/joystream-pallet-weight-template.hbs +// --output=./scripts/../runtime-modules/storage/src/weights.rs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -86,330 +85,644 @@ pub trait WeightInfo { pub struct SubstrateWeight(PhantomData); impl WeightInfo for SubstrateWeight { // Storage: Instance2WorkingGroup CurrentLead (r:1 w:0) + // Proof: Instance2WorkingGroup CurrentLead (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Instance2WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance2WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Storage StorageBucketById (r:1 w:1) + // Proof: Storage StorageBucketById (max_values: None, max_size: Some(106), added: 2581, mode: MaxEncodedLen) fn delete_storage_bucket() -> Weight { - Weight::from_ref_time(59_190_000) + // Proof Size summary in bytes: + // Measured: `698` + // Estimated: `5734` + // Minimum execution time: 21_000 nanoseconds. + Weight::from_ref_time(22_000_000) + .saturating_add(Weight::from_proof_size(5734)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Instance2WorkingGroup CurrentLead (r:1 w:0) + // Proof: Instance2WorkingGroup CurrentLead (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Instance2WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance2WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Storage UploadingBlocked (r:0 w:1) + // Proof: Storage UploadingBlocked (max_values: Some(1), max_size: Some(1), added: 496, mode: MaxEncodedLen) fn update_uploading_blocked_status() -> Weight { - Weight::from_ref_time(47_190_000) + // Proof Size summary in bytes: + // Measured: `437` + // Estimated: `3153` + // Minimum execution time: 17_000 nanoseconds. + Weight::from_ref_time(18_000_000) + .saturating_add(Weight::from_proof_size(3153)) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Instance2WorkingGroup CurrentLead (r:1 w:0) + // Proof: Instance2WorkingGroup CurrentLead (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Instance2WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance2WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Storage DataObjectPerMegabyteFee (r:0 w:1) + // Proof: Storage DataObjectPerMegabyteFee (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) fn update_data_size_fee() -> Weight { - Weight::from_ref_time(47_700_000) + // Proof Size summary in bytes: + // Measured: `437` + // Estimated: `3153` + // Minimum execution time: 16_000 nanoseconds. + Weight::from_ref_time(17_000_000) + .saturating_add(Weight::from_proof_size(3153)) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Instance2WorkingGroup CurrentLead (r:1 w:0) + // Proof: Instance2WorkingGroup CurrentLead (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Instance2WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance2WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Storage StorageBucketsPerBagLimit (r:0 w:1) + // Proof: Storage StorageBucketsPerBagLimit (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) fn update_storage_buckets_per_bag_limit() -> Weight { - Weight::from_ref_time(46_990_000) + // Proof Size summary in bytes: + // Measured: `437` + // Estimated: `3153` + // Minimum execution time: 16_000 nanoseconds. + Weight::from_ref_time(16_000_000) + .saturating_add(Weight::from_proof_size(3153)) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Instance2WorkingGroup CurrentLead (r:1 w:0) + // Proof: Instance2WorkingGroup CurrentLead (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Instance2WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance2WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Storage VoucherMaxObjectsSizeLimit (r:0 w:1) + // Proof: Storage VoucherMaxObjectsSizeLimit (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Storage VoucherMaxObjectsNumberLimit (r:0 w:1) + // Proof: Storage VoucherMaxObjectsNumberLimit (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) fn update_storage_buckets_voucher_max_limits() -> Weight { - Weight::from_ref_time(49_580_000) + // Proof Size summary in bytes: + // Measured: `437` + // Estimated: `3153` + // Minimum execution time: 17_000 nanoseconds. + Weight::from_ref_time(18_000_000) + .saturating_add(Weight::from_proof_size(3153)) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } // Storage: Instance2WorkingGroup CurrentLead (r:1 w:0) + // Proof: Instance2WorkingGroup CurrentLead (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Instance2WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance2WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Storage DataObjectStateBloatBondValue (r:0 w:1) + // Proof: Storage DataObjectStateBloatBondValue (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) fn update_data_object_state_bloat_bond() -> Weight { - Weight::from_ref_time(48_090_000) + // Proof Size summary in bytes: + // Measured: `437` + // Estimated: `3153` + // Minimum execution time: 16_000 nanoseconds. + Weight::from_ref_time(16_000_000) + .saturating_add(Weight::from_proof_size(3153)) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Instance2WorkingGroup CurrentLead (r:1 w:0) + // Proof: Instance2WorkingGroup CurrentLead (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Instance2WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance2WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Storage DynamicBagCreationPolicies (r:1 w:1) + // Proof: Storage DynamicBagCreationPolicies (max_values: None, max_size: Some(634), added: 3109, mode: MaxEncodedLen) fn update_number_of_storage_buckets_in_dynamic_bag_creation_policy() -> Weight { - Weight::from_ref_time(56_830_000) + // Proof Size summary in bytes: + // Measured: `550` + // Estimated: `6262` + // Minimum execution time: 19_000 nanoseconds. + Weight::from_ref_time(20_000_000) + .saturating_add(Weight::from_proof_size(6262)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Instance2WorkingGroup CurrentLead (r:1 w:0) + // Proof: Instance2WorkingGroup CurrentLead (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Instance2WorkingGroup WorkerById (r:1 w:0) - // Storage: Storage Blacklist (r:1000 w:0) + // Proof: Instance2WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) + // Storage: Storage Blacklist (r:2000 w:1000) + // Proof: Storage Blacklist (max_values: None, max_size: Some(63), added: 2538, mode: MaxEncodedLen) // Storage: Storage CurrentBlacklistSize (r:1 w:1) + // Proof: Storage CurrentBlacklistSize (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) + /// The range of component `i` is `[0, 1000]`. + /// The range of component `j` is `[0, 1000]`. fn update_blacklist(i: u32, j: u32, ) -> Weight { - Weight::from_ref_time(0) - // Standard Error: 16_000 - .saturating_add(Weight::from_ref_time(12_736_000).saturating_mul(i.into())) - // Standard Error: 16_000 - .saturating_add(Weight::from_ref_time(7_903_000).saturating_mul(j.into())) + // Proof Size summary in bytes: + // Measured: `577` + // Estimated: `3656 + i * (2538 ±0) + j * (2538 ±0)` + // Minimum execution time: 1_615_000 nanoseconds. + Weight::from_ref_time(88_000_000) + .saturating_add(Weight::from_proof_size(3656)) + // Standard Error: 40_070 + .saturating_add(Weight::from_ref_time(3_336_000).saturating_mul(i.into())) + // Standard Error: 40_070 + .saturating_add(Weight::from_ref_time(1_531_500).saturating_mul(j.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(j.into()))) .saturating_add(T::DbWeight::get().writes(1_u64)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) + .saturating_add(Weight::from_proof_size(2538).saturating_mul(i.into())) + .saturating_add(Weight::from_proof_size(2538).saturating_mul(j.into())) } // Storage: Instance2WorkingGroup CurrentLead (r:1 w:0) + // Proof: Instance2WorkingGroup CurrentLead (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Instance2WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance2WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Storage VoucherMaxObjectsSizeLimit (r:1 w:0) + // Proof: Storage VoucherMaxObjectsSizeLimit (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Storage VoucherMaxObjectsNumberLimit (r:1 w:0) + // Proof: Storage VoucherMaxObjectsNumberLimit (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Storage NextStorageBucketId (r:1 w:1) + // Proof: Storage NextStorageBucketId (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Storage StorageBucketById (r:0 w:1) + // Proof: Storage StorageBucketById (max_values: None, max_size: Some(106), added: 2581, mode: MaxEncodedLen) fn create_storage_bucket() -> Weight { - Weight::from_ref_time(68_680_000) + // Proof Size summary in bytes: + // Measured: `553` + // Estimated: `4662` + // Minimum execution time: 23_000 nanoseconds. + Weight::from_ref_time(23_000_000) + .saturating_add(Weight::from_proof_size(4662)) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } // Storage: Instance2WorkingGroup CurrentLead (r:1 w:0) + // Proof: Instance2WorkingGroup CurrentLead (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Instance2WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance2WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Storage Bags (r:1 w:1) + // Proof: Storage Bags (max_values: None, max_size: Some(964), added: 3439, mode: MaxEncodedLen) // Storage: Storage StorageBucketsPerBagLimit (r:1 w:0) - // Storage: Storage StorageBucketById (r:14 w:14) + // Proof: Storage StorageBucketsPerBagLimit (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + // Storage: Storage StorageBucketById (r:26 w:26) + // Proof: Storage StorageBucketById (max_values: None, max_size: Some(106), added: 2581, mode: MaxEncodedLen) + /// The range of component `i` is `[1, 13]`. + /// The range of component `j` is `[1, 13]`. fn update_storage_buckets_for_bag(i: u32, j: u32, ) -> Weight { - Weight::from_ref_time(51_139_000) - // Standard Error: 147_000 - .saturating_add(Weight::from_ref_time(42_184_000).saturating_mul(i.into())) - // Standard Error: 147_000 - .saturating_add(Weight::from_ref_time(38_449_000).saturating_mul(j.into())) + // Proof Size summary in bytes: + // Measured: `667 + i * (105 ±0) + j * (115 ±0)` + // Estimated: `7091 + i * (2581 ±0) + j * (2581 ±0)` + // Minimum execution time: 183_000 nanoseconds. + Weight::from_ref_time(25_458_333) + .saturating_add(Weight::from_proof_size(7091)) + // Standard Error: 83_333 + .saturating_add(Weight::from_ref_time(12_333_333).saturating_mul(i.into())) + // Standard Error: 83_333 + .saturating_add(Weight::from_ref_time(11_208_333).saturating_mul(j.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(j.into()))) .saturating_add(T::DbWeight::get().writes(1_u64)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(j.into()))) + .saturating_add(Weight::from_proof_size(2581).saturating_mul(i.into())) + .saturating_add(Weight::from_proof_size(2581).saturating_mul(j.into())) } // Storage: Instance2WorkingGroup CurrentLead (r:1 w:0) + // Proof: Instance2WorkingGroup CurrentLead (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Instance2WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance2WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Storage StorageBucketById (r:1 w:1) + // Proof: Storage StorageBucketById (max_values: None, max_size: Some(106), added: 2581, mode: MaxEncodedLen) fn cancel_storage_bucket_operator_invite() -> Weight { - Weight::from_ref_time(60_720_000) + // Proof Size summary in bytes: + // Measured: `743` + // Estimated: `5734` + // Minimum execution time: 22_000 nanoseconds. + Weight::from_ref_time(23_000_000) + .saturating_add(Weight::from_proof_size(5734)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Instance2WorkingGroup CurrentLead (r:1 w:0) + // Proof: Instance2WorkingGroup CurrentLead (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Instance2WorkingGroup WorkerById (r:2 w:0) + // Proof: Instance2WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Storage StorageBucketById (r:1 w:1) + // Proof: Storage StorageBucketById (max_values: None, max_size: Some(106), added: 2581, mode: MaxEncodedLen) fn invite_storage_bucket_operator() -> Weight { - Weight::from_ref_time(72_611_000) + // Proof Size summary in bytes: + // Measured: `896` + // Estimated: `8384` + // Minimum execution time: 25_000 nanoseconds. + Weight::from_ref_time(26_000_000) + .saturating_add(Weight::from_proof_size(8384)) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Instance2WorkingGroup CurrentLead (r:1 w:0) + // Proof: Instance2WorkingGroup CurrentLead (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Instance2WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance2WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Storage StorageBucketById (r:1 w:1) + // Proof: Storage StorageBucketById (max_values: None, max_size: Some(106), added: 2581, mode: MaxEncodedLen) fn remove_storage_bucket_operator() -> Weight { - Weight::from_ref_time(60_850_000) + // Proof Size summary in bytes: + // Measured: `776` + // Estimated: `5734` + // Minimum execution time: 22_000 nanoseconds. + Weight::from_ref_time(23_000_000) + .saturating_add(Weight::from_proof_size(5734)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Instance2WorkingGroup CurrentLead (r:1 w:0) + // Proof: Instance2WorkingGroup CurrentLead (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Instance2WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance2WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Storage StorageBucketById (r:1 w:1) + // Proof: Storage StorageBucketById (max_values: None, max_size: Some(106), added: 2581, mode: MaxEncodedLen) fn update_storage_bucket_status() -> Weight { - Weight::from_ref_time(61_129_000) + // Proof Size summary in bytes: + // Measured: `698` + // Estimated: `5734` + // Minimum execution time: 22_000 nanoseconds. + Weight::from_ref_time(22_000_000) + .saturating_add(Weight::from_proof_size(5734)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Instance2WorkingGroup CurrentLead (r:1 w:0) + // Proof: Instance2WorkingGroup CurrentLead (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Instance2WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance2WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Storage StorageBucketById (r:1 w:1) + // Proof: Storage StorageBucketById (max_values: None, max_size: Some(106), added: 2581, mode: MaxEncodedLen) // Storage: Storage VoucherMaxObjectsSizeLimit (r:1 w:0) + // Proof: Storage VoucherMaxObjectsSizeLimit (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Storage VoucherMaxObjectsNumberLimit (r:1 w:0) + // Proof: Storage VoucherMaxObjectsNumberLimit (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) fn set_storage_bucket_voucher_limits() -> Weight { - Weight::from_ref_time(72_710_000) + // Proof Size summary in bytes: + // Measured: `756` + // Estimated: `6740` + // Minimum execution time: 24_000 nanoseconds. + Weight::from_ref_time(25_000_000) + .saturating_add(Weight::from_proof_size(6740)) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Instance2WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance2WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Storage StorageBucketById (r:1 w:1) + // Proof: Storage StorageBucketById (max_values: None, max_size: Some(106), added: 2581, mode: MaxEncodedLen) fn accept_storage_bucket_invitation() -> Weight { - Weight::from_ref_time(56_020_000) + // Proof Size summary in bytes: + // Measured: `743` + // Estimated: `5231` + // Minimum execution time: 21_000 nanoseconds. + Weight::from_ref_time(22_000_000) + .saturating_add(Weight::from_proof_size(5231)) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Instance2WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance2WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Storage StorageBucketById (r:1 w:0) + // Proof: Storage StorageBucketById (max_values: None, max_size: Some(106), added: 2581, mode: MaxEncodedLen) + /// The range of component `i` is `[1, 1000]`. fn set_storage_operator_metadata(i: u32, ) -> Weight { - Weight::from_ref_time(10_257_000) - // Standard Error: 15_000 - .saturating_add(Weight::from_ref_time(936_000).saturating_mul(i.into())) + // Proof Size summary in bytes: + // Measured: `776` + // Estimated: `5231` + // Minimum execution time: 21_000 nanoseconds. + Weight::from_ref_time(20_392_392) + .saturating_add(Weight::from_proof_size(5231)) + // Standard Error: 65_065 + .saturating_add(Weight::from_ref_time(607_607).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) } // Storage: Storage StorageBucketById (r:1 w:0) + // Proof: Storage StorageBucketById (max_values: None, max_size: Some(106), added: 2581, mode: MaxEncodedLen) // Storage: Storage Bags (r:1 w:0) - // Storage: Storage DataObjectsById (r:1 w:1) + // Proof: Storage Bags (max_values: None, max_size: Some(964), added: 3439, mode: MaxEncodedLen) + // Storage: Storage DataObjectsById (r:400 w:400) + // Proof: Storage DataObjectsById (max_values: None, max_size: Some(155), added: 2630, mode: MaxEncodedLen) + /// The range of component `i` is `[1, 400]`. fn accept_pending_data_objects(i: u32, ) -> Weight { - Weight::from_ref_time(0) - // Standard Error: 19_000 - .saturating_add(Weight::from_ref_time(25_470_000).saturating_mul(i.into())) + // Proof Size summary in bytes: + // Measured: `451 + i * (136 ±0)` + // Estimated: `6020 + i * (2630 ±0)` + // Minimum execution time: 26_000 nanoseconds. + Weight::from_ref_time(16_290_726) + .saturating_add(Weight::from_proof_size(6020)) + // Standard Error: 35_087 + .saturating_add(Weight::from_ref_time(9_709_273).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) + .saturating_add(Weight::from_proof_size(2630).saturating_mul(i.into())) } // Storage: Instance9WorkingGroup CurrentLead (r:1 w:0) + // Proof: Instance9WorkingGroup CurrentLead (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Instance9WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance9WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Storage DistributionBucketFamilyNumber (r:1 w:1) + // Proof: Storage DistributionBucketFamilyNumber (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Storage NextDistributionBucketFamilyId (r:1 w:1) + // Proof: Storage NextDistributionBucketFamilyId (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Storage DistributionBucketFamilyById (r:0 w:1) + // Proof: Storage DistributionBucketFamilyById (max_values: None, max_size: Some(32), added: 2507, mode: MaxEncodedLen) fn create_distribution_bucket_family() -> Weight { - Weight::from_ref_time(65_340_000) + // Proof Size summary in bytes: + // Measured: `517` + // Estimated: `4159` + // Minimum execution time: 21_000 nanoseconds. + Weight::from_ref_time(22_000_000) + .saturating_add(Weight::from_proof_size(4159)) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } // Storage: Instance9WorkingGroup CurrentLead (r:1 w:0) + // Proof: Instance9WorkingGroup CurrentLead (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Instance9WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance9WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Storage DistributionBucketFamilyById (r:1 w:1) + // Proof: Storage DistributionBucketFamilyById (max_values: None, max_size: Some(32), added: 2507, mode: MaxEncodedLen) // Storage: Storage DistributionBucketByFamilyIdById (r:1 w:0) + // Proof: Storage DistributionBucketByFamilyIdById (max_values: None, max_size: Some(380), added: 2855, mode: MaxEncodedLen) // Storage: Storage DynamicBagCreationPolicies (r:2 w:0) + // Proof: Storage DynamicBagCreationPolicies (max_values: None, max_size: Some(634), added: 3109, mode: MaxEncodedLen) // Storage: Storage DistributionBucketFamilyNumber (r:1 w:1) + // Proof: Storage DistributionBucketFamilyNumber (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) fn delete_distribution_bucket_family() -> Weight { - Weight::from_ref_time(93_540_000) + // Proof Size summary in bytes: + // Measured: `628` + // Estimated: `15236` + // Minimum execution time: 31_000 nanoseconds. + Weight::from_ref_time(34_000_000) + .saturating_add(Weight::from_proof_size(15236)) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } // Storage: Instance9WorkingGroup CurrentLead (r:1 w:0) + // Proof: Instance9WorkingGroup CurrentLead (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Instance9WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance9WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Storage DistributionBucketFamilyById (r:1 w:1) + // Proof: Storage DistributionBucketFamilyById (max_values: None, max_size: Some(32), added: 2507, mode: MaxEncodedLen) // Storage: Storage DistributionBucketByFamilyIdById (r:0 w:1) + // Proof: Storage DistributionBucketByFamilyIdById (max_values: None, max_size: Some(380), added: 2855, mode: MaxEncodedLen) fn create_distribution_bucket() -> Weight { - Weight::from_ref_time(66_100_000) + // Proof Size summary in bytes: + // Measured: `609` + // Estimated: `5660` + // Minimum execution time: 23_000 nanoseconds. + Weight::from_ref_time(24_000_000) + .saturating_add(Weight::from_proof_size(5660)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } // Storage: Instance9WorkingGroup CurrentLead (r:1 w:0) + // Proof: Instance9WorkingGroup CurrentLead (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Instance9WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance9WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Storage DistributionBucketByFamilyIdById (r:1 w:1) + // Proof: Storage DistributionBucketByFamilyIdById (max_values: None, max_size: Some(380), added: 2855, mode: MaxEncodedLen) fn update_distribution_bucket_status() -> Weight { - Weight::from_ref_time(65_691_000) + // Proof Size summary in bytes: + // Measured: `671` + // Estimated: `6008` + // Minimum execution time: 23_000 nanoseconds. + Weight::from_ref_time(24_000_000) + .saturating_add(Weight::from_proof_size(6008)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Instance9WorkingGroup CurrentLead (r:1 w:0) + // Proof: Instance9WorkingGroup CurrentLead (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Instance9WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance9WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Storage DistributionBucketByFamilyIdById (r:1 w:1) + // Proof: Storage DistributionBucketByFamilyIdById (max_values: None, max_size: Some(380), added: 2855, mode: MaxEncodedLen) fn delete_distribution_bucket() -> Weight { - Weight::from_ref_time(63_160_000) + // Proof Size summary in bytes: + // Measured: `671` + // Estimated: `6008` + // Minimum execution time: 22_000 nanoseconds. + Weight::from_ref_time(23_000_000) + .saturating_add(Weight::from_proof_size(6008)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Instance9WorkingGroup CurrentLead (r:1 w:0) + // Proof: Instance9WorkingGroup CurrentLead (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Instance9WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance9WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Storage Bags (r:1 w:1) + // Proof: Storage Bags (max_values: None, max_size: Some(964), added: 3439, mode: MaxEncodedLen) // Storage: Storage DistributionBucketFamilyById (r:1 w:0) + // Proof: Storage DistributionBucketFamilyById (max_values: None, max_size: Some(32), added: 2507, mode: MaxEncodedLen) // Storage: Storage DistributionBucketsPerBagLimit (r:1 w:0) - // Storage: Storage DistributionBucketByFamilyIdById (r:52 w:52) + // Proof: Storage DistributionBucketsPerBagLimit (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + // Storage: Storage DistributionBucketByFamilyIdById (r:102 w:102) + // Proof: Storage DistributionBucketByFamilyIdById (max_values: None, max_size: Some(380), added: 2855, mode: MaxEncodedLen) + /// The range of component `i` is `[1, 51]`. + /// The range of component `j` is `[1, 51]`. fn update_distribution_buckets_for_bag(i: u32, j: u32, ) -> Weight { - Weight::from_ref_time(53_507_000) - // Standard Error: 33_000 - .saturating_add(Weight::from_ref_time(26_207_000).saturating_mul(i.into())) - // Standard Error: 33_000 - .saturating_add(Weight::from_ref_time(26_515_000).saturating_mul(j.into())) + // Proof Size summary in bytes: + // Measured: `750 + i * (41 ±0) + j * (57 ±0)` + // Estimated: `9598 + i * (2855 ±0) + j * (2855 ±0)` + // Minimum execution time: 440_000 nanoseconds. + Weight::from_ref_time(21_150_000) + .saturating_add(Weight::from_proof_size(9598)) + // Standard Error: 75_277 + .saturating_add(Weight::from_ref_time(8_110_000).saturating_mul(i.into())) + // Standard Error: 75_277 + .saturating_add(Weight::from_ref_time(8_240_000).saturating_mul(j.into())) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(j.into()))) .saturating_add(T::DbWeight::get().writes(1_u64)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(j.into()))) + .saturating_add(Weight::from_proof_size(2855).saturating_mul(i.into())) + .saturating_add(Weight::from_proof_size(2855).saturating_mul(j.into())) } // Storage: Instance9WorkingGroup CurrentLead (r:1 w:0) + // Proof: Instance9WorkingGroup CurrentLead (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Instance9WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance9WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Storage DistributionBucketsPerBagLimit (r:0 w:1) + // Proof: Storage DistributionBucketsPerBagLimit (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) fn update_distribution_buckets_per_bag_limit() -> Weight { - Weight::from_ref_time(47_520_000) + // Proof Size summary in bytes: + // Measured: `404` + // Estimated: `3153` + // Minimum execution time: 16_000 nanoseconds. + Weight::from_ref_time(16_000_000) + .saturating_add(Weight::from_proof_size(3153)) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Instance9WorkingGroup CurrentLead (r:1 w:0) + // Proof: Instance9WorkingGroup CurrentLead (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Instance9WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance9WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Storage DistributionBucketByFamilyIdById (r:1 w:1) + // Proof: Storage DistributionBucketByFamilyIdById (max_values: None, max_size: Some(380), added: 2855, mode: MaxEncodedLen) fn update_distribution_bucket_mode() -> Weight { - Weight::from_ref_time(65_010_000) + // Proof Size summary in bytes: + // Measured: `671` + // Estimated: `6008` + // Minimum execution time: 23_000 nanoseconds. + Weight::from_ref_time(24_000_000) + .saturating_add(Weight::from_proof_size(6008)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Instance9WorkingGroup CurrentLead (r:1 w:0) + // Proof: Instance9WorkingGroup CurrentLead (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Instance9WorkingGroup WorkerById (r:1 w:0) - // Storage: Storage DistributionBucketFamilyById (r:2 w:0) + // Proof: Instance9WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) + // Storage: Storage DistributionBucketFamilyById (r:7 w:0) + // Proof: Storage DistributionBucketFamilyById (max_values: None, max_size: Some(32), added: 2507, mode: MaxEncodedLen) // Storage: Storage DynamicBagCreationPolicies (r:1 w:1) + // Proof: Storage DynamicBagCreationPolicies (max_values: None, max_size: Some(634), added: 3109, mode: MaxEncodedLen) + /// The range of component `i` is `[2, 7]`. fn update_families_in_dynamic_bag_creation_policy(i: u32, ) -> Weight { - Weight::from_ref_time(58_048_000) - // Standard Error: 72_000 - .saturating_add(Weight::from_ref_time(12_456_000).saturating_mul(i.into())) + // Proof Size summary in bytes: + // Measured: `575 + i * (36 ±0)` + // Estimated: `6262 + i * (2507 ±0)` + // Minimum execution time: 27_000 nanoseconds. + Weight::from_ref_time(19_800_000) + .saturating_add(Weight::from_proof_size(6262)) + // Standard Error: 0 + .saturating_add(Weight::from_ref_time(3_600_000).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(1_u64)) + .saturating_add(Weight::from_proof_size(2507).saturating_mul(i.into())) } // Storage: Instance9WorkingGroup CurrentLead (r:1 w:0) + // Proof: Instance9WorkingGroup CurrentLead (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Instance9WorkingGroup WorkerById (r:2 w:0) + // Proof: Instance9WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Storage DistributionBucketByFamilyIdById (r:1 w:1) + // Proof: Storage DistributionBucketByFamilyIdById (max_values: None, max_size: Some(380), added: 2855, mode: MaxEncodedLen) fn invite_distribution_bucket_operator() -> Weight { - Weight::from_ref_time(77_600_000) + // Proof Size summary in bytes: + // Measured: `869` + // Estimated: `8658` + // Minimum execution time: 27_000 nanoseconds. + Weight::from_ref_time(27_000_000) + .saturating_add(Weight::from_proof_size(8658)) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Instance9WorkingGroup CurrentLead (r:1 w:0) + // Proof: Instance9WorkingGroup CurrentLead (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Instance9WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance9WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Storage DistributionBucketByFamilyIdById (r:1 w:1) + // Proof: Storage DistributionBucketByFamilyIdById (max_values: None, max_size: Some(380), added: 2855, mode: MaxEncodedLen) fn cancel_distribution_bucket_operator_invite() -> Weight { - Weight::from_ref_time(69_700_000) + // Proof Size summary in bytes: + // Measured: `716` + // Estimated: `6008` + // Minimum execution time: 24_000 nanoseconds. + Weight::from_ref_time(25_000_000) + .saturating_add(Weight::from_proof_size(6008)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Instance9WorkingGroup CurrentLead (r:1 w:0) + // Proof: Instance9WorkingGroup CurrentLead (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Instance9WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance9WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Storage DistributionBucketByFamilyIdById (r:1 w:1) + // Proof: Storage DistributionBucketByFamilyIdById (max_values: None, max_size: Some(380), added: 2855, mode: MaxEncodedLen) fn remove_distribution_bucket_operator() -> Weight { - Weight::from_ref_time(68_470_000) + // Proof Size summary in bytes: + // Measured: `716` + // Estimated: `6008` + // Minimum execution time: 25_000 nanoseconds. + Weight::from_ref_time(25_000_000) + .saturating_add(Weight::from_proof_size(6008)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Instance9WorkingGroup CurrentLead (r:1 w:0) + // Proof: Instance9WorkingGroup CurrentLead (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Instance9WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance9WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Storage DistributionBucketFamilyById (r:1 w:0) + // Proof: Storage DistributionBucketFamilyById (max_values: None, max_size: Some(32), added: 2507, mode: MaxEncodedLen) + /// The range of component `i` is `[1, 1000]`. fn set_distribution_bucket_family_metadata(i: u32, ) -> Weight { - Weight::from_ref_time(21_512_000) - // Standard Error: 16_000 - .saturating_add(Weight::from_ref_time(923_000_u64).saturating_mul(i.into())) + // Proof Size summary in bytes: + // Measured: `609` + // Estimated: `5660` + // Minimum execution time: 20_000 nanoseconds. + Weight::from_ref_time(19_950_450) + .saturating_add(Weight::from_proof_size(5660)) + // Standard Error: 69_571 + .saturating_add(Weight::from_ref_time(549_549).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) } // Storage: Instance9WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance9WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Storage DistributionBucketByFamilyIdById (r:1 w:1) + // Proof: Storage DistributionBucketByFamilyIdById (max_values: None, max_size: Some(380), added: 2855, mode: MaxEncodedLen) fn accept_distribution_bucket_invitation() -> Weight { - Weight::from_ref_time(64_490_000) + // Proof Size summary in bytes: + // Measured: `716` + // Estimated: `5505` + // Minimum execution time: 24_000 nanoseconds. + Weight::from_ref_time(25_000_000) + .saturating_add(Weight::from_proof_size(5505)) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Instance9WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance9WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Storage DistributionBucketByFamilyIdById (r:1 w:0) + // Proof: Storage DistributionBucketByFamilyIdById (max_values: None, max_size: Some(380), added: 2855, mode: MaxEncodedLen) + /// The range of component `i` is `[1, 1000]`. fn set_distribution_operator_metadata(i: u32, ) -> Weight { - Weight::from_ref_time(13_871_000) - // Standard Error: 17_000 - .saturating_add(Weight::from_ref_time(951_000_u64).saturating_mul(i.into())) + // Proof Size summary in bytes: + // Measured: `716` + // Estimated: `5505` + // Minimum execution time: 22_000 nanoseconds. + Weight::from_ref_time(21_443_443) + .saturating_add(Weight::from_proof_size(5505)) + // Standard Error: 73_073 + .saturating_add(Weight::from_ref_time(556_556).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) } // Storage: Instance2WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance2WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Storage StorageBucketById (r:1 w:0) + // Proof: Storage StorageBucketById (max_values: None, max_size: Some(106), added: 2581, mode: MaxEncodedLen) + /// The range of component `i` is `[1, 1000]`. fn storage_operator_remark(i: u32, ) -> Weight { - Weight::from_ref_time(6_936_000) - // Standard Error: 18_000 - .saturating_add(Weight::from_ref_time(960_000).saturating_mul(i.into())) + // Proof Size summary in bytes: + // Measured: `776` + // Estimated: `5231` + // Minimum execution time: 21_000 nanoseconds. + Weight::from_ref_time(20_446_946) + .saturating_add(Weight::from_proof_size(5231)) + // Standard Error: 73_573 + .saturating_add(Weight::from_ref_time(553_053).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) } // Storage: Instance9WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance9WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Storage DistributionBucketByFamilyIdById (r:1 w:0) + // Proof: Storage DistributionBucketByFamilyIdById (max_values: None, max_size: Some(380), added: 2855, mode: MaxEncodedLen) + /// The range of component `i` is `[1, 1000]`. fn distribution_operator_remark(i: u32, ) -> Weight { - Weight::from_ref_time(20_111_000) - // Standard Error: 17_000 - .saturating_add(Weight::from_ref_time(931_000).saturating_mul(i.into())) + // Proof Size summary in bytes: + // Measured: `716` + // Estimated: `5505` + // Minimum execution time: 23_000 nanoseconds. + Weight::from_ref_time(22_398_398) + .saturating_add(Weight::from_proof_size(5505)) + // Standard Error: 54_054 + .saturating_add(Weight::from_ref_time(601_601).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) } } diff --git a/runtime-modules/utility/src/weights.rs b/runtime-modules/utility/src/weights.rs index 1c75cb166a..9f09c79aaf 100644 --- a/runtime-modules/utility/src/weights.rs +++ b/runtime-modules/utility/src/weights.rs @@ -18,22 +18,21 @@ //! Autogenerated weights for joystream_utility //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-10-20, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! DATE: 2023-03-15, STEPS: `2`, REPEAT: 2, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("prod-test"), DB CACHE: 1024 // Executed Command: -// ./../target/release/joystream-node +// ./scripts/../target/release/joystream-node // benchmark // pallet -// --base-path=/mnt/disks/local-ssd/ // --pallet=joystream_utility // --extrinsic=* -// --chain=dev -// --steps=50 -// --repeat=20 +// --chain=prod-test +// --steps=2 +// --repeat=2 // --execution=wasm -// --template=./../devops/joystream-pallet-weight-template.hbs -// --output=./../runtime-modules/utility/src/weights.rs +// --template=./scripts/../devops/joystream-pallet-weight-template.hbs +// --output=./scripts/../runtime-modules/utility/src/weights.rs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -54,28 +53,54 @@ pub trait WeightInfo { /// Weights for joystream_utility using the Substrate node and recommended hardware. pub struct SubstrateWeight(PhantomData); impl WeightInfo for SubstrateWeight { + /// The range of component `i` is `[1, 100]`. fn execute_signal_proposal(i: u32, ) -> Weight { - Weight::from_ref_time(13_391_000) - // Standard Error: 2_000 - .saturating_add(Weight::from_ref_time(740_000_u64).saturating_mul(i.into())) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 8_000 nanoseconds. + Weight::from_ref_time(7_959_595) + .saturating_add(Weight::from_proof_size(0)) + // Standard Error: 70_887 + .saturating_add(Weight::from_ref_time(540_404).saturating_mul(i.into())) } // Storage: Instance1WorkingGroup Budget (r:1 w:1) + // Proof: Instance1WorkingGroup Budget (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) // Storage: Council Budget (r:1 w:1) + // Proof: Council Budget (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) fn update_working_group_budget_positive() -> Weight { - Weight::from_ref_time(25_120_000) + // Proof Size summary in bytes: + // Measured: `291` + // Estimated: `1022` + // Minimum execution time: 20_000 nanoseconds. + Weight::from_ref_time(20_000_000) + .saturating_add(Weight::from_proof_size(1022)) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } // Storage: Instance1WorkingGroup Budget (r:1 w:1) + // Proof: Instance1WorkingGroup Budget (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) // Storage: Council Budget (r:1 w:1) + // Proof: Council Budget (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) fn update_working_group_budget_negative() -> Weight { - Weight::from_ref_time(24_960_000) + // Proof Size summary in bytes: + // Measured: `291` + // Estimated: `1022` + // Minimum execution time: 19_000 nanoseconds. + Weight::from_ref_time(20_000_000) + .saturating_add(Weight::from_proof_size(1022)) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn burn_account_tokens() -> Weight { - Weight::from_ref_time(37_611_000) + // Proof Size summary in bytes: + // Measured: `133` + // Estimated: `2603` + // Minimum execution time: 22_000 nanoseconds. + Weight::from_ref_time(24_000_000) + .saturating_add(Weight::from_proof_size(2603)) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } diff --git a/runtime-modules/working-group/src/weights.rs b/runtime-modules/working-group/src/weights.rs index 154979156b..9c1516ebdc 100644 --- a/runtime-modules/working-group/src/weights.rs +++ b/runtime-modules/working-group/src/weights.rs @@ -18,22 +18,21 @@ //! Autogenerated weights for working_group //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-10-20, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! DATE: 2023-03-15, STEPS: `2`, REPEAT: 2, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("prod-test"), DB CACHE: 1024 // Executed Command: -// ./../target/release/joystream-node +// ./scripts/../target/release/joystream-node // benchmark // pallet -// --base-path=/mnt/disks/local-ssd/ // --pallet=working_group // --extrinsic=* -// --chain=dev -// --steps=50 -// --repeat=20 +// --chain=prod-test +// --steps=2 +// --repeat=2 // --execution=wasm -// --template=./../devops/joystream-pallet-weight-template.hbs -// --output=./../runtime-modules/working-group/src/weights.rs +// --template=./scripts/../devops/joystream-pallet-weight-template.hbs +// --output=./scripts/../runtime-modules/working-group/src/weights.rs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -75,255 +74,491 @@ pub trait WeightInfo { /// Weights for working_group using the Substrate node and recommended hardware. pub struct SubstrateWeight(PhantomData); impl WeightInfo for SubstrateWeight { - // Storage: Instance3WorkingGroup WorkerById (r:3 w:2) + // Storage: Instance3WorkingGroup WorkerById (r:31 w:30) + // Proof: Instance3WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup CurrentLead (r:1 w:1) + // Proof: Instance3WorkingGroup CurrentLead (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup Budget (r:1 w:1) - // Storage: System Account (r:2 w:2) + // Proof: Instance3WorkingGroup Budget (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) + // Storage: System Account (r:30 w:30) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup ActiveWorkerCount (r:1 w:1) - // Storage: Balances Locks (r:2 w:2) + // Proof: Instance3WorkingGroup ActiveWorkerCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + // Storage: Balances Locks (r:30 w:30) + // Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) + /// The range of component `i` is `[2, 30]`. fn on_initialize_leaving(i: u32, ) -> Weight { - Weight::from_ref_time(26_873_000) - // Standard Error: 35_000 - .saturating_add(Weight::from_ref_time(55_730_000).saturating_mul(i.into())) + // Proof Size summary in bytes: + // Measured: `244 + i * (518 ±0)` + // Estimated: `4163 + i * (9027 ±0)` + // Minimum execution time: 91_000 nanoseconds. + Weight::from_ref_time(20_214_285) + .saturating_add(Weight::from_proof_size(4163)) + // Standard Error: 50_507 + .saturating_add(Weight::from_ref_time(35_892_857).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(T::DbWeight::get().writes((3_u64).saturating_mul(i.into()))) + .saturating_add(Weight::from_proof_size(9027).saturating_mul(i.into())) } - // Storage: Instance3WorkingGroup WorkerById (r:3 w:2) + // Storage: Instance3WorkingGroup WorkerById (r:31 w:30) + // Proof: Instance3WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup Budget (r:1 w:1) - // Storage: System Account (r:2 w:2) + // Proof: Instance3WorkingGroup Budget (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) + // Storage: System Account (r:30 w:30) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// The range of component `i` is `[2, 30]`. fn on_initialize_rewarding_with_missing_reward(i: u32, ) -> Weight { - Weight::from_ref_time(17_787_000) - // Standard Error: 55_000 - .saturating_add(Weight::from_ref_time(52_759_000).saturating_mul(i.into())) + // Proof Size summary in bytes: + // Measured: `227 + i * (375 ±0)` + // Estimated: `3161 + i * (5253 ±0)` + // Minimum execution time: 87_000 nanoseconds. + Weight::from_ref_time(16_321_428) + .saturating_add(Weight::from_proof_size(3161)) + // Standard Error: 130_001 + .saturating_add(Weight::from_ref_time(35_839_285).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(1_u64)) .saturating_add(T::DbWeight::get().writes((2_u64).saturating_mul(i.into()))) + .saturating_add(Weight::from_proof_size(5253).saturating_mul(i.into())) } - // Storage: Instance3WorkingGroup WorkerById (r:3 w:2) + // Storage: Instance3WorkingGroup WorkerById (r:31 w:30) + // Proof: Instance3WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup Budget (r:1 w:0) + // Proof: Instance3WorkingGroup Budget (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) + /// The range of component `i` is `[2, 30]`. fn on_initialize_rewarding_with_missing_reward_cant_pay(i: u32, ) -> Weight { - Weight::from_ref_time(16_415_000) - // Standard Error: 33_000 - .saturating_add(Weight::from_ref_time(23_020_000).saturating_mul(i.into())) + // Proof Size summary in bytes: + // Measured: `231 + i * (194 ±0)` + // Estimated: `3161 + i * (2650 ±0)` + // Minimum execution time: 43_000 nanoseconds. + Weight::from_ref_time(12_321_428) + .saturating_add(Weight::from_proof_size(3161)) + // Standard Error: 130_001 + .saturating_add(Weight::from_ref_time(15_839_285).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) + .saturating_add(Weight::from_proof_size(2650).saturating_mul(i.into())) } - // Storage: Instance3WorkingGroup WorkerById (r:3 w:1) + // Storage: Instance3WorkingGroup WorkerById (r:31 w:1) + // Proof: Instance3WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup Budget (r:1 w:1) - // Storage: System Account (r:2 w:2) + // Proof: Instance3WorkingGroup Budget (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) + // Storage: System Account (r:30 w:30) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// The range of component `i` is `[2, 30]`. fn on_initialize_rewarding_without_missing_reward(i: u32, ) -> Weight { - Weight::from_ref_time(38_161_000) - // Standard Error: 33_000 - .saturating_add(Weight::from_ref_time(33_132_000).saturating_mul(i.into())) + // Proof Size summary in bytes: + // Measured: `243 + i * (359 ±0)` + // Estimated: `3161 + i * (5253 ±0)` + // Minimum execution time: 73_000 nanoseconds. + Weight::from_ref_time(29_000_000) + .saturating_add(Weight::from_proof_size(3161)) + // Standard Error: 446_785 + .saturating_add(Weight::from_ref_time(22_250_000).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(2_u64)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) + .saturating_add(Weight::from_proof_size(5253).saturating_mul(i.into())) } // Storage: Membership MembershipById (r:1 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup OpeningById (r:1 w:0) + // Proof: Instance3WorkingGroup OpeningById (max_values: None, max_size: Some(114), added: 2589, mode: MaxEncodedLen) // Storage: Membership StakingAccountIdMemberStatus (r:1 w:0) + // Proof: Membership StakingAccountIdMemberStatus (max_values: None, max_size: Some(57), added: 2532, mode: MaxEncodedLen) // Storage: Balances Locks (r:1 w:1) + // Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup NextApplicationId (r:1 w:1) + // Proof: Instance3WorkingGroup NextApplicationId (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup ApplicationById (r:0 w:1) + // Proof: Instance3WorkingGroup ApplicationById (max_values: None, max_size: Some(168), added: 2643, mode: MaxEncodedLen) + /// The range of component `i` is `[1, 100]`. fn apply_on_opening(i: u32, ) -> Weight { - Weight::from_ref_time(60_759_000) - // Standard Error: 3_000 - .saturating_add(Weight::from_ref_time(1_699_000).saturating_mul(i.into())) + // Proof Size summary in bytes: + // Measured: `826` + // Estimated: `14601` + // Minimum execution time: 44_000 nanoseconds. + Weight::from_ref_time(45_484_848) + .saturating_add(Weight::from_proof_size(14601)) + // Standard Error: 58_898 + .saturating_add(Weight::from_ref_time(1_515_151).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } // Storage: Instance3WorkingGroup OpeningById (r:1 w:1) + // Proof: Instance3WorkingGroup OpeningById (max_values: None, max_size: Some(114), added: 2589, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup ActiveWorkerCount (r:1 w:1) + // Proof: Instance3WorkingGroup ActiveWorkerCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup CurrentLead (r:1 w:1) + // Proof: Instance3WorkingGroup CurrentLead (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup ApplicationById (r:1 w:1) + // Proof: Instance3WorkingGroup ApplicationById (max_values: None, max_size: Some(168), added: 2643, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup NextWorkerId (r:1 w:1) + // Proof: Instance3WorkingGroup NextWorkerId (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup WorkerById (r:0 w:1) + // Proof: Instance3WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) fn fill_opening_lead() -> Weight { - Weight::from_ref_time(49_500_000) + // Proof Size summary in bytes: + // Measured: `453` + // Estimated: `6737` + // Minimum execution time: 31_000 nanoseconds. + Weight::from_ref_time(32_000_000) + .saturating_add(Weight::from_proof_size(6737)) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(6_u64)) } // Storage: Instance3WorkingGroup OpeningById (r:1 w:1) + // Proof: Instance3WorkingGroup OpeningById (max_values: None, max_size: Some(114), added: 2589, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup CurrentLead (r:1 w:0) - // Storage: Instance3WorkingGroup WorkerById (r:1 w:1) + // Proof: Instance3WorkingGroup CurrentLead (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) + // Storage: Instance3WorkingGroup WorkerById (r:1 w:29) + // Proof: Instance3WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup ActiveWorkerCount (r:1 w:1) - // Storage: Instance3WorkingGroup ApplicationById (r:1 w:1) + // Proof: Instance3WorkingGroup ActiveWorkerCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + // Storage: Instance3WorkingGroup ApplicationById (r:29 w:29) + // Proof: Instance3WorkingGroup ApplicationById (max_values: None, max_size: Some(168), added: 2643, mode: MaxEncodedLen) // Storage: Balances Locks (r:1 w:1) + // Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup NextWorkerId (r:1 w:1) + // Proof: Instance3WorkingGroup NextWorkerId (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) + /// The range of component `i` is `[2, 30]`. fn fill_opening_worker(i: u32, ) -> Weight { - Weight::from_ref_time(51_093_000) - // Standard Error: 19_000 - .saturating_add(Weight::from_ref_time(15_263_000).saturating_mul(i.into())) + // Proof Size summary in bytes: + // Measured: `772 + i * (219 ±0)` + // Estimated: `15764 + i * (2456 ±94)` + // Minimum execution time: 55_000 nanoseconds. + Weight::from_ref_time(34_892_857) + .saturating_add(Weight::from_proof_size(15764)) + // Standard Error: 164_634 + .saturating_add(Weight::from_ref_time(10_553_571).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(T::DbWeight::get().writes((2_u64).saturating_mul(i.into()))) + .saturating_add(Weight::from_proof_size(2456).saturating_mul(i.into())) } // Storage: Instance3WorkingGroup WorkerById (r:1 w:1) + // Proof: Instance3WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Membership MembershipById (r:1 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) fn update_role_account() -> Weight { - Weight::from_ref_time(28_550_000) + // Proof Size summary in bytes: + // Measured: `705` + // Estimated: `5250` + // Minimum execution time: 20_000 nanoseconds. + Weight::from_ref_time(22_000_000) + .saturating_add(Weight::from_proof_size(5250)) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Instance3WorkingGroup OpeningById (r:1 w:1) + // Proof: Instance3WorkingGroup OpeningById (max_values: None, max_size: Some(114), added: 2589, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup CurrentLead (r:1 w:0) + // Proof: Instance3WorkingGroup CurrentLead (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance3WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Balances Locks (r:1 w:1) + // Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn cancel_opening() -> Weight { - Weight::from_ref_time(57_880_000) + // Proof Size summary in bytes: + // Measured: `954` + // Estimated: `12119` + // Minimum execution time: 40_000 nanoseconds. + Weight::from_ref_time(42_000_000) + .saturating_add(Weight::from_proof_size(12119)) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } // Storage: Instance3WorkingGroup ApplicationById (r:1 w:1) + // Proof: Instance3WorkingGroup ApplicationById (max_values: None, max_size: Some(168), added: 2643, mode: MaxEncodedLen) // Storage: Balances Locks (r:1 w:1) + // Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn withdraw_application() -> Weight { - Weight::from_ref_time(37_370_000) + // Proof Size summary in bytes: + // Measured: `647` + // Estimated: `9020` + // Minimum execution time: 24_000 nanoseconds. + Weight::from_ref_time(25_000_000) + .saturating_add(Weight::from_proof_size(9020)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } // Storage: Instance3WorkingGroup CurrentLead (r:1 w:0) + // Proof: Instance3WorkingGroup CurrentLead (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup WorkerById (r:2 w:0) + // Proof: Instance3WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Balances Locks (r:1 w:1) + // Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// The range of component `i` is `[0, 100]`. fn slash_stake(i: u32, ) -> Weight { - Weight::from_ref_time(77_648_000) - // Standard Error: 1_000 - .saturating_add(Weight::from_ref_time(660_000).saturating_mul(i.into())) + // Proof Size summary in bytes: + // Measured: `961` + // Estimated: `12180` + // Minimum execution time: 51_000 nanoseconds. + Weight::from_ref_time(51_500_000) + .saturating_add(Weight::from_proof_size(12180)) + // Standard Error: 80_156 + .saturating_add(Weight::from_ref_time(505_000).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } // Storage: Instance3WorkingGroup CurrentLead (r:1 w:0) + // Proof: Instance3WorkingGroup CurrentLead (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup WorkerById (r:2 w:1) + // Proof: Instance3WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Balances Locks (r:1 w:1) + // Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup Budget (r:1 w:1) + // Proof: Instance3WorkingGroup Budget (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup ActiveWorkerCount (r:1 w:1) + // Proof: Instance3WorkingGroup ActiveWorkerCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + /// The range of component `i` is `[0, 100]`. fn terminate_role_worker(i: u32, ) -> Weight { - Weight::from_ref_time(122_568_000) - // Standard Error: 5_000 - .saturating_add(Weight::from_ref_time(1_271_000).saturating_mul(i.into())) + // Proof Size summary in bytes: + // Measured: `964` + // Estimated: `13190` + // Minimum execution time: 81_000 nanoseconds. + Weight::from_ref_time(81_000_000) + .saturating_add(Weight::from_proof_size(13190)) + // Standard Error: 110_000 + .saturating_add(Weight::from_ref_time(900_000).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(5_u64)) } // Storage: Instance3WorkingGroup CurrentLead (r:1 w:1) + // Proof: Instance3WorkingGroup CurrentLead (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup WorkerById (r:1 w:1) + // Proof: Instance3WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Balances Locks (r:1 w:1) + // Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup Budget (r:1 w:1) + // Proof: Instance3WorkingGroup Budget (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup ActiveWorkerCount (r:1 w:1) + // Proof: Instance3WorkingGroup ActiveWorkerCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + /// The range of component `i` is `[0, 100]`. fn terminate_role_lead(i: u32, ) -> Weight { - Weight::from_ref_time(121_275_000) - // Standard Error: 3_000 - .saturating_add(Weight::from_ref_time(1_264_000).saturating_mul(i.into())) + // Proof Size summary in bytes: + // Measured: `787` + // Estimated: `10540` + // Minimum execution time: 79_000 nanoseconds. + Weight::from_ref_time(79_500_000) + .saturating_add(Weight::from_proof_size(10540)) + // Standard Error: 135_092 + .saturating_add(Weight::from_ref_time(970_000).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(6_u64)) } // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance3WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) // Storage: Balances Locks (r:1 w:1) + // Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) fn increase_stake() -> Weight { - Weight::from_ref_time(48_210_000) + // Proof Size summary in bytes: + // Measured: `784` + // Estimated: `9027` + // Minimum execution time: 32_000 nanoseconds. + Weight::from_ref_time(32_000_000) + .saturating_add(Weight::from_proof_size(9027)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } // Storage: Instance3WorkingGroup CurrentLead (r:1 w:0) + // Proof: Instance3WorkingGroup CurrentLead (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup WorkerById (r:2 w:0) + // Proof: Instance3WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Balances Locks (r:1 w:1) + // Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn decrease_stake() -> Weight { - Weight::from_ref_time(57_370_000) + // Proof Size summary in bytes: + // Measured: `961` + // Estimated: `12180` + // Minimum execution time: 38_000 nanoseconds. + Weight::from_ref_time(38_000_000) + .saturating_add(Weight::from_proof_size(12180)) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } // Storage: Instance3WorkingGroup CurrentLead (r:1 w:0) + // Proof: Instance3WorkingGroup CurrentLead (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance3WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup Budget (r:1 w:1) + // Proof: Instance3WorkingGroup Budget (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn spend_from_budget() -> Weight { - Weight::from_ref_time(42_270_000) + // Proof Size summary in bytes: + // Measured: `629` + // Estimated: `6267` + // Minimum execution time: 25_000 nanoseconds. + Weight::from_ref_time(26_000_000) + .saturating_add(Weight::from_proof_size(6267)) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } // Storage: Membership MembershipById (r:1 w:0) + // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup Budget (r:1 w:1) + // Proof: Instance3WorkingGroup Budget (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) fn fund_working_group_budget() -> Weight { - Weight::from_ref_time(42_300_000) + // Proof Size summary in bytes: + // Measured: `497` + // Estimated: `5714` + // Minimum execution time: 26_000 nanoseconds. + Weight::from_ref_time(27_000_000) + .saturating_add(Weight::from_proof_size(5714)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } // Storage: Instance3WorkingGroup CurrentLead (r:1 w:0) + // Proof: Instance3WorkingGroup CurrentLead (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup WorkerById (r:2 w:1) + // Proof: Instance3WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) fn update_reward_amount() -> Weight { - Weight::from_ref_time(33_980_000) + // Proof Size summary in bytes: + // Measured: `634` + // Estimated: `5803` + // Minimum execution time: 20_000 nanoseconds. + Weight::from_ref_time(21_000_000) + .saturating_add(Weight::from_proof_size(5803)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Instance3WorkingGroup CurrentLead (r:1 w:0) + // Proof: Instance3WorkingGroup CurrentLead (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance3WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup StatusTextHash (r:0 w:1) + // Proof: Instance3WorkingGroup StatusTextHash (max_values: Some(1), max_size: Some(32), added: 527, mode: MaxEncodedLen) + /// The range of component `i` is `[0, 100]`. fn set_status_text(i: u32, ) -> Weight { - Weight::from_ref_time(27_279_000) - // Standard Error: 6_000 - .saturating_add(Weight::from_ref_time(1_644_000).saturating_mul(i.into())) + // Proof Size summary in bytes: + // Measured: `420` + // Estimated: `3153` + // Minimum execution time: 16_000 nanoseconds. + Weight::from_ref_time(16_000_000) + .saturating_add(Weight::from_proof_size(3153)) + // Standard Error: 75_000 + .saturating_add(Weight::from_ref_time(1_535_000).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Instance3WorkingGroup WorkerById (r:1 w:1) + // Proof: Instance3WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) fn update_reward_account() -> Weight { - Weight::from_ref_time(24_380_000) + // Proof Size summary in bytes: + // Measured: `420` + // Estimated: `2650` + // Minimum execution time: 15_000 nanoseconds. + Weight::from_ref_time(16_000_000) + .saturating_add(Weight::from_proof_size(2650)) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Instance3WorkingGroup Budget (r:0 w:1) + // Proof: Instance3WorkingGroup Budget (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) fn set_budget() -> Weight { - Weight::from_ref_time(13_550_000) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 7_000 nanoseconds. + Weight::from_ref_time(8_000_000) + .saturating_add(Weight::from_proof_size(0)) .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Instance3WorkingGroup CurrentLead (r:1 w:0) + // Proof: Instance3WorkingGroup CurrentLead (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance3WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) // Storage: Balances Locks (r:1 w:1) + // Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup NextOpeningId (r:1 w:1) + // Proof: Instance3WorkingGroup NextOpeningId (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup OpeningById (r:0 w:1) + // Proof: Instance3WorkingGroup OpeningById (max_values: None, max_size: Some(114), added: 2589, mode: MaxEncodedLen) + /// The range of component `i` is `[0, 100]`. fn add_opening(i: u32, ) -> Weight { - Weight::from_ref_time(69_789_000) - // Standard Error: 6_000 - .saturating_add(Weight::from_ref_time(1_729_000).saturating_mul(i.into())) + // Proof Size summary in bytes: + // Measured: `784` + // Estimated: `10033` + // Minimum execution time: 44_000 nanoseconds. + Weight::from_ref_time(44_500_000) + .saturating_add(Weight::from_proof_size(10033)) + // Standard Error: 50_249 + .saturating_add(Weight::from_ref_time(1_565_000).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } // Storage: Instance3WorkingGroup WorkerById (r:1 w:1) + // Proof: Instance3WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) + /// The range of component `i` is `[0, 100]`. fn leave_role(i: u32, ) -> Weight { - Weight::from_ref_time(25_746_000) - // Standard Error: 1_000 - .saturating_add(Weight::from_ref_time(668_000).saturating_mul(i.into())) + // Proof Size summary in bytes: + // Measured: `420` + // Estimated: `2650` + // Minimum execution time: 16_000 nanoseconds. + Weight::from_ref_time(16_000_000) + .saturating_add(Weight::from_proof_size(2650)) + // Standard Error: 80_000 + .saturating_add(Weight::from_ref_time(510_000).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Instance3WorkingGroup CurrentLead (r:1 w:0) + // Proof: Instance3WorkingGroup CurrentLead (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance3WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) + /// The range of component `i` is `[0, 100]`. fn lead_remark(i: u32, ) -> Weight { - Weight::from_ref_time(24_744_000) - // Standard Error: 0 - .saturating_add(Weight::from_ref_time(735_000).saturating_mul(i.into())) + // Proof Size summary in bytes: + // Measured: `420` + // Estimated: `3153` + // Minimum execution time: 14_000 nanoseconds. + Weight::from_ref_time(14_500_000) + .saturating_add(Weight::from_proof_size(3153)) + // Standard Error: 90_138 + .saturating_add(Weight::from_ref_time(575_000).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) } // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) + // Proof: Instance3WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) + /// The range of component `i` is `[0, 100]`. fn worker_remark(i: u32, ) -> Weight { - Weight::from_ref_time(23_822_000) - // Standard Error: 0 - .saturating_add(Weight::from_ref_time(735_000).saturating_mul(i.into())) + // Proof Size summary in bytes: + // Measured: `457` + // Estimated: `2650` + // Minimum execution time: 15_000 nanoseconds. + Weight::from_ref_time(15_000_000) + .saturating_add(Weight::from_proof_size(2650)) + // Standard Error: 65_000 + .saturating_add(Weight::from_ref_time(545_000).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) } } diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index 672dbd5987..cb291cacb4 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -156,6 +156,7 @@ std = [ 'substrate-utility/std', 'pallet-bags-list/std', 'pallet-election-provider-multi-phase/std', + 'pallet-election-provider-support-benchmarking?/std', # Joystream 'common/std', diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs index e471613363..dccc34578d 100644 --- a/runtime/src/lib.rs +++ b/runtime/src/lib.rs @@ -293,7 +293,7 @@ impl frame_system::Config for Runtime { type AccountData = pallet_balances::AccountData; type OnNewAccount = (); type OnKilledAccount = (); - type SystemWeightInfo = frame_system::weights::SubstrateWeight; + type SystemWeightInfo = weights::frame_system::SubstrateWeight; type SS58Prefix = ConstU16; type OnSetCode = (); type MaxConsumers = ConstU32<16>; @@ -305,7 +305,7 @@ impl substrate_utility::Config for Runtime { type RuntimeEvent = RuntimeEvent; type RuntimeCall = RuntimeCall; type PalletsOrigin = OriginCaller; - type WeightInfo = substrate_utility::weights::SubstrateWeight; + type WeightInfo = weights::substrate_utility::SubstrateWeight; } parameter_types! { @@ -338,7 +338,7 @@ impl pallet_babe::Config for Runtime { type HandleEquivocation = pallet_babe::EquivocationHandler; - type WeightInfo = (); + type WeightInfo = weights::pallet_babe::SubstrateWeight; type MaxAuthorities = MaxAuthorities; } @@ -365,7 +365,7 @@ impl pallet_grandpa::Config for Runtime { ReportLongevity, >; - type WeightInfo = (); + type WeightInfo = weights::pallet_grandpa::SubstrateWeight; type MaxAuthorities = MaxAuthorities; type MaxSetIdSessionEntries = MaxSetIdSessionEntries; } @@ -408,7 +408,7 @@ impl pallet_timestamp::Config for Runtime { type Moment = Moment; type OnTimestampSet = Babe; type MinimumPeriod = MinimumPeriod; - type WeightInfo = pallet_timestamp::weights::SubstrateWeight; + type WeightInfo = weights::pallet_timestamp::SubstrateWeight; } parameter_types! { @@ -510,7 +510,7 @@ impl pallet_session::Config for Runtime { type SessionManager = pallet_session::historical::NoteHistoricalRoot; type SessionHandler = ::KeyTypeIdProviders; type Keys = SessionKeys; - type WeightInfo = pallet_session::weights::SubstrateWeight; + type WeightInfo = weights::pallet_session::SubstrateWeight; } impl pallet_session::historical::Config for Runtime { @@ -597,7 +597,7 @@ impl pallet_staking::Config for Runtime { type MaxUnlockingChunks = ConstU32<32>; type HistoryDepth = HistoryDepth; type OnStakerSlash = (); // NominationPools; - type WeightInfo = pallet_staking::weights::SubstrateWeight; + type WeightInfo = weights::pallet_staking::SubstrateWeight; type BenchmarkingConfig = StakingBenchmarkingConfig; type BondingRestriction = RestrictStakingAccountsFromBonding; } @@ -756,7 +756,7 @@ impl pallet_election_provider_multi_phase::Config for Runtime { type MaxElectingVoters = MaxElectingVoters; type MaxWinners = MaxActiveValidators; // How does this relate with staking pallet type BenchmarkingConfig = ElectionProviderBenchmarkConfig; - type WeightInfo = pallet_election_provider_multi_phase::weights::SubstrateWeight; + type WeightInfo = weights::pallet_election_provider_multi_phase::SubstrateWeight; } parameter_types! { @@ -766,7 +766,7 @@ parameter_types! { impl pallet_bags_list::Config for Runtime { type RuntimeEvent = RuntimeEvent; type ScoreProvider = Staking; - type WeightInfo = pallet_bags_list::weights::SubstrateWeight; + type WeightInfo = weights::pallet_bags_list::SubstrateWeight; type BagThresholds = BagThresholds; type Score = VoteWeight; } @@ -788,7 +788,7 @@ impl pallet_im_online::Config for Runtime { type ValidatorSet = Historical; type ReportUnresponsiveness = Offences; type UnsignedPriority = ImOnlineUnsignedPriority; - type WeightInfo = pallet_im_online::weights::SubstrateWeight; + type WeightInfo = weights::pallet_im_online::SubstrateWeight; type MaxKeys = MaxKeys; type MaxPeerInHeartbeats = MaxPeerInHeartbeats; type MaxPeerDataEncodingSize = MaxPeerDataEncodingSize; @@ -1773,7 +1773,7 @@ impl pallet_vesting::Config for Runtime { type Currency = Balances; type BlockNumberToBalance = ConvertInto; type MinVestedTransfer = MinVestedTransfer; - type WeightInfo = pallet_vesting::weights::SubstrateWeight; + type WeightInfo = weights::pallet_vesting::SubstrateWeight; type UnvestedFundsAllowedWithdrawReasons = UnvestedFundsAllowedWithdrawReasons; // `VestingInfo` encode length is 36bytes. 28 schedules gets encoded as 1009 bytes, which is the // highest number of schedules that encodes less than 2^10. @@ -1802,7 +1802,7 @@ impl pallet_multisig::Config for Runtime { type DepositBase = DepositBase; type DepositFactor = DepositFactor; type MaxSignatories = MaxSignatories; - type WeightInfo = pallet_multisig::weights::SubstrateWeight; + type WeightInfo = weights::pallet_multisig::SubstrateWeight; } /// Opaque types. These are used by the CLI to instantiate machinery that don't need to know diff --git a/runtime/src/weights/block_weights.rs b/runtime/src/weights/block_weights.rs index 15f2fc8380..9d95a6062c 100644 --- a/runtime/src/weights/block_weights.rs +++ b/runtime/src/weights/block_weights.rs @@ -1,64 +1,46 @@ -// This file is part of Substrate. - -// Copyright (C) 2022 Parity Technologies (UK) Ltd. -// SPDX-License-Identifier: Apache-2.0 - -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-10-20 (Y/M/D) +//! DATE: 2023-03-15 (Y/M/D) +//! HOSTNAME: `Mokhtars-MacBook-Pro.local`, CPU: `` //! //! SHORT-NAME: `block`, LONG-NAME: `BlockExecution`, RUNTIME: `Development` //! WARMUPS: `10`, REPEAT: `100` -//! WEIGHT-PATH: `./../runtime/src/weights` +//! WEIGHT-PATH: `./scripts/../runtime/src/weights` //! WEIGHT-METRIC: `Average`, WEIGHT-MUL: `1.0`, WEIGHT-ADD: `0` // Executed Command: -// ./../target/release/joystream-node +// ./scripts/../target/release/joystream-node // benchmark // overhead -// --base-path=/mnt/disks/local-ssd/ -// --chain=dev +// --chain=prod-test // --execution=wasm // --warmup=10 // --repeat=100 -// --weight-path=./../runtime/src/weights +// --weight-path=./scripts/../runtime/src/weights -use frame_support::{ - parameter_types, - weights::{constants::WEIGHT_REF_TIME_PER_NANOS, Weight}, -}; +use sp_core::parameter_types; +use sp_weights::{constants::WEIGHT_REF_TIME_PER_NANOS, Weight}; parameter_types! { /// Time to execute an empty block. /// Calculated by multiplying the *Average* with `1.0` and adding `0`. /// /// Stats nanoseconds: - /// Min, Max: 5_881_640, 6_082_189 - /// Average: 5_919_668 - /// Median: 5_912_480 - /// Std-Dev: 30722.3 + /// Min, Max: 340_208, 367_791 + /// Average: 344_857 + /// Median: 344_125 + /// Std-Dev: 3238.98 /// /// Percentiles nanoseconds: - /// 99th: 6_020_750 - /// 95th: 5_985_310 - /// 75th: 5_923_109 - pub const BlockExecutionWeight: Weight = Weight::from_ref_time(5_919_668 * WEIGHT_REF_TIME_PER_NANOS); + /// 99th: 351_916 + /// 95th: 349_625 + /// 75th: 345_583 + pub const BlockExecutionWeight: Weight = + Weight::from_ref_time(WEIGHT_REF_TIME_PER_NANOS.saturating_mul(344_857)); } #[cfg(test)] mod test_weights { - use frame_support::weights::constants; + use sp_weights::constants; /// Checks that the weight exists and is sane. // NOTE: If this test fails but you are sure that the generated values are fine, @@ -69,12 +51,12 @@ mod test_weights { // At least 100 µs. assert!( - w.ref_time() >= 100 * constants::WEIGHT_REF_TIME_PER_MICROS, + w.ref_time() >= 100u64 * constants::WEIGHT_REF_TIME_PER_MICROS, "Weight should be at least 100 µs." ); // At most 50 ms. assert!( - w.ref_time() <= 50 * constants::WEIGHT_REF_TIME_PER_MILLIS, + w.ref_time() <= 50u64 * constants::WEIGHT_REF_TIME_PER_MILLIS, "Weight should be at most 50 ms." ); } diff --git a/runtime/src/weights/extrinsic_weights.rs b/runtime/src/weights/extrinsic_weights.rs index 1e4d76659d..2a5d40fa5f 100644 --- a/runtime/src/weights/extrinsic_weights.rs +++ b/runtime/src/weights/extrinsic_weights.rs @@ -1,64 +1,46 @@ -// This file is part of Substrate. - -// Copyright (C) 2022 Parity Technologies (UK) Ltd. -// SPDX-License-Identifier: Apache-2.0 - -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-10-20 (Y/M/D) +//! DATE: 2023-03-15 (Y/M/D) +//! HOSTNAME: `Mokhtars-MacBook-Pro.local`, CPU: `` //! //! SHORT-NAME: `extrinsic`, LONG-NAME: `ExtrinsicBase`, RUNTIME: `Development` //! WARMUPS: `10`, REPEAT: `100` -//! WEIGHT-PATH: `./../runtime/src/weights` +//! WEIGHT-PATH: `./scripts/../runtime/src/weights` //! WEIGHT-METRIC: `Average`, WEIGHT-MUL: `1.0`, WEIGHT-ADD: `0` // Executed Command: -// ./../target/release/joystream-node +// ./scripts/../target/release/joystream-node // benchmark // overhead -// --base-path=/mnt/disks/local-ssd/ -// --chain=dev +// --chain=prod-test // --execution=wasm // --warmup=10 // --repeat=100 -// --weight-path=./../runtime/src/weights +// --weight-path=./scripts/../runtime/src/weights -use frame_support::{ - parameter_types, - weights::{constants::WEIGHT_REF_TIME_PER_NANOS, Weight}, -}; +use sp_core::parameter_types; +use sp_weights::{constants::WEIGHT_REF_TIME_PER_NANOS, Weight}; parameter_types! { /// Time to execute a NO-OP extrinsic, for example `System::remark`. /// Calculated by multiplying the *Average* with `1.0` and adding `0`. /// /// Stats nanoseconds: - /// Min, Max: 106_115, 107_235 - /// Average: 106_628 - /// Median: 106_653 - /// Std-Dev: 278.15 + /// Min, Max: 81_325, 85_065 + /// Average: 81_792 + /// Median: 81_763 + /// Std-Dev: 423.06 /// /// Percentiles nanoseconds: - /// 99th: 107_217 - /// 95th: 107_081 - /// 75th: 106_821 - pub const ExtrinsicBaseWeight: Weight = Weight::from_ref_time(106_628 * WEIGHT_REF_TIME_PER_NANOS); + /// 99th: 82_519 + /// 95th: 82_208 + /// 75th: 81_941 + pub const ExtrinsicBaseWeight: Weight = + Weight::from_ref_time(WEIGHT_REF_TIME_PER_NANOS.saturating_mul(81_792)); } #[cfg(test)] mod test_weights { - use frame_support::weights::constants; + use sp_weights::constants; /// Checks that the weight exists and is sane. // NOTE: If this test fails but you are sure that the generated values are fine, @@ -69,7 +51,7 @@ mod test_weights { // At least 10 µs. assert!( - w.ref_time() >= 10 * constants::WEIGHT_REF_TIME_PER_MICROS, + w.ref_time() >= 10u64 * constants::WEIGHT_REF_TIME_PER_MICROS, "Weight should be at least 10 µs." ); // At most 1 ms. diff --git a/runtime/src/weights/frame_system.rs b/runtime/src/weights/frame_system.rs index 06e600a46e..c71551d7f8 100644 --- a/runtime/src/weights/frame_system.rs +++ b/runtime/src/weights/frame_system.rs @@ -18,22 +18,21 @@ //! Autogenerated weights for frame_system //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-10-20, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! DATE: 2023-03-15, STEPS: `2`, REPEAT: 2, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("prod-test"), DB CACHE: 1024 // Executed Command: -// ./../target/release/joystream-node +// ./scripts/../target/release/joystream-node // benchmark // pallet -// --base-path=/mnt/disks/local-ssd/ // --pallet=frame_system // --extrinsic=* -// --chain=dev -// --steps=50 -// --repeat=20 +// --chain=prod-test +// --steps=2 +// --repeat=2 // --execution=wasm -// --template=./../devops/frame-weight-template.hbs -// --output=./../runtime/src/weights/frame_system.rs +// --template=./scripts/../devops/frame-weight-template.hbs +// --output=./scripts/../runtime/src/weights/frame_system.rs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -48,40 +47,84 @@ pub use frame_system::weights::WeightInfo; /// Weights for frame_system using the Substrate node and recommended hardware. pub struct SubstrateWeight(PhantomData); impl WeightInfo for SubstrateWeight { - fn remark(_b: u32, ) -> Weight { - (1_725_000 as Weight) + /// The range of component `b` is `[0, 3932160]`. + fn remark(b: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_000 nanoseconds. + Weight::from_ref_time(2_500_000) + .saturating_add(Weight::from_proof_size(0)) + // Standard Error: 0 + .saturating_add(Weight::from_ref_time(209).saturating_mul(b.into())) } + /// The range of component `b` is `[0, 3932160]`. fn remark_with_event(b: u32, ) -> Weight { - (81_993_000 as Weight) - // Standard Error: 0 - .saturating_add((1_000 as Weight).saturating_mul(b as Weight)) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 6_000 nanoseconds. + Weight::from_ref_time(6_500_000) + .saturating_add(Weight::from_proof_size(0)) + // Standard Error: 11 + .saturating_add(Weight::from_ref_time(1_255).saturating_mul(b.into())) } // Storage: System Digest (r:1 w:1) - // Storage: unknown [0x3a686561707061676573] (r:0 w:1) + // Proof Skipped: System Digest (max_values: Some(1), max_size: None, mode: Measured) + // Storage: unknown `0x3a686561707061676573` (r:0 w:1) + // Proof Skipped: unknown `0x3a686561707061676573` (r:0 w:1) fn set_heap_pages() -> Weight { - (8_180_000 as Weight) - .saturating_add(T::DbWeight::get().reads(1 as Weight)) - .saturating_add(T::DbWeight::get().writes(2 as Weight)) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `495` + // Minimum execution time: 3_000 nanoseconds. + Weight::from_ref_time(3_000_000) + .saturating_add(Weight::from_proof_size(495)) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) } // Storage: Skipped Metadata (r:0 w:0) + // Proof Skipped: Skipped Metadata (max_values: None, max_size: None, mode: Measured) + /// The range of component `i` is `[0, 1000]`. fn set_storage(i: u32, ) -> Weight { - (0 as Weight) - // Standard Error: 1_000 - .saturating_add((1_485_000 as Weight).saturating_mul(i as Weight)) - .saturating_add(T::DbWeight::get().writes((1 as Weight).saturating_mul(i as Weight))) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_000 nanoseconds. + Weight::from_ref_time(2_000_000) + .saturating_add(Weight::from_proof_size(0)) + // Standard Error: 18_000 + .saturating_add(Weight::from_ref_time(725_000).saturating_mul(i.into())) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) } // Storage: Skipped Metadata (r:0 w:0) + // Proof Skipped: Skipped Metadata (max_values: None, max_size: None, mode: Measured) + /// The range of component `i` is `[0, 1000]`. fn kill_storage(i: u32, ) -> Weight { - (0 as Weight) - // Standard Error: 1_000 - .saturating_add((1_013_000 as Weight).saturating_mul(i as Weight)) - .saturating_add(T::DbWeight::get().writes((1 as Weight).saturating_mul(i as Weight))) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_000 nanoseconds. + Weight::from_ref_time(2_000_000) + .saturating_add(Weight::from_proof_size(0)) + // Standard Error: 0 + .saturating_add(Weight::from_ref_time(542_000).saturating_mul(i.into())) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) } // Storage: Skipped Metadata (r:0 w:0) + // Proof Skipped: Skipped Metadata (max_values: None, max_size: None, mode: Measured) + /// The range of component `p` is `[0, 1000]`. fn kill_prefix(p: u32, ) -> Weight { - (0 as Weight) - // Standard Error: 2_000 - .saturating_add((2_170_000 as Weight).saturating_mul(p as Weight)) - .saturating_add(T::DbWeight::get().writes((1 as Weight).saturating_mul(p as Weight))) + // Proof Size summary in bytes: + // Measured: `39 + p * (69 ±0)` + // Estimated: `39 + p * (70 ±0)` + // Minimum execution time: 4_000 nanoseconds. + Weight::from_ref_time(4_000_000) + .saturating_add(Weight::from_proof_size(39)) + // Standard Error: 4_500 + .saturating_add(Weight::from_ref_time(1_027_500).saturating_mul(p.into())) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(p.into()))) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(p.into()))) + .saturating_add(Weight::from_proof_size(70).saturating_mul(p.into())) } } diff --git a/runtime/src/weights/mod.rs b/runtime/src/weights/mod.rs index ebb489be70..e14a53342c 100644 --- a/runtime/src/weights/mod.rs +++ b/runtime/src/weights/mod.rs @@ -21,18 +21,18 @@ // Substrate FRAME pallets pub mod block_weights; pub mod extrinsic_weights; -// pub mod frame_system; -// pub mod pallet_babe; -// pub mod pallet_bags_list; +pub mod frame_system; +pub mod pallet_babe; +pub mod pallet_bags_list; pub mod pallet_balances; -// pub mod pallet_election_provider_multi_phase; +pub mod pallet_election_provider_multi_phase; // pub mod pallet_election_provider_support_benchmarking; -// pub mod pallet_grandpa; -// pub mod pallet_im_online; -// pub mod pallet_multisig; -// pub mod pallet_session; -// pub mod pallet_staking; -// pub mod pallet_timestamp; -// pub mod pallet_vesting; +pub mod pallet_grandpa; +pub mod pallet_im_online; +pub mod pallet_multisig; +pub mod pallet_session; +pub mod pallet_staking; +pub mod pallet_timestamp; +pub mod pallet_vesting; pub mod rocksdb_weights; -// pub mod substrate_utility; +pub mod substrate_utility; diff --git a/runtime/src/weights/pallet_babe.rs b/runtime/src/weights/pallet_babe.rs index e5b974809b..7e2d495992 100644 --- a/runtime/src/weights/pallet_babe.rs +++ b/runtime/src/weights/pallet_babe.rs @@ -21,7 +21,7 @@ use frame_support::{ traits::Get, weights::{ - constants::{WEIGHT_PER_MICROS, WEIGHT_PER_NANOS}, + constants::{WEIGHT_REF_TIME_PER_MICROS, WEIGHT_REF_TIME_PER_NANOS}, Weight, }, }; @@ -41,18 +41,23 @@ impl WeightInfo for SubstrateWeight { let validator_count = validator_count.max(100) as u64; // worst case we are considering is that the given offender - // is backed by 1000 nominators + // is backed by 200 nominators const MAX_NOMINATORS: u64 = 1000; // checking membership proof - (35 * WEIGHT_PER_MICROS) - .saturating_add((175 * WEIGHT_PER_NANOS).saturating_mul(validator_count)) + Weight::from_ref_time(35u64 * WEIGHT_REF_TIME_PER_MICROS) + .saturating_add( + Weight::from_ref_time(175u64 * WEIGHT_REF_TIME_PER_NANOS) + .saturating_mul(validator_count), + ) .saturating_add(T::DbWeight::get().reads(5)) // check equivocation proof - .saturating_add(110 * WEIGHT_PER_MICROS) + .saturating_add(Weight::from_ref_time(110u64 * WEIGHT_REF_TIME_PER_MICROS)) // report offence - .saturating_add(110 * WEIGHT_PER_MICROS) - .saturating_add(25 * WEIGHT_PER_MICROS * MAX_NOMINATORS) + .saturating_add(Weight::from_ref_time(110u64 * WEIGHT_REF_TIME_PER_MICROS)) + .saturating_add(Weight::from_ref_time( + 25u64 * WEIGHT_REF_TIME_PER_MICROS * MAX_NOMINATORS, + )) .saturating_add(T::DbWeight::get().reads(14 + 3 * MAX_NOMINATORS)) .saturating_add(T::DbWeight::get().writes(10 + 3 * MAX_NOMINATORS)) } diff --git a/runtime/src/weights/pallet_bags_list.rs b/runtime/src/weights/pallet_bags_list.rs index b1ed877d26..55e48cd9e3 100644 --- a/runtime/src/weights/pallet_bags_list.rs +++ b/runtime/src/weights/pallet_bags_list.rs @@ -18,21 +18,21 @@ //! Autogenerated weights for pallet_bags_list //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-10-23, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! DATE: 2023-03-15, STEPS: `2`, REPEAT: 2, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("prod-test"), DB CACHE: 1024 // Executed Command: -// ./../target/release/joystream-node +// ./scripts/../target/release/joystream-node // benchmark // pallet // --pallet=pallet_bags_list // --extrinsic=* -// --chain=dev -// --steps=50 -// --repeat=20 +// --chain=prod-test +// --steps=2 +// --repeat=2 // --execution=wasm -// --template=./../devops/frame-weight-template.hbs -// --output=./../runtime/src/weights/pallet_bags_list.rs +// --template=./scripts/../devops/frame-weight-template.hbs +// --output=./scripts/../runtime/src/weights/pallet_bags_list.rs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -48,31 +48,59 @@ pub use pallet_bags_list::weights::WeightInfo; pub struct SubstrateWeight(PhantomData); impl WeightInfo for SubstrateWeight { // Storage: Staking Bonded (r:1 w:0) + // Proof: Staking Bonded (max_values: None, max_size: Some(72), added: 2547, mode: MaxEncodedLen) // Storage: Staking Ledger (r:1 w:0) + // Proof: Staking Ledger (max_values: None, max_size: Some(1235), added: 3710, mode: MaxEncodedLen) // Storage: BagsList ListNodes (r:4 w:4) + // Proof: BagsList ListNodes (max_values: None, max_size: Some(154), added: 2629, mode: MaxEncodedLen) // Storage: BagsList ListBags (r:1 w:1) + // Proof: BagsList ListBags (max_values: None, max_size: Some(82), added: 2557, mode: MaxEncodedLen) fn rebag_non_terminal() -> Weight { - (47_000_000 as Weight) - .saturating_add(T::DbWeight::get().reads(7 as Weight)) - .saturating_add(T::DbWeight::get().writes(5 as Weight)) + // Proof Size summary in bytes: + // Measured: `1797` + // Estimated: `19330` + // Minimum execution time: 51_000 nanoseconds. + Weight::from_ref_time(52_000_000) + .saturating_add(Weight::from_proof_size(19330)) + .saturating_add(T::DbWeight::get().reads(7_u64)) + .saturating_add(T::DbWeight::get().writes(5_u64)) } // Storage: Staking Bonded (r:1 w:0) + // Proof: Staking Bonded (max_values: None, max_size: Some(72), added: 2547, mode: MaxEncodedLen) // Storage: Staking Ledger (r:1 w:0) + // Proof: Staking Ledger (max_values: None, max_size: Some(1235), added: 3710, mode: MaxEncodedLen) // Storage: BagsList ListNodes (r:3 w:3) + // Proof: BagsList ListNodes (max_values: None, max_size: Some(154), added: 2629, mode: MaxEncodedLen) // Storage: BagsList ListBags (r:2 w:2) + // Proof: BagsList ListBags (max_values: None, max_size: Some(82), added: 2557, mode: MaxEncodedLen) fn rebag_terminal() -> Weight { - (46_000_000 as Weight) - .saturating_add(T::DbWeight::get().reads(7 as Weight)) - .saturating_add(T::DbWeight::get().writes(5 as Weight)) + // Proof Size summary in bytes: + // Measured: `1691` + // Estimated: `19258` + // Minimum execution time: 50_000 nanoseconds. + Weight::from_ref_time(53_000_000) + .saturating_add(Weight::from_proof_size(19258)) + .saturating_add(T::DbWeight::get().reads(7_u64)) + .saturating_add(T::DbWeight::get().writes(5_u64)) } // Storage: BagsList ListNodes (r:4 w:4) + // Proof: BagsList ListNodes (max_values: None, max_size: Some(154), added: 2629, mode: MaxEncodedLen) // Storage: Staking Bonded (r:2 w:0) + // Proof: Staking Bonded (max_values: None, max_size: Some(72), added: 2547, mode: MaxEncodedLen) // Storage: Staking Ledger (r:2 w:0) + // Proof: Staking Ledger (max_values: None, max_size: Some(1235), added: 3710, mode: MaxEncodedLen) // Storage: BagsList CounterForListNodes (r:1 w:1) + // Proof: BagsList CounterForListNodes (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: BagsList ListBags (r:1 w:1) + // Proof: BagsList ListBags (max_values: None, max_size: Some(82), added: 2557, mode: MaxEncodedLen) fn put_in_front_of() -> Weight { - (50_000_000 as Weight) - .saturating_add(T::DbWeight::get().reads(10 as Weight)) - .saturating_add(T::DbWeight::get().writes(6 as Weight)) + // Proof Size summary in bytes: + // Measured: `2035` + // Estimated: `26086` + // Minimum execution time: 56_000 nanoseconds. + Weight::from_ref_time(59_000_000) + .saturating_add(Weight::from_proof_size(26086)) + .saturating_add(T::DbWeight::get().reads(10_u64)) + .saturating_add(T::DbWeight::get().writes(6_u64)) } } diff --git a/runtime/src/weights/pallet_balances.rs b/runtime/src/weights/pallet_balances.rs index 21e08f7f29..edaf688714 100644 --- a/runtime/src/weights/pallet_balances.rs +++ b/runtime/src/weights/pallet_balances.rs @@ -18,22 +18,21 @@ //! Autogenerated weights for pallet_balances //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-10-20, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! DATE: 2023-03-15, STEPS: `2`, REPEAT: 2, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("prod-test"), DB CACHE: 1024 // Executed Command: -// ./../target/release/joystream-node +// ./scripts/../target/release/joystream-node // benchmark // pallet -// --base-path=/mnt/disks/local-ssd/ // --pallet=pallet_balances // --extrinsic=* -// --chain=dev -// --steps=50 -// --repeat=20 +// --chain=prod-test +// --steps=2 +// --repeat=2 // --execution=wasm -// --template=./../devops/frame-weight-template.hbs -// --output=./../runtime/src/weights/pallet_balances.rs +// --template=./scripts/../devops/frame-weight-template.hbs +// --output=./scripts/../runtime/src/weights/pallet_balances.rs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -49,44 +48,86 @@ pub use pallet_balances::weights::WeightInfo; pub struct SubstrateWeight(PhantomData); impl WeightInfo for SubstrateWeight { // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn transfer() -> Weight { - Weight::from_ref_time(126_170_000) + // Proof Size summary in bytes: + // Measured: `1817` + // Estimated: `2603` + // Minimum execution time: 45_000 nanoseconds. + Weight::from_ref_time(47_000_000) + .saturating_add(Weight::from_proof_size(2603)) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn transfer_keep_alive() -> Weight { - Weight::from_ref_time(95_270_000) + // Proof Size summary in bytes: + // Measured: `1601` + // Estimated: `2603` + // Minimum execution time: 33_000 nanoseconds. + Weight::from_ref_time(34_000_000) + .saturating_add(Weight::from_proof_size(2603)) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn set_balance_creating() -> Weight { - Weight::from_ref_time(55_370_000) + // Proof Size summary in bytes: + // Measured: `1884` + // Estimated: `2603` + // Minimum execution time: 25_000 nanoseconds. + Weight::from_ref_time(27_000_000) + .saturating_add(Weight::from_proof_size(2603)) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn set_balance_killing() -> Weight { - Weight::from_ref_time(65_300_000) + // Proof Size summary in bytes: + // Measured: `1884` + // Estimated: `2603` + // Minimum execution time: 26_000 nanoseconds. + Weight::from_ref_time(27_000_000) + .saturating_add(Weight::from_proof_size(2603)) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: System Account (r:2 w:2) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn force_transfer() -> Weight { - Weight::from_ref_time(125_600_000) + // Proof Size summary in bytes: + // Measured: `1817` + // Estimated: `5206` + // Minimum execution time: 44_000 nanoseconds. + Weight::from_ref_time(45_000_000) + .saturating_add(Weight::from_proof_size(5206)) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn transfer_all() -> Weight { - Weight::from_ref_time(117_730_000) + // Proof Size summary in bytes: + // Measured: `1601` + // Estimated: `2603` + // Minimum execution time: 39_000 nanoseconds. + Weight::from_ref_time(53_000_000) + .saturating_add(Weight::from_proof_size(2603)) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn force_unreserve() -> Weight { - Weight::from_ref_time(50_930_000) + // Proof Size summary in bytes: + // Measured: `1668` + // Estimated: `2603` + // Minimum execution time: 20_000 nanoseconds. + Weight::from_ref_time(21_000_000) + .saturating_add(Weight::from_proof_size(2603)) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } diff --git a/runtime/src/weights/pallet_election_provider_multi_phase.rs b/runtime/src/weights/pallet_election_provider_multi_phase.rs index f583c2f9fc..9dff8ab724 100644 --- a/runtime/src/weights/pallet_election_provider_multi_phase.rs +++ b/runtime/src/weights/pallet_election_provider_multi_phase.rs @@ -18,22 +18,21 @@ //! Autogenerated weights for pallet_election_provider_multi_phase //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-10-28, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! DATE: 2023-03-15, STEPS: `2`, REPEAT: 2, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("prod-test"), DB CACHE: 1024 // Executed Command: -// ./../target/release/joystream-node +// ./scripts/../target/release/joystream-node // benchmark // pallet -// --base-path=/mnt/disks/local-ssd/ // --pallet=pallet_election_provider_multi_phase // --extrinsic=* -// --chain=dev -// --steps=50 -// --repeat=20 +// --chain=prod-test +// --steps=2 +// --repeat=2 // --execution=wasm -// --template=./../devops/frame-weight-template.hbs -// --output=./../runtime/src/weights/pallet_election_provider_multi_phase.rs +// --template=./scripts/../devops/frame-weight-template.hbs +// --output=./scripts/../runtime/src/weights/pallet_election_provider_multi_phase.rs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -49,118 +48,220 @@ pub use pallet_election_provider_multi_phase::weights::WeightInfo; pub struct SubstrateWeight(PhantomData); impl WeightInfo for SubstrateWeight { // Storage: Staking CurrentEra (r:1 w:0) + // Proof: Staking CurrentEra (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Staking CurrentPlannedSession (r:1 w:0) + // Proof: Staking CurrentPlannedSession (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Staking ErasStartSessionIndex (r:1 w:0) + // Proof: Staking ErasStartSessionIndex (max_values: None, max_size: Some(16), added: 2491, mode: MaxEncodedLen) // Storage: Babe EpochIndex (r:1 w:0) + // Proof: Babe EpochIndex (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Babe GenesisSlot (r:1 w:0) + // Proof: Babe GenesisSlot (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Babe CurrentSlot (r:1 w:0) + // Proof: Babe CurrentSlot (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Staking ForceEra (r:1 w:0) + // Proof: Staking ForceEra (max_values: Some(1), max_size: Some(1), added: 496, mode: MaxEncodedLen) // Storage: ElectionProviderMultiPhase CurrentPhase (r:1 w:0) + // Proof Skipped: ElectionProviderMultiPhase CurrentPhase (max_values: Some(1), max_size: None, mode: Measured) fn on_initialize_nothing() -> Weight { - (54_030_000 as Weight) - .saturating_add(T::DbWeight::get().reads(8 as Weight)) + // Proof Size summary in bytes: + // Measured: `845` + // Estimated: `6834` + // Minimum execution time: 18_000 nanoseconds. + Weight::from_ref_time(20_000_000) + .saturating_add(Weight::from_proof_size(6834)) + .saturating_add(T::DbWeight::get().reads(8_u64)) } // Storage: ElectionProviderMultiPhase Round (r:1 w:0) - // Storage: ElectionProviderMultiPhase CurrentPhase (r:0 w:1) + // Proof Skipped: ElectionProviderMultiPhase Round (max_values: Some(1), max_size: None, mode: Measured) + // Storage: ElectionProviderMultiPhase CurrentPhase (r:1 w:1) + // Proof Skipped: ElectionProviderMultiPhase CurrentPhase (max_values: Some(1), max_size: None, mode: Measured) fn on_initialize_open_signed() -> Weight { - (38_840_000 as Weight) - .saturating_add(T::DbWeight::get().reads(1 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + // Proof Size summary in bytes: + // Measured: `42` + // Estimated: `1074` + // Minimum execution time: 11_000 nanoseconds. + Weight::from_ref_time(12_000_000) + .saturating_add(Weight::from_proof_size(1074)) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: ElectionProviderMultiPhase Round (r:1 w:0) - // Storage: ElectionProviderMultiPhase CurrentPhase (r:0 w:1) + // Proof Skipped: ElectionProviderMultiPhase Round (max_values: Some(1), max_size: None, mode: Measured) + // Storage: ElectionProviderMultiPhase CurrentPhase (r:1 w:1) + // Proof Skipped: ElectionProviderMultiPhase CurrentPhase (max_values: Some(1), max_size: None, mode: Measured) fn on_initialize_open_unsigned() -> Weight { - (37_120_000 as Weight) - .saturating_add(T::DbWeight::get().reads(1 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + // Proof Size summary in bytes: + // Measured: `42` + // Estimated: `1074` + // Minimum execution time: 12_000 nanoseconds. + Weight::from_ref_time(13_000_000) + .saturating_add(Weight::from_proof_size(1074)) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) // Storage: ElectionProviderMultiPhase QueuedSolution (r:0 w:1) + // Proof Skipped: ElectionProviderMultiPhase QueuedSolution (max_values: Some(1), max_size: None, mode: Measured) fn finalize_signed_phase_accept_solution() -> Weight { - (93_140_000 as Weight) - .saturating_add(T::DbWeight::get().reads(1 as Weight)) - .saturating_add(T::DbWeight::get().writes(2 as Weight)) + // Proof Size summary in bytes: + // Measured: `206` + // Estimated: `2809` + // Minimum execution time: 24_000 nanoseconds. + Weight::from_ref_time(24_000_000) + .saturating_add(Weight::from_proof_size(2809)) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) } // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn finalize_signed_phase_reject_solution() -> Weight { - (67_790_000 as Weight) - .saturating_add(T::DbWeight::get().reads(1 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + // Proof Size summary in bytes: + // Measured: `206` + // Estimated: `2603` + // Minimum execution time: 15_000 nanoseconds. + Weight::from_ref_time(16_000_000) + .saturating_add(Weight::from_proof_size(2603)) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: ElectionProviderMultiPhase SnapshotMetadata (r:0 w:1) + // Proof Skipped: ElectionProviderMultiPhase SnapshotMetadata (max_values: Some(1), max_size: None, mode: Measured) // Storage: ElectionProviderMultiPhase DesiredTargets (r:0 w:1) + // Proof Skipped: ElectionProviderMultiPhase DesiredTargets (max_values: Some(1), max_size: None, mode: Measured) // Storage: ElectionProviderMultiPhase Snapshot (r:0 w:1) + // Proof Skipped: ElectionProviderMultiPhase Snapshot (max_values: Some(1), max_size: None, mode: Measured) + /// The range of component `v` is `[1000, 2000]`. + /// The range of component `t` is `[500, 1000]`. fn create_snapshot_internal(v: u32, t: u32, ) -> Weight { - (0 as Weight) - // Standard Error: 13_000 - .saturating_add((393_000 as Weight).saturating_mul(v as Weight)) - // Standard Error: 26_000 - .saturating_add((210_000 as Weight).saturating_mul(t as Weight)) - .saturating_add(T::DbWeight::get().writes(3 as Weight)) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 222_000 nanoseconds. + Weight::from_ref_time(18_500_000) + .saturating_add(Weight::from_proof_size(0)) + // Standard Error: 28_310 + .saturating_add(Weight::from_ref_time(173_500).saturating_mul(v.into())) + // Standard Error: 56_621 + .saturating_add(Weight::from_ref_time(61_000).saturating_mul(t.into())) + .saturating_add(T::DbWeight::get().writes(3_u64)) } // Storage: ElectionProviderMultiPhase SignedSubmissionIndices (r:1 w:1) + // Proof Skipped: ElectionProviderMultiPhase SignedSubmissionIndices (max_values: Some(1), max_size: None, mode: Measured) // Storage: ElectionProviderMultiPhase SignedSubmissionNextIndex (r:1 w:1) + // Proof Skipped: ElectionProviderMultiPhase SignedSubmissionNextIndex (max_values: Some(1), max_size: None, mode: Measured) // Storage: ElectionProviderMultiPhase SnapshotMetadata (r:1 w:1) + // Proof Skipped: ElectionProviderMultiPhase SnapshotMetadata (max_values: Some(1), max_size: None, mode: Measured) // Storage: ElectionProviderMultiPhase SignedSubmissionsMap (r:1 w:0) + // Proof Skipped: ElectionProviderMultiPhase SignedSubmissionsMap (max_values: None, max_size: None, mode: Measured) // Storage: ElectionProviderMultiPhase QueuedSolution (r:1 w:1) + // Proof Skipped: ElectionProviderMultiPhase QueuedSolution (max_values: Some(1), max_size: None, mode: Measured) // Storage: ElectionProviderMultiPhase Round (r:1 w:1) + // Proof Skipped: ElectionProviderMultiPhase Round (max_values: Some(1), max_size: None, mode: Measured) + // Storage: ElectionProviderMultiPhase CurrentPhase (r:1 w:1) + // Proof Skipped: ElectionProviderMultiPhase CurrentPhase (max_values: Some(1), max_size: None, mode: Measured) // Storage: ElectionProviderMultiPhase DesiredTargets (r:0 w:1) + // Proof Skipped: ElectionProviderMultiPhase DesiredTargets (max_values: Some(1), max_size: None, mode: Measured) // Storage: ElectionProviderMultiPhase Snapshot (r:0 w:1) - // Storage: ElectionProviderMultiPhase CurrentPhase (r:0 w:1) + // Proof Skipped: ElectionProviderMultiPhase Snapshot (max_values: Some(1), max_size: None, mode: Measured) + /// The range of component `a` is `[500, 800]`. + /// The range of component `d` is `[200, 400]`. fn elect_queued(a: u32, d: u32, ) -> Weight { - (0 as Weight) - // Standard Error: 44_000 - .saturating_add((1_437_000 as Weight).saturating_mul(a as Weight)) - // Standard Error: 66_000 - .saturating_add((761_000 as Weight).saturating_mul(d as Weight)) - .saturating_add(T::DbWeight::get().reads(6 as Weight)) - .saturating_add(T::DbWeight::get().writes(8 as Weight)) + // Proof Size summary in bytes: + // Measured: `448 + a * (768 ±0) + d * (48 ±0)` + // Estimated: `9477 + a * (6912 ±0) + d * (441 ±0)` + // Minimum execution time: 275_000 nanoseconds. + Weight::from_ref_time(76_999_999) + .saturating_add(Weight::from_proof_size(9477)) + // Standard Error: 53_834 + .saturating_add(Weight::from_ref_time(165_000).saturating_mul(a.into())) + // Standard Error: 80_751 + .saturating_add(Weight::from_ref_time(340_000).saturating_mul(d.into())) + .saturating_add(T::DbWeight::get().reads(7_u64)) + .saturating_add(T::DbWeight::get().writes(8_u64)) + .saturating_add(Weight::from_proof_size(6912).saturating_mul(a.into())) + .saturating_add(Weight::from_proof_size(441).saturating_mul(d.into())) } // Storage: ElectionProviderMultiPhase CurrentPhase (r:1 w:0) + // Proof Skipped: ElectionProviderMultiPhase CurrentPhase (max_values: Some(1), max_size: None, mode: Measured) // Storage: ElectionProviderMultiPhase SnapshotMetadata (r:1 w:0) + // Proof Skipped: ElectionProviderMultiPhase SnapshotMetadata (max_values: Some(1), max_size: None, mode: Measured) // Storage: TransactionPayment NextFeeMultiplier (r:1 w:0) + // Proof: TransactionPayment NextFeeMultiplier (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) // Storage: ElectionProviderMultiPhase SignedSubmissionIndices (r:1 w:1) + // Proof Skipped: ElectionProviderMultiPhase SignedSubmissionIndices (max_values: Some(1), max_size: None, mode: Measured) // Storage: ElectionProviderMultiPhase SignedSubmissionNextIndex (r:1 w:1) + // Proof Skipped: ElectionProviderMultiPhase SignedSubmissionNextIndex (max_values: Some(1), max_size: None, mode: Measured) // Storage: ElectionProviderMultiPhase SignedSubmissionsMap (r:0 w:1) + // Proof Skipped: ElectionProviderMultiPhase SignedSubmissionsMap (max_values: None, max_size: None, mode: Measured) fn submit() -> Weight { - (125_180_000 as Weight) - .saturating_add(T::DbWeight::get().reads(5 as Weight)) - .saturating_add(T::DbWeight::get().writes(3 as Weight)) + // Proof Size summary in bytes: + // Measured: `1189` + // Estimated: `8436` + // Minimum execution time: 37_000 nanoseconds. + Weight::from_ref_time(37_000_000) + .saturating_add(Weight::from_proof_size(8436)) + .saturating_add(T::DbWeight::get().reads(5_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) } // Storage: ElectionProviderMultiPhase CurrentPhase (r:1 w:0) + // Proof Skipped: ElectionProviderMultiPhase CurrentPhase (max_values: Some(1), max_size: None, mode: Measured) // Storage: ElectionProviderMultiPhase Round (r:1 w:0) + // Proof Skipped: ElectionProviderMultiPhase Round (max_values: Some(1), max_size: None, mode: Measured) // Storage: ElectionProviderMultiPhase DesiredTargets (r:1 w:0) + // Proof Skipped: ElectionProviderMultiPhase DesiredTargets (max_values: Some(1), max_size: None, mode: Measured) // Storage: ElectionProviderMultiPhase QueuedSolution (r:1 w:1) + // Proof Skipped: ElectionProviderMultiPhase QueuedSolution (max_values: Some(1), max_size: None, mode: Measured) // Storage: ElectionProviderMultiPhase SnapshotMetadata (r:1 w:0) + // Proof Skipped: ElectionProviderMultiPhase SnapshotMetadata (max_values: Some(1), max_size: None, mode: Measured) // Storage: ElectionProviderMultiPhase MinimumUntrustedScore (r:1 w:0) + // Proof Skipped: ElectionProviderMultiPhase MinimumUntrustedScore (max_values: Some(1), max_size: None, mode: Measured) // Storage: ElectionProviderMultiPhase Snapshot (r:1 w:0) - fn submit_unsigned(v: u32, t: u32, a: u32, d: u32, ) -> Weight { - (0 as Weight) - // Standard Error: 17_000 - .saturating_add((1_437_000 as Weight).saturating_mul(v as Weight)) - // Standard Error: 38_000 - .saturating_add((651_000 as Weight).saturating_mul(t as Weight)) - // Standard Error: 58_000 - .saturating_add((11_297_000 as Weight).saturating_mul(a as Weight)) - // Standard Error: 87_000 - .saturating_add((2_790_000 as Weight).saturating_mul(d as Weight)) - .saturating_add(T::DbWeight::get().reads(7 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + // Proof Skipped: ElectionProviderMultiPhase Snapshot (max_values: Some(1), max_size: None, mode: Measured) + /// The range of component `v` is `[1000, 2000]`. + /// The range of component `t` is `[500, 1000]`. + /// The range of component `a` is `[500, 800]`. + /// The range of component `d` is `[200, 400]`. + fn submit_unsigned(v: u32, t: u32, a: u32, _d: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `179 + v * (553 ±0) + t * (32 ±0)` + // Estimated: `4718 + v * (3871 ±0) + t * (224 ±0)` + // Minimum execution time: 4_486_000 nanoseconds. + Weight::from_ref_time(4_486_000_000) + .saturating_add(Weight::from_proof_size(4718)) + // Standard Error: 705_898 + .saturating_add(Weight::from_ref_time(4_067_187).saturating_mul(a.into())) + .saturating_add(T::DbWeight::get().reads(7_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + .saturating_add(Weight::from_proof_size(3871).saturating_mul(v.into())) + .saturating_add(Weight::from_proof_size(224).saturating_mul(t.into())) + } + // Storage: ElectionProviderMultiPhase Round (r:1 w:0) + // Proof Skipped: ElectionProviderMultiPhase Round (max_values: Some(1), max_size: None, mode: Measured) + // Storage: ElectionProviderMultiPhase DesiredTargets (r:1 w:0) + // Proof Skipped: ElectionProviderMultiPhase DesiredTargets (max_values: Some(1), max_size: None, mode: Measured) + // Storage: ElectionProviderMultiPhase MinimumUntrustedScore (r:1 w:0) + // Proof Skipped: ElectionProviderMultiPhase MinimumUntrustedScore (max_values: Some(1), max_size: None, mode: Measured) + // Storage: ElectionProviderMultiPhase Snapshot (r:1 w:0) + // Proof Skipped: ElectionProviderMultiPhase Snapshot (max_values: Some(1), max_size: None, mode: Measured) + /// The range of component `v` is `[1000, 2000]`. + /// The range of component `t` is `[500, 1000]`. + /// The range of component `a` is `[500, 800]`. + /// The range of component `d` is `[200, 400]`. + fn feasibility_check(v: u32, t: u32, a: u32, _d: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `154 + v * (553 ±0) + t * (32 ±0)` + // Estimated: `2596 + v * (2212 ±0) + t * (128 ±0)` + // Minimum execution time: 3_662_000 nanoseconds. + Weight::from_ref_time(3_662_000_000) + .saturating_add(Weight::from_proof_size(2596)) + // Standard Error: 202_002 + .saturating_add(Weight::from_ref_time(46_624).saturating_mul(v.into())) + // Standard Error: 597_591 + .saturating_add(Weight::from_ref_time(3_149_558).saturating_mul(a.into())) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(Weight::from_proof_size(2212).saturating_mul(v.into())) + .saturating_add(Weight::from_proof_size(128).saturating_mul(t.into())) } - // Storage: ElectionProviderMultiPhase Round (r:1 w:0) - // Storage: ElectionProviderMultiPhase DesiredTargets (r:1 w:0) - // Storage: ElectionProviderMultiPhase MinimumUntrustedScore (r:1 w:0) - // Storage: ElectionProviderMultiPhase Snapshot (r:1 w:0) - fn feasibility_check(v: u32, t: u32, a: u32, d: u32, ) -> Weight { - (0 as Weight) - // Standard Error: 14_000 - .saturating_add((1_267_000 as Weight).saturating_mul(v as Weight)) - // Standard Error: 29_000 - .saturating_add((340_000 as Weight).saturating_mul(t as Weight)) - // Standard Error: 49_000 - .saturating_add((9_141_000 as Weight).saturating_mul(a as Weight)) - // Standard Error: 74_000 - .saturating_add((2_428_000 as Weight).saturating_mul(d as Weight)) - .saturating_add(T::DbWeight::get().reads(4 as Weight)) - } } diff --git a/runtime/src/weights/pallet_election_provider_support_benchmarking.rs b/runtime/src/weights/pallet_election_provider_support_benchmarking.rs index 767b0ab463..2e507a416c 100644 --- a/runtime/src/weights/pallet_election_provider_support_benchmarking.rs +++ b/runtime/src/weights/pallet_election_provider_support_benchmarking.rs @@ -18,22 +18,21 @@ //! Autogenerated weights for pallet_election_provider_support_benchmarking //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-10-24, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! DATE: 2023-03-15, STEPS: `2`, REPEAT: 2, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("prod-test"), DB CACHE: 1024 // Executed Command: -// ./../target/release/joystream-node +// ./scripts/../target/release/joystream-node // benchmark // pallet -// --base-path=/mnt/disks/local-ssd/ // --pallet=pallet_election_provider_support_benchmarking // --extrinsic=* -// --chain=dev -// --steps=50 -// --repeat=20 +// --chain=prod-test +// --steps=2 +// --repeat=2 // --execution=wasm -// --template=./../devops/frame-weight-template.hbs -// --output=./../runtime/src/weights/pallet_election_provider_support_benchmarking.rs +// --template=./scripts/../devops/frame-weight-template.hbs +// --output=./scripts/../runtime/src/weights/pallet_election_provider_support_benchmarking.rs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -43,23 +42,39 @@ use frame_support::{traits::Get, weights::Weight}; use sp_std::marker::PhantomData; -pub use frame_election_provider_support::weights::WeightInfo; +pub use pallet_election_provider_support_benchmarking::weights::WeightInfo; /// Weights for pallet_election_provider_support_benchmarking using the Substrate node and recommended hardware. pub struct SubstrateWeight(PhantomData); impl WeightInfo for SubstrateWeight { + /// The range of component `v` is `[1000, 2000]`. + /// The range of component `t` is `[500, 1000]`. + /// The range of component `d` is `[5, 16]`. fn phragmen(v: u32, _t: u32, d: u32, ) -> Weight { - (0 as Weight) - // Standard Error: 39_000 - .saturating_add((20_828_000 as Weight).saturating_mul(v as Weight)) - // Standard Error: 5_421_000 - .saturating_add((2_843_690_000 as Weight).saturating_mul(d as Weight)) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 5_413_000 nanoseconds. + Weight::from_ref_time(5_413_000_000) + .saturating_add(Weight::from_proof_size(0)) + // Standard Error: 1_826_275 + .saturating_add(Weight::from_ref_time(4_576_023).saturating_mul(v.into())) + // Standard Error: 193_190_520 + .saturating_add(Weight::from_ref_time(930_362_548).saturating_mul(d.into())) } + /// The range of component `v` is `[1000, 2000]`. + /// The range of component `t` is `[500, 1000]`. + /// The range of component `d` is `[5, 16]`. fn phragmms(v: u32, _t: u32, d: u32, ) -> Weight { - (0 as Weight) - // Standard Error: 41_000 - .saturating_add((15_474_000 as Weight).saturating_mul(v as Weight)) - // Standard Error: 5_756_000 - .saturating_add((2_222_343_000 as Weight).saturating_mul(d as Weight)) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_688_000 nanoseconds. + Weight::from_ref_time(3_688_000_000) + .saturating_add(Weight::from_proof_size(0)) + // Standard Error: 1_567_672 + .saturating_add(Weight::from_ref_time(3_777_978).saturating_mul(v.into())) + // Standard Error: 165_834_471 + .saturating_add(Weight::from_ref_time(860_747_576).saturating_mul(d.into())) } } diff --git a/runtime/src/weights/pallet_grandpa.rs b/runtime/src/weights/pallet_grandpa.rs index b16449d105..2a28663088 100644 --- a/runtime/src/weights/pallet_grandpa.rs +++ b/runtime/src/weights/pallet_grandpa.rs @@ -21,7 +21,7 @@ use frame_support::{ traits::Get, weights::{ - constants::{WEIGHT_PER_MICROS, WEIGHT_PER_NANOS}, + constants::{WEIGHT_REF_TIME_PER_MICROS, WEIGHT_REF_TIME_PER_NANOS}, Weight, }, }; @@ -38,18 +38,23 @@ impl WeightInfo for SubstrateWeight { let validator_count = validator_count.max(100) as u64; // worst case we are considering is that the given offender - // is backed by 1000 nominators + // is backed by 200 nominators const MAX_NOMINATORS: u64 = 1000; // checking membership proof - (35 * WEIGHT_PER_MICROS) - .saturating_add((175 * WEIGHT_PER_NANOS).saturating_mul(validator_count)) + Weight::from_ref_time(35u64 * WEIGHT_REF_TIME_PER_MICROS) + .saturating_add( + Weight::from_ref_time(175u64 * WEIGHT_REF_TIME_PER_NANOS) + .saturating_mul(validator_count), + ) .saturating_add(T::DbWeight::get().reads(5)) // check equivocation proof - .saturating_add(95 * WEIGHT_PER_MICROS) + .saturating_add(Weight::from_ref_time(95u64 * WEIGHT_REF_TIME_PER_MICROS)) // report offence - .saturating_add(110 * WEIGHT_PER_MICROS) - .saturating_add(25 * WEIGHT_PER_MICROS * MAX_NOMINATORS) + .saturating_add(Weight::from_ref_time(110u64 * WEIGHT_REF_TIME_PER_MICROS)) + .saturating_add(Weight::from_ref_time( + 25u64 * WEIGHT_REF_TIME_PER_MICROS * MAX_NOMINATORS, + )) .saturating_add(T::DbWeight::get().reads(14 + 3 * MAX_NOMINATORS)) .saturating_add(T::DbWeight::get().writes(10 + 3 * MAX_NOMINATORS)) // fetching set id -> session index mappings @@ -57,6 +62,7 @@ impl WeightInfo for SubstrateWeight { } fn note_stalled() -> Weight { - (3 * WEIGHT_PER_MICROS).saturating_add(T::DbWeight::get().writes(1)) + Weight::from_ref_time(3u64 * WEIGHT_REF_TIME_PER_MICROS) + .saturating_add(T::DbWeight::get().writes(1)) } } diff --git a/runtime/src/weights/pallet_im_online.rs b/runtime/src/weights/pallet_im_online.rs index 0c350b7866..e001994d7e 100644 --- a/runtime/src/weights/pallet_im_online.rs +++ b/runtime/src/weights/pallet_im_online.rs @@ -18,22 +18,21 @@ //! Autogenerated weights for pallet_im_online //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-10-20, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! DATE: 2023-03-15, STEPS: `2`, REPEAT: 2, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("prod-test"), DB CACHE: 1024 // Executed Command: -// ./../target/release/joystream-node +// ./scripts/../target/release/joystream-node // benchmark // pallet -// --base-path=/mnt/disks/local-ssd/ // --pallet=pallet_im_online // --extrinsic=* -// --chain=dev -// --steps=50 -// --repeat=20 +// --chain=prod-test +// --steps=2 +// --repeat=2 // --execution=wasm -// --template=./../devops/frame-weight-template.hbs -// --output=./../runtime/src/weights/pallet_im_online.rs +// --template=./scripts/../devops/frame-weight-template.hbs +// --output=./scripts/../runtime/src/weights/pallet_im_online.rs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -49,17 +48,30 @@ pub use pallet_im_online::weights::WeightInfo; pub struct SubstrateWeight(PhantomData); impl WeightInfo for SubstrateWeight { // Storage: Session Validators (r:1 w:0) + // Proof Skipped: Session Validators (max_values: Some(1), max_size: None, mode: Measured) // Storage: Session CurrentIndex (r:1 w:0) + // Proof Skipped: Session CurrentIndex (max_values: Some(1), max_size: None, mode: Measured) + // Storage: ImOnline Keys (r:1 w:0) + // Proof: ImOnline Keys (max_values: Some(1), max_size: Some(320002), added: 320497, mode: MaxEncodedLen) // Storage: ImOnline ReceivedHeartbeats (r:1 w:1) + // Proof: ImOnline ReceivedHeartbeats (max_values: None, max_size: Some(10021032), added: 10023507, mode: MaxEncodedLen) // Storage: ImOnline AuthoredBlocks (r:1 w:0) - // Storage: ImOnline Keys (r:1 w:0) + // Proof: ImOnline AuthoredBlocks (max_values: None, max_size: Some(56), added: 2531, mode: MaxEncodedLen) + /// The range of component `k` is `[1, 1000]`. + /// The range of component `e` is `[1, 100]`. fn validate_unsigned_and_then_heartbeat(k: u32, e: u32, ) -> Weight { - (0 as Weight) - // Standard Error: 3_000 - .saturating_add((181_000 as Weight).saturating_mul(k as Weight)) - // Standard Error: 33_000 - .saturating_add((1_320_000 as Weight).saturating_mul(e as Weight)) - .saturating_add(T::DbWeight::get().reads(4 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + // Proof Size summary in bytes: + // Measured: `357 + k * (32 ±0)` + // Estimated: `10348241 + k * (64 ±0)` + // Minimum execution time: 98_000 nanoseconds. + Weight::from_ref_time(57_440_804) + .saturating_add(Weight::from_proof_size(10348241)) + // Standard Error: 5_950 + .saturating_add(Weight::from_ref_time(44_044).saturating_mul(k.into())) + // Standard Error: 60_042 + .saturating_add(Weight::from_ref_time(515_151).saturating_mul(e.into())) + .saturating_add(T::DbWeight::get().reads(5_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + .saturating_add(Weight::from_proof_size(64).saturating_mul(k.into())) } } diff --git a/runtime/src/weights/pallet_multisig.rs b/runtime/src/weights/pallet_multisig.rs index d6317982f7..e231003021 100644 --- a/runtime/src/weights/pallet_multisig.rs +++ b/runtime/src/weights/pallet_multisig.rs @@ -18,22 +18,21 @@ //! Autogenerated weights for pallet_multisig //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-10-20, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! DATE: 2023-03-15, STEPS: `2`, REPEAT: 2, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("prod-test"), DB CACHE: 1024 // Executed Command: -// ./../target/release/joystream-node +// ./scripts/../target/release/joystream-node // benchmark // pallet -// --base-path=/mnt/disks/local-ssd/ // --pallet=pallet_multisig // --extrinsic=* -// --chain=dev -// --steps=50 -// --repeat=20 +// --chain=prod-test +// --steps=2 +// --repeat=2 // --execution=wasm -// --template=./../devops/frame-weight-template.hbs -// --output=./../runtime/src/weights/pallet_multisig.rs +// --template=./scripts/../devops/frame-weight-template.hbs +// --output=./scripts/../runtime/src/weights/pallet_multisig.rs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -48,100 +47,116 @@ pub use pallet_multisig::weights::WeightInfo; /// Weights for pallet_multisig using the Substrate node and recommended hardware. pub struct SubstrateWeight(PhantomData); impl WeightInfo for SubstrateWeight { - fn as_multi_threshold_1(_z: u32, ) -> Weight { - (17_428_000 as Weight) + /// The range of component `z` is `[0, 10000]`. + fn as_multi_threshold_1(z: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 10_000 nanoseconds. + Weight::from_ref_time(10_000_000) + .saturating_add(Weight::from_proof_size(0)) + // Standard Error: 350 + .saturating_add(Weight::from_ref_time(750).saturating_mul(z.into())) } // Storage: Multisig Multisigs (r:1 w:1) - // Storage: unknown [0x3a65787472696e7369635f696e646578] (r:1 w:0) + // Proof: Multisig Multisigs (max_values: None, max_size: Some(3346), added: 5821, mode: MaxEncodedLen) + /// The range of component `s` is `[2, 100]`. + /// The range of component `z` is `[0, 10000]`. fn as_multi_create(s: u32, z: u32, ) -> Weight { - (92_931_000 as Weight) - // Standard Error: 1_000 - .saturating_add((130_000 as Weight).saturating_mul(s as Weight)) - // Standard Error: 0 - .saturating_add((1_000 as Weight).saturating_mul(z as Weight)) - .saturating_add(T::DbWeight::get().reads(2 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) - } - // Storage: Multisig Multisigs (r:1 w:1) - // Storage: Multisig Calls (r:1 w:1) - // Storage: unknown [0x3a65787472696e7369635f696e646578] (r:1 w:0) - fn as_multi_create_store(s: u32, z: u32, ) -> Weight { - (105_996_000 as Weight) - // Standard Error: 1_000 - .saturating_add((142_000 as Weight).saturating_mul(s as Weight)) - // Standard Error: 0 - .saturating_add((2_000 as Weight).saturating_mul(z as Weight)) - .saturating_add(T::DbWeight::get().reads(3 as Weight)) - .saturating_add(T::DbWeight::get().writes(2 as Weight)) + // Proof Size summary in bytes: + // Measured: `313 + s * (3 ±0)` + // Estimated: `5821` + // Minimum execution time: 31_000 nanoseconds. + Weight::from_ref_time(25_857_142) + .saturating_add(Weight::from_proof_size(5821)) + // Standard Error: 17_673 + .saturating_add(Weight::from_ref_time(71_428).saturating_mul(s.into())) + // Standard Error: 173 + .saturating_add(Weight::from_ref_time(1_350).saturating_mul(z.into())) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Multisig Multisigs (r:1 w:1) + // Proof: Multisig Multisigs (max_values: None, max_size: Some(3346), added: 5821, mode: MaxEncodedLen) + /// The range of component `s` is `[3, 100]`. + /// The range of component `z` is `[0, 10000]`. fn as_multi_approve(s: u32, z: u32, ) -> Weight { - (52_406_000 as Weight) - // Standard Error: 1_000 - .saturating_add((119_000 as Weight).saturating_mul(s as Weight)) - // Standard Error: 0 - .saturating_add((1_000 as Weight).saturating_mul(z as Weight)) - .saturating_add(T::DbWeight::get().reads(1 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) - } - // Storage: Multisig Multisigs (r:1 w:1) - // Storage: Multisig Calls (r:1 w:1) - fn as_multi_approve_store(s: u32, z: u32, ) -> Weight { - (100_204_000 as Weight) - // Standard Error: 1_000 - .saturating_add((123_000 as Weight).saturating_mul(s as Weight)) - // Standard Error: 0 - .saturating_add((2_000 as Weight).saturating_mul(z as Weight)) - .saturating_add(T::DbWeight::get().reads(2 as Weight)) - .saturating_add(T::DbWeight::get().writes(2 as Weight)) + // Proof Size summary in bytes: + // Measured: `351` + // Estimated: `5821` + // Minimum execution time: 21_000 nanoseconds. + Weight::from_ref_time(18_376_288) + .saturating_add(Weight::from_proof_size(5821)) + // Standard Error: 18_345 + .saturating_add(Weight::from_ref_time(41_237).saturating_mul(s.into())) + // Standard Error: 177 + .saturating_add(Weight::from_ref_time(1_400).saturating_mul(z.into())) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Multisig Multisigs (r:1 w:1) - // Storage: Multisig Calls (r:1 w:1) + // Proof: Multisig Multisigs (max_values: None, max_size: Some(3346), added: 5821, mode: MaxEncodedLen) // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// The range of component `s` is `[2, 100]`. + /// The range of component `z` is `[0, 10000]`. fn as_multi_complete(s: u32, z: u32, ) -> Weight { - (121_333_000 as Weight) - // Standard Error: 1_000 - .saturating_add((185_000 as Weight).saturating_mul(s as Weight)) - // Standard Error: 0 - .saturating_add((2_000 as Weight).saturating_mul(z as Weight)) - .saturating_add(T::DbWeight::get().reads(3 as Weight)) - .saturating_add(T::DbWeight::get().writes(3 as Weight)) + // Proof Size summary in bytes: + // Measured: `488 + s * (34 ±0)` + // Estimated: `8424` + // Minimum execution time: 34_000 nanoseconds. + Weight::from_ref_time(28_387_755) + .saturating_add(Weight::from_proof_size(8424)) + // Standard Error: 17_176 + .saturating_add(Weight::from_ref_time(56_122).saturating_mul(s.into())) + // Standard Error: 168 + .saturating_add(Weight::from_ref_time(1_450).saturating_mul(z.into())) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) } // Storage: Multisig Multisigs (r:1 w:1) - // Storage: unknown [0x3a65787472696e7369635f696e646578] (r:1 w:0) + // Proof: Multisig Multisigs (max_values: None, max_size: Some(3346), added: 5821, mode: MaxEncodedLen) + /// The range of component `s` is `[2, 100]`. fn approve_as_multi_create(s: u32, ) -> Weight { - (90_766_000 as Weight) - // Standard Error: 1_000 - .saturating_add((125_000 as Weight).saturating_mul(s as Weight)) - .saturating_add(T::DbWeight::get().reads(2 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + // Proof Size summary in bytes: + // Measured: `313 + s * (3 ±0)` + // Estimated: `5821` + // Minimum execution time: 25_000 nanoseconds. + Weight::from_ref_time(24_867_346) + .saturating_add(Weight::from_proof_size(5821)) + // Standard Error: 15_306 + .saturating_add(Weight::from_ref_time(66_326).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Multisig Multisigs (r:1 w:1) - // Storage: Multisig Calls (r:1 w:0) + // Proof: Multisig Multisigs (max_values: None, max_size: Some(3346), added: 5821, mode: MaxEncodedLen) + /// The range of component `s` is `[2, 100]`. fn approve_as_multi_approve(s: u32, ) -> Weight { - (51_360_000 as Weight) - // Standard Error: 1_000 - .saturating_add((119_000 as Weight).saturating_mul(s as Weight)) - .saturating_add(T::DbWeight::get().reads(1 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) - } - // Storage: Multisig Multisigs (r:1 w:1) - // Storage: Multisig Calls (r:1 w:1) - // Storage: System Account (r:1 w:1) - fn approve_as_multi_complete(s: u32, ) -> Weight { - (140_632_000 as Weight) - // Standard Error: 2_000 - .saturating_add((196_000 as Weight).saturating_mul(s as Weight)) - .saturating_add(T::DbWeight::get().reads(3 as Weight)) - .saturating_add(T::DbWeight::get().writes(3 as Weight)) + // Proof Size summary in bytes: + // Measured: `351` + // Estimated: `5821` + // Minimum execution time: 15_000 nanoseconds. + Weight::from_ref_time(14_867_346) + .saturating_add(Weight::from_proof_size(5821)) + // Standard Error: 15_306 + .saturating_add(Weight::from_ref_time(66_326).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Multisig Multisigs (r:1 w:1) - // Storage: Multisig Calls (r:1 w:1) + // Proof: Multisig Multisigs (max_values: None, max_size: Some(3346), added: 5821, mode: MaxEncodedLen) + /// The range of component `s` is `[2, 100]`. fn cancel_as_multi(s: u32, ) -> Weight { - (124_818_000 as Weight) - // Standard Error: 1_000 - .saturating_add((151_000 as Weight).saturating_mul(s as Weight)) - .saturating_add(T::DbWeight::get().reads(2 as Weight)) - .saturating_add(T::DbWeight::get().writes(2 as Weight)) + // Proof Size summary in bytes: + // Measured: `552 + s * (2 ±0)` + // Estimated: `5821` + // Minimum execution time: 24_000 nanoseconds. + Weight::from_ref_time(26_377_551) + .saturating_add(Weight::from_proof_size(5821)) + // Standard Error: 36_076 + .saturating_add(Weight::from_ref_time(61_224).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } } diff --git a/runtime/src/weights/pallet_session.rs b/runtime/src/weights/pallet_session.rs index beec3af4b8..d92cbe78c8 100644 --- a/runtime/src/weights/pallet_session.rs +++ b/runtime/src/weights/pallet_session.rs @@ -18,22 +18,21 @@ //! Autogenerated weights for pallet_session //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-10-20, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! DATE: 2023-03-15, STEPS: `2`, REPEAT: 2, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("prod-test"), DB CACHE: 1024 // Executed Command: -// ./../target/release/joystream-node +// ./scripts/../target/release/joystream-node // benchmark // pallet -// --base-path=/mnt/disks/local-ssd/ // --pallet=pallet_session // --extrinsic=* -// --chain=dev -// --steps=50 -// --repeat=20 +// --chain=prod-test +// --steps=2 +// --repeat=2 // --execution=wasm -// --template=./../devops/frame-weight-template.hbs -// --output=./../runtime/src/weights/pallet_session.rs +// --template=./scripts/../devops/frame-weight-template.hbs +// --output=./scripts/../runtime/src/weights/pallet_session.rs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -49,19 +48,35 @@ pub use pallet_session::weights::WeightInfo; pub struct SubstrateWeight(PhantomData); impl WeightInfo for SubstrateWeight { // Storage: Staking Ledger (r:1 w:0) + // Proof: Staking Ledger (max_values: None, max_size: Some(1235), added: 3710, mode: MaxEncodedLen) // Storage: Session NextKeys (r:1 w:1) + // Proof Skipped: Session NextKeys (max_values: None, max_size: None, mode: Measured) // Storage: Session KeyOwner (r:4 w:4) + // Proof Skipped: Session KeyOwner (max_values: None, max_size: None, mode: Measured) fn set_keys() -> Weight { - (114_260_000 as Weight) - .saturating_add(T::DbWeight::get().reads(6 as Weight)) - .saturating_add(T::DbWeight::get().writes(5 as Weight)) + // Proof Size summary in bytes: + // Measured: `1868` + // Estimated: `19821` + // Minimum execution time: 40_000 nanoseconds. + Weight::from_ref_time(41_000_000) + .saturating_add(Weight::from_proof_size(19821)) + .saturating_add(T::DbWeight::get().reads(6_u64)) + .saturating_add(T::DbWeight::get().writes(5_u64)) } // Storage: Staking Ledger (r:1 w:0) + // Proof: Staking Ledger (max_values: None, max_size: Some(1235), added: 3710, mode: MaxEncodedLen) // Storage: Session NextKeys (r:1 w:1) + // Proof Skipped: Session NextKeys (max_values: None, max_size: None, mode: Measured) // Storage: Session KeyOwner (r:0 w:4) + // Proof Skipped: Session KeyOwner (max_values: None, max_size: None, mode: Measured) fn purge_keys() -> Weight { - (71_830_000 as Weight) - .saturating_add(T::DbWeight::get().reads(2 as Weight)) - .saturating_add(T::DbWeight::get().writes(5 as Weight)) + // Proof Size summary in bytes: + // Measured: `1767` + // Estimated: `9719` + // Minimum execution time: 29_000 nanoseconds. + Weight::from_ref_time(30_000_000) + .saturating_add(Weight::from_proof_size(9719)) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(5_u64)) } } diff --git a/runtime/src/weights/pallet_staking.rs b/runtime/src/weights/pallet_staking.rs index 0d837c8128..804448be37 100644 --- a/runtime/src/weights/pallet_staking.rs +++ b/runtime/src/weights/pallet_staking.rs @@ -18,22 +18,21 @@ //! Autogenerated weights for pallet_staking //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-10-20, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! DATE: 2023-03-15, STEPS: `2`, REPEAT: 2, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("prod-test"), DB CACHE: 1024 // Executed Command: -// ./../target/release/joystream-node +// ./scripts/../target/release/joystream-node // benchmark // pallet -// --base-path=/mnt/disks/local-ssd/ // --pallet=pallet_staking // --extrinsic=* -// --chain=dev -// --steps=50 -// --repeat=20 +// --chain=prod-test +// --steps=2 +// --repeat=2 // --execution=wasm -// --template=./../devops/frame-weight-template.hbs -// --output=./../runtime/src/weights/pallet_staking.rs +// --template=./scripts/../devops/frame-weight-template.hbs +// --output=./scripts/../runtime/src/weights/pallet_staking.rs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -49,381 +48,731 @@ pub use pallet_staking::weights::WeightInfo; pub struct SubstrateWeight(PhantomData); impl WeightInfo for SubstrateWeight { // Storage: Staking Bonded (r:1 w:1) + // Proof: Staking Bonded (max_values: None, max_size: Some(72), added: 2547, mode: MaxEncodedLen) // Storage: Staking Ledger (r:1 w:1) + // Proof: Staking Ledger (max_values: None, max_size: Some(1235), added: 3710, mode: MaxEncodedLen) // Storage: Balances Locks (r:1 w:1) + // Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) // Storage: Staking CurrentEra (r:1 w:0) - // Storage: Staking HistoryDepth (r:1 w:0) + // Proof: Staking CurrentEra (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Staking Payee (r:0 w:1) + // Proof: Staking Payee (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) fn bond() -> Weight { - (130_400_000 as Weight) - .saturating_add(T::DbWeight::get().reads(5 as Weight)) - .saturating_add(T::DbWeight::get().writes(4 as Weight)) + // Proof Size summary in bytes: + // Measured: `1031` + // Estimated: `10530` + // Minimum execution time: 38_000 nanoseconds. + Weight::from_ref_time(40_000_000) + .saturating_add(Weight::from_proof_size(10530)) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(4_u64)) } // Storage: Staking Bonded (r:1 w:0) + // Proof: Staking Bonded (max_values: None, max_size: Some(72), added: 2547, mode: MaxEncodedLen) // Storage: Staking Ledger (r:1 w:1) + // Proof: Staking Ledger (max_values: None, max_size: Some(1235), added: 3710, mode: MaxEncodedLen) // Storage: Balances Locks (r:1 w:1) + // Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) // Storage: BagsList ListNodes (r:3 w:3) + // Proof: BagsList ListNodes (max_values: None, max_size: Some(154), added: 2629, mode: MaxEncodedLen) // Storage: BagsList ListBags (r:2 w:2) + // Proof: BagsList ListBags (max_values: None, max_size: Some(82), added: 2557, mode: MaxEncodedLen) fn bond_extra() -> Weight { - (217_860_000 as Weight) - .saturating_add(T::DbWeight::get().reads(8 as Weight)) - .saturating_add(T::DbWeight::get().writes(7 as Weight)) + // Proof Size summary in bytes: + // Measured: `2164` + // Estimated: `23032` + // Minimum execution time: 72_000 nanoseconds. + Weight::from_ref_time(72_000_000) + .saturating_add(Weight::from_proof_size(23032)) + .saturating_add(T::DbWeight::get().reads(8_u64)) + .saturating_add(T::DbWeight::get().writes(7_u64)) } // Storage: Staking Ledger (r:1 w:1) + // Proof: Staking Ledger (max_values: None, max_size: Some(1235), added: 3710, mode: MaxEncodedLen) // Storage: Staking Nominators (r:1 w:0) + // Proof: Staking Nominators (max_values: None, max_size: Some(558), added: 3033, mode: MaxEncodedLen) // Storage: Staking MinNominatorBond (r:1 w:0) + // Proof: Staking MinNominatorBond (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) // Storage: Staking CurrentEra (r:1 w:0) + // Proof: Staking CurrentEra (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Balances Locks (r:1 w:1) + // Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) // Storage: BagsList ListNodes (r:3 w:3) + // Proof: BagsList ListNodes (max_values: None, max_size: Some(154), added: 2629, mode: MaxEncodedLen) // Storage: Staking Bonded (r:1 w:0) + // Proof: Staking Bonded (max_values: None, max_size: Some(72), added: 2547, mode: MaxEncodedLen) // Storage: BagsList ListBags (r:2 w:2) + // Proof: BagsList ListBags (max_values: None, max_size: Some(82), added: 2557, mode: MaxEncodedLen) fn unbond() -> Weight { - (243_010_000 as Weight) - .saturating_add(T::DbWeight::get().reads(12 as Weight)) - .saturating_add(T::DbWeight::get().writes(8 as Weight)) + // Proof Size summary in bytes: + // Measured: `2397` + // Estimated: `29678` + // Minimum execution time: 78_000 nanoseconds. + Weight::from_ref_time(80_000_000) + .saturating_add(Weight::from_proof_size(29678)) + .saturating_add(T::DbWeight::get().reads(12_u64)) + .saturating_add(T::DbWeight::get().writes(8_u64)) } // Storage: Staking Ledger (r:1 w:1) + // Proof: Staking Ledger (max_values: None, max_size: Some(1235), added: 3710, mode: MaxEncodedLen) // Storage: Staking CurrentEra (r:1 w:0) + // Proof: Staking CurrentEra (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Balances Locks (r:1 w:1) + // Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// The range of component `s` is `[0, 100]`. fn withdraw_unbonded_update(s: u32, ) -> Weight { - (91_409_000 as Weight) - // Standard Error: 1_000 - .saturating_add((46_000 as Weight).saturating_mul(s as Weight)) - .saturating_add(T::DbWeight::get().reads(4 as Weight)) - .saturating_add(T::DbWeight::get().writes(3 as Weight)) + // Proof Size summary in bytes: + // Measured: `995` + // Estimated: `10586` + // Minimum execution time: 28_000 nanoseconds. + Weight::from_ref_time(28_500_000) + .saturating_add(Weight::from_proof_size(10586)) + // Standard Error: 5_000 + .saturating_add(Weight::from_ref_time(5_000).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) } // Storage: Staking Ledger (r:1 w:1) + // Proof: Staking Ledger (max_values: None, max_size: Some(1235), added: 3710, mode: MaxEncodedLen) // Storage: Staking CurrentEra (r:1 w:0) + // Proof: Staking CurrentEra (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Staking Bonded (r:1 w:1) - // Storage: Staking SlashingSpans (r:1 w:0) + // Proof: Staking Bonded (max_values: None, max_size: Some(72), added: 2547, mode: MaxEncodedLen) + // Storage: Staking SlashingSpans (r:1 w:1) + // Proof Skipped: Staking SlashingSpans (max_values: None, max_size: None, mode: Measured) // Storage: Staking Validators (r:1 w:0) + // Proof: Staking Validators (max_values: None, max_size: Some(45), added: 2520, mode: MaxEncodedLen) // Storage: Staking Nominators (r:1 w:1) + // Proof: Staking Nominators (max_values: None, max_size: Some(558), added: 3033, mode: MaxEncodedLen) // Storage: Staking CounterForNominators (r:1 w:1) + // Proof: Staking CounterForNominators (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: BagsList ListNodes (r:2 w:2) + // Proof: BagsList ListNodes (max_values: None, max_size: Some(154), added: 2629, mode: MaxEncodedLen) // Storage: BagsList ListBags (r:1 w:1) + // Proof: BagsList ListBags (max_values: None, max_size: Some(82), added: 2557, mode: MaxEncodedLen) // Storage: BagsList CounterForListNodes (r:1 w:1) + // Proof: BagsList CounterForListNodes (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) // Storage: Balances Locks (r:1 w:1) + // Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) // Storage: Staking Payee (r:0 w:1) - fn withdraw_unbonded_kill(_s: u32, ) -> Weight { - (195_422_000 as Weight) - .saturating_add(T::DbWeight::get().reads(13 as Weight)) - .saturating_add(T::DbWeight::get().writes(11 as Weight)) + // Proof: Staking Payee (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) + // Storage: Staking SpanSlash (r:0 w:100) + // Proof: Staking SpanSlash (max_values: None, max_size: Some(76), added: 2551, mode: MaxEncodedLen) + /// The range of component `s` is `[0, 100]`. + fn withdraw_unbonded_kill(s: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `2307 + s * (5 ±0)` + // Estimated: `32281 + s * (5 ±0)` + // Minimum execution time: 68_000 nanoseconds. + Weight::from_ref_time(68_000_000) + .saturating_add(Weight::from_proof_size(32281)) + // Standard Error: 10_000 + .saturating_add(Weight::from_ref_time(1_360_000).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(13_u64)) + .saturating_add(T::DbWeight::get().writes(11_u64)) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(s.into()))) + .saturating_add(Weight::from_proof_size(5).saturating_mul(s.into())) } // Storage: Staking Ledger (r:1 w:0) + // Proof: Staking Ledger (max_values: None, max_size: Some(1235), added: 3710, mode: MaxEncodedLen) // Storage: Staking MinValidatorBond (r:1 w:0) + // Proof: Staking MinValidatorBond (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) // Storage: Staking MinCommission (r:1 w:0) + // Proof: Staking MinCommission (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Staking Validators (r:1 w:1) + // Proof: Staking Validators (max_values: None, max_size: Some(45), added: 2520, mode: MaxEncodedLen) // Storage: Staking MaxValidatorsCount (r:1 w:0) + // Proof: Staking MaxValidatorsCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Staking CounterForValidators (r:1 w:1) + // Proof: Staking CounterForValidators (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Staking Nominators (r:1 w:0) + // Proof: Staking Nominators (max_values: None, max_size: Some(558), added: 3033, mode: MaxEncodedLen) // Storage: Staking Bonded (r:1 w:0) + // Proof: Staking Bonded (max_values: None, max_size: Some(72), added: 2547, mode: MaxEncodedLen) // Storage: BagsList ListNodes (r:2 w:2) + // Proof: BagsList ListNodes (max_values: None, max_size: Some(154), added: 2629, mode: MaxEncodedLen) // Storage: BagsList ListBags (r:1 w:1) + // Proof: BagsList ListBags (max_values: None, max_size: Some(82), added: 2557, mode: MaxEncodedLen) // Storage: BagsList CounterForListNodes (r:1 w:1) + // Proof: BagsList CounterForListNodes (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) fn validate() -> Weight { - (178_470_000 as Weight) - .saturating_add(T::DbWeight::get().reads(12 as Weight)) - .saturating_add(T::DbWeight::get().writes(6 as Weight)) + // Proof Size summary in bytes: + // Measured: `1414` + // Estimated: `22132` + // Minimum execution time: 53_000 nanoseconds. + Weight::from_ref_time(53_000_000) + .saturating_add(Weight::from_proof_size(22132)) + .saturating_add(T::DbWeight::get().reads(12_u64)) + .saturating_add(T::DbWeight::get().writes(6_u64)) } // Storage: Staking Ledger (r:1 w:0) - // Storage: Staking Nominators (r:1 w:1) + // Proof: Staking Ledger (max_values: None, max_size: Some(1235), added: 3710, mode: MaxEncodedLen) + // Storage: Staking Nominators (r:128 w:128) + // Proof: Staking Nominators (max_values: None, max_size: Some(558), added: 3033, mode: MaxEncodedLen) + /// The range of component `k` is `[1, 128]`. fn kick(k: u32, ) -> Weight { - (14_901_000 as Weight) - // Standard Error: 20_000 - .saturating_add((28_658_000 as Weight).saturating_mul(k as Weight)) - .saturating_add(T::DbWeight::get().reads(1 as Weight)) - .saturating_add(T::DbWeight::get().reads((1 as Weight).saturating_mul(k as Weight))) - .saturating_add(T::DbWeight::get().writes((1 as Weight).saturating_mul(k as Weight))) + // Proof Size summary in bytes: + // Measured: `1126 + k * (601 ±0)` + // Estimated: `3710 + k * (3033 ±0)` + // Minimum execution time: 23_000 nanoseconds. + Weight::from_ref_time(15_759_842) + .saturating_add(Weight::from_proof_size(3710)) + // Standard Error: 11_811 + .saturating_add(Weight::from_ref_time(7_240_157).saturating_mul(k.into())) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(k.into()))) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(k.into()))) + .saturating_add(Weight::from_proof_size(3033).saturating_mul(k.into())) } // Storage: Staking Ledger (r:1 w:0) + // Proof: Staking Ledger (max_values: None, max_size: Some(1235), added: 3710, mode: MaxEncodedLen) // Storage: Staking MinNominatorBond (r:1 w:0) + // Proof: Staking MinNominatorBond (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) // Storage: Staking Nominators (r:1 w:1) + // Proof: Staking Nominators (max_values: None, max_size: Some(558), added: 3033, mode: MaxEncodedLen) // Storage: Staking MaxNominatorsCount (r:1 w:0) + // Proof: Staking MaxNominatorsCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Staking CounterForNominators (r:1 w:1) - // Storage: Staking Validators (r:2 w:0) + // Proof: Staking CounterForNominators (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + // Storage: Staking Validators (r:17 w:0) + // Proof: Staking Validators (max_values: None, max_size: Some(45), added: 2520, mode: MaxEncodedLen) // Storage: Staking CurrentEra (r:1 w:0) + // Proof: Staking CurrentEra (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Staking Bonded (r:1 w:0) + // Proof: Staking Bonded (max_values: None, max_size: Some(72), added: 2547, mode: MaxEncodedLen) // Storage: BagsList ListNodes (r:2 w:2) + // Proof: BagsList ListNodes (max_values: None, max_size: Some(154), added: 2629, mode: MaxEncodedLen) // Storage: BagsList ListBags (r:1 w:1) + // Proof: BagsList ListBags (max_values: None, max_size: Some(82), added: 2557, mode: MaxEncodedLen) // Storage: BagsList CounterForListNodes (r:1 w:1) + // Proof: BagsList CounterForListNodes (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + /// The range of component `n` is `[1, 16]`. fn nominate(n: u32, ) -> Weight { - (158_961_000 as Weight) - // Standard Error: 57_000 - .saturating_add((12_860_000 as Weight).saturating_mul(n as Weight)) - .saturating_add(T::DbWeight::get().reads(12 as Weight)) - .saturating_add(T::DbWeight::get().reads((1 as Weight).saturating_mul(n as Weight))) - .saturating_add(T::DbWeight::get().writes(6 as Weight)) + // Proof Size summary in bytes: + // Measured: `1879 + n * (100 ±0)` + // Estimated: `22132 + n * (2520 ±0)` + // Minimum execution time: 56_000 nanoseconds. + Weight::from_ref_time(53_200_000) + .saturating_add(Weight::from_proof_size(22132)) + // Standard Error: 0 + .saturating_add(Weight::from_ref_time(2_800_000).saturating_mul(n.into())) + .saturating_add(T::DbWeight::get().reads(12_u64)) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(n.into()))) + .saturating_add(T::DbWeight::get().writes(6_u64)) + .saturating_add(Weight::from_proof_size(2520).saturating_mul(n.into())) } // Storage: Staking Ledger (r:1 w:0) + // Proof: Staking Ledger (max_values: None, max_size: Some(1235), added: 3710, mode: MaxEncodedLen) // Storage: Staking Validators (r:1 w:0) + // Proof: Staking Validators (max_values: None, max_size: Some(45), added: 2520, mode: MaxEncodedLen) // Storage: Staking Nominators (r:1 w:1) + // Proof: Staking Nominators (max_values: None, max_size: Some(558), added: 3033, mode: MaxEncodedLen) // Storage: Staking CounterForNominators (r:1 w:1) + // Proof: Staking CounterForNominators (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: BagsList ListNodes (r:2 w:2) + // Proof: BagsList ListNodes (max_values: None, max_size: Some(154), added: 2629, mode: MaxEncodedLen) // Storage: BagsList ListBags (r:1 w:1) + // Proof: BagsList ListBags (max_values: None, max_size: Some(82), added: 2557, mode: MaxEncodedLen) // Storage: BagsList CounterForListNodes (r:1 w:1) + // Proof: BagsList CounterForListNodes (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) fn chill() -> Weight { - (139_470_000 as Weight) - .saturating_add(T::DbWeight::get().reads(8 as Weight)) - .saturating_add(T::DbWeight::get().writes(6 as Weight)) + // Proof Size summary in bytes: + // Measured: `1763` + // Estimated: `18076` + // Minimum execution time: 47_000 nanoseconds. + Weight::from_ref_time(48_000_000) + .saturating_add(Weight::from_proof_size(18076)) + .saturating_add(T::DbWeight::get().reads(8_u64)) + .saturating_add(T::DbWeight::get().writes(6_u64)) } // Storage: Staking Ledger (r:1 w:0) + // Proof: Staking Ledger (max_values: None, max_size: Some(1235), added: 3710, mode: MaxEncodedLen) // Storage: Staking Payee (r:0 w:1) + // Proof: Staking Payee (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) fn set_payee() -> Weight { - (19_610_000 as Weight) - .saturating_add(T::DbWeight::get().reads(1 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + // Proof Size summary in bytes: + // Measured: `753` + // Estimated: `3710` + // Minimum execution time: 12_000 nanoseconds. + Weight::from_ref_time(13_000_000) + .saturating_add(Weight::from_proof_size(3710)) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Staking Bonded (r:1 w:1) + // Proof: Staking Bonded (max_values: None, max_size: Some(72), added: 2547, mode: MaxEncodedLen) // Storage: Staking Ledger (r:2 w:2) + // Proof: Staking Ledger (max_values: None, max_size: Some(1235), added: 3710, mode: MaxEncodedLen) fn set_controller() -> Weight { - (45_940_000 as Weight) - .saturating_add(T::DbWeight::get().reads(3 as Weight)) - .saturating_add(T::DbWeight::get().writes(3 as Weight)) + // Proof Size summary in bytes: + // Measured: `852` + // Estimated: `9967` + // Minimum execution time: 18_000 nanoseconds. + Weight::from_ref_time(18_000_000) + .saturating_add(Weight::from_proof_size(9967)) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) } // Storage: Staking ValidatorCount (r:0 w:1) + // Proof: Staking ValidatorCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) fn set_validator_count() -> Weight { - (3_350_000 as Weight) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_000 nanoseconds. + Weight::from_ref_time(3_000_000) + .saturating_add(Weight::from_proof_size(0)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Staking ForceEra (r:0 w:1) + // Proof: Staking ForceEra (max_values: Some(1), max_size: Some(1), added: 496, mode: MaxEncodedLen) fn force_no_eras() -> Weight { - (3_620_000 as Weight) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 9_000 nanoseconds. + Weight::from_ref_time(10_000_000) + .saturating_add(Weight::from_proof_size(0)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Staking ForceEra (r:0 w:1) + // Proof: Staking ForceEra (max_values: Some(1), max_size: Some(1), added: 496, mode: MaxEncodedLen) fn force_new_era() -> Weight { - (3_650_000 as Weight) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 9_000 nanoseconds. + Weight::from_ref_time(9_000_000) + .saturating_add(Weight::from_proof_size(0)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Staking ForceEra (r:0 w:1) + // Proof: Staking ForceEra (max_values: Some(1), max_size: Some(1), added: 496, mode: MaxEncodedLen) fn force_new_era_always() -> Weight { - (3_609_000 as Weight) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 8_000 nanoseconds. + Weight::from_ref_time(9_000_000) + .saturating_add(Weight::from_proof_size(0)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Staking Invulnerables (r:0 w:1) + // Proof Skipped: Staking Invulnerables (max_values: Some(1), max_size: None, mode: Measured) + /// The range of component `v` is `[0, 400]`. fn set_invulnerables(v: u32, ) -> Weight { - (4_173_000 as Weight) - // Standard Error: 0 - .saturating_add((10_000 as Weight).saturating_mul(v as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_000 nanoseconds. + Weight::from_ref_time(2_500_000) + .saturating_add(Weight::from_proof_size(0)) + // Standard Error: 1_767 + .saturating_add(Weight::from_ref_time(7_500).saturating_mul(v.into())) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Staking Bonded (r:1 w:1) - // Storage: Staking SlashingSpans (r:1 w:0) + // Proof: Staking Bonded (max_values: None, max_size: Some(72), added: 2547, mode: MaxEncodedLen) + // Storage: Staking SlashingSpans (r:1 w:1) + // Proof Skipped: Staking SlashingSpans (max_values: None, max_size: None, mode: Measured) // Storage: Staking Validators (r:1 w:0) + // Proof: Staking Validators (max_values: None, max_size: Some(45), added: 2520, mode: MaxEncodedLen) // Storage: Staking Nominators (r:1 w:1) + // Proof: Staking Nominators (max_values: None, max_size: Some(558), added: 3033, mode: MaxEncodedLen) // Storage: Staking CounterForNominators (r:1 w:1) + // Proof: Staking CounterForNominators (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: BagsList ListNodes (r:2 w:2) + // Proof: BagsList ListNodes (max_values: None, max_size: Some(154), added: 2629, mode: MaxEncodedLen) // Storage: BagsList ListBags (r:1 w:1) + // Proof: BagsList ListBags (max_values: None, max_size: Some(82), added: 2557, mode: MaxEncodedLen) // Storage: BagsList CounterForListNodes (r:1 w:1) + // Proof: BagsList CounterForListNodes (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) // Storage: Balances Locks (r:1 w:1) + // Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) // Storage: Staking Ledger (r:0 w:1) + // Proof: Staking Ledger (max_values: None, max_size: Some(1235), added: 3710, mode: MaxEncodedLen) // Storage: Staking Payee (r:0 w:1) - // Storage: Staking SpanSlash (r:0 w:2) + // Proof: Staking Payee (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) + // Storage: Staking SpanSlash (r:0 w:100) + // Proof: Staking SpanSlash (max_values: None, max_size: Some(76), added: 2551, mode: MaxEncodedLen) + /// The range of component `s` is `[0, 100]`. fn force_unstake(s: u32, ) -> Weight { - (182_831_000 as Weight) - // Standard Error: 4_000 - .saturating_add((3_845_000 as Weight).saturating_mul(s as Weight)) - .saturating_add(T::DbWeight::get().reads(11 as Weight)) - .saturating_add(T::DbWeight::get().writes(12 as Weight)) - .saturating_add(T::DbWeight::get().writes((1 as Weight).saturating_mul(s as Weight))) + // Proof Size summary in bytes: + // Measured: `2005 + s * (5 ±0)` + // Estimated: `27770 + s * (5 ±0)` + // Minimum execution time: 61_000 nanoseconds. + Weight::from_ref_time(61_000_000) + .saturating_add(Weight::from_proof_size(27770)) + // Standard Error: 25_000 + .saturating_add(Weight::from_ref_time(1_335_000).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(11_u64)) + .saturating_add(T::DbWeight::get().writes(11_u64)) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(s.into()))) + .saturating_add(Weight::from_proof_size(5).saturating_mul(s.into())) } // Storage: Staking UnappliedSlashes (r:1 w:1) + // Proof Skipped: Staking UnappliedSlashes (max_values: None, max_size: None, mode: Measured) + /// The range of component `s` is `[1, 1000]`. fn cancel_deferred_slash(s: u32, ) -> Weight { - (1_170_952_000 as Weight) - // Standard Error: 71_000 - .saturating_add((6_332_000 as Weight).saturating_mul(s as Weight)) - .saturating_add(T::DbWeight::get().reads(1 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + // Proof Size summary in bytes: + // Measured: `66590` + // Estimated: `69065` + // Minimum execution time: 131_000 nanoseconds. + Weight::from_ref_time(128_993_993) + .saturating_add(Weight::from_proof_size(69065)) + // Standard Error: 44_069 + .saturating_add(Weight::from_ref_time(3_506_006).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Staking CurrentEra (r:1 w:0) - // Storage: Staking HistoryDepth (r:1 w:0) + // Proof: Staking CurrentEra (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Staking ErasValidatorReward (r:1 w:0) - // Storage: Staking Bonded (r:2 w:0) + // Proof: Staking ErasValidatorReward (max_values: None, max_size: Some(28), added: 2503, mode: MaxEncodedLen) + // Storage: Staking Bonded (r:257 w:0) + // Proof: Staking Bonded (max_values: None, max_size: Some(72), added: 2547, mode: MaxEncodedLen) // Storage: Staking Ledger (r:1 w:1) + // Proof: Staking Ledger (max_values: None, max_size: Some(1235), added: 3710, mode: MaxEncodedLen) // Storage: Staking ErasStakersClipped (r:1 w:0) + // Proof Skipped: Staking ErasStakersClipped (max_values: None, max_size: None, mode: Measured) // Storage: Staking ErasRewardPoints (r:1 w:0) + // Proof Skipped: Staking ErasRewardPoints (max_values: None, max_size: None, mode: Measured) // Storage: Staking ErasValidatorPrefs (r:1 w:0) - // Storage: Staking Payee (r:2 w:0) - // Storage: System Account (r:2 w:2) + // Proof: Staking ErasValidatorPrefs (max_values: None, max_size: Some(57), added: 2532, mode: MaxEncodedLen) + // Storage: Staking Payee (r:257 w:0) + // Proof: Staking Payee (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) + // Storage: System Account (r:257 w:257) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// The range of component `n` is `[0, 256]`. fn payout_stakers_dead_controller(n: u32, ) -> Weight { - (168_060_000 as Weight) - // Standard Error: 60_000 - .saturating_add((96_923_000 as Weight).saturating_mul(n as Weight)) - .saturating_add(T::DbWeight::get().reads(10 as Weight)) - .saturating_add(T::DbWeight::get().reads((3 as Weight).saturating_mul(n as Weight))) - .saturating_add(T::DbWeight::get().writes(2 as Weight)) - .saturating_add(T::DbWeight::get().writes((1 as Weight).saturating_mul(n as Weight))) + // Proof Size summary in bytes: + // Measured: `4238 + n * (196 ±0)` + // Estimated: `30368 + n * (8090 ±0)` + // Minimum execution time: 66_000 nanoseconds. + Weight::from_ref_time(67_500_000) + .saturating_add(Weight::from_proof_size(30368)) + // Standard Error: 51_118 + .saturating_add(Weight::from_ref_time(25_052_734).saturating_mul(n.into())) + .saturating_add(T::DbWeight::get().reads(9_u64)) + .saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(n.into()))) + .saturating_add(T::DbWeight::get().writes(2_u64)) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(n.into()))) + .saturating_add(Weight::from_proof_size(8090).saturating_mul(n.into())) } // Storage: Staking CurrentEra (r:1 w:0) - // Storage: Staking HistoryDepth (r:1 w:0) + // Proof: Staking CurrentEra (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Staking ErasValidatorReward (r:1 w:0) - // Storage: Staking Bonded (r:2 w:0) - // Storage: Staking Ledger (r:2 w:2) + // Proof: Staking ErasValidatorReward (max_values: None, max_size: Some(28), added: 2503, mode: MaxEncodedLen) + // Storage: Staking Bonded (r:257 w:0) + // Proof: Staking Bonded (max_values: None, max_size: Some(72), added: 2547, mode: MaxEncodedLen) + // Storage: Staking Ledger (r:257 w:257) + // Proof: Staking Ledger (max_values: None, max_size: Some(1235), added: 3710, mode: MaxEncodedLen) // Storage: Staking ErasStakersClipped (r:1 w:0) + // Proof Skipped: Staking ErasStakersClipped (max_values: None, max_size: None, mode: Measured) // Storage: Staking ErasRewardPoints (r:1 w:0) + // Proof Skipped: Staking ErasRewardPoints (max_values: None, max_size: None, mode: Measured) // Storage: Staking ErasValidatorPrefs (r:1 w:0) - // Storage: Staking Payee (r:2 w:0) - // Storage: System Account (r:2 w:2) - // Storage: Balances Locks (r:2 w:2) + // Proof: Staking ErasValidatorPrefs (max_values: None, max_size: Some(57), added: 2532, mode: MaxEncodedLen) + // Storage: Staking Payee (r:257 w:0) + // Proof: Staking Payee (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) + // Storage: System Account (r:257 w:257) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + // Storage: Balances Locks (r:257 w:257) + // Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) + /// The range of component `n` is `[0, 256]`. fn payout_stakers_alive_staked(n: u32, ) -> Weight { - (252_418_000 as Weight) - // Standard Error: 76_000 - .saturating_add((125_054_000 as Weight).saturating_mul(n as Weight)) - .saturating_add(T::DbWeight::get().reads(11 as Weight)) - .saturating_add(T::DbWeight::get().reads((5 as Weight).saturating_mul(n as Weight))) - .saturating_add(T::DbWeight::get().writes(3 as Weight)) - .saturating_add(T::DbWeight::get().writes((3 as Weight).saturating_mul(n as Weight))) + // Proof Size summary in bytes: + // Measured: `5341 + n * (555 ±0)` + // Estimated: `36348 + n * (16292 ±0)` + // Minimum execution time: 81_000 nanoseconds. + Weight::from_ref_time(82_000_000) + .saturating_add(Weight::from_proof_size(36348)) + // Standard Error: 87_977 + .saturating_add(Weight::from_ref_time(33_744_140).saturating_mul(n.into())) + .saturating_add(T::DbWeight::get().reads(10_u64)) + .saturating_add(T::DbWeight::get().reads((5_u64).saturating_mul(n.into()))) + .saturating_add(T::DbWeight::get().writes(3_u64)) + .saturating_add(T::DbWeight::get().writes((3_u64).saturating_mul(n.into()))) + .saturating_add(Weight::from_proof_size(16292).saturating_mul(n.into())) } // Storage: Staking Ledger (r:1 w:1) + // Proof: Staking Ledger (max_values: None, max_size: Some(1235), added: 3710, mode: MaxEncodedLen) // Storage: Balances Locks (r:1 w:1) + // Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) // Storage: BagsList ListNodes (r:3 w:3) + // Proof: BagsList ListNodes (max_values: None, max_size: Some(154), added: 2629, mode: MaxEncodedLen) // Storage: Staking Bonded (r:1 w:0) + // Proof: Staking Bonded (max_values: None, max_size: Some(72), added: 2547, mode: MaxEncodedLen) // Storage: BagsList ListBags (r:2 w:2) + // Proof: BagsList ListBags (max_values: None, max_size: Some(82), added: 2557, mode: MaxEncodedLen) + /// The range of component `l` is `[1, 32]`. fn rebond(l: u32, ) -> Weight { - (214_471_000 as Weight) - // Standard Error: 15_000 - .saturating_add((104_000 as Weight).saturating_mul(l as Weight)) - .saturating_add(T::DbWeight::get().reads(9 as Weight)) - .saturating_add(T::DbWeight::get().writes(8 as Weight)) - } - // Storage: Staking CurrentEra (r:1 w:0) - // Storage: Staking HistoryDepth (r:1 w:1) - // Storage: Staking ErasStakersClipped (r:0 w:2) - // Storage: Staking ErasValidatorPrefs (r:0 w:2) - // Storage: Staking ErasValidatorReward (r:0 w:1) - // Storage: Staking ErasRewardPoints (r:0 w:1) - // Storage: Staking ErasStakers (r:0 w:2) - // Storage: Staking ErasTotalStake (r:0 w:1) - // Storage: Staking ErasStartSessionIndex (r:0 w:1) - fn set_history_depth(e: u32, ) -> Weight { - (0 as Weight) - // Standard Error: 172_000 - .saturating_add((76_377_000 as Weight).saturating_mul(e as Weight)) - .saturating_add(T::DbWeight::get().reads(2 as Weight)) - .saturating_add(T::DbWeight::get().writes(4 as Weight)) - .saturating_add(T::DbWeight::get().writes((7 as Weight).saturating_mul(e as Weight))) + // Proof Size summary in bytes: + // Measured: `2163 + l * (8 ±0)` + // Estimated: `25635` + // Minimum execution time: 70_000 nanoseconds. + Weight::from_ref_time(70_435_483) + .saturating_add(Weight::from_proof_size(25635)) + // Standard Error: 22_809 + .saturating_add(Weight::from_ref_time(64_516).saturating_mul(l.into())) + .saturating_add(T::DbWeight::get().reads(9_u64)) + .saturating_add(T::DbWeight::get().writes(8_u64)) } // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) // Storage: Staking Bonded (r:1 w:1) + // Proof: Staking Bonded (max_values: None, max_size: Some(72), added: 2547, mode: MaxEncodedLen) // Storage: Staking Ledger (r:1 w:1) + // Proof: Staking Ledger (max_values: None, max_size: Some(1235), added: 3710, mode: MaxEncodedLen) // Storage: Staking SlashingSpans (r:1 w:1) + // Proof Skipped: Staking SlashingSpans (max_values: None, max_size: None, mode: Measured) // Storage: Staking Validators (r:1 w:0) + // Proof: Staking Validators (max_values: None, max_size: Some(45), added: 2520, mode: MaxEncodedLen) // Storage: Staking Nominators (r:1 w:1) + // Proof: Staking Nominators (max_values: None, max_size: Some(558), added: 3033, mode: MaxEncodedLen) // Storage: Staking CounterForNominators (r:1 w:1) + // Proof: Staking CounterForNominators (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: BagsList ListNodes (r:2 w:2) + // Proof: BagsList ListNodes (max_values: None, max_size: Some(154), added: 2629, mode: MaxEncodedLen) // Storage: BagsList ListBags (r:1 w:1) + // Proof: BagsList ListBags (max_values: None, max_size: Some(82), added: 2557, mode: MaxEncodedLen) // Storage: BagsList CounterForListNodes (r:1 w:1) + // Proof: BagsList CounterForListNodes (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Balances Locks (r:1 w:1) + // Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) // Storage: Staking Payee (r:0 w:1) - // Storage: Staking SpanSlash (r:0 w:1) + // Proof: Staking Payee (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) + // Storage: Staking SpanSlash (r:0 w:100) + // Proof: Staking SpanSlash (max_values: None, max_size: Some(76), added: 2551, mode: MaxEncodedLen) + /// The range of component `s` is `[1, 100]`. fn reap_stash(s: u32, ) -> Weight { - (202_216_000 as Weight) - // Standard Error: 4_000 - .saturating_add((3_894_000 as Weight).saturating_mul(s as Weight)) - .saturating_add(T::DbWeight::get().reads(12 as Weight)) - .saturating_add(T::DbWeight::get().writes(12 as Weight)) - .saturating_add(T::DbWeight::get().writes((1 as Weight).saturating_mul(s as Weight))) + // Proof Size summary in bytes: + // Measured: `2376 + s * (4 ±0)` + // Estimated: `31852 + s * (4 ±0)` + // Minimum execution time: 74_000 nanoseconds. + Weight::from_ref_time(73_247_474) + .saturating_add(Weight::from_proof_size(31852)) + // Standard Error: 15_971 + .saturating_add(Weight::from_ref_time(1_252_525).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(12_u64)) + .saturating_add(T::DbWeight::get().writes(12_u64)) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(s.into()))) + .saturating_add(Weight::from_proof_size(4).saturating_mul(s.into())) } // Storage: BagsList CounterForListNodes (r:1 w:0) - // Storage: Staking SlashingSpans (r:1 w:0) + // Proof: BagsList CounterForListNodes (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: BagsList ListBags (r:200 w:0) - // Storage: BagsList ListNodes (r:101 w:0) - // Storage: Staking Nominators (r:101 w:0) - // Storage: Staking Validators (r:2 w:0) - // Storage: Staking Bonded (r:101 w:0) - // Storage: Staking Ledger (r:101 w:0) + // Proof: BagsList ListBags (max_values: None, max_size: Some(82), added: 2557, mode: MaxEncodedLen) + // Storage: BagsList ListNodes (r:110 w:0) + // Proof: BagsList ListNodes (max_values: None, max_size: Some(154), added: 2629, mode: MaxEncodedLen) + // Storage: Staking Nominators (r:110 w:0) + // Proof: Staking Nominators (max_values: None, max_size: Some(558), added: 3033, mode: MaxEncodedLen) + // Storage: Staking Validators (r:11 w:0) + // Proof: Staking Validators (max_values: None, max_size: Some(45), added: 2520, mode: MaxEncodedLen) + // Storage: Staking Bonded (r:110 w:0) + // Proof: Staking Bonded (max_values: None, max_size: Some(72), added: 2547, mode: MaxEncodedLen) + // Storage: Staking Ledger (r:110 w:0) + // Proof: Staking Ledger (max_values: None, max_size: Some(1235), added: 3710, mode: MaxEncodedLen) // Storage: Staking CounterForValidators (r:1 w:0) + // Proof: Staking CounterForValidators (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Staking ValidatorCount (r:1 w:0) + // Proof: Staking ValidatorCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Staking MinimumValidatorCount (r:1 w:0) + // Proof: Staking MinimumValidatorCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Staking CurrentEra (r:1 w:1) - // Storage: Staking HistoryDepth (r:1 w:0) - // Storage: Staking ErasStakersClipped (r:0 w:1) - // Storage: Staking ErasValidatorPrefs (r:0 w:1) - // Storage: Staking ErasStakers (r:0 w:1) + // Proof: Staking CurrentEra (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + // Storage: Staking ErasStakersClipped (r:0 w:10) + // Proof Skipped: Staking ErasStakersClipped (max_values: None, max_size: None, mode: Measured) + // Storage: Staking ErasValidatorPrefs (r:0 w:10) + // Proof: Staking ErasValidatorPrefs (max_values: None, max_size: Some(57), added: 2532, mode: MaxEncodedLen) + // Storage: Staking ErasStakers (r:0 w:10) + // Proof Skipped: Staking ErasStakers (max_values: None, max_size: None, mode: Measured) // Storage: Staking ErasTotalStake (r:0 w:1) + // Proof: Staking ErasTotalStake (max_values: None, max_size: Some(28), added: 2503, mode: MaxEncodedLen) // Storage: Staking ErasStartSessionIndex (r:0 w:1) + // Proof: Staking ErasStartSessionIndex (max_values: None, max_size: Some(16), added: 2491, mode: MaxEncodedLen) + // Storage: Staking MinimumActiveStake (r:0 w:1) + // Proof: Staking MinimumActiveStake (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) + /// The range of component `v` is `[1, 10]`. + /// The range of component `n` is `[0, 100]`. fn new_era(v: u32, n: u32, ) -> Weight { - (0 as Weight) - // Standard Error: 1_988_000 - .saturating_add((325_255_000 as Weight).saturating_mul(v as Weight)) - // Standard Error: 99_000 - .saturating_add((76_748_000 as Weight).saturating_mul(n as Weight)) - .saturating_add(T::DbWeight::get().reads(208 as Weight)) - .saturating_add(T::DbWeight::get().reads((5 as Weight).saturating_mul(v as Weight))) - .saturating_add(T::DbWeight::get().reads((4 as Weight).saturating_mul(n as Weight))) - .saturating_add(T::DbWeight::get().writes(3 as Weight)) - .saturating_add(T::DbWeight::get().writes((3 as Weight).saturating_mul(v as Weight))) + // Proof Size summary in bytes: + // Measured: `0 + v * (3667 ±0) + n * (810 ±0)` + // Estimated: `527459 + v * (16553 ±0) + n * (13095 ±0)` + // Minimum execution time: 491_000 nanoseconds. + Weight::from_ref_time(491_000_000) + .saturating_add(Weight::from_proof_size(527459)) + // Standard Error: 32_475_368 + .saturating_add(Weight::from_ref_time(41_610_320).saturating_mul(v.into())) + // Standard Error: 3_255_645 + .saturating_add(Weight::from_ref_time(15_158_932).saturating_mul(n.into())) + .saturating_add(T::DbWeight::get().reads(206_u64)) + .saturating_add(T::DbWeight::get().reads((5_u64).saturating_mul(v.into()))) + .saturating_add(T::DbWeight::get().reads((4_u64).saturating_mul(n.into()))) + .saturating_add(T::DbWeight::get().writes(4_u64)) + .saturating_add(T::DbWeight::get().writes((3_u64).saturating_mul(v.into()))) + .saturating_add(Weight::from_proof_size(16553).saturating_mul(v.into())) + .saturating_add(Weight::from_proof_size(13095).saturating_mul(n.into())) } // Storage: BagsList CounterForListNodes (r:1 w:0) - // Storage: Staking SlashingSpans (r:21 w:0) + // Proof: BagsList CounterForListNodes (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: BagsList ListBags (r:200 w:0) - // Storage: BagsList ListNodes (r:1200 w:0) - // Storage: Staking Nominators (r:1200 w:0) - // Storage: Staking Validators (r:200 w:0) - // Storage: Staking Bonded (r:1200 w:0) - // Storage: Staking Ledger (r:1200 w:0) - fn get_npos_voters(v: u32, n: u32, s: u32, ) -> Weight { - (129_872_588_000 as Weight) - // Standard Error: 1_995_000 - .saturating_add((12_970_000 as Weight).saturating_mul(n as Weight)) - .saturating_add(T::DbWeight::get().reads(202 as Weight)) - .saturating_add(T::DbWeight::get().reads((5 as Weight).saturating_mul(v as Weight))) - .saturating_add(T::DbWeight::get().reads((4 as Weight).saturating_mul(n as Weight))) - .saturating_add(T::DbWeight::get().reads((1 as Weight).saturating_mul(s as Weight))) + // Proof: BagsList ListBags (max_values: None, max_size: Some(82), added: 2557, mode: MaxEncodedLen) + // Storage: BagsList ListNodes (r:1400 w:0) + // Proof: BagsList ListNodes (max_values: None, max_size: Some(154), added: 2629, mode: MaxEncodedLen) + // Storage: Staking Nominators (r:1400 w:0) + // Proof: Staking Nominators (max_values: None, max_size: Some(558), added: 3033, mode: MaxEncodedLen) + // Storage: Staking Validators (r:400 w:0) + // Proof: Staking Validators (max_values: None, max_size: Some(45), added: 2520, mode: MaxEncodedLen) + // Storage: Staking Bonded (r:1400 w:0) + // Proof: Staking Bonded (max_values: None, max_size: Some(72), added: 2547, mode: MaxEncodedLen) + // Storage: Staking Ledger (r:1400 w:0) + // Proof: Staking Ledger (max_values: None, max_size: Some(1235), added: 3710, mode: MaxEncodedLen) + // Storage: Staking MinimumActiveStake (r:0 w:1) + // Proof: Staking MinimumActiveStake (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) + /// The range of component `v` is `[200, 400]`. + /// The range of component `n` is `[500, 1000]`. + fn get_npos_voters(v: u32, n: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `2900 + v * (453 ±0) + n * (1001 ±0)` + // Estimated: `511899 + v * (14439 ±0) + n * (11919 ±0)` + // Minimum execution time: 15_399_000 nanoseconds. + Weight::from_ref_time(494_500_000) + .saturating_add(Weight::from_proof_size(511899)) + // Standard Error: 4_910_925 + .saturating_add(Weight::from_ref_time(15_282_499).saturating_mul(v.into())) + // Standard Error: 1_964_370 + .saturating_add(Weight::from_ref_time(18_618_999).saturating_mul(n.into())) + .saturating_add(T::DbWeight::get().reads(201_u64)) + .saturating_add(T::DbWeight::get().reads((5_u64).saturating_mul(v.into()))) + .saturating_add(T::DbWeight::get().reads((4_u64).saturating_mul(n.into()))) + .saturating_add(T::DbWeight::get().writes(1_u64)) + .saturating_add(Weight::from_proof_size(14439).saturating_mul(v.into())) + .saturating_add(Weight::from_proof_size(11919).saturating_mul(n.into())) } - // Storage: Staking Validators (r:201 w:0) + // Storage: Staking CounterForValidators (r:1 w:0) + // Proof: Staking CounterForValidators (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + // Storage: Staking Validators (r:401 w:0) + // Proof: Staking Validators (max_values: None, max_size: Some(45), added: 2520, mode: MaxEncodedLen) + /// The range of component `v` is `[200, 400]`. fn get_npos_targets(v: u32, ) -> Weight { - (0 as Weight) - // Standard Error: 39_000 - .saturating_add((11_520_000 as Weight).saturating_mul(v as Weight)) - .saturating_add(T::DbWeight::get().reads(1 as Weight)) - .saturating_add(T::DbWeight::get().reads((1 as Weight).saturating_mul(v as Weight))) + // Proof Size summary in bytes: + // Measured: `552 + v * (50 ±0)` + // Estimated: `3019 + v * (2520 ±0)` + // Minimum execution time: 1_455_000 nanoseconds. + Weight::from_ref_time(1_455_000_000) + .saturating_add(Weight::from_proof_size(3019)) + // Standard Error: 877_712 + .saturating_add(Weight::from_ref_time(3_119_000).saturating_mul(v.into())) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(v.into()))) + .saturating_add(Weight::from_proof_size(2520).saturating_mul(v.into())) } // Storage: Staking MinCommission (r:0 w:1) + // Proof: Staking MinCommission (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Staking MinValidatorBond (r:0 w:1) + // Proof: Staking MinValidatorBond (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) // Storage: Staking MaxValidatorsCount (r:0 w:1) + // Proof: Staking MaxValidatorsCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Staking ChillThreshold (r:0 w:1) + // Proof: Staking ChillThreshold (max_values: Some(1), max_size: Some(1), added: 496, mode: MaxEncodedLen) // Storage: Staking MaxNominatorsCount (r:0 w:1) + // Proof: Staking MaxNominatorsCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Staking MinNominatorBond (r:0 w:1) + // Proof: Staking MinNominatorBond (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) fn set_staking_configs_all_set() -> Weight { - (5_230_000 as Weight) - .saturating_add(T::DbWeight::get().writes(6 as Weight)) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 5_000 nanoseconds. + Weight::from_ref_time(6_000_000) + .saturating_add(Weight::from_proof_size(0)) + .saturating_add(T::DbWeight::get().writes(6_u64)) } // Storage: Staking MinCommission (r:0 w:1) + // Proof: Staking MinCommission (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Staking MinValidatorBond (r:0 w:1) + // Proof: Staking MinValidatorBond (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) // Storage: Staking MaxValidatorsCount (r:0 w:1) + // Proof: Staking MaxValidatorsCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Staking ChillThreshold (r:0 w:1) + // Proof: Staking ChillThreshold (max_values: Some(1), max_size: Some(1), added: 496, mode: MaxEncodedLen) // Storage: Staking MaxNominatorsCount (r:0 w:1) + // Proof: Staking MaxNominatorsCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Staking MinNominatorBond (r:0 w:1) + // Proof: Staking MinNominatorBond (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) fn set_staking_configs_all_remove() -> Weight { - (4_840_000 as Weight) - .saturating_add(T::DbWeight::get().writes(6 as Weight)) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 5_000 nanoseconds. + Weight::from_ref_time(6_000_000) + .saturating_add(Weight::from_proof_size(0)) + .saturating_add(T::DbWeight::get().writes(6_u64)) } // Storage: Staking Ledger (r:1 w:0) + // Proof: Staking Ledger (max_values: None, max_size: Some(1235), added: 3710, mode: MaxEncodedLen) // Storage: Staking Nominators (r:1 w:1) + // Proof: Staking Nominators (max_values: None, max_size: Some(558), added: 3033, mode: MaxEncodedLen) // Storage: Staking ChillThreshold (r:1 w:0) + // Proof: Staking ChillThreshold (max_values: Some(1), max_size: Some(1), added: 496, mode: MaxEncodedLen) // Storage: Staking MaxNominatorsCount (r:1 w:0) + // Proof: Staking MaxNominatorsCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Staking CounterForNominators (r:1 w:1) + // Proof: Staking CounterForNominators (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Staking MinNominatorBond (r:1 w:0) + // Proof: Staking MinNominatorBond (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) // Storage: Staking Validators (r:1 w:0) + // Proof: Staking Validators (max_values: None, max_size: Some(45), added: 2520, mode: MaxEncodedLen) // Storage: BagsList ListNodes (r:2 w:2) + // Proof: BagsList ListNodes (max_values: None, max_size: Some(154), added: 2629, mode: MaxEncodedLen) // Storage: BagsList ListBags (r:1 w:1) + // Proof: BagsList ListBags (max_values: None, max_size: Some(82), added: 2557, mode: MaxEncodedLen) // Storage: BagsList CounterForListNodes (r:1 w:1) + // Proof: BagsList CounterForListNodes (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) fn chill_other() -> Weight { - (84_620_000 as Weight) - .saturating_add(T::DbWeight::get().reads(11 as Weight)) - .saturating_add(T::DbWeight::get().writes(6 as Weight)) + // Proof Size summary in bytes: + // Measured: `1873` + // Estimated: `19582` + // Minimum execution time: 58_000 nanoseconds. + Weight::from_ref_time(60_000_000) + .saturating_add(Weight::from_proof_size(19582)) + .saturating_add(T::DbWeight::get().reads(11_u64)) + .saturating_add(T::DbWeight::get().writes(6_u64)) } // Storage: Staking MinCommission (r:1 w:0) + // Proof: Staking MinCommission (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: Staking Validators (r:1 w:1) + // Proof: Staking Validators (max_values: None, max_size: Some(45), added: 2520, mode: MaxEncodedLen) fn force_apply_min_commission() -> Weight { - (12_960_000 as Weight) - .saturating_add(T::DbWeight::get().reads(2 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + // Proof Size summary in bytes: + // Measured: `613` + // Estimated: `3019` + // Minimum execution time: 11_000 nanoseconds. + Weight::from_ref_time(11_000_000) + .saturating_add(Weight::from_proof_size(3019)) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + // Storage: Staking MinCommission (r:0 w:1) + // Proof: Staking MinCommission (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + fn set_min_commission() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_000 nanoseconds. + Weight::from_ref_time(3_000_000) + .saturating_add(Weight::from_proof_size(0)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } } diff --git a/runtime/src/weights/pallet_timestamp.rs b/runtime/src/weights/pallet_timestamp.rs index 9d3a4d4338..7bc2f6ec20 100644 --- a/runtime/src/weights/pallet_timestamp.rs +++ b/runtime/src/weights/pallet_timestamp.rs @@ -18,22 +18,21 @@ //! Autogenerated weights for pallet_timestamp //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-10-20, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! DATE: 2023-03-15, STEPS: `2`, REPEAT: 2, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("prod-test"), DB CACHE: 1024 // Executed Command: -// ./../target/release/joystream-node +// ./scripts/../target/release/joystream-node // benchmark // pallet -// --base-path=/mnt/disks/local-ssd/ // --pallet=pallet_timestamp // --extrinsic=* -// --chain=dev -// --steps=50 -// --repeat=20 +// --chain=prod-test +// --steps=2 +// --repeat=2 // --execution=wasm -// --template=./../devops/frame-weight-template.hbs -// --output=./../runtime/src/weights/pallet_timestamp.rs +// --template=./scripts/../devops/frame-weight-template.hbs +// --output=./scripts/../runtime/src/weights/pallet_timestamp.rs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -49,13 +48,25 @@ pub use pallet_timestamp::weights::WeightInfo; pub struct SubstrateWeight(PhantomData); impl WeightInfo for SubstrateWeight { // Storage: Timestamp Now (r:1 w:1) + // Proof: Timestamp Now (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) // Storage: Babe CurrentSlot (r:1 w:0) + // Proof: Babe CurrentSlot (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) fn set() -> Weight { - (8_930_000 as Weight) - .saturating_add(T::DbWeight::get().reads(2 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + // Proof Size summary in bytes: + // Measured: `249` + // Estimated: `1006` + // Minimum execution time: 9_000 nanoseconds. + Weight::from_ref_time(11_000_000) + .saturating_add(Weight::from_proof_size(1006)) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } fn on_finalize() -> Weight { - (3_890_000 as Weight) + // Proof Size summary in bytes: + // Measured: `94` + // Estimated: `0` + // Minimum execution time: 4_000 nanoseconds. + Weight::from_ref_time(5_000_000) + .saturating_add(Weight::from_proof_size(0)) } } diff --git a/runtime/src/weights/pallet_vesting.rs b/runtime/src/weights/pallet_vesting.rs index 3ae2ec3c3e..b76c163947 100644 --- a/runtime/src/weights/pallet_vesting.rs +++ b/runtime/src/weights/pallet_vesting.rs @@ -18,22 +18,21 @@ //! Autogenerated weights for pallet_vesting //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-10-20, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! DATE: 2023-03-15, STEPS: `2`, REPEAT: 2, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("prod-test"), DB CACHE: 1024 // Executed Command: -// ./../target/release/joystream-node +// ./scripts/../target/release/joystream-node // benchmark // pallet -// --base-path=/mnt/disks/local-ssd/ // --pallet=pallet_vesting // --extrinsic=* -// --chain=dev -// --steps=50 -// --repeat=20 +// --chain=prod-test +// --steps=2 +// --repeat=2 // --execution=wasm -// --template=./../devops/frame-weight-template.hbs -// --output=./../runtime/src/weights/pallet_vesting.rs +// --template=./scripts/../devops/frame-weight-template.hbs +// --output=./scripts/../runtime/src/weights/pallet_vesting.rs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -49,97 +48,165 @@ pub use pallet_vesting::weights::WeightInfo; pub struct SubstrateWeight(PhantomData); impl WeightInfo for SubstrateWeight { // Storage: Vesting Vesting (r:1 w:1) + // Proof: Vesting Vesting (max_values: None, max_size: Some(1057), added: 3532, mode: MaxEncodedLen) // Storage: Balances Locks (r:1 w:1) + // Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) + /// The range of component `l` is `[0, 49]`. + /// The range of component `s` is `[1, 28]`. fn vest_locked(l: u32, s: u32, ) -> Weight { - (41_327_000 as Weight) - // Standard Error: 1_000 - .saturating_add((86_000 as Weight).saturating_mul(l as Weight)) - // Standard Error: 4_000 - .saturating_add((87_000 as Weight).saturating_mul(s as Weight)) - .saturating_add(T::DbWeight::get().reads(2 as Weight)) - .saturating_add(T::DbWeight::get().writes(2 as Weight)) + // Proof Size summary in bytes: + // Measured: `304 + l * (25 ±0) + s * (36 ±0)` + // Estimated: `7306` + // Minimum execution time: 24_000 nanoseconds. + Weight::from_ref_time(23_462_962) + .saturating_add(Weight::from_proof_size(7306)) + // Standard Error: 8_331 + .saturating_add(Weight::from_ref_time(51_020).saturating_mul(l.into())) + // Standard Error: 15_120 + .saturating_add(Weight::from_ref_time(37_037).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) } // Storage: Vesting Vesting (r:1 w:1) + // Proof: Vesting Vesting (max_values: None, max_size: Some(1057), added: 3532, mode: MaxEncodedLen) // Storage: Balances Locks (r:1 w:1) + // Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) + /// The range of component `l` is `[0, 49]`. + /// The range of component `s` is `[1, 28]`. fn vest_unlocked(l: u32, s: u32, ) -> Weight { - (40_576_000 as Weight) - // Standard Error: 1_000 - .saturating_add((74_000 as Weight).saturating_mul(l as Weight)) - // Standard Error: 3_000 - .saturating_add((74_000 as Weight).saturating_mul(s as Weight)) - .saturating_add(T::DbWeight::get().reads(2 as Weight)) - .saturating_add(T::DbWeight::get().writes(2 as Weight)) + // Proof Size summary in bytes: + // Measured: `304 + l * (25 ±0) + s * (36 ±0)` + // Estimated: `7306` + // Minimum execution time: 24_000 nanoseconds. + Weight::from_ref_time(23_444_444) + .saturating_add(Weight::from_proof_size(7306)) + // Standard Error: 8_331 + .saturating_add(Weight::from_ref_time(20_408).saturating_mul(l.into())) + // Standard Error: 15_120 + .saturating_add(Weight::from_ref_time(55_555).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) } // Storage: Vesting Vesting (r:1 w:1) + // Proof: Vesting Vesting (max_values: None, max_size: Some(1057), added: 3532, mode: MaxEncodedLen) // Storage: Balances Locks (r:1 w:1) + // Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) // Storage: System Account (r:1 w:1) - fn vest_other_locked(l: u32, s: u32, ) -> Weight { - (39_740_000 as Weight) - // Standard Error: 1_000 - .saturating_add((90_000 as Weight).saturating_mul(l as Weight)) - // Standard Error: 3_000 - .saturating_add((126_000 as Weight).saturating_mul(s as Weight)) - .saturating_add(T::DbWeight::get().reads(3 as Weight)) - .saturating_add(T::DbWeight::get().writes(3 as Weight)) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// The range of component `l` is `[0, 49]`. + /// The range of component `s` is `[1, 28]`. + fn vest_other_locked(l: u32, _s: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `476 + l * (25 ±0) + s * (36 ±0)` + // Estimated: `9909` + // Minimum execution time: 27_000 nanoseconds. + Weight::from_ref_time(28_555_555) + .saturating_add(Weight::from_proof_size(9909)) + // Standard Error: 24_994 + .saturating_add(Weight::from_ref_time(61_224).saturating_mul(l.into())) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) } // Storage: Vesting Vesting (r:1 w:1) + // Proof: Vesting Vesting (max_values: None, max_size: Some(1057), added: 3532, mode: MaxEncodedLen) // Storage: Balances Locks (r:1 w:1) + // Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) // Storage: System Account (r:1 w:1) - fn vest_other_unlocked(l: u32, s: u32, ) -> Weight { - (40_335_000 as Weight) - // Standard Error: 1_000 - .saturating_add((72_000 as Weight).saturating_mul(l as Weight)) - // Standard Error: 3_000 - .saturating_add((71_000 as Weight).saturating_mul(s as Weight)) - .saturating_add(T::DbWeight::get().reads(3 as Weight)) - .saturating_add(T::DbWeight::get().writes(3 as Weight)) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// The range of component `l` is `[0, 49]`. + /// The range of component `s` is `[1, 28]`. + fn vest_other_unlocked(_l: u32, s: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `476 + l * (25 ±0) + s * (36 ±0)` + // Estimated: `9909` + // Minimum execution time: 26_000 nanoseconds. + Weight::from_ref_time(26_962_962) + .saturating_add(Weight::from_proof_size(9909)) + // Standard Error: 30_240 + .saturating_add(Weight::from_ref_time(37_037).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) } // Storage: Vesting Vesting (r:1 w:1) + // Proof: Vesting Vesting (max_values: None, max_size: Some(1057), added: 3532, mode: MaxEncodedLen) // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) // Storage: Balances Locks (r:1 w:1) - fn vested_transfer(l: u32, s: u32, ) -> Weight { - (66_416_000 as Weight) - // Standard Error: 3_000 - .saturating_add((76_000 as Weight).saturating_mul(l as Weight)) - // Standard Error: 6_000 - .saturating_add((67_000 as Weight).saturating_mul(s as Weight)) - .saturating_add(T::DbWeight::get().reads(3 as Weight)) - .saturating_add(T::DbWeight::get().writes(3 as Weight)) + // Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) + /// The range of component `l` is `[0, 49]`. + /// The range of component `s` is `[0, 27]`. + fn vested_transfer(l: u32, _s: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `215 + l * (25 ±0) + s * (47 ±0)` + // Estimated: `9909` + // Minimum execution time: 42_000 nanoseconds. + Weight::from_ref_time(45_000_000) + .saturating_add(Weight::from_proof_size(9909)) + // Standard Error: 26_346 + .saturating_add(Weight::from_ref_time(51_020).saturating_mul(l.into())) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) } // Storage: Vesting Vesting (r:1 w:1) + // Proof: Vesting Vesting (max_values: None, max_size: Some(1057), added: 3532, mode: MaxEncodedLen) // Storage: System Account (r:2 w:2) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) // Storage: Balances Locks (r:1 w:1) - fn force_vested_transfer(l: u32, s: u32, ) -> Weight { - (66_612_000 as Weight) - // Standard Error: 3_000 - .saturating_add((85_000 as Weight).saturating_mul(l as Weight)) - // Standard Error: 7_000 - .saturating_add((55_000 as Weight).saturating_mul(s as Weight)) - .saturating_add(T::DbWeight::get().reads(4 as Weight)) - .saturating_add(T::DbWeight::get().writes(4 as Weight)) + // Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) + /// The range of component `l` is `[0, 49]`. + /// The range of component `s` is `[0, 27]`. + fn force_vested_transfer(l: u32, _s: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `387 + l * (25 ±0) + s * (47 ±0)` + // Estimated: `12512` + // Minimum execution time: 44_000 nanoseconds. + Weight::from_ref_time(45_500_000) + .saturating_add(Weight::from_proof_size(12512)) + // Standard Error: 8_331 + .saturating_add(Weight::from_ref_time(61_224).saturating_mul(l.into())) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(4_u64)) } // Storage: Vesting Vesting (r:1 w:1) + // Proof: Vesting Vesting (max_values: None, max_size: Some(1057), added: 3532, mode: MaxEncodedLen) // Storage: Balances Locks (r:1 w:1) + // Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) // Storage: System Account (r:1 w:1) - fn not_unlocking_merge_schedules(l: u32, s: u32, ) -> Weight { - (42_433_000 as Weight) - // Standard Error: 2_000 - .saturating_add((84_000 as Weight).saturating_mul(l as Weight)) - // Standard Error: 4_000 - .saturating_add((96_000 as Weight).saturating_mul(s as Weight)) - .saturating_add(T::DbWeight::get().reads(3 as Weight)) - .saturating_add(T::DbWeight::get().writes(3 as Weight)) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// The range of component `l` is `[0, 49]`. + /// The range of component `s` is `[2, 28]`. + fn not_unlocking_merge_schedules(_l: u32, s: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `439 + l * (25 ±0) + s * (36 ±0)` + // Estimated: `9909` + // Minimum execution time: 28_000 nanoseconds. + Weight::from_ref_time(28_384_615) + .saturating_add(Weight::from_proof_size(9909)) + // Standard Error: 64_740 + .saturating_add(Weight::from_ref_time(57_692).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) } // Storage: Vesting Vesting (r:1 w:1) + // Proof: Vesting Vesting (max_values: None, max_size: Some(1057), added: 3532, mode: MaxEncodedLen) // Storage: Balances Locks (r:1 w:1) + // Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// The range of component `l` is `[0, 49]`. + /// The range of component `s` is `[2, 28]`. fn unlocking_merge_schedules(l: u32, s: u32, ) -> Weight { - (41_796_000 as Weight) - // Standard Error: 1_000 - .saturating_add((87_000 as Weight).saturating_mul(l as Weight)) - // Standard Error: 3_000 - .saturating_add((105_000 as Weight).saturating_mul(s as Weight)) - .saturating_add(T::DbWeight::get().reads(3 as Weight)) - .saturating_add(T::DbWeight::get().writes(3 as Weight)) + // Proof Size summary in bytes: + // Measured: `439 + l * (25 ±0) + s * (36 ±0)` + // Estimated: `9909` + // Minimum execution time: 27_000 nanoseconds. + Weight::from_ref_time(25_346_153) + .saturating_add(Weight::from_proof_size(9909)) + // Standard Error: 8_331 + .saturating_add(Weight::from_ref_time(51_020).saturating_mul(l.into())) + // Standard Error: 15_701 + .saturating_add(Weight::from_ref_time(76_923).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) } } diff --git a/runtime/src/weights/rocksdb_weights.rs b/runtime/src/weights/rocksdb_weights.rs index 5b4672a517..61ee7ee5a3 100644 --- a/runtime/src/weights/rocksdb_weights.rs +++ b/runtime/src/weights/rocksdb_weights.rs @@ -1,47 +1,29 @@ -// This file is part of Substrate. - -// Copyright (C) 2022 Parity Technologies (UK) Ltd. -// SPDX-License-Identifier: Apache-2.0 - -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-10-20 (Y/M/D) +//! DATE: 2023-03-15 (Y/M/D) +//! HOSTNAME: `Mokhtars-MacBook-Pro.local`, CPU: `` //! //! DATABASE: `RocksDb`, RUNTIME: `Development` //! BLOCK-NUM: `BlockId::Number(0)` //! SKIP-WRITE: `false`, SKIP-READ: `false`, WARMUPS: `100` -//! STATE-VERSION: `V1`, STATE-CACHE-SIZE: `0` -//! WEIGHT-PATH: `./../runtime/src/weights/` +//! STATE-VERSION: `V1`, STATE-CACHE-SIZE: `` +//! WEIGHT-PATH: `./scripts/../runtime/src/weights/` //! METRIC: `Average`, WEIGHT-MUL: `1.0`, WEIGHT-ADD: `0` // Executed Command: -// ./../target/release/joystream-node +// ./scripts/../target/release/joystream-node // benchmark // storage -// --base-path=/mnt/disks/local-ssd/ -// --chain=dev +// --chain=prod-test // --warmups=100 -// --weight-path=./../runtime/src/weights/ +// --weight-path=./scripts/../runtime/src/weights/ // --state-version // 1 /// Storage DB weights for the `Development` runtime and `RocksDb`. pub mod constants { - use frame_support::{ - parameter_types, - weights::{constants, RuntimeDbWeight}, - }; + use frame_support::weights::constants; + use sp_core::parameter_types; + use sp_weights::RuntimeDbWeight; parameter_types! { /// By default, Substrate uses `RocksDB`, so this will be the weight used throughout @@ -51,38 +33,38 @@ pub mod constants { /// Calculated by multiplying the *Average* of all values with `1.0` and adding `0`. /// /// Stats nanoseconds: - /// Min, Max: 3_780, 590_000 - /// Average: 8_997 - /// Median: 5_490 - /// Std-Dev: 43436.83 + /// Min, Max: 1_500, 131_541 + /// Average: 3_669 + /// Median: 2_791 + /// Std-Dev: 10036.9 /// /// Percentiles nanoseconds: - /// 99th: 8_780 - /// 95th: 7_570 - /// 75th: 6_340 - read: 8_997 * constants::WEIGHT_REF_TIME_PER_NANOS, + /// 99th: 5_250 + /// 95th: 4_083 + /// 75th: 3_375 + read: 3_669 * constants::WEIGHT_REF_TIME_PER_NANOS, /// Time to write one storage item. /// Calculated by multiplying the *Average* of all values with `1.0` and adding `0`. /// /// Stats nanoseconds: - /// Min, Max: 11_740, 5_390_690 - /// Average: 54_966 - /// Median: 24_860 - /// Std-Dev: 398861.54 + /// Min, Max: 8_750, 2_699_750 + /// Average: 33_878 + /// Median: 17_041 + /// Std-Dev: 208867.55 /// /// Percentiles nanoseconds: - /// 99th: 46_410 - /// 95th: 36_880 - /// 75th: 29_580 - write: 54_966 * constants::WEIGHT_REF_TIME_PER_NANOS, + /// 99th: 48_875 + /// 95th: 25_333 + /// 75th: 20_666 + write: 33_878 * constants::WEIGHT_REF_TIME_PER_NANOS, }; } #[cfg(test)] mod test_db_weights { use super::constants::RocksDbWeight as W; - use frame_support::weights::constants; + use sp_weights::constants; /// Checks that all weights exist and have sane values. // NOTE: If this test fails but you are sure that the generated values are fine, diff --git a/runtime/src/weights/substrate_utility.rs b/runtime/src/weights/substrate_utility.rs index 7bb78e2e44..e6bb81f20b 100644 --- a/runtime/src/weights/substrate_utility.rs +++ b/runtime/src/weights/substrate_utility.rs @@ -18,22 +18,21 @@ //! Autogenerated weights for substrate_utility //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-10-20, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! DATE: 2023-03-15, STEPS: `2`, REPEAT: 2, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("prod-test"), DB CACHE: 1024 // Executed Command: -// ./../target/release/joystream-node +// ./scripts/../target/release/joystream-node // benchmark // pallet -// --base-path=/mnt/disks/local-ssd/ // --pallet=substrate_utility // --extrinsic=* -// --chain=dev -// --steps=50 -// --repeat=20 +// --chain=prod-test +// --steps=2 +// --repeat=2 // --execution=wasm -// --template=./../devops/frame-weight-template.hbs -// --output=./../runtime/src/weights/substrate_utility.rs +// --template=./scripts/../devops/frame-weight-template.hbs +// --output=./scripts/../runtime/src/weights/substrate_utility.rs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -48,25 +47,53 @@ pub use substrate_utility::weights::WeightInfo; /// Weights for substrate_utility using the Substrate node and recommended hardware. pub struct SubstrateWeight(PhantomData); impl WeightInfo for SubstrateWeight { + /// The range of component `c` is `[0, 1000]`. fn batch(c: u32, ) -> Weight { - (18_478_000 as Weight) - // Standard Error: 1_000 - .saturating_add((4_361_000 as Weight).saturating_mul(c as Weight)) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 5_000 nanoseconds. + Weight::from_ref_time(6_000_000) + .saturating_add(Weight::from_proof_size(0)) + // Standard Error: 13_536 + .saturating_add(Weight::from_ref_time(4_182_500).saturating_mul(c.into())) } fn as_derivative() -> Weight { - (2_280_000 as Weight) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 4_000 nanoseconds. + Weight::from_ref_time(5_000_000) + .saturating_add(Weight::from_proof_size(0)) } + /// The range of component `c` is `[0, 1000]`. fn batch_all(c: u32, ) -> Weight { - (21_448_000 as Weight) - // Standard Error: 1_000 - .saturating_add((4_642_000 as Weight).saturating_mul(c as Weight)) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 5_000 nanoseconds. + Weight::from_ref_time(5_500_000) + .saturating_add(Weight::from_proof_size(0)) + // Standard Error: 50_502 + .saturating_add(Weight::from_ref_time(4_343_000).saturating_mul(c.into())) } fn dispatch_as() -> Weight { - (13_380_000 as Weight) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 6_000 nanoseconds. + Weight::from_ref_time(7_000_000) + .saturating_add(Weight::from_proof_size(0)) } + /// The range of component `c` is `[0, 1000]`. fn force_batch(c: u32, ) -> Weight { - (17_584_000 as Weight) - // Standard Error: 1_000 - .saturating_add((4_362_000 as Weight).saturating_mul(c as Weight)) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 5_000 nanoseconds. + Weight::from_ref_time(5_000_000) + .saturating_add(Weight::from_proof_size(0)) + // Standard Error: 8_000 + .saturating_add(Weight::from_ref_time(4_174_000).saturating_mul(c.into())) } } diff --git a/scripts/generate-weights.sh b/scripts/generate-weights.sh index a74aa0b545..b2597a14db 100755 --- a/scripts/generate-weights.sh +++ b/scripts/generate-weights.sh @@ -116,7 +116,7 @@ substrate_pallet_benchmark pallet_vesting substrate_pallet_benchmark pallet_multisig substrate_pallet_benchmark pallet_bags_list substrate_pallet_benchmark pallet_election_provider_multi_phase -substrate_pallet_benchmark pallet_election_provider_support_benchmarking +# substrate_pallet_benchmark pallet_election_provider_support_benchmarking substrate_pallet_benchmark pallet_staking substrate_pallet_benchmark pallet_balances substrate_pallet_benchmark pallet_im_online From 28ec59d5c2725608d998ef6843a9214d0247b256 Mon Sep 17 00:00:00 2001 From: Mokhtar Naamani Date: Wed, 15 Mar 2023 15:30:01 +0400 Subject: [PATCH 32/87] v0.9.39 - ss58-registry no longer needs to be patched --- Cargo.lock | 5 ----- Cargo.toml | 3 --- 2 files changed, 8 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 8fb74d8512..857e7c6c63 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -11332,8 +11332,3 @@ dependencies = [ "libc", "pkg-config", ] - -[[patch.unused]] -name = "ss58-registry" -version = "1.23.0" -source = "git+https://github.com/bwhm/ss58-registry?rev=a70121e7bbb56f983f6f17771cc79d8f19b481a0#a70121e7bbb56f983f6f17771cc79d8f19b481a0" diff --git a/Cargo.toml b/Cargo.toml index 33e3549de7..e10aedcae0 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -39,6 +39,3 @@ panic = "unwind" lto = "fat" # https://doc.rust-lang.org/rustc/codegen-options/index.html#codegen-units codegen-units = 1 - -[patch.crates-io] -ss58-registry = { package = 'ss58-registry', git = 'https://github.com/bwhm/ss58-registry', rev = 'a70121e7bbb56f983f6f17771cc79d8f19b481a0'} From dfa917bb6dca40d03cb9d9ab64ac3f3039fa51a5 Mon Sep 17 00:00:00 2001 From: Mokhtar Naamani Date: Wed, 15 Mar 2023 22:51:19 +0400 Subject: [PATCH 33/87] v0.9.39 - fix brenchmark tests --- bin/node/src/node_rpc.rs | 1 - .../proposals/codex/src/tests/mock.rs | 22 ++++++++++++------- runtime-modules/proposals/engine/src/lib.rs | 2 +- runtime/Cargo.toml | 9 ++++---- runtime/src/lib.rs | 16 +++++++------- runtime/src/tests/fee_tests.rs | 6 ++--- scripts/cargo-checks.sh | 2 +- 7 files changed, 31 insertions(+), 27 deletions(-) diff --git a/bin/node/src/node_rpc.rs b/bin/node/src/node_rpc.rs index ee5f3bfaff..20074c736a 100644 --- a/bin/node/src/node_rpc.rs +++ b/bin/node/src/node_rpc.rs @@ -29,7 +29,6 @@ //! be placed here or imported from corresponding FRAME RPC definitions. #![warn(missing_docs)] -#![warn(unused_crate_dependencies)] use std::sync::Arc; diff --git a/runtime-modules/proposals/codex/src/tests/mock.rs b/runtime-modules/proposals/codex/src/tests/mock.rs index df672fe43b..29d71c770c 100644 --- a/runtime-modules/proposals/codex/src/tests/mock.rs +++ b/runtime-modules/proposals/codex/src/tests/mock.rs @@ -7,7 +7,7 @@ use frame_support::{ dispatch::DispatchError, parameter_types, traits::{ - ConstU32, ConstU64, Currency, EnsureOneOf, Imbalance, LockIdentifier, OnUnbalanced, + ConstU32, ConstU64, Currency, EitherOfDiverse, Imbalance, LockIdentifier, OnUnbalanced, OneSessionHandler, }, weights::constants::RocksDbWeight, @@ -111,7 +111,7 @@ frame_support::construct_runtime!( parameter_types! { pub BlockWeights: frame_system::limits::BlockWeights = frame_system::limits::BlockWeights::simple_max( - frame_support::weights::constants::WEIGHT_PER_SECOND * 2 + frame_support::weights::Weight::from_ref_time(frame_support::weights::constants::WEIGHT_REF_TIME_PER_SECOND * 2) ); pub static SessionsPerEra: SessionIndex = 3; pub static ExistentialDeposit: Balance = 1; @@ -220,6 +220,9 @@ impl onchain::Config for OnChainSeqPhragmen { type Solver = SequentialPhragmen; type DataProvider = Staking; type WeightInfo = (); + type MaxWinners = ConstU32<2_000>; + type VotersBound = ConstU32<5_000>; + type TargetsBound = ConstU32<2_000>; } pub struct MockReward {} @@ -258,33 +261,35 @@ impl staking::Config for Test { type Reward = MockReward; type SessionsPerEra = SessionsPerEra; type SlashDeferDuration = SlashDeferDuration; - type SlashCancelOrigin = frame_system::EnsureRoot; type BondingDuration = BondingDuration; type SessionInterface = (); type EraPayout = staking::ConvertCurve; type NextNewSession = (); type MaxNominatorRewardedPerValidator = ConstU32<64>; type OffendingValidatorsThreshold = OffendingValidatorsThreshold; - type ElectionProvider = onchain::UnboundedExecution; + type ElectionProvider = onchain::OnChainExecution; type GenesisElectionProvider = Self::ElectionProvider; // NOTE: consider a macro and use `UseNominatorsAndValidatorsMap` as well. type VoterList = BagsList; + type TargetList = staking::UseValidatorsMap; type MaxUnlockingChunks = ConstU32<32>; type OnStakerSlash = OnStakerSlashMock; type BenchmarkingConfig = TestBenchmarkingConfig; type WeightInfo = (); type BondingRestriction = (); + type HistoryDepth = ConstU32<120>; + type AdminOrigin = EnsureRoot; } impl frame_system::offchain::SendTransactionTypes for Test where - Call: From, + RuntimeCall: From, { - type OverarchingCall = Call; + type OverarchingCall = RuntimeCall; type Extrinsic = Extrinsic; } -pub type Extrinsic = TestXt; +pub type Extrinsic = TestXt; parameter_types! { pub const InvitedMemberLockId: [u8; 8] = [2; 8]; @@ -726,7 +731,8 @@ impl referendum::Config for Test { type MaxSaltLength = MaxSaltLength; type StakingHandler = staking_handler::StakingManager; - type ManagerOrigin = EnsureOneOf, EnsureRoot>; + type ManagerOrigin = + EitherOfDiverse, EnsureRoot>; type VotePower = u64; diff --git a/runtime-modules/proposals/engine/src/lib.rs b/runtime-modules/proposals/engine/src/lib.rs index d7ddcdd177..538dd6e0cb 100644 --- a/runtime-modules/proposals/engine/src/lib.rs +++ b/runtime-modules/proposals/engine/src/lib.rs @@ -171,7 +171,7 @@ use frame_support::{ decl_error, decl_event, decl_module, decl_storage, ensure, Parameter, StorageDoubleMap, }; use frame_system::{ensure_root, RawOrigin}; -use sp_arithmetic::traits::{SaturatedConversion, Saturating, Zero}; +use sp_arithmetic::traits::{SaturatedConversion, Zero}; use sp_std::convert::TryInto; use sp_std::{vec, vec::Vec}; diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index cb291cacb4..1cbe8be072 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -43,8 +43,8 @@ frame-executive = { package = 'frame-executive', default-features = false, git = frame-system-rpc-runtime-api = { package = 'frame-system-rpc-runtime-api', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} frame-system = { package = 'frame-system', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} frame-election-provider-support = { package = 'frame-election-provider-support', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} -pallet-election-provider-multi-phase = { package = 'pallet-election-provider-multi-phase', default-features = false, optional = true, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e' } -pallet-bags-list = { package = 'pallet-bags-list', default-features = false, optional = true, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +pallet-election-provider-multi-phase = { package = 'pallet-election-provider-multi-phase', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e' } +pallet-bags-list = { package = 'pallet-bags-list', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} # Pallets pallet-grandpa = { package = 'pallet-grandpa', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} @@ -100,7 +100,6 @@ substrate-wasm-builder = { git = "https://github.com/joystream/substrate", rev = [features] default = ['std'] -no_std = [] std = [ # Third-party dependencies 'serde', @@ -144,7 +143,7 @@ std = [ 'pallet-grandpa/std', 'pallet-babe/std', 'pallet-session/std', - "pallet-session-benchmarking?/std", + 'pallet-session-benchmarking?/std', 'pallet-authority-discovery/std', 'pallet-authorship/std', 'pallet-insecure-randomness-collective-flip/std', @@ -181,7 +180,7 @@ runtime-benchmarks = [ "hex-literal", "frame-support/runtime-benchmarks", "sp-runtime/runtime-benchmarks", - "frame-benchmarking", + "frame-benchmarking/runtime-benchmarks", "frame-system-benchmarking/runtime-benchmarks", "frame-system/runtime-benchmarks", diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs index dccc34578d..75ab052bf7 100644 --- a/runtime/src/lib.rs +++ b/runtime/src/lib.rs @@ -54,16 +54,14 @@ extern crate lazy_static; // for proposals_configuration module use codec::Decode; use frame_election_provider_support::{ - onchain, BalancingConfig, ElectionDataProvider, ExtendedBalance, SequentialPhragmen, VoteWeight, + onchain, BalancingConfig, ElectionDataProvider, SequentialPhragmen, VoteWeight, }; -use frame_support::pallet_prelude::Get; use frame_support::traits::{ - ConstU16, ConstU32, Contains, Currency, EnsureOneOf, Imbalance, KeyOwnerProofSystem, + ConstU16, ConstU32, Contains, Currency, EitherOfDiverse, Imbalance, KeyOwnerProofSystem, LockIdentifier, OnUnbalanced, WithdrawReasons, }; -use frame_support::weights::{ - constants::WEIGHT_REF_TIME_PER_SECOND, ConstantMultiplier, DispatchClass, Weight, -}; +use frame_support::weights::{constants::WEIGHT_REF_TIME_PER_SECOND, ConstantMultiplier, Weight}; +use frame_support::{dispatch::DispatchClass, pallet_prelude::Get}; pub use weights::{ block_weights::BlockExecutionWeight, extrinsic_weights::ExtrinsicBaseWeight, rocksdb_weights::constants::RocksDbWeight, @@ -108,6 +106,7 @@ use static_assertions::const_assert; pub use frame_system::Call as SystemCall; #[cfg(any(feature = "std", test))] pub use pallet_balances::Call as BalancesCall; +#[cfg(any(feature = "std", test))] pub use pallet_staking::StakerStatus; #[cfg(any(feature = "std", test))] pub use sp_runtime::BuildStorage; @@ -596,7 +595,7 @@ impl pallet_staking::Config for Runtime { type TargetList = pallet_staking::UseValidatorsMap; type MaxUnlockingChunks = ConstU32<32>; type HistoryDepth = HistoryDepth; - type OnStakerSlash = (); // NominationPools; + type OnStakerSlash = (); type WeightInfo = weights::pallet_staking::SubstrateWeight; type BenchmarkingConfig = StakingBenchmarkingConfig; type BondingRestriction = RestrictStakingAccountsFromBonding; @@ -1037,7 +1036,8 @@ impl referendum::Config for Runtime { type RuntimeEvent = RuntimeEvent; type MaxSaltLength = MaxSaltLength; type StakingHandler = VotingStakingManager; - type ManagerOrigin = EnsureOneOf, EnsureRoot>; + type ManagerOrigin = + EitherOfDiverse, EnsureRoot>; type VotePower = Balance; type VoteStageDuration = VoteStageDuration; type RevealStageDuration = RevealStageDuration; diff --git a/runtime/src/tests/fee_tests.rs b/runtime/src/tests/fee_tests.rs index f12ae3cf9a..b270c08747 100644 --- a/runtime/src/tests/fee_tests.rs +++ b/runtime/src/tests/fee_tests.rs @@ -15,10 +15,10 @@ fn runtime_upgrade_total_fee_is_correct() { // byte fee + base weight fee initial_test_ext().execute_with(|| { let tx_length_bytes = 3_000_000u32; - let dispatch_info = frame_support::weights::DispatchInfo { + let dispatch_info = frame_support::dispatch::DispatchInfo { weight: MAXIMUM_BLOCK_WEIGHT, - class: frame_support::weights::DispatchClass::Operational, - pays_fee: frame_support::weights::Pays::Yes, + class: frame_support::dispatch::DispatchClass::Operational, + pays_fee: frame_support::dispatch::Pays::Yes, }; let x = TransactionPayment::::compute_fee(tx_length_bytes, &dispatch_info, 0); let weight_fee = WeightToFeeImpl::weight_to_fee(&MAXIMUM_BLOCK_WEIGHT); diff --git a/scripts/cargo-checks.sh b/scripts/cargo-checks.sh index 0cf8cc97fe..689e3d6941 100755 --- a/scripts/cargo-checks.sh +++ b/scripts/cargo-checks.sh @@ -20,4 +20,4 @@ echo 'running cargo clippy' BUILD_DUMMY_WASM_BINARY=1 cargo "+$WASM_BUILD_TOOLCHAIN" clippy --release --all -- -D warnings echo 'running cargo unit tests' -cargo "+$WASM_BUILD_TOOLCHAIN" test --release --all --features "${FEATURES}" \ No newline at end of file +cargo "+$WASM_BUILD_TOOLCHAIN" test --release --all --features runtime-benchmarks,"${FEATURES}" \ No newline at end of file From e8c4f29b6b15102f110f4f6c0fdd6ae54824ee5f Mon Sep 17 00:00:00 2001 From: Mokhtar Naamani Date: Thu, 16 Mar 2023 20:07:00 +0400 Subject: [PATCH 34/87] v0.9.39 - EitherOfDiverse in place of EnsureOneOf --- runtime-modules/bounty/src/tests/mocks.rs | 5 +++-- runtime-modules/council/src/mock.rs | 5 +++-- runtime-modules/proposals/discussion/src/tests/mock.rs | 5 +++-- runtime-modules/proposals/engine/src/tests/mock/mod.rs | 5 +++-- runtime-modules/referendum/src/mock.rs | 7 ++++--- runtime-modules/utility/src/tests/mocks.rs | 7 +++++-- 6 files changed, 21 insertions(+), 13 deletions(-) diff --git a/runtime-modules/bounty/src/tests/mocks.rs b/runtime-modules/bounty/src/tests/mocks.rs index 8bbb332273..cac39b2c65 100644 --- a/runtime-modules/bounty/src/tests/mocks.rs +++ b/runtime-modules/bounty/src/tests/mocks.rs @@ -1,7 +1,7 @@ #![cfg(test)] use frame_support::dispatch::{DispatchError, DispatchResult}; -use frame_support::traits::{ConstU32, Currency, EnsureOneOf, LockIdentifier}; +use frame_support::traits::{ConstU32, Currency, EitherOfDiverse, LockIdentifier}; use frame_support::{ensure, parameter_types, PalletId}; use frame_system::{ensure_signed, EnsureRoot, EnsureSigned}; use sp_core::H256; @@ -333,7 +333,8 @@ impl referendum::Config for Test { type RuntimeEvent = RuntimeEvent; type MaxSaltLength = MaxSaltLength; type StakingHandler = staking_handler::StakingManager; - type ManagerOrigin = EnsureOneOf, EnsureRoot>; + type ManagerOrigin = + EitherOfDiverse, EnsureRoot>; type VotePower = u64; type VoteStageDuration = VoteStageDuration; type RevealStageDuration = RevealStageDuration; diff --git a/runtime-modules/council/src/mock.rs b/runtime-modules/council/src/mock.rs index d2624d60d5..007c0023cb 100644 --- a/runtime-modules/council/src/mock.rs +++ b/runtime-modules/council/src/mock.rs @@ -11,7 +11,7 @@ use crate::{ use frame_support::dispatch::{DispatchError, DispatchResult}; use frame_support::traits::{ - ConstU16, ConstU32, ConstU64, Currency, EnsureOneOf, Get, LockIdentifier, OnFinalize, + ConstU16, ConstU32, ConstU64, Currency, EitherOfDiverse, Get, LockIdentifier, OnFinalize, OnInitialize, WithdrawReasons, }; @@ -213,7 +213,8 @@ impl referendum::Config for Runtime { type MaxSaltLength = MaxSaltLength; - type ManagerOrigin = EnsureOneOf, EnsureRoot>; + type ManagerOrigin = + EitherOfDiverse, EnsureRoot>; type VotePower = u64; diff --git a/runtime-modules/proposals/discussion/src/tests/mock.rs b/runtime-modules/proposals/discussion/src/tests/mock.rs index 989bf9f3e1..bc15102174 100644 --- a/runtime-modules/proposals/discussion/src/tests/mock.rs +++ b/runtime-modules/proposals/discussion/src/tests/mock.rs @@ -8,7 +8,7 @@ use common::locks::{ use frame_support::traits::{LockIdentifier, OnFinalize, OnInitialize, WithdrawReasons}; use frame_support::{ parameter_types, - traits::{ConstU16, ConstU32, ConstU64, EnsureOneOf}, + traits::{ConstU16, ConstU32, ConstU64, EitherOfDiverse}, PalletId, }; use frame_system::{EnsureRoot, EnsureSigned}; @@ -329,7 +329,8 @@ impl referendum::Config for Test { type MaxSaltLength = MaxSaltLength; type StakingHandler = staking_handler::StakingManager; - type ManagerOrigin = EnsureOneOf, EnsureRoot>; + type ManagerOrigin = + EitherOfDiverse, EnsureRoot>; type VotePower = u64; diff --git a/runtime-modules/proposals/engine/src/tests/mock/mod.rs b/runtime-modules/proposals/engine/src/tests/mock/mod.rs index 75ac983271..0fe32506da 100644 --- a/runtime-modules/proposals/engine/src/tests/mock/mod.rs +++ b/runtime-modules/proposals/engine/src/tests/mock/mod.rs @@ -10,7 +10,7 @@ use frame_support::dispatch::DispatchError; use frame_support::traits::LockIdentifier; use frame_support::{ parameter_types, - traits::{ConstU16, ConstU32, ConstU64, EnsureOneOf}, + traits::{ConstU16, ConstU32, ConstU64, EitherOfDiverse}, }; pub use frame_system; use frame_system::{EnsureRoot, EnsureSigned}; @@ -63,7 +63,8 @@ impl referendum::Config for Test { type MaxSaltLength = MaxSaltLength; type StakingHandler = staking_handler::StakingManager; - type ManagerOrigin = EnsureOneOf, EnsureRoot>; + type ManagerOrigin = + EitherOfDiverse, EnsureRoot>; type VotePower = u64; diff --git a/runtime-modules/referendum/src/mock.rs b/runtime-modules/referendum/src/mock.rs index 53e35ca0a9..7c9bb07e8a 100644 --- a/runtime-modules/referendum/src/mock.rs +++ b/runtime-modules/referendum/src/mock.rs @@ -14,8 +14,8 @@ use frame_support::traits::{ ConstU16, ConstU32, Currency, LockIdentifier, OnFinalize, OnInitialize, }; use frame_support::{ - parameter_types, storage::weak_bounded_vec::WeakBoundedVec, traits::EnsureOneOf, StorageMap, - StorageValue, + parameter_types, storage::weak_bounded_vec::WeakBoundedVec, traits::EitherOfDiverse, + StorageMap, StorageValue, }; use frame_system::{ensure_signed, EnsureRoot, EnsureSigned, RawOrigin}; use rand::Rng; @@ -77,7 +77,8 @@ impl Config for Runtime { type MaxSaltLength = MaxSaltLength; type StakingHandler = staking_handler::StakingManager; - type ManagerOrigin = EnsureOneOf, EnsureRoot>; + type ManagerOrigin = + EitherOfDiverse, EnsureRoot>; type VotePower = u64; diff --git a/runtime-modules/utility/src/tests/mocks.rs b/runtime-modules/utility/src/tests/mocks.rs index 27c465c672..19ccb71905 100644 --- a/runtime-modules/utility/src/tests/mocks.rs +++ b/runtime-modules/utility/src/tests/mocks.rs @@ -7,7 +7,9 @@ use common::working_group::{WorkingGroup, WorkingGroupBudgetHandler}; use frame_support::{ dispatch::DispatchError, parameter_types, - traits::{ConstU16, ConstU32, ConstU64, EnsureOneOf, LockIdentifier, OnFinalize, OnInitialize}, + traits::{ + ConstU16, ConstU32, ConstU64, EitherOfDiverse, LockIdentifier, OnFinalize, OnInitialize, + }, }; use frame_system::{EnsureRoot, EnsureSigned, EventRecord, RawOrigin}; use sp_core::H256; @@ -425,7 +427,8 @@ impl referendum::Config for Test { type RuntimeEvent = RuntimeEvent; type MaxSaltLength = MaxSaltLength; type StakingHandler = staking_handler::StakingManager; - type ManagerOrigin = EnsureOneOf, EnsureRoot>; + type ManagerOrigin = + EitherOfDiverse, EnsureRoot>; type VotePower = u64; type VoteStageDuration = VoteStageDuration; type RevealStageDuration = RevealStageDuration; From d86aab3665826f11d681d768c1a754eeeddcae6c Mon Sep 17 00:00:00 2001 From: Mokhtar Naamani Date: Thu, 16 Mar 2023 20:58:17 +0400 Subject: [PATCH 35/87] v0.9.39 - fix build of staking pallet during tests --- runtime-modules/proposals/codex/Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runtime-modules/proposals/codex/Cargo.toml b/runtime-modules/proposals/codex/Cargo.toml index 2d0168e404..09a7a68c9e 100644 --- a/runtime-modules/proposals/codex/Cargo.toml +++ b/runtime-modules/proposals/codex/Cargo.toml @@ -40,7 +40,7 @@ referendum = { package = 'pallet-referendum', default-features = false, path = ' council = { package = 'pallet-council', default-features = false, path = '../../council'} balances = { package = 'pallet-balances', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} frame-election-provider-support = { package = 'frame-election-provider-support', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} -pallet-bags-list = { package = 'pallet-bags-list', features = ["runtime-benchmarks"], git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +pallet-bags-list = { package = 'pallet-bags-list', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} sp-npos-elections = { package = 'sp-npos-elections', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} [features] From f279314cc53d100a8e20f381ea34b576187840a8 Mon Sep 17 00:00:00 2001 From: Mokhtar Naamani Date: Thu, 16 Mar 2023 23:14:28 +0400 Subject: [PATCH 36/87] v0.9.39 - clippy fixes --- bin/node/src/cli.rs | 1 + bin/utils/chain-spec-builder/src/main.rs | 2 +- runtime-modules/bounty/src/benchmarking.rs | 2 +- runtime-modules/bounty/src/lib.rs | 14 +-- runtime-modules/bounty/src/tests/fixtures.rs | 20 ++--- runtime-modules/bounty/src/tests/mocks.rs | 2 +- runtime-modules/bounty/src/tests/mod.rs | 88 +++++++++---------- .../content/src/benchmarks/benchmarking.rs | 18 ++-- runtime-modules/content/src/lib.rs | 24 ++--- .../content/src/permissions/mod.rs | 4 +- runtime-modules/content/src/tests/channels.rs | 8 +- runtime-modules/content/src/tests/fixtures.rs | 30 +++---- runtime-modules/content/src/tests/mock.rs | 19 ++-- runtime-modules/content/src/tests/videos.rs | 28 +++--- runtime-modules/forum/src/benchmarking.rs | 4 +- runtime-modules/forum/src/lib.rs | 4 +- runtime-modules/forum/src/mock.rs | 10 +-- .../membership/src/benchmarking.rs | 12 +-- runtime-modules/membership/src/lib.rs | 12 +-- .../membership/src/tests/fixtures.rs | 14 +-- runtime-modules/membership/src/tests/mock.rs | 9 +- runtime-modules/membership/src/tests/mod.rs | 6 +- .../proposals/codex/src/tests/mod.rs | 16 ++-- .../proposals/discussion/src/lib.rs | 4 +- .../proposals/discussion/src/tests/mock.rs | 4 +- runtime-modules/proposals/engine/src/lib.rs | 4 +- .../proposals/engine/src/tests/mod.rs | 4 +- .../referendum/src/benchmarking.rs | 10 +-- runtime-modules/referendum/src/lib.rs | 6 +- runtime-modules/referendum/src/mock.rs | 4 +- runtime-modules/referendum/src/tests.rs | 6 +- runtime-modules/staking-handler/src/lib.rs | 6 +- runtime-modules/storage/src/benchmarking.rs | 36 ++++---- runtime-modules/storage/src/lib.rs | 36 ++++---- runtime-modules/storage/src/tests/fixtures.rs | 8 +- runtime-modules/storage/src/tests/mod.rs | 58 ++++++------ .../working-group/src/tests/fixtures.rs | 2 +- runtime/src/tests/handle_fees.rs | 4 +- runtime/src/tests/locks.rs | 12 +-- runtime/src/tests/mod.rs | 16 ++-- .../src/tests/proposals_integration/mod.rs | 43 ++++----- .../working_group_proposals.rs | 2 +- 42 files changed, 286 insertions(+), 326 deletions(-) diff --git a/bin/node/src/cli.rs b/bin/node/src/cli.rs index d976534c21..ddc215595d 100644 --- a/bin/node/src/cli.rs +++ b/bin/node/src/cli.rs @@ -44,6 +44,7 @@ pub struct Cli { /// Possible subcommands of the main binary. #[derive(Debug, clap::Subcommand)] +#[allow(clippy::large_enum_variant)] pub enum Subcommand { /// The custom inspect subcommmand for decoding blocks and extrinsics. #[clap( diff --git a/bin/utils/chain-spec-builder/src/main.rs b/bin/utils/chain-spec-builder/src/main.rs index e8c3ae4f8e..fd9220593a 100644 --- a/bin/utils/chain-spec-builder/src/main.rs +++ b/bin/utils/chain-spec-builder/src/main.rs @@ -330,7 +330,7 @@ fn generate_chain_spec( }, vec![], telemetry_endpoints, - Some(&*"/joy/testnet/0"), + Some("/joy/testnet/0"), None, // Some(&*"joy"), Some(joy_chain_spec_properties()), Default::default(), diff --git a/runtime-modules/bounty/src/benchmarking.rs b/runtime-modules/bounty/src/benchmarking.rs index 1d135d5716..eecd81d4c6 100644 --- a/runtime-modules/bounty/src/benchmarking.rs +++ b/runtime-modules/bounty/src/benchmarking.rs @@ -52,7 +52,7 @@ fn assert_was_fired(generic_event: ::RuntimeEvent) { } fn get_byte(num: u128, byte_number: u8) -> u8 { - ((num & (0xff << (8 * byte_number))) >> (8 * byte_number) as u8) + ((num & (0xff << (8 * byte_number))) >> (8 * byte_number)) .try_into() .unwrap() } diff --git a/runtime-modules/bounty/src/lib.rs b/runtime-modules/bounty/src/lib.rs index a5745d60d5..2333cf0728 100644 --- a/runtime-modules/bounty/src/lib.rs +++ b/runtime-modules/bounty/src/lib.rs @@ -1675,7 +1675,7 @@ decl_module! { ) { let _ = BountyActorManager::::ensure_bounty_actor_manager(origin, contributor.clone())?; ensure!( - BountyContributions::::contains_key(&bounty_id, &contributor), + BountyContributions::::contains_key(bounty_id, &contributor), Error::::InvalidContributorActorSpecified, ); @@ -1813,7 +1813,7 @@ impl Module { bounty_funder_manager.transfer_funds_from_bounty_account(*bounty_id, withdrawal_amount); - >::remove(&bounty_id, &funder); + >::remove(bounty_id, &funder); Self::deposit_event(RawEvent::FunderStateBloatBondWithdrawn( *bounty_id, @@ -1834,7 +1834,7 @@ impl Module { .transfer_funds_from_bounty_account(*bounty_id, funding.funder_state_bloat_bond_amount); //Remove contribution from - >::remove(&bounty_id, &funder); + >::remove(bounty_id, &funder); Self::deposit_event(RawEvent::FunderStateBloatBondWithdrawn( *bounty_id, @@ -2036,11 +2036,11 @@ impl Module { funder: &BountyActor>, ) -> Result, DispatchError> { ensure!( - >::contains_key(&bounty_id, &funder), + >::contains_key(bounty_id, funder), Error::::NoBountyContributionFound, ); - let funding = >::get(&bounty_id, &funder); + let funding = >::get(bounty_id, funder); Ok(funding) } @@ -2146,10 +2146,10 @@ impl Module { //Check if is the first time a funder is contributiong //returns Contribution - match >::contains_key(&bounty_id, &funder) { + match >::contains_key(bounty_id, funder) { //Adds funds to an existing amount, is_first_contribution will be set to false true => ( - Self::contribution_by_bounty_by_actor(bounty_id, &funder), + Self::contribution_by_bounty_by_actor(bounty_id, funder), adjusted_amount, adjusted_amount, ), diff --git a/runtime-modules/bounty/src/tests/fixtures.rs b/runtime-modules/bounty/src/tests/fixtures.rs index 5e37997c94..94a25ee088 100644 --- a/runtime-modules/bounty/src/tests/fixtures.rs +++ b/runtime-modules/bounty/src/tests/fixtures.rs @@ -41,7 +41,7 @@ pub fn increase_total_balance_issuance_using_account_id(account_id: u128, balanc } pub fn increase_account_balance(account_id: &u128, balance: u64) { - let _ = Balances::deposit_creating(&account_id, balance); + let _ = Balances::deposit_creating(account_id, balance); } pub fn get_funder_state_bloat_bond_amount() -> u64 { @@ -263,7 +263,7 @@ impl CreateBountyFixture { if actual_result.is_ok() { assert_eq!(next_bounty_count_value, Bounty::bounty_count()); - assert!(>::contains_key(&bounty_id)); + assert!(>::contains_key(bounty_id)); let expected_milestone = match self.expected_milestone.clone() { Some(milestone) => milestone, @@ -284,7 +284,7 @@ impl CreateBountyFixture { assert_eq!(expected_bounty, Bounty::bounties(bounty_id)); } else { assert_eq!(next_bounty_count_value - 1, Bounty::bounty_count()); - assert!(!>::contains_key(&bounty_id)); + assert!(!>::contains_key(bounty_id)); } } } @@ -341,8 +341,8 @@ impl FundBountyFixture { let actual_result = Bounty::fund_bounty( self.origin.clone().into(), self.funder.clone(), - self.bounty_id.clone(), - self.amount.clone(), + self.bounty_id, + self.amount, ); assert_eq!(actual_result, expected_result); @@ -410,7 +410,7 @@ impl WithdrawFundingFixture { let actual_result = Bounty::withdraw_funding( self.origin.clone().into(), self.funder.clone(), - self.bounty_id.clone(), + self.bounty_id, ); assert_eq!(actual_result, expected_result); @@ -482,7 +482,7 @@ impl AnnounceWorkEntryFixture { assert_eq!(next_entry_count_value, Bounty::entry_count()); assert!(>::contains_key( self.bounty_id, - &entry_id + entry_id )); let expected_entry = Entry:: { @@ -504,7 +504,7 @@ impl AnnounceWorkEntryFixture { assert_eq!(next_entry_count_value - 1, Bounty::entry_count()); assert!(!>::contains_key( self.bounty_id, - &entry_id + entry_id )); assert_eq!( @@ -773,7 +773,7 @@ impl WithdrawEntrantStakeFixture { if actual_result.is_ok() { assert!(!>::contains_key( self.bounty_id, - &self.entry_id + self.entry_id )); if >::contains_key(self.bounty_id) { @@ -806,7 +806,7 @@ impl WithdrawOracleRewardFixture { pub fn call_and_assert(&self, expected_result: DispatchResult) { let actual_result = - Bounty::withdraw_oracle_reward(self.origin.clone().into(), self.bounty_id.clone()); + Bounty::withdraw_oracle_reward(self.origin.clone().into(), self.bounty_id); assert_eq!(actual_result, expected_result); } diff --git a/runtime-modules/bounty/src/tests/mocks.rs b/runtime-modules/bounty/src/tests/mocks.rs index cac39b2c65..3c960c309c 100644 --- a/runtime-modules/bounty/src/tests/mocks.rs +++ b/runtime-modules/bounty/src/tests/mocks.rs @@ -360,7 +360,7 @@ impl referendum::Config for Test { .iter() .map(|item| referendum::OptionResult { option_id: item.option_id, - vote_power: item.vote_power.into(), + vote_power: item.vote_power, }) .collect(); as council::ReferendumConnection>::recieve_referendum_results( diff --git a/runtime-modules/bounty/src/tests/mod.rs b/runtime-modules/bounty/src/tests/mod.rs index 4a095bad87..3d8865e794 100644 --- a/runtime-modules/bounty/src/tests/mod.rs +++ b/runtime-modules/bounty/src/tests/mod.rs @@ -538,11 +538,11 @@ fn terminate_bounty_by_creator_succeeds() { EventFixture::contains_crate_event(RawEvent::BountyRemoved(bounty_id)); assert!(!>::contains_key( - &bounty_id, + bounty_id, BountyActor::Member(member_id) )); - assert!(!>::contains_key(&bounty_id)); + assert!(!>::contains_key(bounty_id)); }); } @@ -588,7 +588,7 @@ fn terminate_bounty_w_oracle_reward_funding_expired_succeeds() { BountyActor::Council, )); - assert!(>::contains_key(&bounty_id)); + assert!(>::contains_key(bounty_id)); let bounty = Bounty::ensure_bounty_exists(&bounty_id).unwrap(); assert_eq!( Bounty::get_bounty_stage(&bounty), @@ -637,11 +637,11 @@ fn terminate_bounty_wo_oracle_reward_funding_expired_succeeds() { EventFixture::contains_crate_event(RawEvent::BountyRemoved(bounty_id)); assert!(!>::contains_key( - &bounty_id, + bounty_id, BountyActor::Council )); - assert!(!>::contains_key(&bounty_id)); + assert!(!>::contains_key(bounty_id)); }); } @@ -688,7 +688,7 @@ fn terminate_bounty_w_oracle_reward_wo_funds_funding_succeeds() { BountyActor::Council, )); - assert!(>::contains_key(&bounty_id)); + assert!(>::contains_key(bounty_id)); let bounty = Bounty::ensure_bounty_exists(&bounty_id).unwrap(); assert_eq!( @@ -740,11 +740,11 @@ fn terminate_bounty_wo_oracle_reward_wo_funds_funding_succeeds() { EventFixture::contains_crate_event(RawEvent::BountyRemoved(bounty_id)); assert!(!>::contains_key( - &bounty_id, + bounty_id, BountyActor::Council )); - assert!(!>::contains_key(&bounty_id)); + assert!(!>::contains_key(bounty_id)); }); } @@ -802,7 +802,7 @@ fn terminate_bounty_w_oracle_reward_w_funds_funding_succeeds() { BountyActor::Council, )); - assert!(>::contains_key(&bounty_id)); + assert!(>::contains_key(bounty_id)); let bounty = Bounty::ensure_bounty_exists(&bounty_id).unwrap(); assert_eq!( @@ -864,7 +864,7 @@ fn terminate_bounty_wo_oracle_reward_w_funds_funding_succeeds() { BountyActor::Council, )); - assert!(>::contains_key(&bounty_id)); + assert!(>::contains_key(bounty_id)); let bounty = Bounty::ensure_bounty_exists(&bounty_id).unwrap(); assert_eq!( @@ -1242,7 +1242,7 @@ fn terminate_bounty_fails_with_invalid_stage() { SubmitJudgmentFixture::default() .with_bounty_id(bounty_id) - .with_judgment(judgment.clone()) + .with_judgment(judgment) .call_and_assert(Ok(())); TerminateBountyFixture::default().call_and_assert(Err( @@ -1734,7 +1734,7 @@ fn fund_bounty_fails_with_invalid_stage() { SubmitJudgmentFixture::default() .with_bounty_id(bounty_id) - .with_judgment(judgment.clone()) + .with_judgment(judgment) .call_and_assert(Ok(())); FundBountyFixture::default() @@ -2100,7 +2100,7 @@ fn end_working_period_invalid_stage_fails() { SubmitJudgmentFixture::default() .with_bounty_id(bounty_id) - .with_judgment(judgment.clone()) + .with_judgment(judgment) .call_and_assert(Ok(())); EndWorkPeriodFixture::default() @@ -2236,7 +2236,7 @@ fn withdraw_funding_member_with_failed_bounty_with_no_removal() { get_funder_state_bloat_bond_amount(), )); - assert!(>::contains_key(&bounty_id)); + assert!(>::contains_key(bounty_id)); }); } @@ -2298,7 +2298,7 @@ fn withdraw_funding_council_with_failed_bounty_with_no_removal() { get_funder_state_bloat_bond_amount(), )); - assert!(>::contains_key(&bounty_id)); + assert!(>::contains_key(bounty_id)); }); } @@ -2363,11 +2363,11 @@ fn withdraw_funding_member_with_failed_bounty_with_removal() { EventFixture::assert_last_crate_event(RawEvent::BountyRemoved(bounty_id)); assert!(!>::contains_key( - &bounty_id, + bounty_id, BountyActor::Member(member_id) )); - assert!(!>::contains_key(&bounty_id)); + assert!(!>::contains_key(bounty_id)); }); } @@ -2846,7 +2846,7 @@ fn withdraw_funding_state_bloat_bond_with_successful_bounty_with_no_removal() { get_funder_state_bloat_bond_amount(), )); - assert!(>::contains_key(&bounty_id)); + assert!(>::contains_key(bounty_id)); }); } @@ -2997,16 +2997,16 @@ fn withdraw_funding_state_bloat_bond_with_successful_bounty_removal() { EventFixture::assert_last_crate_event(RawEvent::BountyRemoved(bounty_id)); assert!(!>::contains_key( - &bounty_id, + bounty_id, BountyActor::Member(funder_member_id) )); assert!(!>::contains_key( - &bounty_id, + bounty_id, BountyActor::Council )); - assert!(!>::contains_key(&bounty_id)); + assert!(!>::contains_key(bounty_id)); }); } @@ -3306,7 +3306,7 @@ fn announce_work_entry_fails_with_invalid_stage() { SubmitJudgmentFixture::default() .with_bounty_id(bounty_id) - .with_judgment(judgment.clone()) + .with_judgment(judgment) .call_and_assert(Ok(())); AnnounceWorkEntryFixture::default().call_and_assert(Err( @@ -3670,7 +3670,7 @@ fn submit_work_fails_with_invalid_stage() { SubmitJudgmentFixture::default() .with_bounty_id(bounty_id) - .with_judgment(judgment.clone()) + .with_judgment(judgment) .call_and_assert(Ok(())); SubmitWorkFixture::default() @@ -3803,7 +3803,7 @@ fn submit_judgment_by_member_succeeded() { .with_origin(RawOrigin::Signed(work_account_id_1)) .with_member_id(work_member_id_1) .with_entry_id(entry_id_1) - .with_work_data(work_data.clone()) + .with_work_data(work_data) .call_and_assert(Ok(())); EndWorkPeriodFixture::default() @@ -3916,7 +3916,7 @@ fn submit_judgment_by_council_succeeded_with_complex_judgment() { .with_origin(RawOrigin::Signed(worker_account_id_1)) .with_member_id(worker_member_id_1) .with_entry_id(entry_id_1) - .with_work_data(work_data.clone()) + .with_work_data(work_data) .call_and_assert(Ok(())); let worker_member_id_2 = 2; @@ -3937,7 +3937,7 @@ fn submit_judgment_by_council_succeeded_with_complex_judgment() { .with_origin(RawOrigin::Signed(worker_account_id_2)) .with_member_id(worker_member_id_2) .with_entry_id(entry_id_2) - .with_work_data(work_data.clone()) + .with_work_data(work_data) .call_and_assert(Ok(())); let worker_member_id_3 = 3; @@ -4116,7 +4116,7 @@ fn submit_judgment_by_member_succeeded_with_complex_judgment() { .with_origin(RawOrigin::Signed(worker_account_id_1)) .with_member_id(worker_member_id_1) .with_entry_id(entry_id_1) - .with_work_data(work_data.clone()) + .with_work_data(work_data) .call_and_assert(Ok(())); let worker_member_id_2 = 2; @@ -4137,7 +4137,7 @@ fn submit_judgment_by_member_succeeded_with_complex_judgment() { .with_origin(RawOrigin::Signed(worker_account_id_2)) .with_member_id(worker_member_id_2) .with_entry_id(entry_id_2) - .with_work_data(work_data.clone()) + .with_work_data(work_data) .call_and_assert(Ok(())); let worker_member_id_3 = 3; @@ -4323,7 +4323,7 @@ fn submit_judgment_dont_return_cherry_on_unsuccessful_bounty() { .with_origin(RawOrigin::Signed(worker_account_id)) .with_member_id(worker_member_id) .with_entry_id(entry_id) - .with_work_data(work_data.clone()) + .with_work_data(work_data) .call_and_assert(Ok(())); EndWorkPeriodFixture::default() @@ -4623,7 +4623,7 @@ fn submit_judgment_fails_with_invalid_stage() { SubmitJudgmentFixture::default() .with_bounty_id(bounty_id) - .with_judgment(judgment.clone()) + .with_judgment(judgment) .call_and_assert(Ok(())); SubmitJudgmentFixture::default().call_and_assert(Err( @@ -4687,7 +4687,7 @@ fn submit_judgment_fails_with_invalid_judgment() { .with_origin(RawOrigin::Signed(account_id)) .with_member_id(member_id) .with_entry_id(entry_id) - .with_work_data(work_data.clone()) + .with_work_data(work_data) .call_and_assert(Ok(())); EndWorkPeriodFixture::default() @@ -5311,7 +5311,7 @@ fn withdraw_entrant_stake_succeeds_after_terminating_in_working_period() { worker_account_id_2, )); - assert!(Bounties::::contains_key(&bounty_id)); + assert!(Bounties::::contains_key(bounty_id)); }); } @@ -5450,7 +5450,7 @@ fn withdraw_entrant_stake_succeeds_after_terminating_in_judging_period() { entry_id_2, worker_account_id_2, )); - assert!(Bounties::::contains_key(&bounty_id)); + assert!(Bounties::::contains_key(bounty_id)); }); } @@ -5594,7 +5594,7 @@ fn withdraw_entrant_stake_succeeds_after_judging() { entry_id_2, worker_account_id_2, )); - assert!(Bounties::::contains_key(&bounty_id)); + assert!(Bounties::::contains_key(bounty_id)); }); } @@ -5867,11 +5867,11 @@ fn withdraw_oracle_reward_cancelled_bounty_succeeds() { BountyActor::Council, )); - assert!(>::contains_key(&bounty_id)); + assert!(>::contains_key(bounty_id)); WithdrawOracleRewardFixture::default().call_and_assert(Ok(())); - assert!(!>::contains_key(&bounty_id)); + assert!(!>::contains_key(bounty_id)); EventFixture::contains_crate_event(RawEvent::BountyOracleRewardWithdrawal( bounty_id, @@ -5888,11 +5888,11 @@ fn withdraw_oracle_reward_cancelled_bounty_succeeds() { EventFixture::assert_last_crate_event(RawEvent::BountyRemoved(bounty_id)); assert!(!>::contains_key( - &bounty_id, + bounty_id, BountyActor::Council )); - assert!(!>::contains_key(&bounty_id)); + assert!(!>::contains_key(bounty_id)); }); } @@ -5972,7 +5972,7 @@ fn withdraw_oracle_reward_successful_bounty_succeeds() { WithdrawOracleRewardFixture::default().call_and_assert(Ok(())); - assert!(!>::contains_key(&bounty_id)); + assert!(!>::contains_key(bounty_id)); EventFixture::contains_crate_event(RawEvent::BountyOracleRewardWithdrawal( bounty_id, @@ -5989,11 +5989,11 @@ fn withdraw_oracle_reward_successful_bounty_succeeds() { EventFixture::assert_last_crate_event(RawEvent::BountyRemoved(bounty_id)); assert!(!>::contains_key( - &bounty_id, + bounty_id, BountyActor::Council )); - assert!(!>::contains_key(&bounty_id)); + assert!(!>::contains_key(bounty_id)); }); } @@ -6036,7 +6036,7 @@ fn withdraw_oracle_reward_failed_bounty_succeeds() { .with_origin(RawOrigin::Signed(oracle_account_id)) .call_and_assert(Ok(())); - assert!(!>::contains_key(&bounty_id)); + assert!(!>::contains_key(bounty_id)); EventFixture::contains_crate_event(RawEvent::BountyOracleRewardWithdrawal( bounty_id, @@ -6053,11 +6053,11 @@ fn withdraw_oracle_reward_failed_bounty_succeeds() { EventFixture::assert_last_crate_event(RawEvent::BountyRemoved(bounty_id)); assert!(!>::contains_key( - &bounty_id, + bounty_id, BountyActor::Council )); - assert!(!>::contains_key(&bounty_id)); + assert!(!>::contains_key(bounty_id)); }); } diff --git a/runtime-modules/content/src/benchmarks/benchmarking.rs b/runtime-modules/content/src/benchmarks/benchmarking.rs index 4d6d958bec..bb9d67fa57 100644 --- a/runtime-modules/content/src/benchmarks/benchmarking.rs +++ b/runtime-modules/content/src/benchmarks/benchmarking.rs @@ -84,7 +84,7 @@ benchmarks! { verify { let channel_id: T::ChannelId = One::one(); - assert!(ChannelById::::contains_key(&channel_id)); + assert!(ChannelById::::contains_key(channel_id)); let channel = ChannelById::::get(channel_id); let channel_acc = ContentTreasury::::account_for_channel(channel_id); @@ -178,7 +178,7 @@ benchmarks! { origin, actor, channel_id, update_params.clone()) verify { - assert!(ChannelById::::contains_key(&channel_id)); + assert!(ChannelById::::contains_key(channel_id)); assert_last_event::( ::RuntimeEvent::from( @@ -248,7 +248,7 @@ benchmarks! { origin, actor, channel_id, update_params.clone()) verify { - assert!(ChannelById::::contains_key(&channel_id)); + assert!(ChannelById::::contains_key(channel_id)); assert_last_event::( ::RuntimeEvent::from( @@ -657,7 +657,7 @@ benchmarks! { */ create_curator_group { - let a in 0 .. (T::MaxKeysPerCuratorGroupPermissionsByLevelMap::get() as u32); + let a in 0 .. T::MaxKeysPerCuratorGroupPermissionsByLevelMap::get(); let (_, lead_account) = insert_content_leader::(); let group_id = Pallet::::next_curator_group_id(); @@ -680,7 +680,7 @@ benchmarks! { } update_curator_group_permissions { - let a in 0 .. (T::MaxKeysPerCuratorGroupPermissionsByLevelMap::get() as u32); + let a in 0 .. T::MaxKeysPerCuratorGroupPermissionsByLevelMap::get(); let (_, lead_account) = insert_content_leader::(); let group_id = setup_worst_case_curator_group_with_curators::( @@ -1215,7 +1215,7 @@ benchmarks! { */ initialize_channel_transfer { - let a in 0 .. (T::MaxNumberOfCollaboratorsPerChannel::get() as u32); + let a in 0 .. T::MaxNumberOfCollaboratorsPerChannel::get(); let (_, new_owner_id) = member_funded_account::(); let new_owner = ChannelOwner::Member(new_owner_id); let new_collaborators = worst_case_scenario_collaborators::( @@ -1287,7 +1287,7 @@ benchmarks! { } accept_channel_transfer_curator_to_curator { - let a in 0 .. (T::MaxNumberOfCollaboratorsPerChannel::get() as u32); + let a in 0 .. T::MaxNumberOfCollaboratorsPerChannel::get(); let (channel_id, group_id, lead_account_id, _, _) = setup_worst_case_scenario_curator_channel_all_max::(false)?; @@ -1339,7 +1339,7 @@ benchmarks! { } accept_channel_transfer_member_to_curator { - let a in 0 .. (T::MaxNumberOfCollaboratorsPerChannel::get() as u32); + let a in 0 .. T::MaxNumberOfCollaboratorsPerChannel::get(); let (channel_id, member_id, member_account_id, content_lead_acc_id) = setup_worst_case_scenario_member_channel_all_max::(false)?; @@ -1392,7 +1392,7 @@ benchmarks! { } accept_channel_transfer_member_to_member { - let a in 0 .. (T::MaxNumberOfCollaboratorsPerChannel::get() as u32); + let a in 0 .. T::MaxNumberOfCollaboratorsPerChannel::get(); let (channel_id, member_id, member_account_id, content_lead_acc_id) = setup_worst_case_scenario_member_channel_all_max::(false)?; diff --git a/runtime-modules/content/src/lib.rs b/runtime-modules/content/src/lib.rs index b5e39a9882..3d5a92cd25 100644 --- a/runtime-modules/content/src/lib.rs +++ b/runtime-modules/content/src/lib.rs @@ -1303,7 +1303,7 @@ decl_module! { ChannelById::::mutate(channel_id, |channel| { Self::increment_nft_counters(channel); }); - VideoById::::mutate(&video_id, |video| video.nft_status = nft_status); + VideoById::::mutate(video_id, |video| video.nft_status = nft_status); } Self::deposit_event(RawEvent::VideoUpdated(actor, video_id, params, new_data_objects_ids)); @@ -2539,7 +2539,7 @@ decl_module! { Self::withdraw_bid_payment(&participant_account_id, old_bid.amount)?; // remove - OpenAuctionBidByVideoAndMember::::remove(&video_id, &participant_id); + OpenAuctionBidByVideoAndMember::::remove(video_id, participant_id); // Trigger event Self::deposit_event(RawEvent::AuctionBidCanceled(participant_id, video_id)); @@ -3083,7 +3083,7 @@ decl_module! { // ChannelById::::mutate( - &channel_id, + channel_id, |channel| channel.transfer_status = ChannelTransferStatus::PendingTransfer(pending_transfer.clone()) ); @@ -3118,7 +3118,7 @@ decl_module! { if channel.transfer_status.is_pending() { ChannelById::::mutate( - &channel_id, + channel_id, |channel| { channel.transfer_status = ChannelTransferStatus::NoActiveTransfer; }); @@ -3170,7 +3170,7 @@ decl_module! { Self::pay_for_channel_swap(&channel.owner, &new_owner, commitment_params.price)?; } - ChannelById::::mutate(&channel_id, |channel| { + ChannelById::::mutate(channel_id, |channel| { channel.transfer_status = ChannelTransferStatus::NoActiveTransfer; channel.owner = new_owner; channel.collaborators = new_collaborators; @@ -3295,7 +3295,7 @@ decl_module! { // == MUTATION SAFE == // - ChannelById::::mutate(&channel_id, |channel| { + ChannelById::::mutate(channel_id, |channel| { channel.creator_token_id = Some(token_id); }); @@ -3753,7 +3753,7 @@ decl_module! { // == MUTATION SAFE == // - ChannelById::::mutate(&channel_id, |channel| { + ChannelById::::mutate(channel_id, |channel| { channel.creator_token_id = None; }); } @@ -4385,7 +4385,7 @@ impl Module { amount: BalanceOf, ) { T::CouncilBudgetManager::withdraw(reward_account, amount); - ChannelById::::mutate(&channel_id, |channel| { + ChannelById::::mutate(channel_id, |channel| { channel.cumulative_reward_claimed = channel.cumulative_reward_claimed.saturating_add(amount) }); @@ -4552,10 +4552,10 @@ impl Module { let a = (*num_objects_to_delete) as u32; //channel_bag_witness storage_buckets_num - let b = (*channel_bag_witness).storage_buckets_num; + let b = channel_bag_witness.storage_buckets_num; //channel_bag_witness distribution_buckets_num - let c = (*channel_bag_witness).distribution_buckets_num; + let c = channel_bag_witness.distribution_buckets_num; WeightInfoContent::::delete_channel(a, b, c) } @@ -4731,10 +4731,10 @@ impl Module { let a = (*num_objects_to_delete) as u32; //channel_bag_witness storage_buckets_num - let b = (*channel_bag_witness).storage_buckets_num; + let b = channel_bag_witness.storage_buckets_num; //channel_bag_witness distribution_buckets_num - let c = (*channel_bag_witness).distribution_buckets_num; + let c = channel_bag_witness.distribution_buckets_num; //rationale let d = to_kb((*rationale).len() as u32); diff --git a/runtime-modules/content/src/permissions/mod.rs b/runtime-modules/content/src/permissions/mod.rs index 1db649fe3f..020832727c 100644 --- a/runtime-modules/content/src/permissions/mod.rs +++ b/runtime-modules/content/src/permissions/mod.rs @@ -372,7 +372,7 @@ pub fn ensure_actor_has_channel_permissions( ContentActor::Lead => ensure_channel_is_owned_by_curators::(channel).map(|_| None), ContentActor::Curator(curator_group_id, curator_id) => { ensure_channel_is_owned_by_curator_group::(channel, curator_group_id)?; - let group = Module::::curator_group_by_id(&curator_group_id); + let group = Module::::curator_group_by_id(curator_group_id); let agent_permissions = group.get_existing_group_member_channel_agent_permissions::(curator_id)?; ensure_agent_has_required_permissions::(agent_permissions, required_permissions)?; @@ -530,7 +530,7 @@ pub fn ensure_actor_authorized_to_perform_moderation_actions( match actor { ContentActor::Lead => Ok(()), ContentActor::Curator(curator_group_id, ..) => { - let group = Module::::curator_group_by_id(&curator_group_id); + let group = Module::::curator_group_by_id(curator_group_id); group.ensure_group_member_can_perform_moderation_actions::( actions, channel_privilege_level, diff --git a/runtime-modules/content/src/tests/channels.rs b/runtime-modules/content/src/tests/channels.rs index b280ab1649..0dc4904889 100644 --- a/runtime-modules/content/src/tests/channels.rs +++ b/runtime-modules/content/src/tests/channels.rs @@ -598,9 +598,7 @@ fn unsuccessful_channel_update_with_invalid_objects_id_to_remove() { UpdateChannelFixture::default() .with_sender(DEFAULT_MEMBER_ACCOUNT_ID) .with_actor(ContentActor::Member(DEFAULT_MEMBER_ID)) - .with_assets_to_remove( - ((DATA_OBJECTS_NUMBER as u64)..(2 * DATA_OBJECTS_NUMBER as u64)).collect(), - ) + .with_assets_to_remove((DATA_OBJECTS_NUMBER..(2 * DATA_OBJECTS_NUMBER)).collect()) .call_and_assert(Err( Error::::AssetsToRemoveBeyondEntityAssetsSet.into() )); @@ -1308,11 +1306,11 @@ fn unsuccessful_moderation_action_channel_deletion_with_invalid_num_objects_to_d DeleteChannelAsModeratorFixture::default() .with_sender(DEFAULT_CURATOR_ACCOUNT_ID) .with_actor(ContentActor::Curator(group_id, DEFAULT_CURATOR_ID)) - .with_num_objects_to_delete(DATA_OBJECTS_NUMBER as u64 - 1) + .with_num_objects_to_delete(DATA_OBJECTS_NUMBER - 1) .call_and_assert(Err(Error::::InvalidBagSizeSpecified.into())); // As lead DeleteChannelAsModeratorFixture::default() - .with_num_objects_to_delete(DATA_OBJECTS_NUMBER as u64 - 1) + .with_num_objects_to_delete(DATA_OBJECTS_NUMBER - 1) .call_and_assert(Err(Error::::InvalidBagSizeSpecified.into())); }) } diff --git a/runtime-modules/content/src/tests/fixtures.rs b/runtime-modules/content/src/tests/fixtures.rs index 9e25e725de..381f10fbf2 100644 --- a/runtime-modules/content/src/tests/fixtures.rs +++ b/runtime-modules/content/src/tests/fixtures.rs @@ -245,7 +245,7 @@ impl CreateChannelFixture { if actual_result.is_ok() { // ensure channel is on chain - assert!(ChannelById::::contains_key(&channel_id)); + assert!(ChannelById::::contains_key(channel_id)); // channel counter increased assert_eq!( @@ -312,7 +312,7 @@ impl CreateChannelFixture { ) }, self.params.clone(), - channel_account.clone() + channel_account )) ); @@ -335,7 +335,7 @@ impl CreateChannelFixture { assert_eq!(balance_post, balance_pre); assert_eq!(beg_obj_id, end_obj_id); assert!(!storage::Bags::::contains_key(&channel_bag_id)); - assert!(!ChannelById::::contains_key(&channel_id)); + assert!(!ChannelById::::contains_key(channel_id)); assert_eq!(NextChannelId::::get(), channel_id); } } @@ -501,7 +501,7 @@ impl CreateVideoFixture { assert_eq!(actual_result, expected_result); if actual_result.is_ok() { - assert!(VideoById::::contains_key(&video_id)); + assert!(VideoById::::contains_key(video_id)); assert_eq!( Content::next_video_id(), @@ -547,7 +547,7 @@ impl CreateVideoFixture { })); } } else { - assert!(!VideoById::::contains_key(&video_id)); + assert!(!VideoById::::contains_key(video_id)); assert_eq!(Content::next_video_id(), video_id); @@ -1211,7 +1211,7 @@ pub trait ChannelDeletion { self.expected_event_on_success() ); - assert!(!>::contains_key(&self.get_channel_id())); + assert!(!>::contains_key(self.get_channel_id())); assert!(!channel_objects_ids.iter().any(|id| { storage::DataObjectsById::::contains_key(&bag_id_for_channel, id) })); @@ -1247,7 +1247,7 @@ impl DeleteChannelFixture { actor: ContentActor::Member(DEFAULT_MEMBER_ID), channel_id: ChannelId::one(), channel_bag_witness: channel_bag_witness(ChannelId::one()), - num_objects_to_delete: DATA_OBJECTS_NUMBER as u64, + num_objects_to_delete: DATA_OBJECTS_NUMBER, } } @@ -1336,7 +1336,7 @@ impl DeleteChannelAsModeratorFixture { actor: ContentActor::Lead, channel_id: ChannelId::one(), channel_bag_witness: channel_bag_witness(ChannelId::one()), - num_objects_to_delete: DATA_OBJECTS_NUMBER as u64, + num_objects_to_delete: DATA_OBJECTS_NUMBER, rationale: b"rationale".to_vec(), } } @@ -1453,7 +1453,7 @@ impl SetChannelPausedFeaturesAsModeratorFixture { } pub fn call_and_assert(&self, expected_result: DispatchResult) { - let channel_pre = ChannelById::::get(&self.channel_id); + let channel_pre = ChannelById::::get(self.channel_id); let actual_result = Content::set_channel_paused_features_as_moderator( RuntimeOrigin::signed(self.sender), @@ -1465,7 +1465,7 @@ impl SetChannelPausedFeaturesAsModeratorFixture { assert_eq!(actual_result, expected_result); - let channel_post = ChannelById::::get(&self.channel_id); + let channel_post = ChannelById::::get(self.channel_id); if actual_result.is_ok() { assert_eq!(channel_post.paused_features, self.new_paused_features); @@ -1739,7 +1739,7 @@ pub trait VideoDeletion { fn call_and_assert(&self, expected_result: DispatchResult) { let storage_root_pre = storage_root(StateVersion::V1); - let video_pre = >::get(&self.get_video_id()); + let video_pre = >::get(self.get_video_id()); let video_bloat_bond_reciever = video_pre .video_state_bloat_bond .get_recipient(self.get_sender()); @@ -2067,7 +2067,7 @@ impl UpdateChannelPayoutsFixture { .payload .as_ref() .map(|_| snapshot_pre.next_object_id), - self.uploader_account.clone() + self.uploader_account )) ); if let Some(commitment) = self.params.commitment { @@ -2137,7 +2137,7 @@ impl UpdateChannelPayoutsFixture { let actual_result = Content::update_channel_payouts( self.origin.clone(), self.params.clone(), - self.uploader_account.clone(), + self.uploader_account, ); let snapshot_post = self.get_state_snapshot(); @@ -5807,7 +5807,7 @@ pub fn set_invitation_lock( amount: BalanceOf, ) { ::InvitedMemberStakingHandler::lock_with_reasons( - &who, + who, amount, WithdrawReasons::except(WithdrawReasons::TRANSACTION_PAYMENT), ); @@ -5817,5 +5817,5 @@ pub fn set_staking_candidate_lock( who: &::AccountId, amount: BalanceOf, ) { - ::StakingCandidateStakingHandler::lock(&who, amount); + ::StakingCandidateStakingHandler::lock(who, amount); } diff --git a/runtime-modules/content/src/tests/mock.rs b/runtime-modules/content/src/tests/mock.rs index 4ef548eec2..7a05774882 100644 --- a/runtime-modules/content/src/tests/mock.rs +++ b/runtime-modules/content/src/tests/mock.rs @@ -231,16 +231,11 @@ impl ContentActorAuthenticator for Test { type CuratorGroupId = u64; fn validate_member_id(member_id: &Self::MemberId) -> bool { - if Membership::membership(member_id).is_some() + Membership::membership(member_id).is_some() || MEMBER_IDS.contains(member_id) || COLABORATOR_IDS.contains(member_id) || CURATOR_IDS.contains(member_id) || LEAD_MEMBER_ID == *member_id - { - true - } else { - false - } } fn get_leader_member_id() -> Option { @@ -248,7 +243,7 @@ impl ContentActorAuthenticator for Test { } fn get_curator_member_id(curator_id: &Self::CuratorId) -> Option { - ContentWorkingGroup::get_worker_member_id(curator_id).or_else(|| match *curator_id { + ContentWorkingGroup::get_worker_member_id(curator_id).or(match *curator_id { DEFAULT_CURATOR_ID => Some(DEFAULT_CURATOR_MEMBER_ID), UNAUTHORIZED_CURATOR_ID => Some(UNAUTHORIZED_CURATOR_MEMBER_ID), _ => None, @@ -542,8 +537,8 @@ impl common::membership::MemberOriginValidator for () } fn is_member_controller_account(member_id: &u64, account_id: &U256) -> bool { - return Membership::is_member_controller_account(member_id, account_id) - || TestMemberships::is_member_controller_account(member_id, account_id); + Membership::is_member_controller_account(member_id, account_id) + || TestMemberships::is_member_controller_account(member_id, account_id) } } thread_local! { @@ -899,9 +894,9 @@ impl MemberOriginValidator for TestMemberships { fn is_member_controller_account(member_id: &u64, account_id: &U256) -> bool { Membership::is_member_controller_account(member_id, account_id) - || MEMBER_IDS.contains(&member_id) - || COLABORATOR_IDS.contains(&member_id) - || CURATOR_IDS.contains(&member_id) + || MEMBER_IDS.contains(member_id) + || COLABORATOR_IDS.contains(member_id) + || CURATOR_IDS.contains(member_id) || LEAD_MEMBER_ID == *member_id } } diff --git a/runtime-modules/content/src/tests/videos.rs b/runtime-modules/content/src/tests/videos.rs index 0847faee66..b8f1793e55 100644 --- a/runtime-modules/content/src/tests/videos.rs +++ b/runtime-modules/content/src/tests/videos.rs @@ -720,8 +720,8 @@ fn successful_video_update_by_member_with_assets_removal() { create_initial_storage_buckets_helper(); increase_account_balance_helper(DEFAULT_MEMBER_ACCOUNT_ID, INITIAL_BALANCE); create_default_member_owned_channel_with_video(); - let video_assets = ((DATA_OBJECTS_NUMBER as u64)..(2 * DATA_OBJECTS_NUMBER as u64 - 1)) - .collect::>(); + let video_assets = + (DATA_OBJECTS_NUMBER..(2 * DATA_OBJECTS_NUMBER - 1)).collect::>(); UpdateVideoFixture::default() .with_assets_to_remove(video_assets) @@ -737,8 +737,8 @@ fn unsuccessful_video_update_with_pending_channel_transfer() { create_initial_storage_buckets_helper(); increase_account_balance_helper(DEFAULT_MEMBER_ACCOUNT_ID, INITIAL_BALANCE); create_default_member_owned_channel_with_video(); - let video_assets = ((DATA_OBJECTS_NUMBER as u64)..(2 * DATA_OBJECTS_NUMBER as u64 - 1)) - .collect::>(); + let video_assets = + (DATA_OBJECTS_NUMBER..(2 * DATA_OBJECTS_NUMBER - 1)).collect::>(); InitializeChannelTransferFixture::default() .with_new_member_channel_owner(DEFAULT_MEMBER_ID) @@ -778,8 +778,8 @@ fn successful_video_update_by_collaborator_with_assets_removal() { create_default_member_owned_channel_with_video_with_collaborator_permissions(&[ ChannelActionPermission::ManageVideoAssets, ]); - let video_assets = ((DATA_OBJECTS_NUMBER as u64)..(2 * DATA_OBJECTS_NUMBER as u64 - 1)) - .collect::>(); + let video_assets = + (DATA_OBJECTS_NUMBER..(2 * DATA_OBJECTS_NUMBER - 1)).collect::>(); UpdateVideoFixture::default() .with_sender(COLLABORATOR_MEMBER_ACCOUNT_ID) @@ -798,8 +798,8 @@ fn successful_video_update_by_lead_with_assets_removal() { increase_account_balance_helper(DEFAULT_CURATOR_ACCOUNT_ID, INITIAL_BALANCE); increase_account_balance_helper(LEAD_ACCOUNT_ID, INITIAL_BALANCE); create_default_curator_owned_channel_with_video(DEFAULT_DATA_OBJECT_STATE_BLOAT_BOND, &[]); - let video_assets = ((DATA_OBJECTS_NUMBER as u64)..(2 * DATA_OBJECTS_NUMBER as u64 - 1)) - .collect::>(); + let video_assets = + (DATA_OBJECTS_NUMBER..(2 * DATA_OBJECTS_NUMBER - 1)).collect::>(); UpdateVideoFixture::default() .with_sender(LEAD_ACCOUNT_ID) @@ -817,8 +817,8 @@ fn successful_video_update_by_curator_with_assets_removal() { .with_agent_permissions(&[ChannelActionPermission::ManageVideoAssets]) .setup(); - let video_assets = ((DATA_OBJECTS_NUMBER as u64)..(2 * DATA_OBJECTS_NUMBER as u64 - 1)) - .collect::>(); + let video_assets = + (DATA_OBJECTS_NUMBER..(2 * DATA_OBJECTS_NUMBER - 1)).collect::>(); UpdateVideoFixture::default() .with_sender(DEFAULT_CURATOR_ACCOUNT_ID) @@ -1152,8 +1152,8 @@ fn unsuccessful_video_update_with_assets_to_remove_and_invalid_storage_buckets_n with_default_mock_builder(|| { ContentTest::with_member_channel().with_video().setup(); - let video_assets = ((DATA_OBJECTS_NUMBER as u64)..(2 * DATA_OBJECTS_NUMBER as u64 - 1)) - .collect::>(); + let video_assets = + (DATA_OBJECTS_NUMBER..(2 * DATA_OBJECTS_NUMBER - 1)).collect::>(); UpdateVideoFixture::default() .with_assets_to_remove(video_assets) @@ -1169,8 +1169,8 @@ fn unsuccessful_video_update_with_assets_to_remove_and_missing_storage_buckets_n with_default_mock_builder(|| { ContentTest::with_member_channel().with_video().setup(); - let video_assets = ((DATA_OBJECTS_NUMBER as u64)..(2 * DATA_OBJECTS_NUMBER as u64 - 1)) - .collect::>(); + let video_assets = + (DATA_OBJECTS_NUMBER..(2 * DATA_OBJECTS_NUMBER - 1)).collect::>(); UpdateVideoFixture::default() .with_assets_to_remove(video_assets) diff --git a/runtime-modules/forum/src/benchmarking.rs b/runtime-modules/forum/src/benchmarking.rs index e73b51b783..f2a88c442b 100644 --- a/runtime-modules/forum/src/benchmarking.rs +++ b/runtime-modules/forum/src/benchmarking.rs @@ -1115,7 +1115,7 @@ benchmarks! { let text = vec![1u8].repeat((MAX_KILOBYTES_METADATA * 1000) as usize); let thread_id = create_new_thread::( - caller_id.clone(), (lead_id as u64).saturated_into(), category_id, + caller_id.clone(), lead_id.saturated_into(), category_id, text.clone(), text ); @@ -1177,7 +1177,7 @@ benchmarks! { let text = vec![1u8].repeat((MAX_KILOBYTES_METADATA * 1000) as usize); let thread_id = create_new_thread::( - caller_id.clone(), (lead_id as u64).saturated_into(), category_id, + caller_id.clone(), lead_id.saturated_into(), category_id, text.clone(), text ); diff --git a/runtime-modules/forum/src/lib.rs b/runtime-modules/forum/src/lib.rs index adda4f3108..25ca779e4b 100755 --- a/runtime-modules/forum/src/lib.rs +++ b/runtime-modules/forum/src/lib.rs @@ -1923,7 +1923,7 @@ impl Module { fn ensure_category_exists(category_id: &T::CategoryId) -> Result, Error> { ensure!( - >::contains_key(&category_id), + >::contains_key(category_id), Error::::CategoryDoesNotExist ); @@ -1938,7 +1938,7 @@ impl Module { Self::ensure_is_forum_lead_account(&account_id)?; Self::ensure_map_limits::<<::MapLimits as StorageLimits>::MaxTotalCategories>( - >::get().into() as u64, + >::get().into(), )?; // If not root, then check that we can create in parent category diff --git a/runtime-modules/forum/src/mock.rs b/runtime-modules/forum/src/mock.rs index 91f7b84815..ca59bb16cb 100644 --- a/runtime-modules/forum/src/mock.rs +++ b/runtime-modules/forum/src/mock.rs @@ -527,7 +527,7 @@ pub fn delete_thread_mock( thread_id: ::ThreadId, result: DispatchResult, ) { - let origin = mock::OriginType::Signed(sender.clone()); + let origin = mock::OriginType::Signed(*sender); let storage_root_pre = storage_root(StateVersion::V1); let thread = ThreadById::::get(category_id, thread_id); let bloat_bond_reciever = thread.cleanup_pay_off.get_recipient(sender); @@ -592,7 +592,7 @@ pub fn delete_post_mock( ) { let number_of_editable_posts = >::get(category_id, thread_id).number_of_editable_posts; - let origin = mock::OriginType::Signed(sender.clone()); + let origin = mock::OriginType::Signed(*sender); let storage_root_pre = storage_root(StateVersion::V1); let post = PostById::::get(thread_id, post_id); let bloat_bond_reciever = post.cleanup_pay_off.get_recipient(sender); @@ -1096,7 +1096,7 @@ pub fn run_to_block(n: u64) { } pub fn ed() -> BalanceOf { - ExistentialDeposit::get().into() + ExistentialDeposit::get() } pub fn set_invitation_lock( @@ -1104,7 +1104,7 @@ pub fn set_invitation_lock( amount: BalanceOf, ) { ::InvitedMemberStakingHandler::lock_with_reasons( - &who, + who, amount, WithdrawReasons::except(WithdrawReasons::TRANSACTION_PAYMENT), ); @@ -1114,5 +1114,5 @@ pub fn set_staking_candidate_lock( who: &::AccountId, amount: BalanceOf, ) { - ::StakingCandidateStakingHandler::lock(&who, amount); + ::StakingCandidateStakingHandler::lock(who, amount); } diff --git a/runtime-modules/membership/src/benchmarking.rs b/runtime-modules/membership/src/benchmarking.rs index 8eb6d3f609..e50a41fd97 100644 --- a/runtime-modules/membership/src/benchmarking.rs +++ b/runtime-modules/membership/src/benchmarking.rs @@ -139,7 +139,7 @@ benchmarks! { invites, }; - assert_eq!(MemberIdByHandleHash::::get(&handle_hash), member_id); + assert_eq!(MemberIdByHandleHash::::get(handle_hash), member_id); assert_eq!(MembershipById::::get(member_id), Some(membership)); @@ -262,8 +262,8 @@ benchmarks! { let handle_updated_hash = T::Hashing::hash(&handle_updated); assert!(!MemberIdByHandleHash::::contains_key(handle_old_hash)); - assert!(MemberIdByHandleHash::::contains_key(&handle_updated_hash)); - assert_eq!(MemberIdByHandleHash::::get(&handle_updated_hash), member_id); + assert!(MemberIdByHandleHash::::contains_key(handle_updated_hash)); + assert_eq!(MemberIdByHandleHash::::get(handle_updated_hash), member_id); assert_last_event::(RawEvent::MemberProfileUpdated( member_id, @@ -501,7 +501,7 @@ benchmarks! { assert_eq!(T::WorkingGroup::get_budget(), new_wg_budget); - assert_eq!(MemberIdByHandleHash::::get(&handle_hash), invited_member_id); + assert_eq!(MemberIdByHandleHash::::get(handle_hash), invited_member_id); assert_eq!(MembershipById::::get(invited_member_id), Some(invited_membership)); @@ -555,7 +555,7 @@ benchmarks! { invites: 0, }; - assert_eq!(MemberIdByHandleHash::::get(&handle_hash), member_id); + assert_eq!(MemberIdByHandleHash::::get(handle_hash), member_id); assert_eq!(MembershipById::::get(member_id), Some(gifted_membership)); @@ -829,7 +829,7 @@ benchmarks! { invites, }; - assert_eq!(MemberIdByHandleHash::::get(&handle_hash), member_id); + assert_eq!(MemberIdByHandleHash::::get(handle_hash), member_id); assert_eq!(MembershipById::::get(member_id), Some(membership)); diff --git a/runtime-modules/membership/src/lib.rs b/runtime-modules/membership/src/lib.rs index 020e18c341..3b53e74423 100644 --- a/runtime-modules/membership/src/lib.rs +++ b/runtime-modules/membership/src/lib.rs @@ -567,11 +567,11 @@ decl_module! { if let Some(new_handle_hash) = new_handle_hash { // remove old handle hash - >::remove(&membership.handle_hash); + >::remove(membership.handle_hash); >::insert(new_handle_hash, member_id); - >::insert(&member_id, Membership:: { + >::insert(member_id, Membership:: { handle_hash: new_handle_hash, ..membership }); @@ -649,7 +649,7 @@ decl_module! { // == MUTATION SAFE == // - >::insert(&target_member_id, Membership:: { + >::insert(target_member_id, Membership:: { verified: is_verified, ..membership }); @@ -717,13 +717,13 @@ decl_module! { // // Decrease source member invite number. - >::insert(&source_member_id, Membership:: { + >::insert(source_member_id, Membership:: { invites: source_membership.invites.saturating_sub(number_of_invites), ..source_membership }); // Increase target member invite number. - >::insert(&target_member_id, Membership:: { + >::insert(target_member_id, Membership:: { invites: target_membership.invites.saturating_add(number_of_invites), ..target_membership }); @@ -794,7 +794,7 @@ decl_module! { ); // Save the updated profile. - >::insert(¶ms.inviting_member_id, Membership:: { + >::insert(params.inviting_member_id, Membership:: { invites: membership.invites.saturating_sub(1), ..membership }); diff --git a/runtime-modules/membership/src/tests/fixtures.rs b/runtime-modules/membership/src/tests/fixtures.rs index 16d8281067..ce35085652 100644 --- a/runtime-modules/membership/src/tests/fixtures.rs +++ b/runtime-modules/membership/src/tests/fixtures.rs @@ -28,7 +28,7 @@ pub fn set_invitation_lock( amount: BalanceOf, ) { ::InvitedMemberStakingHandler::lock_with_reasons( - &who, + who, amount, WithdrawReasons::except(WithdrawReasons::TRANSACTION_PAYMENT), ); @@ -683,7 +683,7 @@ impl AddStakingAccountFixture { if actual_result.is_ok() { assert!(>::contains_key( - &self.staking_account_id, + self.staking_account_id, )); } } @@ -736,7 +736,7 @@ impl RemoveStakingAccountFixture { ); assert!(!>::contains_key( - &self.staking_account_id, + self.staking_account_id, )); } } @@ -777,7 +777,7 @@ impl ConfirmStakingAccountFixture { assert_eq!(expected_result, actual_result); if actual_result.is_ok() { - assert!(>::get(&ALICE_ACCOUNT_ID,).confirmed); + assert!(>::get(ALICE_ACCOUNT_ID,).confirmed); } } @@ -845,14 +845,14 @@ impl CreateMemberFixture { let handle_hash = ::Hashing::hash(&self.params.handle); let profile = get_membership_by_id(expected_member_id); - assert_eq!(Membership::handles(handle_hash.clone()), expected_member_id); + assert_eq!(Membership::handles(handle_hash), expected_member_id); assert_eq!(Membership::members_created(), expected_member_id + 1); assert_eq!( profile, MembershipObject { handle_hash, - root_account: self.params.root_account.clone(), - controller_account: self.params.controller_account.clone(), + root_account: self.params.root_account, + controller_account: self.params.controller_account, verified: self.params.is_founding_member, invites: Membership::initial_invitation_count() } diff --git a/runtime-modules/membership/src/tests/mock.rs b/runtime-modules/membership/src/tests/mock.rs index ea76c39626..523ab90a43 100644 --- a/runtime-modules/membership/src/tests/mock.rs +++ b/runtime-modules/membership/src/tests/mock.rs @@ -265,18 +265,11 @@ impl } } +#[derive(Default)] pub struct TestExternalitiesBuilder { system_config: Option, } -impl Default for TestExternalitiesBuilder { - fn default() -> Self { - Self { - system_config: None, - } - } -} - impl TestExternalitiesBuilder { pub fn build(self) -> sp_io::TestExternalities { // Add system diff --git a/runtime-modules/membership/src/tests/mod.rs b/runtime-modules/membership/src/tests/mod.rs index 24a9687ed8..e32f705c90 100644 --- a/runtime-modules/membership/src/tests/mod.rs +++ b/runtime-modules/membership/src/tests/mod.rs @@ -157,8 +157,8 @@ fn gift_membership_succeeds_with_same_root_and_controller() { run_to_block(starting_block); let params = get_bob_gift_membership_parameters_single_account(); - let credit_root_account = params.clone().credit_root_account; - let credit_controller_account = params.clone().credit_controller_account; + let credit_root_account = params.credit_root_account; + let credit_controller_account = params.credit_controller_account; assert_eq!(params.root_account, params.controller_account); @@ -187,12 +187,10 @@ fn gift_membership_succeeds_with_same_root_and_controller() { // usable-balance let locked_balance = params - .clone() .apply_controller_account_invitation_lock .unwrap_or_else(Zero::zero) .saturating_add( params - .clone() .apply_root_account_invitation_lock .unwrap_or_else(Zero::zero), ); diff --git a/runtime-modules/proposals/codex/src/tests/mod.rs b/runtime-modules/proposals/codex/src/tests/mod.rs index e80e502fad..161bcff91a 100644 --- a/runtime-modules/proposals/codex/src/tests/mod.rs +++ b/runtime-modules/proposals/codex/src/tests/mod.rs @@ -253,8 +253,7 @@ where assert_eq!((self.successful_call)(), Ok(())); - let proposal_id = - ::ProposalId::from(ProposalsEngine::proposal_count()); + let proposal_id = ProposalsEngine::proposal_count(); // a discussion was created assert!(>::contains_key( proposal_id @@ -556,7 +555,7 @@ fn create_funding_request_proposal_call_fails_with_zero_balance() { assert_eq!( ProposalsCodex::create_proposal( RawOrigin::Signed(1).into(), - general_proposal_parameters.clone(), + general_proposal_parameters, funding_request_proposal_zero_balance, ), Err(Error::::InvalidFundingRequestProposalBalance.into()) @@ -585,7 +584,7 @@ fn create_funding_request_proposal_call_fails_with_exceeding_balance() { increase_total_balance_issuance_using_account_id(account, 15000000); common::FundingRequestParameters { amount: single_request_budget + 1u64, - account: account, + account, } }) .collect::>(); @@ -790,8 +789,7 @@ fn create_veto_proposal_common_checks_succeed() { ) .unwrap(); - let proposal_details = - ProposalDetails::VetoProposal(ProposalsEngine::proposal_count().into()); + let proposal_details = ProposalDetails::VetoProposal(ProposalsEngine::proposal_count()); let proposal_fixture = ProposalTestFixture { general_proposal_parameters: general_proposal_parameters.clone(), @@ -847,8 +845,8 @@ fn create_veto_proposal_fails_with_invalid_proposal_id() { assert_eq!( ProposalsCodex::create_proposal( RawOrigin::Signed(1).into(), - general_proposal_parameters.clone(), - ProposalDetails::VetoProposal(1u32.into()), + general_proposal_parameters, + ProposalDetails::VetoProposal(1u32), ), Err(Error::::InvalidProposalId.into()) ); @@ -2579,7 +2577,7 @@ fn create_update_channel_payouts_proposal_fails_when_min_cashout_exceeds_max_cas assert_eq!( ProposalsCodex::create_proposal( RawOrigin::Signed(1).into(), - general_proposal_parameters.clone(), + general_proposal_parameters, details, ), Err(Error::::InvalidChannelPayoutsProposalMinCashoutExceedsMaxCashout.into()) diff --git a/runtime-modules/proposals/discussion/src/lib.rs b/runtime-modules/proposals/discussion/src/lib.rs index 50981f81e6..b3a5121aa4 100644 --- a/runtime-modules/proposals/discussion/src/lib.rs +++ b/runtime-modules/proposals/discussion/src/lib.rs @@ -394,7 +394,7 @@ decl_module! { Error::::PostDoesntExist ); - let post_author_id = >::get(&thread_id, &post_id).author_id; + let post_author_id = >::get(thread_id, post_id).author_id; T::AuthorOriginValidator::ensure_member_controller_account_origin( origin, @@ -440,7 +440,7 @@ decl_module! { let thread_mode = Self::ensure_thread_mode_ok(&mode)?; - let thread = Self::thread_by_id(&thread_id); + let thread = Self::thread_by_id(thread_id); let is_councilor = T::CouncilOriginValidator::ensure_member_consulate(origin, member_id) diff --git a/runtime-modules/proposals/discussion/src/tests/mock.rs b/runtime-modules/proposals/discussion/src/tests/mock.rs index bc15102174..c254d5f01d 100644 --- a/runtime-modules/proposals/discussion/src/tests/mock.rs +++ b/runtime-modules/proposals/discussion/src/tests/mock.rs @@ -417,7 +417,7 @@ pub fn set_invitation_lock( amount: BalanceOf, ) { ::InvitedMemberStakingHandler::lock_with_reasons( - &who, + who, amount, WithdrawReasons::except(WithdrawReasons::TRANSACTION_PAYMENT), ); @@ -427,5 +427,5 @@ pub fn set_staking_candidate_lock( who: &::AccountId, amount: BalanceOf, ) { - ::StakingCandidateStakingHandler::lock(&who, amount); + ::StakingCandidateStakingHandler::lock(who, amount); } diff --git a/runtime-modules/proposals/engine/src/lib.rs b/runtime-modules/proposals/engine/src/lib.rs index 538dd6e0cb..1a1488cb75 100644 --- a/runtime-modules/proposals/engine/src/lib.rs +++ b/runtime-modules/proposals/engine/src/lib.rs @@ -819,7 +819,7 @@ impl Module { None }) .for_each(|(proposal_id, proposal)| { - >::remove_prefix(&proposal_id, None); + >::remove_prefix(proposal_id, None); >::insert(proposal_id, proposal.clone()); // fire the proposal status update event @@ -1029,7 +1029,7 @@ impl Module { fn remove_proposal_data(proposal_id: &T::ProposalId) -> DispatchResult { >::remove(proposal_id); >::remove(proposal_id); - >::remove_prefix(&proposal_id, None); + >::remove_prefix(proposal_id, None); let _ = Self::decrease_active_proposal_counter(); T::ProposalObserver::proposal_removed(proposal_id); diff --git a/runtime-modules/proposals/engine/src/tests/mod.rs b/runtime-modules/proposals/engine/src/tests/mod.rs index 0157974027..994c70aa99 100644 --- a/runtime-modules/proposals/engine/src/tests/mod.rs +++ b/runtime-modules/proposals/engine/src/tests/mod.rs @@ -1633,7 +1633,7 @@ fn active_proposal_rejection_succeeds() { vote_generator.vote_and_assert_ok(VoteKind::Abstain); assert_eq!( - >::get(&proposal_id, &2), + >::get(proposal_id, 2), VoteKind::Abstain ); @@ -2182,7 +2182,7 @@ fn proposal_early_rejection_succeeds() { vote_generator.vote_and_assert_ok(VoteKind::Reject); assert_eq!( - >::get(&proposal_id, &2), + >::get(proposal_id, 2), VoteKind::Reject ); diff --git a/runtime-modules/referendum/src/benchmarking.rs b/runtime-modules/referendum/src/benchmarking.rs index 3f992f2068..4e3201cb75 100644 --- a/runtime-modules/referendum/src/benchmarking.rs +++ b/runtime-modules/referendum/src/benchmarking.rs @@ -382,7 +382,7 @@ benchmarks_instance! { } on_initialize_revealing { - let i in 0 .. (T::MaxWinnerTargetCount::get() - 1) as u32; + let i in 0 .. (T::MaxWinnerTargetCount::get() - 1); let cycle_id = 1; let salt = vec![0u8]; @@ -499,7 +499,7 @@ benchmarks_instance! { } reveal_vote_space_for_new_winner { - let i in 0 .. (T::MaxWinnerTargetCount::get() - 1) as u32; + let i in 0 .. (T::MaxWinnerTargetCount::get() - 1); let salt = vec![0u8]; let vote_option = 2 * (i + 1); // Greater than number of voters + number of candidates @@ -563,7 +563,7 @@ benchmarks_instance! { } reveal_vote_space_not_in_winners { - let i in 0 .. (T::MaxWinnerTargetCount::get() - 1) as u32; + let i in 0 .. (T::MaxWinnerTargetCount::get() - 1); let salt = vec![0u8]; let vote_option = 2 * (i + 1); // Greater than number of voters + number of candidates @@ -617,7 +617,7 @@ benchmarks_instance! { } reveal_vote_space_replace_last_winner { - let i in 0 .. (T::MaxWinnerTargetCount::get() - 1) as u32; + let i in 0 .. (T::MaxWinnerTargetCount::get() - 1); let salt = vec![0u8]; let vote_option = 2 * (i + 1); // Greater than number of voters + number of candidates @@ -679,7 +679,7 @@ benchmarks_instance! { } reveal_vote_already_existing { - let i in 0 .. (T::MaxWinnerTargetCount::get() - 1) as u32; + let i in 0 .. (T::MaxWinnerTargetCount::get() - 1); let salt = vec![0u8]; let vote_option = i; diff --git a/runtime-modules/referendum/src/lib.rs b/runtime-modules/referendum/src/lib.rs index bda47b4bb1..bfbe9b061e 100644 --- a/runtime-modules/referendum/src/lib.rs +++ b/runtime-modules/referendum/src/lib.rs @@ -837,7 +837,7 @@ impl, I: Instance> Mutations { Stage::::mutate(|stage| *stage = ReferendumStage::Revealing(new_stage_data)); // store revealed vote - Votes::::mutate(account_id, |vote| (*vote).vote_for = Some(*option_id)); + Votes::::mutate(account_id, |vote| vote.vote_for = Some(*option_id)); } // Release stake associated to the user's last vote. @@ -993,11 +993,11 @@ impl, I: Instance> EnsureChecks { cycle_id: &u64, account_id: &T::AccountId, ) -> Result<(), Error> { - if !Votes::::contains_key(&account_id) { + if !Votes::::contains_key(account_id) { return Ok(()); } - let existing_vote = Votes::::get(&account_id); + let existing_vote = Votes::::get(account_id); // don't allow repeated vote if existing_vote.cycle_id == *cycle_id { diff --git a/runtime-modules/referendum/src/mock.rs b/runtime-modules/referendum/src/mock.rs index 7c9bb07e8a..4260783957 100644 --- a/runtime-modules/referendum/src/mock.rs +++ b/runtime-modules/referendum/src/mock.rs @@ -341,7 +341,7 @@ pub fn build_test_externalities() -> sp_io::TestExternalities { .build_storage::() .unwrap(); - let mut result = Into::::into(t.clone()); + let mut result = Into::::into(t); // Make sure we are not in block 0 where no events are emitted - see https://substrate.dev/recipes/2-appetizers/4-events.html#emitting-events result.execute_with(|| { @@ -779,7 +779,7 @@ impl InstanceMocks { // check if the account was added to AccountsOptedOut let account_id = ensure_signed(mock_origin).unwrap(); assert!(AccountsOptedOut::::contains_key( - &account_id + account_id )); // check event was emitted diff --git a/runtime-modules/referendum/src/tests.rs b/runtime-modules/referendum/src/tests.rs index 5f869a8c05..15fe6bd60a 100644 --- a/runtime-modules/referendum/src/tests.rs +++ b/runtime-modules/referendum/src/tests.rs @@ -487,7 +487,7 @@ fn finish_revealing_period() { option_id: option_to_vote_for, vote_power: stake, }], - MockUtils::transform_results(vec![1 * stake, 0, 0]), + MockUtils::transform_results(vec![stake, 0, 0]), ); }); } @@ -1220,7 +1220,7 @@ fn opt_out_of_voting_invalid_origin() { build_test_externalities().execute_with(|| { let root_origin = OriginType::Root; let none_origin = OriginType::None; - Mocks::opt_out_of_voting(root_origin.clone(), Err(BadOrigin.into())); - Mocks::opt_out_of_voting(none_origin.clone(), Err(BadOrigin.into())); + Mocks::opt_out_of_voting(root_origin, Err(BadOrigin.into())); + Mocks::opt_out_of_voting(none_origin, Err(BadOrigin.into())); }); } diff --git a/runtime-modules/staking-handler/src/lib.rs b/runtime-modules/staking-handler/src/lib.rs index 7fd2684a92..e736e377a9 100644 --- a/runtime-modules/staking-handler/src/lib.rs +++ b/runtime-modules/staking-handler/src/lib.rs @@ -127,7 +127,7 @@ impl< account_id: &::AccountId, amount: Option<::Balance>, ) -> ::Balance { - let locks = pallet_balances::Pallet::::locks(&account_id); + let locks = pallet_balances::Pallet::::locks(account_id); let existing_lock = locks.iter().find(|lock| lock.id == LockId::get()); @@ -180,7 +180,7 @@ impl< } fn is_account_free_of_conflicting_stakes(account_id: &T::AccountId) -> bool { - let locks = >::locks(&account_id); + let locks = >::locks(account_id); let lock_ids: Vec = locks.iter().map(|balance_lock| balance_lock.id).collect(); @@ -201,7 +201,7 @@ impl< fn current_stake( account_id: &::AccountId, ) -> ::Balance { - let locks = >::locks(&account_id); + let locks = >::locks(account_id); let existing_lock = locks.iter().find(|lock| lock.id == LockId::get()); diff --git a/runtime-modules/storage/src/benchmarking.rs b/runtime-modules/storage/src/benchmarking.rs index 6b19c93051..ff6554f0a2 100644 --- a/runtime-modules/storage/src/benchmarking.rs +++ b/runtime-modules/storage/src/benchmarking.rs @@ -226,7 +226,7 @@ where ) .unwrap(); - assert!(WorkerById::::contains_key(&worker_id)); + assert!(WorkerById::::contains_key(worker_id)); (caller_id, worker_id) } @@ -339,7 +339,7 @@ fn create_storage_bucket_helper(account_id: T::AccountId) -> T::Stora Module::::create_storage_bucket(RawOrigin::Signed(account_id).into(), None, true, 0, 0) .unwrap(); - assert!(>::contains_key(&storage_bucket_id)); + assert!(>::contains_key(storage_bucket_id)); storage_bucket_id } @@ -483,7 +483,7 @@ benchmarks! { }: _ (RawOrigin::Signed(lead_account_id), storage_bucket_id) verify { - assert!(!StorageBucketById::::contains_key(&storage_bucket_id)); + assert!(!StorageBucketById::::contains_key(storage_bucket_id)); assert_last_event::( RawEvent::StorageBucketDeleted(storage_bucket_id).into() ); @@ -595,12 +595,12 @@ benchmarks! { verify { if let Some(cid) = add_cids.iter().next(){ let cid_bounded: Base58Multihash = cid.clone().try_into().unwrap(); - assert!(Blacklist::contains_key(&cid_bounded)); + assert!(Blacklist::contains_key(cid_bounded)); } if let Some(cid) = remove_cids.iter().next(){ let cid_bounded: Base58Multihash = cid.clone().try_into().unwrap(); - assert!(!Blacklist::contains_key(&cid_bounded)); + assert!(!Blacklist::contains_key(cid_bounded)); } assert_last_event::( @@ -617,7 +617,7 @@ benchmarks! { }: _ (RawOrigin::Signed(lead_account_id), None, false, 0, 0) verify { - assert!(StorageBucketById::::contains_key(&storage_bucket_id)); + assert!(StorageBucketById::::contains_key(storage_bucket_id)); assert_last_event::( RawEvent::StorageBucketCreated(storage_bucket_id, None, false, 0, 0).into() ); @@ -987,7 +987,7 @@ benchmarks! { }: _ (RawOrigin::Signed(lead_account_id.clone())) verify { - assert!(DistributionBucketFamilyById::::contains_key(&family_id)); + assert!(DistributionBucketFamilyById::::contains_key(family_id)); assert_last_event::(RawEvent::DistributionBucketFamilyCreated(family_id).into()); } @@ -997,7 +997,7 @@ benchmarks! { }: _ (RawOrigin::Signed(lead_account_id.clone()), family_id) verify { - assert!(!DistributionBucketFamilyById::::contains_key(&family_id)); + assert!(!DistributionBucketFamilyById::::contains_key(family_id)); assert_last_event::(RawEvent::DistributionBucketFamilyDeleted(family_id).into()); } @@ -1010,7 +1010,7 @@ benchmarks! { let bucket_id = Module::::create_distribution_bucket_id(family_id, bucket_idx); }: _ (RawOrigin::Signed(lead_account_id.clone()), family_id, bucket_status) verify { - assert!(DistributionBucketByFamilyIdById::::contains_key(&family_id, &bucket_idx)); + assert!(DistributionBucketByFamilyIdById::::contains_key(family_id, bucket_idx)); assert_last_event::( RawEvent::DistributionBucketCreated(family_id, bucket_status, bucket_id).into() ); @@ -1025,7 +1025,7 @@ benchmarks! { verify { let (family_id, bucket_idx) = (bucket_id.distribution_bucket_family_id, bucket_id.distribution_bucket_index); - let bucket = Module::::distribution_bucket_by_family_id_by_index(&family_id, &bucket_idx); + let bucket = Module::::distribution_bucket_by_family_id_by_index(family_id, bucket_idx); assert_eq!(bucket.accepting_new_bags, new_bucket_status); assert_last_event::( @@ -1041,7 +1041,7 @@ benchmarks! { verify { let (family_id, bucket_idx) = (bucket_id.distribution_bucket_family_id, bucket_id.distribution_bucket_index); - assert!(!DistributionBucketByFamilyIdById::::contains_key(&family_id, &bucket_idx)); + assert!(!DistributionBucketByFamilyIdById::::contains_key(family_id, bucket_idx)); assert_last_event::( RawEvent::DistributionBucketDeleted(bucket_id).into() @@ -1126,7 +1126,7 @@ benchmarks! { verify { let (family_id, bucket_idx) = (bucket_id.distribution_bucket_family_id, bucket_id.distribution_bucket_index); - let bucket = Module::::distribution_bucket_by_family_id_by_index(&family_id, &bucket_idx); + let bucket = Module::::distribution_bucket_by_family_id_by_index(family_id, bucket_idx); assert_eq!(bucket.distributing, distributing); @@ -1171,7 +1171,7 @@ benchmarks! { verify { let (family_id, bucket_idx) = (bucket_id.distribution_bucket_family_id, bucket_id.distribution_bucket_index); - let bucket = Module::::distribution_bucket_by_family_id_by_index(&family_id, &bucket_idx); + let bucket = Module::::distribution_bucket_by_family_id_by_index(family_id, bucket_idx); assert!(bucket.pending_invitations.contains(&worker_id)); @@ -1199,12 +1199,12 @@ benchmarks! { let (family_id, bucket_idx) = (bucket_id.distribution_bucket_family_id, bucket_id.distribution_bucket_index); - let bucket = Module::::distribution_bucket_by_family_id_by_index(&family_id, &bucket_idx); + let bucket = Module::::distribution_bucket_by_family_id_by_index(family_id, bucket_idx); assert!(bucket.pending_invitations.contains(&worker_id)); }: _ (RawOrigin::Signed(lead_account_id.clone()), bucket_id.clone(), worker_id) verify { - let bucket = Module::::distribution_bucket_by_family_id_by_index(&family_id, &bucket_idx); + let bucket = Module::::distribution_bucket_by_family_id_by_index(family_id, bucket_idx); assert!(!bucket.pending_invitations.contains(&worker_id)); assert_last_event::( @@ -1239,12 +1239,12 @@ benchmarks! { let (family_id, bucket_idx) = (bucket_id.distribution_bucket_family_id, bucket_id.distribution_bucket_index); - let bucket = Module::::distribution_bucket_by_family_id_by_index(&family_id, &bucket_idx); + let bucket = Module::::distribution_bucket_by_family_id_by_index(family_id, bucket_idx); assert!(bucket.operators.contains(&worker_id)); }: _ (RawOrigin::Signed(lead_account_id.clone()), bucket_id.clone(), worker_id) verify { - let bucket = Module::::distribution_bucket_by_family_id_by_index(&family_id, &bucket_idx); + let bucket = Module::::distribution_bucket_by_family_id_by_index(family_id, bucket_idx); assert!(!bucket.operators.contains(&worker_id)); assert_last_event::( @@ -1287,7 +1287,7 @@ benchmarks! { verify { let (family_id, bucket_idx) = (bucket_id.distribution_bucket_family_id, bucket_id.distribution_bucket_index); - let bucket = Module::::distribution_bucket_by_family_id_by_index(&family_id, &bucket_idx); + let bucket = Module::::distribution_bucket_by_family_id_by_index(family_id, bucket_idx); assert!(bucket.operators.contains(&worker_id)); assert_last_event::( diff --git a/runtime-modules/storage/src/lib.rs b/runtime-modules/storage/src/lib.rs index dddef593b9..f7ae81ecb6 100644 --- a/runtime-modules/storage/src/lib.rs +++ b/runtime-modules/storage/src/lib.rs @@ -2627,8 +2627,8 @@ decl_module! { // >::remove( - &bucket_id.distribution_bucket_family_id, - &bucket_id.distribution_bucket_index + bucket_id.distribution_bucket_family_id, + bucket_id.distribution_bucket_index ); Self::deposit_event( @@ -3179,7 +3179,7 @@ impl DataObjectStorage for Module { // for object_id in objects.iter() { - DataObjectsById::::swap(&src_bag_id, &object_id, &dest_bag_id, &object_id); + DataObjectsById::::swap(&src_bag_id, object_id, &dest_bag_id, object_id); } // Change source bag. @@ -3319,7 +3319,7 @@ impl DataObjectStorage for Module { } fn get_data_objects_id(bag_id: &BagId) -> BTreeSet { - DataObjectsById::::iter_prefix(&bag_id) + DataObjectsById::::iter_prefix(bag_id) .map(|x| x.0) .collect() } @@ -3530,7 +3530,7 @@ impl Module { for bucket_id in remove_buckets.iter() { ensure!( - >::contains_key(&bucket_id), + >::contains_key(bucket_id), Error::::StorageBucketDoesntExist ); @@ -3672,7 +3672,7 @@ impl Module { voucher_operation: OperationType, ) { // Change bag object and size counters. - Bags::::mutate(&bag_id, |bag| match voucher_operation { + Bags::::mutate(bag_id, |bag| match voucher_operation { OperationType::Increase => { bag.objects_total_size = bag .objects_total_size @@ -3842,19 +3842,19 @@ impl Module { pub(crate) fn static_bag(static_bag_id: &StaticBagId) -> Bag { let bag_id: BagId = static_bag_id.clone().into(); - Self::bag(&bag_id) + Self::bag(bag_id) } // Check the dynamic bag existence. Static bags always exist. fn ensure_bag_exists(bag_id: &BagId) -> Result, DispatchError> { if let BagId::::Dynamic(_) = &bag_id { ensure!( - >::contains_key(&bag_id), + >::contains_key(bag_id), Error::::DynamicBagDoesntExist ); } - Ok(Self::bag(&bag_id)) + Ok(Self::bag(bag_id)) } // Check the storage bucket binding for a bag. @@ -4298,15 +4298,15 @@ impl Module { // Execute storage bucket updates for (id, updated_bucket) in updated_storage_buckets { - StorageBucketById::::insert(&id, updated_bucket.clone()); + StorageBucketById::::insert(id, updated_bucket.clone()); Self::deposit_event(RawEvent::VoucherChanged(id, updated_bucket.voucher.clone())); } // Execute distribution bucket updates for (id, updated_bucket) in updated_distribution_buckets { DistributionBucketByFamilyIdById::::insert( - &id.distribution_bucket_family_id, - &id.distribution_bucket_index, + id.distribution_bucket_family_id, + id.distribution_bucket_index, updated_bucket, ); } @@ -4375,7 +4375,7 @@ impl Module { // Execute storage bucket updates for (id, updated_bucket) in updated_storage_buckets { - StorageBucketById::::insert(&id, updated_bucket.clone()); + StorageBucketById::::insert(id, updated_bucket.clone()); Self::deposit_event(RawEvent::VoucherChanged(id, updated_bucket.voucher.clone())); } @@ -4421,7 +4421,7 @@ impl Module { fn try_performing_bag_removal(account_id: &T::AccountId, bag_id: BagId) -> DispatchResult { let bag = Self::ensure_bag_exists(&bag_id)?; let (remove_objs, remove_objs_size) = Self::validate_objects_to_remove(&bag_id, None)?; - let remove_objs_num = bag.objects_number as u64; + let remove_objs_num = bag.objects_number; // Get updated storage buckets: vouchers and bag counters let updated_storage_buckets = Self::get_updated_storage_buckets_bag_removal( @@ -4439,15 +4439,15 @@ impl Module { // Execute storage bucket updates for (id, updated_bucket) in updated_storage_buckets { - StorageBucketById::::insert(&id, updated_bucket.clone()); + StorageBucketById::::insert(id, updated_bucket.clone()); Self::deposit_event(RawEvent::VoucherChanged(id, updated_bucket.voucher.clone())); } // Execute distribution bucket updates for (id, updated_bucket) in updated_distribution_buckets { DistributionBucketByFamilyIdById::::insert( - &id.distribution_bucket_family_id, - &id.distribution_bucket_index, + id.distribution_bucket_family_id, + id.distribution_bucket_index, updated_bucket, ); } @@ -4541,7 +4541,7 @@ impl Module { .collect::>()?; Ok((objects, total_size)) } else { - let objects = DataObjectsById::::iter_prefix(&bag_id) + let objects = DataObjectsById::::iter_prefix(bag_id) .map(|(id, obj)| { total_size = total_size.saturating_add(obj.size); (id, obj) diff --git a/runtime-modules/storage/src/tests/fixtures.rs b/runtime-modules/storage/src/tests/fixtures.rs index e621ab2e3d..aaf0952a36 100644 --- a/runtime-modules/storage/src/tests/fixtures.rs +++ b/runtime-modules/storage/src/tests/fixtures.rs @@ -859,8 +859,8 @@ impl DeleteDynamicBagFixture { .iter() .map(|id| { >::get( - &id.distribution_bucket_family_id, - &id.distribution_bucket_index, + id.distribution_bucket_family_id, + id.distribution_bucket_index, ) }) .clone() @@ -892,8 +892,8 @@ impl DeleteDynamicBagFixture { .iter() .map(|id| { >::get( - &id.distribution_bucket_family_id, - &id.distribution_bucket_index, + id.distribution_bucket_family_id, + id.distribution_bucket_index, ) }) .clone() diff --git a/runtime-modules/storage/src/tests/mod.rs b/runtime-modules/storage/src/tests/mod.rs index b54408d6c0..d8506ac55b 100644 --- a/runtime-modules/storage/src/tests/mod.rs +++ b/runtime-modules/storage/src/tests/mod.rs @@ -842,12 +842,12 @@ fn upload_succeeded_static_bag_with_data_size_and_deletion_fee() { assert!(>::contains_key( &bag_id, - &data_object_id_1 + data_object_id_1 )); assert!(>::contains_key( &bag_id, - &data_object_id_2 + data_object_id_2 )); assert_eq!( @@ -880,12 +880,12 @@ fn upload_succeeded_static_bag_with_data_size_and_deletion_fee() { assert!(>::contains_key( &bag_id, - &data_object_id_3 + data_object_id_3 )); assert!(>::contains_key( &bag_id, - &data_object_id_4 + data_object_id_4 )); assert_eq!( @@ -956,12 +956,12 @@ fn upload_succeeded_dynamic_bag_with_data_size_and_deletion_fee() { assert!(>::contains_key( &bag_id, - &data_object_id_1 + data_object_id_1 )); assert!(>::contains_key( &bag_id, - &data_object_id_2 + data_object_id_2 )); assert_eq!( @@ -994,12 +994,12 @@ fn upload_succeeded_dynamic_bag_with_data_size_and_deletion_fee() { assert!(>::contains_key( &bag_id, - &data_object_id_3 + data_object_id_3 )); assert!(>::contains_key( &bag_id, - &data_object_id_4 + data_object_id_4 )); assert_eq!( @@ -2105,11 +2105,11 @@ fn move_data_objects_succeeded() { // Pre-checks assert!(>::contains_key( &src_bag_id, - &data_object_id + data_object_id )); assert!(!>::contains_key( &dest_bag_id, - &data_object_id + data_object_id )); MoveDataObjectsFixture::default() @@ -2121,11 +2121,11 @@ fn move_data_objects_succeeded() { // Post-checks assert!(!>::contains_key( &src_bag_id, - &data_object_id + data_object_id )); assert!(>::contains_key( &dest_bag_id, - &data_object_id + data_object_id )); EventFixture::assert_last_crate_event(RawEvent::DataObjectsMoved( @@ -2434,7 +2434,7 @@ fn delete_data_objects_succeeded() { // pre-checks assert!(>::contains_key( &bag_id, - &data_object_id + data_object_id )); assert_eq!( @@ -2455,7 +2455,7 @@ fn delete_data_objects_succeeded() { // post-checks assert!(!>::contains_key( &bag_id, - &data_object_id + data_object_id )); assert_eq!( @@ -2529,7 +2529,7 @@ fn delete_data_objects_succeeded_with_voucher_usage() { EventFixture::contains_crate_event(RawEvent::DataObjectsUploaded( data_object_ids.clone(), - upload_params.clone(), + upload_params, Storage::data_object_state_bloat_bond_value(), )); @@ -2546,7 +2546,7 @@ fn delete_data_objects_succeeded_with_voucher_usage() { assert!(!>::contains_key( &bag_id, - &data_object_id + data_object_id )); //// Post-check voucher @@ -3047,10 +3047,7 @@ fn delete_dynamic_bags_succeeded_with_assigned_distribution_buckets() { let total_distributed_buckets_number = distribution_bucket_ids1.len() + distribution_bucket_ids2.len(); - assert_eq!( - bag.distributed_by.len(), - total_distributed_buckets_number as usize - ); + assert_eq!(bag.distributed_by.len(), total_distributed_buckets_number); let distributed_by_bag = bag.distributed_by; for distribution_bucket_id in distributed_by_bag.as_ref() { @@ -3094,7 +3091,7 @@ fn delete_dynamic_bags_succeeded_with_assigned_storage_buckets() { .call_and_assert(Ok(())); let bag_id: BagId = dynamic_bag_id.clone().into(); - let bag = >::get(&bag_id); + let bag = >::get(bag_id); assert_eq!(bag.stored_by, storage_buckets); @@ -3644,7 +3641,7 @@ fn create_dynamic_bag_succeeded() { fixture.call_and_assert(Ok(())); - let bag_id: BagId = dynamic_bag_id.clone().into(); + let bag_id: BagId = dynamic_bag_id.into(); let bag: crate::Bag = >::get(bag_id); // Check that IDs are within possible range. @@ -3657,10 +3654,7 @@ fn create_dynamic_bag_succeeded() { let total_distributed_buckets_number = distribution_bucket_ids1.len() + distribution_bucket_ids2.len(); - assert_eq!( - bag.distributed_by.len(), - total_distributed_buckets_number as usize - ); + assert_eq!(bag.distributed_by.len(), total_distributed_buckets_number); for distribution_bucket_id in bag.distributed_by.as_ref() { let bucket = Storage::distribution_bucket_by_family_id_by_index( @@ -4042,7 +4036,7 @@ fn create_distribution_bucket_succeeded() { .unwrap(); assert!( - crate::DistributionBucketByFamilyIdById::::contains_key(&family_id, &bucket_id) + crate::DistributionBucketByFamilyIdById::::contains_key(family_id, bucket_id) ); EventFixture::assert_last_crate_event(RawEvent::DistributionBucketCreated( @@ -5625,7 +5619,7 @@ fn unsuccessful_dyn_bag_creation_with_bucket_objects_size_limit_reached() { CreateDynamicBagFixture::default() .with_objects(vec![DataObjectCreationParameters { size: DEFAULT_STORAGE_BUCKET_SIZE_LIMIT + 1, - ipfs_content_id: create_cid(1u32.into()), + ipfs_content_id: create_cid(1u32), }]) .with_storage_buckets(storage_buckets) .call_and_assert(Err( @@ -5646,7 +5640,7 @@ fn unsuccessful_dyn_bag_creation_with_bucket_objects_number_limit_reached() { (0..(DEFAULT_STORAGE_BUCKET_OBJECTS_LIMIT as u32 + 1)) .map(|idx| DataObjectCreationParameters { size: 1, - ipfs_content_id: create_cid(idx.into()), + ipfs_content_id: create_cid(idx), }) .collect(); @@ -6333,7 +6327,7 @@ fn uploading_objects_with_invalid_cid_length_should_fail() { }; UploadFixture::default() - .with_params(upload_params.clone()) + .with_params(upload_params) .call_and_assert(Err(Error::::InvalidCidLength.into())); }) } @@ -6389,8 +6383,8 @@ fn creating_dynamic_bag_with_objects_having_invalid_cid_length_should_fail() { }]; CreateDynamicBagFixture::default() - .with_bag_id(dynamic_bag_id.clone()) - .with_storage_buckets(storage_bucket_ids.clone()) + .with_bag_id(dynamic_bag_id) + .with_storage_buckets(storage_bucket_ids) .with_distribution_buckets( distribution_bucket_ids1 .iter() diff --git a/runtime-modules/working-group/src/tests/fixtures.rs b/runtime-modules/working-group/src/tests/fixtures.rs index 5b1a0ff7ed..3f02e457dc 100644 --- a/runtime-modules/working-group/src/tests/fixtures.rs +++ b/runtime-modules/working-group/src/tests/fixtures.rs @@ -20,7 +20,7 @@ pub fn set_invitation_lock( amount: BalanceOf, ) { ::InvitedMemberStakingHandler::lock_with_reasons( - &who, + who, amount, WithdrawReasons::except(WithdrawReasons::TRANSACTION_PAYMENT), ); diff --git a/runtime/src/tests/handle_fees.rs b/runtime/src/tests/handle_fees.rs index 4f8b91cc49..facb8157a9 100644 --- a/runtime/src/tests/handle_fees.rs +++ b/runtime/src/tests/handle_fees.rs @@ -8,11 +8,11 @@ use frame_support::traits::{Currency, Imbalance, OnUnbalanced}; fn block_author_only_receives_tips() { initial_test_ext().execute_with(|| { fn author() -> AccountId { - account_from_member_id(0).into() + account_from_member_id(0) } fn user() -> AccountId { - account_from_member_id(1).into() + account_from_member_id(1) } let user_starting_balance = currency::DOLLARS * 5000; diff --git a/runtime/src/tests/locks.rs b/runtime/src/tests/locks.rs index 005584761f..5b7e1ebd04 100644 --- a/runtime/src/tests/locks.rs +++ b/runtime/src/tests/locks.rs @@ -102,11 +102,7 @@ fn bonding_with_non_staked_account_works() { // bonding succeeds assert_eq!( - ::bond( - &validator_1.clone().into(), - stake_amount, - &validator_1.clone().into() - ), + ::bond(&validator_1, stake_amount, &validator_1), Ok(()) ); @@ -154,11 +150,7 @@ fn bonding_with_staked_account_fails() { // bonding should fail assert_err!( - ::bond( - &validator_1.clone().into(), - bond_amount, - &validator_1.clone().into() - ), + ::bond(&validator_1, bond_amount, &validator_1), pallet_staking::Error::::BondingRestricted ); }); diff --git a/runtime/src/tests/mod.rs b/runtime/src/tests/mod.rs index 044de9a411..2897fb0a79 100644 --- a/runtime/src/tests/mod.rs +++ b/runtime/src/tests/mod.rs @@ -71,7 +71,7 @@ pub(crate) fn create_new_members(count: u64) -> Vec { (0..count) .map(|i| { - let member_id = first_member_id + i as u64; + let member_id = first_member_id + i; let account_id = account_from_member_id(member_id); insert_member(account_id.clone()); set_staking_account(account_id.clone(), account_id, member_id); @@ -83,7 +83,7 @@ pub(crate) fn create_new_members(count: u64) -> Vec { pub(crate) fn setup_new_council(cycle_id: u64) { let council_size = ::CouncilSize::get(); let num_extra_candidates = ::MinNumberOfExtraCandidates::get() + 1; - let councilor_stake: u128 = ::MinCandidateStake::get().into(); + let councilor_stake: u128 = ::MinCandidateStake::get(); // council members that will be elected let council_member_ids = create_new_members(council_size as u64); @@ -127,18 +127,14 @@ pub(crate) fn setup_new_council(cycle_id: u64) { run_to_block(current_block + ::AnnouncingPeriodDuration::get()); let voter_stake: u128 = - >::MinimumStake::get().into(); + >::MinimumStake::get(); for (i, member_id) in voter_ids.iter().enumerate() { let voter = account_from_member_id(*member_id); increase_total_balance_issuance_using_account_id(voter.clone(), voter_stake + 1); - let commitment = Referendum::calculate_commitment( - &voter, - &[0u8], - &cycle_id, - &council_member_ids[i as usize], - ); + let commitment = + Referendum::calculate_commitment(&voter, &[0u8], &cycle_id, &council_member_ids[i]); Referendum::vote( RawOrigin::Signed(voter.clone()).into(), @@ -159,7 +155,7 @@ pub(crate) fn setup_new_council(cycle_id: u64) { Referendum::reveal_vote( RawOrigin::Signed(voter.clone()).into(), vec![0u8], - council_member_ids[i as usize], + council_member_ids[i], ) .unwrap(); } diff --git a/runtime/src/tests/proposals_integration/mod.rs b/runtime/src/tests/proposals_integration/mod.rs index 44b7d53ba1..94091bdab3 100644 --- a/runtime/src/tests/proposals_integration/mod.rs +++ b/runtime/src/tests/proposals_integration/mod.rs @@ -317,7 +317,7 @@ fn proposal_cancellation_with_slashes_with_balance_checks_succeeds() { cancel_proposal_fixture.cancel_and_assert(Ok(())); - let cancellation_fee = ProposalCancellationFee::get() as u128; + let cancellation_fee = ProposalCancellationFee::get(); // Since the account_id is the staking account it neccesarily has locked funds // for being a candidate for a staking account. @@ -478,7 +478,7 @@ fn set_membership_leader(lead_account_id: AccountId32, lead_id: u64) { StakePolicy { stake_amount: >::MinimumApplicationStake::get( - ) as u128, + ), leaving_unstaking_period: >::MinUnstakingPeriodLimit::get() }, None, @@ -492,8 +492,7 @@ fn set_membership_leader(lead_account_id: AccountId32, lead_id: u64) { reward_account_id: lead_account_id.clone(), description: vec![0u8], stake_parameters: StakeParameters { - stake: >::MinimumApplicationStake::get() as - u128, + stake: >::MinimumApplicationStake::get(), staking_account_id: lead_account_id.clone(), }, }; @@ -539,7 +538,7 @@ where assert_eq!((self.successful_call)(), Ok(())); // Approve Proposal - let council_size = ::CouncilSize::get() as u32; + let council_size = ::CouncilSize::get(); let mut vote_generator = VoteGenerator::new(self.proposal_id); for _i in 0..council_size { vote_generator.vote_and_assert_ok(VoteKind::Approve); @@ -573,7 +572,7 @@ fn text_proposal_execution_succeeds() { ProposalDetails::Signal(b"signal".to_vec()), ) }) - .with_member_id(member_id as u64); + .with_member_id(member_id); codex_extrinsic_test_fixture.call_extrinsic_and_assert(); }); @@ -612,7 +611,7 @@ fn funding_request_proposal_execution_succeeds() { }]), ) }) - .with_member_id(member_id as u64); + .with_member_id(member_id); let starting_balance = Balances::usable_balance(target_account_id.clone()); @@ -654,7 +653,7 @@ fn veto_proposal_proposal_execution_succeeds() { ProposalDetails::AmendConstitution(vec![0u8]), ) }) - .with_member_id(member_id as u64); + .with_member_id(member_id); codex_extrinsic_test_fixture.call_extrinsic_and_assert(); @@ -679,7 +678,7 @@ fn veto_proposal_proposal_execution_succeeds() { ProposalDetails::VetoProposal(proposal_id), ) }) - .with_member_id(member_id as u64) + .with_member_id(member_id) .with_expected_proposal_id(2) .with_setup_enviroment(false); @@ -720,11 +719,7 @@ fn set_validator_count_proposal_execution_succeeds() { staking_account_id.into(), 10_000 * currency::DOLLARS, ); - set_staking_account( - account_id.clone(), - staking_account_id.into(), - member_id as u64, - ); + set_staking_account(account_id.clone(), staking_account_id.into(), member_id); let codex_extrinsic_test_fixture = CodexProposalTestFixture::default_for_call(|| { let general_proposal_parameters = GeneralProposalParameters:: { @@ -779,7 +774,7 @@ fn amend_constitution_proposal_execution_succeeds() { ProposalDetails::AmendConstitution(b"Constitution text".to_vec()), ) }) - .with_member_id(member_id as u64); + .with_member_id(member_id); codex_extrinsic_test_fixture.call_extrinsic_and_assert(); @@ -816,7 +811,7 @@ fn set_membership_price_proposal_execution_succeeds() { ProposalDetails::SetMembershipPrice(membership_price), ) }) - .with_member_id(member_id as u64); + .with_member_id(member_id); codex_extrinsic_test_fixture.call_extrinsic_and_assert(); @@ -853,7 +848,7 @@ fn set_initial_invitation_balance_proposal_succeeds() { ProposalDetails::SetInitialInvitationBalance(initial_invitation_balance), ) }) - .with_member_id(member_id as u64); + .with_member_id(member_id); codex_extrinsic_test_fixture.call_extrinsic_and_assert(); @@ -894,7 +889,7 @@ fn set_initial_invitation_count_proposal_succeeds() { ProposalDetails::SetInitialInvitationCount(new_default_invite_count), ) }) - .with_member_id(member_id as u64); + .with_member_id(member_id); codex_extrinsic_test_fixture.call_extrinsic_and_assert(); @@ -935,7 +930,7 @@ fn set_membership_leader_invitation_quota_proposal_succeeds() { ProposalDetails::SetMembershipLeadInvitationQuota(new_invite_count), ) }) - .with_member_id(member_id as u64) + .with_member_id(member_id) .with_set_member_lead(true) .with_lead_id(lead_id); @@ -974,7 +969,7 @@ fn set_referral_cut_proposal_succeeds() { ProposalDetails::SetReferralCut(referral_cut), ) }) - .with_member_id(member_id as u64); + .with_member_id(member_id); codex_extrinsic_test_fixture.call_extrinsic_and_assert(); @@ -1014,7 +1009,7 @@ fn set_budget_increment_proposal_succeds() { ProposalDetails::SetCouncilBudgetIncrement(budget_increment), ) }) - .with_member_id(member_id as u64); + .with_member_id(member_id); codex_extrinsic_test_fixture.call_extrinsic_and_assert(); @@ -1056,7 +1051,7 @@ fn set_councilor_reward_proposal_succeds() { ProposalDetails::SetCouncilorReward(councilor_reward), ) }) - .with_member_id(member_id as u64); + .with_member_id(member_id); codex_extrinsic_test_fixture.call_extrinsic_and_assert(); @@ -1078,7 +1073,7 @@ fn proposal_reactivation_succeeds() { let account_id = account_from_member_id(member_id); setup_new_council(1); - let council_size = ::CouncilSize::get() as u32; + let council_size = ::CouncilSize::get(); let starting_block = System::block_number(); // create proposal @@ -1160,7 +1155,7 @@ fn update_global_nft_limit_proposal_succeeds() { ProposalDetails::UpdateGlobalNftLimit(period, new_limit), ) }) - .with_member_id(member_id as u64); + .with_member_id(member_id); codex_extrinsic_test_fixture.call_extrinsic_and_assert(); diff --git a/runtime/src/tests/proposals_integration/working_group_proposals.rs b/runtime/src/tests/proposals_integration/working_group_proposals.rs index 076dfadb23..8f7954845e 100644 --- a/runtime/src/tests/proposals_integration/working_group_proposals.rs +++ b/runtime/src/tests/proposals_integration/working_group_proposals.rs @@ -545,7 +545,7 @@ fn run_create_add_working_group_leader_opening_proposal_execution_succeeds< StakePolicy { stake_amount: >::MinimumApplicationStake::get() as u128, + >>::MinimumApplicationStake::get(), leaving_unstaking_period: >::MinUnstakingPeriodLimit::get().into(), }, From 26e0994eabf3dcd6214b45018714f2fb12d18250 Mon Sep 17 00:00:00 2001 From: Mokhtar Naamani Date: Thu, 16 Mar 2023 23:17:32 +0400 Subject: [PATCH 37/87] cargo-checks covers runtime-benchmarks --- scripts/cargo-checks.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/scripts/cargo-checks.sh b/scripts/cargo-checks.sh index 689e3d6941..44c1a774a6 100755 --- a/scripts/cargo-checks.sh +++ b/scripts/cargo-checks.sh @@ -11,13 +11,13 @@ source ./features.sh export WASM_BUILD_TOOLCHAIN=nightly-2022-11-15 -echo 'running clippy (rust linter)' # When custom build.rs triggers wasm-build-runner-impl to build we get error: # "Rust WASM toolchain not installed, please install it!" # So we skip building the WASM binary by setting BUILD_DUMMY_WASM_BINARY=1 # Aggressive linting echo 'running cargo clippy' -BUILD_DUMMY_WASM_BINARY=1 cargo "+$WASM_BUILD_TOOLCHAIN" clippy --release --all -- -D warnings +#cargo "+$WASM_BUILD_TOOLCHAIN" clippy --release --all --features "${FEATURES}" -- -D warnings +cargo "+$WASM_BUILD_TOOLCHAIN" clippy --release --all --features runtime-benchmarks,"${FEATURES}" echo 'running cargo unit tests' -cargo "+$WASM_BUILD_TOOLCHAIN" test --release --all --features runtime-benchmarks,"${FEATURES}" \ No newline at end of file +cargo "+$WASM_BUILD_TOOLCHAIN" test --release --all --features runtime-benchmarks,"${FEATURES}" From b39f7ed7955915f7713167608c914e436a26fee7 Mon Sep 17 00:00:00 2001 From: Mokhtar Naamani Date: Fri, 17 Mar 2023 01:20:59 +0400 Subject: [PATCH 38/87] v0.9.39 - more clippy fixes --- runtime/src/tests/mod.rs | 62 ++++++++++++---------------------------- 1 file changed, 19 insertions(+), 43 deletions(-) diff --git a/runtime/src/tests/mod.rs b/runtime/src/tests/mod.rs index 2897fb0a79..0928355257 100644 --- a/runtime/src/tests/mod.rs +++ b/runtime/src/tests/mod.rs @@ -260,55 +260,31 @@ pub(crate) fn increase_total_balance_issuance_using_account_id( } pub(crate) fn max_proposal_stake() -> Balance { - let mut stakes = vec![]; - stakes - .push(::SetMaxValidatorCountProposalParameters::get()); - stakes.push(::RuntimeUpgradeProposalParameters::get()); - stakes.push(::SignalProposalParameters::get()); - stakes.push(::FundingRequestProposalParameters::get()); - stakes.push( - ::CreateWorkingGroupLeadOpeningProposalParameters::get( - ), - ); - stakes.push( + let stakes = vec![ + ::SetMaxValidatorCountProposalParameters::get(), + ::RuntimeUpgradeProposalParameters::get(), + ::SignalProposalParameters::get(), + ::FundingRequestProposalParameters::get(), + ::CreateWorkingGroupLeadOpeningProposalParameters::get(), ::FillWorkingGroupLeadOpeningProposalParameters::get(), - ); - stakes.push( ::UpdateWorkingGroupBudgetProposalParameters::get(), - ); - stakes.push( - ::DecreaseWorkingGroupLeadStakeProposalParameters::get( - ), - ); - stakes - .push(::SlashWorkingGroupLeadProposalParameters::get()); - stakes.push( + ::DecreaseWorkingGroupLeadStakeProposalParameters::get(), + ::SlashWorkingGroupLeadProposalParameters::get(), ::SetWorkingGroupLeadRewardProposalParameters::get(), - ); - stakes.push( ::TerminateWorkingGroupLeadProposalParameters::get(), - ); - stakes.push(::AmendConstitutionProposalParameters::get()); - stakes.push( - ::CancelWorkingGroupLeadOpeningProposalParameters::get( - ), - ); - stakes.push(::SetMembershipPriceProposalParameters::get()); - stakes.push( + ::AmendConstitutionProposalParameters::get(), + ::CancelWorkingGroupLeadOpeningProposalParameters::get(), + ::SetMembershipPriceProposalParameters::get(), ::SetCouncilBudgetIncrementProposalParameters::get(), - ); - stakes.push(::SetCouncilorRewardProposalParameters::get()); - stakes.push( + ::SetCouncilorRewardProposalParameters::get(), ::SetInitialInvitationBalanceProposalParameters::get(), - ); - stakes.push(::SetInvitationCountProposalParameters::get()); - stakes.push(::SetMembershipLeadInvitationQuotaProposalParameters::get()); - stakes.push(::SetReferralCutProposalParameters::get()); - stakes.push(::VetoProposalProposalParameters::get()); - stakes - .push(::UpdateChannelPayoutsProposalParameters::get()); - stakes - .push(::UpdateGlobalNftLimitProposalParameters::get()); + ::SetInvitationCountProposalParameters::get(), + ::SetMembershipLeadInvitationQuotaProposalParameters::get(), + ::SetReferralCutProposalParameters::get(), + ::VetoProposalProposalParameters::get(), + ::UpdateChannelPayoutsProposalParameters::get(), + ::UpdateGlobalNftLimitProposalParameters::get(), + ]; stakes .iter() From 687e447066ed7fdf8456e8d539efc392aea4750b Mon Sep 17 00:00:00 2001 From: Mokhtar Naamani Date: Fri, 17 Mar 2023 01:27:39 +0400 Subject: [PATCH 39/87] v0.9.39 - fix pallet dependencies on frame-benchmarking to run tests on individual pallets --- runtime-modules/bounty/Cargo.toml | 5 +++-- runtime-modules/constitution/Cargo.toml | 3 ++- runtime-modules/content/Cargo.toml | 3 ++- runtime-modules/council/Cargo.toml | 5 +++-- runtime-modules/council/src/mock.rs | 6 ++---- runtime-modules/forum/Cargo.toml | 7 ++++--- runtime-modules/membership/Cargo.toml | 3 ++- runtime-modules/project-token/Cargo.toml | 3 ++- runtime-modules/proposals/codex/Cargo.toml | 6 +++--- runtime-modules/proposals/discussion/Cargo.toml | 11 ++++++----- runtime-modules/proposals/engine/Cargo.toml | 9 +++++---- runtime-modules/referendum/Cargo.toml | 5 +++-- runtime-modules/storage/Cargo.toml | 7 ++++--- runtime-modules/utility/Cargo.toml | 3 ++- 14 files changed, 43 insertions(+), 33 deletions(-) diff --git a/runtime-modules/bounty/Cargo.toml b/runtime-modules/bounty/Cargo.toml index 81205887ec..f69910db91 100644 --- a/runtime-modules/bounty/Cargo.toml +++ b/runtime-modules/bounty/Cargo.toml @@ -38,10 +38,10 @@ staking-handler = { package = 'pallet-staking-handler', default-features = false default = ['std'] runtime-benchmarks = [ "common/runtime-benchmarks", - "frame-benchmarking", + "frame-benchmarking/runtime-benchmarks", "sp-runtime/runtime-benchmarks", "council/runtime-benchmarks", - "membership/runtime-benchmarks" + "membership/runtime-benchmarks", ] std = [ @@ -58,4 +58,5 @@ std = [ 'referendum/std', 'council/std', 'staking-handler/std', + 'frame-benchmarking?/std', ] \ No newline at end of file diff --git a/runtime-modules/constitution/Cargo.toml b/runtime-modules/constitution/Cargo.toml index 9a1f1cbfa8..b1caa1edc8 100644 --- a/runtime-modules/constitution/Cargo.toml +++ b/runtime-modules/constitution/Cargo.toml @@ -23,7 +23,7 @@ sp-core = { package = 'sp-core', default-features = false, git = 'https://github [features] default = ['std'] runtime-benchmarks = [ - "frame-benchmarking", + "frame-benchmarking/runtime-benchmarks", "common/runtime-benchmarks", ] std = [ @@ -36,4 +36,5 @@ std = [ 'scale-info/std', 'pallet-balances/std', 'common/std', + 'frame-benchmarking?/std', ] \ No newline at end of file diff --git a/runtime-modules/content/Cargo.toml b/runtime-modules/content/Cargo.toml index 4198d8f201..1abd7f2371 100755 --- a/runtime-modules/content/Cargo.toml +++ b/runtime-modules/content/Cargo.toml @@ -40,7 +40,7 @@ derive-new = "0.5" [features] default = ['std'] runtime-benchmarks = [ - "frame-benchmarking", + "frame-benchmarking/runtime-benchmarks", "sp-runtime/runtime-benchmarks", "membership/runtime-benchmarks", "storage/runtime-benchmarks", @@ -63,4 +63,5 @@ std = [ 'membership/std', 'project-token/std', 'scale-info/std', + 'frame-benchmarking?/std', ] diff --git a/runtime-modules/council/Cargo.toml b/runtime-modules/council/Cargo.toml index 6fbf8567bf..459da73050 100644 --- a/runtime-modules/council/Cargo.toml +++ b/runtime-modules/council/Cargo.toml @@ -32,8 +32,8 @@ membership = { package = 'pallet-membership', default-features = false, path = ' [features] default = ['std'] runtime-benchmarks = [ - 'frame-benchmarking', - 'membership', + 'frame-benchmarking/runtime-benchmarks', + 'membership/runtime-benchmarks', 'common/runtime-benchmarks', ] std = [ @@ -51,4 +51,5 @@ std = [ 'referendum/std', 'staking-handler/std', 'scale-info/std', + 'frame-benchmarking?/std', ] \ No newline at end of file diff --git a/runtime-modules/council/src/mock.rs b/runtime-modules/council/src/mock.rs index 007c0023cb..66e17e3949 100644 --- a/runtime-modules/council/src/mock.rs +++ b/runtime-modules/council/src/mock.rs @@ -819,14 +819,12 @@ where } pub fn check_new_council_elected_hook() { - let result = LAST_COUNCIL_ELECTED_OK.with(|value| assert!(value.borrow().0)); + LAST_COUNCIL_ELECTED_OK.with(|value| assert!(value.borrow().0)); // clear election sign LAST_COUNCIL_ELECTED_OK.with(|value| { *value.borrow_mut() = (false,); }); - - result } pub fn set_candidacy_note( @@ -1496,7 +1494,7 @@ pub fn set_invitation_lock( amount: Balance, ) { ::InvitedMemberStakingHandler::lock_with_reasons( - &who, + who, amount, WithdrawReasons::except(WithdrawReasons::TRANSACTION_PAYMENT), ); diff --git a/runtime-modules/forum/Cargo.toml b/runtime-modules/forum/Cargo.toml index ed19dd1557..18ec090eab 100755 --- a/runtime-modules/forum/Cargo.toml +++ b/runtime-modules/forum/Cargo.toml @@ -34,9 +34,9 @@ staking-handler = { package = 'pallet-staking-handler', default-features = false [features] default = ['std'] runtime-benchmarks = [ - 'frame-benchmarking', - 'membership', - 'working-group', + 'frame-benchmarking/runtime-benchmarks', + 'membership/runtime-benchmarks', + 'working-group/runtime-benchmarks', 'staking-handler', 'sp-core', 'common/runtime-benchmarks', @@ -56,4 +56,5 @@ std = [ 'membership/std', 'working-group/std', 'scale-info/std', + 'frame-benchmarking?/std', ] diff --git a/runtime-modules/membership/Cargo.toml b/runtime-modules/membership/Cargo.toml index 89a323de75..0efe0d87cc 100644 --- a/runtime-modules/membership/Cargo.toml +++ b/runtime-modules/membership/Cargo.toml @@ -28,7 +28,7 @@ sp-core = { package = 'sp-core', default-features = false, git = 'https://github [features] default = ['std'] runtime-benchmarks = [ - 'frame-benchmarking', + 'frame-benchmarking/runtime-benchmarks', 'common/runtime-benchmarks', ] std = [ @@ -44,4 +44,5 @@ std = [ 'common/std', 'staking-handler/std', 'scale-info/std', + 'frame-benchmarking?/std', ] \ No newline at end of file diff --git a/runtime-modules/project-token/Cargo.toml b/runtime-modules/project-token/Cargo.toml index ce0561e5bc..c978e1860e 100644 --- a/runtime-modules/project-token/Cargo.toml +++ b/runtime-modules/project-token/Cargo.toml @@ -31,7 +31,7 @@ sp-storage = { package = 'sp-storage', default-features = false, git = 'https:// [features] default = ['std'] runtime-benchmarks = [ - "frame-benchmarking", + "frame-benchmarking/runtime-benchmarks", "common/runtime-benchmarks", ] std = [ @@ -48,4 +48,5 @@ std = [ 'codec/std', 'serde', 'scale-info/std', + 'frame-benchmarking?/std' ] diff --git a/runtime-modules/proposals/codex/Cargo.toml b/runtime-modules/proposals/codex/Cargo.toml index 09a7a68c9e..86d50a095a 100644 --- a/runtime-modules/proposals/codex/Cargo.toml +++ b/runtime-modules/proposals/codex/Cargo.toml @@ -46,9 +46,9 @@ sp-npos-elections = { package = 'sp-npos-elections', git = 'https://github.com/j [features] default = ['std'] runtime-benchmarks = [ - 'frame-benchmarking', - 'balances', - 'council', + 'frame-benchmarking/runtime-benchmarks', + 'balances/runtime-benchmarks', + 'council/runtime-benchmarks', 'common/runtime-benchmarks', ] std = [ diff --git a/runtime-modules/proposals/discussion/Cargo.toml b/runtime-modules/proposals/discussion/Cargo.toml index f01ebff7ba..e9b28b8fb6 100644 --- a/runtime-modules/proposals/discussion/Cargo.toml +++ b/runtime-modules/proposals/discussion/Cargo.toml @@ -33,10 +33,10 @@ referendum = { package = 'pallet-referendum', default-features = false, path = ' [features] default = ['std'] runtime-benchmarks = [ - 'frame-benchmarking', - 'membership', - 'referendum', - 'council', + 'frame-benchmarking/runtime-benchmarks', + 'membership/runtime-benchmarks', + 'referendum/runtime-benchmarks', + 'council/runtime-benchmarks', 'common/runtime-benchmarks', ] std = [ @@ -52,5 +52,6 @@ std = [ 'council/std', 'membership/std', 'scale-info/std', - 'sp-runtime/std' + 'sp-runtime/std', + 'frame-benchmarking?/std', ] diff --git a/runtime-modules/proposals/engine/Cargo.toml b/runtime-modules/proposals/engine/Cargo.toml index 3884e2195d..b2348b6571 100644 --- a/runtime-modules/proposals/engine/Cargo.toml +++ b/runtime-modules/proposals/engine/Cargo.toml @@ -34,10 +34,10 @@ referendum = { package = 'pallet-referendum', default-features = false, path = ' [features] default = ['std'] runtime-benchmarks = [ - 'frame-benchmarking', - 'membership', - 'council', - 'referendum', + 'frame-benchmarking/runtime-benchmarks', + 'membership/runtime-benchmarks', + 'council/runtime-benchmarks', + 'referendum/runtime-benchmarks', 'common/runtime-benchmarks', ] std = [ @@ -56,4 +56,5 @@ std = [ 'referendum/std', 'membership/std', 'scale-info/std', + 'frame-benchmarking?/std' ] diff --git a/runtime-modules/referendum/Cargo.toml b/runtime-modules/referendum/Cargo.toml index dfe69c61b0..8867619f07 100644 --- a/runtime-modules/referendum/Cargo.toml +++ b/runtime-modules/referendum/Cargo.toml @@ -31,8 +31,8 @@ membership = { package = 'pallet-membership', default-features = false, path = ' [features] default = ['std'] runtime-benchmarks = [ - 'frame-benchmarking', - 'membership', + 'frame-benchmarking/runtime-benchmarks', + 'membership/runtime-benchmarks', 'common/runtime-benchmarks', ] std = [ @@ -49,4 +49,5 @@ std = [ 'balances/std', 'membership/std', 'scale-info/std', + 'frame-benchmarking?/std', ] diff --git a/runtime-modules/storage/Cargo.toml b/runtime-modules/storage/Cargo.toml index 760f36e344..2fafe4f7c4 100644 --- a/runtime-modules/storage/Cargo.toml +++ b/runtime-modules/storage/Cargo.toml @@ -36,10 +36,10 @@ derive-new = "0.5" [features] default = ['std'] runtime-benchmarks = [ - "frame-benchmarking", + "frame-benchmarking/runtime-benchmarks", "sp-runtime/runtime-benchmarks", - "working-group", - "membership", + "working-group/runtime-benchmarks", + "membership/runtime-benchmarks", 'sp-core', ] std = [ @@ -55,6 +55,7 @@ std = [ 'common/std', 'scale-info/std', 'working-group/std', + 'frame-benchmarking?/std', ] playground-runtime = [] testing-runtime = [] diff --git a/runtime-modules/utility/Cargo.toml b/runtime-modules/utility/Cargo.toml index d4cf85b73a..84c2e1f56a 100644 --- a/runtime-modules/utility/Cargo.toml +++ b/runtime-modules/utility/Cargo.toml @@ -33,7 +33,7 @@ strum = {version = "0.19", default-features = false} [features] default = ['std'] runtime-benchmarks = [ - "frame-benchmarking", + "frame-benchmarking/runtime-benchmarks", "common/runtime-benchmarks", ] std = [ @@ -49,4 +49,5 @@ std = [ 'sp-arithmetic/std', 'scale-info/std', 'working-group/std', + 'frame-benchmarking?/std', ] From d575b9ede8646b2a6130e7c060d8a0e8c20be9a5 Mon Sep 17 00:00:00 2001 From: Mokhtar Naamani Date: Mon, 20 Mar 2023 08:51:05 +0400 Subject: [PATCH 40/87] v0.9.39 - use --locked with cargo build command --- joystream-node.Dockerfile | 2 +- scripts/cargo-build.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/joystream-node.Dockerfile b/joystream-node.Dockerfile index 4e81d5e317..e145fc52cb 100644 --- a/joystream-node.Dockerfile +++ b/joystream-node.Dockerfile @@ -49,7 +49,7 @@ ARG WASM_BUILD_TOOLCHAIN=nightly-2022-11-15 ARG GIT_COMMIT_HASH="unknown" ARG CODE_SHASUM RUN SUBSTRATE_CLI_GIT_COMMIT_HASH="${GIT_COMMIT_HASH}-docker-build-${CODE_SHASUM}" \ - cargo build --release --features "${CARGO_FEATURES}" + cargo build --release --locked --features "${CARGO_FEATURES}" FROM ubuntu:22.04 LABEL description="Joystream node" diff --git a/scripts/cargo-build.sh b/scripts/cargo-build.sh index 71e2b335a3..a6546519aa 100755 --- a/scripts/cargo-build.sh +++ b/scripts/cargo-build.sh @@ -8,4 +8,4 @@ source features.sh export WASM_BUILD_TOOLCHAIN=nightly-2022-11-15 -cargo +nightly-2022-11-15 build --release --features "${FEATURES}" \ No newline at end of file +cargo +nightly-2022-11-15 build --release --locked --features "${FEATURES}" From 5ed8e4df08bbf74995f41ccf68bb856f93441c21 Mon Sep 17 00:00:00 2001 From: Mokhtar Naamani Date: Mon, 20 Mar 2023 13:45:58 +0400 Subject: [PATCH 41/87] devops - workaround missing aptitude --- devops/ansible/roles/common/tasks/install-tools.yml | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/devops/ansible/roles/common/tasks/install-tools.yml b/devops/ansible/roles/common/tasks/install-tools.yml index c9301b8b2f..094b3a014f 100644 --- a/devops/ansible/roles/common/tasks/install-tools.yml +++ b/devops/ansible/roles/common/tasks/install-tools.yml @@ -1,16 +1,10 @@ --- # Install developer tools -- name: Install aptitude - become: true - apt: - name: aptitude - state: latest - update_cache: true - - name: Install required system packages become: true apt: + update_cache: yes pkg: - coreutils - apt-transport-https From 7588b175c963562306ef978bdccea2d69ca52ac0 Mon Sep 17 00:00:00 2001 From: Mokhtar Naamani Date: Mon, 20 Mar 2023 13:46:21 +0400 Subject: [PATCH 42/87] updated chain metadata --- chain-metadata.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chain-metadata.json b/chain-metadata.json index 2d69f83c26..17ba0a54b9 100644 --- a/chain-metadata.json +++ b/chain-metadata.json @@ -1 +1 @@ -{"jsonrpc":"2.0","result":"0x6d6574610e050a000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f0814496e64657801102c4163636f756e74446174610114001401146e6f6e6365100114496e646578000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e7444617461000010000005050014083c70616c6c65745f62616c616e6365732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500012c6d6973635f66726f7a656e18011c42616c616e63650001286665655f66726f7a656e18011c42616c616e636500001800000507001c0c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540120000c01186e6f726d616c2001045400012c6f7065726174696f6e616c200104540001246d616e6461746f7279200104540000200c2873705f77656967687473247765696768745f76321857656967687400000801207265665f74696d6524010c75363400012870726f6f665f73697a6524010c75363400002400000628002800000506002c083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d000030000002080034102873705f72756e74696d651c67656e65726963186469676573741844696765737400000401106c6f677338013c5665633c4469676573744974656d3e0000380000023c003c102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0001142850726552756e74696d650800400144436f6e73656e737573456e67696e654964000030011c5665633c75383e00060024436f6e73656e7375730800400144436f6e73656e737573456e67696e654964000030011c5665633c75383e000400105365616c0800400144436f6e73656e737573456e67696e654964000030011c5665633c75383e000500144f74686572040030011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e745570646174656400080000400000030400000008004400000248004808306672616d655f73797374656d2c4576656e745265636f7264080445014c0454012c000c01147068617365d103011450686173650001146576656e744c010445000118746f70696373d50301185665633c543e00004c08586a6f7973747265616d5f6e6f64655f72756e74696d653052756e74696d654576656e7400018c1853797374656d04005001706672616d655f73797374656d3a3a4576656e743c52756e74696d653e0000001c5574696c69747904007401607375627374726174655f7574696c6974793a3a4576656e740001002042616c616e636573040080017c70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e000500485472616e73616374696f6e5061796d656e7404008801a870616c6c65745f7472616e73616374696f6e5f7061796d656e743a3a4576656e743c52756e74696d653e00060068456c656374696f6e50726f76696465724d756c7469506861736504008c01d070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173653a3a4576656e743c52756e74696d653e0007001c5374616b696e670400a8017870616c6c65745f7374616b696e673a3a4576656e743c52756e74696d653e0008001c53657373696f6e0400bc015470616c6c65745f73657373696f6e3a3a4576656e740009001c4772616e6470610400c0015470616c6c65745f6772616e6470613a3a4576656e74000b0020496d4f6e6c696e650400d4018070616c6c65745f696d5f6f6e6c696e653a3a4576656e743c52756e74696d653e000d00204f6666656e6365730400f8015870616c6c65745f6f6666656e6365733a3a4576656e74000e0020426167734c69737404000101018070616c6c65745f626167735f6c6973743a3a4576656e743c52756e74696d653e0010001c56657374696e6704000501017870616c6c65745f76657374696e673a3a4576656e743c52756e74696d653e001100204d756c746973696704000901017c70616c6c65745f6d756c74697369673a3a4576656e743c52756e74696d653e0012001c436f756e63696c04001101015c636f756e63696c3a3a4576656e743c52756e74696d653e001300285265666572656e64756d0400190101c47265666572656e64756d3a3a4576656e743c52756e74696d652c207265666572656e64756d3a3a496e7374616e6365313e0014001c4d656d626572730400290101686d656d626572736869703a3a4576656e743c52756e74696d653e00150014466f72756d040051010154666f72756d3a3a4576656e743c52756e74696d653e00160030436f6e737469747574696f6e04006d01018c70616c6c65745f636f6e737469747574696f6e3a3a4576656e743c52756e74696d653e00170018426f756e7479040071010158626f756e74793a3a4576656e743c52756e74696d653e001800404a6f7973747265616d5574696c6974790400950101846a6f7973747265616d5f7574696c6974793a3a4576656e743c52756e74696d653e0019001c436f6e74656e740400a101015c636f6e74656e743a3a4576656e743c52756e74696d653e001a001c53746f7261676504008d02015c73746f726167653a3a4576656e743c52756e74696d653e001b003050726f6a656374546f6b656e0400c102017470726f6a6563745f746f6b656e3a3a4576656e743c52756e74696d653e001c003c50726f706f73616c73456e67696e6504002903018070726f706f73616c735f656e67696e653a3a4576656e743c52756e74696d653e001d004c50726f706f73616c7344697363757373696f6e04004103019070726f706f73616c735f64697363757373696f6e3a3a4576656e743c52756e74696d653e001e003850726f706f73616c73436f64657804004903017c70726f706f73616c735f636f6465783a3a4576656e743c52756e74696d653e001f0044466f72756d576f726b696e6747726f757004006d0301dc776f726b696e675f67726f75703a3a4576656e743c52756e74696d652c20776f726b696e675f67726f75703a3a496e7374616e6365313e0020004c53746f72616765576f726b696e6747726f75700400910301dc776f726b696e675f67726f75703a3a4576656e743c52756e74696d652c20776f726b696e675f67726f75703a3a496e7374616e6365323e0021004c436f6e74656e74576f726b696e6747726f75700400990301dc776f726b696e675f67726f75703a3a4576656e743c52756e74696d652c20776f726b696e675f67726f75703a3a496e7374616e6365333e0022006c4f7065726174696f6e73576f726b696e6747726f7570416c7068610400a10301dc776f726b696e675f67726f75703a3a4576656e743c52756e74696d652c20776f726b696e675f67726f75703a3a496e7374616e6365343e0023003c417070576f726b696e6747726f75700400a90301dc776f726b696e675f67726f75703a3a4576656e743c52756e74696d652c20776f726b696e675f67726f75703a3a496e7374616e6365353e002400584d656d62657273686970576f726b696e6747726f75700400b10301dc776f726b696e675f67726f75703a3a4576656e743c52756e74696d652c20776f726b696e675f67726f75703a3a496e7374616e6365363e002500684f7065726174696f6e73576f726b696e6747726f7570426574610400b90301dc776f726b696e675f67726f75703a3a4576656e743c52756e74696d652c20776f726b696e675f67726f75703a3a496e7374616e6365373e0026006c4f7065726174696f6e73576f726b696e6747726f757047616d6d610400c10301dc776f726b696e675f67726f75703a3a4576656e743c52756e74696d652c20776f726b696e675f67726f75703a3a496e7374616e6365383e00270060446973747269627574696f6e576f726b696e6747726f75700400c90301dc776f726b696e675f67726f75703a3a4576656e743c52756e74696d652c20776f726b696e675f67726f75703a3a496e7374616e6365393e00280000500c306672616d655f73797374656d1870616c6c6574144576656e740404540001184045787472696e7369635375636365737304013464697370617463685f696e666f5401304469737061746368496e666f00000490416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656408013864697370617463685f6572726f7260013444697370617463684572726f7200013464697370617463685f696e666f5401304469737061746368496e666f00010450416e2065787472696e736963206661696c65642e2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e7404011c6163636f756e74000130543a3a4163636f756e7449640003046841206e6577206163636f756e742077617320637265617465642e344b696c6c65644163636f756e7404011c6163636f756e74000130543a3a4163636f756e74496400040458416e206163636f756e7420776173207265617065642e2052656d61726b656408011873656e646572000130543a3a4163636f756e744964000110686173682c011c543a3a48617368000504704f6e206f6e2d636861696e2072656d61726b2068617070656e65642e04704576656e7420666f72207468652053797374656d2070616c6c65742e540c346672616d655f737570706f7274206469737061746368304469737061746368496e666f00000c0118776569676874200118576569676874000114636c6173735801344469737061746368436c617373000120706179735f6665655c0110506179730000580c346672616d655f737570706f7274206469737061746368344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f7279000200005c0c346672616d655f737570706f727420646973706174636810506179730001080c596573000000084e6f0001000060082873705f72756e74696d653444697370617463684572726f72000134144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c65040064012c4d6f64756c654572726f7200030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050040546f6f4d616e79436f6e73756d65727300060014546f6b656e0400680128546f6b656e4572726f720007002841726974686d6574696304006c013c41726974686d657469634572726f72000800345472616e73616374696f6e616c04007001485472616e73616374696f6e616c4572726f7200090024457868617573746564000a0028436f7272757074696f6e000b002c556e617661696c61626c65000c000064082873705f72756e74696d652c4d6f64756c654572726f720000080114696e64657808010875380001146572726f7240018c5b75383b204d41585f4d4f44554c455f4552524f525f454e434f4445445f53495a455d000068082873705f72756e74696d6528546f6b656e4572726f7200011c1c4e6f46756e647300000020576f756c644469650001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f72746564000600006c083473705f61726974686d657469633c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f0002000070082873705f72756e74696d65485472616e73616374696f6e616c4572726f72000108304c696d6974526561636865640000001c4e6f4c6179657200010000740c3870616c6c65745f7574696c6974791870616c6c6574144576656e74000118404261746368496e746572727570746564080114696e64657810010c7533320001146572726f7260013444697370617463684572726f7200000855014261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c2061734877656c6c20617320746865206572726f722e384261746368436f6d706c65746564000104c84261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e604261746368436f6d706c65746564576974684572726f7273000204b44261746368206f66206469737061746368657320636f6d706c657465642062757420686173206572726f72732e344974656d436f6d706c657465640003041d01412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206e6f206572726f722e284974656d4661696c65640401146572726f7260013444697370617463684572726f720004041101412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206572726f722e30446973706174636865644173040118726573756c747801384469737061746368526573756c7400050458412063616c6c2077617320646973706174636865642e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a090909780418526573756c74080454017c044501600108084f6b04007c000000000c45727204006000000100007c0000040000800c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001281c456e646f77656408011c6163636f756e74000130543a3a4163636f756e744964000130667265655f62616c616e6365180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f737408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742c78726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e736665720c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2842616c616e63655365740c010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e63650001207265736572766564180128543a3a42616c616e636500030468412062616c616e6365207761732073657420627920726f6f742e20526573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e726573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000504e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656410011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014864657374696e6174696f6e5f7374617475738401185374617475730006084d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652e1c4465706f73697408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000704d8536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e20576974686472617708010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008041d01536f6d6520616d6f756e74207761732077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650009040101536f6d6520616d6f756e74207761732072656d6f7665642066726f6d20746865206163636f756e742028652e672e20666f72206d69736265686176696f72292e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a0909098414346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e6365537461747573000108104672656500000020526573657276656400010000880c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741870616c6c6574144576656e74040454000104485472616e73616374696f6e466565506169640c010c77686f000130543a3a4163636f756e74496400012861637475616c5f66656518013042616c616e63654f663c543e00010c74697018013042616c616e63654f663c543e000008590141207472616e73616374696f6e20666565206061637475616c5f666565602c206f662077686963682060746970602077617320616464656420746f20746865206d696e696d756d20696e636c7573696f6e206665652c5c686173206265656e2070616964206279206077686f602e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a0909098c0c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173651870616c6c6574144576656e7404045400011838536f6c7574696f6e53746f7265640c011c636f6d7075746590013c456c656374696f6e436f6d707574650001186f726967696e9401504f7074696f6e3c543a3a4163636f756e7449643e000130707265765f656a6563746564980110626f6f6c00001cb44120736f6c7574696f6e207761732073746f72656420776974682074686520676976656e20636f6d707574652e00510154686520606f726967696e6020696e6469636174657320746865206f726967696e206f662074686520736f6c7574696f6e2e20496620606f726967696e602069732060536f6d65284163636f756e74496429602c55017468652073746f72656420736f6c7574696f6e20776173207375626d6974656420696e20746865207369676e65642070686173652062792061206d696e657220776974682074686520604163636f756e744964602e25014f74686572776973652c2074686520736f6c7574696f6e207761732073746f7265642065697468657220647572696e672074686520756e7369676e6564207068617365206f722062794d0160543a3a466f7263654f726967696e602e205468652060626f6f6c6020697320607472756560207768656e20612070726576696f757320736f6c7574696f6e2077617320656a656374656420746f206d616b6548726f6f6d20666f722074686973206f6e652e44456c656374696f6e46696e616c697a656408011c636f6d7075746590013c456c656374696f6e436f6d7075746500011473636f72659c0134456c656374696f6e53636f7265000104190154686520656c656374696f6e20686173206265656e2066696e616c697a65642c20776974682074686520676976656e20636f6d7075746174696f6e20616e642073636f72652e38456c656374696f6e4661696c656400020c4c416e20656c656374696f6e206661696c65642e0001014e6f74206d7563682063616e20626520736169642061626f757420776869636820636f6d7075746573206661696c656420696e207468652070726f636573732e20526577617264656408011c6163636f756e740001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e74496400011476616c756518013042616c616e63654f663c543e0003042501416e206163636f756e7420686173206265656e20726577617264656420666f72207468656972207369676e6564207375626d697373696f6e206265696e672066696e616c697a65642e1c536c617368656408011c6163636f756e740001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e74496400011476616c756518013042616c616e63654f663c543e0004042101416e206163636f756e7420686173206265656e20736c617368656420666f72207375626d697474696e6720616e20696e76616c6964207369676e6564207375626d697373696f6e2e4450686173655472616e736974696f6e65640c011066726f6da0015450686173653c543a3a426c6f636b4e756d6265723e000108746fa0015450686173653c543a3a426c6f636b4e756d6265723e000114726f756e6410010c753332000504b85468657265207761732061207068617365207472616e736974696f6e20696e206120676976656e20726f756e642e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a09090990089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173653c456c656374696f6e436f6d707574650001141c4f6e436861696e000000185369676e656400010020556e7369676e65640002002046616c6c6261636b00030024456d657267656e6379000400009404184f7074696f6e04045401000108104e6f6e6500000010536f6d6504000000000100009800000500009c084473705f6e706f735f656c656374696f6e7334456c656374696f6e53636f726500000c01346d696e696d616c5f7374616b6518013c457874656e64656442616c616e636500012473756d5f7374616b6518013c457874656e64656442616c616e636500014473756d5f7374616b655f7371756172656418013c457874656e64656442616c616e63650000a0089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173651450686173650408426e011001100c4f6666000000185369676e656400010020556e7369676e65640400a4012828626f6f6c2c20426e2900020024456d657267656e637900030000a400000408981000a8103870616c6c65745f7374616b696e671870616c6c65741870616c6c6574144576656e7404045400013c1c457261506169640c01246572615f696e646578100120457261496e64657800014076616c696461746f725f7061796f757418013042616c616e63654f663c543e00012472656d61696e64657218013042616c616e63654f663c543e000008550154686520657261207061796f757420686173206265656e207365743b207468652066697273742062616c616e6365206973207468652076616c696461746f722d7061796f75743b20746865207365636f6e64206973c07468652072656d61696e6465722066726f6d20746865206d6178696d756d20616d6f756e74206f66207265776172642e2052657761726465640801147374617368000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000104bc546865206e6f6d696e61746f7220686173206265656e207265776172646564206279207468697320616d6f756e742e1c536c61736865640801187374616b6572000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e0002041d0141207374616b6572202876616c696461746f72206f72206e6f6d696e61746f722920686173206265656e20736c61736865642062792074686520676976656e20616d6f756e742e34536c6173685265706f727465640c012476616c696461746f72000130543a3a4163636f756e7449640001206672616374696f6eac011c50657262696c6c000124736c6173685f657261100120457261496e64657800030859014120736c61736820666f722074686520676976656e2076616c696461746f722c20666f722074686520676976656e2070657263656e74616765206f66207468656972207374616b652c2061742074686520676976656e54657261206173206265656e207265706f727465642e684f6c64536c617368696e675265706f727444697363617264656404013473657373696f6e5f696e64657810013053657373696f6e496e6465780004081901416e206f6c6420736c617368696e67207265706f72742066726f6d2061207072696f72206572612077617320646973636172646564206265636175736520697420636f756c64446e6f742062652070726f6365737365642e385374616b657273456c65637465640005048441206e657720736574206f66207374616b6572732077617320656c65637465642e18426f6e6465640801147374617368000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000610d0416e206163636f756e742068617320626f6e646564207468697320616d6f756e742e205c5b73746173682c20616d6f756e745c5d004d014e4f54453a2054686973206576656e74206973206f6e6c7920656d6974746564207768656e2066756e64732061726520626f6e64656420766961206120646973706174636861626c652e204e6f7461626c792c210169742077696c6c206e6f7420626520656d697474656420666f72207374616b696e672072657761726473207768656e20746865792061726520616464656420746f207374616b652e20556e626f6e6465640801147374617368000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e00070490416e206163636f756e742068617320756e626f6e646564207468697320616d6f756e742e2457697468647261776e0801147374617368000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e0008085901416e206163636f756e74206861732063616c6c6564206077697468647261775f756e626f6e6465646020616e642072656d6f76656420756e626f6e64696e67206368756e6b7320776f727468206042616c616e6365606466726f6d2074686520756e6c6f636b696e672071756575652e184b69636b65640801246e6f6d696e61746f72000130543a3a4163636f756e7449640001147374617368000130543a3a4163636f756e744964000904b441206e6f6d696e61746f7220686173206265656e206b69636b65642066726f6d20612076616c696461746f722e545374616b696e67456c656374696f6e4661696c6564000a04ac54686520656c656374696f6e206661696c65642e204e6f206e65772065726120697320706c616e6e65642e1c4368696c6c65640401147374617368000130543a3a4163636f756e744964000b042101416e206163636f756e74206861732073746f707065642070617274696369706174696e672061732065697468657220612076616c696461746f72206f72206e6f6d696e61746f722e345061796f7574537461727465640801246572615f696e646578100120457261496e64657800013c76616c696461746f725f7374617368000130543a3a4163636f756e744964000c0498546865207374616b657273272072657761726473206172652067657474696e6720706169642e4456616c696461746f7250726566735365740801147374617368000130543a3a4163636f756e7449640001147072656673b0013856616c696461746f725072656673000d0498412076616c696461746f72206861732073657420746865697220707265666572656e6365732e20466f7263654572610401106d6f6465b8011c466f7263696e67000e047441206e657720666f72636520657261206d6f646520776173207365742e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a090909ac0c3473705f61726974686d65746963287065725f7468696e67731c50657262696c6c0000040010010c7533320000b0083870616c6c65745f7374616b696e673856616c696461746f7250726566730000080128636f6d6d697373696f6eb4011c50657262696c6c00011c626c6f636b6564980110626f6f6c0000b4000006ac00b8083870616c6c65745f7374616b696e671c466f7263696e67000110284e6f74466f7263696e6700000020466f7263654e657700010024466f7263654e6f6e650002002c466f726365416c7761797300030000bc0c3870616c6c65745f73657373696f6e1870616c6c6574144576656e74000104284e657753657373696f6e04013473657373696f6e5f696e64657810013053657373696f6e496e64657800000839014e65772073657373696f6e206861732068617070656e65642e204e6f746520746861742074686520617267756d656e74206973207468652073657373696f6e20696e6465782c206e6f74207468659c626c6f636b206e756d626572206173207468652074797065206d6967687420737567676573742e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a090909c00c3870616c6c65745f6772616e6470611870616c6c6574144576656e7400010c384e6577417574686f726974696573040134617574686f726974795f736574c40134417574686f726974794c6973740000048c4e657720617574686f726974792073657420686173206265656e206170706c6965642e185061757365640001049843757272656e7420617574686f726974792073657420686173206265656e207061757365642e1c526573756d65640002049c43757272656e7420617574686f726974792073657420686173206265656e20726573756d65642e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a090909c4000002c800c800000408cc2800cc0c4c73705f66696e616c6974795f6772616e6470610c617070185075626c696300000400d0013c656432353531393a3a5075626c69630000d00c1c73705f636f72651c65643235353139185075626c6963000004000401205b75383b2033325d0000d40c4070616c6c65745f696d5f6f6e6c696e651870616c6c6574144576656e7404045400010c444865617274626561745265636569766564040130617574686f726974795f6964d80138543a3a417574686f726974794964000004c041206e657720686561727462656174207761732072656365697665642066726f6d2060417574686f726974794964602e1c416c6c476f6f64000104d041742074686520656e64206f66207468652073657373696f6e2c206e6f206f6666656e63652077617320636f6d6d69747465642e2c536f6d654f66666c696e6504011c6f66666c696e65e0016c5665633c4964656e74696669636174696f6e5475706c653c543e3e000204290141742074686520656e64206f66207468652073657373696f6e2c206174206c65617374206f6e652076616c696461746f722077617320666f756e6420746f206265206f66666c696e652e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a090909d8104070616c6c65745f696d5f6f6e6c696e651c737232353531392c6170705f73723235353139185075626c696300000400dc013c737232353531393a3a5075626c69630000dc0c1c73705f636f72651c73723235353139185075626c6963000004000401205b75383b2033325d0000e0000002e400e40000040800e800e8083870616c6c65745f7374616b696e67204578706f7375726508244163636f756e74496401001c42616c616e63650118000c0114746f74616cec011c42616c616e636500010c6f776eec011c42616c616e63650001186f7468657273f001ac5665633c496e646976696475616c4578706f737572653c4163636f756e7449642c2042616c616e63653e3e0000ec0000061800f0000002f400f4083870616c6c65745f7374616b696e6748496e646976696475616c4578706f7375726508244163636f756e74496401001c42616c616e636501180008010c77686f0001244163636f756e74496400011476616c7565ec011c42616c616e63650000f80c3c70616c6c65745f6f6666656e6365731870616c6c6574144576656e740001041c4f6666656e63650801106b696e64fc01104b696e6400012074696d65736c6f743001384f706171756554696d65536c6f7400000c5101546865726520697320616e206f6666656e6365207265706f72746564206f662074686520676976656e20606b696e64602068617070656e656420617420746865206073657373696f6e5f696e6465786020616e643501286b696e642d7370656369666963292074696d6520736c6f742e2054686973206576656e74206973206e6f74206465706f736974656420666f72206475706c696361746520736c61736865732e4c5c5b6b696e642c2074696d65736c6f745c5d2e04304576656e747320747970652efc00000310000000080001010c4070616c6c65745f626167735f6c6973741870616c6c6574144576656e740804540004490001082052656261676765640c010c77686f000130543a3a4163636f756e74496400011066726f6d280120543a3a53636f7265000108746f280120543a3a53636f7265000004a44d6f76656420616e206163636f756e742066726f6d206f6e652062616720746f20616e6f746865722e3053636f72655570646174656408010c77686f000130543a3a4163636f756e7449640001246e65775f73636f7265280120543a3a53636f7265000104d855706461746564207468652073636f7265206f6620736f6d65206163636f756e7420746f2074686520676976656e20616d6f756e742e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a09090905010c3870616c6c65745f76657374696e671870616c6c6574144576656e740404540001083856657374696e675570646174656408011c6163636f756e74000130543a3a4163636f756e744964000120756e76657374656418013042616c616e63654f663c543e000008510154686520616d6f756e742076657374656420686173206265656e20757064617465642e205468697320636f756c6420696e6469636174652061206368616e676520696e2066756e647320617661696c61626c652e25015468652062616c616e636520676976656e2069732074686520616d6f756e74207768696368206973206c65667420756e7665737465642028616e642074687573206c6f636b6564292e4056657374696e67436f6d706c6574656404011c6163636f756e74000130543a3a4163636f756e7449640001049c416e205c5b6163636f756e745c5d20686173206265636f6d652066756c6c79207665737465642e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a09090909010c3c70616c6c65745f6d756c74697369671870616c6c6574144576656e740404540001102c4e65774d756c74697369670c0124617070726f76696e67000130543a3a4163636f756e7449640001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c486173680000048c41206e6577206d756c7469736967206f7065726174696f6e2068617320626567756e2e404d756c7469736967417070726f76616c100124617070726f76696e67000130543a3a4163636f756e74496400012474696d65706f696e740d01016454696d65706f696e743c543a3a426c6f636b4e756d6265723e0001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c48617368000104c841206d756c7469736967206f7065726174696f6e20686173206265656e20617070726f76656420627920736f6d656f6e652e404d756c74697369674578656375746564140124617070726f76696e67000130543a3a4163636f756e74496400012474696d65706f696e740d01016454696d65706f696e743c543a3a426c6f636b4e756d6265723e0001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c48617368000118726573756c747801384469737061746368526573756c740002049c41206d756c7469736967206f7065726174696f6e20686173206265656e2065786563757465642e444d756c746973696743616e63656c6c656410012863616e63656c6c696e67000130543a3a4163636f756e74496400012474696d65706f696e740d01016454696d65706f696e743c543a3a426c6f636b4e756d6265723e0001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c48617368000304a041206d756c7469736967206f7065726174696f6e20686173206265656e2063616e63656c6c65642e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a0909090d01083c70616c6c65745f6d756c74697369672454696d65706f696e74042c426c6f636b4e756d62657201100008011868656967687410012c426c6f636b4e756d626572000114696e64657810010c75333200001101083870616c6c65745f636f756e63696c205261774576656e74101c42616c616e636501182c426c6f636b4e756d6265720110204d656d62657249640128244163636f756e7449640100014c5c416e6e6f756e63696e67506572696f6453746172746564040010012c426c6f636b4e756d6265720000045c4e657720636f756e63696c2077617320656c65637465644c4e6f74456e6f75676843616e64696461746573040010012c426c6f636b4e756d6265720001041d01416e6e6f756e63696e6720706572696f642063616e27742066696e6973682062656361757365206f6620696e73756666696369656e742063616e6469647461746520636f756e744c566f74696e67506572696f6453746172746564040010010c753332000204a843616e646964617465732061726520616e6e6f756e63656420616e6420766f74696e6720737461727473304e657743616e64696461746510002801204d656d626572496400000001244163636f756e74496400000001244163636f756e744964000018011c42616c616e63650003045c4e65772063616e64696461746520616e6e6f756e636564444e6577436f756e63696c456c65637465640800150101345665633c4d656d62657249643e000010012c426c6f636b4e756d626572000404944e657720636f756e63696c2077617320656c656374656420616e64206170706f696e746564504e6577436f756e63696c4e6f74456c6563746564040010012c426c6f636b4e756d6265720005046c4e657720636f756e63696c20776173206e6f7420656c65637465645443616e6469646163795374616b6552656c6561736504002801204d656d6265724964000604d843616e646964616379207374616b65207468617420776173206e6f206c6f6e676572206e6565646564207761732072656c65617365644443616e646964616379576974686472617704002801204d656d62657249640007049443616e646964617465206861732077697468647261776e206869732063616e6469646163794043616e6469646163794e6f746553657408002801204d656d6265724964000030011c5665633c75383e000804d05468652063616e64696461746520686173207365742061206e6577206e6f746520666f722074686569722063616e646964616379345265776172645061796d656e7410002801204d656d626572496400000001244163636f756e744964000018011c42616c616e6365000018011c42616c616e6365000904c05468652077686f6c652072657761726420776173207061696420746f2074686520636f756e63696c206d656d6265722e4042756467657442616c616e6365536574040018011c42616c616e6365000a049c4275646765742062616c616e636520776173206368616e6765642062792074686520726f6f742e30427564676574526566696c6c040018011c42616c616e6365000b04c44275646765742062616c616e63652077617320696e63726561736564206279206175746f6d6174696320726566696c6c2e4c427564676574526566696c6c506c616e6e6564040010012c426c6f636b4e756d626572000c048c546865206e6578742062756467657420726566696c6c2077617320706c616e6e65642e58427564676574496e6372656d656e7455706461746564040018011c42616c616e6365000d048842756467657420696e6372656d656e7420686173206265656e20757064617465642e58436f756e63696c6f7252657761726455706461746564040018011c42616c616e6365000e0488436f756e63696c6f722072657761726420686173206265656e20757064617465642e345265717565737446756e64656408000001244163636f756e744964000018011c42616c616e6365000f045c5265717565737420686173206265656e2066756e6465644c436f756e63696c42756467657446756e6465640c002801204d656d6265724964000018011c42616c616e6365000030011c5665633c75383e0010146046756e642074686520636f756e63696c206275646765742e1c506172616d733a2c2d204d656d6265722049444c2d20416d6f756e74206f662062616c616e63652c2d20526174696f6e616c6544436f756e63696c6f7252656d61726b656408002801204d656d6265724964000030011c5665633c75383e00110460436f756e63696c6f722072656d61726b206d6573736167654443616e64696461746552656d61726b656408002801204d656d6265724964000030011c5665633c75383e0012046043616e6469646174652072656d61726b206d657373616765085c4576656e747320666f722074686973206d6f64756c652e00150100000228001901084470616c6c65745f7265666572656e64756d205261774576656e741c2c426c6f636b4e756d62657201101c42616c616e636501181048617368012c244163636f756e744964010024566f7465506f7765720118204d656d626572496401280449011d010120445265666572656e64756d53746172746564080010010c753332000010012c426c6f636b4e756d626572000004485265666572656e64756d20737461727465646c5265666572656e64756d53746172746564466f72636566756c6c79080010010c753332000010012c426c6f636b4e756d626572000104485265666572656e64756d20737461727465645452657665616c696e67537461676553746172746564040010012c426c6f636b4e756d6265720002046452657665616c696e672070686173652068617320626567756e485265666572656e64756d46696e69736865640400210101985665633c4f7074696f6e526573756c743c4d656d62657249642c20566f7465506f7765723e3e000304c05265666572656e64756d20656e64656420616e642077696e6e696e67206f7074696f6e207761732073656c656374656420566f7465436173740c000001244163636f756e74496400002c011048617368000018011c42616c616e636500040478557365722063617374206120766f746520696e207265666572656e64756d30566f746552657665616c65640c000001244163636f756e74496400002801204d656d6265724964000030011c5665633c75383e00050458557365722072657665616c65642068697320766f7465345374616b6552656c656173656404000001244163636f756e7449640006045c557365722072656c656173656420686973207374616b655c4163636f756e744f707465644f75744f66566f74696e6704000001244163636f756e744964000704d84163636f756e74207065726d616e656e746c79206f70746564206f7574206f6620766f74696e6720696e207265666572656e64756d2e085c4576656e747320666f722074686973206d6f64756c652e001d01084470616c6c65745f7265666572656e64756d24496e7374616e6365310000000021010000022501002501084470616c6c65745f7265666572656e64756d304f7074696f6e526573756c7408204d656d6265724964012824566f7465506f7765720118000801246f7074696f6e5f69642801204d656d6265724964000128766f74655f706f776572180124566f7465506f77657200002901084470616c6c65745f6d656d62657273686970205261774576656e7420204d656d626572496401281c42616c616e63650118244163636f756e74496401005c4275794d656d62657273686970506172616d6574657273012d011c4163746f724964012868496e766974654d656d62657273686970506172616d6574657273013901584372656174654d656d626572506172616d6574657273013d0160476966744d656d62657273686970506172616d65746572730141010144344d656d626572496e76697465640c002801204d656d6265724964000039010168496e766974654d656d62657273686970506172616d6574657273000018011c42616c616e6365000000404d656d6265727368697047696674656408002801204d656d6265724964000041010160476966744d656d62657273686970506172616d6574657273000100404d656d62657273686970426f756768740c002801204d656d626572496400002d01015c4275794d656d62657273686970506172616d6574657273000010010c753332000200504d656d62657250726f66696c65557064617465640c002801204d656d626572496400003101013c4f7074696f6e3c5665633c75383e3e00003101013c4f7074696f6e3c5665633c75383e3e000300544d656d6265724163636f756e7473557064617465640c002801204d656d626572496400009401444f7074696f6e3c4163636f756e7449643e00009401444f7074696f6e3c4163636f756e7449643e0004007c4d656d626572566572696669636174696f6e537461747573557064617465640c002801204d656d62657249640000980110626f6f6c000028011c4163746f72496400050048526566657272616c437574557064617465640400080108753800060048496e76697465735472616e736665727265640c002801204d656d626572496400002801204d656d6265724964000010010c753332000700584d656d62657273686970507269636555706461746564040018011c42616c616e63650008007c496e697469616c496e7669746174696f6e42616c616e636555706461746564040018011c42616c616e6365000900704c6561646572496e7669746174696f6e51756f746155706461746564040010010c753332000a0074496e697469616c496e7669746174696f6e436f756e7455706461746564040010010c753332000b004c5374616b696e674163636f756e74416464656408000001244163636f756e74496400002801204d656d6265724964000c00545374616b696e674163636f756e7452656d6f76656408000001244163636f756e74496400002801204d656d6265724964000d005c5374616b696e674163636f756e74436f6e6669726d656408000001244163636f756e74496400002801204d656d6265724964000e00384d656d62657252656d61726b65640c002801204d656d6265724964000030011c5665633c75383e0000490101704f7074696f6e3c284163636f756e7449642c2042616c616e6365293e000f00344d656d626572437265617465640c002801204d656d626572496400003d0101584372656174654d656d626572506172616d6574657273000010010c753332001000085c4576656e747320666f722074686973206d6f64756c652e002d01084470616c6c65745f6d656d626572736869705c4275794d656d62657273686970506172616d657465727308244163636f756e7449640100204d656d6265724964012800140130726f6f745f6163636f756e740001244163636f756e744964000148636f6e74726f6c6c65725f6163636f756e740001244163636f756e74496400011868616e646c653101013c4f7074696f6e3c5665633c75383e3e0001206d6574616461746130011c5665633c75383e00012c72656665727265725f6964350101404f7074696f6e3c4d656d62657249643e0000310104184f7074696f6e04045401300108104e6f6e6500000010536f6d650400300000010000350104184f7074696f6e04045401280108104e6f6e6500000010536f6d6504002800000100003901084470616c6c65745f6d656d6265727368697068496e766974654d656d62657273686970506172616d657465727308244163636f756e7449640100204d656d6265724964012800140148696e766974696e675f6d656d6265725f69642801204d656d6265724964000130726f6f745f6163636f756e740001244163636f756e744964000148636f6e74726f6c6c65725f6163636f756e740001244163636f756e74496400011868616e646c653101013c4f7074696f6e3c5665633c75383e3e0001206d6574616461746130011c5665633c75383e00003d01084470616c6c65745f6d656d62657273686970584372656174654d656d626572506172616d657465727304244163636f756e744964010000140130726f6f745f6163636f756e740001244163636f756e744964000148636f6e74726f6c6c65725f6163636f756e740001244163636f756e74496400011868616e646c6530011c5665633c75383e0001206d6574616461746130011c5665633c75383e00014869735f666f756e64696e675f6d656d626572980110626f6f6c00004101084470616c6c65745f6d656d6265727368697060476966744d656d62657273686970506172616d657465727308244163636f756e74496401001c42616c616e6365011800200130726f6f745f6163636f756e740001244163636f756e744964000148636f6e74726f6c6c65725f6163636f756e740001244163636f756e74496400011868616e646c653101013c4f7074696f6e3c5665633c75383e3e0001206d6574616461746130011c5665633c75383e0001646372656469745f636f6e74726f6c6c65725f6163636f756e7418011c42616c616e63650001a06170706c795f636f6e74726f6c6c65725f6163636f756e745f696e7669746174696f6e5f6c6f636b4501013c4f7074696f6e3c42616c616e63653e00014c6372656469745f726f6f745f6163636f756e7418011c42616c616e63650001886170706c795f726f6f745f6163636f756e745f696e7669746174696f6e5f6c6f636b4501013c4f7074696f6e3c42616c616e63653e0000450104184f7074696f6e04045401180108104e6f6e6500000010536f6d650400180000010000490104184f7074696f6e040454014d010108104e6f6e6500000010536f6d6504004d0100000100004d01000004080018005101083070616c6c65745f666f72756d205261774576656e74202843617465676f7279496401282c4d6f64657261746f7249640128205468726561644964012818506f7374496401281048617368012c2c466f72756d55736572496401283c50726976696c656765644163746f7201550138457874656e646564506f7374496401590101443c43617465676f727943726561746564100028012843617465676f727949640000350101484f7074696f6e3c43617465676f727949643e000030011c5665633c75383e000030011c5665633c75383e00000464412063617465676f72792077617320696e74726f64756365647443617465676f7279417263686976616c537461747573557064617465640c0028012843617465676f727949640000980110626f6f6c00005501013c50726976696c656765644163746f72000108e0416e206172686963616c20737461747573206f662063617465676f7279207769746820676976656e2069642077617320757064617465642e1501546865207365636f6e6420617267756d656e74207265666c6563747320746865206e657720617263686976616c20737461747573206f66207468652063617465676f72792e5043617465676f72795469746c65557064617465640c0028012843617465676f7279496400002c01104861736800005501013c50726976696c656765644163746f72000208b841207469746c65206f662063617465676f7279207769746820676976656e2069642077617320757064617465642e0101546865207365636f6e6420617267756d656e74207265666c6563747320746865206e6577207469746c652068617368206f66207468652063617465676f72792e6843617465676f72794465736372697074696f6e557064617465640c0028012843617465676f7279496400002c01104861736800005501013c50726976696c656765644163746f72000308d041206469736372697074696f6e206f662063617465676f7279207769746820676976656e2069642077617320757064617465642e1901546865207365636f6e6420617267756d656e74207265666c6563747320746865206e6577206465736372697074696f6e2068617368206f66207468652063617465676f72792e3c43617465676f727944656c65746564080028012843617465676f7279496400005501013c50726976696c656765644163746f7200040458412063617465676f7279207761732064656c657465643454687265616443726561746564180028012843617465676f72794964000028012054687265616449640000280118506f73744964000028012c466f72756d557365724964000030011c5665633c75383e000030011c5665633c75383e0005088c4120746872656164207769746820676976656e2069642077617320637265617465642ef04120746869726420617267756d656e74207265666c656374732074686520696e697469616c20706f7374206964206f6620746865207468726561642e3c5468726561644d6f6465726174656410002801205468726561644964000030011c5665633c75383e00005501013c50726976696c656765644163746f72000028012843617465676f72794964000604944120746872656164207769746820676976656e20696420776173206d6f646572617465642e3454687265616455706461746564100028012054687265616449640000980110626f6f6c00005501013c50726976696c656765644163746f72000028012843617465676f727949640007088c4120746872656164207769746820676976656e2069642077617320757064617465642e0d01546865207365636f6e6420617267756d656e74207265666c6563747320746865206e657720617263686976616c20737461747573206f6620746865207468726561642e545468726561644d657461646174615570646174656410002801205468726561644964000028012c466f72756d557365724964000028012843617465676f72794964000030011c5665633c75383e0008049c4120746872656164206d6574616461746120676976656e2069642077617320757064617465642e3454687265616444656c6574656410002801205468726561644964000028012c466f72756d557365724964000028012843617465676f727949640000980110626f6f6c000904544120746872656164207761732064656c657465642e2c5468726561644d6f76656410002801205468726561644964000028012843617465676f7279496400005501013c50726976696c656765644163746f72000028012843617465676f72794964000a0488412074687265616420776173206d6f76656420746f206e65772063617465676f727924506f737441646465641800280118506f73744964000028012c466f72756d557365724964000028012843617465676f7279496400002801205468726561644964000030011c5665633c75383e0000980110626f6f6c000b047c506f7374207769746820676976656e2069642077617320637265617465642e34506f73744d6f646572617465641400280118506f73744964000030011c5665633c75383e00005501013c50726976696c656765644163746f72000028012843617465676f7279496400002801205468726561644964000c0484506f73742077697468206769766e6520696420776173206d6f646572617465642e2c506f737444656c657465640c0030011c5665633c75383e000028012c466f72756d55736572496400005d01017842547265654d61703c457874656e646564506f737449642c20626f6f6c3e000d047c506f73742077697468206769766e65206964207761732064656c657465642e3c506f737454657874557064617465641400280118506f73744964000028012c466f72756d557365724964000028012843617465676f7279496400002801205468726561644964000030011c5665633c75383e000e08a0506f7374207769746820676976656e2069642068616420697473207465787420757064617465642e4d01546865207365636f6e6420617267756d656e74207265666c6563747320746865206e756d626572206f6620746f74616c206564697473207768656e20746865207465787420757064617465206f63637572732e6843617465676f7279537469636b795468726561645570646174650c0028012843617465676f7279496400006901014842547265655365743c54687265616449643e00005501013c50726976696c656765644163746f72000f0488537469636b7920746872656164207570646174656420666f722063617465676f72799043617465676f72794d656d626572736869704f664d6f64657261746f72557064617465640c0028012c4d6f64657261746f724964000028012843617465676f727949640000980110626f6f6c0010042501416e206d6f64657261746f72206162696c69747920746f206d6f64657261746520612063617465676f727920616e64206974732073756263617465676f726965732075706461746564085c4576656e747320666f722074686973206d6f64756c652e005501083070616c6c65745f666f72756d3c50726976696c656765644163746f72040454000108104c656164000000244d6f64657261746f7204002801384d6f64657261746f7249643c543e000100005901083070616c6c65745f666f72756d50457874656e646564506f737449644f626a6563740c2843617465676f727949640128205468726561644964012818506f737449640128000c012c63617465676f72795f696428012843617465676f727949640001247468726561645f6964280120546872656164496400011c706f73745f6964280118506f7374496400005d01042042547265654d617008044b015901045601980004006101000000610100000265010065010000040859019800690104204254726565536574040454012800040015010000006d01084c70616c6c65745f636f6e737469747574696f6e205261774576656e74041048617368012c010444436f6e73747574696f6e416d656e64656408002c011048617368000030011c5665633c75383e00001080456d697473206f6e20636f6e737469747574696f6e20616d656e646d656e742e2c506172616d65746572733a602d20636f6e737469747574696f6e207465787420686173684c2d20636f6e737469747574696f6e2074657874085c4576656e747320666f722074686973206d6f64756c652e007101083470616c6c65745f626f756e7479205261774576656e741c20426f756e7479496401281c456e747279496401281c42616c616e63650118204d656d62657249640128244163636f756e744964010060426f756e74794372656174696f6e506172616d6574657273017501384f7261636c654a7564676d656e74018501015c34426f756e7479437265617465640c00280120426f756e74794964000075010160426f756e74794372656174696f6e506172616d6574657273000030011c5665633c75383e000014544120626f756e74792077617320637265617465642e1c506172616d733a2c2d20626f756e7479204944542d206372656174696f6e20706172616d6574657273442d20626f756e7479206d6574616461746150426f756e74794f7261636c6553776974636865641000280120426f756e74794964000079010154426f756e74794163746f723c4d656d62657249643e000079010154426f756e74794163746f723c4d656d62657249643e000079010154426f756e74794163746f723c4d656d62657249643e000118d0426f756e7479204f7261636c652053776974636865642062792063757272656e74206f7261636c65206f7220636f756e63696c2e1c506172616d733a2c2d20626f756e7479204944282d207377697463686572442d2063757272656e745f6f7261636c652c302d206e6577206f7261636c6540426f756e74795465726d696e617465641000280120426f756e74794964000079010154426f756e74794163746f723c4d656d62657249643e000079010154426f756e74794163746f723c4d656d62657249643e000079010154426f756e74794163746f723c4d656d62657249643e0002188c4120626f756e747920776173207465726d696e6174656420627920636f756e63696c2e1c506172616d733a2c2d20626f756e74792049444c2d20626f756e7479207465726d696e61746f72402d20626f756e74792063726561746f723c2d20626f756e7479206f7261636c6530426f756e747946756e6465640c00280120426f756e74794964000079010154426f756e74794163746f723c4d656d62657249643e000018011c42616c616e6365000314b44120626f756e7479207761732066756e6465642062792061206d656d626572206f72206120636f756e63696c2e1c506172616d733a2c2d20626f756e74792049443c2d20626f756e74792066756e646572402d2066756e64696e6720616d6f756e745c426f756e74794d617846756e64696e67526561636865640400280120426f756e7479496400040cbc4120626f756e747920686173207265616368656420697473207461726765742066756e64696e6720616d6f756e742e1c506172616d733a2c2d20626f756e74792049445c426f756e747946756e64696e675769746864726177616c0800280120426f756e74794964000079010154426f756e74794163746f723c4d656d62657249643e000510c041206d656d626572206f72206120636f756e63696c206861732077697468647261776e207468652066756e64696e672e1c506172616d733a2c2d20626f756e74792049443c2d20626f756e74792066756e64657274426f756e747943726561746f724368657272795769746864726177616c0800280120426f756e74794964000079010154426f756e74794163746f723c4d656d62657249643e000610f84120626f756e74792063726561746f72206861732077697468647261776e207468652063686572727920286d656d626572206f7220636f756e63696c292e1c506172616d733a2c2d20626f756e7479204944402d20626f756e74792063726561746f728c426f756e747943726561746f724f7261636c655265776172645769746864726177616c0800280120426f756e74794964000079010154426f756e74794163746f723c4d656d62657249643e00071015014120626f756e74792063726561746f72206861732077697468647261776e20746865206f7261636c652072657761726420286d656d626572206f7220636f756e63696c292e1c506172616d733a2c2d20626f756e7479204944402d20626f756e74792063726561746f7270426f756e74794f7261636c655265776172645769746864726177616c0c00280120426f756e74794964000079010154426f756e74794163746f723c4d656d62657249643e000018011c42616c616e6365000814f441204f7261636c65206861732077697468647261776e20746865206f7261636c652072657761726420286d656d626572206f7220636f756e63696c292e1c506172616d733a2c2d20626f756e7479204944402d20626f756e74792063726561746f723c2d204f7261636c652052657761726434426f756e747952656d6f7665640400280120426f756e7479496400090c544120626f756e7479207761732072656d6f7665642e1c506172616d733a2c2d20626f756e747920494448576f726b456e747279416e6e6f756e6365641400280120426f756e74794964000028011c456e747279496400002801204d656d626572496400000001244163636f756e744964000030011c5665633c75383e000a1c64576f726b20656e7472792077617320616e6e6f756e6365642e1c506172616d733a2c2d20626f756e7479204944482d206372656174656420656e7472792049444c2d20656e7472616e74206d656d626572204944502d207374616b696e67206163636f756e74204944482d20776f726b206465736372697074696f6e34576f726b5375626d69747465641000280120426f756e74794964000028011c456e747279496400002801204d656d6265724964000030011c5665633c75383e000b18305375626d697420776f726b2e1c506172616d733a2c2d20626f756e7479204944482d206372656174656420656e7472792049444c2d20656e7472616e74206d656d626572204944a82d20776f726b206461746120286465736372697074696f6e2c2055524c2c20424c4f422c206574632e295c4f7261636c654a7564676d656e745375626d69747465641000280120426f756e74794964000079010154426f756e74794163746f723c4d656d62657249643e0000850101384f7261636c654a7564676d656e74000030011c5665633c75383e000c185c5375626d6974206f7261636c65206a7564676d656e742e1c506172616d733a2c2d20626f756e7479204944202d206f7261636c653c2d206a7564676d656e7420646174612c2d20726174696f6e616c6564576f726b456e7472616e7446756e647357697468647261776e0c00280120426f756e74794964000028011c456e747279496400002801204d656d6265724964000d145c576f726b20656e7472792077617320736c61736865642e1c506172616d733a2c2d20626f756e7479204944282d20656e7472792049444c2d20656e7472616e74206d656d62657220494464426f756e7479436f6e7472696275746f7252656d61726b65640c0079010154426f756e74794163746f723c4d656d62657249643e0000280120426f756e74794964000030011c5665633c75383e000e14a0426f756e747920636f6e7472696275746f72206d6164652061206d6573736167652072656d61726b1c506172616d733a342d20636f6e7472696275746f722c2d20626f756e7479206964242d206d65737361676550426f756e74794f7261636c6552656d61726b65640c0079010154426f756e74794163746f723c4d656d62657249643e0000280120426f756e74794964000030011c5665633c75383e000f148c426f756e7479206f7261636c65206d6164652061206d6573736167652072656d61726b1c506172616d733a202d206f7261636c652c2d20626f756e7479206964242d206d65737361676554426f756e7479456e7472616e7452656d61726b656410002801204d656d62657249640000280120426f756e74794964000028011c456e7472794964000030011c5665633c75383e00101890426f756e747920656e7472616e74206d6164652061206d6573736167652072656d61726b1c506172616d733a302d20656e7472616e745f69642c2d20626f756e7479206964282d20656e747279206964242d206d65737361676554426f756e747943726561746f7252656d61726b65640c0079010154426f756e74794163746f723c4d656d62657249643e0000280120426f756e74794964000030011c5665633c75383e00111490426f756e74792063726561746f72206d6164652061206d6573736167652072656d61726b1c506172616d733a242d2063726561746f722c2d20626f756e7479206964242d206d65737361676564576f726b5375626d697373696f6e506572696f64456e6465640800280120426f756e74794964000079010154426f756e74794163746f723c4d656d62657249643e0012105c576f726b20656e7472792077617320736c61736865642e1c506172616d733a2c2d20626f756e7479204944442d206f7261636c65202863616c6c65722960576f726b456e7472616e745374616b65556e6c6f636b65640c00280120426f756e74794964000028011c456e747279496400000001244163636f756e74496400131468576f726b20656e747279207374616b6520756e6c6f636b65642e1c506172616d733a2c2d20626f756e7479204944282d20656e7472792049443c2d207374616b65206163636f756e745c576f726b456e7472616e745374616b65536c61736865641000280120426f756e74794964000028011c456e747279496400000001244163636f756e744964000018011c42616c616e636500141864576f726b20656e747279207374616b6520736c61736865642e1c506172616d733a2c2d20626f756e7479204944282d20656e7472792049443c2d207374616b65206163636f756e74402d20736c617368656420616d6f756e747446756e6465725374617465426c6f6174426f6e6457697468647261776e0c00280120426f756e74794964000079010154426f756e74794163746f723c4d656d62657249643e000018011c42616c616e63650015141d0141206d656d626572206f72206120636f756e63696c2066756e646572206861732077697468647261776e207468652066756e64657220737461746520626c6f617420626f6e642e1c506172616d733a2c2d20626f756e74792049443c2d20626f756e74792066756e646572802d2066756e64657220537461746520626c6f617420626f6e6420616d6f756e747843726561746f725374617465426c6f6174426f6e6457697468647261776e0c00280120426f756e74794964000079010154426f756e74794163746f723c4d656d62657249643e000018011c42616c616e6365001614250141206d656d626572206f72206120636f756e63696c2063726561746f72206861732077697468647261776e207468652063726561746f7220737461746520626c6f617420626f6e642e1c506172616d733a2c2d20626f756e7479204944402d20626f756e74792063726561746f72842d2043726561746f7220537461746520626c6f617420626f6e6420616d6f756e74085c4576656e747320666f722074686973206d6f64756c652e007501083470616c6c65745f626f756e747940426f756e7479506172616d6574657273101c42616c616e636501182c426c6f636b4e756d6265720110204d656d626572496401285c436c6f736564436f6e747261637457686974656c697374016901001c01186f7261636c6579010154426f756e74794163746f723c4d656d62657249643e000134636f6e74726163745f747970657d0101b84173737572616e6365436f6e7472616374547970653c436c6f736564436f6e747261637457686974656c6973743e00011c63726561746f7279010154426f756e74794163746f723c4d656d62657249643e00011863686572727918011c42616c616e63650001346f7261636c655f72657761726418011c42616c616e6365000134656e7472616e745f7374616b6518011c42616c616e636500013066756e64696e675f747970658101018446756e64696e67547970653c426c6f636b4e756d6265722c2042616c616e63653e00007901083470616c6c65745f626f756e74792c426f756e74794163746f7204204d656d6265724964012801081c436f756e63696c000000184d656d62657204002801204d656d6265724964000100007d01083470616c6c65745f626f756e7479544173737572616e6365436f6e747261637454797065045c436c6f736564436f6e747261637457686974656c6973740169010108104f70656e00000018436c6f73656404006901015c436c6f736564436f6e747261637457686974656c697374000100008101083470616c6c65745f626f756e74792c46756e64696e6754797065082c426c6f636b4e756d62657201101c42616c616e6365011801082450657270657475616c04011874617267657418011c42616c616e63650000001c4c696d6974656408011874617267657418011c42616c616e636500013866756e64696e675f706572696f6410012c426c6f636b4e756d626572000100008501042042547265654d617008044b012804560189010004008d010000008901083470616c6c65745f626f756e74795c4f7261636c65576f726b456e7472794a7564676d656e74041c42616c616e6365011801081857696e6e657204011872657761726418011c42616c616e63650000002052656a6563746564080138736c617368696e675f7368617265ac011c50657262696c6c000150616374696f6e5f6a757374696669636174696f6e30011c5665633c75383e000100008d01000002910100910100000408288901009501083870616c6c65745f7574696c697479205261774576656e74081c42616c616e63650118244163636f756e74496401000110205369676e616c6564040030011c5665633c75383e00000c7841207369676e616c2070726f706f73616c207761732065786563757465641c506172616d733adc2d205369676e616c20676976656e207768656e206372656174696e672074686520636f72726573706f6e64696e672070726f706f73616c3c52756e74696d655570677261646564040030011c5665633c75383e00010c78412072756e74696d652075706772616465207761732065786563757465641c506172616d733a6c2d204e657720636f646520656e636f64656420696e2062797465736455706461746564576f726b696e6747726f75704275646765740c0099010130576f726b696e6747726f7570000018011c42616c616e636500009d01012c42616c616e63654b696e64000218d8416e206055706461746520576f726b696e672047726f757020427564676574602070726f706f73616c207761732065786563757465641c506172616d733ab42d20576f726b696e672067726f757020776869636820627564676574206973206265696e6720757064617465647c2d20416d6f756e74206f662062616c616e6365206265696e67206d6f7665645d012d20456e756d2076617269616e74207769746820706f73697469766520696e6469636174696e672066756e6473206d6f76656420746f72776172647320776f726b696e672067726f757020616e64206e65676174697665c0616e64206e656761746976652066756e6473206d6f76696e672066726f6d2074686520776f726b696e672067726f757030546f6b656e734275726e656408000001244163636f756e744964000018011c42616c616e636500031060416e206163636f756e74206275726e656420746f6b656e731c506172616d733a882d204163636f756e74204964206f6620746865206275726e696e6720746f6b656e73882d2042616c616e6365206275726e65642066726f6d2074686174206163636f756e74085c4576656e747320666f722074686973206d6f64756c652e009901103470616c6c65745f636f6d6d6f6e34776f726b696e675f67726f7570386974657261626c655f656e756d7330576f726b696e6747726f757000012414466f72756d0000001c53746f726167650001001c436f6e74656e740002003c4f7065726174696f6e73416c7068610003000c41707000040030446973747269627574696f6e000500384f7065726174696f6e73426574610006003c4f7065726174696f6e7347616d6d61000700284d656d62657273686970000800009d01083470616c6c65745f636f6d6d6f6e2c42616c616e63654b696e6400010820506f736974697665000000204e6567617469766500010000a101083870616c6c65745f636f6e74656e74205261774576656e746430436f6e74656e744163746f7201a501204d656d626572496401283843757261746f7247726f7570496401282443757261746f72496401281c566964656f49640128244368616e6e656c496401281c4368616e6e656c01a90130446174614f626a6563744964012850456e676c69736841756374696f6e506172616d7301fd01444f70656e41756374696f6e506172616d73010502344f70656e41756374696f6e49640128544e667449737375616e6365506172616d65746572730109021c42616c616e63650118644368616e6e656c4372656174696f6e506172616d65746572730115025c4368616e6e656c557064617465506172616d65746572730141025c566964656f4372656174696f6e506172616d657465727301490254566964656f557064617465506172616d6574657273015102544368616e6e656c50726976696c6567654c6576656c0108704d6f6465726174696f6e5065726d697373696f6e7342794c6576656c015502645472616e73666572436f6d6d69746d656e745769746e657373016d023c50656e64696e675472616e7366657201ed01244163636f756e7449640100785570646174654368616e6e656c5061796f757473506172616d65746572730171021c546f6b656e496401285c4368616e6e656c46756e647344657374696e6174696f6e01850201d84c43757261746f7247726f757043726561746564040028013843757261746f7247726f757049640000007843757261746f7247726f75705065726d697373696f6e7355706461746564080028013843757261746f7247726f757049640000550201704d6f6465726174696f6e5065726d697373696f6e7342794c6576656c0001005443757261746f7247726f7570537461747573536574080028013843757261746f7247726f757049640000980110626f6f6c0002003043757261746f7241646465640c0028013843757261746f7247726f75704964000028012443757261746f7249640000bd01015c4368616e6e656c4167656e745065726d697373696f6e730003003843757261746f7252656d6f766564080028013843757261746f7247726f75704964000028012443757261746f724964000400384368616e6e656c4372656174656410002801244368616e6e656c49640000a901011c4368616e6e656c0000150201644368616e6e656c4372656174696f6e506172616d657465727300000001244163636f756e744964000500384368616e6e656c557064617465641000a5010130436f6e74656e744163746f7200002801244368616e6e656c496400004102015c4368616e6e656c557064617465506172616d657465727300006901015842547265655365743c446174614f626a65637449643e000600704368616e6e656c50726976696c6567654c6576656c5570646174656408002801244368616e6e656c496400000801544368616e6e656c50726976696c6567654c6576656c000700844368616e6e656c5374617465426c6f6174426f6e6456616c756555706461746564040018011c42616c616e63650008007c566964656f5374617465426c6f6174426f6e6456616c756555706461746564040018011c42616c616e6365000900504368616e6e656c41737365747352656d6f7665641000a5010130436f6e74656e744163746f7200002801244368616e6e656c496400006901015842547265655365743c446174614f626a65637449643e0000a901011c4368616e6e656c000a00384368616e6e656c44656c657465640800a5010130436f6e74656e744163746f7200002801244368616e6e656c4964000b00644368616e6e656c44656c6574656442794d6f64657261746f720c00a5010130436f6e74656e744163746f7200002801244368616e6e656c4964000030011c5665633c75383e000c007c4368616e6e656c5669736962696c69747953657442794d6f64657261746f721000a5010130436f6e74656e744163746f7200002801244368616e6e656c49640000980110626f6f6c000030011c5665633c75383e000d009c4368616e6e656c50617573656446656174757265735570646174656442794d6f64657261746f721000a5010130436f6e74656e744163746f7200002801244368616e6e656c49640000d901018042547265655365743c5061757361626c654368616e6e656c466561747572653e000030011c5665633c75383e000e007c4368616e6e656c41737365747344656c6574656442794d6f64657261746f721000a5010130436f6e74656e744163746f7200002801244368616e6e656c496400006901015842547265655365743c446174614f626a65637449643e000030011c5665633c75383e000f00544368616e6e656c46756e647357697468647261776e1000a5010130436f6e74656e744163746f7200002801244368616e6e656c4964000018011c42616c616e636500008502015c4368616e6e656c46756e647344657374696e6174696f6e001000804368616e6e656c526577617264436c61696d6564416e6457697468647261776e1000a5010130436f6e74656e744163746f7200002801244368616e6e656c4964000018011c42616c616e636500008502015c4368616e6e656c46756e647344657374696e6174696f6e00110030566964656f437265617465641400a5010130436f6e74656e744163746f7200002801244368616e6e656c4964000028011c566964656f496400004902015c566964656f4372656174696f6e506172616d657465727300006901015842547265655365743c446174614f626a65637449643e00120030566964656f557064617465641000a5010130436f6e74656e744163746f72000028011c566964656f4964000051020154566964656f557064617465506172616d657465727300006901015842547265655365743c446174614f626a65637449643e00130030566964656f44656c657465640800a5010130436f6e74656e744163746f72000028011c566964656f49640014005c566964656f44656c6574656442794d6f64657261746f720c00a5010130436f6e74656e744163746f72000028011c566964656f4964000030011c5665633c75383e00150074566964656f5669736962696c69747953657442794d6f64657261746f721000a5010130436f6e74656e744163746f72000028011c566964656f49640000980110626f6f6c000030011c5665633c75383e00160074566964656f41737365747344656c6574656442794d6f64657261746f721400a5010130436f6e74656e744163746f72000028011c566964656f496400006901015842547265655365743c446174614f626a65637449643e0000980110626f6f6c000030011c5665633c75383e001700544368616e6e656c5061796f757473557064617465640c00710201785570646174654368616e6e656c5061796f757473506172616d65746572730000350101504f7074696f6e3c446174614f626a65637449643e00000001244163636f756e744964001800504368616e6e656c526577617264557064617465640c0018011c42616c616e6365000018011c42616c616e636500002801244368616e6e656c496400190054456e676c69736841756374696f6e537461727465640c00a5010130436f6e74656e744163746f72000028011c566964656f49640000fd010150456e676c69736841756374696f6e506172616d73001a00484f70656e41756374696f6e537461727465641000a5010130436f6e74656e744163746f72000028011c566964656f49640000050201444f70656e41756374696f6e506172616d7300002801344f70656e41756374696f6e4964001b00244e66744973737565640c00a5010130436f6e74656e744163746f72000028011c566964656f49640000090201544e667449737375616e6365506172616d6574657273001c00304e667444657374726f7965640800a5010130436f6e74656e744163746f72000028011c566964656f4964001d003841756374696f6e4269644d61646510002801204d656d6265724964000028011c566964656f4964000018011c42616c616e63650000350101404f7074696f6e3c4d656d62657249643e001e004841756374696f6e42696443616e63656c656408002801204d656d6265724964000028011c566964656f4964001f003c41756374696f6e43616e63656c65640800a5010130436f6e74656e744163746f72000028011c566964656f496400200054456e676c69736841756374696f6e536574746c65640c002801204d656d626572496400000001244163636f756e744964000028011c566964656f4964002100604269644d616465436f6d706c6574696e6741756374696f6e0c002801204d656d6265724964000028011c566964656f49640000350101404f7074696f6e3c4d656d62657249643e002200584f70656e41756374696f6e42696441636365707465641000a5010130436f6e74656e744163746f72000028011c566964656f496400002801204d656d6265724964000018011c42616c616e6365002300304f6666657253746172746564100028011c566964656f49640000a5010130436f6e74656e744163746f7200002801204d656d626572496400004501013c4f7074696f6e3c42616c616e63653e002400344f666665724163636570746564040028011c566964656f4964002500344f6666657243616e63656c6564080028011c566964656f49640000a5010130436f6e74656e744163746f72002600404e667453656c6c4f726465724d6164650c0028011c566964656f49640000a5010130436f6e74656e744163746f72000018011c42616c616e6365002700244e6674426f75676874080028011c566964656f496400002801204d656d6265724964002800384275794e6f7743616e63656c6564080028011c566964656f49640000a5010130436f6e74656e744163746f72002900484275794e6f775072696365557064617465640c0028011c566964656f49640000a5010130436f6e74656e744163746f72000018011c42616c616e6365002a00844e6674536c696e6765644261636b546f5468654f726967696e616c417274697374080028011c566964656f49640000a5010130436f6e74656e744163746f72002b00504368616e6e656c4f776e657252656d61726b656408002801244368616e6e656c4964000030011c5665633c75383e002c046c4d65746170726f746f636f6c732072656c61746564206576656e74504368616e6e656c4167656e7452656d61726b65640c00a5010130436f6e74656e744163746f7200002801244368616e6e656c4964000030011c5665633c75383e002d00404e66744f776e657252656d61726b65640c00a5010130436f6e74656e744163746f72000028011c566964656f4964000030011c5665633c75383e002e0068496e697469616c697a65644368616e6e656c5472616e736665720c002801244368616e6e656c49640000a5010130436f6e74656e744163746f720000ed01013c50656e64696e675472616e73666572002f005443616e63656c4368616e6e656c5472616e7366657208002801244368616e6e656c49640000a5010130436f6e74656e744163746f720030005c4368616e6e656c5472616e73666572416363657074656408002801244368616e6e656c496400006d0201645472616e73666572436f6d6d69746d656e745769746e65737300310054476c6f62616c4e66744c696d6974557064617465640800890201384e66744c696d6974506572696f64000028010c753634003200584368616e6e656c4e66744c696d6974557064617465641000a5010130436f6e74656e744163746f720000890201384e66744c696d6974506572696f6400002801244368616e6e656c4964000028010c75363400330040546f67676c65644e66744c696d6974730400980110626f6f6c0034004843726561746f72546f6b656e4973737565640c00a5010130436f6e74656e744163746f7200002801244368616e6e656c4964000028011c546f6b656e4964003500085c4576656e747320666f722074686973206d6f64756c652e00a5010c3870616c6c65745f636f6e74656e742c7065726d697373696f6e7330436f6e74656e744163746f720c3843757261746f7247726f7570496401282443757261746f7249640128204d656d62657249640128010c1c43757261746f72080028013843757261746f7247726f75704964000028012443757261746f724964000000184d656d62657204002801204d656d6265724964000100104c65616400020000a9010c3870616c6c65745f636f6e74656e74147479706573344368616e6e656c5265636f72642c204d656d626572496401283843757261746f7247726f7570496401281c42616c616e63650118544368616e6e656c50726976696c6567654c6576656c01082c426c6f636b4e756d62657201101c546f6b656e49640128285472616e7366657249640128404368616e6e656c41737365747353657401ad015c4368616e6e656c436f6c6c61626f7261746f72734d617001b10144506175736564466561747572657353657401d10148526570617961626c65426c6f6174426f6e6401e101003801146f776e6572e50101984368616e6e656c4f776e65723c4d656d62657249642c2043757261746f7247726f757049643e0001286e756d5f766964656f7328010c753634000134636f6c6c61626f7261746f7273b101015c4368616e6e656c436f6c6c61626f7261746f72734d617000016463756d756c61746976655f7265776172645f636c61696d656418011c42616c616e636500013c70726976696c6567655f6c6576656c0801544368616e6e656c50726976696c6567654c6576656c00013c7061757365645f6665617475726573d1010144506175736564466561747572657353657400013c7472616e736665725f737461747573e9010179014368616e6e656c5472616e736665725374617475733c4d656d62657249642c2043757261746f7247726f757049642c2042616c616e63652c205472616e7366657249642c0a4368616e6e656c436f6c6c61626f7261746f72734d61702c3e000130646174615f6f626a65637473ad0101404368616e6e656c41737365747353657400013c6461696c795f6e66745f6c696d6974f501016c4c696d6974506572506572696f643c426c6f636b4e756d6265723e0001407765656b6c795f6e66745f6c696d6974f501016c4c696d6974506572506572696f643c426c6f636b4e756d6265723e0001446461696c795f6e66745f636f756e746572f901015c4e6674436f756e7465723c426c6f636b4e756d6265723e0001487765656b6c795f6e66745f636f756e746572f901015c4e6674436f756e7465723c426c6f636b4e756d6265723e00014063726561746f725f746f6b656e5f69643501013c4f7074696f6e3c546f6b656e49643e0001606368616e6e656c5f73746174655f626c6f61745f626f6e64e1010148526570617961626c65426c6f6174426f6e640000ad010c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401280453000004006901012c42547265655365743c543e0000b1010c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b0128045601b501045300000400c501013842547265654d61703c4b2c20563e0000b5010c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401b901045300000400bd01012c42547265655365743c543e0000b901103870616c6c65745f636f6e74656e74147479706573386974657261626c655f656e756d735c4368616e6e656c416374696f6e5065726d697373696f6e000154545570646174654368616e6e656c4d657461646174610000006c4d616e6167654e6f6e566964656f4368616e6e656c417373657473000100684d616e6167654368616e6e656c436f6c6c61626f7261746f72730002004c557064617465566964656f4d6574616461746100030020416464566964656f000400444d616e616765566964656f4173736574730005003444656c6574654368616e6e656c0006002c44656c657465566964656f0007003c4d616e616765566964656f4e6674730008002c4167656e7452656d61726b0009003c5472616e736665724368616e6e656c000a0048436c61696d4368616e6e656c526577617264000b0068576974686472617746726f6d4368616e6e656c42616c616e6365000c0044497373756543726561746f72546f6b656e000d0068436c61696d43726561746f72546f6b656e506174726f6e616765000e0074496e6974416e644d616e61676543726561746f72546f6b656e53616c65000f006843726561746f72546f6b656e4973737565725472616e73666572001000784d616b6543726561746f72546f6b656e5065726d697373696f6e6c6573730011007c52656475636543726561746f72546f6b656e506174726f6e616765526174650012004c4d616e616765526576656e756553706c6974730013004c4465697373756543726561746f72546f6b656e00140000bd010420425472656553657404045401b901000400c101000000c101000002b90100c501042042547265654d617008044b0128045601b501000400c901000000c901000002cd0100cd010000040828b50100d1010c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401d501045300000400d901012c42547265655365743c543e0000d501143870616c6c65745f636f6e74656e742c7065726d697373696f6e733463757261746f725f67726f7570386974657261626c655f656e756d73585061757361626c654368616e6e656c4665617475726500011c504368616e6e656c46756e64735472616e736665720000003843726561746f72436173686f757400010040566964656f4e667449737375616e636500020034566964656f4372656174696f6e0003002c566964656f557064617465000400344368616e6e656c5570646174650005005043726561746f72546f6b656e49737375616e636500060000d9010420425472656553657404045401d501000400dd01000000dd01000002d50100e1010c3470616c6c65745f636f6d6d6f6e28626c6f61745f626f6e6448526570617961626c65426c6f6174426f6e6408244163636f756e74496401001c42616c616e636501180008015c72657061796d656e745f726573747269637465645f746f9401444f7074696f6e3c4163636f756e7449643e000118616d6f756e7418011c42616c616e63650000e5010c3870616c6c65745f636f6e74656e74147479706573304368616e6e656c4f776e657208204d656d626572496401283843757261746f7247726f7570496401280108184d656d62657204002801204d656d62657249640000003043757261746f7247726f7570040028013843757261746f7247726f7570496400010000e9010c3870616c6c65745f636f6e74656e74147479706573544368616e6e656c5472616e7366657253746174757314204d656d626572496401283843757261746f7247726f7570496401281c42616c616e63650118285472616e73666572496401285c4368616e6e656c436f6c6c61626f7261746f72734d617001b1010108404e6f4163746976655472616e736665720000003c50656e64696e675472616e736665720400ed01015d0150656e64696e675472616e736665723c4d656d62657249642c2043757261746f7247726f757049642c2042616c616e63652c205472616e7366657249642c0a4368616e6e656c436f6c6c61626f7261746f72734d61703e00010000ed010c3870616c6c65745f636f6e74656e741474797065733c50656e64696e675472616e7366657214204d656d626572496401283843757261746f7247726f7570496401281c42616c616e63650118285472616e73666572496401285c4368616e6e656c436f6c6c61626f7261746f72734d617001b101000801246e65775f6f776e6572e50101984368616e6e656c4f776e65723c4d656d62657249642c2043757261746f7247726f757049643e00013c7472616e736665725f706172616d73f1010129015472616e73666572436f6d6d69746d656e74506172616d65746572733c4368616e6e656c436f6c6c61626f7261746f72734d61702c2042616c616e63652c205472616e7366657249643e0000f1010c3870616c6c65745f636f6e74656e74147479706573705472616e73666572436f6d6d69746d656e74506172616d65746572730c5c4368616e6e656c436f6c6c61626f7261746f72734d617001b1011c42616c616e63650118285472616e7366657249640128000c01446e65775f636f6c6c61626f7261746f7273b101015c4368616e6e656c436f6c6c61626f7261746f72734d6170000114707269636518011c42616c616e636500012c7472616e736665725f69642801285472616e7366657249640000f5010c3870616c6c65745f636f6e74656e74147479706573384c696d6974506572506572696f64042c426c6f636b4e756d6265720110000801146c696d697428010c75363400014c626c6f636b5f6e756d6265725f706572696f6410012c426c6f636b4e756d6265720000f9010c3870616c6c65745f636f6e74656e74147479706573284e6674436f756e746572042c426c6f636b4e756d62657201100008011c636f756e74657228010c7536340001306c6173745f7570646174656410012c426c6f636b4e756d6265720000fd01103870616c6c65745f636f6e74656e740c6e667414747970657368456e676c69736841756374696f6e506172616d735265636f72640c2c426c6f636b4e756d62657201101c42616c616e63650118204d656d62657249640128001c01387374617274696e675f707269636518011c42616c616e63650001346275795f6e6f775f70726963654501013c4f7074696f6e3c42616c616e63653e00012477686974656c6973746901014842547265655365743c4d656d62657249643e0001247374617274735f61740102014c4f7074696f6e3c426c6f636b4e756d6265723e0001206475726174696f6e10012c426c6f636b4e756d626572000140657874656e73696f6e5f706572696f6410012c426c6f636b4e756d6265720001306d696e5f6269645f7374657018011c42616c616e63650000010204184f7074696f6e04045401100108104e6f6e6500000010536f6d6504001000000100000502103870616c6c65745f636f6e74656e740c6e66741474797065735c4f70656e41756374696f6e506172616d735265636f72640c2c426c6f636b4e756d62657201101c42616c616e63650118204d656d62657249640128001401387374617274696e675f707269636518011c42616c616e63650001346275795f6e6f775f70726963654501013c4f7074696f6e3c42616c616e63653e0001247374617274735f61740102014c4f7074696f6e3c426c6f636b4e756d6265723e00012477686974656c6973746901014842547265655365743c4d656d62657249643e0001446269645f6c6f636b5f6475726174696f6e10012c426c6f636b4e756d62657200000902103870616c6c65745f636f6e74656e740c6e66741474797065736c4e667449737375616e6365506172616d65746572735265636f726408204d656d626572496401285c496e69745472616e73616374696f6e616c537461747573010d020010011c726f79616c74791102013c4f7074696f6e3c526f79616c74793e0001306e66745f6d6574616461746130012c4e66744d657461646174610001446e6f6e5f6368616e6e656c5f6f776e6572350101404f7074696f6e3c4d656d62657249643e000164696e69745f7472616e73616374696f6e616c5f7374617475730d02015c496e69745472616e73616374696f6e616c53746174757300000d02103870616c6c65745f636f6e74656e740c6e667414747970657374496e69745472616e73616374696f6e616c5374617475735265636f72641050456e676c69736841756374696f6e506172616d7301fd01444f70656e41756374696f6e506172616d73010502204d656d626572496401281c42616c616e6365011801141049646c65000000184275794e6f77040018011c42616c616e636500010058496e697469617465644f66666572546f4d656d62657208002801204d656d626572496400004501013c4f7074696f6e3c42616c616e63653e00020038456e676c69736841756374696f6e0400fd010150456e676c69736841756374696f6e506172616d730003002c4f70656e41756374696f6e0400050201444f70656e41756374696f6e506172616d7300040000110204184f7074696f6e04045401ac0108104e6f6e6500000010536f6d650400ac000001000015020c3870616c6c65745f636f6e74656e741474797065737c4368616e6e656c4372656174696f6e506172616d65746572735265636f7264143453746f72616765417373657473011902204d656d626572496401283c53746f726167654275636b65744964012850446973747269627574696f6e4275636b657449640125021c42616c616e63650118001c0118617373657473290201544f7074696f6e3c53746f726167654173736574733e0001106d6574613101013c4f7074696f6e3c5665633c75383e3e000134636f6c6c61626f7261746f72732d0201ac42547265654d61703c4d656d62657249642c204368616e6e656c4167656e745065726d697373696f6e733e00013c73746f726167655f6275636b6574736901016442547265655365743c53746f726167654275636b657449643e000150646973747269627574696f6e5f6275636b6574733902017842547265655365743c446973747269627574696f6e4275636b657449643e00018465787065637465645f6368616e6e656c5f73746174655f626c6f61745f626f6e6418011c42616c616e636500019465787065637465645f646174615f6f626a6563745f73746174655f626c6f61745f626f6e6418011c42616c616e6365000019020c3870616c6c65745f636f6e74656e741474797065734c53746f726167654173736574735265636f7264041c42616c616e63650118000801506f626a6563745f6372656174696f6e5f6c6973741d0201845665633c446174614f626a6563744372656174696f6e506172616d65746572733e00015865787065637465645f646174615f73697a655f66656518011c42616c616e636500001d020000022102002102083870616c6c65745f73746f7261676570446174614f626a6563744372656174696f6e506172616d6574657273000008011073697a6528010c75363400013c697066735f636f6e74656e745f696430011c5665633c75383e00002502083870616c6c65745f73746f7261676568446973747269627574696f6e4275636b657449645265636f72640868446973747269627574696f6e4275636b657446616d696c79496401285c446973747269627574696f6e4275636b6574496e646578012800080174646973747269627574696f6e5f6275636b65745f66616d696c795f6964280168446973747269627574696f6e4275636b657446616d696c794964000164646973747269627574696f6e5f6275636b65745f696e64657828015c446973747269627574696f6e4275636b6574496e6465780000290204184f7074696f6e0404540119020108104e6f6e6500000010536f6d650400190200000100002d02042042547265654d617008044b0128045601bd010004003102000000310200000235020035020000040828bd01003902042042547265655365740404540125020004003d020000003d0200000225020041020c3870616c6c65745f636f6e74656e74147479706573744368616e6e656c557064617465506172616d65746572735265636f7264103453746f7261676541737365747301190230446174614f626a65637449640128204d656d626572496401281c42616c616e63650118001801406173736574735f746f5f75706c6f6164290201544f7074696f6e3c53746f726167654173736574733e0001206e65775f6d6574613101013c4f7074696f6e3c5665633c75383e3e0001406173736574735f746f5f72656d6f76656901015842547265655365743c446174614f626a65637449643e000134636f6c6c61626f7261746f7273450201cc4f7074696f6e3c42547265654d61703c4d656d62657249642c204368616e6e656c4167656e745065726d697373696f6e733e3e00019465787065637465645f646174615f6f626a6563745f73746174655f626c6f61745f626f6e6418011c42616c616e636500016c73746f726167655f6275636b6574735f6e756d5f7769746e6573730102012c4f7074696f6e3c7533323e0000450204184f7074696f6e040454012d020108104e6f6e6500000010536f6d6504002d02000001000049020c3870616c6c65745f636f6e74656e7414747970657374566964656f4372656174696f6e506172616d65746572735265636f72640c3453746f72616765417373657473011902544e667449737375616e6365506172616d65746572730109021c42616c616e6365011800180118617373657473290201544f7074696f6e3c53746f726167654173736574733e0001106d6574613101013c4f7074696f6e3c5665633c75383e3e0001386175746f5f69737375655f6e66744d0201744f7074696f6e3c4e667449737375616e6365506172616d65746572733e00017c65787065637465645f766964656f5f73746174655f626c6f61745f626f6e6418011c42616c616e636500019465787065637465645f646174615f6f626a6563745f73746174655f626c6f61745f626f6e6418011c42616c616e636500016c73746f726167655f6275636b6574735f6e756d5f7769746e65737310010c75333200004d0204184f7074696f6e0404540109020108104e6f6e6500000010536f6d6504000902000001000051020c3870616c6c65745f636f6e74656e741474797065736c566964656f557064617465506172616d65746572735265636f7264103453746f7261676541737365747301190230446174614f626a65637449640128544e667449737375616e6365506172616d65746572730109021c42616c616e63650118001801406173736574735f746f5f75706c6f6164290201544f7074696f6e3c53746f726167654173736574733e0001206e65775f6d6574613101013c4f7074696f6e3c5665633c75383e3e0001406173736574735f746f5f72656d6f76656901015842547265655365743c446174614f626a65637449643e0001386175746f5f69737375655f6e66744d0201744f7074696f6e3c4e667449737375616e6365506172616d65746572733e00019465787065637465645f646174615f6f626a6563745f73746174655f626c6f61745f626f6e6418011c42616c616e636500016c73746f726167655f6275636b6574735f6e756d5f7769746e6573730102012c4f7074696f6e3c7533323e00005502042042547265654d617008044b010804560159020004006502000000590204204254726565536574040454015d0200040061020000005d02143870616c6c65745f636f6e74656e742c7065726d697373696f6e733463757261746f725f67726f7570386974657261626c655f656e756d735c436f6e74656e744d6f6465726174696f6e416374696f6e0001202448696465566964656f0000002c486964654368616e6e656c000100684368616e67654368616e6e656c466561747572655374617475730400d50101585061757361626c654368616e6e656c466561747572650002002c44656c657465566964656f0003003444656c6574654368616e6e656c0004004444656c657465566964656f4173736574730400980110626f6f6c0005006c44656c6574654e6f6e566964656f4368616e6e656c417373657473000600585570646174654368616e6e656c4e66744c696d6974730007000061020000025d02006502000002690200690200000408085902006d020c3870616c6c65745f636f6e74656e74147479706573705472616e73666572436f6d6d69746d656e74506172616d65746572730c5c4368616e6e656c436f6c6c61626f7261746f72734d6170012d021c42616c616e63650118285472616e7366657249640128000c01446e65775f636f6c6c61626f7261746f72732d02015c4368616e6e656c436f6c6c61626f7261746f72734d6170000114707269636518011c42616c616e636500012c7472616e736665725f69642801285472616e736665724964000071020c3870616c6c65745f636f6e74656e74147479706573905570646174654368616e6e656c5061796f757473506172616d65746572735265636f72640c7c4368616e6e656c5061796f7574735061796c6f6164506172616d65746572730175021c42616c616e636501181048617368012c00140128636f6d6d69746d656e74790201304f7074696f6e3c486173683e00011c7061796c6f61647d02019c4f7074696f6e3c4368616e6e656c5061796f7574735061796c6f6164506172616d65746572733e00014c6d696e5f636173686f75745f616c6c6f7765644501013c4f7074696f6e3c42616c616e63653e00014c6d61785f636173686f75745f616c6c6f7765644501013c4f7074696f6e3c42616c616e63653e0001606368616e6e656c5f636173686f7574735f656e61626c6564810201304f7074696f6e3c626f6f6c3e000075020c3870616c6c65745f636f6e74656e74147479706573944368616e6e656c5061796f7574735061796c6f6164506172616d65746572735265636f7264041c42616c616e63650118000c01586f626a6563745f6372656174696f6e5f706172616d7321020170446174614f626a6563744372656174696f6e506172616d657465727300015865787065637465645f646174615f73697a655f66656518011c42616c616e636500019465787065637465645f646174615f6f626a6563745f73746174655f626c6f61745f626f6e6418011c42616c616e63650000790204184f7074696f6e040454012c0108104e6f6e6500000010536f6d6504002c00000100007d0204184f7074696f6e0404540175020108104e6f6e6500000010536f6d65040075020000010000810204184f7074696f6e04045401980108104e6f6e6500000010536f6d65040098000001000085020c3870616c6c65745f636f6e74656e741474797065735c4368616e6e656c46756e647344657374696e6174696f6e04244163636f756e74496401000108244163636f756e74496404000001244163636f756e74496400000034436f756e63696c4275646765740001000089020c3870616c6c65745f636f6e74656e74147479706573384e66744c696d6974506572696f64000108144461696c79000000185765656b6c79000100008d02083870616c6c65745f73746f72616765205261774576656e74303c53746f726167654275636b65744964012820576f726b65724964012830446174614f626a656374496401284055706c6f6164506172616d65746572730191021442616749640195023044796e616d69634261674964019d02244163636f756e74496401001c42616c616e6365011868446973747269627574696f6e4275636b657446616d696c794964012850446973747269627574696f6e4275636b657449640125025c446973747269627574696f6e4275636b6574496e64657801287044796e616d69634261674372656174696f6e506172616d657465727301a10201a85053746f726167654275636b657443726561746564140028013c53746f726167654275636b657449640000350101404f7074696f6e3c576f726b657249643e0000980110626f6f6c000028010c753634000028010c75363400001c94456d697473206f6e206372656174696e67207468652073746f72616765206275636b65742e18506172616d734c2d2073746f72616765206275636b6574204944402d20696e766974656420776f726b65726c2d20666c61672022616363657074696e675f6e65775f6261677322642d2073697a65206c696d697420666f7220766f75636865722c702d206f626a65637473206c696d697420666f7220766f75636865722c7c53746f726167654275636b6574496e7669746174696f6e41636365707465640c0028013c53746f726167654275636b657449640000280120576f726b6572496400000001244163636f756e744964000114c4456d697473206f6e20616363657074696e67207468652073746f72616765206275636b657420696e7669746174696f6e2e18506172616d734c2d2073746f72616765206275636b65742049444c2d20696e766974656420776f726b65722049445c2d207472616e736163746f72206163636f756e742049446c53746f726167654275636b65747355706461746564466f724261670c0095020114426167496400006901016442547265655365743c53746f726167654275636b657449643e00006901016442547265655365743c53746f726167654275636b657449643e000214a8456d697473206f6e207570646174696e672073746f72616765206275636b65747320666f72206261672e18506172616d73202d20626167204944982d2073746f72616765206275636b65747320746f2061646420494420636f6c6c656374696f6ea42d2073746f72616765206275636b65747320746f2072656d6f766520494420636f6c6c656374696f6e4c446174614f626a6563747355706c6f616465640c006901015842547265655365743c446174614f626a65637449643e00009102014055706c6f6164506172616d6574657273000018011c42616c616e636500031480456d697473206f6e2075706c6f6164696e672064617461206f626a656374732e18506172616d73482d2064617461206f626a6563747320494473782d20696e697469616c2075706c6f6164696e6720706172616d6574657273782d20737461746520626c6f617420626f6e6420666f72206f626a656374736853746f726167654f70657261746f724d657461646174615365740c0028013c53746f726167654275636b657449640000280120576f726b65724964000030011c5665633c75383e000414bc456d697473206f6e2073657474696e67207468652073746f72616765206f70657261746f72206d657461646174612e18506172616d734c2d2073746f72616765206275636b65742049444c2d20696e766974656420776f726b6572204944282d206d657461646174617453746f726167654275636b6574566f75636865724c696d6974735365740c0028013c53746f726167654275636b65744964000028010c753634000028010c753634000514cc456d697473206f6e2073657474696e67207468652073746f72616765206275636b657420766f7563686572206c696d6974732e18506172616d734c2d2073746f72616765206275636b6574204944782d206e657720746f74616c206f626a656374732073697a65206c696d6974802d206e657720746f74616c206f626a65637473206e756d626572206c696d69746850656e64696e67446174614f626a656374734163636570746564100028013c53746f726167654275636b657449640000280120576f726b65724964000095020114426167496400006901015842547265655365743c446174614f626a65637449643e000618a0456d697473206f6e20616363657074696e672070656e64696e672064617461206f626a656374732e18506172616d734c2d2073746f72616765206275636b6574204944842d20776f726b6572204944202873746f726167652070726f766964657220494429202d20626167204944582d2070656e64696e672064617461206f626a656374738053746f726167654275636b6574496e7669746174696f6e43616e63656c6c6564040028013c53746f726167654275636b6574496400070cc8456d697473206f6e2063616e63656c6c696e67207468652073746f72616765206275636b657420696e7669746174696f6e2e18506172616d734c2d2073746f72616765206275636b65742049447053746f726167654275636b65744f70657261746f72496e7669746564080028013c53746f726167654275636b657449640000280120576f726b65724964000810c0456d697473206f6e207468652073746f72616765206275636b6574206f70657261746f7220696e7669746174696f6e2e18506172616d734c2d2073746f72616765206275636b6574204944a82d206f70657261746f7220776f726b6572204944202873746f726167652070726f7669646572204944297053746f726167654275636b65744f70657261746f7252656d6f766564040028013c53746f726167654275636b6574496400090cb4456d697473206f6e207468652073746f72616765206275636b6574206f70657261746f722072656d6f76616c2e18506172616d734c2d2073746f72616765206275636b65742049446c55706c6f6164696e67426c6f636b537461747573557064617465640400980110626f6f6c000a0c0501456d697473206f6e206368616e67696e67207468652073697a652d62617365642070726963696e67206f66206e6577206f626a656374732075706c6f616465642e18506172616d73302d206e6577207374617475737c446174614f626a6563745065724d6567616279746546656555706461746564040018011c42616c616e6365000b0c0501456d697473206f6e206368616e67696e67207468652073697a652d62617365642070726963696e67206f66206e6577206f626a656374732075706c6f616465642e18506172616d734c2d206e657720646174612073697a65206665658053746f726167654275636b6574735065724261674c696d697455706461746564040010010c753332000c0cf4456d697473206f6e206368616e67696e6720746865202253746f72616765206275636b657473207065722062616722206e756d626572206c696d69742e18506172616d732c2d206e6577206c696d69749453746f726167654275636b657473566f75636865724d61784c696d69747355706461746564080028010c753634000028010c753634000d10ec456d697473206f6e206368616e67696e6720746865202253746f72616765206275636b65747320766f7563686572206d6178206c696d697473222e18506172616d73602d206e6577206f626a656374732073697a65206c696d6974682d206e6577206f626a65637473206e756d626572206c696d697440446174614f626a656374734d6f7665640c00950201144261674964000095020114426167496400006901015842547265655365743c446174614f626a65637449643e000e14a8456d697473206f6e206d6f76696e672064617461206f626a65637473206265747765656e20626167732e18506172616d733c2d20736f7572636520626167204944502d2064657374696e6174696f6e20626167204944442d2064617461206f626a6563742049447348446174614f626a6563747344656c657465640c000001244163636f756e744964000095020114426167496400006901015842547265655365743c446174614f626a65637449643e000f14a4456d697473206f6e2064617461206f626a656374732064656c6574696f6e2066726f6d20626167732e18506172616d73942d206163636f756e7420494420666f722074686520737461746520626c6f617420626f6e64202d20626167204944442d2064617461206f626a656374204944736853746f726167654275636b657453746174757355706461746564080028013c53746f726167654275636b657449640000980110626f6f6c00101098456d697473206f6e2073746f72616765206275636b657420737461747573207570646174652e18506172616d734c2d2073746f72616765206275636b6574204944302d206e6577207374617475733c557064617465426c61636b6c6973740800a502014442547265655365743c5665633c75383e3e0000a502014442547265655365743c5665633c75383e3e001110c4456d697473206f6e207570646174696e672074686520626c61636b6c69737420776974682064617461206861736865732e18506172616d73942d2068617368657320746f2072656d6f76652066726f6d2074686520626c61636b6c697374802d2068617368657320746f2061646420746f2074686520626c61636b6c6973744444796e616d696342616744656c6574656404009d02013044796e616d6963426167496400120c80456d697473206f6e2064656c6574696e6720612064796e616d6963206261672e18506172616d73402d2064796e616d6963206261672049444444796e616d6963426167437265617465640800a102017044796e616d69634261674372656174696f6e506172616d657465727300006901015842547265655365743c446174614f626a65637449643e00131080456d697473206f6e206372656174696e6720612064796e616d6963206261672e18506172616d73842d2064796e616d696320626167206372656174696f6e20706172616d65746572736c2d2075706c6f616465642064617461206f626a656374732069647338566f75636865724368616e676564080028013c53746f726167654275636b657449640000ad02011c566f7563686572001410cc456d697473206f6e206368616e67696e672074686520766f756368657220666f7220612073746f72616765206275636b65742e18506172616d734c2d2073746f72616765206275636b6574204944342d206e657720766f75636865725053746f726167654275636b657444656c65746564040028013c53746f726167654275636b6574496400150c84456d697473206f6e2073746f72616765206275636b65742064656c6574696e672e18506172616d734c2d2073746f72616765206275636b6574204944dc4e756d6265724f6653746f726167654275636b657473496e44796e616d69634261674372656174696f6e506f6c696379557064617465640800b102013844796e616d696342616754797065000010010c7533320016103d01456d697473206f6e207570646174696e6720746865206e756d626572206f662073746f72616765206275636b65747320696e2064796e616d696320626167206372656174696f6e20706f6c6963792e18506172616d73482d2064796e616d69632062616720747970657c2d206e6577206e756d626572206f662073746f72616765206275636b6574737c446973747269627574696f6e4275636b657446616d696c79437265617465640400280168446973747269627574696f6e4275636b657446616d696c79496400170cb4456d697473206f6e206372656174696e6720646973747269627574696f6e206275636b65742066616d696c792e18506172616d737c2d20646973747269627574696f6e2066616d696c79206275636b65742049447c446973747269627574696f6e4275636b657446616d696c7944656c657465640400280168446973747269627574696f6e4275636b657446616d696c79496400180cb4456d697473206f6e2064656c6574696e6720646973747269627574696f6e206275636b65742066616d696c792e18506172616d737c2d20646973747269627574696f6e2066616d696c79206275636b657420494464446973747269627574696f6e4275636b6574437265617465640c00280168446973747269627574696f6e4275636b657446616d696c7949640000980110626f6f6c000025020150446973747269627574696f6e4275636b6574496400191498456d697473206f6e206372656174696e6720646973747269627574696f6e206275636b65742e18506172616d737c2d20646973747269627574696f6e206275636b65742066616d696c79204944502d20616363657074696e67206e65772062616773602d20646973747269627574696f6e206275636b65742049447c446973747269627574696f6e4275636b657453746174757355706461746564080025020150446973747269627574696f6e4275636b657449640000980110626f6f6c001a10ec456d697473206f6e2073746f72616765206275636b657420737461747573207570646174652028616363657074696e67206e65772062616773292e18506172616d73602d20646973747269627574696f6e206275636b6574204944842d206e6577207374617475732028616363657074696e67206e657720626167732964446973747269627574696f6e4275636b657444656c65746564040025020150446973747269627574696f6e4275636b65744964001b0c98456d697473206f6e2064656c6574696e6720646973747269627574696f6e206275636b65742e18506172616d73602d20646973747269627574696f6e206275636b657420494480446973747269627574696f6e4275636b65747355706461746564466f7242616710009502011442616749640000280168446973747269627574696f6e4275636b657446616d696c79496400006901018442547265655365743c446973747269627574696f6e4275636b6574496e6465783e00006901018442547265655365743c446973747269627574696f6e4275636b6574496e6465783e001c14bc456d697473206f6e207570646174696e6720646973747269627574696f6e206275636b65747320666f72206261672e18506172616d73202d20626167204944982d2073746f72616765206275636b65747320746f2061646420494420636f6c6c656374696f6ea42d2073746f72616765206275636b65747320746f2072656d6f766520494420636f6c6c656374696f6e94446973747269627574696f6e4275636b6574735065724261674c696d697455706461746564040010010c753332001d0c0901456d697473206f6e206368616e67696e67207468652022446973747269627574696f6e206275636b657473207065722062616722206e756d626572206c696d69742e18506172616d732c2d206e6577206c696d697474446973747269627574696f6e4275636b65744d6f646555706461746564080025020150446973747269627574696f6e4275636b657449640000980110626f6f6c001e10e0456d697473206f6e2073746f72616765206275636b6574206d6f6465207570646174652028646973747269627574696e6720666c6167292e18506172616d73602d20646973747269627574696f6e206275636b6574204944382d20646973747269627574696e67a446616d696c696573496e44796e616d69634261674372656174696f6e506f6c696379557064617465640800b102013844796e616d6963426167547970650000b50201a442547265654d61703c446973747269627574696f6e4275636b657446616d696c7949642c207533323e001f102d01456d697473206f6e2064796e616d696320626167206372656174696f6e20706f6c696379207570646174652028646973747269627574696f6e206275636b65742066616d696c696573292e18506172616d73482d2064796e616d6963206261672074797065742d2066616d696c69657320616e64206275636b6574206e756d6265727384446973747269627574696f6e4275636b65744f70657261746f72496e7669746564080025020150446973747269627574696f6e4275636b657449640000280120576f726b657249640020101101456d697473206f6e206372656174696e67206120646973747269627574696f6e206275636b657420696e7669746174696f6e20666f7220746865206f70657261746f722e18506172616d73602d20646973747269627574696f6e206275636b65742049442c2d20776f726b657220494494446973747269627574696f6e4275636b6574496e7669746174696f6e43616e63656c6c6564080025020150446973747269627574696f6e4275636b657449640000280120576f726b657249640021101501456d697473206f6e2063616e63656c696e67206120646973747269627574696f6e206275636b657420696e7669746174696f6e20666f7220746865206f70657261746f722e18506172616d73602d20646973747269627574696f6e206275636b6574204944502d206f70657261746f7220776f726b657220494490446973747269627574696f6e4275636b6574496e7669746174696f6e41636365707465640800280120576f726b65724964000025020150446973747269627574696f6e4275636b657449640022101501456d697473206f6e20616363657074696e67206120646973747269627574696f6e206275636b657420696e7669746174696f6e20666f7220746865206f70657261746f722e18506172616d732c2d20776f726b6572204944602d20646973747269627574696f6e206275636b657420494474446973747269627574696f6e4275636b65744d657461646174615365740c00280120576f726b65724964000025020150446973747269627574696f6e4275636b65744964000030011c5665633c75383e0023140101456d697473206f6e2073657474696e6720746865206d65746164617461206279206120646973747269627574696f6e206275636b6574206f70657261746f722e18506172616d732c2d20776f726b6572204944602d20646973747269627574696f6e206275636b6574204944282d206d6574616461746184446973747269627574696f6e4275636b65744f70657261746f7252656d6f766564080025020150446973747269627574696f6e4275636b657449640000280120576f726b65724964002410c8456d697473206f6e2074686520646973747269627574696f6e206275636b6574206f70657261746f722072656d6f76616c2e18506172616d73602d20646973747269627574696f6e206275636b6574204944842d20646973747269627574696f6e206275636b6574206f70657261746f722049448c446973747269627574696f6e4275636b657446616d696c794d657461646174615365740800280168446973747269627574696f6e4275636b657446616d696c794964000030011c5665633c75383e002510f8456d697473206f6e2073657474696e6720746865206d65746164617461206279206120646973747269627574696f6e206275636b65742066616d696c792e18506172616d737c2d20646973747269627574696f6e206275636b65742066616d696c79204944282d206d6574616461746190446174614f626a6563745374617465426c6f6174426f6e6456616c756555706461746564040018011c42616c616e636500260ccc456d697473206f6e207570646174696e67207468652064617461206f626a65637420737461746520626c6f617420626f6e642e18506172616d73602d20737461746520626c6f617420626f6e642076616c756548446174614f626a65637473557064617465640c009102014055706c6f6164506172616d657465727300006901015842547265655365743c446174614f626a65637449643e00006901015842547265655365743c446174614f626a65637449643e0027140d01456d697473206f6e2073746f7261676520617373657473206265696e672075706c6f6164656420616e642064656c65746564206174207468652073616d652074696d6518506172616d73482d2055706c6f6164506172616d6574657273742d20496473206f66207468652075706c6f61646564206f626a65637473702d20496473206f66207468652072656d6f766564206f626a656374735c53746f726167654f70657261746f7252656d61726b65640c00280120576f726b65724964000028013c53746f726167654275636b65744964000030011c5665633c75383e002814a4456d697473206f6e2053746f72616765204f70657261746f72206d616b696e6720612072656d61726b18506172616d73582d206f70657261746f72277320776f726b65722069644c2d2073746f72616765206275636b6574206964402d2072656d61726b206d65737361676570446973747269627574696f6e4f70657261746f7252656d61726b65640c00280120576f726b65724964000025020150446973747269627574696f6e4275636b65744964000030011c5665633c75383e002914b8456d697473206f6e20446973747269627574696f6e204f70657261746f72206d616b696e6720612072656d61726b18506172616d73582d206f70657261746f72277320776f726b6572206964602d20646973747269627574696f6e206275636b6574206964402d2072656d61726b206d6573736167650c5c4576656e747320666f722074686973206d6f64756c652e003853746f72616765206576656e74739102083870616c6c65745f73746f726167655855706c6f6164506172616d65746572735265636f72640c144261674964019502244163636f756e74496401001c42616c616e63650118001401186261675f69649502011442616749640001506f626a6563745f6372656174696f6e5f6c6973741d0201845665633c446174614f626a6563744372656174696f6e506172616d65746572733e00018873746174655f626c6f61745f626f6e645f736f757263655f6163636f756e745f69640001244163636f756e74496400015865787065637465645f646174615f73697a655f66656518011c42616c616e636500019465787065637465645f646174615f6f626a6563745f73746174655f626c6f61745f626f6e6418011c42616c616e636500009502083870616c6c65745f73746f726167652442616749645479706508204d656d62657249640128244368616e6e656c4964012801081853746174696304009902012c53746174696342616749640000001c44796e616d696304009d02019444796e616d69634261674964547970653c4d656d62657249642c204368616e6e656c49643e000100009902083870616c6c65745f73746f726167652c53746174696342616749640001081c436f756e63696c00000030576f726b696e6747726f7570040099010130576f726b696e6747726f7570000100009d02083870616c6c65745f73746f726167654044796e616d696342616749645479706508204d656d62657249640128244368616e6e656c496401280108184d656d62657204002801204d656d62657249640000001c4368616e6e656c04002801244368616e6e656c496400010000a102083870616c6c65745f73746f726167657844796e4261674372656174696f6e506172616d65746572735265636f726414144261674964019d02244163636f756e74496401001c42616c616e636501183c53746f726167654275636b65744964012850446973747269627574696f6e4275636b65744964012502001c01186261675f69649d02011442616749640001506f626a6563745f6372656174696f6e5f6c6973741d0201845665633c446174614f626a6563744372656174696f6e506172616d65746572733e00018873746174655f626c6f61745f626f6e645f736f757263655f6163636f756e745f69640001244163636f756e74496400015865787065637465645f646174615f73697a655f66656518011c42616c616e636500019465787065637465645f646174615f6f626a6563745f73746174655f626c6f61745f626f6e6418011c42616c616e636500013c73746f726167655f6275636b6574736901016442547265655365743c53746f726167654275636b657449643e000150646973747269627574696f6e5f6275636b6574733902017842547265655365743c446973747269627574696f6e4275636b657449643e0000a502042042547265655365740404540130000400a902000000a9020000023000ad02083870616c6c65745f73746f726167651c566f7563686572000010012873697a655f6c696d697428010c7536340001346f626a656374735f6c696d697428010c75363400012473697a655f7573656428010c7536340001306f626a656374735f7573656428010c7536340000b102083870616c6c65745f73746f726167653844796e616d696342616754797065000108184d656d6265720000001c4368616e6e656c00010000b502042042547265654d617008044b012804560110000400b902000000b902000002bd0200bd0200000408281000c1020c5070616c6c65745f70726f6a6563745f746f6b656e186576656e7473205261774576656e74281c42616c616e63650118284a6f7942616c616e636501181c546f6b656e49640128244163636f756e7449640100204d656d626572496401282c426c6f636b4e756d6265720110385472616e73666572506f6c69637901c5025c546f6b656e49737375616e6365506172616d657465727301c9024856616c6964617465645472616e736665727301fd0224546f6b656e53616c65012103014858546f6b656e416d6f756e745472616e73666572726564100028011c546f6b656e496400002801204d656d62657249640000fd02014856616c6964617465645472616e7366657273000030011c5665633c75383e000018ac546f6b656e20616d6f756e74206973207472616e736665727265642066726f6d2073726320746f206473741c506172616d733a482d20746f6b656e206964656e746966696572482d20736f75726365206d656d62657220696459012d206d617020636f6e7461696e696e672076616c696461746564206f7574707574732028616d6f756e7420696e646578656420627920286d656d6265725f6964202b206163636f756e74206578697374616e63652929542d207472616e736665722773206d6574616461746178546f6b656e416d6f756e745472616e736665727265644279497373756572100028011c546f6b656e496400002801204d656d62657249640000fd02014856616c6964617465645472616e7366657273000030011c5665633c75383e00012088546f6b656e20616d6f756e74207472616e73666572726564206279206973737565721c506172616d733a482d20746f6b656e206964656e7469666965726c2d20736f75726365202869737375657229206d656d626572206964882d206d617020636f6e7461696e696e672076616c696461746564206f7574707574732d01202028616d6f756e742c206f70742e2076657374696e67207363686564756c652c206f70742e2076657374696e6720636c65616e7570206b657929206461746120696e6465786564206279882020286163636f756e745f6964202b206163636f756e74206578697374616e636529542d207472616e736665722773206d6574616461746160506174726f6e61676552617465446563726561736564546f080028011c546f6b656e496400002503012c5065727175696e74696c6c00021060506174726f6e6167652072617465206465637265617365641c506172616d733a482d20746f6b656e206964656e746966696572502d206e657720706174726f6e616765207261746558506174726f6e616765437265646974436c61696d65640c0028011c546f6b656e4964000018011c42616c616e636500002801204d656d62657249640003148c506174726f6e6167652063726564697420636c61696d65642062792063726561746f721c506172616d733a482d20746f6b656e206964656e7469666965723c2d2063726564697420616d6f756e742c2d206d656d62657220696448526576656e756553706c6974497373756564100028011c546f6b656e4964000010012c426c6f636b4e756d626572000010012c426c6f636b4e756d62657200001801284a6f7942616c616e636500041850526576656e75652053706c6974206973737565641c506172616d733a482d20746f6b656e206964656e746966696572782d207374617274696e6720626c6f636b20666f72207468652073706c69745c2d206475726174696f6e206f66207468652073706c6974742d204a4f5920616c6c6f636174656420666f72207468652073706c697454526576656e756553706c697446696e616c697a65640c0028011c546f6b656e496400000001244163636f756e74496400001801284a6f7942616c616e63650005145c526576656e75652053706c69742066696e616c697a65641c506172616d733a482d20746f6b656e206964656e746966696572a42d207265636f76657279206163636f756e7420666f7220746865206c6566746f7665722066756e6473402d206c6566746f7665722066756e64735c55736572506172746963697061746564496e53706c6974140028011c546f6b656e496400002801204d656d6265724964000018011c42616c616e636500001801284a6f7942616c616e63650000100138526576656e756553706c6974496400061c8855736572207061727469706174656420696e206120726576656e75652073706c69741c506172616d733a482d20746f6b656e206964656e746966696572642d207061727469636970616e742773206d656d6265722069647c2d207573657220616c6c6f6361746564207374616b65642062616c616e63657c2d206469766964656e6420616d6f756e7420284a4f5929206772616e746564682d20726576656e75652073706c6974206964656e74696669657240526576656e756553706c69744c6566740c0028011c546f6b656e496400002801204d656d6265724964000018011c42616c616e63650007145c55736572206c65667420726576656e75652073706c69741c506172616d733a482d20746f6b656e206964656e746966696572702d2065782d7061727469636970616e742773206d656d626572206964442d20616d6f756e7420756e7374616b6564544d656d6265724a6f696e656457686974656c6973740c0028011c546f6b656e496400002801204d656d62657249640000c50201385472616e73666572506f6c6963790008145c4d656d626572206a6f696e65642077686974656c6973741c506172616d733a482d20746f6b656e206964656e7469666965722c2d206d656d626572206964642d206f6e676f696e67207472616e7366657220706f6c6963793c4163636f756e744475737465644279100028011c546f6b656e496400002801204d656d626572496400000001244163636f756e7449640000c50201385472616e73666572506f6c696379000918384163636f756e74204475737465641c506172616d733a482d20746f6b656e206964656e7469666965729c2d206964206f662074686520647573746564206163636f756e74206f776e6572206d656d6265728c2d206163636f756e7420746861742063616c6c6564207468652065787472696e736963402d206f6e676f696e6720706f6c69637934546f6b656e4465697373756564040028011c546f6b656e4964000a0c38546f6b656e2044656973737565641c506172616d733a282d20746f6b656e2069642c546f6b656e497373756564080028011c546f6b656e49640000c902015c546f6b656e49737375616e6365506172616d6574657273000b1030546f6b656e204973737565641c506172616d733a282d20746f6b656e2069646c2d20746f6b656e2069737375616e636520706172616d657465727350546f6b656e53616c65496e697469616c697a6564100028011c546f6b656e4964000010012c546f6b656e53616c654964000021030124546f6b656e53616c6500003101013c4f7074696f6e3c5665633c75383e3e000c1864546f6b652053616c652077617320496e697469616c697a65641c506172616d733a282d20746f6b656e2069643c2d20746f6b656e2073616c65206964442d20746f6b656e2073616c652064617461542d20746f6b656e2073616c65206d65746164617461605570636f6d696e67546f6b656e53616c6555706461746564100028011c546f6b656e4964000010012c546f6b656e53616c65496400000102014c4f7074696f6e3c426c6f636b4e756d6265723e00000102014c4f7074696f6e3c426c6f636b4e756d6265723e000d187c5570636f6d696e6720546f6b656e2053616c652077617320557064617465641c506172616d733a282d20746f6b656e2069643c2d20746f6b656e2073616c65206964582d206e65772073616c6520737461727420626c6f636b4c2d206e65772073616c65206475726174696f6e54546f6b656e735075726368617365644f6e53616c65100028011c546f6b656e4964000010012c546f6b656e53616c654964000018011c42616c616e636500002801204d656d6265724964000e1860546f6b656e7320507572636861736564204f6e2053616c651c506172616d733a282d20746f6b656e2069643c2d20746f6b656e2073616c65206964702d20616d6f756e74206f6620746f6b656e73207075726368617365644c2d2062757965722773206d656d62657220696448546f6b656e53616c6546696e616c697a6564100028011c546f6b656e4964000010012c546f6b656e53616c654964000018011c42616c616e636500001801284a6f7942616c616e6365000f1850546f6b656e2053616c652046696e616c697a65641c506172616d733a282d20746f6b656e2069643c2d20746f6b656e2073616c652069648c2d20616d6f756e74206f6620756e736f6c6420746f6b656e73207265636f7665726564642d20616d6f756e74206f66204a4f5920636f6c6c6563746564945472616e73666572506f6c6963794368616e676564546f5065726d697373696f6e6c657373040028011c546f6b656e496400100ca45472616e7366657220506f6c696379204368616e67656420546f205065726d697373696f6e6c6573731c506172616d733a282d20746f6b656e20696430546f6b656e734275726e65640c0028011c546f6b656e496400002801204d656d6265724964000018011c42616c616e636500111434546f6b656e73204275726e65641c506172616d733a282d20746f6b656e2069642c2d206d656d626572206964642d206e756d626572206f6620746f6b656e73206275726e6564085c4576656e747320666f722074686973206d6f64756c652e00c5020c5070616c6c65745f70726f6a6563745f746f6b656e147479706573385472616e73666572506f6c696379041048617368012c0108385065726d697373696f6e6c657373000000305065726d697373696f6e656404002c01104861736800010000c9020c5070616c6c65745f70726f6a6563745f746f6b656e1474797065735c546f6b656e49737375616e6365506172616d6574657273101048617368012c3c546f6b656e416c6c6f636174696f6e01cd02505472616e73666572506f6c696379506172616d7301dd02204d656d6265724964012800140148696e697469616c5f616c6c6f636174696f6eed02018c42547265654d61703c4d656d62657249642c20546f6b656e416c6c6f636174696f6e3e00011873796d626f6c2c01104861736800013c7472616e736665725f706f6c696379dd0201505472616e73666572506f6c696379506172616d73000138706174726f6e6167655f72617465f9020128596561726c7952617465000148726576656e75655f73706c69745f72617465d502011c5065726d696c6c0000cd020c5070616c6c65745f70726f6a6563745f746f6b656e1474797065733c546f6b656e416c6c6f636174696f6e081c42616c616e636501185456657374696e675363686564756c65506172616d7301d10200080118616d6f756e7418011c42616c616e636500015c76657374696e675f7363686564756c655f706172616d73d90201744f7074696f6e3c56657374696e675363686564756c65506172616d733e0000d1020c5070616c6c65745f70726f6a6563745f746f6b656e1474797065735456657374696e675363686564756c65506172616d73042c426c6f636b4e756d6265720110000c015c6c696e6561725f76657374696e675f6475726174696f6e10012c426c6f636b4e756d62657200014c626c6f636b735f6265666f72655f636c69666610012c426c6f636b4e756d62657200015c636c6966665f616d6f756e745f70657263656e74616765d502011c5065726d696c6c0000d5020c3473705f61726974686d65746963287065725f7468696e67731c5065726d696c6c0000040010010c7533320000d90204184f7074696f6e04045401d1020108104e6f6e6500000010536f6d650400d1020000010000dd020c5070616c6c65745f70726f6a6563745f746f6b656e147479706573505472616e73666572506f6c696379506172616d73043c57686974656c697374506172616d7301e1020108385065726d697373696f6e6c657373000000305065726d697373696f6e65640400e102013c57686974656c697374506172616d7300010000e1020c5070616c6c65745f70726f6a6563745f746f6b656e1474797065733c57686974656c697374506172616d73081048617368012c7053696e676c65446174614f626a65637455706c6f6164506172616d7301e50200080128636f6d6d69746d656e742c01104861736800011c7061796c6f6164e90201904f7074696f6e3c53696e676c65446174614f626a65637455706c6f6164506172616d733e0000e5020c5070616c6c65745f70726f6a6563745f746f6b656e1474797065737053696e676c65446174614f626a65637455706c6f6164506172616d7304284a6f7942616c616e63650118000c01586f626a6563745f6372656174696f6e5f706172616d7321020170446174614f626a6563744372656174696f6e506172616d657465727300015865787065637465645f646174615f73697a655f6665651801284a6f7942616c616e636500019465787065637465645f646174615f6f626a6563745f73746174655f626c6f61745f626f6e641801284a6f7942616c616e63650000e90204184f7074696f6e04045401e5020108104e6f6e6500000010536f6d650400e5020000010000ed02042042547265654d617008044b0128045601cd02000400f102000000f102000002f50200f5020000040828cd0200f9020c5070616c6c65745f70726f6a6563745f746f6b656e14747970657328596561726c795261746500000400d502011c5065726d696c6c0000fd020c5070616c6c65745f70726f6a6563745f746f6b656e147479706573245472616e736665727308204d656d62657249640101031c5061796d656e740105030004001503016c42547265654d61703c4d656d62657249642c205061796d656e743e000001030c5070616c6c65745f70726f6a6563745f746f6b656e1474797065732456616c69646174656404204d656d626572496401280108204578697374696e6704002801204d656d62657249640000002c4e6f6e4578697374696e6704002801204d656d62657249640001000005030c5070616c6c65745f70726f6a6563745f746f6b656e1474797065734056616c6964617465645061796d656e7404485061796d656e745769746856657374696e670109030008011c7061796d656e74090301485061796d656e745769746856657374696e6700016476657374696e675f636c65616e75705f63616e6469646174650d0301544f7074696f6e3c56657374696e67536f757263653e000009030c5070616c6c65745f70726f6a6563745f746f6b656e147479706573485061796d656e745769746856657374696e67081c42616c616e636501185456657374696e675363686564756c65506172616d7301d10200080118616d6f756e7418011c42616c616e636500014076657374696e675f7363686564756c65d90201744f7074696f6e3c56657374696e675363686564756c65506172616d733e00000d0304184f7074696f6e0404540111030108104e6f6e6500000010536f6d6504001103000001000011030c5070616c6c65745f70726f6a6563745f746f6b656e1474797065733456657374696e67536f7572636500010c3c496e697469616c49737375616e63650000001053616c65040010012c546f6b656e53616c654964000100384973737565725472616e73666572040028010c753634000200001503042042547265654d617008044b0101030456010503000400190300000019030000021d03001d0300000408010305030021030c5070616c6c65745f70726f6a6563745f746f6b656e14747970657324546f6b656e53616c6518284a6f7942616c616e636501181c42616c616e636501182c426c6f636b4e756d62657201105456657374696e675363686564756c65506172616d7301d102204d656d62657249640128244163636f756e744964010000280128756e69745f70726963651801284a6f7942616c616e63650001347175616e746974795f6c65667418011c42616c616e636500013c66756e64735f636f6c6c65637465641801284a6f7942616c616e6365000134746f6b656e735f736f757263652801204d656d62657249640001506561726e696e67735f64657374696e6174696f6e9401444f7074696f6e3c4163636f756e7449643e00012c73746172745f626c6f636b10012c426c6f636b4e756d6265720001206475726174696f6e10012c426c6f636b4e756d62657200015c76657374696e675f7363686564756c655f706172616d73d90201744f7074696f6e3c56657374696e675363686564756c65506172616d733e0001386361705f7065725f6d656d6265724501013c4f7074696f6e3c42616c616e63653e0001346175746f5f66696e616c697a65980110626f6f6c000025030c3473705f61726974686d65746963287065725f7468696e67732c5065727175696e74696c6c0000040028010c75363400002903085c70616c6c65745f70726f706f73616c735f656e67696e65205261774576656e740c2850726f706f73616c49640110204d656d626572496401282c426c6f636b4e756d626572011001185450726f706f73616c53746174757355706461746564080010012850726f706f73616c496400002d03016c50726f706f73616c5374617475733c426c6f636b4e756d6265723e0000106c456d697473206f6e2070726f706f73616c206372656174696f6e2e1c506172616d733a4c2d204964206f6620612070726f706f73616c2e582d204e65772070726f706f73616c207374617475732e5050726f706f73616c4465636973696f6e4d616465080010012850726f706f73616c496400003103014050726f706f73616c4465636973696f6e000110b0456d697473206f6e2067657474696e6720612070726f706f73616c20737461747573206465636973696f6e2e1c506172616d733a4c2d204964206f6620612070726f706f73616c2e4c2d2050726f706f73616c206465636973696f6e4050726f706f73616c4578656375746564080010012850726f706f73616c496400003903013c457865637574696f6e53746174757300021070456d697473206f6e2070726f706f73616c20657865637574696f6e2e1c506172616d733a6c2d204964206f66206120757064617465642070726f706f73616c2e702d2050726f706f73616c20657865637574696f6e207374617475732e14566f74656410002801204d656d6265724964000010012850726f706f73616c496400003d030120566f74654b696e64000030011c5665633c75383e00031880456d697473206f6e20766f74696e6720666f72207468652070726f706f73616c1c506172616d733a7c2d20566f746572202d206d656d626572206964206f66206120766f7465722e4c2d204964206f6620612070726f706f73616c2e3c2d204b696e64206f6620766f74652e302d20526174696f6e616c652e4450726f706f73616c43616e63656c6c656408002801204d656d6265724964000010012850726f706f73616c49640004108c456d697473206f6e20612070726f706f73616c206265696e672063616e63656c6c65641c506172616d733a6c2d204d656d626572204964206f66207468652070726f706f736572502d204964206f66207468652070726f706f73616c4050726f706f73657252656d61726b65640c002801204d656d6265724964000010012850726f706f73616c4964000030011c5665633c75383e00051084456d697473206f6e2070726f706f736572206d616b696e6720612072656d61726b342d2070726f706f736572206964342d2070726f706f73616c206964242d206d6573736167650c5c4576656e747320666f722074686973206d6f64756c652e005c50726f706f73616c7320656e67696e65206576656e74732d03105c70616c6c65745f70726f706f73616c735f656e67696e651474797065734470726f706f73616c5f73746174757365733850726f706f73616c537461747573042c426c6f636b4e756d6265720110010c184163746976650000004050656e64696e67457865637574696f6e040010012c426c6f636b4e756d6265720001006050656e64696e67436f6e737469747574696f6e616c697479000200003103105c70616c6c65745f70726f706f73616c735f656e67696e651474797065734470726f706f73616c5f73746174757365734050726f706f73616c4465636973696f6e00011c2043616e63656c65640000004443616e63656c6564427952756e74696d65000100185665746f65640002002052656a65637465640003001c536c61736865640004001c4578706972656400050020417070726f766564040035030160417070726f76656450726f706f73616c4465636973696f6e000600003503105c70616c6c65745f70726f706f73616c735f656e67696e651474797065734470726f706f73616c5f737461747573657360417070726f76656450726f706f73616c4465636973696f6e0001084050656e64696e67457865637574696f6e0000006050656e64696e67436f6e737469747574696f6e616c697479000100003903105c70616c6c65745f70726f706f73616c735f656e67696e651474797065734470726f706f73616c5f73746174757365733c457865637574696f6e5374617475730001082045786563757465640000003c457865637574696f6e4661696c65640401146572726f7230011c5665633c75383e000100003d030c5c70616c6c65745f70726f706f73616c735f656e67696e6514747970657320566f74654b696e640001101c417070726f76650000001852656a65637400010014536c6173680002001c4162737461696e000300004103086c70616c6c65745f70726f706f73616c735f64697363757373696f6e205261774576656e740c2054687265616449640128204d656d6265724964012818506f737449640128011434546872656164437265617465640800280120546872656164496400002801204d656d626572496400000464456d697473206f6e20746872656164206372656174696f6e2e2c506f7374437265617465641400280118506f7374496400002801204d656d626572496400002801205468726561644964000030011c5665633c75383e0000980110626f6f6c0001045c456d697473206f6e20706f7374206372656174696f6e2e2c506f7374557064617465641000280118506f7374496400002801204d656d626572496400002801205468726561644964000030011c5665633c75383e00020454456d697473206f6e20706f7374207570646174652e445468726561644d6f64654368616e6765640c0028012054687265616449640000450301785468726561644d6f64653c42547265655365743c4d656d62657249643e3e00002801204d656d626572496400030470456d697473206f6e20746872656164206d6f6465206368616e67652e2c506f737444656c6574656410002801204d656d6265724964000028012054687265616449640000280118506f737449640000980110626f6f6c00040454456d697473206f6e20706f73742064656c657465640c5c4576656e747320666f722074686973206d6f64756c652e005c50726f706f73616c7320656e67696e65206576656e747345030c6c70616c6c65745f70726f706f73616c735f64697363757373696f6e147479706573285468726561644d6f6465043c54687265616457686974656c6973740169010108104f70656e00000018436c6f73656404006901013c54687265616457686974656c697374000100004903085870616c6c65745f70726f706f73616c735f636f646578205261774576656e74106447656e6572616c50726f706f73616c506172616d6574657273014d034450726f706f73616c44657461696c734f660151032850726f706f73616c49640110205468726561644964012801043c50726f706f73616c43726561746564100010012850726f706f73616c496400004d03016447656e6572616c50726f706f73616c506172616d657465727300005103014450726f706f73616c44657461696c734f660000280120546872656164496400001858412070726f706f73616c2077617320637265617465641c506172616d733afc2d204964206f662061206e65776c7920637265617465642070726f706f73616c2061667465722069742077617320736176656420696e2073746f726167652e01012d2047656e6572616c2070726f706f73616c20706172616d657465722e20506172616d65746572732073686172656420627920616c6c2070726f706f73616c7349012d2050726f706f73616c2044657461696c732e20506172616d65746572206f662070726f706f73616c207769746820612076617269616e7420666f722065616368206b696e64206f662070726f706f73616c9c2d204964206f662061206e65776c7920637265617465642070726f706f73616c20746872656164085c4576656e747320666f722074686973206d6f64756c652e004d030c5870616c6c65745f70726f706f73616c735f636f6465781474797065735447656e6572616c50726f706f73616c506172616d730c204d656d62657249640128244163636f756e74496401002c426c6f636b4e756d6265720110001401246d656d6265725f69642801204d656d62657249640001147469746c6530011c5665633c75383e00012c6465736372697074696f6e30011c5665633c75383e0001487374616b696e675f6163636f756e745f69649401444f7074696f6e3c4163636f756e7449643e00015465786163745f657865637574696f6e5f626c6f636b0102014c4f7074696f6e3c426c6f636b4e756d6265723e000051030c5870616c6c65745f70726f706f73616c735f636f6465781474797065733c50726f706f73616c44657461696c731c1c42616c616e636501182c426c6f636b4e756d6265720110244163636f756e744964010020576f726b657249640128244f70656e696e67496401282850726f706f73616c49640110785570646174654368616e6e656c5061796f757473506172616d6574657273017102015c185369676e616c040030011c5665633c75383e0000003852756e74696d6555706772616465040030011c5665633c75383e0001003846756e64696e67526571756573740400550301c45665633c46756e64696e6752657175657374506172616d65746572733c42616c616e63652c204163636f756e7449643e3e000200505365744d617856616c696461746f72436f756e74040010010c75333200030074437265617465576f726b696e6747726f75704c6561644f70656e696e6704005d0301b44372656174654f70656e696e67506172616d65746572733c426c6f636b4e756d6265722c2042616c616e63653e0004006c46696c6c576f726b696e6747726f75704c6561644f70656e696e6704006503015446696c6c4f70656e696e67506172616d657465727300050060557064617465576f726b696e6747726f75704275646765740c0018011c42616c616e6365000099010130576f726b696e6747726f757000009d01012c42616c616e63654b696e64000600744465637265617365576f726b696e6747726f75704c6561645374616b650c00280120576f726b65724964000018011c42616c616e6365000099010130576f726b696e6747726f757000070054536c617368576f726b696e6747726f75704c6561640c00280120576f726b65724964000018011c42616c616e6365000099010130576f726b696e6747726f757000080064536574576f726b696e6747726f75704c6561645265776172640c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e000099010130576f726b696e6747726f7570000900645465726d696e617465576f726b696e6747726f75704c6561640400690301a85465726d696e617465526f6c65506172616d65746572733c576f726b657249642c2042616c616e63653e000a0044416d656e64436f6e737469747574696f6e040030011c5665633c75383e000b007443616e63656c576f726b696e6747726f75704c6561644f70656e696e6708002801244f70656e696e674964000099010130576f726b696e6747726f7570000c00485365744d656d626572736869705072696365040018011c42616c616e6365000d0064536574436f756e63696c427564676574496e6372656d656e74040018011c42616c616e6365000e0048536574436f756e63696c6f72526577617264040018011c42616c616e6365000f006c536574496e697469616c496e7669746174696f6e42616c616e6365040018011c42616c616e636500100064536574496e697469616c496e7669746174696f6e436f756e74040010010c753332001100805365744d656d626572736869704c656164496e7669746174696f6e51756f7461040010010c75333200120038536574526566657272616c43757404000801087538001300305665746f50726f706f73616c040010012850726f706f73616c496400140050557064617465476c6f62616c4e66744c696d69740800890201384e66744c696d6974506572696f64000028010c753634001500505570646174654368616e6e656c5061796f7574730400710201785570646174654368616e6e656c5061796f757473506172616d65746572730016000055030000025903005903083470616c6c65745f636f6d6d6f6e6046756e64696e6752657175657374506172616d6574657273081c42616c616e63650118244163636f756e74496401000008011c6163636f756e740001244163636f756e744964000118616d6f756e7418011c42616c616e636500005d030c5870616c6c65745f70726f706f73616c735f636f6465781474797065735c4372656174654f70656e696e67506172616d6574657273082c426c6f636b4e756d62657201101c42616c616e636501180010012c6465736372697074696f6e30011c5665633c75383e0001307374616b655f706f6c696379610301845374616b65506f6c6963793c426c6f636b4e756d6265722c2042616c616e63653e0001407265776172645f7065725f626c6f636b4501013c4f7074696f6e3c42616c616e63653e00011467726f757099010130576f726b696e6747726f7570000061030c5070616c6c65745f776f726b696e675f67726f75701474797065732c5374616b65506f6c696379082c426c6f636b4e756d62657201101c42616c616e63650118000801307374616b655f616d6f756e7418011c42616c616e63650001606c656176696e675f756e7374616b696e675f706572696f6410012c426c6f636b4e756d626572000065030c5870616c6c65745f70726f706f73616c735f636f6465781474797065735446696c6c4f70656e696e67506172616d657465727300000c01286f70656e696e675f6964280160776f726b696e675f67726f75703a3a4f70656e696e6749640001386170706c69636174696f6e5f6964280170776f726b696e675f67726f75703a3a4170706c69636174696f6e4964000134776f726b696e675f67726f757099010130576f726b696e6747726f7570000069030c5870616c6c65745f70726f706f73616c735f636f6465781474797065735c5465726d696e617465526f6c65506172616d65746572730820576f726b6572496401281c42616c616e63650118000c0124776f726b65725f6964280120576f726b6572496400013c736c617368696e675f616d6f756e744501013c4f7074696f6e3c42616c616e63653e00011467726f757099010130576f726b696e6747726f757000006d03085070616c6c65745f776f726b696e675f67726f7570205261774576656e7430244f70656e696e6749640128344170706c69636174696f6e49640128684170706c69636174696f6e4964546f576f726b657249644d617001710320576f726b657249640128244163636f756e74496401001c42616c616e636501182c4f70656e696e6754797065017d032c5374616b65506f6c696379016103604170706c794f6e4f70656e696e67506172616d6574657273018103204d656d626572496401281048617368012c04490189030164304f70656e696e67416464656414002801244f70656e696e674964000030011c5665633c75383e00007d03012c4f70656e696e675479706500006103012c5374616b65506f6c69637900004501013c4f7074696f6e3c42616c616e63653e00001c80456d697473206f6e20616464696e67206e6577206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e67206964342d204465736372697074696f6e782d204f70656e696e672054797065284c656164206f7220576f726b657229782d205374616b6520506f6c69637920666f7220746865206f70656e696e67482d205265776172642070657220626c6f636b404170706c6965644f6e4f70656e696e670800810301604170706c794f6e4f70656e696e67506172616d657465727300002801344170706c69636174696f6e4964000110dc456d697473206f6e20616464696e6720746865206170706c69636174696f6e20666f722074686520776f726b6572206f70656e696e672e1c506172616d733a542d204f70656e696e6720706172616d657465726573402d204170706c69636174696f6e206964344f70656e696e6746696c6c65640c002801244f70656e696e6749640000710301684170706c69636174696f6e4964546f576f726b657249644d617000006901015c42547265655365743c4170706c69636174696f6e49643e00021484456d697473206f6e2066696c6c696e6720746865206a6f62206f70656e696e672e1c506172616d733a4c2d20576f726b6572206f70656e696e67206964cc2d20576f726b6572206170706c69636174696f6e20696420746f2074686520776f726b65722069642064696374696f6e617279ac2d204170706c69636174696f6e6420696473207573656420746f2066696c6c20746865206f70656e696e67244c65616465725365740400280120576f726b6572496400030c88456d697473206f6e2073657474696e67207468652067726f7570206c65616465722e1c506172616d733a482d2047726f757020776f726b65722069642e60576f726b6572526f6c654163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964000410c4456d697473206f6e207570646174696e672074686520726f6c65206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e802d20526f6c65206163636f756e74206964206f662074686520776f726b65722e2c4c6561646572556e7365740005047c456d697473206f6e20756e2d73657474696e6720746865206c65616465722e30576f726b65724578697465640400280120576f726b6572496400061070456d697473206f6e2065786974696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e302d20526174696f6e616c652e50576f726b6572537461727465644c656176696e670800280120576f726b6572496400003101013c4f7074696f6e3c5665633c75383e3e000710b4456d697473207768656e20776f726b65722073746172746564206c656176696e6720746865697220726f6c652e1c506172616d733a302d20576f726b65722069642e302d20526174696f6e616c652e405465726d696e61746564576f726b65720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00081480456d697473206f6e207465726d696e6174696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e405465726d696e617465644c65616465720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00091480456d697473206f6e207465726d696e6174696e6720746865206c65616465722e1c506172616d733a4c2d206c656164657220776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e305374616b65536c61736865641000280120576f726b65724964000018011c42616c616e6365000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e000a18c0456d697473206f6e20736c617368696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e642d2061637475616c20736c61736865642062616c616e63652e702d2052657175657374656420736c61736865642062616c616e63652e302d20526174696f6e616c652e385374616b654465637265617365640800280120576f726b65724964000018011c42616c616e6365000b10c8456d697473206f6e2064656372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74385374616b65496e637265617365640800280120576f726b65724964000018011c42616c616e6365000c10c8456d697473206f6e20696e6372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74504170706c69636174696f6e57697468647261776e04002801344170706c69636174696f6e4964000d0c2501456d697473206f6e207769746864726177696e6720746865206170706c69636174696f6e20666f722074686520726567756c617220776f726b65722f6c656164206f70656e696e672e1c506172616d733a502d204a6f62206170706c69636174696f6e2069643c4f70656e696e6743616e63656c656404002801244f70656e696e674964000e0c8c456d697473206f6e2063616e63656c696e6720746865206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e6720696424427564676574536574040018011c42616c616e6365000f0cc8456d697473206f6e2073657474696e67207468652062756467657420666f722074686520776f726b696e672067726f75702e1c506172616d733a302d206e65772062756467657468576f726b65725265776172644163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964001010cc456d697473206f6e207570646174696e672074686520726577617264206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e882d20526577617264206163636f756e74206964206f662074686520776f726b65722e64576f726b6572526577617264416d6f756e74557064617465640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e001110c8456d697473206f6e207570646174696e67207468652072657761726420616d6f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e482d205265776172642070657220626c6f636b44537461747573546578744368616e67656408002c01104861736800003101013c4f7074696f6e3c5665633c75383e3e001210dc456d697473206f6e207570646174696e6720746865207374617475732074657874206f662074686520776f726b696e672067726f75702e1c506172616d733a482d2073746174757320746578742068617368342d207374617475732074657874384275646765745370656e64696e670c000001244163636f756e744964000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e001314c8456d697473206f6e206275646765742066726f6d2074686520776f726b696e672067726f7570206265696e67207370656e741c506172616d733a582d205265636569766572204163636f756e742049642e402d2042616c616e6365207370656e742e302d20526174696f6e616c652e28526577617264506169641000280120576f726b6572496400000001244163636f756e744964000018011c42616c616e636500008d0301445265776172645061796d656e74547970650014186c456d697473206f6e20706179696e6720746865207265776172642e1c506172616d733a4c2d204964206f662074686520776f726b65722e582d205265636569766572204163636f756e742049642e202d20526577617264b42d205061796d656e74207479706520286d697373656420726577617264206f7220726567756c6172206f6e65296c4e65774d69737365645265776172644c6576656c526561636865640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00151090456d697473206f6e207265616368696e67206e6577206d6973736564207265776172642e1c506172616d733a302d20576f726b65722049442ee82d204d69737365642072657761726420286f7074696f6e616c292e204e6f6e65206d65616e7320276e6f206d697373656420726577617264272e60576f726b696e6747726f757042756467657446756e6465640c002801204d656d6265724964000018011c42616c616e6365000030011c5665633c75383e0016147846756e642074686520776f726b696e672067726f7570206275646765742e1c506172616d733a2c2d204d656d6265722049444c2d20416d6f756e74206f662062616c616e63652c2d20526174696f6e616c65304c65616452656d61726b6564040030011c5665633c75383e00170c94456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a242d206d65737361676538576f726b657252656d61726b65640800280120576f726b65724964000030011c5665633c75383e00181094456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a202d20776f726b6572242d206d6573736167650c5c4576656e747320666f722074686973206d6f64756c652e00385f47726f75705f206576656e74737103042042547265654d617008044b012804560128000400750300000075030000027903007903000004082828007d030c5070616c6c65745f776f726b696e675f67726f75701474797065732c4f70656e696e6754797065000108184c65616465720000001c526567756c61720001000081030c5070616c6c65745f776f726b696e675f67726f7570147479706573504170706c794f6e4f70656e696e67506172616d7310204d656d62657249640128244f70656e696e6749640128244163636f756e74496401001c42616c616e63650118001801246d656d6265725f69642801204d656d62657249640001286f70656e696e675f69642801244f70656e696e67496400013c726f6c655f6163636f756e745f69640001244163636f756e7449640001447265776172645f6163636f756e745f69640001244163636f756e74496400012c6465736372697074696f6e30011c5665633c75383e0001407374616b655f706172616d65746572738503018c5374616b65506172616d65746572733c4163636f756e7449642c2042616c616e63653e000085030c5070616c6c65745f776f726b696e675f67726f75701474797065733c5374616b65506172616d657465727308244163636f756e74496401001c42616c616e63650118000801147374616b6518011c42616c616e63650001487374616b696e675f6163636f756e745f69640001244163636f756e74496400008903085070616c6c65745f776f726b696e675f67726f757024496e7374616e636531000000008d030c5070616c6c65745f776f726b696e675f67726f7570147479706573445265776172645061796d656e7454797065000108304d697373656452657761726400000034526567756c6172526577617264000100009103085070616c6c65745f776f726b696e675f67726f7570205261774576656e7430244f70656e696e6749640128344170706c69636174696f6e49640128684170706c69636174696f6e4964546f576f726b657249644d617001710320576f726b657249640128244163636f756e74496401001c42616c616e636501182c4f70656e696e6754797065017d032c5374616b65506f6c696379016103604170706c794f6e4f70656e696e67506172616d6574657273018103204d656d626572496401281048617368012c04490195030164304f70656e696e67416464656414002801244f70656e696e674964000030011c5665633c75383e00007d03012c4f70656e696e675479706500006103012c5374616b65506f6c69637900004501013c4f7074696f6e3c42616c616e63653e00001c80456d697473206f6e20616464696e67206e6577206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e67206964342d204465736372697074696f6e782d204f70656e696e672054797065284c656164206f7220576f726b657229782d205374616b6520506f6c69637920666f7220746865206f70656e696e67482d205265776172642070657220626c6f636b404170706c6965644f6e4f70656e696e670800810301604170706c794f6e4f70656e696e67506172616d657465727300002801344170706c69636174696f6e4964000110dc456d697473206f6e20616464696e6720746865206170706c69636174696f6e20666f722074686520776f726b6572206f70656e696e672e1c506172616d733a542d204f70656e696e6720706172616d657465726573402d204170706c69636174696f6e206964344f70656e696e6746696c6c65640c002801244f70656e696e6749640000710301684170706c69636174696f6e4964546f576f726b657249644d617000006901015c42547265655365743c4170706c69636174696f6e49643e00021484456d697473206f6e2066696c6c696e6720746865206a6f62206f70656e696e672e1c506172616d733a4c2d20576f726b6572206f70656e696e67206964cc2d20576f726b6572206170706c69636174696f6e20696420746f2074686520776f726b65722069642064696374696f6e617279ac2d204170706c69636174696f6e6420696473207573656420746f2066696c6c20746865206f70656e696e67244c65616465725365740400280120576f726b6572496400030c88456d697473206f6e2073657474696e67207468652067726f7570206c65616465722e1c506172616d733a482d2047726f757020776f726b65722069642e60576f726b6572526f6c654163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964000410c4456d697473206f6e207570646174696e672074686520726f6c65206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e802d20526f6c65206163636f756e74206964206f662074686520776f726b65722e2c4c6561646572556e7365740005047c456d697473206f6e20756e2d73657474696e6720746865206c65616465722e30576f726b65724578697465640400280120576f726b6572496400061070456d697473206f6e2065786974696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e302d20526174696f6e616c652e50576f726b6572537461727465644c656176696e670800280120576f726b6572496400003101013c4f7074696f6e3c5665633c75383e3e000710b4456d697473207768656e20776f726b65722073746172746564206c656176696e6720746865697220726f6c652e1c506172616d733a302d20576f726b65722069642e302d20526174696f6e616c652e405465726d696e61746564576f726b65720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00081480456d697473206f6e207465726d696e6174696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e405465726d696e617465644c65616465720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00091480456d697473206f6e207465726d696e6174696e6720746865206c65616465722e1c506172616d733a4c2d206c656164657220776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e305374616b65536c61736865641000280120576f726b65724964000018011c42616c616e6365000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e000a18c0456d697473206f6e20736c617368696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e642d2061637475616c20736c61736865642062616c616e63652e702d2052657175657374656420736c61736865642062616c616e63652e302d20526174696f6e616c652e385374616b654465637265617365640800280120576f726b65724964000018011c42616c616e6365000b10c8456d697473206f6e2064656372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74385374616b65496e637265617365640800280120576f726b65724964000018011c42616c616e6365000c10c8456d697473206f6e20696e6372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74504170706c69636174696f6e57697468647261776e04002801344170706c69636174696f6e4964000d0c2501456d697473206f6e207769746864726177696e6720746865206170706c69636174696f6e20666f722074686520726567756c617220776f726b65722f6c656164206f70656e696e672e1c506172616d733a502d204a6f62206170706c69636174696f6e2069643c4f70656e696e6743616e63656c656404002801244f70656e696e674964000e0c8c456d697473206f6e2063616e63656c696e6720746865206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e6720696424427564676574536574040018011c42616c616e6365000f0cc8456d697473206f6e2073657474696e67207468652062756467657420666f722074686520776f726b696e672067726f75702e1c506172616d733a302d206e65772062756467657468576f726b65725265776172644163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964001010cc456d697473206f6e207570646174696e672074686520726577617264206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e882d20526577617264206163636f756e74206964206f662074686520776f726b65722e64576f726b6572526577617264416d6f756e74557064617465640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e001110c8456d697473206f6e207570646174696e67207468652072657761726420616d6f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e482d205265776172642070657220626c6f636b44537461747573546578744368616e67656408002c01104861736800003101013c4f7074696f6e3c5665633c75383e3e001210dc456d697473206f6e207570646174696e6720746865207374617475732074657874206f662074686520776f726b696e672067726f75702e1c506172616d733a482d2073746174757320746578742068617368342d207374617475732074657874384275646765745370656e64696e670c000001244163636f756e744964000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e001314c8456d697473206f6e206275646765742066726f6d2074686520776f726b696e672067726f7570206265696e67207370656e741c506172616d733a582d205265636569766572204163636f756e742049642e402d2042616c616e6365207370656e742e302d20526174696f6e616c652e28526577617264506169641000280120576f726b6572496400000001244163636f756e744964000018011c42616c616e636500008d0301445265776172645061796d656e74547970650014186c456d697473206f6e20706179696e6720746865207265776172642e1c506172616d733a4c2d204964206f662074686520776f726b65722e582d205265636569766572204163636f756e742049642e202d20526577617264b42d205061796d656e74207479706520286d697373656420726577617264206f7220726567756c6172206f6e65296c4e65774d69737365645265776172644c6576656c526561636865640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00151090456d697473206f6e207265616368696e67206e6577206d6973736564207265776172642e1c506172616d733a302d20576f726b65722049442ee82d204d69737365642072657761726420286f7074696f6e616c292e204e6f6e65206d65616e7320276e6f206d697373656420726577617264272e60576f726b696e6747726f757042756467657446756e6465640c002801204d656d6265724964000018011c42616c616e6365000030011c5665633c75383e0016147846756e642074686520776f726b696e672067726f7570206275646765742e1c506172616d733a2c2d204d656d6265722049444c2d20416d6f756e74206f662062616c616e63652c2d20526174696f6e616c65304c65616452656d61726b6564040030011c5665633c75383e00170c94456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a242d206d65737361676538576f726b657252656d61726b65640800280120576f726b65724964000030011c5665633c75383e00181094456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a202d20776f726b6572242d206d6573736167650c5c4576656e747320666f722074686973206d6f64756c652e00385f47726f75705f206576656e74739503085070616c6c65745f776f726b696e675f67726f757024496e7374616e636532000000009903085070616c6c65745f776f726b696e675f67726f7570205261774576656e7430244f70656e696e6749640128344170706c69636174696f6e49640128684170706c69636174696f6e4964546f576f726b657249644d617001710320576f726b657249640128244163636f756e74496401001c42616c616e636501182c4f70656e696e6754797065017d032c5374616b65506f6c696379016103604170706c794f6e4f70656e696e67506172616d6574657273018103204d656d626572496401281048617368012c0449019d030164304f70656e696e67416464656414002801244f70656e696e674964000030011c5665633c75383e00007d03012c4f70656e696e675479706500006103012c5374616b65506f6c69637900004501013c4f7074696f6e3c42616c616e63653e00001c80456d697473206f6e20616464696e67206e6577206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e67206964342d204465736372697074696f6e782d204f70656e696e672054797065284c656164206f7220576f726b657229782d205374616b6520506f6c69637920666f7220746865206f70656e696e67482d205265776172642070657220626c6f636b404170706c6965644f6e4f70656e696e670800810301604170706c794f6e4f70656e696e67506172616d657465727300002801344170706c69636174696f6e4964000110dc456d697473206f6e20616464696e6720746865206170706c69636174696f6e20666f722074686520776f726b6572206f70656e696e672e1c506172616d733a542d204f70656e696e6720706172616d657465726573402d204170706c69636174696f6e206964344f70656e696e6746696c6c65640c002801244f70656e696e6749640000710301684170706c69636174696f6e4964546f576f726b657249644d617000006901015c42547265655365743c4170706c69636174696f6e49643e00021484456d697473206f6e2066696c6c696e6720746865206a6f62206f70656e696e672e1c506172616d733a4c2d20576f726b6572206f70656e696e67206964cc2d20576f726b6572206170706c69636174696f6e20696420746f2074686520776f726b65722069642064696374696f6e617279ac2d204170706c69636174696f6e6420696473207573656420746f2066696c6c20746865206f70656e696e67244c65616465725365740400280120576f726b6572496400030c88456d697473206f6e2073657474696e67207468652067726f7570206c65616465722e1c506172616d733a482d2047726f757020776f726b65722069642e60576f726b6572526f6c654163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964000410c4456d697473206f6e207570646174696e672074686520726f6c65206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e802d20526f6c65206163636f756e74206964206f662074686520776f726b65722e2c4c6561646572556e7365740005047c456d697473206f6e20756e2d73657474696e6720746865206c65616465722e30576f726b65724578697465640400280120576f726b6572496400061070456d697473206f6e2065786974696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e302d20526174696f6e616c652e50576f726b6572537461727465644c656176696e670800280120576f726b6572496400003101013c4f7074696f6e3c5665633c75383e3e000710b4456d697473207768656e20776f726b65722073746172746564206c656176696e6720746865697220726f6c652e1c506172616d733a302d20576f726b65722069642e302d20526174696f6e616c652e405465726d696e61746564576f726b65720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00081480456d697473206f6e207465726d696e6174696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e405465726d696e617465644c65616465720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00091480456d697473206f6e207465726d696e6174696e6720746865206c65616465722e1c506172616d733a4c2d206c656164657220776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e305374616b65536c61736865641000280120576f726b65724964000018011c42616c616e6365000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e000a18c0456d697473206f6e20736c617368696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e642d2061637475616c20736c61736865642062616c616e63652e702d2052657175657374656420736c61736865642062616c616e63652e302d20526174696f6e616c652e385374616b654465637265617365640800280120576f726b65724964000018011c42616c616e6365000b10c8456d697473206f6e2064656372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74385374616b65496e637265617365640800280120576f726b65724964000018011c42616c616e6365000c10c8456d697473206f6e20696e6372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74504170706c69636174696f6e57697468647261776e04002801344170706c69636174696f6e4964000d0c2501456d697473206f6e207769746864726177696e6720746865206170706c69636174696f6e20666f722074686520726567756c617220776f726b65722f6c656164206f70656e696e672e1c506172616d733a502d204a6f62206170706c69636174696f6e2069643c4f70656e696e6743616e63656c656404002801244f70656e696e674964000e0c8c456d697473206f6e2063616e63656c696e6720746865206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e6720696424427564676574536574040018011c42616c616e6365000f0cc8456d697473206f6e2073657474696e67207468652062756467657420666f722074686520776f726b696e672067726f75702e1c506172616d733a302d206e65772062756467657468576f726b65725265776172644163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964001010cc456d697473206f6e207570646174696e672074686520726577617264206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e882d20526577617264206163636f756e74206964206f662074686520776f726b65722e64576f726b6572526577617264416d6f756e74557064617465640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e001110c8456d697473206f6e207570646174696e67207468652072657761726420616d6f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e482d205265776172642070657220626c6f636b44537461747573546578744368616e67656408002c01104861736800003101013c4f7074696f6e3c5665633c75383e3e001210dc456d697473206f6e207570646174696e6720746865207374617475732074657874206f662074686520776f726b696e672067726f75702e1c506172616d733a482d2073746174757320746578742068617368342d207374617475732074657874384275646765745370656e64696e670c000001244163636f756e744964000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e001314c8456d697473206f6e206275646765742066726f6d2074686520776f726b696e672067726f7570206265696e67207370656e741c506172616d733a582d205265636569766572204163636f756e742049642e402d2042616c616e6365207370656e742e302d20526174696f6e616c652e28526577617264506169641000280120576f726b6572496400000001244163636f756e744964000018011c42616c616e636500008d0301445265776172645061796d656e74547970650014186c456d697473206f6e20706179696e6720746865207265776172642e1c506172616d733a4c2d204964206f662074686520776f726b65722e582d205265636569766572204163636f756e742049642e202d20526577617264b42d205061796d656e74207479706520286d697373656420726577617264206f7220726567756c6172206f6e65296c4e65774d69737365645265776172644c6576656c526561636865640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00151090456d697473206f6e207265616368696e67206e6577206d6973736564207265776172642e1c506172616d733a302d20576f726b65722049442ee82d204d69737365642072657761726420286f7074696f6e616c292e204e6f6e65206d65616e7320276e6f206d697373656420726577617264272e60576f726b696e6747726f757042756467657446756e6465640c002801204d656d6265724964000018011c42616c616e6365000030011c5665633c75383e0016147846756e642074686520776f726b696e672067726f7570206275646765742e1c506172616d733a2c2d204d656d6265722049444c2d20416d6f756e74206f662062616c616e63652c2d20526174696f6e616c65304c65616452656d61726b6564040030011c5665633c75383e00170c94456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a242d206d65737361676538576f726b657252656d61726b65640800280120576f726b65724964000030011c5665633c75383e00181094456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a202d20776f726b6572242d206d6573736167650c5c4576656e747320666f722074686973206d6f64756c652e00385f47726f75705f206576656e74739d03085070616c6c65745f776f726b696e675f67726f757024496e7374616e63653300000000a103085070616c6c65745f776f726b696e675f67726f7570205261774576656e7430244f70656e696e6749640128344170706c69636174696f6e49640128684170706c69636174696f6e4964546f576f726b657249644d617001710320576f726b657249640128244163636f756e74496401001c42616c616e636501182c4f70656e696e6754797065017d032c5374616b65506f6c696379016103604170706c794f6e4f70656e696e67506172616d6574657273018103204d656d626572496401281048617368012c044901a5030164304f70656e696e67416464656414002801244f70656e696e674964000030011c5665633c75383e00007d03012c4f70656e696e675479706500006103012c5374616b65506f6c69637900004501013c4f7074696f6e3c42616c616e63653e00001c80456d697473206f6e20616464696e67206e6577206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e67206964342d204465736372697074696f6e782d204f70656e696e672054797065284c656164206f7220576f726b657229782d205374616b6520506f6c69637920666f7220746865206f70656e696e67482d205265776172642070657220626c6f636b404170706c6965644f6e4f70656e696e670800810301604170706c794f6e4f70656e696e67506172616d657465727300002801344170706c69636174696f6e4964000110dc456d697473206f6e20616464696e6720746865206170706c69636174696f6e20666f722074686520776f726b6572206f70656e696e672e1c506172616d733a542d204f70656e696e6720706172616d657465726573402d204170706c69636174696f6e206964344f70656e696e6746696c6c65640c002801244f70656e696e6749640000710301684170706c69636174696f6e4964546f576f726b657249644d617000006901015c42547265655365743c4170706c69636174696f6e49643e00021484456d697473206f6e2066696c6c696e6720746865206a6f62206f70656e696e672e1c506172616d733a4c2d20576f726b6572206f70656e696e67206964cc2d20576f726b6572206170706c69636174696f6e20696420746f2074686520776f726b65722069642064696374696f6e617279ac2d204170706c69636174696f6e6420696473207573656420746f2066696c6c20746865206f70656e696e67244c65616465725365740400280120576f726b6572496400030c88456d697473206f6e2073657474696e67207468652067726f7570206c65616465722e1c506172616d733a482d2047726f757020776f726b65722069642e60576f726b6572526f6c654163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964000410c4456d697473206f6e207570646174696e672074686520726f6c65206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e802d20526f6c65206163636f756e74206964206f662074686520776f726b65722e2c4c6561646572556e7365740005047c456d697473206f6e20756e2d73657474696e6720746865206c65616465722e30576f726b65724578697465640400280120576f726b6572496400061070456d697473206f6e2065786974696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e302d20526174696f6e616c652e50576f726b6572537461727465644c656176696e670800280120576f726b6572496400003101013c4f7074696f6e3c5665633c75383e3e000710b4456d697473207768656e20776f726b65722073746172746564206c656176696e6720746865697220726f6c652e1c506172616d733a302d20576f726b65722069642e302d20526174696f6e616c652e405465726d696e61746564576f726b65720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00081480456d697473206f6e207465726d696e6174696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e405465726d696e617465644c65616465720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00091480456d697473206f6e207465726d696e6174696e6720746865206c65616465722e1c506172616d733a4c2d206c656164657220776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e305374616b65536c61736865641000280120576f726b65724964000018011c42616c616e6365000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e000a18c0456d697473206f6e20736c617368696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e642d2061637475616c20736c61736865642062616c616e63652e702d2052657175657374656420736c61736865642062616c616e63652e302d20526174696f6e616c652e385374616b654465637265617365640800280120576f726b65724964000018011c42616c616e6365000b10c8456d697473206f6e2064656372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74385374616b65496e637265617365640800280120576f726b65724964000018011c42616c616e6365000c10c8456d697473206f6e20696e6372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74504170706c69636174696f6e57697468647261776e04002801344170706c69636174696f6e4964000d0c2501456d697473206f6e207769746864726177696e6720746865206170706c69636174696f6e20666f722074686520726567756c617220776f726b65722f6c656164206f70656e696e672e1c506172616d733a502d204a6f62206170706c69636174696f6e2069643c4f70656e696e6743616e63656c656404002801244f70656e696e674964000e0c8c456d697473206f6e2063616e63656c696e6720746865206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e6720696424427564676574536574040018011c42616c616e6365000f0cc8456d697473206f6e2073657474696e67207468652062756467657420666f722074686520776f726b696e672067726f75702e1c506172616d733a302d206e65772062756467657468576f726b65725265776172644163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964001010cc456d697473206f6e207570646174696e672074686520726577617264206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e882d20526577617264206163636f756e74206964206f662074686520776f726b65722e64576f726b6572526577617264416d6f756e74557064617465640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e001110c8456d697473206f6e207570646174696e67207468652072657761726420616d6f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e482d205265776172642070657220626c6f636b44537461747573546578744368616e67656408002c01104861736800003101013c4f7074696f6e3c5665633c75383e3e001210dc456d697473206f6e207570646174696e6720746865207374617475732074657874206f662074686520776f726b696e672067726f75702e1c506172616d733a482d2073746174757320746578742068617368342d207374617475732074657874384275646765745370656e64696e670c000001244163636f756e744964000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e001314c8456d697473206f6e206275646765742066726f6d2074686520776f726b696e672067726f7570206265696e67207370656e741c506172616d733a582d205265636569766572204163636f756e742049642e402d2042616c616e6365207370656e742e302d20526174696f6e616c652e28526577617264506169641000280120576f726b6572496400000001244163636f756e744964000018011c42616c616e636500008d0301445265776172645061796d656e74547970650014186c456d697473206f6e20706179696e6720746865207265776172642e1c506172616d733a4c2d204964206f662074686520776f726b65722e582d205265636569766572204163636f756e742049642e202d20526577617264b42d205061796d656e74207479706520286d697373656420726577617264206f7220726567756c6172206f6e65296c4e65774d69737365645265776172644c6576656c526561636865640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00151090456d697473206f6e207265616368696e67206e6577206d6973736564207265776172642e1c506172616d733a302d20576f726b65722049442ee82d204d69737365642072657761726420286f7074696f6e616c292e204e6f6e65206d65616e7320276e6f206d697373656420726577617264272e60576f726b696e6747726f757042756467657446756e6465640c002801204d656d6265724964000018011c42616c616e6365000030011c5665633c75383e0016147846756e642074686520776f726b696e672067726f7570206275646765742e1c506172616d733a2c2d204d656d6265722049444c2d20416d6f756e74206f662062616c616e63652c2d20526174696f6e616c65304c65616452656d61726b6564040030011c5665633c75383e00170c94456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a242d206d65737361676538576f726b657252656d61726b65640800280120576f726b65724964000030011c5665633c75383e00181094456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a202d20776f726b6572242d206d6573736167650c5c4576656e747320666f722074686973206d6f64756c652e00385f47726f75705f206576656e7473a503085070616c6c65745f776f726b696e675f67726f757024496e7374616e63653400000000a903085070616c6c65745f776f726b696e675f67726f7570205261774576656e7430244f70656e696e6749640128344170706c69636174696f6e49640128684170706c69636174696f6e4964546f576f726b657249644d617001710320576f726b657249640128244163636f756e74496401001c42616c616e636501182c4f70656e696e6754797065017d032c5374616b65506f6c696379016103604170706c794f6e4f70656e696e67506172616d6574657273018103204d656d626572496401281048617368012c044901ad030164304f70656e696e67416464656414002801244f70656e696e674964000030011c5665633c75383e00007d03012c4f70656e696e675479706500006103012c5374616b65506f6c69637900004501013c4f7074696f6e3c42616c616e63653e00001c80456d697473206f6e20616464696e67206e6577206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e67206964342d204465736372697074696f6e782d204f70656e696e672054797065284c656164206f7220576f726b657229782d205374616b6520506f6c69637920666f7220746865206f70656e696e67482d205265776172642070657220626c6f636b404170706c6965644f6e4f70656e696e670800810301604170706c794f6e4f70656e696e67506172616d657465727300002801344170706c69636174696f6e4964000110dc456d697473206f6e20616464696e6720746865206170706c69636174696f6e20666f722074686520776f726b6572206f70656e696e672e1c506172616d733a542d204f70656e696e6720706172616d657465726573402d204170706c69636174696f6e206964344f70656e696e6746696c6c65640c002801244f70656e696e6749640000710301684170706c69636174696f6e4964546f576f726b657249644d617000006901015c42547265655365743c4170706c69636174696f6e49643e00021484456d697473206f6e2066696c6c696e6720746865206a6f62206f70656e696e672e1c506172616d733a4c2d20576f726b6572206f70656e696e67206964cc2d20576f726b6572206170706c69636174696f6e20696420746f2074686520776f726b65722069642064696374696f6e617279ac2d204170706c69636174696f6e6420696473207573656420746f2066696c6c20746865206f70656e696e67244c65616465725365740400280120576f726b6572496400030c88456d697473206f6e2073657474696e67207468652067726f7570206c65616465722e1c506172616d733a482d2047726f757020776f726b65722069642e60576f726b6572526f6c654163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964000410c4456d697473206f6e207570646174696e672074686520726f6c65206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e802d20526f6c65206163636f756e74206964206f662074686520776f726b65722e2c4c6561646572556e7365740005047c456d697473206f6e20756e2d73657474696e6720746865206c65616465722e30576f726b65724578697465640400280120576f726b6572496400061070456d697473206f6e2065786974696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e302d20526174696f6e616c652e50576f726b6572537461727465644c656176696e670800280120576f726b6572496400003101013c4f7074696f6e3c5665633c75383e3e000710b4456d697473207768656e20776f726b65722073746172746564206c656176696e6720746865697220726f6c652e1c506172616d733a302d20576f726b65722069642e302d20526174696f6e616c652e405465726d696e61746564576f726b65720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00081480456d697473206f6e207465726d696e6174696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e405465726d696e617465644c65616465720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00091480456d697473206f6e207465726d696e6174696e6720746865206c65616465722e1c506172616d733a4c2d206c656164657220776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e305374616b65536c61736865641000280120576f726b65724964000018011c42616c616e6365000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e000a18c0456d697473206f6e20736c617368696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e642d2061637475616c20736c61736865642062616c616e63652e702d2052657175657374656420736c61736865642062616c616e63652e302d20526174696f6e616c652e385374616b654465637265617365640800280120576f726b65724964000018011c42616c616e6365000b10c8456d697473206f6e2064656372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74385374616b65496e637265617365640800280120576f726b65724964000018011c42616c616e6365000c10c8456d697473206f6e20696e6372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74504170706c69636174696f6e57697468647261776e04002801344170706c69636174696f6e4964000d0c2501456d697473206f6e207769746864726177696e6720746865206170706c69636174696f6e20666f722074686520726567756c617220776f726b65722f6c656164206f70656e696e672e1c506172616d733a502d204a6f62206170706c69636174696f6e2069643c4f70656e696e6743616e63656c656404002801244f70656e696e674964000e0c8c456d697473206f6e2063616e63656c696e6720746865206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e6720696424427564676574536574040018011c42616c616e6365000f0cc8456d697473206f6e2073657474696e67207468652062756467657420666f722074686520776f726b696e672067726f75702e1c506172616d733a302d206e65772062756467657468576f726b65725265776172644163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964001010cc456d697473206f6e207570646174696e672074686520726577617264206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e882d20526577617264206163636f756e74206964206f662074686520776f726b65722e64576f726b6572526577617264416d6f756e74557064617465640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e001110c8456d697473206f6e207570646174696e67207468652072657761726420616d6f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e482d205265776172642070657220626c6f636b44537461747573546578744368616e67656408002c01104861736800003101013c4f7074696f6e3c5665633c75383e3e001210dc456d697473206f6e207570646174696e6720746865207374617475732074657874206f662074686520776f726b696e672067726f75702e1c506172616d733a482d2073746174757320746578742068617368342d207374617475732074657874384275646765745370656e64696e670c000001244163636f756e744964000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e001314c8456d697473206f6e206275646765742066726f6d2074686520776f726b696e672067726f7570206265696e67207370656e741c506172616d733a582d205265636569766572204163636f756e742049642e402d2042616c616e6365207370656e742e302d20526174696f6e616c652e28526577617264506169641000280120576f726b6572496400000001244163636f756e744964000018011c42616c616e636500008d0301445265776172645061796d656e74547970650014186c456d697473206f6e20706179696e6720746865207265776172642e1c506172616d733a4c2d204964206f662074686520776f726b65722e582d205265636569766572204163636f756e742049642e202d20526577617264b42d205061796d656e74207479706520286d697373656420726577617264206f7220726567756c6172206f6e65296c4e65774d69737365645265776172644c6576656c526561636865640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00151090456d697473206f6e207265616368696e67206e6577206d6973736564207265776172642e1c506172616d733a302d20576f726b65722049442ee82d204d69737365642072657761726420286f7074696f6e616c292e204e6f6e65206d65616e7320276e6f206d697373656420726577617264272e60576f726b696e6747726f757042756467657446756e6465640c002801204d656d6265724964000018011c42616c616e6365000030011c5665633c75383e0016147846756e642074686520776f726b696e672067726f7570206275646765742e1c506172616d733a2c2d204d656d6265722049444c2d20416d6f756e74206f662062616c616e63652c2d20526174696f6e616c65304c65616452656d61726b6564040030011c5665633c75383e00170c94456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a242d206d65737361676538576f726b657252656d61726b65640800280120576f726b65724964000030011c5665633c75383e00181094456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a202d20776f726b6572242d206d6573736167650c5c4576656e747320666f722074686973206d6f64756c652e00385f47726f75705f206576656e7473ad03085070616c6c65745f776f726b696e675f67726f757024496e7374616e63653500000000b103085070616c6c65745f776f726b696e675f67726f7570205261774576656e7430244f70656e696e6749640128344170706c69636174696f6e49640128684170706c69636174696f6e4964546f576f726b657249644d617001710320576f726b657249640128244163636f756e74496401001c42616c616e636501182c4f70656e696e6754797065017d032c5374616b65506f6c696379016103604170706c794f6e4f70656e696e67506172616d6574657273018103204d656d626572496401281048617368012c044901b5030164304f70656e696e67416464656414002801244f70656e696e674964000030011c5665633c75383e00007d03012c4f70656e696e675479706500006103012c5374616b65506f6c69637900004501013c4f7074696f6e3c42616c616e63653e00001c80456d697473206f6e20616464696e67206e6577206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e67206964342d204465736372697074696f6e782d204f70656e696e672054797065284c656164206f7220576f726b657229782d205374616b6520506f6c69637920666f7220746865206f70656e696e67482d205265776172642070657220626c6f636b404170706c6965644f6e4f70656e696e670800810301604170706c794f6e4f70656e696e67506172616d657465727300002801344170706c69636174696f6e4964000110dc456d697473206f6e20616464696e6720746865206170706c69636174696f6e20666f722074686520776f726b6572206f70656e696e672e1c506172616d733a542d204f70656e696e6720706172616d657465726573402d204170706c69636174696f6e206964344f70656e696e6746696c6c65640c002801244f70656e696e6749640000710301684170706c69636174696f6e4964546f576f726b657249644d617000006901015c42547265655365743c4170706c69636174696f6e49643e00021484456d697473206f6e2066696c6c696e6720746865206a6f62206f70656e696e672e1c506172616d733a4c2d20576f726b6572206f70656e696e67206964cc2d20576f726b6572206170706c69636174696f6e20696420746f2074686520776f726b65722069642064696374696f6e617279ac2d204170706c69636174696f6e6420696473207573656420746f2066696c6c20746865206f70656e696e67244c65616465725365740400280120576f726b6572496400030c88456d697473206f6e2073657474696e67207468652067726f7570206c65616465722e1c506172616d733a482d2047726f757020776f726b65722069642e60576f726b6572526f6c654163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964000410c4456d697473206f6e207570646174696e672074686520726f6c65206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e802d20526f6c65206163636f756e74206964206f662074686520776f726b65722e2c4c6561646572556e7365740005047c456d697473206f6e20756e2d73657474696e6720746865206c65616465722e30576f726b65724578697465640400280120576f726b6572496400061070456d697473206f6e2065786974696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e302d20526174696f6e616c652e50576f726b6572537461727465644c656176696e670800280120576f726b6572496400003101013c4f7074696f6e3c5665633c75383e3e000710b4456d697473207768656e20776f726b65722073746172746564206c656176696e6720746865697220726f6c652e1c506172616d733a302d20576f726b65722069642e302d20526174696f6e616c652e405465726d696e61746564576f726b65720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00081480456d697473206f6e207465726d696e6174696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e405465726d696e617465644c65616465720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00091480456d697473206f6e207465726d696e6174696e6720746865206c65616465722e1c506172616d733a4c2d206c656164657220776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e305374616b65536c61736865641000280120576f726b65724964000018011c42616c616e6365000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e000a18c0456d697473206f6e20736c617368696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e642d2061637475616c20736c61736865642062616c616e63652e702d2052657175657374656420736c61736865642062616c616e63652e302d20526174696f6e616c652e385374616b654465637265617365640800280120576f726b65724964000018011c42616c616e6365000b10c8456d697473206f6e2064656372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74385374616b65496e637265617365640800280120576f726b65724964000018011c42616c616e6365000c10c8456d697473206f6e20696e6372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74504170706c69636174696f6e57697468647261776e04002801344170706c69636174696f6e4964000d0c2501456d697473206f6e207769746864726177696e6720746865206170706c69636174696f6e20666f722074686520726567756c617220776f726b65722f6c656164206f70656e696e672e1c506172616d733a502d204a6f62206170706c69636174696f6e2069643c4f70656e696e6743616e63656c656404002801244f70656e696e674964000e0c8c456d697473206f6e2063616e63656c696e6720746865206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e6720696424427564676574536574040018011c42616c616e6365000f0cc8456d697473206f6e2073657474696e67207468652062756467657420666f722074686520776f726b696e672067726f75702e1c506172616d733a302d206e65772062756467657468576f726b65725265776172644163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964001010cc456d697473206f6e207570646174696e672074686520726577617264206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e882d20526577617264206163636f756e74206964206f662074686520776f726b65722e64576f726b6572526577617264416d6f756e74557064617465640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e001110c8456d697473206f6e207570646174696e67207468652072657761726420616d6f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e482d205265776172642070657220626c6f636b44537461747573546578744368616e67656408002c01104861736800003101013c4f7074696f6e3c5665633c75383e3e001210dc456d697473206f6e207570646174696e6720746865207374617475732074657874206f662074686520776f726b696e672067726f75702e1c506172616d733a482d2073746174757320746578742068617368342d207374617475732074657874384275646765745370656e64696e670c000001244163636f756e744964000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e001314c8456d697473206f6e206275646765742066726f6d2074686520776f726b696e672067726f7570206265696e67207370656e741c506172616d733a582d205265636569766572204163636f756e742049642e402d2042616c616e6365207370656e742e302d20526174696f6e616c652e28526577617264506169641000280120576f726b6572496400000001244163636f756e744964000018011c42616c616e636500008d0301445265776172645061796d656e74547970650014186c456d697473206f6e20706179696e6720746865207265776172642e1c506172616d733a4c2d204964206f662074686520776f726b65722e582d205265636569766572204163636f756e742049642e202d20526577617264b42d205061796d656e74207479706520286d697373656420726577617264206f7220726567756c6172206f6e65296c4e65774d69737365645265776172644c6576656c526561636865640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00151090456d697473206f6e207265616368696e67206e6577206d6973736564207265776172642e1c506172616d733a302d20576f726b65722049442ee82d204d69737365642072657761726420286f7074696f6e616c292e204e6f6e65206d65616e7320276e6f206d697373656420726577617264272e60576f726b696e6747726f757042756467657446756e6465640c002801204d656d6265724964000018011c42616c616e6365000030011c5665633c75383e0016147846756e642074686520776f726b696e672067726f7570206275646765742e1c506172616d733a2c2d204d656d6265722049444c2d20416d6f756e74206f662062616c616e63652c2d20526174696f6e616c65304c65616452656d61726b6564040030011c5665633c75383e00170c94456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a242d206d65737361676538576f726b657252656d61726b65640800280120576f726b65724964000030011c5665633c75383e00181094456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a202d20776f726b6572242d206d6573736167650c5c4576656e747320666f722074686973206d6f64756c652e00385f47726f75705f206576656e7473b503085070616c6c65745f776f726b696e675f67726f757024496e7374616e63653600000000b903085070616c6c65745f776f726b696e675f67726f7570205261774576656e7430244f70656e696e6749640128344170706c69636174696f6e49640128684170706c69636174696f6e4964546f576f726b657249644d617001710320576f726b657249640128244163636f756e74496401001c42616c616e636501182c4f70656e696e6754797065017d032c5374616b65506f6c696379016103604170706c794f6e4f70656e696e67506172616d6574657273018103204d656d626572496401281048617368012c044901bd030164304f70656e696e67416464656414002801244f70656e696e674964000030011c5665633c75383e00007d03012c4f70656e696e675479706500006103012c5374616b65506f6c69637900004501013c4f7074696f6e3c42616c616e63653e00001c80456d697473206f6e20616464696e67206e6577206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e67206964342d204465736372697074696f6e782d204f70656e696e672054797065284c656164206f7220576f726b657229782d205374616b6520506f6c69637920666f7220746865206f70656e696e67482d205265776172642070657220626c6f636b404170706c6965644f6e4f70656e696e670800810301604170706c794f6e4f70656e696e67506172616d657465727300002801344170706c69636174696f6e4964000110dc456d697473206f6e20616464696e6720746865206170706c69636174696f6e20666f722074686520776f726b6572206f70656e696e672e1c506172616d733a542d204f70656e696e6720706172616d657465726573402d204170706c69636174696f6e206964344f70656e696e6746696c6c65640c002801244f70656e696e6749640000710301684170706c69636174696f6e4964546f576f726b657249644d617000006901015c42547265655365743c4170706c69636174696f6e49643e00021484456d697473206f6e2066696c6c696e6720746865206a6f62206f70656e696e672e1c506172616d733a4c2d20576f726b6572206f70656e696e67206964cc2d20576f726b6572206170706c69636174696f6e20696420746f2074686520776f726b65722069642064696374696f6e617279ac2d204170706c69636174696f6e6420696473207573656420746f2066696c6c20746865206f70656e696e67244c65616465725365740400280120576f726b6572496400030c88456d697473206f6e2073657474696e67207468652067726f7570206c65616465722e1c506172616d733a482d2047726f757020776f726b65722069642e60576f726b6572526f6c654163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964000410c4456d697473206f6e207570646174696e672074686520726f6c65206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e802d20526f6c65206163636f756e74206964206f662074686520776f726b65722e2c4c6561646572556e7365740005047c456d697473206f6e20756e2d73657474696e6720746865206c65616465722e30576f726b65724578697465640400280120576f726b6572496400061070456d697473206f6e2065786974696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e302d20526174696f6e616c652e50576f726b6572537461727465644c656176696e670800280120576f726b6572496400003101013c4f7074696f6e3c5665633c75383e3e000710b4456d697473207768656e20776f726b65722073746172746564206c656176696e6720746865697220726f6c652e1c506172616d733a302d20576f726b65722069642e302d20526174696f6e616c652e405465726d696e61746564576f726b65720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00081480456d697473206f6e207465726d696e6174696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e405465726d696e617465644c65616465720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00091480456d697473206f6e207465726d696e6174696e6720746865206c65616465722e1c506172616d733a4c2d206c656164657220776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e305374616b65536c61736865641000280120576f726b65724964000018011c42616c616e6365000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e000a18c0456d697473206f6e20736c617368696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e642d2061637475616c20736c61736865642062616c616e63652e702d2052657175657374656420736c61736865642062616c616e63652e302d20526174696f6e616c652e385374616b654465637265617365640800280120576f726b65724964000018011c42616c616e6365000b10c8456d697473206f6e2064656372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74385374616b65496e637265617365640800280120576f726b65724964000018011c42616c616e6365000c10c8456d697473206f6e20696e6372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74504170706c69636174696f6e57697468647261776e04002801344170706c69636174696f6e4964000d0c2501456d697473206f6e207769746864726177696e6720746865206170706c69636174696f6e20666f722074686520726567756c617220776f726b65722f6c656164206f70656e696e672e1c506172616d733a502d204a6f62206170706c69636174696f6e2069643c4f70656e696e6743616e63656c656404002801244f70656e696e674964000e0c8c456d697473206f6e2063616e63656c696e6720746865206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e6720696424427564676574536574040018011c42616c616e6365000f0cc8456d697473206f6e2073657474696e67207468652062756467657420666f722074686520776f726b696e672067726f75702e1c506172616d733a302d206e65772062756467657468576f726b65725265776172644163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964001010cc456d697473206f6e207570646174696e672074686520726577617264206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e882d20526577617264206163636f756e74206964206f662074686520776f726b65722e64576f726b6572526577617264416d6f756e74557064617465640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e001110c8456d697473206f6e207570646174696e67207468652072657761726420616d6f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e482d205265776172642070657220626c6f636b44537461747573546578744368616e67656408002c01104861736800003101013c4f7074696f6e3c5665633c75383e3e001210dc456d697473206f6e207570646174696e6720746865207374617475732074657874206f662074686520776f726b696e672067726f75702e1c506172616d733a482d2073746174757320746578742068617368342d207374617475732074657874384275646765745370656e64696e670c000001244163636f756e744964000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e001314c8456d697473206f6e206275646765742066726f6d2074686520776f726b696e672067726f7570206265696e67207370656e741c506172616d733a582d205265636569766572204163636f756e742049642e402d2042616c616e6365207370656e742e302d20526174696f6e616c652e28526577617264506169641000280120576f726b6572496400000001244163636f756e744964000018011c42616c616e636500008d0301445265776172645061796d656e74547970650014186c456d697473206f6e20706179696e6720746865207265776172642e1c506172616d733a4c2d204964206f662074686520776f726b65722e582d205265636569766572204163636f756e742049642e202d20526577617264b42d205061796d656e74207479706520286d697373656420726577617264206f7220726567756c6172206f6e65296c4e65774d69737365645265776172644c6576656c526561636865640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00151090456d697473206f6e207265616368696e67206e6577206d6973736564207265776172642e1c506172616d733a302d20576f726b65722049442ee82d204d69737365642072657761726420286f7074696f6e616c292e204e6f6e65206d65616e7320276e6f206d697373656420726577617264272e60576f726b696e6747726f757042756467657446756e6465640c002801204d656d6265724964000018011c42616c616e6365000030011c5665633c75383e0016147846756e642074686520776f726b696e672067726f7570206275646765742e1c506172616d733a2c2d204d656d6265722049444c2d20416d6f756e74206f662062616c616e63652c2d20526174696f6e616c65304c65616452656d61726b6564040030011c5665633c75383e00170c94456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a242d206d65737361676538576f726b657252656d61726b65640800280120576f726b65724964000030011c5665633c75383e00181094456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a202d20776f726b6572242d206d6573736167650c5c4576656e747320666f722074686973206d6f64756c652e00385f47726f75705f206576656e7473bd03085070616c6c65745f776f726b696e675f67726f757024496e7374616e63653700000000c103085070616c6c65745f776f726b696e675f67726f7570205261774576656e7430244f70656e696e6749640128344170706c69636174696f6e49640128684170706c69636174696f6e4964546f576f726b657249644d617001710320576f726b657249640128244163636f756e74496401001c42616c616e636501182c4f70656e696e6754797065017d032c5374616b65506f6c696379016103604170706c794f6e4f70656e696e67506172616d6574657273018103204d656d626572496401281048617368012c044901c5030164304f70656e696e67416464656414002801244f70656e696e674964000030011c5665633c75383e00007d03012c4f70656e696e675479706500006103012c5374616b65506f6c69637900004501013c4f7074696f6e3c42616c616e63653e00001c80456d697473206f6e20616464696e67206e6577206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e67206964342d204465736372697074696f6e782d204f70656e696e672054797065284c656164206f7220576f726b657229782d205374616b6520506f6c69637920666f7220746865206f70656e696e67482d205265776172642070657220626c6f636b404170706c6965644f6e4f70656e696e670800810301604170706c794f6e4f70656e696e67506172616d657465727300002801344170706c69636174696f6e4964000110dc456d697473206f6e20616464696e6720746865206170706c69636174696f6e20666f722074686520776f726b6572206f70656e696e672e1c506172616d733a542d204f70656e696e6720706172616d657465726573402d204170706c69636174696f6e206964344f70656e696e6746696c6c65640c002801244f70656e696e6749640000710301684170706c69636174696f6e4964546f576f726b657249644d617000006901015c42547265655365743c4170706c69636174696f6e49643e00021484456d697473206f6e2066696c6c696e6720746865206a6f62206f70656e696e672e1c506172616d733a4c2d20576f726b6572206f70656e696e67206964cc2d20576f726b6572206170706c69636174696f6e20696420746f2074686520776f726b65722069642064696374696f6e617279ac2d204170706c69636174696f6e6420696473207573656420746f2066696c6c20746865206f70656e696e67244c65616465725365740400280120576f726b6572496400030c88456d697473206f6e2073657474696e67207468652067726f7570206c65616465722e1c506172616d733a482d2047726f757020776f726b65722069642e60576f726b6572526f6c654163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964000410c4456d697473206f6e207570646174696e672074686520726f6c65206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e802d20526f6c65206163636f756e74206964206f662074686520776f726b65722e2c4c6561646572556e7365740005047c456d697473206f6e20756e2d73657474696e6720746865206c65616465722e30576f726b65724578697465640400280120576f726b6572496400061070456d697473206f6e2065786974696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e302d20526174696f6e616c652e50576f726b6572537461727465644c656176696e670800280120576f726b6572496400003101013c4f7074696f6e3c5665633c75383e3e000710b4456d697473207768656e20776f726b65722073746172746564206c656176696e6720746865697220726f6c652e1c506172616d733a302d20576f726b65722069642e302d20526174696f6e616c652e405465726d696e61746564576f726b65720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00081480456d697473206f6e207465726d696e6174696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e405465726d696e617465644c65616465720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00091480456d697473206f6e207465726d696e6174696e6720746865206c65616465722e1c506172616d733a4c2d206c656164657220776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e305374616b65536c61736865641000280120576f726b65724964000018011c42616c616e6365000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e000a18c0456d697473206f6e20736c617368696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e642d2061637475616c20736c61736865642062616c616e63652e702d2052657175657374656420736c61736865642062616c616e63652e302d20526174696f6e616c652e385374616b654465637265617365640800280120576f726b65724964000018011c42616c616e6365000b10c8456d697473206f6e2064656372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74385374616b65496e637265617365640800280120576f726b65724964000018011c42616c616e6365000c10c8456d697473206f6e20696e6372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74504170706c69636174696f6e57697468647261776e04002801344170706c69636174696f6e4964000d0c2501456d697473206f6e207769746864726177696e6720746865206170706c69636174696f6e20666f722074686520726567756c617220776f726b65722f6c656164206f70656e696e672e1c506172616d733a502d204a6f62206170706c69636174696f6e2069643c4f70656e696e6743616e63656c656404002801244f70656e696e674964000e0c8c456d697473206f6e2063616e63656c696e6720746865206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e6720696424427564676574536574040018011c42616c616e6365000f0cc8456d697473206f6e2073657474696e67207468652062756467657420666f722074686520776f726b696e672067726f75702e1c506172616d733a302d206e65772062756467657468576f726b65725265776172644163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964001010cc456d697473206f6e207570646174696e672074686520726577617264206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e882d20526577617264206163636f756e74206964206f662074686520776f726b65722e64576f726b6572526577617264416d6f756e74557064617465640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e001110c8456d697473206f6e207570646174696e67207468652072657761726420616d6f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e482d205265776172642070657220626c6f636b44537461747573546578744368616e67656408002c01104861736800003101013c4f7074696f6e3c5665633c75383e3e001210dc456d697473206f6e207570646174696e6720746865207374617475732074657874206f662074686520776f726b696e672067726f75702e1c506172616d733a482d2073746174757320746578742068617368342d207374617475732074657874384275646765745370656e64696e670c000001244163636f756e744964000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e001314c8456d697473206f6e206275646765742066726f6d2074686520776f726b696e672067726f7570206265696e67207370656e741c506172616d733a582d205265636569766572204163636f756e742049642e402d2042616c616e6365207370656e742e302d20526174696f6e616c652e28526577617264506169641000280120576f726b6572496400000001244163636f756e744964000018011c42616c616e636500008d0301445265776172645061796d656e74547970650014186c456d697473206f6e20706179696e6720746865207265776172642e1c506172616d733a4c2d204964206f662074686520776f726b65722e582d205265636569766572204163636f756e742049642e202d20526577617264b42d205061796d656e74207479706520286d697373656420726577617264206f7220726567756c6172206f6e65296c4e65774d69737365645265776172644c6576656c526561636865640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00151090456d697473206f6e207265616368696e67206e6577206d6973736564207265776172642e1c506172616d733a302d20576f726b65722049442ee82d204d69737365642072657761726420286f7074696f6e616c292e204e6f6e65206d65616e7320276e6f206d697373656420726577617264272e60576f726b696e6747726f757042756467657446756e6465640c002801204d656d6265724964000018011c42616c616e6365000030011c5665633c75383e0016147846756e642074686520776f726b696e672067726f7570206275646765742e1c506172616d733a2c2d204d656d6265722049444c2d20416d6f756e74206f662062616c616e63652c2d20526174696f6e616c65304c65616452656d61726b6564040030011c5665633c75383e00170c94456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a242d206d65737361676538576f726b657252656d61726b65640800280120576f726b65724964000030011c5665633c75383e00181094456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a202d20776f726b6572242d206d6573736167650c5c4576656e747320666f722074686973206d6f64756c652e00385f47726f75705f206576656e7473c503085070616c6c65745f776f726b696e675f67726f757024496e7374616e63653800000000c903085070616c6c65745f776f726b696e675f67726f7570205261774576656e7430244f70656e696e6749640128344170706c69636174696f6e49640128684170706c69636174696f6e4964546f576f726b657249644d617001710320576f726b657249640128244163636f756e74496401001c42616c616e636501182c4f70656e696e6754797065017d032c5374616b65506f6c696379016103604170706c794f6e4f70656e696e67506172616d6574657273018103204d656d626572496401281048617368012c044901cd030164304f70656e696e67416464656414002801244f70656e696e674964000030011c5665633c75383e00007d03012c4f70656e696e675479706500006103012c5374616b65506f6c69637900004501013c4f7074696f6e3c42616c616e63653e00001c80456d697473206f6e20616464696e67206e6577206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e67206964342d204465736372697074696f6e782d204f70656e696e672054797065284c656164206f7220576f726b657229782d205374616b6520506f6c69637920666f7220746865206f70656e696e67482d205265776172642070657220626c6f636b404170706c6965644f6e4f70656e696e670800810301604170706c794f6e4f70656e696e67506172616d657465727300002801344170706c69636174696f6e4964000110dc456d697473206f6e20616464696e6720746865206170706c69636174696f6e20666f722074686520776f726b6572206f70656e696e672e1c506172616d733a542d204f70656e696e6720706172616d657465726573402d204170706c69636174696f6e206964344f70656e696e6746696c6c65640c002801244f70656e696e6749640000710301684170706c69636174696f6e4964546f576f726b657249644d617000006901015c42547265655365743c4170706c69636174696f6e49643e00021484456d697473206f6e2066696c6c696e6720746865206a6f62206f70656e696e672e1c506172616d733a4c2d20576f726b6572206f70656e696e67206964cc2d20576f726b6572206170706c69636174696f6e20696420746f2074686520776f726b65722069642064696374696f6e617279ac2d204170706c69636174696f6e6420696473207573656420746f2066696c6c20746865206f70656e696e67244c65616465725365740400280120576f726b6572496400030c88456d697473206f6e2073657474696e67207468652067726f7570206c65616465722e1c506172616d733a482d2047726f757020776f726b65722069642e60576f726b6572526f6c654163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964000410c4456d697473206f6e207570646174696e672074686520726f6c65206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e802d20526f6c65206163636f756e74206964206f662074686520776f726b65722e2c4c6561646572556e7365740005047c456d697473206f6e20756e2d73657474696e6720746865206c65616465722e30576f726b65724578697465640400280120576f726b6572496400061070456d697473206f6e2065786974696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e302d20526174696f6e616c652e50576f726b6572537461727465644c656176696e670800280120576f726b6572496400003101013c4f7074696f6e3c5665633c75383e3e000710b4456d697473207768656e20776f726b65722073746172746564206c656176696e6720746865697220726f6c652e1c506172616d733a302d20576f726b65722069642e302d20526174696f6e616c652e405465726d696e61746564576f726b65720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00081480456d697473206f6e207465726d696e6174696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e405465726d696e617465644c65616465720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00091480456d697473206f6e207465726d696e6174696e6720746865206c65616465722e1c506172616d733a4c2d206c656164657220776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e305374616b65536c61736865641000280120576f726b65724964000018011c42616c616e6365000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e000a18c0456d697473206f6e20736c617368696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e642d2061637475616c20736c61736865642062616c616e63652e702d2052657175657374656420736c61736865642062616c616e63652e302d20526174696f6e616c652e385374616b654465637265617365640800280120576f726b65724964000018011c42616c616e6365000b10c8456d697473206f6e2064656372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74385374616b65496e637265617365640800280120576f726b65724964000018011c42616c616e6365000c10c8456d697473206f6e20696e6372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74504170706c69636174696f6e57697468647261776e04002801344170706c69636174696f6e4964000d0c2501456d697473206f6e207769746864726177696e6720746865206170706c69636174696f6e20666f722074686520726567756c617220776f726b65722f6c656164206f70656e696e672e1c506172616d733a502d204a6f62206170706c69636174696f6e2069643c4f70656e696e6743616e63656c656404002801244f70656e696e674964000e0c8c456d697473206f6e2063616e63656c696e6720746865206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e6720696424427564676574536574040018011c42616c616e6365000f0cc8456d697473206f6e2073657474696e67207468652062756467657420666f722074686520776f726b696e672067726f75702e1c506172616d733a302d206e65772062756467657468576f726b65725265776172644163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964001010cc456d697473206f6e207570646174696e672074686520726577617264206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e882d20526577617264206163636f756e74206964206f662074686520776f726b65722e64576f726b6572526577617264416d6f756e74557064617465640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e001110c8456d697473206f6e207570646174696e67207468652072657761726420616d6f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e482d205265776172642070657220626c6f636b44537461747573546578744368616e67656408002c01104861736800003101013c4f7074696f6e3c5665633c75383e3e001210dc456d697473206f6e207570646174696e6720746865207374617475732074657874206f662074686520776f726b696e672067726f75702e1c506172616d733a482d2073746174757320746578742068617368342d207374617475732074657874384275646765745370656e64696e670c000001244163636f756e744964000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e001314c8456d697473206f6e206275646765742066726f6d2074686520776f726b696e672067726f7570206265696e67207370656e741c506172616d733a582d205265636569766572204163636f756e742049642e402d2042616c616e6365207370656e742e302d20526174696f6e616c652e28526577617264506169641000280120576f726b6572496400000001244163636f756e744964000018011c42616c616e636500008d0301445265776172645061796d656e74547970650014186c456d697473206f6e20706179696e6720746865207265776172642e1c506172616d733a4c2d204964206f662074686520776f726b65722e582d205265636569766572204163636f756e742049642e202d20526577617264b42d205061796d656e74207479706520286d697373656420726577617264206f7220726567756c6172206f6e65296c4e65774d69737365645265776172644c6576656c526561636865640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00151090456d697473206f6e207265616368696e67206e6577206d6973736564207265776172642e1c506172616d733a302d20576f726b65722049442ee82d204d69737365642072657761726420286f7074696f6e616c292e204e6f6e65206d65616e7320276e6f206d697373656420726577617264272e60576f726b696e6747726f757042756467657446756e6465640c002801204d656d6265724964000018011c42616c616e6365000030011c5665633c75383e0016147846756e642074686520776f726b696e672067726f7570206275646765742e1c506172616d733a2c2d204d656d6265722049444c2d20416d6f756e74206f662062616c616e63652c2d20526174696f6e616c65304c65616452656d61726b6564040030011c5665633c75383e00170c94456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a242d206d65737361676538576f726b657252656d61726b65640800280120576f726b65724964000030011c5665633c75383e00181094456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a202d20776f726b6572242d206d6573736167650c5c4576656e747320666f722074686973206d6f64756c652e00385f47726f75705f206576656e7473cd03085070616c6c65745f776f726b696e675f67726f757024496e7374616e63653900000000d10308306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e00020000d5030000022c00d903000002dd0300dd0300000408101000e10308306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6ee503014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d65e903016473705f72756e74696d653a3a52756e74696d65537472696e670000e5030000061000e9030000050200ed030c306672616d655f73797374656d1870616c6c65741043616c6c0404540001201872656d61726b04011872656d61726b30011c5665633c75383e000010684d616b6520736f6d65206f6e2d636861696e2072656d61726b2e0034232320436f6d706c6578697479202d20604f28312960387365745f686561705f7061676573040114706167657328010c753634000104f853657420746865206e756d626572206f6620706167657320696e2074686520576562417373656d626c7920656e7669726f6e6d656e74277320686561702e207365745f636f6465040110636f646530011c5665633c75383e0002106453657420746865206e65772072756e74696d6520636f64652e0034232320436f6d706c657869747931012d20604f2843202b2053296020776865726520604360206c656e677468206f662060636f64656020616e642060536020636f6d706c6578697479206f66206063616e5f7365745f636f6465605c7365745f636f64655f776974686f75745f636865636b73040110636f646530011c5665633c75383e000310190153657420746865206e65772072756e74696d6520636f646520776974686f757420646f696e6720616e7920636865636b73206f662074686520676976656e2060636f6465602e0034232320436f6d706c65786974798c2d20604f2843296020776865726520604360206c656e677468206f662060636f6465602c7365745f73746f726167650401146974656d73f10301345665633c4b657956616c75653e0004046853657420736f6d65206974656d73206f662073746f726167652e306b696c6c5f73746f726167650401106b657973a90201205665633c4b65793e000504744b696c6c20736f6d65206974656d732066726f6d2073746f726167652e2c6b696c6c5f70726566697808011870726566697830010c4b657900011c7375626b65797310010c75333200061011014b696c6c20616c6c2073746f72616765206974656d7320776974682061206b657920746861742073746172747320776974682074686520676976656e207072656669782e0039012a2a4e4f54453a2a2a2057652072656c79206f6e2074686520526f6f74206f726967696e20746f2070726f7669646520757320746865206e756d626572206f66207375626b65797320756e6465723d0174686520707265666978207765206172652072656d6f76696e6720746f2061636375726174656c792063616c63756c6174652074686520776569676874206f6620746869732066756e6374696f6e2e4472656d61726b5f776974685f6576656e7404011872656d61726b30011c5665633c75383e000704a44d616b6520736f6d65206f6e2d636861696e2072656d61726b20616e6420656d6974206576656e742e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ef103000002f50300f50300000408303000f9030c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2001185765696768740001246d61785f626c6f636b2001185765696768740001247065725f636c617373fd0301845065724469737061746368436c6173733c57656967687473506572436c6173733e0000fd030c346672616d655f737570706f7274206469737061746368405065724469737061746368436c617373040454010104000c01186e6f726d616c010401045400012c6f7065726174696f6e616c01040104540001246d616e6461746f72790104010454000001040c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632001185765696768740001346d61785f65787472696e736963050401384f7074696f6e3c5765696768743e0001246d61785f746f74616c050401384f7074696f6e3c5765696768743e0001207265736572766564050401384f7074696f6e3c5765696768743e0000050404184f7074696f6e04045401200108104e6f6e6500000010536f6d65040020000001000009040c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d61780d0401545065724469737061746368436c6173733c7533323e00000d040c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f72791001045400001104082873705f776569676874733c52756e74696d65446257656967687400000801107265616428010c753634000114777269746528010c75363400001504082873705f76657273696f6e3852756e74696d6556657273696f6e0000200124737065635f6e616d65e903013452756e74696d65537472696e67000124696d706c5f6e616d65e903013452756e74696d65537472696e67000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c753332000110617069731904011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c75333200013473746174655f76657273696f6e080108753800001904040c436f77040454011d040004001d040000001d04000002210400210400000408250410002504000003080000000800290400000504002d040c306672616d655f73797374656d1870616c6c6574144572726f720404540001183c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e3043616c6c46696c7465726564000504d0546865206f726967696e2066696c7465722070726576656e74207468652063616c6c20746f20626520646973706174636865642e046c4572726f7220666f72207468652053797374656d2070616c6c657431040c3870616c6c65745f7574696c6974791870616c6c65741043616c6c04045400011814626174636804011463616c6c733504017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0000487c53656e642061206261746368206f662064697370617463682063616c6c732e00b04d61792062652063616c6c65642066726f6d20616e79206f726967696e2065786365707420604e6f6e65602e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e0055014966206f726967696e20697320726f6f74207468656e207468652063616c6c7320617265206469737061746368656420776974686f757420636865636b696e67206f726967696e2066696c7465722e202854686973ec696e636c7564657320627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e0034232320436f6d706c6578697479d02d204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e005501546869732077696c6c2072657475726e20604f6b6020696e20616c6c2063697263756d7374616e6365732e20546f2064657465726d696e65207468652073756363657373206f66207468652062617463682c20616e31016576656e74206973206465706f73697465642e20496620612063616c6c206661696c656420616e64207468652062617463682077617320696e7465727275707465642c207468656e207468655501604261746368496e74657272757074656460206576656e74206973206465706f73697465642c20616c6f6e67207769746820746865206e756d626572206f66207375636365737366756c2063616c6c73206d6164654d01616e6420746865206572726f72206f6620746865206661696c65642063616c6c2e20496620616c6c2077657265207375636365737366756c2c207468656e2074686520604261746368436f6d706c65746564604c6576656e74206973206465706f73697465642e3461735f64657269766174697665080114696e6465782904010c75313600011063616c6c3904017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000134dc53656e6420612063616c6c207468726f75676820616e20696e64657865642070736575646f6e796d206f66207468652073656e6465722e00550146696c7465722066726f6d206f726967696e206172652070617373656420616c6f6e672e205468652063616c6c2077696c6c2062652064697370617463686564207769746820616e206f726967696e207768696368bc757365207468652073616d652066696c74657220617320746865206f726967696e206f6620746869732063616c6c2e0045014e4f54453a20496620796f75206e65656420746f20656e73757265207468617420616e79206163636f756e742d62617365642066696c746572696e67206973206e6f7420686f6e6f7265642028692e652e61016265636175736520796f7520657870656374206070726f78796020746f2068617665206265656e2075736564207072696f7220696e207468652063616c6c20737461636b20616e6420796f7520646f206e6f742077616e7451017468652063616c6c207265737472696374696f6e7320746f206170706c7920746f20616e79207375622d6163636f756e7473292c207468656e20757365206061735f6d756c74695f7468726573686f6c645f31607c696e20746865204d756c74697369672070616c6c657420696e73746561642e00f44e4f54453a205072696f7220746f2076657273696f6e202a31322c2074686973207761732063616c6c6564206061735f6c696d697465645f737562602e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e2462617463685f616c6c04011463616c6c733504017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000234ec53656e642061206261746368206f662064697370617463682063616c6c7320616e642061746f6d6963616c6c792065786563757465207468656d2e21015468652077686f6c65207472616e73616374696f6e2077696c6c20726f6c6c6261636b20616e64206661696c20696620616e79206f66207468652063616c6c73206661696c65642e00b04d61792062652063616c6c65642066726f6d20616e79206f726967696e2065786365707420604e6f6e65602e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e0055014966206f726967696e20697320726f6f74207468656e207468652063616c6c7320617265206469737061746368656420776974686f757420636865636b696e67206f726967696e2066696c7465722e202854686973ec696e636c7564657320627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e0034232320436f6d706c6578697479d02d204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e2c64697370617463685f617308012461735f6f726967696e91060154426f783c543a3a50616c6c6574734f726967696e3e00011063616c6c3904017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000318c84469737061746368657320612066756e6374696f6e2063616c6c207769746820612070726f7669646564206f726967696e2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e0034232320436f6d706c65786974791c2d204f2831292e2c666f7263655f626174636804011463616c6c733504017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0004347c53656e642061206261746368206f662064697370617463682063616c6c732ed4556e6c696b6520606261746368602c20697420616c6c6f7773206572726f727320616e6420776f6e277420696e746572727570742e00b04d61792062652063616c6c65642066726f6d20616e79206f726967696e2065786365707420604e6f6e65602e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e004d014966206f726967696e20697320726f6f74207468656e207468652063616c6c732061726520646973706174636820776974686f757420636865636b696e67206f726967696e2066696c7465722e202854686973ec696e636c7564657320627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e0034232320436f6d706c6578697479d02d204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e2c776974685f77656967687408011063616c6c3904017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000118776569676874200118576569676874000518c4446973706174636820612066756e6374696f6e2063616c6c2077697468206120737065636966696564207765696768742e002d01546869732066756e6374696f6e20646f6573206e6f7420636865636b2074686520776569676874206f66207468652063616c6c2c20616e6420696e737465616420616c6c6f777320746865b8526f6f74206f726967696e20746f20737065636966792074686520776569676874206f66207468652063616c6c2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e3504000002390400390408586a6f7973747265616d5f6e6f64655f72756e74696d652c52756e74696d6543616c6c00018c1853797374656d0400ed0301ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e0000001c5574696c6974790400310401b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5574696c6974792c2052756e74696d653e000100104261626504003d0401a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c426162652c2052756e74696d653e0002002454696d657374616d700400610401b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e0003002042616c616e6365730400650401b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e00050068456c656374696f6e50726f76696465724d756c746950686173650400690401fd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c456c656374696f6e50726f76696465724d756c746950686173652c2052756e74696d653e0007001c5374616b696e670400550501b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5374616b696e672c2052756e74696d653e0008001c53657373696f6e0400790501b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53657373696f6e2c2052756e74696d653e0009001c4772616e6470610400850501b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4772616e6470612c2052756e74696d653e000b0020496d4f6e6c696e650400b50501b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c496d4f6e6c696e652c2052756e74696d653e000d0020426167734c6973740400d50501b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c426167734c6973742c2052756e74696d653e0010001c56657374696e670400d90501b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c56657374696e672c2052756e74696d653e001100204d756c74697369670400e10501b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d756c74697369672c2052756e74696d653e0012001c436f756e63696c0400e90501b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f756e63696c2c2052756e74696d653e001300285265666572656e64756d0400ed0501bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5265666572656e64756d2c2052756e74696d653e0014001c4d656d626572730400f10501b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d656d626572732c2052756e74696d653e00150014466f72756d0400f50501a90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c466f72756d2c2052756e74696d653e00160030436f6e737469747574696f6e0400f90501c50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f6e737469747574696f6e2c2052756e74696d653e00170018426f756e74790400fd0501ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c426f756e74792c2052756e74696d653e001800404a6f7973747265616d5574696c6974790400010601d50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4a6f7973747265616d5574696c6974792c2052756e74696d653e0019001c436f6e74656e740400050601b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f6e74656e742c2052756e74696d653e001a001c53746f726167650400350601b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53746f726167652c2052756e74696d653e001b003050726f6a656374546f6b656e0400390601c50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50726f6a656374546f6b656e2c2052756e74696d653e001c003c50726f706f73616c73456e67696e650400610601d10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50726f706f73616c73456e67696e652c2052756e74696d653e001d004c50726f706f73616c7344697363757373696f6e0400650601e10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50726f706f73616c7344697363757373696f6e2c2052756e74696d653e001e003850726f706f73616c73436f6465780400690601cd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50726f706f73616c73436f6465782c2052756e74696d653e001f0044466f72756d576f726b696e6747726f757004006d0601d90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c466f72756d576f726b696e6747726f75702c2052756e74696d653e0020004c53746f72616765576f726b696e6747726f75700400710601e10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53746f72616765576f726b696e6747726f75702c2052756e74696d653e0021004c436f6e74656e74576f726b696e6747726f75700400750601e10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f6e74656e74576f726b696e6747726f75702c2052756e74696d653e0022006c4f7065726174696f6e73576f726b696e6747726f7570416c7068610400790601010273656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4f7065726174696f6e73576f726b696e6747726f7570416c7068612c2052756e74696d653e0023003c417070576f726b696e6747726f757004007d0601d10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c417070576f726b696e6747726f75702c2052756e74696d653e002400584d656d62657273686970576f726b696e6747726f75700400810601ed0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d656d62657273686970576f726b696e6747726f75702c2052756e74696d653e002500684f7065726174696f6e73576f726b696e6747726f7570426574610400850601fd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4f7065726174696f6e73576f726b696e6747726f7570426574612c2052756e74696d653e0026006c4f7065726174696f6e73576f726b696e6747726f757047616d6d610400890601010273656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4f7065726174696f6e73576f726b696e6747726f757047616d6d612c2052756e74696d653e00270060446973747269627574696f6e576f726b696e6747726f757004008d0601f50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c446973747269627574696f6e576f726b696e6747726f75702c2052756e74696d653e002800003d040c2c70616c6c65745f626162651870616c6c65741043616c6c04045400010c4c7265706f72745f65717569766f636174696f6e08014865717569766f636174696f6e5f70726f6f6641040184426f783c45717569766f636174696f6e50726f6f663c543a3a4865616465723e3e00013c6b65795f6f776e65725f70726f6f6655040140543a3a4b65794f776e657250726f6f6600001009015265706f727420617574686f726974792065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667905017468652065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f660d01616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c306265207265706f727465642e707265706f72745f65717569766f636174696f6e5f756e7369676e656408014865717569766f636174696f6e5f70726f6f6641040184426f783c45717569766f636174696f6e50726f6f663c543a3a4865616465723e3e00013c6b65795f6f776e65725f70726f6f6655040140543a3a4b65794f776e657250726f6f6600012009015265706f727420617574686f726974792065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667905017468652065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f660d01616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c306265207265706f727465642e0d01546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c791501626c6f636b20617574686f72732077696c6c2063616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c2061732073756368150169662074686520626c6f636b20617574686f7220697320646566696e65642069742077696c6c20626520646566696e6564206173207468652065717569766f636174696f6e247265706f727465722e48706c616e5f636f6e6669675f6368616e6765040118636f6e666967590401504e657874436f6e66696744657363726970746f720002105d01506c616e20616e2065706f636820636f6e666967206368616e67652e205468652065706f636820636f6e666967206368616e6765206973207265636f7264656420616e642077696c6c20626520656e6163746564206f6e5101746865206e6578742063616c6c20746f2060656e6163745f65706f63685f6368616e6765602e2054686520636f6e6669672077696c6c20626520616374697661746564206f6e652065706f63682061667465722e59014d756c7469706c652063616c6c7320746f2074686973206d6574686f642077696c6c207265706c61636520616e79206578697374696e6720706c616e6e656420636f6e666967206368616e6765207468617420686164546e6f74206265656e20656e6163746564207965742e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e4104084873705f636f6e73656e7375735f736c6f74734445717569766f636174696f6e50726f6f660818486561646572014504084964014d04001001206f6666656e6465724d0401084964000110736c6f7451040110536c6f7400013066697273745f686561646572450401184865616465720001347365636f6e645f6865616465724504011848656164657200004504102873705f72756e74696d651c67656e65726963186865616465721848656164657208184e756d626572011010486173680149040014012c706172656e745f686173682c0130486173683a3a4f75747075740001186e756d626572e50301184e756d62657200012873746174655f726f6f742c0130486173683a3a4f757470757400013c65787472696e736963735f726f6f742c0130486173683a3a4f7574707574000118646967657374340118446967657374000049040c2873705f72756e74696d65187472616974732c426c616b6554776f323536000000004d040c4473705f636f6e73656e7375735f626162650c617070185075626c696300000400dc013c737232353531393a3a5075626c696300005104084873705f636f6e73656e7375735f736c6f747310536c6f740000040028010c75363400005504082873705f73657373696f6e3c4d656d6265727368697050726f6f6600000c011c73657373696f6e10013053657373696f6e496e646578000128747269655f6e6f646573a90201305665633c5665633c75383e3e00013c76616c696461746f725f636f756e7410013856616c696461746f72436f756e74000059040c4473705f636f6e73656e7375735f626162651c64696765737473504e657874436f6e66696744657363726970746f720001040856310801046379030128287536342c2075363429000134616c6c6f7765645f736c6f74735d040130416c6c6f776564536c6f7473000100005d04084473705f636f6e73656e7375735f6261626530416c6c6f776564536c6f747300010c305072696d617279536c6f7473000000745072696d617279416e645365636f6e64617279506c61696e536c6f74730001006c5072696d617279416e645365636f6e64617279565246536c6f74730002000061040c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f77240124543a3a4d6f6d656e7400003c54536574207468652063757272656e742074696d652e005501546869732063616c6c2073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6ed470686173652c20696620746869732063616c6c206861736e2774206265656e20696e766f6b656420627920746861742074696d652e0041015468652074696d657374616d702073686f756c642062652067726561746572207468616e207468652070726576696f7573206f6e652062792074686520616d6f756e742073706563696669656420627940604d696e696d756d506572696f64602e00d4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060496e686572656e74602e0034232320436f6d706c657869747931012d20604f2831296020284e6f7465207468617420696d706c656d656e746174696f6e73206f6620604f6e54696d657374616d7053657460206d75737420616c736f20626520604f283129602961012d20312073746f72616765207265616420616e6420312073746f72616765206d75746174696f6e2028636f64656320604f28312960292e202862656361757365206f6620604469645570646174653a3a74616b656020696e402020606f6e5f66696e616c697a656029d42d2031206576656e742068616e646c657220606f6e5f74696d657374616d705f736574602e204d75737420626520604f283129602e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e65040c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c080454000449000118207472616e73666572080110646573740001504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565ec0128543a3a42616c616e6365000058d45472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572206163636f756e742e000501607472616e73666572602077696c6c207365742074686520604672656542616c616e636560206f66207468652073656e64657220616e642072656365697665722e11014966207468652073656e6465722773206163636f756e742069732062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c74b06f6620746865207472616e736665722c20746865206163636f756e742077696c6c206265207265617065642e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520605369676e65646020627920746865207472616e736163746f722e0034232320436f6d706c657869747961012d20446570656e64656e74206f6e20617267756d656e747320627574206e6f7420637269746963616c2c20676976656e2070726f70657220696d706c656d656e746174696f6e7320666f7220696e70757420636f6e66696794202074797065732e205365652072656c617465642066756e6374696f6e732062656c6f772e31012d20497420636f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e642077726974657320696e7465726e616c6c7920616e64206e6f20636f6d706c6578382020636f6d7075746174696f6e2e004852656c617465642066756e6374696f6e733a004d0120202d2060656e737572655f63616e5f77697468647261776020697320616c776179732063616c6c656420696e7465726e616c6c792062757420686173206120626f756e64656420636f6d706c65786974792e290120202d205472616e7366657272696e672062616c616e63657320746f206163636f756e7473207468617420646964206e6f74206578697374206265666f72652077696c6c206361757365cc2020202060543a3a4f6e4e65774163636f756e743a3a6f6e5f6e65775f6163636f756e746020746f2062652063616c6c65642e5d0120202d2052656d6f76696e6720656e6f7567682066756e64732066726f6d20616e206163636f756e742077696c6c20747269676765722060543a3a4475737452656d6f76616c3a3a6f6e5f756e62616c616e636564602e5d0120202d20607472616e736665725f6b6565705f616c6976656020776f726b73207468652073616d652077617920617320607472616e73666572602c206275742068617320616e206164646974696f6e616c20636865636bdc202020207468617420746865207472616e736665722077696c6c206e6f74206b696c6c20746865206f726967696e206163636f756e742e2c7365745f62616c616e63650c010c77686f0001504163636f756e7449644c6f6f6b75704f663c543e0001206e65775f66726565ec0128543a3a42616c616e63650001306e65775f7265736572766564ec0128543a3a42616c616e636500012090536574207468652062616c616e636573206f66206120676976656e206163636f756e742e001d01546869732077696c6c20616c74657220604672656542616c616e63656020616e642060526573657276656442616c616e63656020696e2073746f726167652e2069742077696c6c3101616c736f20616c7465722074686520746f74616c2069737375616e6365206f66207468652073797374656d202860546f74616c49737375616e6365602920617070726f7072696174656c792e1501496620746865206e65772066726565206f722072657365727665642062616c616e63652069732062656c6f7720746865206578697374656e7469616c206465706f7369742cfc69742077696c6c20726573657420746865206163636f756e74206e6f6e63652028606672616d655f73797374656d3a3a4163636f756e744e6f6e636560292e00b0546865206469737061746368206f726967696e20666f7220746869732063616c6c2069732060726f6f74602e38666f7263655f7472616e736665720c0118736f757263650001504163636f756e7449644c6f6f6b75704f663c543e000110646573740001504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565ec0128543a3a42616c616e63650002144d0145786163746c7920617320607472616e73666572602c2065786365707420746865206f726967696e206d75737420626520726f6f7420616e642074686520736f75726365206163636f756e74206d6179206265287370656369666965642e34232320436f6d706c65786974794d012d2053616d65206173207472616e736665722c20627574206164646974696f6e616c207265616420616e6420777269746520626563617573652074686520736f75726365206163636f756e74206973206e6f747c2020617373756d656420746f20626520696e20746865206f7665726c61792e4c7472616e736665725f6b6565705f616c697665080110646573740001504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565ec0128543a3a42616c616e63650003184d0153616d6520617320746865205b607472616e73666572605d2063616c6c2c206275742077697468206120636865636b207468617420746865207472616e736665722077696c6c206e6f74206b696c6c207468653c6f726967696e206163636f756e742e00b8393925206f66207468652074696d6520796f752077616e74205b607472616e73666572605d20696e73746561642e00c05b607472616e73666572605d3a207374727563742e50616c6c65742e68746d6c236d6574686f642e7472616e73666572307472616e736665725f616c6c080110646573740001504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c697665980110626f6f6c00044005015472616e736665722074686520656e74697265207472616e7366657261626c652062616c616e63652066726f6d207468652063616c6c6572206163636f756e742e0059014e4f54453a20546869732066756e6374696f6e206f6e6c7920617474656d70747320746f207472616e73666572205f7472616e7366657261626c655f2062616c616e6365732e2054686973206d65616e7320746861746101616e79206c6f636b65642c2072657365727665642c206f72206578697374656e7469616c206465706f7369747320287768656e20606b6565705f616c6976656020697320607472756560292c2077696c6c206e6f742062655d017472616e7366657272656420627920746869732066756e6374696f6e2e20546f20656e73757265207468617420746869732066756e6374696f6e20726573756c747320696e2061206b696c6c6564206163636f756e742c4501796f75206d69676874206e65656420746f207072657061726520746865206163636f756e742062792072656d6f76696e6720616e79207265666572656e636520636f756e746572732c2073746f72616765406465706f736974732c206574632e2e2e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205369676e65642e00a02d206064657374603a2054686520726563697069656e74206f6620746865207472616e736665722e59012d20606b6565705f616c697665603a204120626f6f6c65616e20746f2064657465726d696e652069662074686520607472616e736665725f616c6c60206f7065726174696f6e2073686f756c642073656e6420616c6c4d0120206f66207468652066756e647320746865206163636f756e74206861732c2063617573696e67207468652073656e646572206163636f756e7420746f206265206b696c6c6564202866616c7365292c206f72590120207472616e736665722065766572797468696e6720657863657074206174206c6561737420746865206578697374656e7469616c206465706f7369742c2077686963682077696c6c2067756172616e74656520746fd420206b656570207468652073656e646572206163636f756e7420616c697665202874727565292e20232320436f6d706c657869747939012d204f2831292e204a757374206c696b65207472616e736665722c206275742072656164696e672074686520757365722773207472616e7366657261626c652062616c616e63652066697273742e3c666f7263655f756e7265736572766508010c77686f0001504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74180128543a3a42616c616e636500050cb0556e7265736572766520736f6d652062616c616e63652066726f6d2061207573657220627920666f7263652e006c43616e206f6e6c792062652063616c6c656420627920524f4f542e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e69040c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173651870616c6c65741043616c6c0404540001143c7375626d69745f756e7369676e65640801307261775f736f6c7574696f6e6d0401b0426f783c526177536f6c7574696f6e3c536f6c7574696f6e4f663c543a3a4d696e6572436f6e6669673e3e3e00011c7769746e6573733d050158536f6c7574696f6e4f72536e617073686f7453697a65000038a45375626d6974206120736f6c7574696f6e20666f722074686520756e7369676e65642070686173652e00c8546865206469737061746368206f726967696e20666f20746869732063616c6c206d757374206265205f5f6e6f6e655f5f2e003d0154686973207375626d697373696f6e20697320636865636b6564206f6e2074686520666c792e204d6f72656f7665722c207468697320756e7369676e656420736f6c7574696f6e206973206f6e6c79550176616c696461746564207768656e207375626d697474656420746f2074686520706f6f6c2066726f6d20746865202a2a6c6f63616c2a2a206e6f64652e204566666563746976656c792c2074686973206d65616e735d0174686174206f6e6c79206163746976652076616c696461746f72732063616e207375626d69742074686973207472616e73616374696f6e207768656e20617574686f72696e67206120626c6f636b202873696d696c617240746f20616e20696e686572656e74292e005901546f2070726576656e7420616e7920696e636f727265637420736f6c7574696f6e2028616e642074687573207761737465642074696d652f776569676874292c2074686973207472616e73616374696f6e2077696c6c4d0170616e69632069662074686520736f6c7574696f6e207375626d6974746564206279207468652076616c696461746f7220697320696e76616c696420696e20616e79207761792c206566666563746976656c799c70757474696e6720746865697220617574686f72696e6720726577617264206174207269736b2e00e04e6f206465706f736974206f7220726577617264206973206173736f63696174656420776974682074686973207375626d697373696f6e2e6c7365745f6d696e696d756d5f756e747275737465645f73636f72650401406d617962655f6e6578745f73636f7265410501544f7074696f6e3c456c656374696f6e53636f72653e000114b05365742061206e65772076616c756520666f7220604d696e696d756d556e7472757374656453636f7265602e00d84469737061746368206f726967696e206d75737420626520616c69676e656420776974682060543a3a466f7263654f726967696e602e00f05468697320636865636b2063616e206265207475726e6564206f66662062792073657474696e67207468652076616c756520746f20604e6f6e65602e747365745f656d657267656e63795f656c656374696f6e5f726573756c74040120737570706f72747345050158537570706f7274733c543a3a4163636f756e7449643e0002205901536574206120736f6c7574696f6e20696e207468652071756575652c20746f2062652068616e646564206f757420746f2074686520636c69656e74206f6620746869732070616c6c657420696e20746865206e6578748863616c6c20746f2060456c656374696f6e50726f76696465723a3a656c656374602e004501546869732063616e206f6e6c79206265207365742062792060543a3a466f7263654f726967696e602c20616e64206f6e6c79207768656e207468652070686173652069732060456d657267656e6379602e00610154686520736f6c7574696f6e206973206e6f7420636865636b656420666f7220616e7920666561736962696c69747920616e6420697320617373756d656420746f206265207472757374776f727468792c20617320616e795101666561736962696c69747920636865636b20697473656c662063616e20696e207072696e6369706c652063617573652074686520656c656374696f6e2070726f6365737320746f206661696c202864756520746f686d656d6f72792f77656967687420636f6e73747261696e73292e187375626d69740401307261775f736f6c7574696f6e6d0401b0426f783c526177536f6c7574696f6e3c536f6c7574696f6e4f663c543a3a4d696e6572436f6e6669673e3e3e0003249c5375626d6974206120736f6c7574696f6e20666f7220746865207369676e65642070686173652e00d0546865206469737061746368206f726967696e20666f20746869732063616c6c206d757374206265205f5f7369676e65645f5f2e005d0154686520736f6c7574696f6e20697320706f74656e7469616c6c79207175657565642c206261736564206f6e2074686520636c61696d65642073636f726520616e642070726f6365737365642061742074686520656e64506f6620746865207369676e65642070686173652e005d0141206465706f73697420697320726573657276656420616e64207265636f7264656420666f722074686520736f6c7574696f6e2e204261736564206f6e20746865206f7574636f6d652c2074686520736f6c7574696f6e15016d696768742062652072657761726465642c20736c61736865642c206f722067657420616c6c206f7220612070617274206f6620746865206465706f736974206261636b2e4c676f7665726e616e63655f66616c6c6261636b0801406d617962655f6d61785f766f746572730102012c4f7074696f6e3c7533323e0001446d617962655f6d61785f746172676574730102012c4f7074696f6e3c7533323e00041080547269676765722074686520676f7665726e616e63652066616c6c6261636b2e004901546869732063616e206f6e6c792062652063616c6c6564207768656e205b6050686173653a3a456d657267656e6379605d20697320656e61626c65642c20617320616e20616c7465726e617469766520746fc063616c6c696e67205b6043616c6c3a3a7365745f656d657267656e63795f656c656374696f6e5f726573756c74605d2e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e6d04089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173652c526177536f6c7574696f6e040453017104000c0120736f6c7574696f6e710401045300011473636f72659c0134456c656374696f6e53636f7265000114726f756e6410010c7533320000710408586a6f7973747265616d5f6e6f64655f72756e74696d65384e706f73536f6c7574696f6e31360000400118766f74657331750400000118766f74657332810400000118766f74657333950400000118766f74657334a10400000118766f74657335ad0400000118766f74657336b90400000118766f74657337c50400000118766f74657338d10400000118766f74657339dd040000011c766f7465733130e9040000011c766f7465733131f5040000011c766f746573313201050000011c766f74657331330d050000011c766f746573313419050000011c766f746573313525050000011c766f746573313631050000007504000002790400790400000408e5037d04007d04000006290400810400000285040085040000040ce50389047d04008904000004087d048d04008d0400000691040091040c3473705f61726974686d65746963287065725f7468696e677318506572553136000004002904010c7531360000950400000299040099040000040ce5039d047d04009d0400000302000000890400a104000002a50400a5040000040ce503a9047d0400a90400000303000000890400ad04000002b10400b1040000040ce503b5047d0400b50400000304000000890400b904000002bd0400bd040000040ce503c1047d0400c10400000305000000890400c504000002c90400c9040000040ce503cd047d0400cd0400000306000000890400d104000002d50400d5040000040ce503d9047d0400d90400000307000000890400dd04000002e10400e1040000040ce503e5047d0400e50400000308000000890400e904000002ed0400ed040000040ce503f1047d0400f10400000309000000890400f504000002f90400f9040000040ce503fd047d0400fd040000030a000000890400010500000205050005050000040ce50309057d040009050000030b0000008904000d0500000211050011050000040ce50315057d040015050000030c00000089040019050000021d05001d050000040ce50321057d040021050000030d000000890400250500000229050029050000040ce5032d057d04002d050000030e000000890400310500000235050035050000040ce50339057d040039050000030f0000008904003d05089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f706861736558536f6c7574696f6e4f72536e617073686f7453697a650000080118766f74657273e503010c75333200011c74617267657473e503010c7533320000410504184f7074696f6e040454019c0108104e6f6e6500000010536f6d6504009c00000100004505000002490500490500000408004d05004d05084473705f6e706f735f656c656374696f6e731c537570706f727404244163636f756e744964010000080114746f74616c18013c457874656e64656442616c616e6365000118766f74657273510501845665633c284163636f756e7449642c20457874656e64656442616c616e6365293e000051050000024d01005505103870616c6c65745f7374616b696e671870616c6c65741870616c6c65741043616c6c04045400016810626f6e640c0128636f6e74726f6c6c65720001504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565ec013042616c616e63654f663c543e00011470617965655905017c52657761726444657374696e6174696f6e3c543a3a4163636f756e7449643e00003c610154616b6520746865206f726967696e206163636f756e74206173206120737461736820616e64206c6f636b207570206076616c756560206f66206974732062616c616e63652e2060636f6e74726f6c6c6572602077696c6c80626520746865206163636f756e74207468617420636f6e74726f6c732069742e002d016076616c756560206d757374206265206d6f7265207468616e2074686520606d696e696d756d5f62616c616e636560207370656369666965642062792060543a3a43757272656e6379602e002101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20627920746865207374617368206163636f756e742e003c456d6974732060426f6e646564602e34232320436f6d706c6578697479d02d20496e646570656e64656e74206f662074686520617267756d656e74732e204d6f64657261746520636f6d706c65786974792e1c2d204f2831292e642d20546872656520657874726120444220656e74726965732e004d014e4f54453a2054776f206f66207468652073746f726167652077726974657320286053656c663a3a626f6e646564602c206053656c663a3a7061796565602920617265205f6e657665725f20636c65616e65643d01756e6c6573732074686520606f726967696e602066616c6c732062656c6f77205f6578697374656e7469616c206465706f7369745f20616e6420676574732072656d6f76656420617320647573742e28626f6e645f65787472610401386d61785f6164646974696f6e616cec013042616c616e63654f663c543e000138610141646420736f6d6520657874726120616d6f756e742074686174206861766520617070656172656420696e207468652073746173682060667265655f62616c616e63656020696e746f207468652062616c616e636520757030666f72207374616b696e672e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c65722e004d01557365207468697320696620746865726520617265206164646974696f6e616c2066756e647320696e20796f7572207374617368206163636f756e74207468617420796f75207769736820746f20626f6e642e5501556e6c696b65205b60626f6e64605d2853656c663a3a626f6e6429206f72205b60756e626f6e64605d2853656c663a3a756e626f6e642920746869732066756e6374696f6e20646f6573206e6f7420696d706f7365bc616e79206c696d69746174696f6e206f6e2074686520616d6f756e7420746861742063616e2062652061646465642e003c456d6974732060426f6e646564602e0034232320436f6d706c6578697479e42d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e1c2d204f2831292e18756e626f6e6404011476616c7565ec013042616c616e63654f663c543e00024c51015363686564756c65206120706f7274696f6e206f662074686520737461736820746f20626520756e6c6f636b656420726561647920666f72207472616e73666572206f75742061667465722074686520626f6e64fc706572696f6420656e64732e2049662074686973206c656176657320616e20616d6f756e74206163746976656c7920626f6e646564206c657373207468616e2101543a3a43757272656e63793a3a6d696e696d756d5f62616c616e636528292c207468656e20697420697320696e6372656173656420746f207468652066756c6c20616d6f756e742e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0045014f6e63652074686520756e6c6f636b20706572696f6420697320646f6e652c20796f752063616e2063616c6c206077697468647261775f756e626f6e6465646020746f2061637475616c6c79206d6f7665bc7468652066756e6473206f7574206f66206d616e6167656d656e7420726561647920666f72207472616e736665722e0031014e6f206d6f7265207468616e2061206c696d69746564206e756d626572206f6620756e6c6f636b696e67206368756e6b73202873656520604d6178556e6c6f636b696e674368756e6b736029410163616e20636f2d657869737473206174207468652073616d652074696d652e20496620746865726520617265206e6f20756e6c6f636b696e67206368756e6b7320736c6f747320617661696c61626c6545015b6043616c6c3a3a77697468647261775f756e626f6e646564605d2069732063616c6c656420746f2072656d6f766520736f6d65206f6620746865206368756e6b732028696620706f737369626c65292e00390149662061207573657220656e636f756e74657273207468652060496e73756666696369656e74426f6e6460206572726f72207768656e2063616c6c696e6720746869732065787472696e7369632c1901746865792073686f756c642063616c6c20606368696c6c6020666972737420696e206f7264657220746f206672656520757020746865697220626f6e6465642066756e64732e0044456d6974732060556e626f6e646564602e009453656520616c736f205b6043616c6c3a3a77697468647261775f756e626f6e646564605d2e4477697468647261775f756e626f6e6465640401486e756d5f736c617368696e675f7370616e7310010c753332000338290152656d6f766520616e7920756e6c6f636b6564206368756e6b732066726f6d207468652060756e6c6f636b696e67602071756575652066726f6d206f7572206d616e6167656d656e742e0031015468697320657373656e7469616c6c7920667265657320757020746861742062616c616e636520746f206265207573656420627920746865207374617368206163636f756e7420746f20646f4877686174657665722069742077616e74732e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722e0048456d697473206057697468647261776e602e006853656520616c736f205b6043616c6c3a3a756e626f6e64605d2e0034232320436f6d706c6578697479d84f285329207768657265205320697320746865206e756d626572206f6620736c617368696e67207370616e7320746f2072656d6f766509014e4f54453a2057656967687420616e6e6f746174696f6e20697320746865206b696c6c207363656e6172696f2c20776520726566756e64206f74686572776973652e2076616c69646174650401147072656673b0013856616c696461746f725072656673000414e44465636c617265207468652064657369726520746f2076616c696461746520666f7220746865206f726967696e20636f6e74726f6c6c65722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e206e6f6d696e61746504011c746172676574735d0501645665633c4163636f756e7449644c6f6f6b75704f663c543e3e0005280d014465636c617265207468652064657369726520746f206e6f6d696e6174652060746172676574736020666f7220746865206f726967696e20636f6e74726f6c6c65722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0034232320436f6d706c65786974792d012d20546865207472616e73616374696f6e277320636f6d706c65786974792069732070726f706f7274696f6e616c20746f207468652073697a65206f662060746172676574736020284e29050177686963682069732063617070656420617420436f6d7061637441737369676e6d656e74733a3a4c494d49542028543a3a4d61784e6f6d696e6174696f6e73292ed42d20426f74682074686520726561647320616e642077726974657320666f6c6c6f7720612073696d696c6172207061747465726e2e146368696c6c000628c44465636c617265206e6f2064657369726520746f206569746865722076616c6964617465206f72206e6f6d696e6174652e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0034232320436f6d706c6578697479e42d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e502d20436f6e7461696e73206f6e6520726561642ec42d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e247365745f706179656504011470617965655905017c52657761726444657374696e6174696f6e3c543a3a4163636f756e7449643e000730b42852652d2973657420746865207061796d656e742074617267657420666f72206120636f6e74726f6c6c65722e005101456666656374732077696c6c2062652066656c7420696e7374616e746c792028617320736f6f6e20617320746869732066756e6374696f6e20697320636f6d706c65746564207375636365737366756c6c79292e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0034232320436f6d706c6578697479182d204f283129e42d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e942d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec42d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e242d2d2d2d2d2d2d2d2d387365745f636f6e74726f6c6c6572040128636f6e74726f6c6c65720001504163636f756e7449644c6f6f6b75704f663c543e00082c8c2852652d297365742074686520636f6e74726f6c6c6572206f6620612073746173682e005101456666656374732077696c6c2062652066656c7420696e7374616e746c792028617320736f6f6e20617320746869732066756e6374696f6e20697320636f6d706c65746564207375636365737366756c6c79292e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c65722e0034232320436f6d706c6578697479104f283129e42d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e942d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec42d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e4c7365745f76616c696461746f725f636f756e7404010c6e6577e503010c75333200091890536574732074686520696465616c206e756d626572206f662076616c696461746f72732e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e0034232320436f6d706c6578697479104f28312960696e6372656173655f76616c696461746f725f636f756e740401286164646974696f6e616ce503010c753332000a1ce4496e6372656d656e74732074686520696465616c206e756d626572206f662076616c696461746f7273207570746f206d6178696d756d206f668c60456c656374696f6e50726f7669646572426173653a3a4d617857696e6e657273602e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e0034232320436f6d706c65786974799853616d65206173205b6053656c663a3a7365745f76616c696461746f725f636f756e74605d2e547363616c655f76616c696461746f725f636f756e74040118666163746f726105011c50657263656e74000b1c0d015363616c652075702074686520696465616c206e756d626572206f662076616c696461746f7273206279206120666163746f72207570746f206d6178696d756d206f668c60456c656374696f6e50726f7669646572426173653a3a4d617857696e6e657273602e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e0034232320436f6d706c65786974799853616d65206173205b6053656c663a3a7365745f76616c696461746f725f636f756e74605d2e34666f7263655f6e6f5f65726173000c34ac466f72636520746865726520746f206265206e6f206e6577206572617320696e646566696e6974656c792e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002423205761726e696e6700190154686520656c656374696f6e2070726f6365737320737461727473206d756c7469706c6520626c6f636b73206265666f72652074686520656e64206f6620746865206572612e3901546875732074686520656c656374696f6e2070726f63657373206d6179206265206f6e676f696e67207768656e20746869732069732063616c6c65642e20496e2074686973206361736520746865dc656c656374696f6e2077696c6c20636f6e74696e756520756e74696c20746865206e65787420657261206973207472696767657265642e0034232320436f6d706c65786974793c2d204e6f20617267756d656e74732e382d205765696768743a204f28312934666f7263655f6e65775f657261000d384901466f72636520746865726520746f2062652061206e6577206572612061742074686520656e64206f6620746865206e6578742073657373696f6e2e20416674657220746869732c2069742077696c6c2062659c726573657420746f206e6f726d616c20286e6f6e2d666f7263656429206265686176696f75722e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002423205761726e696e6700190154686520656c656374696f6e2070726f6365737320737461727473206d756c7469706c6520626c6f636b73206265666f72652074686520656e64206f6620746865206572612e4901496620746869732069732063616c6c6564206a757374206265666f72652061206e657720657261206973207472696767657265642c2074686520656c656374696f6e2070726f63657373206d6179206e6f748c6861766520656e6f75676820626c6f636b7320746f20676574206120726573756c742e0034232320436f6d706c65786974793c2d204e6f20617267756d656e74732e382d205765696768743a204f283129447365745f696e76756c6e657261626c6573040134696e76756c6e657261626c65735d0501445665633c543a3a4163636f756e7449643e000e0cc8536574207468652076616c696461746f72732077686f2063616e6e6f7420626520736c61736865642028696620616e79292e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e34666f7263655f756e7374616b650801147374617368000130543a3a4163636f756e7449640001486e756d5f736c617368696e675f7370616e7310010c753332000f0c0901466f72636520612063757272656e74207374616b657220746f206265636f6d6520636f6d706c6574656c7920756e7374616b65642c20696d6d6564696174656c792e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e50666f7263655f6e65775f6572615f616c776179730010240101466f72636520746865726520746f2062652061206e6577206572612061742074686520656e64206f662073657373696f6e7320696e646566696e6974656c792e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002423205761726e696e6700190154686520656c656374696f6e2070726f6365737320737461727473206d756c7469706c6520626c6f636b73206265666f72652074686520656e64206f6620746865206572612e4901496620746869732069732063616c6c6564206a757374206265666f72652061206e657720657261206973207472696767657265642c2074686520656c656374696f6e2070726f63657373206d6179206e6f748c6861766520656e6f75676820626c6f636b7320746f20676574206120726573756c742e5463616e63656c5f64656665727265645f736c61736808010c657261100120457261496e646578000134736c6173685f696e6469636573650501205665633c7533323e0011149443616e63656c20656e6163746d656e74206f66206120646566657272656420736c6173682e009843616e2062652063616c6c6564206279207468652060543a3a41646d696e4f726967696e602e000101506172616d65746572733a2065726120616e6420696e6469636573206f662074686520736c617368657320666f7220746861742065726120746f206b696c6c2e387061796f75745f7374616b65727308013c76616c696461746f725f7374617368000130543a3a4163636f756e74496400010c657261100120457261496e64657800122c0d01506179206f757420616c6c20746865207374616b65727320626568696e6420612073696e676c652076616c696461746f7220666f7220612073696e676c65206572612e0049012d206076616c696461746f725f73746173686020697320746865207374617368206163636f756e74206f66207468652076616c696461746f722e205468656972206e6f6d696e61746f72732c20757020746f2501202060543a3a4d61784e6f6d696e61746f72526577617264656450657256616c696461746f72602c2077696c6c20616c736f207265636569766520746865697220726577617264732e31012d206065726160206d617920626520616e7920657261206265747765656e20605b63757272656e745f657261202d20686973746f72795f64657074683b2063757272656e745f6572615d602e005501546865206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e20416e79206163636f756e742063616e2063616c6c20746869732066756e6374696f6e2c206576656e206966746974206973206e6f74206f6e65206f6620746865207374616b6572732e0034232320436f6d706c6578697479b82d204174206d6f7374204f284d61784e6f6d696e61746f72526577617264656450657256616c696461746f72292e187265626f6e6404011476616c7565ec013042616c616e63654f663c543e00131cdc5265626f6e64206120706f7274696f6e206f6620746865207374617368207363686564756c656420746f20626520756e6c6f636b65642e00d4546865206469737061746368206f726967696e206d757374206265207369676e65642062792074686520636f6e74726f6c6c65722e0034232320436f6d706c6578697479d02d2054696d6520636f6d706c65786974793a204f284c292c207768657265204c20697320756e6c6f636b696e67206368756e6b73882d20426f756e64656420627920604d6178556e6c6f636b696e674368756e6b73602e28726561705f73746173680801147374617368000130543a3a4163636f756e7449640001486e756d5f736c617368696e675f7370616e7310010c7533320014305d0152656d6f766520616c6c2064617461207374727563747572657320636f6e6365726e696e672061207374616b65722f7374617368206f6e636520697420697320617420612073746174652077686572652069742063616e0501626520636f6e736964657265642060647573746020696e20746865207374616b696e672073797374656d2e2054686520726571756972656d656e7473206172653a000501312e207468652060746f74616c5f62616c616e636560206f66207468652073746173682069732062656c6f77206578697374656e7469616c206465706f7369742e1101322e206f722c2074686520606c65646765722e746f74616c60206f66207468652073746173682069732062656c6f77206578697374656e7469616c206465706f7369742e00550154686520666f726d65722063616e2068617070656e20696e206361736573206c696b65206120736c6173683b20746865206c6174746572207768656e20612066756c6c7920756e626f6e646564206163636f756e7409016973207374696c6c20726563656976696e67207374616b696e67207265776172647320696e206052657761726444657374696e6174696f6e3a3a5374616b6564602e00310149742063616e2062652063616c6c656420627920616e796f6e652c206173206c6f6e672061732060737461736860206d65657473207468652061626f766520726571756972656d656e74732e00dc526566756e647320746865207472616e73616374696f6e20666565732075706f6e207375636365737366756c20657865637574696f6e2e106b69636b04010c77686f5d0501645665633c4163636f756e7449644c6f6f6b75704f663c543e3e00152ce052656d6f76652074686520676976656e206e6f6d696e6174696f6e732066726f6d207468652063616c6c696e672076616c696461746f722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e004d012d206077686f603a2041206c697374206f66206e6f6d696e61746f72207374617368206163636f756e74732077686f20617265206e6f6d696e6174696e6720746869732076616c696461746f72207768696368c0202073686f756c64206e6f206c6f6e676572206265206e6f6d696e6174696e6720746869732076616c696461746f722e0055014e6f74653a204d616b696e6720746869732063616c6c206f6e6c79206d616b65732073656e736520696620796f7520666972737420736574207468652076616c696461746f7220707265666572656e63657320746f78626c6f636b20616e792066757274686572206e6f6d696e6174696f6e732e4c7365745f7374616b696e675f636f6e666967731801486d696e5f6e6f6d696e61746f725f626f6e6469050158436f6e6669674f703c42616c616e63654f663c543e3e0001486d696e5f76616c696461746f725f626f6e6469050158436f6e6669674f703c42616c616e63654f663c543e3e00014c6d61785f6e6f6d696e61746f725f636f756e746d050134436f6e6669674f703c7533323e00014c6d61785f76616c696461746f725f636f756e746d050134436f6e6669674f703c7533323e00013c6368696c6c5f7468726573686f6c6471050144436f6e6669674f703c50657263656e743e0001386d696e5f636f6d6d697373696f6e75050144436f6e6669674f703c50657262696c6c3e001644ac5570646174652074686520766172696f7573207374616b696e6720636f6e66696775726174696f6e73202e0025012a20606d696e5f6e6f6d696e61746f725f626f6e64603a20546865206d696e696d756d2061637469766520626f6e64206e656564656420746f2062652061206e6f6d696e61746f722e25012a20606d696e5f76616c696461746f725f626f6e64603a20546865206d696e696d756d2061637469766520626f6e64206e656564656420746f20626520612076616c696461746f722e55012a20606d61785f6e6f6d696e61746f725f636f756e74603a20546865206d6178206e756d626572206f662075736572732077686f2063616e2062652061206e6f6d696e61746f72206174206f6e63652e205768656e98202073657420746f20604e6f6e65602c206e6f206c696d697420697320656e666f726365642e55012a20606d61785f76616c696461746f725f636f756e74603a20546865206d6178206e756d626572206f662075736572732077686f2063616e20626520612076616c696461746f72206174206f6e63652e205768656e98202073657420746f20604e6f6e65602c206e6f206c696d697420697320656e666f726365642e59012a20606368696c6c5f7468726573686f6c64603a2054686520726174696f206f6620606d61785f6e6f6d696e61746f725f636f756e7460206f7220606d61785f76616c696461746f725f636f756e74602077686963681901202073686f756c642062652066696c6c656420696e206f7264657220666f722074686520606368696c6c5f6f7468657260207472616e73616374696f6e20746f20776f726b2e61012a20606d696e5f636f6d6d697373696f6e603a20546865206d696e696d756d20616d6f756e74206f6620636f6d6d697373696f6e207468617420656163682076616c696461746f7273206d757374206d61696e7461696e2e550120205468697320697320636865636b6564206f6e6c792075706f6e2063616c6c696e67206076616c6964617465602e204578697374696e672076616c696461746f727320617265206e6f742061666665637465642e00c452756e74696d654f726967696e206d75737420626520526f6f7420746f2063616c6c20746869732066756e6374696f6e2e0035014e4f54453a204578697374696e67206e6f6d696e61746f727320616e642076616c696461746f72732077696c6c206e6f742062652061666665637465642062792074686973207570646174652e1101746f206b69636b2070656f706c6520756e64657220746865206e6577206c696d6974732c20606368696c6c5f6f74686572602073686f756c642062652063616c6c65642e2c6368696c6c5f6f74686572040128636f6e74726f6c6c6572000130543a3a4163636f756e74496400176841014465636c61726520612060636f6e74726f6c6c65726020746f2073746f702070617274696369706174696e672061732065697468657220612076616c696461746f72206f72206e6f6d696e61746f722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e004101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2c206275742063616e2062652063616c6c656420627920616e796f6e652e0059014966207468652063616c6c6572206973207468652073616d652061732074686520636f6e74726f6c6c6572206265696e672074617267657465642c207468656e206e6f206675727468657220636865636b7320617265d8656e666f726365642c20616e6420746869732066756e6374696f6e2062656861766573206a757374206c696b6520606368696c6c602e005d014966207468652063616c6c657220697320646966666572656e74207468616e2074686520636f6e74726f6c6c6572206265696e672074617267657465642c2074686520666f6c6c6f77696e6720636f6e646974696f6e73306d757374206265206d65743a001d012a2060636f6e74726f6c6c657260206d7573742062656c6f6e6720746f2061206e6f6d696e61746f722077686f20686173206265636f6d65206e6f6e2d6465636f6461626c652c000c4f723a003d012a204120604368696c6c5468726573686f6c6460206d7573742062652073657420616e6420636865636b656420776869636820646566696e657320686f7720636c6f736520746f20746865206d6178550120206e6f6d696e61746f7273206f722076616c696461746f7273207765206d757374207265616368206265666f72652075736572732063616e207374617274206368696c6c696e67206f6e652d616e6f746865722e59012a204120604d61784e6f6d696e61746f72436f756e746020616e6420604d617856616c696461746f72436f756e7460206d75737420626520736574207768696368206973207573656420746f2064657465726d696e65902020686f7720636c6f73652077652061726520746f20746865207468726573686f6c642e5d012a204120604d696e4e6f6d696e61746f72426f6e646020616e6420604d696e56616c696461746f72426f6e6460206d7573742062652073657420616e6420636865636b65642c2077686963682064657465726d696e65735101202069662074686973206973206120706572736f6e20746861742073686f756c64206265206368696c6c6564206265636175736520746865792068617665206e6f74206d657420746865207468726573686f6c64402020626f6e642072657175697265642e005501546869732063616e2062652068656c7066756c20696620626f6e6420726571756972656d656e74732061726520757064617465642c20616e64207765206e65656420746f2072656d6f7665206f6c642075736572739877686f20646f206e6f74207361746973667920746865736520726571756972656d656e74732e68666f7263655f6170706c795f6d696e5f636f6d6d697373696f6e04013c76616c696461746f725f7374617368000130543a3a4163636f756e74496400180c4501466f72636520612076616c696461746f7220746f2068617665206174206c6561737420746865206d696e696d756d20636f6d6d697373696f6e2e20546869732077696c6c206e6f74206166666563742061610176616c696461746f722077686f20616c726561647920686173206120636f6d6d697373696f6e2067726561746572207468616e206f7220657175616c20746f20746865206d696e696d756d2e20416e79206163636f756e743863616e2063616c6c20746869732e487365745f6d696e5f636f6d6d697373696f6e04010c6e6577ac011c50657262696c6c00191025015365747320746865206d696e696d756d20616d6f756e74206f6620636f6d6d697373696f6e207468617420656163682076616c696461746f7273206d757374206d61696e7461696e2e005901546869732063616c6c20686173206c6f7765722070726976696c65676520726571756972656d656e7473207468616e20607365745f7374616b696e675f636f6e6669676020616e642063616e2062652063616c6c6564cc6279207468652060543a3a41646d696e4f726967696e602e20526f6f742063616e20616c776179732063616c6c20746869732e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e5905083870616c6c65745f7374616b696e674452657761726444657374696e6174696f6e04244163636f756e74496401000114185374616b656400000014537461736800010028436f6e74726f6c6c65720002001c4163636f756e7404000001244163636f756e744964000300104e6f6e65000400005d05000002000061050c3473705f61726974686d65746963287065725f7468696e67731c50657263656e740000040008010875380000650500000210006905103870616c6c65745f7374616b696e671870616c6c65741870616c6c657420436f6e6669674f700404540118010c104e6f6f700000000c5365740400180104540001001852656d6f7665000200006d05103870616c6c65745f7374616b696e671870616c6c65741870616c6c657420436f6e6669674f700404540110010c104e6f6f700000000c5365740400100104540001001852656d6f7665000200007105103870616c6c65745f7374616b696e671870616c6c65741870616c6c657420436f6e6669674f70040454016105010c104e6f6f700000000c536574040061050104540001001852656d6f7665000200007505103870616c6c65745f7374616b696e671870616c6c65741870616c6c657420436f6e6669674f7004045401ac010c104e6f6f700000000c5365740400ac0104540001001852656d6f76650002000079050c3870616c6c65745f73657373696f6e1870616c6c65741043616c6c040454000108207365745f6b6579730801106b6579737d05011c543a3a4b65797300011470726f6f6630011c5665633c75383e000024e453657473207468652073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c657220746f20606b657973602e1d01416c6c6f777320616e206163636f756e7420746f20736574206974732073657373696f6e206b6579207072696f7220746f206265636f6d696e6720612076616c696461746f722ec05468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e00d0546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265207369676e65642e0034232320436f6d706c657869747959012d20604f283129602e2041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f662060543a3a4b6579733a3a6b65795f69647328296020776869636820697320202066697865642e2870757267655f6b657973000130c852656d6f76657320616e792073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c65722e00c05468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e005501546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265205369676e656420616e6420746865206163636f756e74206d757374206265206569746865722062655d01636f6e7665727469626c6520746f20612076616c696461746f72204944207573696e672074686520636861696e2773207479706963616c2061646472657373696e672073797374656d20287468697320757375616c6c7951016d65616e73206265696e67206120636f6e74726f6c6c6572206163636f756e7429206f72206469726563746c7920636f6e7665727469626c6520696e746f20612076616c696461746f722049442028776869636894757375616c6c79206d65616e73206265696e672061207374617368206163636f756e74292e0034232320436f6d706c65786974793d012d20604f2831296020696e206e756d626572206f66206b65792074797065732e2041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f6698202060543a3a4b6579733a3a6b65795f6964732829602077686963682069732066697865642e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e7d0508586a6f7973747265616d5f6e6f64655f72756e74696d652c53657373696f6e4b657973000010011c6772616e647061cc01d03c4772616e647061206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c6963000110626162654d0401c43c42616265206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c6963000124696d5f6f6e6c696e65d801d43c496d4f6e6c696e65206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c696300014c617574686f726974795f646973636f76657279810501fc3c417574686f72697479446973636f76657279206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c6963000081050c5873705f617574686f726974795f646973636f766572790c617070185075626c696300000400dc013c737232353531393a3a5075626c6963000085050c3870616c6c65745f6772616e6470611870616c6c65741043616c6c04045400010c4c7265706f72745f65717569766f636174696f6e08014865717569766f636174696f6e5f70726f6f66890501bc426f783c45717569766f636174696f6e50726f6f663c543a3a486173682c20543a3a426c6f636b4e756d6265723e3e00013c6b65795f6f776e65725f70726f6f6655040140543a3a4b65794f776e657250726f6f6600001009015265706f727420766f7465722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667920746865f465717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66f8616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63654477696c6c206265207265706f727465642e707265706f72745f65717569766f636174696f6e5f756e7369676e656408014865717569766f636174696f6e5f70726f6f66890501bc426f783c45717569766f636174696f6e50726f6f663c543a3a486173682c20543a3a426c6f636b4e756d6265723e3e00013c6b65795f6f776e65725f70726f6f6655040140543a3a4b65794f776e657250726f6f6600012409015265706f727420766f7465722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667920746865f465717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66f8616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63654477696c6c206265207265706f727465642e000d01546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c791501626c6f636b20617574686f72732077696c6c2063616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c2061732073756368150169662074686520626c6f636b20617574686f7220697320646566696e65642069742077696c6c20626520646566696e6564206173207468652065717569766f636174696f6e247265706f727465722e306e6f74655f7374616c6c656408011464656c6179100138543a3a426c6f636b4e756d62657200016c626573745f66696e616c697a65645f626c6f636b5f6e756d626572100138543a3a426c6f636b4e756d6265720002303d014e6f74652074686174207468652063757272656e7420617574686f7269747920736574206f6620746865204752414e4450412066696e616c6974792067616467657420686173207374616c6c65642e006101546869732077696c6c2074726967676572206120666f7263656420617574686f7269747920736574206368616e67652061742074686520626567696e6e696e67206f6620746865206e6578742073657373696f6e2c20746f6101626520656e6163746564206064656c61796020626c6f636b7320616674657220746861742e20546865206064656c6179602073686f756c64206265206869676820656e6f75676820746f20736166656c7920617373756d654901746861742074686520626c6f636b207369676e616c6c696e672074686520666f72636564206368616e67652077696c6c206e6f742062652072652d6f7267656420652e672e203130303020626c6f636b732e5d0154686520626c6f636b2070726f64756374696f6e207261746520287768696368206d617920626520736c6f77656420646f776e2062656361757365206f662066696e616c697479206c616767696e67292073686f756c64510162652074616b656e20696e746f206163636f756e74207768656e2063686f6f73696e6720746865206064656c6179602e20546865204752414e44504120766f74657273206261736564206f6e20746865206e65775501617574686f726974792077696c6c20737461727420766f74696e67206f6e20746f70206f662060626573745f66696e616c697a65645f626c6f636b5f6e756d6265726020666f72206e65772066696e616c697a65644d01626c6f636b732e2060626573745f66696e616c697a65645f626c6f636b5f6e756d626572602073686f756c64206265207468652068696768657374206f6620746865206c61746573742066696e616c697a6564c4626c6f636b206f6620616c6c2076616c696461746f7273206f6620746865206e657720617574686f72697479207365742e00584f6e6c792063616c6c61626c6520627920726f6f742e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e8905084c73705f66696e616c6974795f6772616e6470614445717569766f636174696f6e50726f6f66080448012c044e0110000801187365745f6964280114536574496400013065717569766f636174696f6e8d05014845717569766f636174696f6e3c482c204e3e00008d05084c73705f66696e616c6974795f6772616e6470613045717569766f636174696f6e080448012c044e011001081c507265766f7465040091050139016772616e6470613a3a45717569766f636174696f6e3c417574686f7269747949642c206772616e6470613a3a507265766f74653c482c204e3e2c0a417574686f726974795369676e61747572653e00000024507265636f6d6d69740400a9050141016772616e6470613a3a45717569766f636174696f6e3c417574686f7269747949642c206772616e6470613a3a507265636f6d6d69743c482c204e3e2c0a417574686f726974795369676e61747572653e000100009105084066696e616c6974795f6772616e6470613045717569766f636174696f6e0c08496401cc0456019505045301990500100130726f756e645f6e756d62657228010c7536340001206964656e74697479cc010849640001146669727374a505011828562c2053290001187365636f6e64a505011828562c20532900009505084066696e616c6974795f6772616e6470611c507265766f7465080448012c044e01100008012c7461726765745f686173682c0104480001347461726765745f6e756d6265721001044e000099050c4c73705f66696e616c6974795f6772616e6470610c617070245369676e6174757265000004009d050148656432353531393a3a5369676e617475726500009d050c1c73705f636f72651c65643235353139245369676e617475726500000400a10501205b75383b2036345d0000a105000003400000000800a505000004089505990500a905084066696e616c6974795f6772616e6470613045717569766f636174696f6e0c08496401cc045601ad05045301990500100130726f756e645f6e756d62657228010c7536340001206964656e74697479cc010849640001146669727374b105011828562c2053290001187365636f6e64b105011828562c2053290000ad05084066696e616c6974795f6772616e64706124507265636f6d6d6974080448012c044e01100008012c7461726765745f686173682c0104480001347461726765745f6e756d6265721001044e0000b10500000408ad05990500b5050c4070616c6c65745f696d5f6f6e6c696e651870616c6c65741043616c6c04045400010424686561727462656174080124686561727462656174b90501644865617274626561743c543a3a426c6f636b4e756d6265723e0001247369676e6174757265cd0501bc3c543a3a417574686f7269747949642061732052756e74696d654170705075626c69633e3a3a5369676e617475726500001438232320436f6d706c65786974793a59012d20604f284b202b20452960207768657265204b206973206c656e677468206f6620604b6579736020286865617274626561742e76616c696461746f72735f6c656e2920616e642045206973206c656e677468206f66b02020606865617274626561742e6e6574776f726b5f73746174652e65787465726e616c5f61646472657373608820202d20604f284b29603a206465636f64696e67206f66206c656e67746820604b60ac20202d20604f284529603a206465636f64696e672f656e636f64696e67206f66206c656e67746820604560042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632eb905084070616c6c65745f696d5f6f6e6c696e6524486561727462656174042c426c6f636b4e756d626572011000140130626c6f636b5f6e756d62657210012c426c6f636b4e756d6265720001346e6574776f726b5f7374617465bd0501484f70617175654e6574776f726b537461746500013473657373696f6e5f696e64657810013053657373696f6e496e64657800013c617574686f726974795f696e64657810012441757468496e64657800013876616c696461746f72735f6c656e10010c7533320000bd050c1c73705f636f7265206f6666636861696e484f70617175654e6574776f726b5374617465000008011c706565725f6964c10501304f706171756550656572496400014865787465726e616c5f616464726573736573c50501505665633c4f70617175654d756c7469616464723e0000c105081c73705f636f7265304f70617175655065657249640000040030011c5665633c75383e0000c505000002c90500c9050c1c73705f636f7265206f6666636861696e3c4f70617175654d756c7469616464720000040030011c5665633c75383e0000cd05104070616c6c65745f696d5f6f6e6c696e651c737232353531392c6170705f73723235353139245369676e617475726500000400d1050148737232353531393a3a5369676e61747572650000d1050c1c73705f636f72651c73723235353139245369676e617475726500000400a10501205b75383b2036345d0000d5050c4070616c6c65745f626167735f6c6973741870616c6c65741043616c6c0804540004490001081472656261670401286469736c6f63617465640001504163636f756e7449644c6f6f6b75704f663c543e00002859014465636c617265207468617420736f6d6520606469736c6f636174656460206163636f756e74206861732c207468726f7567682072657761726473206f722070656e616c746965732c2073756666696369656e746c7951016368616e676564206974732073636f726520746861742069742073686f756c642070726f7065726c792066616c6c20696e746f206120646966666572656e7420626167207468616e206974732063757272656e74106f6e652e001d01416e796f6e652063616e2063616c6c20746869732066756e6374696f6e2061626f757420616e7920706f74656e7469616c6c79206469736c6f6361746564206163636f756e742e00490157696c6c20616c7761797320757064617465207468652073746f7265642073636f7265206f6620606469736c6f63617465646020746f2074686520636f72726563742073636f72652c206261736564206f6e406053636f726550726f7669646572602e00d4496620606469736c6f63617465646020646f6573206e6f74206578697374732c2069742072657475726e7320616e206572726f722e3c7075745f696e5f66726f6e745f6f6604011c6c6967687465720001504163636f756e7449644c6f6f6b75704f663c543e000120d04d6f7665207468652063616c6c65722773204964206469726563746c7920696e2066726f6e74206f6620606c696768746572602e005901546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642063616e206f6e6c792062652063616c6c656420627920746865204964206f66a0746865206163636f756e7420676f696e6720696e2066726f6e74206f6620606c696768746572602e00344f6e6c7920776f726b73206966942d20626f7468206e6f646573206172652077697468696e207468652073616d65206261672cd02d20616e6420606f726967696e602068617320612067726561746572206053636f726560207468616e20606c696768746572602e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ed9050c3870616c6c65745f76657374696e671870616c6c65741043616c6c0404540001141076657374000024b8556e6c6f636b20616e79207665737465642066756e6473206f66207468652073656e646572206163636f756e742e005d01546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652066756e6473207374696c6c646c6f636b656420756e64657220746869732070616c6c65742e00d0456d69747320656974686572206056657374696e67436f6d706c6574656460206f72206056657374696e6755706461746564602e0034232320436f6d706c6578697479242d20604f283129602e28766573745f6f746865720401187461726765740001504163636f756e7449644c6f6f6b75704f663c543e00012cb8556e6c6f636b20616e79207665737465642066756e6473206f662061206074617267657460206163636f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0051012d2060746172676574603a20546865206163636f756e742077686f7365207665737465642066756e64732073686f756c6420626520756e6c6f636b65642e204d75737420686176652066756e6473207374696c6c646c6f636b656420756e64657220746869732070616c6c65742e00d0456d69747320656974686572206056657374696e67436f6d706c6574656460206f72206056657374696e6755706461746564602e0034232320436f6d706c6578697479242d20604f283129602e3c7665737465645f7472616e736665720801187461726765740001504163636f756e7449644c6f6f6b75704f663c543e0001207363686564756c65dd0501a456657374696e67496e666f3c42616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e00023464437265617465206120766573746564207472616e736665722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00cc2d2060746172676574603a20546865206163636f756e7420726563656976696e6720746865207665737465642066756e64732ef02d20607363686564756c65603a205468652076657374696e67207363686564756c6520617474616368656420746f20746865207472616e736665722e005c456d697473206056657374696e6743726561746564602e00fc4e4f54453a20546869732077696c6c20756e6c6f636b20616c6c207363686564756c6573207468726f756768207468652063757272656e7420626c6f636b2e0034232320436f6d706c6578697479242d20604f283129602e54666f7263655f7665737465645f7472616e736665720c0118736f757263650001504163636f756e7449644c6f6f6b75704f663c543e0001187461726765740001504163636f756e7449644c6f6f6b75704f663c543e0001207363686564756c65dd0501a456657374696e67496e666f3c42616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e00033860466f726365206120766573746564207472616e736665722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e00e82d2060736f75726365603a20546865206163636f756e742077686f73652066756e64732073686f756c64206265207472616e736665727265642e11012d2060746172676574603a20546865206163636f756e7420746861742073686f756c64206265207472616e7366657272656420746865207665737465642066756e64732ef02d20607363686564756c65603a205468652076657374696e67207363686564756c6520617474616368656420746f20746865207472616e736665722e005c456d697473206056657374696e6743726561746564602e00fc4e4f54453a20546869732077696c6c20756e6c6f636b20616c6c207363686564756c6573207468726f756768207468652063757272656e7420626c6f636b2e0034232320436f6d706c6578697479242d20604f283129602e3c6d657267655f7363686564756c657308013c7363686564756c65315f696e64657810010c75333200013c7363686564756c65325f696e64657810010c7533320004545d014d657267652074776f2076657374696e67207363686564756c657320746f6765746865722c206372656174696e672061206e65772076657374696e67207363686564756c65207468617420756e6c6f636b73206f7665725501746865206869676865737420706f737369626c6520737461727420616e6420656e6420626c6f636b732e20496620626f7468207363686564756c6573206861766520616c7265616479207374617274656420746865590163757272656e7420626c6f636b2077696c6c206265207573656420617320746865207363686564756c652073746172743b207769746820746865206361766561742074686174206966206f6e65207363686564756c655d0169732066696e6973686564206279207468652063757272656e7420626c6f636b2c20746865206f746865722077696c6c206265207472656174656420617320746865206e6577206d6572676564207363686564756c652c2c756e6d6f6469666965642e00f84e4f54453a20496620607363686564756c65315f696e646578203d3d207363686564756c65325f696e6465786020746869732069732061206e6f2d6f702e41014e4f54453a20546869732077696c6c20756e6c6f636b20616c6c207363686564756c6573207468726f756768207468652063757272656e7420626c6f636b207072696f7220746f206d657267696e672e61014e4f54453a20496620626f7468207363686564756c6573206861766520656e646564206279207468652063757272656e7420626c6f636b2c206e6f206e6577207363686564756c652077696c6c206265206372656174656464616e6420626f74682077696c6c2062652072656d6f7665642e006c4d6572676564207363686564756c6520617474726962757465733a35012d20607374617274696e675f626c6f636b603a20604d4158287363686564756c65312e7374617274696e675f626c6f636b2c207363686564756c6564322e7374617274696e675f626c6f636b2c48202063757272656e745f626c6f636b29602e21012d2060656e64696e675f626c6f636b603a20604d4158287363686564756c65312e656e64696e675f626c6f636b2c207363686564756c65322e656e64696e675f626c6f636b29602e59012d20606c6f636b6564603a20607363686564756c65312e6c6f636b65645f61742863757272656e745f626c6f636b29202b207363686564756c65322e6c6f636b65645f61742863757272656e745f626c6f636b29602e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00e82d20607363686564756c65315f696e646578603a20696e646578206f6620746865206669727374207363686564756c6520746f206d657267652eec2d20607363686564756c65325f696e646578603a20696e646578206f6620746865207365636f6e64207363686564756c6520746f206d657267652e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632edd050c3870616c6c65745f76657374696e673076657374696e675f696e666f2c56657374696e67496e666f081c42616c616e636501182c426c6f636b4e756d6265720110000c01186c6f636b656418011c42616c616e63650001247065725f626c6f636b18011c42616c616e63650001387374617274696e675f626c6f636b10012c426c6f636b4e756d6265720000e1050c3c70616c6c65745f6d756c74697369671870616c6c65741043616c6c0404540001105061735f6d756c74695f7468726573686f6c645f310801446f746865725f7369676e61746f726965735d0501445665633c543a3a4163636f756e7449643e00011063616c6c3904017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0000305101496d6d6564696174656c792064697370617463682061206d756c74692d7369676e61747572652063616c6c207573696e6720612073696e676c6520617070726f76616c2066726f6d207468652063616c6c65722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003d012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f206172652070617274206f662074686501016d756c74692d7369676e61747572652c2062757420646f206e6f7420706172746963697061746520696e2074686520617070726f76616c2070726f636573732e882d206063616c6c603a205468652063616c6c20746f2062652065786563757465642e00b8526573756c74206973206571756976616c656e7420746f20746865206469737061746368656420726573756c742e0034232320436f6d706c657869747919014f285a202b204329207768657265205a20697320746865206c656e677468206f66207468652063616c6c20616e6420432069747320657865637574696f6e207765696768742e2061735f6d756c74691401247468726573686f6c642904010c7531360001446f746865725f7369676e61746f726965735d0501445665633c543a3a4163636f756e7449643e00013c6d617962655f74696d65706f696e74e50501844f7074696f6e3c54696d65706f696e743c543a3a426c6f636b4e756d6265723e3e00011063616c6c3904017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0001286d61785f77656967687420011857656967687400019c5501526567697374657220617070726f76616c20666f72206120646973706174636820746f206265206d6164652066726f6d20612064657465726d696e697374696320636f6d706f73697465206163636f756e74206966f8617070726f766564206279206120746f74616c206f6620607468726573686f6c64202d203160206f6620606f746865725f7369676e61746f72696573602e00b049662074686572652061726520656e6f7567682c207468656e206469737061746368207468652063616c6c2e002d015061796d656e743a20604465706f73697442617365602077696c6c20626520726573657276656420696620746869732069732074686520666972737420617070726f76616c2c20706c75733d01607468726573686f6c64602074696d657320604465706f736974466163746f72602e2049742069732072657475726e6564206f6e636520746869732064697370617463682068617070656e73206f723469732063616e63656c6c65642e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0055012d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e41012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f766520746869736c64697370617463682e204d6179206e6f7420626520656d7074792e59012d20606d617962655f74696d65706f696e74603a20496620746869732069732074686520666972737420617070726f76616c2c207468656e2074686973206d75737420626520604e6f6e65602e20496620697420697351016e6f742074686520666972737420617070726f76616c2c207468656e206974206d7573742062652060536f6d65602c2077697468207468652074696d65706f696e742028626c6f636b206e756d62657220616e64d47472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c207472616e73616374696f6e2e882d206063616c6c603a205468652063616c6c20746f2062652065786563757465642e001d014e4f54453a20556e6c6573732074686973206973207468652066696e616c20617070726f76616c2c20796f752077696c6c2067656e6572616c6c792077616e7420746f20757365190160617070726f76655f61735f6d756c74696020696e73746561642c2073696e6365206974206f6e6c7920726571756972657320612068617368206f66207468652063616c6c2e005901526573756c74206973206571756976616c656e7420746f20746865206469737061746368656420726573756c7420696620607468726573686f6c64602069732065786163746c79206031602e204f746865727769736555016f6e20737563636573732c20726573756c7420697320604f6b6020616e642074686520726573756c742066726f6d2074686520696e746572696f722063616c6c2c206966206974207761732065786563757465642cdc6d617920626520666f756e6420696e20746865206465706f736974656420604d756c7469736967457865637574656460206576656e742e0034232320436f6d706c6578697479502d20604f2853202b205a202b2043616c6c29602ecc2d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e3d012d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f66450120207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2e21012d204f6e652063616c6c20656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285a296020776865726520605a602069732074782d6c656e2ebc2d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602ed42d20557020746f206f6e652062696e6172792073656172636820616e6420696e736572742028604f286c6f6753202b20532960292ef82d20492f4f3a2031207265616420604f285329602c20757020746f2031206d757461746520604f285329602e20557020746f206f6e652072656d6f76652e302d204f6e65206576656e742e6c2d2054686520776569676874206f6620746865206063616c6c602e4d012d2053746f726167653a20696e7365727473206f6e65206974656d2c2076616c75652073697a6520626f756e64656420627920604d61785369676e61746f72696573602c20776974682061206465706f7369741901202074616b656e20666f7220697473206c69666574696d65206f6620604465706f73697442617365202b207468726573686f6c64202a204465706f736974466163746f72602e40617070726f76655f61735f6d756c74691401247468726573686f6c642904010c7531360001446f746865725f7369676e61746f726965735d0501445665633c543a3a4163636f756e7449643e00013c6d617962655f74696d65706f696e74e50501844f7074696f6e3c54696d65706f696e743c543a3a426c6f636b4e756d6265723e3e00012463616c6c5f686173680401205b75383b2033325d0001286d61785f7765696768742001185765696768740002785501526567697374657220617070726f76616c20666f72206120646973706174636820746f206265206d6164652066726f6d20612064657465726d696e697374696320636f6d706f73697465206163636f756e74206966f8617070726f766564206279206120746f74616c206f6620607468726573686f6c64202d203160206f6620606f746865725f7369676e61746f72696573602e002d015061796d656e743a20604465706f73697442617365602077696c6c20626520726573657276656420696620746869732069732074686520666972737420617070726f76616c2c20706c75733d01607468726573686f6c64602074696d657320604465706f736974466163746f72602e2049742069732072657475726e6564206f6e636520746869732064697370617463682068617070656e73206f723469732063616e63656c6c65642e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0055012d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e41012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f766520746869736c64697370617463682e204d6179206e6f7420626520656d7074792e59012d20606d617962655f74696d65706f696e74603a20496620746869732069732074686520666972737420617070726f76616c2c207468656e2074686973206d75737420626520604e6f6e65602e20496620697420697351016e6f742074686520666972737420617070726f76616c2c207468656e206974206d7573742062652060536f6d65602c2077697468207468652074696d65706f696e742028626c6f636b206e756d62657220616e64d47472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c207472616e73616374696f6e2ecc2d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f2062652065786563757465642e0035014e4f54453a2049662074686973206973207468652066696e616c20617070726f76616c2c20796f752077696c6c2077616e7420746f20757365206061735f6d756c74696020696e73746561642e0034232320436f6d706c6578697479242d20604f285329602ecc2d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e3d012d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f66450120207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2ebc2d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602ed42d20557020746f206f6e652062696e6172792073656172636820616e6420696e736572742028604f286c6f6753202b20532960292ef82d20492f4f3a2031207265616420604f285329602c20757020746f2031206d757461746520604f285329602e20557020746f206f6e652072656d6f76652e302d204f6e65206576656e742e4d012d2053746f726167653a20696e7365727473206f6e65206974656d2c2076616c75652073697a6520626f756e64656420627920604d61785369676e61746f72696573602c20776974682061206465706f7369741901202074616b656e20666f7220697473206c69666574696d65206f6620604465706f73697442617365202b207468726573686f6c64202a204465706f736974466163746f72602e3c63616e63656c5f61735f6d756c74691001247468726573686f6c642904010c7531360001446f746865725f7369676e61746f726965735d0501445665633c543a3a4163636f756e7449643e00012474696d65706f696e740d01016454696d65706f696e743c543a3a426c6f636b4e756d6265723e00012463616c6c5f686173680401205b75383b2033325d000354550143616e63656c2061207072652d6578697374696e672c206f6e2d676f696e67206d756c7469736967207472616e73616374696f6e2e20416e79206465706f7369742072657365727665642070726576696f75736c79c4666f722074686973206f7065726174696f6e2077696c6c20626520756e7265736572766564206f6e20737563636573732e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0055012d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e41012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f766520746869736c64697370617463682e204d6179206e6f7420626520656d7074792e5d012d206074696d65706f696e74603a205468652074696d65706f696e742028626c6f636b206e756d62657220616e64207472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c787472616e73616374696f6e20666f7220746869732064697370617463682ecc2d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f2062652065786563757465642e0034232320436f6d706c6578697479242d20604f285329602ecc2d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e3d012d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f66450120207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2ebc2d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602e302d204f6e65206576656e742e842d20492f4f3a2031207265616420604f285329602c206f6e652072656d6f76652e702d2053746f726167653a2072656d6f766573206f6e65206974656d2e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ee50504184f7074696f6e040454010d010108104e6f6e6500000010536f6d6504000d010000010000e905083870616c6c65745f636f756e63696c1043616c6c04045400013048616e6e6f756e63655f63616e6469646163791001346d656d626572736869705f696428012c543a3a4d656d62657249640001487374616b696e675f6163636f756e745f6964000130543a3a4163636f756e7449640001447265776172645f6163636f756e745f6964000130543a3a4163636f756e7449640001147374616b6518012842616c616e63653c543e0000244c5375627363726962652063616e646964617465002823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5c72656c656173655f63616e6469646163795f7374616b650401346d656d626572736869705f696428012c543a3a4d656d6265724964000124c452656c656173652063616e646964616379207374616b652074686174206973206e6f206c6f6e676572206e65656465642e002823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e4877697468647261775f63616e6469646163790401346d656d626572736869705f696428012c543a3a4d656d6265724964000224bc57697468647261772063616e64696461637920616e642072656c656173652063616e646964616379207374616b652e002823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e487365745f63616e6469646163795f6e6f74650801346d656d626572736869705f696428012c543a3a4d656d62657249640001106e6f746530011c5665633c75383e00032879015365742073686f7274206465736372697074696f6e20666f7220746865207573657227732063616e6469646163792e2043616e2062652063616c6c656420616e7974696d6520647572696e67207573657227732063616e6469646163792e002823203c7765696768743e002423232077656967687438604f20284e29602077686572653a98604e60206973207468652073697a65206f6620606e6f74656020696e206b696c6f6279746573142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e287365745f62756467657404011c62616c616e636518012842616c616e63653c543e000424605365747320746865206275646765742062616c616e63652e002823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e48706c616e5f6275646765745f726566696c6c04012c6e6578745f726566696c6c100138543a3a426c6f636b4e756d62657200052470506c616e20746865206e6578742062756467657420726566696c6c2e002823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e507365745f6275646765745f696e6372656d656e740401406275646765745f696e6372656d656e7418012842616c616e63653c543e0006247453657473207468652062756467657420726566696c6c20616d6f756e74002823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e507365745f636f756e63696c6f725f726577617264040140636f756e63696c6f725f72657761726418012842616c616e63653c543e0007248c536574732074686520636f756e63696c6f72207265776172642070657220626c6f636b002823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3c66756e64696e675f7265717565737404014066756e64696e675f7265717565737473550301dc5665633c46756e64696e6752657175657374506172616d65746572733c42616c616e63653c543e2c20543a3a4163636f756e7449643e3e000828b85472616e73666572732066756e64732066726f6d20636f756e63696c2062756467657420746f206163636f756e74002823203c7765696768743e002423232077656967687438604f20284629602077686572653a9c60466020697320746865206c656e677468206f66206066756e64696e675f726571756573747360142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e4c66756e645f636f756e63696c5f6275646765740c01246d656d6265725f696428012c4d656d62657249643c543e000118616d6f756e7418012842616c616e63653c543e000124726174696f6e616c6530011c5665633c75383e0009209046756e642074686520636f756e63696c206275646765742062792061206d656d6265722e203c7765696768743e0024232320576569676874c4604f202831296020446f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e40636f756e63696c6f725f72656d61726b080130636f756e63696c6f725f696428012c543a3a4d656d626572496400010c6d736730011c5665633c75383e000a2480436f756e63696c6f72206d616b657320612072656d61726b206d657373616765002823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e4063616e6469646174655f72656d61726b08013063616e6469646174655f696428012c543a3a4d656d626572496400010c6d736730011c5665633c75383e000b248043616e646964617465206d616b657320612072656d61726b206d657373616765002823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652eed05084470616c6c65745f7265666572656e64756d1043616c6c08045400044900011010766f7465080128636f6d6d69746d656e742c011c543a3a486173680001147374616b6518013042616c616e63654f663c543e00002494436173742061207365616c656420766f746520696e20746865207265666572656e64756d2e002823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c72657665616c5f766f746508011073616c7430011c5665633c75383e000138766f74655f6f7074696f6e5f69642801d03c5420617320636f6d6d6f6e3a3a6d656d626572736869703a3a4d656d6265727368697054797065733e3a3a4d656d626572496400012c9c52657665616c2061207365616c656420766f746520696e20746865207265666572656e64756d2e002823203c7765696768743e002423232057656967687438604f20285729602077686572653a0d012d2060576020697320746865206e756d626572206f662060696e7465726d6564696174655f77696e6e657273602073746f72656420696e207468652063757272656e7468202020206053746167653a3a3c542c20493e3a3a676574282960142d2044423ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e4872656c656173655f766f74655f7374616b650002205c52656c656173652061206c6f636b6564207374616b652e2823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e446f70745f6f75745f6f665f766f74696e67000324cc5065726d616e656e746c79206f7074206f7574206f6620766f74696e672066726f6d206120676976656e206163636f756e742e002823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652ef105084470616c6c65745f6d656d626572736869701043616c6c040454000144386275795f6d656d62657273686970040118706172616d732d0101c84275794d656d62657273686970506172616d65746572733c543a3a4163636f756e7449642c20543a3a4d656d62657249643e00002c7c4e6f6e2d6d656d626572732063616e20627579206d656d626572736869702e00203c7765696768743e002423232057656967687448604f202857202b204d29602077686572653a942d20605760206973207468652068616e646c652073697a6520696e206b696c6f62797465739c2d20604d6020697320746865206d657461646174612073697a6520696e206b696c6f6279746573142d2044423a242020202d204f2831292c23203c2f7765696768743e387570646174655f70726f66696c650c01246d656d6265725f696428012c543a3a4d656d626572496400011868616e646c653101013c4f7074696f6e3c5665633c75383e3e0001206d657461646174613101013c4f7074696f6e3c5665633c75383e3e0001300d01557064617465206d656d626572277320616c6c206f7220736f6d65206f66206e616d652c2068616e646c652c2061766174617220616e642061626f757420746578742e7c4e6f20656666656374206966206e6f206368616e676564206669656c64732e00203c7765696768743e002423232057656967687448604f202857202b204d29602077686572653a942d20605760206973207468652068616e646c652073697a6520696e206b696c6f62797465739c2d20604d6020697320746865206d657461646174612073697a6520696e206b696c6f6279746573142d2044423a242020202d204f2831292c23203c2f7765696768743e3c7570646174655f6163636f756e74730c01246d656d6265725f696428012c543a3a4d656d62657249640001406e65775f726f6f745f6163636f756e749401504f7074696f6e3c543a3a4163636f756e7449643e0001586e65775f636f6e74726f6c6c65725f6163636f756e749401504f7074696f6e3c543a3a4163636f756e7449643e00022c550155706461746573206d656d62657220726f6f74206f7220636f6e74726f6c6c6572206163636f756e74732e204e6f2065666665637420696620626f7468206e6577206163636f756e74732061726520656d7074792e00203c7765696768743e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6c7570646174655f70726f66696c655f766572696669636174696f6e0c0124776f726b65725f6964280128543a3a4163746f7249640001407461726765745f6d656d6265725f696428012c543a3a4d656d626572496400012c69735f7665726966696564980110626f6f6c000324450155706461746573206d656d6265722070726f66696c6520766572696669636174696f6e207374617475732e20526571756972657320776f726b696e672067726f7570206d656d626572206f726967696e2e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e407365745f726566657272616c5f63757404013470657263656e745f76616c75650801087538000424110155706461746573206d656d6265727368697020726566657272616c206375742070657263656e742076616c75652e20526571756972657320726f6f74206f726967696e2e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e407472616e736665725f696e76697465730c0140736f757263655f6d656d6265725f696428012c543a3a4d656d62657249640001407461726765745f6d656d6265725f696428012c543a3a4d656d62657249640001446e756d6265725f6f665f696e766974657310010c753332000524b45472616e736665727320696e76697465732066726f6d206f6e65206d656d62657220746f20616e6f746865722e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e34696e766974655f6d656d626572040118706172616d73390101d4496e766974654d656d62657273686970506172616d65746572733c543a3a4163636f756e7449642c20543a3a4d656d62657249643e00062c50496e766974652061206e6577206d656d6265722e00203c7765696768743e002423232057656967687448604f202857202b204d29602077686572653a942d20605760206973207468652068616e646c652073697a6520696e206b696c6f62797465739c2d20604d6020697320746865206d657461646174612073697a6520696e206b696c6f6279746573142d2044423a242020202d204f2831292c23203c2f7765696768743e3c676966745f6d656d62657273686970040118706172616d73410101d0476966744d656d62657273686970506172616d65746572733c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e00070c1d01476966742061206d656d62657273686970207573696e67206f776e2066756e64732e2047696674657220646f6573206e6f74206e65656420746f2062652061206d656d6265722e5d0143616e206f7074696e616c6c79206170706c792061206c6f636b206f6e206120706f7274696f6e206f66207468652066756e6473207472616e7366657272656420746f20726f6f7420616e6420636f6e74726f6c6c6572b86163636f756e74732e2047696674657220616c736f207061797320746865206d656d62657273686970206665652e507365745f6d656d626572736869705f70726963650401246e65775f707269636518013042616c616e63654f663c543e000824bc55706461746573206d656d626572736869702070726963652e20526571756972657320726f6f74206f726967696e2e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6c7365745f6c65616465725f696e7669746174696f6e5f71756f7461040140696e7669746174696f6e5f71756f746110010c753332000924d855706461746573206c656164657220696e7669746174696f6e2071756f74612e20526571756972657320726f6f74206f726967696e2e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e787365745f696e697469616c5f696e7669746174696f6e5f62616c616e636504014c6e65775f696e697469616c5f62616c616e636518013042616c616e63654f663c543e000a2439015570646174657320696e697469616c20696e7669746174696f6e2062616c616e636520666f72206120696e7669746564206d656d6265722e20526571756972657320726f6f74206f726967696e2e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e707365745f696e697469616c5f696e7669746174696f6e5f636f756e740401506e65775f696e7669746174696f6e5f636f756e7410010c753332000b2411015570646174657320696e697469616c20696e7669746174696f6e20636f756e7420666f722061206d656d6265722e20526571756972657320726f6f74206f726967696e2e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e746164645f7374616b696e675f6163636f756e745f63616e6469646174650401246d656d6265725f696428012c543a3a4d656d6265724964000c28ac416464207374616b696e67206163636f756e742063616e64696461746520666f722061206d656d6265722eb8546865206d656d62657273686970206d75737420626520636f6e6669726d6564206265666f72652075736167652e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5872656d6f76655f7374616b696e675f6163636f756e740401246d656d6265725f696428012c543a3a4d656d6265724964000d249052656d6f7665207374616b696e67206163636f756e7420666f722061206d656d6265722e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5c636f6e6669726d5f7374616b696e675f6163636f756e740801246d656d6265725f696428012c543a3a4d656d62657249640001487374616b696e675f6163636f756e745f6964000130543a3a4163636f756e744964000e24bc436f6e6669726d207374616b696e67206163636f756e742063616e64696461746520666f722061206d656d6265722e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e346d656d6265725f72656d61726b0c01246d656d6265725f696428012c543a3a4d656d626572496400010c6d736730011c5665633c75383e00011c7061796d656e74490101884f7074696f6e3c28543a3a4163636f756e7449642c20543a3a42616c616e6365293e000f24544d656d626572206d616b657320612072656d61726b00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e346372656174655f6d656d626572040118706172616d733d0101904372656174654d656d626572506172616d65746572733c543a3a4163636f756e7449643e00102c804372656174652061206d656d6265722070726f66696c6520617320726f6f742e00203c7765696768743e002423232057656967687448604f202849202b204a29602077686572653a942d20604960206973207468652068616e646c652073697a6520696e206b696c6f62797465739c2d20604a6020697320746865206d657461646174612073697a6520696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652ef505083070616c6c65745f666f72756d1043616c6c0404540001409c7570646174655f63617465676f72795f6d656d626572736869705f6f665f6d6f64657261746f720c01306d6f64657261746f725f69642801384d6f64657261746f7249643c543e00012c63617465676f72795f6964280134543a3a43617465676f727949640001246e65775f76616c7565980110626f6f6c0000240901456e61626c652061206d6f64657261746f722063616e206d6f64657261746520612063617465676f727920616e6420697473207375622063617465676f726965732e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3c6372656174655f63617465676f72790c0148706172656e745f63617465676f72795f6964350101544f7074696f6e3c543a3a43617465676f727949643e0001147469746c6530011c5665633c75383e00012c6465736372697074696f6e30011c5665633c75383e0001304c4164642061206e65772063617465676f72792e00203c7765696768743e002423232057656967687458604f202857202b2056202b205829602077686572653a6c2d20605760206973207468652063617465676f7279206465707468d42d20605660206973207468652073697a65206f66207468652063617465676f7279207469746c6520696e206b696c6f62797465732eec2d20605860206973207468652073697a65206f66207468652063617465676f7279206465736372697074696f6e20696e206b696c6f62797465732e142d2044423a242020202d204f2857292c23203c2f7765696768743e7c7570646174655f63617465676f72795f617263686976616c5f7374617475730c01146163746f725501014850726976696c656765644163746f723c543e00012c63617465676f72795f6964280134543a3a43617465676f7279496400014c6e65775f617263686976616c5f737461747573980110626f6f6c0002285855706461746520617263686976616c2073746174757300203c7765696768743e002423232057656967687438604f20285729602077686572653a6c2d20605760206973207468652063617465676f7279206465707468142d2044423a242020202d204f2857292c23203c2f7765696768743e547570646174655f63617465676f72795f7469746c650c01146163746f725501014850726976696c656765644163746f723c543e00012c63617465676f72795f6964280134543a3a43617465676f727949640001147469746c6530011c5665633c75383e00032c545570646174652063617465676f7279207469746c6500203c7765696768743e002423232057656967687448604f202857202b205629602077686572653a6c2d20605760206973207468652063617465676f7279206465707468d42d20605660206973207468652073697a65206f66207468652063617465676f7279207469746c6520696e206b696c6f62797465732e142d2044423a242020202d204f2857292c23203c2f7765696768743e6c7570646174655f63617465676f72795f6465736372697074696f6e0c01146163746f725501014850726976696c656765644163746f723c543e00012c63617465676f72795f6964280134543a3a43617465676f7279496400012c6465736372697074696f6e30011c5665633c75383e00042c6c5570646174652063617465676f7279206465736372697074696f6e00203c7765696768743e002423232057656967687438604f20285729602077686572653a6c2d20605760206973207468652063617465676f7279206465707468ec2d20605660206973207468652073697a65206f66207468652063617465676f7279206465736372697074696f6e20696e206b696c6f62797465732e142d2044423a242020202d204f2857292c23203c2f7765696768743e3c64656c6574655f63617465676f72790801146163746f725501014850726976696c656765644163746f723c543e00012c63617465676f72795f6964280134543a3a43617465676f727949640005283c44656c6574652063617465676f727900203c7765696768743e002423232057656967687438604f20285729602077686572653a6c2d20605760206973207468652063617465676f7279206465707468142d2044423a242020202d204f2857292c23203c2f7765696768743e346372656174655f746872656164100134666f72756d5f757365725f6964280138466f72756d5573657249643c543e00012c63617465676f72795f6964280134543a3a43617465676f727949640001206d6574616461746130011c5665633c75383e0001107465787430011c5665633c75383e00063074437265617465206e65772074687265616420696e2063617465676f727900203c7765696768743e002423232057656967687458604f202857202b2056202b205829602077686572653a6c2d20605760206973207468652063617465676f7279206465707468cc2d20605660206973207468652073697a65206f662074686520746872656164207469746c6520696e206b696c6f62797465732ec82d20605860206973207468652073697a65206f662074686520746872656164207465787420696e206b696c6f62797465732e142d2044423a242020202d204f2857292c23203c2f7765696768743e50656469745f7468726561645f6d65746164617461100134666f72756d5f757365725f6964280138466f72756d5573657249643c543e00012c63617465676f72795f6964280134543a3a43617465676f727949640001247468726561645f696428012c543a3a54687265616449640001306e65775f6d6574616461746130011c5665633c75383e00072c504564697420746872656164206d6574616461746100203c7765696768743e002423232057656967687448604f202857202b205629602077686572653a6c2d20605760206973207468652063617465676f7279206465707468d82d20605660206973207468652073697a65206f662074686520746872656164206d6574616461746120696e206b696c6f62797465732e142d2044423a242020202d204f2857292c23203c2f7765696768743e3464656c6574655f746872656164100134666f72756d5f757365725f6964280138466f72756d5573657249643c543e00012c63617465676f72795f6964280134543a3a43617465676f727949640001247468726561645f696428012c543a3a546872656164496400011068696465980110626f6f6c0008283444656c6574652074687265616400203c7765696768743e002423232057656967687438604f20285729602077686572653a6c2d20605760206973207468652063617465676f7279206465707468142d2044423a242020202d204f2857292c23203c2f7765696768743e5c6d6f76655f7468726561645f746f5f63617465676f72791001146163746f725501014850726976696c656765644163746f723c543e00012c63617465676f72795f6964280134543a3a43617465676f727949640001247468726561645f696428012c543a3a546872656164496400013c6e65775f63617465676f72795f6964280134543a3a43617465676f727949640009287c4d6f76652074687265616420746f20616e6f746865722063617465676f727900203c7765696768743e002423232057656967687438604f20285729602077686572653a6c2d20605760206973207468652063617465676f7279206465707468142d2044423a242020202d204f2857292c23203c2f7765696768743e3c6d6f6465726174655f7468726561641001146163746f725501014850726976696c656765644163746f723c543e00012c63617465676f72795f6964280134543a3a43617465676f727949640001247468726561645f696428012c543a3a5468726561644964000124726174696f6e616c6530011c5665633c75383e000a303c4d6f6465726174652074687265616400203c7765696768743e002423232057656967687458604f202857202b2056202b205829602077686572653a702d20605760206973207468652063617465676f72792064657074682c902d2060566020697320746865206e756d626572206f662074687265616420706f7374732cbc2d20605860206973207468652073697a65206f662074686520726174696f6e616c6520696e206b696c6f6279746573142d2044423a342020202d204f2857202b2056292c23203c2f7765696768743e206164645f706f7374140134666f72756d5f757365725f6964280138466f72756d5573657249643c543e00012c63617465676f72795f6964280134543a3a43617465676f727949640001247468726561645f696428012c543a3a54687265616449640001107465787430011c5665633c75383e0001206564697461626c65980110626f6f6c000b2c2041646420706f737400203c7765696768743e002423232057656967687448604f202857202b205629602077686572653a702d20605760206973207468652063617465676f72792064657074682ca82d20605660206973207468652073697a65206f6620746865207465787420696e206b696c6f6279746573142d2044423a242020202d204f2857292c23203c2f7765696768743e38656469745f706f73745f74657874140134666f72756d5f757365725f6964280138466f72756d5573657249643c543e00012c63617465676f72795f6964280134543a3a43617465676f727949640001247468726561645f696428012c543a3a546872656164496400011c706f73745f6964280124543a3a506f737449640001206e65775f7465787430011c5665633c75383e000c2c384564697420706f7374207465787400203c7765696768743e002423232057656967687448604f202857202b205629602077686572653a702d20605760206973207468652063617465676f72792064657074682cb82d20605660206973207468652073697a65206f6620746865206e6577207465787420696e206b696c6f6279746573142d2044423a242020202d204f2857292c23203c2f7765696768743e346d6f6465726174655f706f73741401146163746f725501014850726976696c656765644163746f723c543e00012c63617465676f72795f6964280134543a3a43617465676f727949640001247468726561645f696428012c543a3a546872656164496400011c706f73745f6964280124543a3a506f73744964000124726174696f6e616c6530011c5665633c75383e000d2c344d6f64657261746520706f737400203c7765696768743e002423232057656967687448604f202857202b205629602077686572653a702d20605760206973207468652063617465676f72792064657074682cbc2d20605660206973207468652073697a65206f662074686520726174696f6e616c6520696e206b696c6f6279746573142d2044423a242020202d204f2857292c23203c2f7765696768743e3064656c6574655f706f7374730c0134666f72756d5f757365725f6964280138466f72756d5573657249643c543e000114706f7374735d01018442547265654d61703c457874656e646564506f737449643c543e2c20626f6f6c3e000124726174696f6e616c6530011c5665633c75383e000e346444656c65746520706f73742066726f6d2073746f726167652eec596f75206e65656420746f2070726f76696465206120766563746f72206f6620706f73747320746f2064656c65746520696e2074686520666f726db428543a3a43617465676f727949642c20543a3a54687265616449642c20543a3a506f737449642c20626f6f6c292501776865726520746865206c61737420626f6f6c206973207768657468657220796f752077616e7420746f20686964652069742061706172742066726f6d2064656c6574696e67206974002423232057656967687458604f202857202b2056202b205029602077686572653a702d20605760206973207468652063617465676f72792064657074682cbc2d20605660206973207468652073697a65206f662074686520726174696f6e616c6520696e206b696c6f6279746573982d2060506020697320746865206e756d626572206f6620706f73747320746f2064656c657465142d2044423a342020202d204f2857202b2050292c23203c2f7765696768743e507365745f737469636b6965645f746872656164730c01146163746f725501014850726976696c656765644163746f723c543e00012c63617465676f72795f6964280134543a3a43617465676f72794964000130737469636b6965645f6964736901015442547265655365743c543a3a54687265616449643e000f2c8453657420737469636b696564207468726561647320666f722063617465676f727900203c7765696768743e002423232057656967687448604f202857202b205629602077686572653a702d20605760206973207468652063617465676f72792064657074682c9c2d2060566020697320746865206c656e677468206f662074686520737469636b6965645f696473142d2044423a342020202d204f2857202b2056292c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652ef905084c70616c6c65745f636f6e737469747574696f6e1043616c6c04045400010448616d656e645f636f6e737469747574696f6e040144636f6e737469747574696f6e5f7465787430011c5665633c75383e000018e453657473207468652063757272656e7420636f6e737469747574696f6e20686173682e20526571756972657320726f6f74206f726967696e2e2823203c7765696768743e11012d20436f6d706c65786974793a20604f28432960207768657265204320697320746865206c656e677468206f662074686520636f6e737469747574696f6e20746578742e342d2044622072656164733a20307c2d204462207772697465733a20312028636f6e7374616e742076616c7565292c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652efd05083470616c6c65745f626f756e74791043616c6c04045400013c346372656174655f626f756e7479080118706172616d737501016c426f756e74794372656174696f6e506172616d65746572733c543e0001206d6574616461746130011c5665633c75383e000028490143726561746573206120626f756e74792e204d657461646174612073746f72656420696e20746865207472616e73616374696f6e206c6f67206275742064697363617264656420616674657220746861742e203c7765696768743e002423232057656967687438604f20285729602077686572653aa42d2060576020697320746865205f6d657461646174612073697a6520696e206b696c6f62797465732eb02d20604d6020697320636c6f73656420636f6e7472616374206d656d626572206c697374206c656e6774682e142d2044423a842020202d204f284d2920284f283129206f6e206f70656e20636f6e7472616374292c23203c2f7765696768743e2c66756e645f626f756e74790c011866756e64657279010160426f756e74794163746f723c4d656d62657249643c543e3e000124626f756e74795f696428012c543a3a426f756e74794964000118616d6f756e7418013042616c616e63654f663c543e0001206050726f766964657320626f756e74792066756e64696e672e2823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e407465726d696e6174655f626f756e7479040124626f756e74795f696428012c543a3a426f756e74794964000224c05465726d696e61746573206120626f756e747920696e2066756e64696e672c2066756e64696e6720657870697265642c7c776f726b7375626d697373696f6e2c206a756467696e6720706572696f642e2823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e347377697463685f6f7261636c650801286e65775f6f7261636c6579010160426f756e74794163746f723c4d656d62657249643c543e3e000124626f756e74795f696428012c543a3a426f756e74794964000324904f7261636c652073776974636865732068696d73656c6620746f2061206e6577206f6e652823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e004077697468647261775f66756e64696e6708011866756e64657279010160426f756e74794163746f723c4d656d62657249643c543e3e000124626f756e74795f696428012c543a3a426f756e74794964000420c4576974686472617720626f756e74792066756e64696e672062792061206d656d626572206f72206120636f756e63696c2e2823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e4c616e6e6f756e63655f776f726b5f656e7472791001246d656d6265725f696428012c4d656d62657249643c543e000124626f756e74795f696428012c543a3a426f756e747949640001487374616b696e675f6163636f756e745f6964000130543a3a4163636f756e744964000140776f726b5f6465736372697074696f6e30011c5665633c75383e000528b0416e6e6f756e636520776f726b20656e74727920666f722061207375636365737366756c20626f756e74792e2823203c7765696768743e002423232077656967687448604f202857202b204d29602077686572653ac02d206057602069732074686520776f726b5f6465736372697074696f6e2073697a6520696e206b696c6f62797465732eb02d20604d6020697320636c6f73656420636f6e7472616374206d656d626572206c697374206c656e6774682e142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c7375626d69745f776f726b1001246d656d6265725f696428012c4d656d62657249643c543e000124626f756e74795f696428012c543a3a426f756e74794964000120656e7472795f6964280128543a3a456e7472794964000124776f726b5f6461746130011c5665633c75383e000624645375626d697420776f726b20666f72206120626f756e74792e2823203c7765696768743e00242323207765696768741c604f20284e2960a42d20604e602069732074686520776f726b5f646174612073697a6520696e206b696c6f62797465732c142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e48656e645f776f726b696e675f706572696f64040124626f756e74795f696428012c543a3a426f756e7479496400072068656e6420626f756e747920776f726b696e6720706572696f642e2823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e587375626d69745f6f7261636c655f6a7564676d656e740c0124626f756e74795f696428012c543a3a426f756e747949640001206a7564676d656e74850101a04f7261636c654a7564676d656e743c543a3a456e74727949642c2042616c616e63654f663c543e3e000124726174696f6e616c6530011c5665633c75383e00083819015375626d69747320616e206f7261636c65206a7564676d656e7420666f72206120626f756e74792c20736c617368696e672074686520656e74726965732072656a65637465642d01627920616e206172626974726172792070657263656e7461676520616e6420726577617264696e67207468652077696e6e65727320627920616e2061726269747261727920616d6f756e7498286e6f742073757270617373696e672074686520746f74616c2066756e6420616d6f756e74292823203c7765696768743e00242323207765696768744c604f20284a202b204b202b2057202b20522960942d20604a6020697320726174696f6e616c652073697a6520696e206b696c6f62797465732c61012d20604b60206973207468652073756d206f6620616c6c20616374696f6e5f6a757374696669636174696f6e2073697a65732028696e206b696c6f62797465732920696e73696465204f7261636c654a7564676d656e742cac2d20605760206973206e756d626572206f662077696e6e6572206a7564676d656e7420656e74726965732cb42d20605260206973206e756d626572206f662072656a6563746564206a7564676d656e7420656e74726965732c142d2064623a3c2020202d20604f2857202b205229602c23203c2f7765696768743e5877697468647261775f656e7472616e745f7374616b650c01246d656d6265725f696428012c4d656d62657249643c543e000124626f756e74795f696428012c543a3a426f756e74794964000120656e7472795f6964280128543a3a456e7472794964000928a4556e6c6f636b7320746865207374616b652072656c6174656420746f206120776f726b20656e747279a901416674657220746865206f7261636c65206d616b657320746865206a7564676d656e74206f722074686520636f756e63696c207465726d696e617465732074686520626f756e74792062792063616c6c696e67207465726d696e6174655f626f756e7479282e2e2e292c51016561636820776f726b65722077686f736520656e74727920686173206e6f74206265656e206a75646765642c2063616e20756e6c6f636b2074686520746f74616c697479206f66207468656972207374616b652e2823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5877697468647261775f6f7261636c655f726577617264040124626f756e74795f696428012c543a3a426f756e74794964000a2890576974687261777320746865206f7261636c652072657761726420746f206f7261636c651101496620626f756e7479206973207375636365737366756c6c792c204661696c6564206f722043616e63656c6c6564206f7261636c65206d7573742063616c6c2074686973a065787472696e73696320746f20776974686472617720746865206f7261636c65207265776172642c2823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e48636f6e7472696275746f725f72656d61726b0c012c636f6e7472696275746f7279010160426f756e74794163746f723c4d656d62657249643c543e3e000124626f756e74795f696428012c543a3a426f756e7479496400010c6d736730011c5665633c75383e000b2880426f756e747920436f6e7472696275746f72206d61646520612072656d61726b002823203c7765696768743e00242323207765696768741c604f20284e2960782d20604e60206973206d73672073697a6520696e206b696c6f6279746573142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e346f7261636c655f72656d61726b0c01186f7261636c6579010160426f756e74794163746f723c4d656d62657249643c543e3e000124626f756e74795f696428012c543a3a426f756e7479496400010c6d736730011c5665633c75383e000c286c426f756e7479204f7261636c65206d61646520612072656d61726b002823203c7765696768743e00242323207765696768741c604f20284e2960782d20604e60206973206d73672073697a6520696e206b696c6f6279746573142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e38656e7472616e745f72656d61726b100128656e7472616e745f696428012c4d656d62657249643c543e000124626f756e74795f696428012c543a3a426f756e74794964000120656e7472795f6964280128543a3a456e747279496400010c6d736730011c5665633c75383e000d288c426f756e747920456e7472616e7420576f726b6572206d61646520612072656d61726b002823203c7765696768743e00242323207765696768741c604f20284e2960782d20604e60206973206d73672073697a6520696e206b696c6f6279746573142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3863726561746f725f72656d61726b0c011c63726561746f7279010160426f756e74794163746f723c4d656d62657249643c543e3e000124626f756e74795f696428012c543a3a426f756e7479496400010c6d736730011c5665633c75383e000e286c426f756e7479204f7261636c65206d61646520612072656d61726b002823203c7765696768743e00242323207765696768741c604f20284e2960782d20604e60206973206d73672073697a6520696e206b696c6f6279746573142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e0106083870616c6c65745f7574696c6974791043616c6c0404540001105c657865637574655f7369676e616c5f70726f706f73616c0401187369676e616c30011c5665633c75383e00002871015369676e616c2070726f706f73616c2065787472696e7369632e2053686f756c6420626520757365642061732063616c6c61626c65206f626a65637420746f207061737320746f207468652060656e67696e6560206d6f64756c652e00203c7765696768743e002423232057656967687438604f20285329602077686572653ab02d20605360206973207468652073697a65206f6620746865207369676e616c20696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e80657865637574655f72756e74696d655f757067726164655f70726f706f73616c0401107761736d30011c5665633c75383e0001288c52756e74696d6520757067726164652070726f706f73616c2065787472696e7369632e050153686f756c6420626520757365642061732063616c6c61626c65206f626a65637420746f207061737320746f207468652060656e67696e6560206d6f64756c652e203c7765696768743e002423232057656967687438604f20284329602077686572653a742d2060436020697320746865206c656e677468206f6620607761736d603d01486f77657665722c207765207472656174207468697320617320612066756c6c20626c6f636b20617320606672616d655f73797374656d3a3a4d6f64756c653a3a7365745f636f64656020646f65732c23203c2f7765696768743ebd01235b776569676874203d2028543a3a426c6f636b576569676874733a3a67657428292e676574284469737061746368436c6173733a3a4f7065726174696f6e616c292e626173655f65787472696e7369632c204469737061746368436c6173733a3a4f7065726174696f6e616c295d6c7570646174655f776f726b696e675f67726f75705f6275646765740c0134776f726b696e675f67726f757099010130576f726b696e6747726f7570000118616d6f756e7418013042616c616e63654f663c543e00013062616c616e63655f6b696e649d01012c42616c616e63654b696e640002206c55706461746520776f726b696e672067726f757020627564676574203c7765696768743e0024232320576569676874c4604f202831296020446f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e4c6275726e5f6163636f756e745f746f6b656e73040118616d6f756e7418013042616c616e63654f663c543e000320784275726e7320746f6b656e20666f722063616c6c6572206163636f756e74203c7765696768743e0024232320576569676874c4604f202831296020446f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e0506083870616c6c65745f636f6e74656e741043616c6c04045400010101506372656174655f63757261746f725f67726f757008012469735f616374697665980110626f6f6c0001507065726d697373696f6e735f62795f6c6576656c5502017c4d6f6465726174696f6e5065726d697373696f6e7342794c6576656c3c543e000028a0416464206e65772063757261746f722067726f757020746f2072756e74696d652073746f7261676500203c7765696768743e002423232057656967687438604f20284129602077686572653af02d2060416020697320746865206e756d626572206f6620656e747269657320696e20607065726d697373696f6e735f62795f6c6576656c60206d6170142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e807570646174655f63757261746f725f67726f75705f7065726d697373696f6e7308014063757261746f725f67726f75705f6964280144543a3a43757261746f7247726f757049640001507065726d697373696f6e735f62795f6c6576656c5502017c4d6f6465726174696f6e5065726d697373696f6e7342794c6576656c3c543e000128ac557064617465206578697374696e672063757261746f722067726f75702773207065726d697373696f6e7300203c7765696768743e002423232057656967687438604f20284129602077686572653af02d2060416020697320746865206e756d626572206f6620656e747269657320696e20607065726d697373696f6e735f62795f6c6576656c60206d6170142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e607365745f63757261746f725f67726f75705f73746174757308014063757261746f725f67726f75705f6964280144543a3a43757261746f7247726f7570496400012469735f616374697665980110626f6f6c0002241d01536574206069735f616374697665602073746174757320666f722063757261746f722067726f757020756e64657220676976656e206063757261746f725f67726f75705f69646000203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e506164645f63757261746f725f746f5f67726f75700c014063757261746f725f67726f75705f6964280144543a3a43757261746f7247726f7570496400012863757261746f725f6964280130543a3a43757261746f72496400012c7065726d697373696f6e73bd01015c4368616e6e656c4167656e745065726d697373696f6e73000324ec4164642063757261746f7220746f2063757261746f722067726f757020756e64657220676976656e206063757261746f725f67726f75705f69646000203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6472656d6f76655f63757261746f725f66726f6d5f67726f757008014063757261746f725f67726f75705f6964280144543a3a43757261746f7247726f7570496400012863757261746f725f6964280130543a3a43757261746f724964000424a452656d6f76652063757261746f722066726f6d206120676976656e2063757261746f722067726f757000203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e386372656174655f6368616e6e656c0801346368616e6e656c5f6f776e6572e50101b04368616e6e656c4f776e65723c543a3a4d656d62657249642c20543a3a43757261746f7247726f757049643e000118706172616d73150201704368616e6e656c4372656174696f6e506172616d65746572733c543e000530203c7765696768743e002423232057656967687478604f202841202b2042202b2043202b2044202b204529602077686572653ae02d2060416020697320746865206e756d626572206f6620656e747269657320696e2060706172616d732e636f6c6c61626f7261746f727360e02d2060426020697320746865206e756d626572206f66206974656d7320696e2060706172616d732e73746f726167655f6275636b65747360f42d2060436020697320746865206e756d626572206f66206974656d7320696e2060706172616d732e646973747269627574696f6e5f6275636b6574736011012d2060446020697320746865206e756d626572206f66206974656d7320696e2060706172616d732e6173736574732e6f626a6563745f6372656174696f6e5f6c69737460c02d20604560206973207468652073697a65206f66202060706172616d732e6d6574616020696e206b696c6f6279746573142d2044423ae02020202d20604f2841202b2042202b2043202b20442960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e387570646174655f6368616e6e656c0c01146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c4964000118706172616d73410201684368616e6e656c557064617465506172616d65746572733c543e000630203c7765696768743e002423232057656967687478604f202841202b2042202b2043202b2044202b204529602077686572653ae02d2060416020697320746865206e756d626572206f6620656e747269657320696e2060706172616d732e636f6c6c61626f7261746f72736071012d2060426020697320746865206e756d626572206f66206974656d7320696e2060706172616d732e6173736574735f746f5f75706c6f61642e6f626a6563745f6372656174696f6e5f6c69737460202869662070726f766964656429e42d2060436020697320746865206e756d626572206f66206974656d7320696e2060706172616d732e6173736574735f746f5f72656d6f766560cc2d20604460206973207468652073697a65206f662060706172616d732e6e65775f6d6574616020696e206b696c6f6279746573ec2d206045602069732060706172616d732e73746f726167655f6275636b6574735f6e756d5f7769746e65737360202869662070726f766964656429142d2044423ae02020202d20604f2841202b2042202b2043202b20452960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e787570646174655f6368616e6e656c5f70726976696c6567655f6c6576656c0801286368616e6e656c5f6964280130543a3a4368616e6e656c496400014c6e65775f70726976696c6567655f6c6576656c080160543a3a4368616e6e656c50726976696c6567654c6576656c000724150145787472696e73696320666f72207570646174696e67206368616e6e656c2070726976696c656765206c6576656c20287265717569726573206c656164206163636573732900203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743ea07365745f6368616e6e656c5f7061757365645f66656174757265735f61735f6d6f64657261746f721001146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c496400014c6e65775f7061757365645f6665617475726573d901018042547265655365743c5061757361626c654368616e6e656c466561747572653e000124726174696f6e616c6530011c5665633c75383e000828c845787472696e73696320666f722070617573696e672f72652d656e61626c696e67206368616e6e656c20666561747572657300203c7765696768743e002423232057656967687438604f20284129602077686572653ab42d20604160206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3864656c6574655f6368616e6e656c1001146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c496400014c6368616e6e656c5f6261675f7769746e657373090601444368616e6e656c4261675769746e6573730001546e756d5f6f626a656374735f746f5f64656c65746528010c753634000928203c7765696768743e002423232057656967687458604f202841202b2042202b204329602077686572653a802d2060416020697320606e756d5f6f626a656374735f746f5f64656c65746560c82d2060426020697320606368616e6e656c5f6261675f7769746e6573732e73746f726167655f6275636b6574735f6e756d60dc2d2060436020697320606368616e6e656c5f6261675f7769746e6573732e646973747269627574696f6e5f6275636b6574735f6e756d60142d2044423ad02020202d20604f2841202b2042202b20432960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e8864656c6574655f6368616e6e656c5f6173736574735f61735f6d6f64657261746f721401146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c49640001406173736574735f746f5f72656d6f76656901016442547265655365743c446174614f626a65637449643c543e3e00016c73746f726167655f6275636b6574735f6e756d5f7769746e65737310010c753332000124726174696f6e616c6530011c5665633c75383e000a28203c7765696768743e002423232057656967687458604f202841202b2042202b204329602077686572653aa42d2060416020697320746865206c656e677468206f6620606173736574735f746f5f72656d6f766560cc2d20604260206973207468652076616c7565206f66206073746f726167655f6275636b6574735f6e756d5f7769746e65737360b42d20604360206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423ac02020202d20604f2841202b20422960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e6c64656c6574655f6368616e6e656c5f61735f6d6f64657261746f721401146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c496400014c6368616e6e656c5f6261675f7769746e657373090601444368616e6e656c4261675769746e6573730001546e756d5f6f626a656374735f746f5f64656c65746528010c753634000124726174696f6e616c6530011c5665633c75383e000b008c7365745f6368616e6e656c5f7669736962696c6974795f61735f6d6f64657261746f721001146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c496400012469735f68696464656e980110626f6f6c000124726174696f6e616c6530011c5665633c75383e000c28350145787472696e73696320666f722073657474696e67206368616e6e656c207669736962696c69747920737461747573202868696464656e2f76697369626c6529206279206d6f64657261746f7200203c7765696768743e002423232057656967687438604f20284129602077686572653ab42d20604160206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e306372656174655f766964656f0c01146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c4964000118706172616d7349020168566964656f4372656174696f6e506172616d65746572733c543e000d2c203c7765696768743e002423232057656967687468604f202841202b2042202b2043202b204429602077686572653a11012d2060416020697320746865206e756d626572206f66206974656d7320696e2060706172616d732e6173736574732e6f626a6563745f6372656174696f6e5f6c69737460b42d206042602069732060706172616d732e73746f726167655f6275636b6574735f6e756d5f7769746e6573736035012d2060436020697320746865206c656e677468206f66206f70656e2061756374696f6e202f20656e676c6973682061756374696f6e2077686974656c697374202869662070726f766964656429f42d20604460206973207468652073697a65206f662060706172616d732e6d6574616020696e206b696c6f6279746573202869662070726f766964656429142d2044423ad02020202d20604f2841202b2042202b20432960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e307570646174655f766964656f0c01146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f4964000118706172616d7351020160566964656f557064617465506172616d65746572733c543e000e30203c7765696768743e002423232057656967687478604f202841202b2042202b2043202b2044202b204529602077686572653a25012d2060416020697320706172616d732e6173736574735f746f5f75706c6f61642e6f626a6563745f6372656174696f6e5f6c6973742e6c656e2829202869662070726f766964656429982d2060426020697320706172616d732e6173736574735f746f5f72656d6f76652e6c656e2829ec2d206043602069732060706172616d732e73746f726167655f6275636b6574735f6e756d5f7769746e65737360202869662070726f76696465642935012d2060446020697320746865206c656e677468206f66206f70656e2061756374696f6e202f20656e676c6973682061756374696f6e2077686974656c697374202869662070726f76696465642905012d20604560206973207468652073697a65206f662060706172616d732e6e65775f6d6574616020696e206b696c6f6279746573202869662070726f766964656429142d2044423ae02020202d20604f2841202b2042202b2043202b20442960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e3064656c6574655f766964656f1001146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f49640001546e756d5f6f626a656374735f746f5f64656c65746528010c75363400016c73746f726167655f6275636b6574735f6e756d5f7769746e6573730102012c4f7074696f6e3c7533323e000f24203c7765696768743e002423232057656967687448604f202841202b204229602077686572653a782d20604160206973206e756d5f6f626a656374735f746f5f64656c657465ec2d206042602069732060706172616d732e73746f726167655f6275636b6574735f6e756d5f7769746e65737360202869662070726f766964656429142d2044423ac02020202d20604f2841202b20422960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e8064656c6574655f766964656f5f6173736574735f61735f6d6f64657261746f721401146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f496400016c73746f726167655f6275636b6574735f6e756d5f7769746e65737310010c7533320001406173736574735f746f5f72656d6f76656901016442547265655365743c446174614f626a65637449643c543e3e000124726174696f6e616c6530011c5665633c75383e001028203c7765696768743e002423232057656967687458604f202841202b2042202b204329602077686572653aa42d2060416020697320746865206c656e677468206f6620606173736574735f746f5f72656d6f766560cc2d20604260206973207468652076616c7565206f66206073746f726167655f6275636b6574735f6e756d5f7769746e65737360b42d20604360206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423ac02020202d20604f2841202b20422960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e6464656c6574655f766964656f5f61735f6d6f64657261746f721401146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f496400016c73746f726167655f6275636b6574735f6e756d5f7769746e6573730102012c4f7074696f6e3c7533323e0001546e756d5f6f626a656374735f746f5f64656c65746528010c753634000124726174696f6e616c6530011c5665633c75383e001128203c7765696768743e002423232057656967687458604f202841202b2042202b204329602077686572653ab42d20604160206973207468652076616c7565206f6620606e756d5f6f626a656374735f746f5f64656c65746560cc2d20604260206973207468652076616c7565206f66206073746f726167655f6275636b6574735f6e756d5f7769746e65737360b42d20604360206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423ac02020202d20604f2841202b20422960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e847365745f766964656f5f7669736962696c6974795f61735f6d6f64657261746f721001146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f496400012469735f68696464656e980110626f6f6c000124726174696f6e616c6530011c5665633c75383e0012282d0145787472696e73696320666f7220766964656f207669736962696c69747920737461747573202868696464656e2f76697369626c65292073657474696e67206279206d6f64657261746f7200203c7765696768743e002423232057656967687438604f20284129602077686572653ab42d20604160206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e587570646174655f6368616e6e656c5f7061796f757473080118706172616d73710201845570646174654368616e6e656c5061796f757473506172616d65746572733c543e00014075706c6f616465725f6163636f756e74000130543a3a4163636f756e74496400132458557064617465206368616e6e656c207061796f75747300203c7765696768743e002423232057656967687438604f20283129602077686572653a142d2044423a182d204f2831292c23203c2f7765696768743e50636c61696d5f6368616e6e656c5f7265776172640c01146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e00011470726f6f660d0601505665633c50726f6f66456c656d656e743c543e3e0001106974656d1906013850756c6c5061796d656e743c543e001428a0436c61696d2072657761726420696e204a4f592066726f6d206368616e6e656c206163636f756e7400203c7765696768743e002423232057656967687438604f20284829602077686572653ac82d2060486020697320746865206c656e676874206f66207468652070726f7669646564206d65726b6c65206070726f6f6660142d2044423a242020202d204f2831292c23203c2f7765696768743e7477697468647261775f66726f6d5f6368616e6e656c5f62616c616e63650c01146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c4964000118616d6f756e7418013042616c616e63654f663c543e001524845769746864726177204a4f592066726f6d206368616e6e656c206163636f756e7400203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e7c7570646174655f6368616e6e656c5f73746174655f626c6f61745f626f6e640401706e65775f6368616e6e656c5f73746174655f626c6f61745f626f6e6418013042616c616e63654f663c543e0016289c55706461746573206368616e6e656c20737461746520626c6f617420626f6e642076616c75652e7c4f6e6c79206c6561642063616e2075706c6f616420746869732076616c756500203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e747570646174655f766964656f5f73746174655f626c6f61745f626f6e640401686e65775f766964656f5f73746174655f626c6f61745f626f6e6418013042616c616e63654f663c543e001728945570646174657320766964656f20737461746520626c6f617420626f6e642076616c75652e7c4f6e6c79206c6561642063616e2075706c6f616420746869732076616c756500203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e84636c61696d5f616e645f77697468647261775f6368616e6e656c5f7265776172640c01146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e00011470726f6f660d0601505665633c50726f6f66456c656d656e743c543e3e0001106974656d1906013850756c6c5061796d656e743c543e001828d4436c61696d20616e642077697468647261772072657761726420696e204a4f592066726f6d206368616e6e656c206163636f756e7400203c7765696768743e002423232057656967687438604f20284829602077686572653ac82d2060486020697320746865206c656e676874206f66207468652070726f7669646564206d65726b6c65206070726f6f6660142d2044423a242020202d204f2831292c23203c2f7765696768743e2469737375655f6e66740c01146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f4964000118706172616d73090201604e667449737375616e6365506172616d65746572733c543e001930244973737565204e465400203c7765696768743e00242323205765696768742c604f202857202b20422960142d2044423a242020202d204f2857291877686572653a19012020202d2057203a206d656d6265722077686974656c697374206c656e67746820696e2063617365206e667420696e697469616c207374617475732069732061756374696f6ec02020202d2042203a2073697a65206f66206d6574616461746120706172616d6574657220696e206b696c6f62797465732c23203c2f7765696768743e2c64657374726f795f6e66740801146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f4964001a242c44657374726f79204e465400203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e4873746172745f6f70656e5f61756374696f6e0c01206f776e65725f6964a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f496400013861756374696f6e5f706172616d73050201504f70656e41756374696f6e506172616d733c543e001b2470537461727420766964656f206e6674206f70656e2061756374696f6e203c7765696768743e002423232057656967687438604f20285729602077686572653a742d2057203a206d656d6265722077686974656c697374206c656e677468142d2044423a242020202d204f2857292c23203c2f7765696768743e5473746172745f656e676c6973685f61756374696f6e0c01206f776e65725f6964a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f496400013861756374696f6e5f706172616d73fd01015c456e676c69736841756374696f6e506172616d733c543e001c247c537461727420766964656f206e667420656e676c6973682061756374696f6e203c7765696768743e002423232057656967687438604f20285729602077686572653a882d2057203a2077686974656c697374206d656d626572206c697374206c656e677468142d2044423a242020202d204f2857292c23203c2f7765696768743e5863616e63656c5f656e676c6973685f61756374696f6e0801206f776e65725f6964a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f4964001d208043616e63656c20766964656f206e667420656e676c6973682061756374696f6e203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e4c63616e63656c5f6f70656e5f61756374696f6e0801206f776e65725f6964a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f4964001e207443616e63656c20766964656f206e6674206f70656e2061756374696f6e203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e3063616e63656c5f6f666665720801206f776e65725f6964a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f4964001f244043616e63656c204e6674206f6666657200203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e3863616e63656c5f6275795f6e6f770801206f776e65725f6964a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f49640020245443616e63656c204e66742073656c6c206f7264657200203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f283129243c2f7765696768743e507570646174655f6275795f6e6f775f70726963650c01206f776e65725f6964a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f49640001246e65775f707269636518013042616c616e63654f663c543e0021246055706461746520427579206e6f77206e667420707269636500203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e546d616b655f6f70656e5f61756374696f6e5f6269640c01387061727469636970616e745f696428012c543a3a4d656d6265724964000120766964656f5f6964280128543a3a566964656f49640001286269645f616d6f756e7418013042616c616e63654f663c543e002220404d616b652061756374696f6e20626964203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e606d616b655f656e676c6973685f61756374696f6e5f6269640c01387061727469636970616e745f696428012c543a3a4d656d6265724964000120766964656f5f6964280128543a3a566964656f49640001286269645f616d6f756e7418013042616c616e63654f663c543e002320604d616b6520656e676c6973682061756374696f6e20626964203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e5c63616e63656c5f6f70656e5f61756374696f6e5f6269640801387061727469636970616e745f696428012c543a3a4d656d6265724964000120766964656f5f6964280128543a3a566964656f49640024205c43616e63656c206f70656e2061756374696f6e20626964203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e58736574746c655f656e676c6973685f61756374696f6e040120766964656f5f6964280128543a3a566964656f496400252464436c61696d20776f6e20656e676c6973682061756374696f6e5c43616e2062652063616c6c656420627920616e796f6e65203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e607069636b5f6f70656e5f61756374696f6e5f77696e6e65721001206f776e65725f6964a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f496400012477696e6e65725f696428012c543a3a4d656d6265724964000118636f6d6d697418013042616c616e63654f663c543e0026245c416363657074206f70656e2061756374696f6e206269648c53686f756c64206f6e6c792062652063616c6c65642062792061756374696f6e656572203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e246f666665725f6e6674100120766964656f5f6964280128543a3a566964656f49640001206f776e65725f6964a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000108746f28012c543a3a4d656d62657249640001147072696365450101504f7074696f6e3c42616c616e63654f663c543e3e002724244f66666572204e667400203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e38736c696e675f6e66745f6261636b080120766964656f5f6964280128543a3a566964656f49640001206f776e65725f6964a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e002824c452657475726e204e6674206261636b20746f20746865206f726967696e616c20617274697374206174206e6f20636f737400203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e546163636570745f696e636f6d696e675f6f66666572080120766964656f5f6964280128543a3a566964656f49640001347769746e6573735f7072696365450101a04f7074696f6e3c3c542061732062616c616e6365733a3a436f6e6669673e3a3a42616c616e63653e0029246441636365707420696e636f6d696e67204e6674206f6666657200203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e2073656c6c5f6e66740c0120766964656f5f6964280128543a3a566964656f49640001206f776e65725f6964a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000114707269636518013042616c616e63654f663c543e002a202053656c6c204e6674203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e1c6275795f6e66740c0120766964656f5f6964280128543a3a566964656f49640001387061727469636970616e745f696428012c543a3a4d656d62657249640001347769746e6573735f707269636518013042616c616e63654f663c543e002b241c427579204e667400203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e44746f67676c655f6e66745f6c696d69747304011c656e61626c6564980110626f6f6c002c20dc4f6e6c7920436f756e63696c2063616e20746f67676c65206e66742069737375616e6365206c696d69747320636f6e73747261696e7473203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e506368616e6e656c5f6f776e65725f72656d61726b0801286368616e6e656c5f6964280130543a3a4368616e6e656c496400010c6d736730011c5665633c75383e002d28504368616e6e656c206f776e65722072656d61726b203c7765696768743e00242323205765696768741c604f2028422960142d2044423a242020202d204f2831291877686572653a8c2d204220697320746865206b696c6f62797465206c656e676874206f6620606d7367602c23203c2f7765696768743e506368616e6e656c5f6167656e745f72656d61726b0c01146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c496400010c6d736730011c5665633c75383e002e286c4368616e6e656c20636f6c6c61626f7261746f722072656d61726b203c7765696768743e00242323205765696768741c604f2028422960142d2044423a242020202d204f2831291877686572653a8420202d2042206973207468652062797465206c656e676874206f6620606d7367602c23203c2f7765696768743e406e66745f6f776e65725f72656d61726b0c01146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f496400010c6d736730011c5665633c75383e002f28404e4654206f776e65722072656d61726b203c7765696768743e00242323205765696768741c604f2028422960142d2044423a2020202d204f2831291877686572653a8420202d2042206973207468652062797465206c656e676874206f6620606d7367602c23203c2f7765696768743e6c696e697469616c697a655f6368616e6e656c5f7472616e736665720c01286368616e6e656c5f6964280130543a3a4368616e6e656c49640001146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e00013c7472616e736665725f706172616d731d06016c496e69745472616e73666572506172616d65746572734f663c543e003028dc53746172742061206368616e6e656c207472616e736665722077697468207370656369666965642063686172616374657269737469637300203c7765696768743e002423232057656967687438604f20284129602077686572653a25012d2060416020697320746865206e756d626572206f6620656e747269657320696e20607472616e736665725f706172616d732e6e65775f636f6c6c61626f7261746f727360206d6170142d2044423aa82020202d204f284129202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e5c63616e63656c5f6368616e6e656c5f7472616e736665720801286368616e6e656c5f6964280130543a3a4368616e6e656c49640001146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0031245c63616e63656c206368616e6e656c207472616e7366657200203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5c6163636570745f6368616e6e656c5f7472616e736665720801286368616e6e656c5f6964280130543a3a4368616e6e656c4964000144636f6d6d69746d656e745f706172616d736d0201785472616e73666572436f6d6d69746d656e745769746e6573734f663c543e00322c6441636365707473206368616e6e656c207472616e736665722e310160636f6d6d69746d656e745f706172616d736020697320726571756972656420746f2070726576656e74206368616e67696e6720746865207472616e7366657220636f6e646974696f6e732e00203c7765696768743e002423232057656967687438604f20284129602077686572653a2d012d2060416020697320746865206e756d626572206f6620656e747269657320696e2060636f6d6d69746d656e745f706172616d732e6e65775f636f6c6c61626f7261746f727360206d6170142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5c7570646174655f676c6f62616c5f6e66745f6c696d69740801406e66745f6c696d69745f706572696f64890201384e66744c696d6974506572696f640001146c696d697428010c753634003320605570646174657320676c6f62616c204e4654206c696d6974203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e607570646174655f6368616e6e656c5f6e66745f6c696d69741001146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001406e66745f6c696d69745f706572696f64890201384e66744c696d6974506572696f640001286368616e6e656c5f6964280130543a3a4368616e6e656c49640001146c696d697428010c7536340034207055706461746573206368616e6e656c2773204e4654206c696d69742e203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e4c69737375655f63726561746f725f746f6b656e0c01146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c4964000118706172616d73c9020170546f6b656e49737375616e6365506172616d65746572734f663c543e0035284c49737375652063726561746f7220746f6b656e00203c7765696768743e002423232057656967687438604f20284129602077686572653a05012d2060416020697320746865206e756d626572206f6620656e747269657320696e2060706172616d732e696e697469616c5f616c6c6f636174696f6e60206d6170142d2044423ab02020202d20604f28412960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e5c696e69745f63726561746f725f746f6b656e5f73616c650c01146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c4964000118706172616d7321060150546f6b656e53616c65506172616d734f663c543e00362874496e697469616c697a652063726561746f7220746f6b656e2073616c6500203c7765696768743e002423232057656967687438604f20284129602077686572653a29012d20604160206973207468652073697a65206f662060706172616d732e6d657461646174616020696e206b696c6f627974657320286f722030206966206e6f742070726f766964656429142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e887570646174655f7570636f6d696e675f63726561746f725f746f6b656e5f73616c651001146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c496400013c6e65775f73746172745f626c6f636b010201584f7074696f6e3c543a3a426c6f636b4e756d6265723e0001306e65775f6475726174696f6e010201584f7074696f6e3c543a3a426c6f636b4e756d6265723e00372488557064617465207570636f6d696e672063726561746f7220746f6b656e2073616c6500203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e7463726561746f725f746f6b656e5f6973737565725f7472616e736665721001146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c496400011c6f757470757473250601645472616e73666572735769746856657374696e674f663c543e0001206d6574616461746130011c5665633c75383e00382cc8506572666f726d207472616e73666572206f6620746f6b656e732061732063726561746f7220746f6b656e2069737375657200203c7765696768743e002423232057656967687448604f202841202b204229602077686572653aac2d2060416020697320746865206e756d626572206f6620656e747269657320696e20606f75747075747360c02d20604260206973207468652073697a65206f662074686520606d657461646174616020696e206b696c6f6279746573142d2044423ab02020202d20604f28412960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e846d616b655f63726561746f725f746f6b656e5f7065726d697373696f6e6c6573730801146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c4964003924ac4d616b65206368616e6e656c27732063726561746f7220746f6b656e207065726d697373696f6e6c65737300203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e987265647563655f63726561746f725f746f6b656e5f706174726f6e6167655f726174655f746f0c01146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c496400012c7461726765745f72617465f9020128596561726c7952617465003a24f0526564756365206368616e6e656c27732063726561746f7220746f6b656e20706174726f6e616765207261746520746f20676976656e2076616c756500203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e90636c61696d5f63726561746f725f746f6b656e5f706174726f6e6167655f6372656469740801146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c4964003b24b8436c61696d206368616e6e656c27732063726561746f7220746f6b656e20706174726f6e6167652063726564697400203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e4c69737375655f726576656e75655f73706c69741001146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c49640001147374617274010201584f7074696f6e3c543a3a426c6f636b4e756d6265723e0001206475726174696f6e100138543a3a426c6f636b4e756d626572003c2484497373756520726576656e75652073706c697420666f722061206368616e6e656c00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5866696e616c697a655f726576656e75655f73706c69740801146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c4964003d247c46696e616c697a6520616e20656e64656420726576656e75652073706c697400203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6c66696e616c697a655f63726561746f725f746f6b656e5f73616c650801146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c4964003e249046696e616c697a6520616e20656e6465642063726561746f7220746f6b656e2073616c6500203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e54646569737375655f63726561746f725f746f6b656e0801146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c4964003f247c44656973737565206368616e6e656c27732063726561746f7220746f6b656e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e09060c3870616c6c65745f636f6e74656e74147479706573444368616e6e656c4261675769746e657373000008014c73746f726167655f6275636b6574735f6e756d10010c753332000160646973747269627574696f6e5f6275636b6574735f6e756d10010c75333200000d0600000211060011060c3470616c6c65745f636f6d6d6f6e2c6d65726b6c655f747265654850726f6f66456c656d656e745265636f7264081048617368012c105369646501150600080110686173682c011048617368000110736964651506011053696465000015060c3470616c6c65745f636f6d6d6f6e2c6d65726b6c655f747265651053696465000108104c6566740000001452696768740001000019060c3870616c6c65745f636f6e74656e741474797065734850756c6c5061796d656e74456c656d656e740c244368616e6e656c496401281c42616c616e636501181048617368012c000c01286368616e6e656c5f69642801244368616e6e656c496400016063756d756c61746976655f7265776172645f6561726e656418011c42616c616e6365000118726561736f6e2c01104861736800001d060c3870616c6c65745f636f6e74656e7414747970657358496e69745472616e73666572506172616d65746572730c204d656d626572496401283843757261746f7247726f7570496401281c42616c616e63650118000c01446e65775f636f6c6c61626f7261746f72732d0201ac42547265654d61703c4d656d62657249642c204368616e6e656c4167656e745065726d697373696f6e733e000114707269636518011c42616c616e63650001246e65775f6f776e6572e50101984368616e6e656c4f776e65723c4d656d62657249642c2043757261746f7247726f757049643e000021060c5070616c6c65745f70726f6a6563745f746f6b656e1474797065733c546f6b656e53616c65506172616d7310284a6f7942616c616e636501181c42616c616e636501182c426c6f636b4e756d62657201105456657374696e675363686564756c65506172616d7301d102001c0128756e69745f70726963651801284a6f7942616c616e636500015075707065725f626f756e645f7175616e7469747918011c42616c616e63650001247374617274735f61740102014c4f7074696f6e3c426c6f636b4e756d6265723e0001206475726174696f6e10012c426c6f636b4e756d62657200015c76657374696e675f7363686564756c655f706172616d73d90201744f7074696f6e3c56657374696e675363686564756c65506172616d733e0001386361705f7065725f6d656d6265724501013c4f7074696f6e3c42616c616e63653e0001206d657461646174613101013c4f7074696f6e3c5665633c75383e3e000025060c5070616c6c65745f70726f6a6563745f746f6b656e147479706573245472616e736665727308204d656d626572496401281c5061796d656e740109030004002906016c42547265654d61703c4d656d62657249642c205061796d656e743e00002906042042547265654d617008044b012804560109030004002d060000002d06000002310600310600000408280903003506083870616c6c65745f73746f726167651043616c6c04045400018c5464656c6574655f73746f726167655f6275636b657404014473746f726167655f6275636b65745f6964280148543a3a53746f726167654275636b657449640000201d0144656c6574652073746f72616765206275636b65742e204d75737420626520656d7074792e2053746f72616765206f70657261746f72206d757374206265206d697373696e672e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e7c7570646174655f75706c6f6164696e675f626c6f636b65645f7374617475730401286e65775f737461747573980110626f6f6c000120785570646174657320676c6f62616c2075706c6f6164696e6720666c61672e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e507570646174655f646174615f73697a655f6665650401446e65775f646174615f73697a655f66656518013042616c616e63654f663c543e000220cc557064617465732073697a652d62617365642070726963696e67206f66206e6577206f626a656374732075706c6f616465642e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e907570646174655f73746f726167655f6275636b6574735f7065725f6261675f6c696d69740401246e65775f6c696d697410010c753332000320bc55706461746573202253746f72616765206275636b657473207065722062616722206e756d626572206c696d69742e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743ea47570646174655f73746f726167655f6275636b6574735f766f75636865725f6d61785f6c696d6974730801406e65775f6f626a656374735f73697a6528010c7536340001486e65775f6f626a656374735f6e756d62657228010c753634000420b455706461746573202253746f72616765206275636b65747320766f7563686572206d6178206c696d697473222e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e8c7570646174655f646174615f6f626a6563745f73746174655f626c6f61745f626f6e6404014073746174655f626c6f61745f626f6e6418013042616c616e63654f663c543e000520ac557064617465732064617461206f626a65637420737461746520626c6f617420626f6e642076616c75652e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743efc7570646174655f6e756d6265725f6f665f73746f726167655f6275636b6574735f696e5f64796e616d69635f6261675f6372656174696f6e5f706f6c69637908014064796e616d69635f6261675f74797065b102013844796e616d6963426167547970650001646e756d6265725f6f665f73746f726167655f6275636b65747310010c7533320006202d01557064617465206e756d626572206f662073746f72616765206275636b657473207573656420696e20676976656e2064796e616d696320626167206372656174696f6e20706f6c6963792e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e407570646174655f626c61636b6c69737408013472656d6f76655f686173686573a502014442547265655365743c5665633c75383e3e0001286164645f686173686573a502014442547265655365743c5665633c75383e3e000728bc41646420616e642072656d6f76652068617368657320746f207468652063757272656e7420626c61636b6c6973742e203c7765696768743e002423232057656967687448604f202857202b205629602077686572653abc2d2060576020697320746865206e756d626572206f66206974656d7320696e206072656d6f76655f68617368657360b02d2060566020697320746865206e756d626572206f66206974656d7320696e20606164645f68617368657360142d2044423ab02020202d20604f28572960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e546372656174655f73746f726167655f6275636b6574100134696e766974655f776f726b65723501014c4f7074696f6e3c576f726b657249643c543e3e000148616363657074696e675f6e65775f62616773980110626f6f6c00012873697a655f6c696d697428010c7536340001346f626a656374735f6c696d697428010c753634000820584372656174652073746f72616765206275636b65742e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e787570646174655f73746f726167655f6275636b6574735f666f725f6261670c01186261675f69649502012042616749643c543e00012c6164645f6275636b6574736901017042547265655365743c543a3a53746f726167654275636b657449643e00013872656d6f76655f6275636b6574736901017042547265655365743c543a3a53746f726167654275636b657449643e00092888557064617465732073746f72616765206275636b65747320666f722061206261672e203c7765696768743e002423232057656967687448604f202857202b205629602077686572653ab42d2060576020697320746865206e756d626572206f66206974656d7320696e20606164645f6275636b65747360c02d2060566020697320746865206e756d626572206f66206974656d7320696e206072656d6f76655f6275636b65747360142d2044423ac02020202d20604f2856202b20572960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e9463616e63656c5f73746f726167655f6275636b65745f6f70657261746f725f696e7669746504014473746f726167655f6275636b65745f6964280148543a3a53746f726167654275636b65744964000a20110143616e63656c2070656e64696e672073746f72616765206275636b657420696e766974652e20416e20696e7669746174696f6e206d7573742062652070656e64696e672e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e78696e766974655f73746f726167655f6275636b65745f6f70657261746f7208014473746f726167655f6275636b65745f6964280148543a3a53746f726167654275636b6574496400012c6f70657261746f725f696428012c576f726b657249643c543e000b20c0496e766974652073746f72616765206275636b6574206f70657261746f722e204d757374206265206d697373696e672e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e7872656d6f76655f73746f726167655f6275636b65745f6f70657261746f7204014473746f726167655f6275636b65745f6964280148543a3a53746f726167654275636b65744964000c208052656d6f7665732073746f72616765206275636b6574206f70657261746f722e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e707570646174655f73746f726167655f6275636b65745f73746174757308014473746f726167655f6275636b65745f6964280148543a3a53746f726167654275636b65744964000148616363657074696e675f6e65775f62616773980110626f6f6c000d20dc5570646174652077686574686572206e6577206261677320617265206265696e6720616363657074656420666f722073746f726167652e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e847365745f73746f726167655f6275636b65745f766f75636865725f6c696d6974730c014473746f726167655f6275636b65745f6964280148543a3a53746f726167654275636b657449640001586e65775f6f626a656374735f73697a655f6c696d697428010c7536340001606e65775f6f626a656374735f6e756d6265725f6c696d697428010c753634000e208c536574732073746f72616765206275636b657420766f7563686572206c696d6974732e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e806163636570745f73746f726167655f6275636b65745f696e7669746174696f6e0c0124776f726b65725f696428012c576f726b657249643c543e00014473746f726167655f6275636b65745f6964280148543a3a53746f726167654275636b657449640001547472616e736163746f725f6163636f756e745f6964000130543a3a4163636f756e744964000f285d01416363657074207468652073746f72616765206275636b657420696e7669746174696f6e2e20416e20696e7669746174696f6e206d757374206d617463682074686520776f726b65725f696420706172616d657465722e59014974206163636570747320616e206164646974696f6e616c206163636f756e7420494420287472616e736163746f722920666f7220616363657074696e672064617461206f626a6563747320746f2070726576656e74747472616e73616374696f6e206e6f6e636520636f6c6c6973696f6e732e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e747365745f73746f726167655f6f70657261746f725f6d657461646174610c0124776f726b65725f696428012c576f726b657249643c543e00014473746f726167655f6275636b65745f6964280148543a3a53746f726167654275636b657449640001206d6574616461746130011c5665633c75383e001024dc536574732073746f72616765206f70657261746f72206d65746164617461202865672e3a2073746f72616765206e6f64652055524c292e203c7765696768743e002423232057656967687438604f20285729602077686572653aa02d206057602069732073697a65206f6620606d657461646174616020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6c6163636570745f70656e64696e675f646174615f6f626a65637473100124776f726b65725f696428012c576f726b657249643c543e00014473746f726167655f6275636b65745f6964280148543a3a53746f726167654275636b657449640001186261675f69649502012042616749643c543e000130646174615f6f626a656374736901016442547265655365743c543a3a446174614f626a65637449643e0011246501412073746f726167652070726f7669646572207369676e616c732074686174207468652064617461206f626a65637420776173207375636365737366756c6c792075706c6f6164656420746f206974732073746f726167652e203c7765696768743e00242323205765696768743c604f2028572029602077686572653ab82d2060576020697320746865206e756d626572206f66206974656d7320696e2060646174615f6f626a6563747360142d2044423ab02020202d20604f28572960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e846372656174655f646973747269627574696f6e5f6275636b65745f66616d696c7900122090437265617465206120646973747269627574696f6e206275636b65742066616d696c792e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e8464656c6574655f646973747269627574696f6e5f6275636b65745f66616d696c7904012466616d696c795f6964280174543a3a446973747269627574696f6e4275636b657446616d696c7949640013209444656c65746573206120646973747269627574696f6e206275636b65742066616d696c792e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e686372656174655f646973747269627574696f6e5f6275636b657408012466616d696c795f6964280174543a3a446973747269627574696f6e4275636b657446616d696c794964000148616363657074696e675f6e65775f62616773980110626f6f6c00142074437265617465206120646973747269627574696f6e206275636b65742e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e847570646174655f646973747269627574696f6e5f6275636b65745f7374617475730801246275636b65745f69642502015c446973747269627574696f6e4275636b657449643c543e000148616363657074696e675f6e65775f62616773980110626f6f6c001520d855706461746573206120646973747269627574696f6e206275636b6574202761636365707473206e657720626167732720666c61672e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6864656c6574655f646973747269627574696f6e5f6275636b65740401246275636b65745f69642502015c446973747269627574696f6e4275636b657449643c543e001620a844656c65746520646973747269627574696f6e206275636b65742e204d75737420626520656d7074792e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e8c7570646174655f646973747269627574696f6e5f6275636b6574735f666f725f6261671001186261675f69649502012042616749643c543e00012466616d696c795f6964280174543a3a446973747269627574696f6e4275636b657446616d696c79496400014c6164645f6275636b6574735f696e64696365736901019042547265655365743c543a3a446973747269627574696f6e4275636b6574496e6465783e00015872656d6f76655f6275636b6574735f696e64696365736901019042547265655365743c543a3a446973747269627574696f6e4275636b6574496e6465783e0017289c5570646174657320646973747269627574696f6e206275636b65747320666f722061206261672e203c7765696768743e002423232057656967687448604f202857202b205629602077686572653ad42d2060576020697320746865206e756d626572206f66206974656d7320696e20606164645f6275636b6574735f696e646963657360e02d2060566020697320746865206e756d626572206f66206974656d7320696e206072656d6f76655f6275636b6574735f696e646963657360142d2044423ac02020202d20604f2856202b20572960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743ea47570646174655f646973747269627574696f6e5f6275636b6574735f7065725f6261675f6c696d69740401246e65775f6c696d697410010c753332001820d0557064617465732022446973747269627574696f6e206275636b657473207065722062616722206e756d626572206c696d69742e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e7c7570646174655f646973747269627574696f6e5f6275636b65745f6d6f64650801246275636b65745f69642502015c446973747269627574696f6e4275636b657449643c543e000130646973747269627574696e67980110626f6f6c001920d8557064617465732027646973747269627574696e672720666c616720666f722074686520646973747269627574696e6720666c61672e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743eb87570646174655f66616d696c6965735f696e5f64796e616d69635f6261675f6372656174696f6e5f706f6c69637908014064796e616d69635f6261675f74797065b102013844796e616d69634261675479706500012066616d696c696573b50201b042547265654d61703c543a3a446973747269627574696f6e4275636b657446616d696c7949642c207533323e001a283d01557064617465206e756d626572206f66206469737472696275746564206275636b657473207573656420696e20676976656e2064796e616d696320626167206372656174696f6e20706f6c6963792e9c5570646174657320646973747269627574696f6e206275636b65747320666f722061206261672e203c7765696768743e002423232057656967687438604f20285729602077686572653aa82d2060576020697320746865206e756d626572206f66206974656d7320696e206066616d696c69657360142d2044423ab02020202d20604f28572960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e8c696e766974655f646973747269627574696f6e5f6275636b65745f6f70657261746f720801246275636b65745f69642502015c446973747269627574696f6e4275636b657449643c543e0001486f70657261746f725f776f726b65725f696428012c576f726b657249643c543e001b2090496e7669746520616e206f70657261746f722e204d757374206265206d697373696e672e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743ea863616e63656c5f646973747269627574696f6e5f6275636b65745f6f70657261746f725f696e766974650801246275636b65745f69642502015c446973747269627574696f6e4275636b657449643c543e0001486f70657261746f725f776f726b65725f696428012c576f726b657249643c543e001c209c43616e63656c2070656e64696e6720696e766974652e204d7573742062652070656e64696e672e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e8c72656d6f76655f646973747269627574696f6e5f6275636b65745f6f70657261746f720801246275636b65745f69642502015c446973747269627574696f6e4275636b657449643c543e0001486f70657261746f725f776f726b65725f696428012c576f726b657249643c543e001d209452656d6f76657320646973747269627574696f6e206275636b6574206f70657261746f722e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e9c7365745f646973747269627574696f6e5f6275636b65745f66616d696c795f6d6574616461746108012466616d696c795f6964280174543a3a446973747269627574696f6e4275636b657446616d696c7949640001206d6574616461746130011c5665633c75383e001e24a053657420646973747269627574696f6e206275636b65742066616d696c79206d657461646174612e203c7765696768743e002423232057656967687438604f20285729602077686572653aa02d206057602069732073697a65206f6620606d657461646174616020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e946163636570745f646973747269627574696f6e5f6275636b65745f696e7669746174696f6e080124776f726b65725f696428012c576f726b657249643c543e0001246275636b65745f69642502015c446973747269627574696f6e4275636b657449643c543e001f20584163636570742070656e64696e6720696e766974652e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e887365745f646973747269627574696f6e5f6f70657261746f725f6d657461646174610c0124776f726b65725f696428012c576f726b657249643c543e0001246275636b65745f69642502015c446973747269627574696f6e4275636b657449643c543e0001206d6574616461746130011c5665633c75383e002024fc53657420646973747269627574696f6e206f70657261746f72206d6574616461746120666f722074686520646973747269627574696f6e206275636b65742e203c7765696768743e002423232057656967687438604f20285729602077686572653aa02d206057602069732073697a65206f6620606d657461646174616020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5c73746f726167655f6f70657261746f725f72656d61726b0c0124776f726b65725f696428012c576f726b657249643c543e00014473746f726167655f6275636b65745f6964280148543a3a53746f726167654275636b6574496400010c6d736730011c5665633c75383e0021289c4465706f73697420612053746f726167654f70657261746f7252656d61726b6564206576656e7474636f6e7461696e696e6720612067656e65726963206d6573736167652e203c7765696768743e002423232057656967687438604f20285729602077686572653a9c2d206057602069732073697a65206f6620606d6573736167656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e70646973747269627574696f6e5f6f70657261746f725f72656d61726b0c0124776f726b65725f696428012c576f726b657249643c543e000158646973747269627574696f6e5f6275636b65745f69642502015c446973747269627574696f6e4275636b657449643c543e00010c6d736730011c5665633c75383e0022249c43726561746520612064796e616d6963206261672e20446576656c6f706d656e74206d6f64652e203c7765696768743e002423232057656967687438604f20285729602077686572653a9c2d206057602069732073697a65206f6620606d6573736167656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e3906085070616c6c65745f70726f6a6563745f746f6b656e1043616c6c04045400011c207472616e736665721001347372635f6d656d6265725f696428012c543a3a4d656d6265724964000120746f6b656e5f6964280128543a3a546f6b656e496400011c6f7574707574733d0601385472616e73666572734f663c543e0001206d6574616461746130011c5665633c75383e0000685501416c6c6f7720746f207472616e736665722066726f6d20607372635f6d656d6265725f696460206163636f756e7420746f2074686520766172696f757320606f757470757473602062656e6566696369617269657364696e207468652073706563696669656420616d6f756e74732e0038507265636f6e646974696f6e733ae82d206f726967696e207369676e6572206d75737420626520607372635f6d656d6265725f69646020636f6e74726f6c6c6572206163636f756e74842d20746f6b656e2062792060746f6b656e5f696460206d75737420657869737473d82d206163636f756e74206f6620607372635f6d656d6265725f696460206d75737420657869737420666f722060746f6b656e5f69646041012d2073656e646572206d757374206861766520656e6f756768204a4f597320746f20636f7665722074686520746f74616c20626c6f617420626f6e6420726571756972656420696e2063617365206f6678202064657374696e6174696f6e287329206e6f74206578697374696e672e29012d20736f75726365206163636f756e74206d757374206861766520656e6f75676820746f6b656e2066756e647320746f20636f76657220616c6c20746865207472616e7366657228732941012d20606f75747075747360206d7573742064657369676e617465206578697374696e672064657374696e6174696f6e28732920666f7220225065726d697373696f6e656422207472616e73666572732e3c506f7374636f6e646974696f6e733ae82d20736f75726365206163636f756e74277320746f6b656e7320616d6f756e74206973206465637265617365642062792060616d6f756e74602e49012d20746f74616c20626c6f617420626f6e64207472616e736665727265642066726f6d2073656e6465722773204a4f592062616c616e636520696e746f20746865207472656173757279206163636f756e74cc2020696e20636173652064657374696e6174696f6e2873292068617665206265656e20616464656420746f2073746f72616765ec2d20606f7574707574732e62656e65666963696172796020746f6b656e7320616d6f756e7420696e637265617365642062792060616d6f756e746000203c7765696768743e002423232057656967687448604f202854202b204d29602077686572653a802d2060546020697320746865206c656e677468206f6620606f75747075747360b02d20604d60206973207468652073697a65206f6620606d657461646174616020696e206b696c6f6279746573142d2044423aac20202d20604f28542960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e106275726e0c0120746f6b656e5f6964280128543a3a546f6b656e49640001246d656d6265725f696428012c543a3a4d656d6265724964000118616d6f756e74180144546f6b656e42616c616e63654f663c543e000178884275726e20746f6b656e732066726f6d20737065636966696564206163636f756e740038507265636f6e646974696f6e733a442d2060616d6f756e7460206973203e2030f42d206f726967696e207369676e6572206973206120636f6e74726f6c6c6572206163636f756e74206f6620606d656d6265725f696460206d656d626572702d20746f6b656e2062792060746f6b656e5f69646020657869737473c02d20616e206163636f756e742065786973747320666f722060746f6b656e5f696460207820606d656d6265725f696460a02d206163636f756e74277320746f6b656e7320616d6f756e74206973203e3d2060616d6f756e746005012d20746f6b656e20737570706c792063616e206265206d6f64696669656420287468657265206973206e6f2061637469766520726576656e75652073706c697429003c506f7374636f6e646974696f6e733a4d012d207374617274696e6720776974682060756e70726f6365737365646020626565696e6720657175616c20746f2060616d6f756e74602c206163636f756e7427732076657374696e67207363686564756c6573602020617265206974657261746564206f76657220616e643a5d0120202d2075706461746564207769746820606275726e65645f616d6f756e74202b3d207570726f636573736564602069662076657374696e67207363686564756c65277320756e76657374656420616d6f756e74206973742020202067726561746572207468616e20607570726f636573736564605420202d2072656d6f766564206f746865727769736545012020286166746572206561636820697465726174696f6e2060756e70726f6365737365646020697320726564756365642062792074686520616d6f756e74206f6620756e76657374656420746f6b656e737c20206275726e656420647572696e67207468617420697465726174696f6e2949012d20696620746865206163636f756e742068617320616e79206073706c69745f7374616b696e675f737461747573602c20746865206073706c69745f7374616b696e675f7374617475732e616d6f756e7460e820206973207265647563656420627920606d696e28616d6f756e742c2073706c69745f7374616b696e675f7374617475732e616d6f756e742960a42d20606163636f756e742e616d6f756e746020697320726564756365642062792060616d6f756e7460942d20746f6b656e20737570706c7920697320726564756365642062792060616d6f756e746000203c7765696768743e00242323205765696768741c604f2028312960142d2044423ad820202d20604f28312960202d20646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e30647573745f6163636f756e74080120746f6b656e5f6964280128543a3a546f6b656e49640001246d656d6265725f696428012c543a3a4d656d62657249640002508c416c6c6f7720616e79207573657220746f2072656d6f766520616e206163636f756e740038507265636f6e646974696f6e733a802d20746f6b656e2062792060746f6b656e5f696460206d757374206578697374d02d20616e206163636f756e74206d75737420657869737420666f722060746f6b656e5f696460207820606d656d6265725f69646015012d206966205065726d697373696f6e656420746f6b656e3a20606f726967696e60207369676e6572206d75737420626520606d656d6265725f696460206d656d6265722773502020636f6e74726f6c6c6572206163636f756e74ec2d2060746f6b656e5f696460207820606d656d6265725f696460206163636f756e74206d75737420626520616e20656d707479206163636f756e7478202028606163636f756e745f646174612e616d6f756e7460203d3d2030293c506f7374636f6e646974696f6e733a1d012d204163636f756e7420696e666f726d6174696f6e20666f722060746f6b656e5f696460207820606d656d6265725f6964602072656d6f7665642066726f6d2073746f72616765dc2d20626c6f617420626f6e6420726566756e64656420746f20606d656d6265725f69646020636f6e74726f6c6c6572206163636f756e74cc2020286f722060626c6f61745f626f6e642e72657061796d656e745f726573747269637465645f746f60206163636f756e742900203c7765696768743e001c604f2028312960142d2044423ad820202d20604f28312960202d20646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e386a6f696e5f77686974656c6973740c01246d656d6265725f696428012c543a3a4d656d6265724964000120746f6b656e5f6964280128543a3a546f6b656e496400011470726f6f66510601404d65726b6c6550726f6f664f663c543e00034c11014a6f696e2077686974656c69737420666f72207065726d697373696f6e656420636173653a207573656420746f20616464206163636f756e747320666f7220746f6b656e38507265636f6e646974696f6e733a682d2027746f6b656e5f696427206d7573742062652076616c6964f42d20606f726967696e60207369676e6572206d757374206265206120636f6e74726f6c6c6572206163636f756e74206f6620606d656d6265725f696460c02d206163636f756e7420666f7220606d656d6265725f696460206d757374206e6f7420616c726561647920657869737409012d207472616e7366657220706f6c69637920697320605065726d697373696f6e65646020616e64206d65726b6c652070726f6f66206d7573742062652076616c6964003c506f7374636f6e646974696f6e733af42d206163636f756e7420666f7220606d656d6265725f696460206372656174656420616e6420616464656420746f2070616c6c65742073746f72616765e82d2060626c6f61745f626f6e6460207472616e736665727265642066726f6d2073656e64657220746f207472656173757279206163636f756e7400203c7765696768743e002423232057656967687438604f20284829602077686572653a802d2060486020697320746865206c656e677468206f66206070726f6f662e3060142d2044423ad820202d20604f28312960202d20646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5c70757263686173655f746f6b656e735f6f6e5f73616c650c0120746f6b656e5f6964280128543a3a546f6b656e49640001246d656d6265725f696428012c543a3a4d656d6265724964000118616d6f756e74180144546f6b656e42616c616e63654f663c543e0004ec94507572636861736520746f6b656e73206f6e2061637469766520746f6b656e2073616c652e0038507265636f6e646974696f6e733a802d20746f6b656e2062792060746f6b656e5f696460206d757374206578697374d02d20746f6b656e2062792060746f6b656e5f696460206d75737420626520696e204f66666572696e6753746174653a3a53616c65ec2d2060616d6f756e74602063616e6e6f7420657863656564206e756d626572206f6620746f6b656e732072656d61696e696e67206f6e2073616c6509012d20606f726967696e60207369676e6572206d75737420626520636f6e74726f6c6c6572206163636f756e74206f6620606d656d6265725f696460206d656d626572a42d2073656e646572277320617661696c61626c65204a4f592062616c616e6365206d7573742062653aec20202d203e3d20606a6f795f6578697374656e7469616c5f6465706f736974202b20616d6f756e74202a2073616c652e756e69745f70726963656080202020206966204163636f756e744461746120616c7265616479206578697374210120202d203e3d20606a6f795f6578697374656e7469616c5f6465706f736974202b20616d6f756e74202a2073616c652e756e69745f7072696365202b20626c6f61745f626f6e646084202020206966204163636f756e744461746120646f6573206e6f7420657869737435012d206c657420606665655f616d6f756e7460206265206073616c655f706c6174666f726d5f6665652e6d756c5f666c6f6f7228616d6f756e74202a2073616c652e756e69745f7072696365296059012d206966206073616c652e6561726e696e67735f64657374696e6174696f6e2e69735f736f6d6528296020616e64206073616c652e6561726e696e67735f64657374696e6174696f6e60206163636f756e74206861733c20207a65726f2062616c616e63653a390120202d2074686520616d6f756e7420746f206265207472616e736665727265642066726f6d206073656e6465726020746f206073616c652e6561726e696e67735f64657374696e6174696f6e602c4d0120202020776869636820697320657175616c20746f2060616d6f756e74202a2073616c652e756e69745f7072696365202d206665655f616d6f756e74602c206d7573742062652067726561746572207468616e7420202020606a6f795f6578697374656e7469616c5f6465706f7369746031012d20746f74616c206e756d626572206f6620746f6b656e7320616c72656164792070757263686173656420627920746865206d656d626572206f6e207468652063757272656e742073616c65f82020504c55532060616d6f756e7460206d757374206e6f74206578636565642073616c6527732070757263686173652063617020706572206d656d626572602d206966205065726d697373696f6e656420746f6b656e3a010120202d204163636f756e74496e666f4279546f6b656e416e644d656d62657228746f6b656e5f69642c20266d656d6265725f696429206d7573742065786973749c2d206966206073616c652e76657374696e675f7363686564756c652e69735f736f6d652829603ae020202d206e756d626572206f662073656e646572206163636f756e742773206f6e676f696e672076657374696e67207363686564756c6573cc202020206d757374206265203c204d617856657374696e675363686564756c65735065724163636f756e74506572546f6b656e003c506f7374636f6e646974696f6e733aac2d206966206073616c652e6561726e696e67735f64657374696e6174696f6e2e69735f736f6d652829603a4d0120202d2060616d6f756e74202a2073616c652e756e69745f7072696365202d206665655f616d6f756e7460204a4f5920746f6b656e7320617265207472616e7366657265642066726f6d206073656e646572608820202020746f206073616c652e6561726e696e67735f64657374696e6174696f6e60d420202d20606665655f616d6f756e7460204a4f5920697320736c61736865642066726f6d206073656e646572602062616c616e6365ac2d206966206073616c652e6561726e696e67735f64657374696e6174696f6e2e69735f6e6f6e652829603a0d0120202d2060616d6f756e74202a2073616c652e756e69745f707269636560204a4f5920697320736c61736865642066726f6d206073656e646572602062616c616e636549012d206966206e657720746f6b656e206163636f756e7420637265617465643a2060626c6f61745f626f6e6460207472616e736665727265642066726f6d206073656e6465726020746f2074726561737572799c2d206966206073616c652e76657374696e675f7363686564756c652e69735f736f6d652829603a0d0120202d20696620627579657220686173206e6f206076657374696e675f7363686564756c65602072656c6174656420746f207468652063757272656e742073616c653a5d01202020202d2061206e65772076657374696e67207363686564756c6520286073616c652e6765745f76657374696e675f7363686564756c652870757263686173655f616d6f756e7429602920697320616464656420746f80202020202020627579657227732060766573696e675f7363686564756c6573605501202020202d20736f6d652066696e69736865642076657374696e67207363686564756c652069732072656d6f7665642066726f6d2062757965722773206163636f756e745f6461746120696e20636173652074686559012020202020206e756d626572206f6620627579657227732076657374696e675f7363686564756c657320776173203d3d204d617856657374696e675363686564756c65735065724163636f756e74506572546f6b656e290120202d20696620627579657220616c7265616479206861732061206076657374696e675f7363686564756c65602072656c6174656420746f207468652063757272656e742073616c653afc202020202d2063757272656e742076657374696e67207363686564756c6527732060636c6966665f616d6f756e746020697320696e63726561736564206279fc2020202020206073616c652e6765745f76657374696e675f7363686564756c652870757263686173655f616d6f756e74292e636c6966665f616d6f756e74602901202020202d2063757272656e742076657374696e67207363686564756c6527732060706f73745f636c6966665f746f74616c5f616d6f756e746020697320696e6372656173656420627929012020202020206073616c652e6765745f76657374696e675f7363686564756c652870757263686173655f616d6f756e74292e706f73745f636c6966665f746f74616c5f616d6f756e74609c2d206966206073616c652e76657374696e675f7363686564756c652e69735f6e6f6e652829603ad820202d2062757965722773206163636f756e7420746f6b656e20616d6f756e7420696e637265617365642062792060616d6f756e746055012d2069662060746f6b656e5f646174612e73616c652e7175616e746974795f6c656674202d20616d6f756e74203d3d20306020616e64206073616c652e6175746f5f66696e616c697a6560206973206074727565604101202060746f6b656e5f646174612e73616c65602069732073657420746f204e6f6e652c206f74686572776973652060746f6b656e5f646174612e73616c652e7175616e746974795f6c65667460206973350120206465637265617365642062792060616d6f756e746020616e642060746f6b656e5f646174612e73616c652e66756e64735f636f6c6c65637465646020696e20696e6372656173656420627970202060616d6f756e74202a2073616c652e756e69745f70726963656000203c7765696768743e00242323205765696768741c604f2028312960142d2044423ad820202d20604f28312960202d20646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5070617274696369706174655f696e5f73706c69740c0120746f6b656e5f6964280128543a3a546f6b656e49640001246d656d6265725f696428012c543a3a4d656d6265724964000118616d6f756e74180144546f6b656e42616c616e63654f663c543e000568f0506172746963697061746520696e20746865202a6c61746573742a20746f6b656e20726576656e75652073706c697420286966206f6e676f696e672938507265636f6e646974696f6e733a8c2d2060746f6b656e60206d75737420657869737420666f722060746f6b656e5f696460fc2d20606f726967696e60207369676e6572206d75737420626520606d656d6265725f696460206d656d62657220636f6e74726f6c6c6572206163636f756e74582d2060616d6f756e7460206d757374206265203e2030cc2d20606163636f756e7460206d7573742065786973742020666f72206028746f6b656e5f69642c206d656d6265725f69642960fc2d2060746f6b656e2e73706c69745f73746174757360206d7573742062652061637469766520414e44205448454e2063757272656e745f626c6f636b20696eb82020205b73706c69742e73746172742c2073706c69742e7374617274202b2073706c69745f6475726174696f6e2981012d20606163636f756e742e7374616b696e675f7374617475732e69735f6e6f6e65282960204f5220606163636f756e742e7374616b696e675f7374617475732e73706c69745f6964602072656665727320746f206120706173742073706c6974782d20606163636f756e742e616d6f756e7460203e3d2060616d6f756e74602d012d206c657420606469766964656e64203d2073706c69745f616c6c6f636174696f6e202a206163636f756e742e7374616b65645f616d6f756e74202f20746f6b656e2e737570706c79606015012020207468656e2060747265617375727960206d7573742062652061626c6520746f207472616e7366657220606469766964656e646020616d6f756e74206f66204a4f592eec202020285468697320636f6e646974696f6e20746563686e6963616c6c792c2073686f756c6420616c7761797320626520736174697366696564290038506f7374636f6e646974696f6e732d012d20606469766964656e646020616d6f756e74206f66204a4f5973207472616e736665727265642066726f6d206074726561737572795f6163636f756e746020746f206073656e6465726045012d2060746f6b656e6020726576656e75652073706c6974206469766964656e647320706179656420747261636b696e67207661726961626c6520696e6372656173656420627920606469766964656e646045012d20606163636f756e742e7374616b696e675f737461747573602073657420746f20536f6d65282e2e2920776974682060616d6f756e746020616e642060746f6b656e2e6c61746573745f73706c69746000203c7765696768743e00242323205765696768741c604f2028312960142d2044423ad820202d20604f28312960202d20646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e48657869745f726576656e75655f73706c6974080120746f6b656e5f6964280128543a3a546f6b656e49640001246d656d6265725f696428012c543a3a4d656d626572496400064cb453706c69742d70617274696369706174696e672075736572206c656176657320726576656e75652073706c697434507265636f6e646974696f6e738c2d2060746f6b656e60206d75737420657869737420666f722060746f6b656e5f696460fc2d20606f726967696e60207369676e6572206d75737420626520606d656d6265725f696460206d656d62657220636f6e74726f6c6c6572206163636f756e74c82d20606163636f756e7460206d75737420657869737420666f72206028746f6b656e5f69642c206d656d6265725f69642960902d20606163636f756e742e7374616b696e67207374617475732e69735f736f6d6528292729012d2069662060286163636f756e742e7374616b696e675f7374617475732e73706c69745f6964203d3d20746f6b656e2e6e6578745f726576656e75655f73706c69745f6964202d2031604101202020414e442060746f6b656e2e726576656e75655f73706c6974602069732061637469766529205448454e2073706c6974207374616b696e6720706572696f6420206d75737420626520656e6465640038506f7374636f6e646974696f6e73982d20606163636f756e742e7374616b696e675f737461747573602073657420746f204e6f6e6500203c7765696768743e00242323205765696768741c604f2028312960142d2044423ad820202d20604f28312960202d20646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e3d060c5070616c6c65745f70726f6a6563745f746f6b656e147479706573245472616e736665727308204d656d626572496401281c5061796d656e740141060004004506016c42547265654d61703c4d656d62657249642c205061796d656e743e000041060c5070616c6c65745f70726f6a6563745f746f6b656e1474797065731c5061796d656e74041c42616c616e6365011800040118616d6f756e7418011c42616c616e636500004506042042547265654d617008044b01280456014106000400490600000049060000024d06004d06000004082841060051060c5070616c6c65745f70726f6a6563745f746f6b656e1474797065732c4d65726b6c6550726f6f660418486173686572014904000400550601845665633c284861736865723a3a4f75747075742c204d65726b6c6553696465293e000055060000025906005906000004082c5d06005d060c5070616c6c65745f70726f6a6563745f746f6b656e147479706573284d65726b6c6553696465000108145269676874000000104c656674000100006106085c70616c6c65745f70726f706f73616c735f656e67696e651043616c6c04045400011010766f7465100120766f7465725f696428012c4d656d62657249643c543e00012c70726f706f73616c5f6964100134543a3a50726f706f73616c4964000110766f74653d030120566f74654b696e64000124726174696f6e616c6530011c5665633c75383e000028d4566f74652065787472696e7369632e20436f6e646974696f6e733a20206f726967696e206d75737420616c6c6f7720766f7465732e00203c7765696768743e002423232057656967687438604f20285229602077686572653ab42d20605260206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f722070617261656d746572732c23203c2f7765696768743e3c63616e63656c5f70726f706f73616c08012c70726f706f7365725f696428012c4d656d62657249643c543e00012c70726f706f73616c5f6964100134543a3a50726f706f73616c4964000128ac43616e63656c20612070726f706f73616c20627920697473206f726967696e616c2070726f706f7365722e00203c7765696768743e002423232057656967687438604f20284c29602077686572653ac02d20604c602069732074686520746f74616c206e756d626572206f66206c6f636b7320696e206042616c616e63657360142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e347665746f5f70726f706f73616c04012c70726f706f73616c5f6964100134543a3a50726f706f73616c4964000224785665746f20612070726f706f73616c2e204d75737420626520726f6f742e00203c7765696768743e0024232320576569676874c4604f202831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3c70726f706f7365725f72656d61726b0c012c70726f706f73616c5f6964100134543a3a50726f706f73616c496400012c70726f706f7365725f696428012c4d656d62657249643c543e00010c6d736730011c5665633c75383e0003243c50726f706f7365722052656d61726b00203c7765696768743e0024232320576569676874c4604f202831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e6506086c70616c6c65745f70726f706f73616c735f64697363757373696f6e1043616c6c040454000110206164645f706f7374100138706f73745f617574686f725f696428012c4d656d62657249643c543e0001247468726561645f696428012c543a3a54687265616449640001107465787430011c5665633c75383e0001206564697461626c65980110626f6f6c0000289441646473206120706f7374207769746820617574686f72206f726967696e20636865636b2e00203c7765696768743e002423232057656967687438604f20284c29602077686572653aa02d20604c60206973207468652073697a65206f662060746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c64656c6574655f706f737410012864656c657465725f696428012c4d656d62657249643c543e00011c706f73745f6964280124543a3a506f737449640001247468726561645f696428012c543a3a546872656164496400011068696465980110626f6f6c000128510152656d6f766520706f73742066726f6d2073746f726167652c207769746820746865206c61737420706172616d6574657220696e6469636174696e67207768657468657220746f20616c736f206869646520697428696e207468652055492e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c7570646174655f706f73740c01247468726561645f696428012c543a3a546872656164496400011c706f73745f6964280124543a3a506f737449640001107465787430011c5665633c75383e0002282d0155706461746573206120706f7374207769746820617574686f72206f726967696e20636865636b2e2055706461746520617474656d707473206e756d626572206973206c696d697465642e00203c7765696768743e002423232057656967687438604f20284c29602077686572653aa02d20604c60206973207468652073697a65206f662060746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e486368616e67655f7468726561645f6d6f64650c01246d656d6265725f696428012c4d656d62657249643c543e0001247468726561645f696428012c543a3a54687265616449640001106d6f6465450301d85468726561644d6f64653c42547265655365743c3c54206173204d656d6265727368697054797065733e3a3a4d656d62657249643e3e0003287c4368616e67657320746872656164207065726d697373696f6e206d6f64652e00203c7765696768743e0024232320576569676874dc604f2028572960206966205468726561644d6f646520697320636c6f7365206f72204f283129206f74686572776973652077686572653ad02d2060576020697320746865206e756d626572206f662077686974656c6973746564206d656d6265727320696e20606d6f646560142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e6906085870616c6c65745f70726f706f73616c735f636f6465781043616c6c0404540001043c6372656174655f70726f706f73616c08016c67656e6572616c5f70726f706f73616c5f706172616d65746572734d03017047656e6572616c50726f706f73616c506172616d65746572733c543e00014070726f706f73616c5f64657461696c735103015050726f706f73616c44657461696c734f663c543e000034450143726561746520612070726f706f73616c2c207468652074797065206f662070726f706f73616c20646570656e6473206f6e20746865206070726f706f73616c5f64657461696c73602076617269616e7400203c7765696768743e002423232057656967687458604f202854202b2044202b204929602077686572653a902d2060546020697320746865207469746c652073697a6520696e206b696c6f6279746573a82d2060446020697320746865206465736372697074696f6e2073697a6520696e206b696c6f6279746573e02d20604960206973207468652073697a65206f6620616e7920706172616d6574657220696e206070726f706f73616c5f64657461696c736084202028696e206b696c6f62797465732069662069742773206d6574616461746129142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e6d06085070616c6c65745f776f726b696e675f67726f75701043616c6c08045400044900014c2c6164645f6f70656e696e6710012c6465736372697074696f6e30011c5665633c75383e0001306f70656e696e675f747970657d03012c4f70656e696e67547970650001307374616b655f706f6c696379610301a45374616b65506f6c6963793c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e3e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e00002cc44164642061206a6f62206f70656e696e6720666f72206120726567756c617220776f726b65722f6c65616420726f6c652e490152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20616464206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e002423232057656967687438604f20284429602077686572653abc2d20604460206973207468652073697a65206f6620606465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e406170706c795f6f6e5f6f70656e696e67040104708103016c4170706c794f6e4f70656e696e67506172616d65746572733c543e000128684170706c79206f6e206120776f726b6572206f70656e696e672e002823203c7765696768743e002423232057656967687438604f20284429602077686572653ac42d20604460206973207468652073697a65206f662060702e6465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3066696c6c5f6f70656e696e670801286f70656e696e675f69642801244f70656e696e6749640001687375636365737366756c5f6170706c69636174696f6e5f6964736901015c42547265655365743c4170706c69636174696f6e49643e000228ac46696c6c206f70656e696e6720666f722074686520726567756c61722f6c65616420706f736974696f6e2e4d0152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2066696c6c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e2823203c7765696768743e002423232057656967687438604f20284129602077686572653acc2d2060416020697320746865206c656e677468206f6620607375636365737366756c5f6170706c69636174696f6e5f69647360142d2044423a242020202d204f2841292c23203c2f7765696768743e4c7570646174655f726f6c655f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e00014c6e65775f726f6c655f6163636f756e745f6964000130543a3a4163636f756e744964000324150155706461746520746865206173736f63696174656420726f6c65206163636f756e74206f66207468652061637469766520726567756c617220776f726b65722f6c6561642e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e286c656176655f726f6c65080124776f726b65725f696428012c576f726b657249643c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000424904c656176652074686520726f6c65206279207468652061637469766520776f726b65722e2823203c7765696768743e002423232057656967687438604f20285229602077686572653ab42d20605260206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e387465726d696e6174655f726f6c650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c7479450101504f7074696f6e3c42616c616e63654f663c543e3e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000528a05465726d696e617465207468652061637469766520776f726b657220627920746865206c6561642e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f207465726d696e61746520746865206c656164657220726f6c65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ad82d20605060206973207468652073697a65206070656e616c74792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c736c6173685f7374616b650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c747918013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e00062c7d01536c61736865732074686520726567756c617220776f726b6572207374616b652c2064656d616e64732061206c6561646572206f726967696e2e204e6f206c696d6974732c206e6f20616374696f6e73206f6e207a65726f207374616b652e3d01496620736c617368696e672062616c616e63652067726561746572207468616e20746865206578697374696e67207374616b65202d207374616b6520697320736c617368656420746f207a65726f2e19015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20736c61736820746865206c6561646572207374616b65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ae82d20605060206973207468652073697a65206f66206070656e616c6974792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3864656372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e00073021014465637265617365732074686520726567756c617220776f726b65722f6c656164207374616b6520616e642072657475726e73207468652072656d61696e64657220746f207468653901776f726b6572207374616b696e675f6163636f756e745f69642e2043616e2062652064656372656173656420746f207a65726f2c206e6f20616374696f6e73206f6e207a65726f207374616b652e944163636570747320746865207374616b6520616d6f756e7420746f2064656372656173652e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20646563726561736520746865206c6561646572207374616b65292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e38696e6372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e0008280501496e637265617365732074686520726567756c617220776f726b65722f6c656164207374616b652c2064656d616e6473206120776f726b6572206f726967696e2e6d014c6f636b7320746f6b656e732066726f6d2074686520776f726b6572207374616b696e675f6163636f756e745f696420657175616c20746f206e6577207374616b652e204e6f206c696d697473206f6e20746865207374616b652e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5077697468647261775f6170706c69636174696f6e0401386170706c69636174696f6e5f69642801344170706c69636174696f6e4964000924010157697468647261772074686520776f726b6572206170706c69636174696f6e2e2043616e20626520646f6e652062792074686520776f726b6572206f6e6c792e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3863616e63656c5f6f70656e696e670401286f70656e696e675f69642801244f70656e696e674964000a28dc43616e63656c20616e206f70656e696e6720666f722074686520726567756c617220776f726b65722f6c65616420706f736974696f6e2e550152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2063616e63656c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e287365745f6275646765740401286e65775f62756467657418013042616c616e63654f663c543e000b28a0536574732061206e65772062756467657420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e547570646174655f7265776172645f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e0001546e65775f7265776172645f6163636f756e745f6964000130543a3a4163636f756e744964000c2469015570646174652074686520726577617264206163636f756e74206173736f6369617465642077697468206120736574207265776172642072656c6174696f6e7368697020666f72207468652061637469766520776f726b65722e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e507570646174655f7265776172645f616d6f756e74080124776f726b65725f696428012c576f726b657249643c543e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e000d28c855706461746520746865207265776172642070657220626c6f636b20666f72207468652061637469766520776f726b65722e310152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20757064617465206c656164657227732072657761726420616d6f756e74292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3c7365745f7374617475735f7465787404012c7374617475735f746578743101013c4f7074696f6e3c5665633c75383e3e000e30b4536574732061206e657720737461747573207465787420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e002423232057656967687438604f20285329602077686572653a4d012d20605360206973207468652073697a65206f662074686520636f6e74656e7473206f6620607374617475735f746578746020696e206b696c6f6279746573207768656e206974206973206e6f74206e6f6e6500142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e447370656e645f66726f6d5f6275646765740c01286163636f756e745f6964000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000f28a85472616e73666572732073706563696669656420616d6f756e7420746f20616e79206163636f756e742e5c5265717569726573206c6561646572206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6466756e645f776f726b696e675f67726f75705f6275646765740c01246d656d6265725f696428012c4d656d62657249643c543e000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c6530011c5665633c75383e0010209846756e6420776f726b696e672067726f7570206275646765742062792061206d656d6265722e203c7765696768743e0024232320576569676874c4604f202831296020446f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c6c6561645f72656d61726b04010c6d736730011c5665633c75383e0011284c4c6561642072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e34776f726b65725f72656d61726b080124776f726b65725f696428012c576f726b657249643c543e00010c6d736730011c5665633c75383e00122854576f726b65722072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e7106085070616c6c65745f776f726b696e675f67726f75701043616c6c08045400044900014c2c6164645f6f70656e696e6710012c6465736372697074696f6e30011c5665633c75383e0001306f70656e696e675f747970657d03012c4f70656e696e67547970650001307374616b655f706f6c696379610301a45374616b65506f6c6963793c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e3e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e00002cc44164642061206a6f62206f70656e696e6720666f72206120726567756c617220776f726b65722f6c65616420726f6c652e490152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20616464206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e002423232057656967687438604f20284429602077686572653abc2d20604460206973207468652073697a65206f6620606465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e406170706c795f6f6e5f6f70656e696e67040104708103016c4170706c794f6e4f70656e696e67506172616d65746572733c543e000128684170706c79206f6e206120776f726b6572206f70656e696e672e002823203c7765696768743e002423232057656967687438604f20284429602077686572653ac42d20604460206973207468652073697a65206f662060702e6465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3066696c6c5f6f70656e696e670801286f70656e696e675f69642801244f70656e696e6749640001687375636365737366756c5f6170706c69636174696f6e5f6964736901015c42547265655365743c4170706c69636174696f6e49643e000228ac46696c6c206f70656e696e6720666f722074686520726567756c61722f6c65616420706f736974696f6e2e4d0152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2066696c6c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e2823203c7765696768743e002423232057656967687438604f20284129602077686572653acc2d2060416020697320746865206c656e677468206f6620607375636365737366756c5f6170706c69636174696f6e5f69647360142d2044423a242020202d204f2841292c23203c2f7765696768743e4c7570646174655f726f6c655f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e00014c6e65775f726f6c655f6163636f756e745f6964000130543a3a4163636f756e744964000324150155706461746520746865206173736f63696174656420726f6c65206163636f756e74206f66207468652061637469766520726567756c617220776f726b65722f6c6561642e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e286c656176655f726f6c65080124776f726b65725f696428012c576f726b657249643c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000424904c656176652074686520726f6c65206279207468652061637469766520776f726b65722e2823203c7765696768743e002423232057656967687438604f20285229602077686572653ab42d20605260206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e387465726d696e6174655f726f6c650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c7479450101504f7074696f6e3c42616c616e63654f663c543e3e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000528a05465726d696e617465207468652061637469766520776f726b657220627920746865206c6561642e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f207465726d696e61746520746865206c656164657220726f6c65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ad82d20605060206973207468652073697a65206070656e616c74792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c736c6173685f7374616b650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c747918013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e00062c7d01536c61736865732074686520726567756c617220776f726b6572207374616b652c2064656d616e64732061206c6561646572206f726967696e2e204e6f206c696d6974732c206e6f20616374696f6e73206f6e207a65726f207374616b652e3d01496620736c617368696e672062616c616e63652067726561746572207468616e20746865206578697374696e67207374616b65202d207374616b6520697320736c617368656420746f207a65726f2e19015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20736c61736820746865206c6561646572207374616b65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ae82d20605060206973207468652073697a65206f66206070656e616c6974792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3864656372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e00073021014465637265617365732074686520726567756c617220776f726b65722f6c656164207374616b6520616e642072657475726e73207468652072656d61696e64657220746f207468653901776f726b6572207374616b696e675f6163636f756e745f69642e2043616e2062652064656372656173656420746f207a65726f2c206e6f20616374696f6e73206f6e207a65726f207374616b652e944163636570747320746865207374616b6520616d6f756e7420746f2064656372656173652e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20646563726561736520746865206c6561646572207374616b65292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e38696e6372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e0008280501496e637265617365732074686520726567756c617220776f726b65722f6c656164207374616b652c2064656d616e6473206120776f726b6572206f726967696e2e6d014c6f636b7320746f6b656e732066726f6d2074686520776f726b6572207374616b696e675f6163636f756e745f696420657175616c20746f206e6577207374616b652e204e6f206c696d697473206f6e20746865207374616b652e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5077697468647261775f6170706c69636174696f6e0401386170706c69636174696f6e5f69642801344170706c69636174696f6e4964000924010157697468647261772074686520776f726b6572206170706c69636174696f6e2e2043616e20626520646f6e652062792074686520776f726b6572206f6e6c792e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3863616e63656c5f6f70656e696e670401286f70656e696e675f69642801244f70656e696e674964000a28dc43616e63656c20616e206f70656e696e6720666f722074686520726567756c617220776f726b65722f6c65616420706f736974696f6e2e550152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2063616e63656c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e287365745f6275646765740401286e65775f62756467657418013042616c616e63654f663c543e000b28a0536574732061206e65772062756467657420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e547570646174655f7265776172645f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e0001546e65775f7265776172645f6163636f756e745f6964000130543a3a4163636f756e744964000c2469015570646174652074686520726577617264206163636f756e74206173736f6369617465642077697468206120736574207265776172642072656c6174696f6e7368697020666f72207468652061637469766520776f726b65722e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e507570646174655f7265776172645f616d6f756e74080124776f726b65725f696428012c576f726b657249643c543e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e000d28c855706461746520746865207265776172642070657220626c6f636b20666f72207468652061637469766520776f726b65722e310152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20757064617465206c656164657227732072657761726420616d6f756e74292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3c7365745f7374617475735f7465787404012c7374617475735f746578743101013c4f7074696f6e3c5665633c75383e3e000e30b4536574732061206e657720737461747573207465787420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e002423232057656967687438604f20285329602077686572653a4d012d20605360206973207468652073697a65206f662074686520636f6e74656e7473206f6620607374617475735f746578746020696e206b696c6f6279746573207768656e206974206973206e6f74206e6f6e6500142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e447370656e645f66726f6d5f6275646765740c01286163636f756e745f6964000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000f28a85472616e73666572732073706563696669656420616d6f756e7420746f20616e79206163636f756e742e5c5265717569726573206c6561646572206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6466756e645f776f726b696e675f67726f75705f6275646765740c01246d656d6265725f696428012c4d656d62657249643c543e000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c6530011c5665633c75383e0010209846756e6420776f726b696e672067726f7570206275646765742062792061206d656d6265722e203c7765696768743e0024232320576569676874c4604f202831296020446f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c6c6561645f72656d61726b04010c6d736730011c5665633c75383e0011284c4c6561642072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e34776f726b65725f72656d61726b080124776f726b65725f696428012c576f726b657249643c543e00010c6d736730011c5665633c75383e00122854576f726b65722072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e7506085070616c6c65745f776f726b696e675f67726f75701043616c6c08045400044900014c2c6164645f6f70656e696e6710012c6465736372697074696f6e30011c5665633c75383e0001306f70656e696e675f747970657d03012c4f70656e696e67547970650001307374616b655f706f6c696379610301a45374616b65506f6c6963793c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e3e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e00002cc44164642061206a6f62206f70656e696e6720666f72206120726567756c617220776f726b65722f6c65616420726f6c652e490152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20616464206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e002423232057656967687438604f20284429602077686572653abc2d20604460206973207468652073697a65206f6620606465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e406170706c795f6f6e5f6f70656e696e67040104708103016c4170706c794f6e4f70656e696e67506172616d65746572733c543e000128684170706c79206f6e206120776f726b6572206f70656e696e672e002823203c7765696768743e002423232057656967687438604f20284429602077686572653ac42d20604460206973207468652073697a65206f662060702e6465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3066696c6c5f6f70656e696e670801286f70656e696e675f69642801244f70656e696e6749640001687375636365737366756c5f6170706c69636174696f6e5f6964736901015c42547265655365743c4170706c69636174696f6e49643e000228ac46696c6c206f70656e696e6720666f722074686520726567756c61722f6c65616420706f736974696f6e2e4d0152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2066696c6c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e2823203c7765696768743e002423232057656967687438604f20284129602077686572653acc2d2060416020697320746865206c656e677468206f6620607375636365737366756c5f6170706c69636174696f6e5f69647360142d2044423a242020202d204f2841292c23203c2f7765696768743e4c7570646174655f726f6c655f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e00014c6e65775f726f6c655f6163636f756e745f6964000130543a3a4163636f756e744964000324150155706461746520746865206173736f63696174656420726f6c65206163636f756e74206f66207468652061637469766520726567756c617220776f726b65722f6c6561642e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e286c656176655f726f6c65080124776f726b65725f696428012c576f726b657249643c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000424904c656176652074686520726f6c65206279207468652061637469766520776f726b65722e2823203c7765696768743e002423232057656967687438604f20285229602077686572653ab42d20605260206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e387465726d696e6174655f726f6c650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c7479450101504f7074696f6e3c42616c616e63654f663c543e3e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000528a05465726d696e617465207468652061637469766520776f726b657220627920746865206c6561642e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f207465726d696e61746520746865206c656164657220726f6c65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ad82d20605060206973207468652073697a65206070656e616c74792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c736c6173685f7374616b650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c747918013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e00062c7d01536c61736865732074686520726567756c617220776f726b6572207374616b652c2064656d616e64732061206c6561646572206f726967696e2e204e6f206c696d6974732c206e6f20616374696f6e73206f6e207a65726f207374616b652e3d01496620736c617368696e672062616c616e63652067726561746572207468616e20746865206578697374696e67207374616b65202d207374616b6520697320736c617368656420746f207a65726f2e19015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20736c61736820746865206c6561646572207374616b65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ae82d20605060206973207468652073697a65206f66206070656e616c6974792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3864656372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e00073021014465637265617365732074686520726567756c617220776f726b65722f6c656164207374616b6520616e642072657475726e73207468652072656d61696e64657220746f207468653901776f726b6572207374616b696e675f6163636f756e745f69642e2043616e2062652064656372656173656420746f207a65726f2c206e6f20616374696f6e73206f6e207a65726f207374616b652e944163636570747320746865207374616b6520616d6f756e7420746f2064656372656173652e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20646563726561736520746865206c6561646572207374616b65292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e38696e6372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e0008280501496e637265617365732074686520726567756c617220776f726b65722f6c656164207374616b652c2064656d616e6473206120776f726b6572206f726967696e2e6d014c6f636b7320746f6b656e732066726f6d2074686520776f726b6572207374616b696e675f6163636f756e745f696420657175616c20746f206e6577207374616b652e204e6f206c696d697473206f6e20746865207374616b652e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5077697468647261775f6170706c69636174696f6e0401386170706c69636174696f6e5f69642801344170706c69636174696f6e4964000924010157697468647261772074686520776f726b6572206170706c69636174696f6e2e2043616e20626520646f6e652062792074686520776f726b6572206f6e6c792e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3863616e63656c5f6f70656e696e670401286f70656e696e675f69642801244f70656e696e674964000a28dc43616e63656c20616e206f70656e696e6720666f722074686520726567756c617220776f726b65722f6c65616420706f736974696f6e2e550152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2063616e63656c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e287365745f6275646765740401286e65775f62756467657418013042616c616e63654f663c543e000b28a0536574732061206e65772062756467657420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e547570646174655f7265776172645f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e0001546e65775f7265776172645f6163636f756e745f6964000130543a3a4163636f756e744964000c2469015570646174652074686520726577617264206163636f756e74206173736f6369617465642077697468206120736574207265776172642072656c6174696f6e7368697020666f72207468652061637469766520776f726b65722e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e507570646174655f7265776172645f616d6f756e74080124776f726b65725f696428012c576f726b657249643c543e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e000d28c855706461746520746865207265776172642070657220626c6f636b20666f72207468652061637469766520776f726b65722e310152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20757064617465206c656164657227732072657761726420616d6f756e74292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3c7365745f7374617475735f7465787404012c7374617475735f746578743101013c4f7074696f6e3c5665633c75383e3e000e30b4536574732061206e657720737461747573207465787420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e002423232057656967687438604f20285329602077686572653a4d012d20605360206973207468652073697a65206f662074686520636f6e74656e7473206f6620607374617475735f746578746020696e206b696c6f6279746573207768656e206974206973206e6f74206e6f6e6500142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e447370656e645f66726f6d5f6275646765740c01286163636f756e745f6964000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000f28a85472616e73666572732073706563696669656420616d6f756e7420746f20616e79206163636f756e742e5c5265717569726573206c6561646572206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6466756e645f776f726b696e675f67726f75705f6275646765740c01246d656d6265725f696428012c4d656d62657249643c543e000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c6530011c5665633c75383e0010209846756e6420776f726b696e672067726f7570206275646765742062792061206d656d6265722e203c7765696768743e0024232320576569676874c4604f202831296020446f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c6c6561645f72656d61726b04010c6d736730011c5665633c75383e0011284c4c6561642072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e34776f726b65725f72656d61726b080124776f726b65725f696428012c576f726b657249643c543e00010c6d736730011c5665633c75383e00122854576f726b65722072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e7906085070616c6c65745f776f726b696e675f67726f75701043616c6c08045400044900014c2c6164645f6f70656e696e6710012c6465736372697074696f6e30011c5665633c75383e0001306f70656e696e675f747970657d03012c4f70656e696e67547970650001307374616b655f706f6c696379610301a45374616b65506f6c6963793c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e3e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e00002cc44164642061206a6f62206f70656e696e6720666f72206120726567756c617220776f726b65722f6c65616420726f6c652e490152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20616464206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e002423232057656967687438604f20284429602077686572653abc2d20604460206973207468652073697a65206f6620606465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e406170706c795f6f6e5f6f70656e696e67040104708103016c4170706c794f6e4f70656e696e67506172616d65746572733c543e000128684170706c79206f6e206120776f726b6572206f70656e696e672e002823203c7765696768743e002423232057656967687438604f20284429602077686572653ac42d20604460206973207468652073697a65206f662060702e6465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3066696c6c5f6f70656e696e670801286f70656e696e675f69642801244f70656e696e6749640001687375636365737366756c5f6170706c69636174696f6e5f6964736901015c42547265655365743c4170706c69636174696f6e49643e000228ac46696c6c206f70656e696e6720666f722074686520726567756c61722f6c65616420706f736974696f6e2e4d0152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2066696c6c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e2823203c7765696768743e002423232057656967687438604f20284129602077686572653acc2d2060416020697320746865206c656e677468206f6620607375636365737366756c5f6170706c69636174696f6e5f69647360142d2044423a242020202d204f2841292c23203c2f7765696768743e4c7570646174655f726f6c655f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e00014c6e65775f726f6c655f6163636f756e745f6964000130543a3a4163636f756e744964000324150155706461746520746865206173736f63696174656420726f6c65206163636f756e74206f66207468652061637469766520726567756c617220776f726b65722f6c6561642e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e286c656176655f726f6c65080124776f726b65725f696428012c576f726b657249643c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000424904c656176652074686520726f6c65206279207468652061637469766520776f726b65722e2823203c7765696768743e002423232057656967687438604f20285229602077686572653ab42d20605260206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e387465726d696e6174655f726f6c650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c7479450101504f7074696f6e3c42616c616e63654f663c543e3e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000528a05465726d696e617465207468652061637469766520776f726b657220627920746865206c6561642e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f207465726d696e61746520746865206c656164657220726f6c65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ad82d20605060206973207468652073697a65206070656e616c74792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c736c6173685f7374616b650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c747918013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e00062c7d01536c61736865732074686520726567756c617220776f726b6572207374616b652c2064656d616e64732061206c6561646572206f726967696e2e204e6f206c696d6974732c206e6f20616374696f6e73206f6e207a65726f207374616b652e3d01496620736c617368696e672062616c616e63652067726561746572207468616e20746865206578697374696e67207374616b65202d207374616b6520697320736c617368656420746f207a65726f2e19015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20736c61736820746865206c6561646572207374616b65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ae82d20605060206973207468652073697a65206f66206070656e616c6974792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3864656372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e00073021014465637265617365732074686520726567756c617220776f726b65722f6c656164207374616b6520616e642072657475726e73207468652072656d61696e64657220746f207468653901776f726b6572207374616b696e675f6163636f756e745f69642e2043616e2062652064656372656173656420746f207a65726f2c206e6f20616374696f6e73206f6e207a65726f207374616b652e944163636570747320746865207374616b6520616d6f756e7420746f2064656372656173652e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20646563726561736520746865206c6561646572207374616b65292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e38696e6372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e0008280501496e637265617365732074686520726567756c617220776f726b65722f6c656164207374616b652c2064656d616e6473206120776f726b6572206f726967696e2e6d014c6f636b7320746f6b656e732066726f6d2074686520776f726b6572207374616b696e675f6163636f756e745f696420657175616c20746f206e6577207374616b652e204e6f206c696d697473206f6e20746865207374616b652e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5077697468647261775f6170706c69636174696f6e0401386170706c69636174696f6e5f69642801344170706c69636174696f6e4964000924010157697468647261772074686520776f726b6572206170706c69636174696f6e2e2043616e20626520646f6e652062792074686520776f726b6572206f6e6c792e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3863616e63656c5f6f70656e696e670401286f70656e696e675f69642801244f70656e696e674964000a28dc43616e63656c20616e206f70656e696e6720666f722074686520726567756c617220776f726b65722f6c65616420706f736974696f6e2e550152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2063616e63656c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e287365745f6275646765740401286e65775f62756467657418013042616c616e63654f663c543e000b28a0536574732061206e65772062756467657420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e547570646174655f7265776172645f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e0001546e65775f7265776172645f6163636f756e745f6964000130543a3a4163636f756e744964000c2469015570646174652074686520726577617264206163636f756e74206173736f6369617465642077697468206120736574207265776172642072656c6174696f6e7368697020666f72207468652061637469766520776f726b65722e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e507570646174655f7265776172645f616d6f756e74080124776f726b65725f696428012c576f726b657249643c543e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e000d28c855706461746520746865207265776172642070657220626c6f636b20666f72207468652061637469766520776f726b65722e310152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20757064617465206c656164657227732072657761726420616d6f756e74292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3c7365745f7374617475735f7465787404012c7374617475735f746578743101013c4f7074696f6e3c5665633c75383e3e000e30b4536574732061206e657720737461747573207465787420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e002423232057656967687438604f20285329602077686572653a4d012d20605360206973207468652073697a65206f662074686520636f6e74656e7473206f6620607374617475735f746578746020696e206b696c6f6279746573207768656e206974206973206e6f74206e6f6e6500142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e447370656e645f66726f6d5f6275646765740c01286163636f756e745f6964000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000f28a85472616e73666572732073706563696669656420616d6f756e7420746f20616e79206163636f756e742e5c5265717569726573206c6561646572206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6466756e645f776f726b696e675f67726f75705f6275646765740c01246d656d6265725f696428012c4d656d62657249643c543e000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c6530011c5665633c75383e0010209846756e6420776f726b696e672067726f7570206275646765742062792061206d656d6265722e203c7765696768743e0024232320576569676874c4604f202831296020446f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c6c6561645f72656d61726b04010c6d736730011c5665633c75383e0011284c4c6561642072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e34776f726b65725f72656d61726b080124776f726b65725f696428012c576f726b657249643c543e00010c6d736730011c5665633c75383e00122854576f726b65722072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e7d06085070616c6c65745f776f726b696e675f67726f75701043616c6c08045400044900014c2c6164645f6f70656e696e6710012c6465736372697074696f6e30011c5665633c75383e0001306f70656e696e675f747970657d03012c4f70656e696e67547970650001307374616b655f706f6c696379610301a45374616b65506f6c6963793c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e3e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e00002cc44164642061206a6f62206f70656e696e6720666f72206120726567756c617220776f726b65722f6c65616420726f6c652e490152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20616464206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e002423232057656967687438604f20284429602077686572653abc2d20604460206973207468652073697a65206f6620606465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e406170706c795f6f6e5f6f70656e696e67040104708103016c4170706c794f6e4f70656e696e67506172616d65746572733c543e000128684170706c79206f6e206120776f726b6572206f70656e696e672e002823203c7765696768743e002423232057656967687438604f20284429602077686572653ac42d20604460206973207468652073697a65206f662060702e6465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3066696c6c5f6f70656e696e670801286f70656e696e675f69642801244f70656e696e6749640001687375636365737366756c5f6170706c69636174696f6e5f6964736901015c42547265655365743c4170706c69636174696f6e49643e000228ac46696c6c206f70656e696e6720666f722074686520726567756c61722f6c65616420706f736974696f6e2e4d0152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2066696c6c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e2823203c7765696768743e002423232057656967687438604f20284129602077686572653acc2d2060416020697320746865206c656e677468206f6620607375636365737366756c5f6170706c69636174696f6e5f69647360142d2044423a242020202d204f2841292c23203c2f7765696768743e4c7570646174655f726f6c655f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e00014c6e65775f726f6c655f6163636f756e745f6964000130543a3a4163636f756e744964000324150155706461746520746865206173736f63696174656420726f6c65206163636f756e74206f66207468652061637469766520726567756c617220776f726b65722f6c6561642e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e286c656176655f726f6c65080124776f726b65725f696428012c576f726b657249643c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000424904c656176652074686520726f6c65206279207468652061637469766520776f726b65722e2823203c7765696768743e002423232057656967687438604f20285229602077686572653ab42d20605260206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e387465726d696e6174655f726f6c650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c7479450101504f7074696f6e3c42616c616e63654f663c543e3e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000528a05465726d696e617465207468652061637469766520776f726b657220627920746865206c6561642e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f207465726d696e61746520746865206c656164657220726f6c65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ad82d20605060206973207468652073697a65206070656e616c74792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c736c6173685f7374616b650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c747918013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e00062c7d01536c61736865732074686520726567756c617220776f726b6572207374616b652c2064656d616e64732061206c6561646572206f726967696e2e204e6f206c696d6974732c206e6f20616374696f6e73206f6e207a65726f207374616b652e3d01496620736c617368696e672062616c616e63652067726561746572207468616e20746865206578697374696e67207374616b65202d207374616b6520697320736c617368656420746f207a65726f2e19015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20736c61736820746865206c6561646572207374616b65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ae82d20605060206973207468652073697a65206f66206070656e616c6974792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3864656372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e00073021014465637265617365732074686520726567756c617220776f726b65722f6c656164207374616b6520616e642072657475726e73207468652072656d61696e64657220746f207468653901776f726b6572207374616b696e675f6163636f756e745f69642e2043616e2062652064656372656173656420746f207a65726f2c206e6f20616374696f6e73206f6e207a65726f207374616b652e944163636570747320746865207374616b6520616d6f756e7420746f2064656372656173652e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20646563726561736520746865206c6561646572207374616b65292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e38696e6372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e0008280501496e637265617365732074686520726567756c617220776f726b65722f6c656164207374616b652c2064656d616e6473206120776f726b6572206f726967696e2e6d014c6f636b7320746f6b656e732066726f6d2074686520776f726b6572207374616b696e675f6163636f756e745f696420657175616c20746f206e6577207374616b652e204e6f206c696d697473206f6e20746865207374616b652e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5077697468647261775f6170706c69636174696f6e0401386170706c69636174696f6e5f69642801344170706c69636174696f6e4964000924010157697468647261772074686520776f726b6572206170706c69636174696f6e2e2043616e20626520646f6e652062792074686520776f726b6572206f6e6c792e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3863616e63656c5f6f70656e696e670401286f70656e696e675f69642801244f70656e696e674964000a28dc43616e63656c20616e206f70656e696e6720666f722074686520726567756c617220776f726b65722f6c65616420706f736974696f6e2e550152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2063616e63656c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e287365745f6275646765740401286e65775f62756467657418013042616c616e63654f663c543e000b28a0536574732061206e65772062756467657420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e547570646174655f7265776172645f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e0001546e65775f7265776172645f6163636f756e745f6964000130543a3a4163636f756e744964000c2469015570646174652074686520726577617264206163636f756e74206173736f6369617465642077697468206120736574207265776172642072656c6174696f6e7368697020666f72207468652061637469766520776f726b65722e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e507570646174655f7265776172645f616d6f756e74080124776f726b65725f696428012c576f726b657249643c543e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e000d28c855706461746520746865207265776172642070657220626c6f636b20666f72207468652061637469766520776f726b65722e310152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20757064617465206c656164657227732072657761726420616d6f756e74292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3c7365745f7374617475735f7465787404012c7374617475735f746578743101013c4f7074696f6e3c5665633c75383e3e000e30b4536574732061206e657720737461747573207465787420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e002423232057656967687438604f20285329602077686572653a4d012d20605360206973207468652073697a65206f662074686520636f6e74656e7473206f6620607374617475735f746578746020696e206b696c6f6279746573207768656e206974206973206e6f74206e6f6e6500142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e447370656e645f66726f6d5f6275646765740c01286163636f756e745f6964000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000f28a85472616e73666572732073706563696669656420616d6f756e7420746f20616e79206163636f756e742e5c5265717569726573206c6561646572206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6466756e645f776f726b696e675f67726f75705f6275646765740c01246d656d6265725f696428012c4d656d62657249643c543e000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c6530011c5665633c75383e0010209846756e6420776f726b696e672067726f7570206275646765742062792061206d656d6265722e203c7765696768743e0024232320576569676874c4604f202831296020446f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c6c6561645f72656d61726b04010c6d736730011c5665633c75383e0011284c4c6561642072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e34776f726b65725f72656d61726b080124776f726b65725f696428012c576f726b657249643c543e00010c6d736730011c5665633c75383e00122854576f726b65722072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e8106085070616c6c65745f776f726b696e675f67726f75701043616c6c08045400044900014c2c6164645f6f70656e696e6710012c6465736372697074696f6e30011c5665633c75383e0001306f70656e696e675f747970657d03012c4f70656e696e67547970650001307374616b655f706f6c696379610301a45374616b65506f6c6963793c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e3e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e00002cc44164642061206a6f62206f70656e696e6720666f72206120726567756c617220776f726b65722f6c65616420726f6c652e490152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20616464206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e002423232057656967687438604f20284429602077686572653abc2d20604460206973207468652073697a65206f6620606465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e406170706c795f6f6e5f6f70656e696e67040104708103016c4170706c794f6e4f70656e696e67506172616d65746572733c543e000128684170706c79206f6e206120776f726b6572206f70656e696e672e002823203c7765696768743e002423232057656967687438604f20284429602077686572653ac42d20604460206973207468652073697a65206f662060702e6465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3066696c6c5f6f70656e696e670801286f70656e696e675f69642801244f70656e696e6749640001687375636365737366756c5f6170706c69636174696f6e5f6964736901015c42547265655365743c4170706c69636174696f6e49643e000228ac46696c6c206f70656e696e6720666f722074686520726567756c61722f6c65616420706f736974696f6e2e4d0152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2066696c6c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e2823203c7765696768743e002423232057656967687438604f20284129602077686572653acc2d2060416020697320746865206c656e677468206f6620607375636365737366756c5f6170706c69636174696f6e5f69647360142d2044423a242020202d204f2841292c23203c2f7765696768743e4c7570646174655f726f6c655f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e00014c6e65775f726f6c655f6163636f756e745f6964000130543a3a4163636f756e744964000324150155706461746520746865206173736f63696174656420726f6c65206163636f756e74206f66207468652061637469766520726567756c617220776f726b65722f6c6561642e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e286c656176655f726f6c65080124776f726b65725f696428012c576f726b657249643c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000424904c656176652074686520726f6c65206279207468652061637469766520776f726b65722e2823203c7765696768743e002423232057656967687438604f20285229602077686572653ab42d20605260206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e387465726d696e6174655f726f6c650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c7479450101504f7074696f6e3c42616c616e63654f663c543e3e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000528a05465726d696e617465207468652061637469766520776f726b657220627920746865206c6561642e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f207465726d696e61746520746865206c656164657220726f6c65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ad82d20605060206973207468652073697a65206070656e616c74792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c736c6173685f7374616b650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c747918013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e00062c7d01536c61736865732074686520726567756c617220776f726b6572207374616b652c2064656d616e64732061206c6561646572206f726967696e2e204e6f206c696d6974732c206e6f20616374696f6e73206f6e207a65726f207374616b652e3d01496620736c617368696e672062616c616e63652067726561746572207468616e20746865206578697374696e67207374616b65202d207374616b6520697320736c617368656420746f207a65726f2e19015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20736c61736820746865206c6561646572207374616b65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ae82d20605060206973207468652073697a65206f66206070656e616c6974792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3864656372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e00073021014465637265617365732074686520726567756c617220776f726b65722f6c656164207374616b6520616e642072657475726e73207468652072656d61696e64657220746f207468653901776f726b6572207374616b696e675f6163636f756e745f69642e2043616e2062652064656372656173656420746f207a65726f2c206e6f20616374696f6e73206f6e207a65726f207374616b652e944163636570747320746865207374616b6520616d6f756e7420746f2064656372656173652e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20646563726561736520746865206c6561646572207374616b65292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e38696e6372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e0008280501496e637265617365732074686520726567756c617220776f726b65722f6c656164207374616b652c2064656d616e6473206120776f726b6572206f726967696e2e6d014c6f636b7320746f6b656e732066726f6d2074686520776f726b6572207374616b696e675f6163636f756e745f696420657175616c20746f206e6577207374616b652e204e6f206c696d697473206f6e20746865207374616b652e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5077697468647261775f6170706c69636174696f6e0401386170706c69636174696f6e5f69642801344170706c69636174696f6e4964000924010157697468647261772074686520776f726b6572206170706c69636174696f6e2e2043616e20626520646f6e652062792074686520776f726b6572206f6e6c792e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3863616e63656c5f6f70656e696e670401286f70656e696e675f69642801244f70656e696e674964000a28dc43616e63656c20616e206f70656e696e6720666f722074686520726567756c617220776f726b65722f6c65616420706f736974696f6e2e550152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2063616e63656c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e287365745f6275646765740401286e65775f62756467657418013042616c616e63654f663c543e000b28a0536574732061206e65772062756467657420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e547570646174655f7265776172645f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e0001546e65775f7265776172645f6163636f756e745f6964000130543a3a4163636f756e744964000c2469015570646174652074686520726577617264206163636f756e74206173736f6369617465642077697468206120736574207265776172642072656c6174696f6e7368697020666f72207468652061637469766520776f726b65722e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e507570646174655f7265776172645f616d6f756e74080124776f726b65725f696428012c576f726b657249643c543e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e000d28c855706461746520746865207265776172642070657220626c6f636b20666f72207468652061637469766520776f726b65722e310152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20757064617465206c656164657227732072657761726420616d6f756e74292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3c7365745f7374617475735f7465787404012c7374617475735f746578743101013c4f7074696f6e3c5665633c75383e3e000e30b4536574732061206e657720737461747573207465787420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e002423232057656967687438604f20285329602077686572653a4d012d20605360206973207468652073697a65206f662074686520636f6e74656e7473206f6620607374617475735f746578746020696e206b696c6f6279746573207768656e206974206973206e6f74206e6f6e6500142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e447370656e645f66726f6d5f6275646765740c01286163636f756e745f6964000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000f28a85472616e73666572732073706563696669656420616d6f756e7420746f20616e79206163636f756e742e5c5265717569726573206c6561646572206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6466756e645f776f726b696e675f67726f75705f6275646765740c01246d656d6265725f696428012c4d656d62657249643c543e000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c6530011c5665633c75383e0010209846756e6420776f726b696e672067726f7570206275646765742062792061206d656d6265722e203c7765696768743e0024232320576569676874c4604f202831296020446f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c6c6561645f72656d61726b04010c6d736730011c5665633c75383e0011284c4c6561642072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e34776f726b65725f72656d61726b080124776f726b65725f696428012c576f726b657249643c543e00010c6d736730011c5665633c75383e00122854576f726b65722072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e8506085070616c6c65745f776f726b696e675f67726f75701043616c6c08045400044900014c2c6164645f6f70656e696e6710012c6465736372697074696f6e30011c5665633c75383e0001306f70656e696e675f747970657d03012c4f70656e696e67547970650001307374616b655f706f6c696379610301a45374616b65506f6c6963793c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e3e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e00002cc44164642061206a6f62206f70656e696e6720666f72206120726567756c617220776f726b65722f6c65616420726f6c652e490152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20616464206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e002423232057656967687438604f20284429602077686572653abc2d20604460206973207468652073697a65206f6620606465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e406170706c795f6f6e5f6f70656e696e67040104708103016c4170706c794f6e4f70656e696e67506172616d65746572733c543e000128684170706c79206f6e206120776f726b6572206f70656e696e672e002823203c7765696768743e002423232057656967687438604f20284429602077686572653ac42d20604460206973207468652073697a65206f662060702e6465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3066696c6c5f6f70656e696e670801286f70656e696e675f69642801244f70656e696e6749640001687375636365737366756c5f6170706c69636174696f6e5f6964736901015c42547265655365743c4170706c69636174696f6e49643e000228ac46696c6c206f70656e696e6720666f722074686520726567756c61722f6c65616420706f736974696f6e2e4d0152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2066696c6c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e2823203c7765696768743e002423232057656967687438604f20284129602077686572653acc2d2060416020697320746865206c656e677468206f6620607375636365737366756c5f6170706c69636174696f6e5f69647360142d2044423a242020202d204f2841292c23203c2f7765696768743e4c7570646174655f726f6c655f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e00014c6e65775f726f6c655f6163636f756e745f6964000130543a3a4163636f756e744964000324150155706461746520746865206173736f63696174656420726f6c65206163636f756e74206f66207468652061637469766520726567756c617220776f726b65722f6c6561642e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e286c656176655f726f6c65080124776f726b65725f696428012c576f726b657249643c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000424904c656176652074686520726f6c65206279207468652061637469766520776f726b65722e2823203c7765696768743e002423232057656967687438604f20285229602077686572653ab42d20605260206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e387465726d696e6174655f726f6c650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c7479450101504f7074696f6e3c42616c616e63654f663c543e3e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000528a05465726d696e617465207468652061637469766520776f726b657220627920746865206c6561642e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f207465726d696e61746520746865206c656164657220726f6c65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ad82d20605060206973207468652073697a65206070656e616c74792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c736c6173685f7374616b650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c747918013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e00062c7d01536c61736865732074686520726567756c617220776f726b6572207374616b652c2064656d616e64732061206c6561646572206f726967696e2e204e6f206c696d6974732c206e6f20616374696f6e73206f6e207a65726f207374616b652e3d01496620736c617368696e672062616c616e63652067726561746572207468616e20746865206578697374696e67207374616b65202d207374616b6520697320736c617368656420746f207a65726f2e19015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20736c61736820746865206c6561646572207374616b65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ae82d20605060206973207468652073697a65206f66206070656e616c6974792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3864656372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e00073021014465637265617365732074686520726567756c617220776f726b65722f6c656164207374616b6520616e642072657475726e73207468652072656d61696e64657220746f207468653901776f726b6572207374616b696e675f6163636f756e745f69642e2043616e2062652064656372656173656420746f207a65726f2c206e6f20616374696f6e73206f6e207a65726f207374616b652e944163636570747320746865207374616b6520616d6f756e7420746f2064656372656173652e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20646563726561736520746865206c6561646572207374616b65292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e38696e6372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e0008280501496e637265617365732074686520726567756c617220776f726b65722f6c656164207374616b652c2064656d616e6473206120776f726b6572206f726967696e2e6d014c6f636b7320746f6b656e732066726f6d2074686520776f726b6572207374616b696e675f6163636f756e745f696420657175616c20746f206e6577207374616b652e204e6f206c696d697473206f6e20746865207374616b652e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5077697468647261775f6170706c69636174696f6e0401386170706c69636174696f6e5f69642801344170706c69636174696f6e4964000924010157697468647261772074686520776f726b6572206170706c69636174696f6e2e2043616e20626520646f6e652062792074686520776f726b6572206f6e6c792e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3863616e63656c5f6f70656e696e670401286f70656e696e675f69642801244f70656e696e674964000a28dc43616e63656c20616e206f70656e696e6720666f722074686520726567756c617220776f726b65722f6c65616420706f736974696f6e2e550152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2063616e63656c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e287365745f6275646765740401286e65775f62756467657418013042616c616e63654f663c543e000b28a0536574732061206e65772062756467657420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e547570646174655f7265776172645f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e0001546e65775f7265776172645f6163636f756e745f6964000130543a3a4163636f756e744964000c2469015570646174652074686520726577617264206163636f756e74206173736f6369617465642077697468206120736574207265776172642072656c6174696f6e7368697020666f72207468652061637469766520776f726b65722e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e507570646174655f7265776172645f616d6f756e74080124776f726b65725f696428012c576f726b657249643c543e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e000d28c855706461746520746865207265776172642070657220626c6f636b20666f72207468652061637469766520776f726b65722e310152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20757064617465206c656164657227732072657761726420616d6f756e74292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3c7365745f7374617475735f7465787404012c7374617475735f746578743101013c4f7074696f6e3c5665633c75383e3e000e30b4536574732061206e657720737461747573207465787420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e002423232057656967687438604f20285329602077686572653a4d012d20605360206973207468652073697a65206f662074686520636f6e74656e7473206f6620607374617475735f746578746020696e206b696c6f6279746573207768656e206974206973206e6f74206e6f6e6500142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e447370656e645f66726f6d5f6275646765740c01286163636f756e745f6964000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000f28a85472616e73666572732073706563696669656420616d6f756e7420746f20616e79206163636f756e742e5c5265717569726573206c6561646572206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6466756e645f776f726b696e675f67726f75705f6275646765740c01246d656d6265725f696428012c4d656d62657249643c543e000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c6530011c5665633c75383e0010209846756e6420776f726b696e672067726f7570206275646765742062792061206d656d6265722e203c7765696768743e0024232320576569676874c4604f202831296020446f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c6c6561645f72656d61726b04010c6d736730011c5665633c75383e0011284c4c6561642072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e34776f726b65725f72656d61726b080124776f726b65725f696428012c576f726b657249643c543e00010c6d736730011c5665633c75383e00122854576f726b65722072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e8906085070616c6c65745f776f726b696e675f67726f75701043616c6c08045400044900014c2c6164645f6f70656e696e6710012c6465736372697074696f6e30011c5665633c75383e0001306f70656e696e675f747970657d03012c4f70656e696e67547970650001307374616b655f706f6c696379610301a45374616b65506f6c6963793c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e3e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e00002cc44164642061206a6f62206f70656e696e6720666f72206120726567756c617220776f726b65722f6c65616420726f6c652e490152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20616464206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e002423232057656967687438604f20284429602077686572653abc2d20604460206973207468652073697a65206f6620606465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e406170706c795f6f6e5f6f70656e696e67040104708103016c4170706c794f6e4f70656e696e67506172616d65746572733c543e000128684170706c79206f6e206120776f726b6572206f70656e696e672e002823203c7765696768743e002423232057656967687438604f20284429602077686572653ac42d20604460206973207468652073697a65206f662060702e6465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3066696c6c5f6f70656e696e670801286f70656e696e675f69642801244f70656e696e6749640001687375636365737366756c5f6170706c69636174696f6e5f6964736901015c42547265655365743c4170706c69636174696f6e49643e000228ac46696c6c206f70656e696e6720666f722074686520726567756c61722f6c65616420706f736974696f6e2e4d0152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2066696c6c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e2823203c7765696768743e002423232057656967687438604f20284129602077686572653acc2d2060416020697320746865206c656e677468206f6620607375636365737366756c5f6170706c69636174696f6e5f69647360142d2044423a242020202d204f2841292c23203c2f7765696768743e4c7570646174655f726f6c655f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e00014c6e65775f726f6c655f6163636f756e745f6964000130543a3a4163636f756e744964000324150155706461746520746865206173736f63696174656420726f6c65206163636f756e74206f66207468652061637469766520726567756c617220776f726b65722f6c6561642e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e286c656176655f726f6c65080124776f726b65725f696428012c576f726b657249643c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000424904c656176652074686520726f6c65206279207468652061637469766520776f726b65722e2823203c7765696768743e002423232057656967687438604f20285229602077686572653ab42d20605260206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e387465726d696e6174655f726f6c650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c7479450101504f7074696f6e3c42616c616e63654f663c543e3e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000528a05465726d696e617465207468652061637469766520776f726b657220627920746865206c6561642e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f207465726d696e61746520746865206c656164657220726f6c65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ad82d20605060206973207468652073697a65206070656e616c74792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c736c6173685f7374616b650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c747918013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e00062c7d01536c61736865732074686520726567756c617220776f726b6572207374616b652c2064656d616e64732061206c6561646572206f726967696e2e204e6f206c696d6974732c206e6f20616374696f6e73206f6e207a65726f207374616b652e3d01496620736c617368696e672062616c616e63652067726561746572207468616e20746865206578697374696e67207374616b65202d207374616b6520697320736c617368656420746f207a65726f2e19015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20736c61736820746865206c6561646572207374616b65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ae82d20605060206973207468652073697a65206f66206070656e616c6974792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3864656372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e00073021014465637265617365732074686520726567756c617220776f726b65722f6c656164207374616b6520616e642072657475726e73207468652072656d61696e64657220746f207468653901776f726b6572207374616b696e675f6163636f756e745f69642e2043616e2062652064656372656173656420746f207a65726f2c206e6f20616374696f6e73206f6e207a65726f207374616b652e944163636570747320746865207374616b6520616d6f756e7420746f2064656372656173652e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20646563726561736520746865206c6561646572207374616b65292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e38696e6372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e0008280501496e637265617365732074686520726567756c617220776f726b65722f6c656164207374616b652c2064656d616e6473206120776f726b6572206f726967696e2e6d014c6f636b7320746f6b656e732066726f6d2074686520776f726b6572207374616b696e675f6163636f756e745f696420657175616c20746f206e6577207374616b652e204e6f206c696d697473206f6e20746865207374616b652e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5077697468647261775f6170706c69636174696f6e0401386170706c69636174696f6e5f69642801344170706c69636174696f6e4964000924010157697468647261772074686520776f726b6572206170706c69636174696f6e2e2043616e20626520646f6e652062792074686520776f726b6572206f6e6c792e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3863616e63656c5f6f70656e696e670401286f70656e696e675f69642801244f70656e696e674964000a28dc43616e63656c20616e206f70656e696e6720666f722074686520726567756c617220776f726b65722f6c65616420706f736974696f6e2e550152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2063616e63656c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e287365745f6275646765740401286e65775f62756467657418013042616c616e63654f663c543e000b28a0536574732061206e65772062756467657420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e547570646174655f7265776172645f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e0001546e65775f7265776172645f6163636f756e745f6964000130543a3a4163636f756e744964000c2469015570646174652074686520726577617264206163636f756e74206173736f6369617465642077697468206120736574207265776172642072656c6174696f6e7368697020666f72207468652061637469766520776f726b65722e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e507570646174655f7265776172645f616d6f756e74080124776f726b65725f696428012c576f726b657249643c543e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e000d28c855706461746520746865207265776172642070657220626c6f636b20666f72207468652061637469766520776f726b65722e310152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20757064617465206c656164657227732072657761726420616d6f756e74292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3c7365745f7374617475735f7465787404012c7374617475735f746578743101013c4f7074696f6e3c5665633c75383e3e000e30b4536574732061206e657720737461747573207465787420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e002423232057656967687438604f20285329602077686572653a4d012d20605360206973207468652073697a65206f662074686520636f6e74656e7473206f6620607374617475735f746578746020696e206b696c6f6279746573207768656e206974206973206e6f74206e6f6e6500142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e447370656e645f66726f6d5f6275646765740c01286163636f756e745f6964000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000f28a85472616e73666572732073706563696669656420616d6f756e7420746f20616e79206163636f756e742e5c5265717569726573206c6561646572206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6466756e645f776f726b696e675f67726f75705f6275646765740c01246d656d6265725f696428012c4d656d62657249643c543e000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c6530011c5665633c75383e0010209846756e6420776f726b696e672067726f7570206275646765742062792061206d656d6265722e203c7765696768743e0024232320576569676874c4604f202831296020446f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c6c6561645f72656d61726b04010c6d736730011c5665633c75383e0011284c4c6561642072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e34776f726b65725f72656d61726b080124776f726b65725f696428012c576f726b657249643c543e00010c6d736730011c5665633c75383e00122854576f726b65722072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e8d06085070616c6c65745f776f726b696e675f67726f75701043616c6c08045400044900014c2c6164645f6f70656e696e6710012c6465736372697074696f6e30011c5665633c75383e0001306f70656e696e675f747970657d03012c4f70656e696e67547970650001307374616b655f706f6c696379610301a45374616b65506f6c6963793c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e3e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e00002cc44164642061206a6f62206f70656e696e6720666f72206120726567756c617220776f726b65722f6c65616420726f6c652e490152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20616464206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e002423232057656967687438604f20284429602077686572653abc2d20604460206973207468652073697a65206f6620606465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e406170706c795f6f6e5f6f70656e696e67040104708103016c4170706c794f6e4f70656e696e67506172616d65746572733c543e000128684170706c79206f6e206120776f726b6572206f70656e696e672e002823203c7765696768743e002423232057656967687438604f20284429602077686572653ac42d20604460206973207468652073697a65206f662060702e6465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3066696c6c5f6f70656e696e670801286f70656e696e675f69642801244f70656e696e6749640001687375636365737366756c5f6170706c69636174696f6e5f6964736901015c42547265655365743c4170706c69636174696f6e49643e000228ac46696c6c206f70656e696e6720666f722074686520726567756c61722f6c65616420706f736974696f6e2e4d0152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2066696c6c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e2823203c7765696768743e002423232057656967687438604f20284129602077686572653acc2d2060416020697320746865206c656e677468206f6620607375636365737366756c5f6170706c69636174696f6e5f69647360142d2044423a242020202d204f2841292c23203c2f7765696768743e4c7570646174655f726f6c655f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e00014c6e65775f726f6c655f6163636f756e745f6964000130543a3a4163636f756e744964000324150155706461746520746865206173736f63696174656420726f6c65206163636f756e74206f66207468652061637469766520726567756c617220776f726b65722f6c6561642e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e286c656176655f726f6c65080124776f726b65725f696428012c576f726b657249643c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000424904c656176652074686520726f6c65206279207468652061637469766520776f726b65722e2823203c7765696768743e002423232057656967687438604f20285229602077686572653ab42d20605260206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e387465726d696e6174655f726f6c650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c7479450101504f7074696f6e3c42616c616e63654f663c543e3e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000528a05465726d696e617465207468652061637469766520776f726b657220627920746865206c6561642e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f207465726d696e61746520746865206c656164657220726f6c65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ad82d20605060206973207468652073697a65206070656e616c74792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c736c6173685f7374616b650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c747918013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e00062c7d01536c61736865732074686520726567756c617220776f726b6572207374616b652c2064656d616e64732061206c6561646572206f726967696e2e204e6f206c696d6974732c206e6f20616374696f6e73206f6e207a65726f207374616b652e3d01496620736c617368696e672062616c616e63652067726561746572207468616e20746865206578697374696e67207374616b65202d207374616b6520697320736c617368656420746f207a65726f2e19015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20736c61736820746865206c6561646572207374616b65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ae82d20605060206973207468652073697a65206f66206070656e616c6974792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3864656372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e00073021014465637265617365732074686520726567756c617220776f726b65722f6c656164207374616b6520616e642072657475726e73207468652072656d61696e64657220746f207468653901776f726b6572207374616b696e675f6163636f756e745f69642e2043616e2062652064656372656173656420746f207a65726f2c206e6f20616374696f6e73206f6e207a65726f207374616b652e944163636570747320746865207374616b6520616d6f756e7420746f2064656372656173652e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20646563726561736520746865206c6561646572207374616b65292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e38696e6372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e0008280501496e637265617365732074686520726567756c617220776f726b65722f6c656164207374616b652c2064656d616e6473206120776f726b6572206f726967696e2e6d014c6f636b7320746f6b656e732066726f6d2074686520776f726b6572207374616b696e675f6163636f756e745f696420657175616c20746f206e6577207374616b652e204e6f206c696d697473206f6e20746865207374616b652e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5077697468647261775f6170706c69636174696f6e0401386170706c69636174696f6e5f69642801344170706c69636174696f6e4964000924010157697468647261772074686520776f726b6572206170706c69636174696f6e2e2043616e20626520646f6e652062792074686520776f726b6572206f6e6c792e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3863616e63656c5f6f70656e696e670401286f70656e696e675f69642801244f70656e696e674964000a28dc43616e63656c20616e206f70656e696e6720666f722074686520726567756c617220776f726b65722f6c65616420706f736974696f6e2e550152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2063616e63656c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e287365745f6275646765740401286e65775f62756467657418013042616c616e63654f663c543e000b28a0536574732061206e65772062756467657420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e547570646174655f7265776172645f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e0001546e65775f7265776172645f6163636f756e745f6964000130543a3a4163636f756e744964000c2469015570646174652074686520726577617264206163636f756e74206173736f6369617465642077697468206120736574207265776172642072656c6174696f6e7368697020666f72207468652061637469766520776f726b65722e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e507570646174655f7265776172645f616d6f756e74080124776f726b65725f696428012c576f726b657249643c543e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e000d28c855706461746520746865207265776172642070657220626c6f636b20666f72207468652061637469766520776f726b65722e310152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20757064617465206c656164657227732072657761726420616d6f756e74292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3c7365745f7374617475735f7465787404012c7374617475735f746578743101013c4f7074696f6e3c5665633c75383e3e000e30b4536574732061206e657720737461747573207465787420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e002423232057656967687438604f20285329602077686572653a4d012d20605360206973207468652073697a65206f662074686520636f6e74656e7473206f6620607374617475735f746578746020696e206b696c6f6279746573207768656e206974206973206e6f74206e6f6e6500142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e447370656e645f66726f6d5f6275646765740c01286163636f756e745f6964000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000f28a85472616e73666572732073706563696669656420616d6f756e7420746f20616e79206163636f756e742e5c5265717569726573206c6561646572206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6466756e645f776f726b696e675f67726f75705f6275646765740c01246d656d6265725f696428012c4d656d62657249643c543e000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c6530011c5665633c75383e0010209846756e6420776f726b696e672067726f7570206275646765742062792061206d656d6265722e203c7765696768743e0024232320576569676874c4604f202831296020446f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c6c6561645f72656d61726b04010c6d736730011c5665633c75383e0011284c4c6561642072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e34776f726b65725f72656d61726b080124776f726b65725f696428012c576f726b657249643c543e00010c6d736730011c5665633c75383e00122854576f726b65722072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e910608586a6f7973747265616d5f6e6f64655f72756e74696d65304f726967696e43616c6c65720001081873797374656d0400950601746672616d655f73797374656d3a3a4f726967696e3c52756e74696d653e00000010566f69640400990601110173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a566f69640001000095060c346672616d655f737570706f7274206469737061746368245261774f726967696e04244163636f756e7449640100010c10526f6f74000000185369676e656404000001244163636f756e744964000100104e6f6e65000200009906081c73705f636f726510566f6964000100009d060c3870616c6c65745f7574696c6974791870616c6c6574144572726f7204045400010430546f6f4d616e7943616c6c730000045c546f6f206d616e792063616c6c7320626174636865642e04b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a090909a1060c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401a506045300000400a90601185665633c543e0000a506000004084d042800a906000002a50600ad060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540104045300000400b10601185665633c543e0000b1060000020400b50604184f7074696f6e04045401b9060108104e6f6e6500000010536f6d650400b9060000010000b9060c4473705f636f6e73656e7375735f626162651c646967657374732450726544696765737400010c1c5072696d6172790400bd0601405072696d617279507265446967657374000100385365636f6e64617279506c61696e0400c106015c5365636f6e64617279506c61696e507265446967657374000200305365636f6e646172795652460400c50601545365636f6e6461727956524650726544696765737400030000bd060c4473705f636f6e73656e7375735f626162651c64696765737473405072696d617279507265446967657374000010013c617574686f726974795f696e64657810015473757065723a3a417574686f72697479496e646578000110736c6f7451040110536c6f740001287672665f6f75747075740401245652464f75747075740001247672665f70726f6f66a105012056524650726f6f660000c1060c4473705f636f6e73656e7375735f626162651c646967657374735c5365636f6e64617279506c61696e507265446967657374000008013c617574686f726974795f696e64657810015473757065723a3a417574686f72697479496e646578000110736c6f7451040110536c6f740000c5060c4473705f636f6e73656e7375735f626162651c64696765737473545365636f6e64617279565246507265446967657374000010013c617574686f726974795f696e64657810015473757065723a3a417574686f72697479496e646578000110736c6f7451040110536c6f740001287672665f6f75747075740401245652464f75747075740001247672665f70726f6f66a105012056524650726f6f660000c90604184f7074696f6e04045401040108104e6f6e6500000010536f6d650400040000010000cd06084473705f636f6e73656e7375735f62616265584261626545706f6368436f6e66696775726174696f6e00000801046379030128287536342c2075363429000134616c6c6f7765645f736c6f74735d040130416c6c6f776564536c6f74730000d1060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401bd02045300000400b90201185665633c543e0000d5060c2c70616c6c65745f626162651870616c6c6574144572726f7204045400011060496e76616c696445717569766f636174696f6e50726f6f660000043101416e2065717569766f636174696f6e2070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e60496e76616c69644b65794f776e65727368697050726f6f66000104310141206b6579206f776e6572736869702070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e584475706c69636174654f6666656e63655265706f727400020415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e50496e76616c6964436f6e66696775726174696f6e0003048c5375626d697474656420636f6e66696775726174696f6e20697320696e76616c69642e04b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a090909d9060c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401dd06045300000400e50601185665633c543e0000dd06083c70616c6c65745f62616c616e6365732c42616c616e63654c6f636b041c42616c616e63650118000c01086964250401384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e73e106011c526561736f6e730000e106083c70616c6c65745f62616c616e6365731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c00020000e506000002dd0600e9060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401ed06045300000400f10601185665633c543e0000ed06083c70616c6c65745f62616c616e6365732c52657365727665446174610844526573657276654964656e7469666965720125041c42616c616e6365011800080108696425040144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e63650000f106000002ed0600f5060c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001203856657374696e6742616c616e63650000049856657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c7565544c69717569646974795265737472696374696f6e73000104c44163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c4c496e73756666696369656e7442616c616e63650002047842616c616e636520746f6f206c6f7720746f2073656e642076616c75652e484578697374656e7469616c4465706f736974000304e856616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f736974244b656570416c6976650004048c5472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e745c4578697374696e6756657374696e675363686564756c65000504c8412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742c446561644163636f756e740006048842656e6566696369617279206163636f756e74206d757374207072652d65786973743c546f6f4d616e795265736572766573000704ac4e756d626572206f66206e616d656420726573657276657320657863656564204d6178526573657276657304b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a090909f9060c3473705f61726974686d657469632c66697865645f706f696e742446697865645531323800000400180110753132380000fd06086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e74000000085632000100000107089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f7068617365345265616479536f6c7574696f6e04045400000c0120737570706f727473050701b0426f756e646564537570706f7274733c543a3a4163636f756e7449642c20543a3a4d617857696e6e6572733e00011473636f72659c0134456c656374696f6e53636f726500011c636f6d7075746590013c456c656374696f6e436f6d70757465000005070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014905045300000400450501185665633c543e00000907089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f706861736534526f756e64536e617073686f740404540000080118766f746572730d07013c5665633c566f7465724f663c543e3e00011c746172676574735d0501445665633c543a3a4163636f756e7449643e00000d0700000211070011070000040c002815070015070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401000453000004005d0501185665633c543e000019070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454011d07045300000400210701185665633c543e00001d070000040c9c10100021070000021d070025070c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f7068617365187369676e6564405369676e65645375626d697373696f6e0c244163636f756e74496401001c42616c616e6365011820536f6c7574696f6e0171040010010c77686f0001244163636f756e74496400011c6465706f73697418011c42616c616e63650001307261775f736f6c7574696f6e6d040154526177536f6c7574696f6e3c536f6c7574696f6e3e00012063616c6c5f66656518011c42616c616e6365000029070c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173651870616c6c6574144572726f720404540001386850726544697370617463684561726c795375626d697373696f6e000004645375626d697373696f6e2077617320746f6f206561726c792e6c507265446973706174636857726f6e6757696e6e6572436f756e740001048857726f6e67206e756d626572206f662077696e6e6572732070726573656e7465642e6450726544697370617463685765616b5375626d697373696f6e000204905375626d697373696f6e2077617320746f6f207765616b2c2073636f72652d776973652e3c5369676e6564517565756546756c6c0003044901546865207175657565207761732066756c6c2c20616e642074686520736f6c7574696f6e20776173206e6f7420626574746572207468616e20616e79206f6620746865206578697374696e67206f6e65732e585369676e656443616e6e6f745061794465706f73697400040494546865206f726967696e206661696c656420746f2070617920746865206465706f7369742e505369676e6564496e76616c69645769746e657373000504a05769746e657373206461746120746f20646973706174636861626c6520697320696e76616c69642e4c5369676e6564546f6f4d756368576569676874000604b8546865207369676e6564207375626d697373696f6e20636f6e73756d657320746f6f206d756368207765696768743c4f637743616c6c57726f6e67457261000704984f4357207375626d697474656420736f6c7574696f6e20666f722077726f6e6720726f756e645c4d697373696e67536e617073686f744d65746164617461000804a8536e617073686f74206d657461646174612073686f756c6420657869737420627574206469646e27742e58496e76616c69645375626d697373696f6e496e646578000904d06053656c663a3a696e736572745f7375626d697373696f6e602072657475726e656420616e20696e76616c696420696e6465782e3843616c6c4e6f74416c6c6f776564000a04985468652063616c6c206973206e6f7420616c6c6f776564206174207468697320706f696e742e3846616c6c6261636b4661696c6564000b044c5468652066616c6c6261636b206661696c65642c426f756e644e6f744d6574000c0448536f6d6520626f756e64206e6f74206d657438546f6f4d616e7957696e6e657273000d049c5375626d697474656420736f6c7574696f6e2068617320746f6f206d616e792077696e6e657273040d014572726f72206f66207468652070616c6c657420746861742063616e2062652072657475726e656420696e20726573706f6e736520746f20646973706174636865732e2d07083870616c6c65745f7374616b696e67345374616b696e674c656467657204045400001401147374617368000130543a3a4163636f756e744964000114746f74616cec013042616c616e63654f663c543e000118616374697665ec013042616c616e63654f663c543e000124756e6c6f636b696e67310701f0426f756e6465645665633c556e6c6f636b4368756e6b3c42616c616e63654f663c543e3e2c20543a3a4d6178556e6c6f636b696e674368756e6b733e00013c636c61696d65645f726577617264733d070194426f756e6465645665633c457261496e6465782c20543a3a486973746f727944657074683e000031070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454013507045300000400390701185665633c543e00003507083870616c6c65745f7374616b696e672c556e6c6f636b4368756e6b041c42616c616e636501180008011476616c7565ec011c42616c616e636500010c657261e5030120457261496e646578000039070000023507003d070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540110045300000400650501185665633c543e00004107083870616c6c65745f7374616b696e672c4e6f6d696e6174696f6e7304045400000c011c74617267657473150701ac426f756e6465645665633c543a3a4163636f756e7449642c20543a3a4d61784e6f6d696e6174696f6e733e0001307375626d69747465645f696e100120457261496e64657800012873757070726573736564980110626f6f6c00004507083870616c6c65745f7374616b696e6734416374697665457261496e666f0000080114696e646578100120457261496e64657800011473746172743501012c4f7074696f6e3c7536343e00004907000004081000004d07083870616c6c65745f7374616b696e673c457261526577617264506f696e747304244163636f756e744964010000080114746f74616c10012c526577617264506f696e74000128696e646976696475616c5107018042547265654d61703c4163636f756e7449642c20526577617264506f696e743e00005107042042547265654d617008044b010004560110000400550700000055070000025907005907000004080010005d070000026107006107083870616c6c65745f7374616b696e6738556e6170706c696564536c61736808244163636f756e74496401001c42616c616e636501180014012476616c696461746f720001244163636f756e74496400010c6f776e18011c42616c616e63650001186f7468657273510501645665633c284163636f756e7449642c2042616c616e6365293e0001247265706f72746572735d0501385665633c4163636f756e7449643e0001187061796f757418011c42616c616e63650000650700000408ac180069070c3870616c6c65745f7374616b696e6720736c617368696e6734536c617368696e675370616e7300001001287370616e5f696e6465781001245370616e496e6465780001286c6173745f7374617274100120457261496e6465780001486c6173745f6e6f6e7a65726f5f736c617368100120457261496e6465780001147072696f72650501345665633c457261496e6465783e00006d070c3870616c6c65745f7374616b696e6720736c617368696e67285370616e5265636f7264041c42616c616e636501180008011c736c617368656418011c42616c616e6365000120706169645f6f757418011c42616c616e6365000071070000027507007507000004081098007907103870616c6c65745f7374616b696e671870616c6c65741870616c6c6574144572726f72040454000168344e6f74436f6e74726f6c6c6572000004644e6f74206120636f6e74726f6c6c6572206163636f756e742e204e6f745374617368000104504e6f742061207374617368206163636f756e742e34416c7265616479426f6e64656400020460537461736820697320616c726561647920626f6e6465642e34416c726561647950616972656400030474436f6e74726f6c6c657220697320616c7265616479207061697265642e30456d7074795461726765747300040460546172676574732063616e6e6f7420626520656d7074792e384475706c6963617465496e646578000504404475706c696361746520696e6465782e44496e76616c6964536c617368496e64657800060484536c617368207265636f726420696e646578206f7574206f6620626f756e64732e40496e73756666696369656e74426f6e6400070c590143616e6e6f74206861766520612076616c696461746f72206f72206e6f6d696e61746f7220726f6c652c20776974682076616c7565206c657373207468616e20746865206d696e696d756d20646566696e65642062793d01676f7665726e616e6365202873656520604d696e56616c696461746f72426f6e646020616e6420604d696e4e6f6d696e61746f72426f6e6460292e20496620756e626f6e64696e67206973207468651501696e74656e74696f6e2c20606368696c6c6020666972737420746f2072656d6f7665206f6e65277320726f6c652061732076616c696461746f722f6e6f6d696e61746f722e304e6f4d6f72654368756e6b730008049043616e206e6f74207363686564756c65206d6f726520756e6c6f636b206368756e6b732e344e6f556e6c6f636b4368756e6b000904a043616e206e6f74207265626f6e6420776974686f757420756e6c6f636b696e67206368756e6b732e3046756e646564546172676574000a04c8417474656d7074696e6720746f2074617267657420612073746173682074686174207374696c6c206861732066756e64732e48496e76616c6964457261546f526577617264000b0458496e76616c69642065726120746f207265776172642e68496e76616c69644e756d6265724f664e6f6d696e6174696f6e73000c0478496e76616c6964206e756d626572206f66206e6f6d696e6174696f6e732e484e6f74536f72746564416e64556e69717565000d04804974656d7320617265206e6f7420736f7274656420616e6420756e697175652e38416c7265616479436c61696d6564000e0409015265776172647320666f72207468697320657261206861766520616c7265616479206265656e20636c61696d656420666f7220746869732076616c696461746f722e54496e636f7272656374486973746f72794465707468000f04c0496e636f72726563742070726576696f757320686973746f727920646570746820696e7075742070726f76696465642e58496e636f7272656374536c617368696e675370616e73001004b0496e636f7272656374206e756d626572206f6620736c617368696e67207370616e732070726f76696465642e2042616453746174650011043901496e7465726e616c20737461746520686173206265636f6d6520736f6d65686f7720636f7272757074656420616e6420746865206f7065726174696f6e2063616e6e6f7420636f6e74696e75652e38546f6f4d616e795461726765747300120494546f6f206d616e79206e6f6d696e6174696f6e207461726765747320737570706c6965642e244261645461726765740013043d0141206e6f6d696e6174696f6e207461726765742077617320737570706c69656420746861742077617320626c6f636b6564206f72206f7468657277697365206e6f7420612076616c696461746f722e4043616e6e6f744368696c6c4f74686572001404550154686520757365722068617320656e6f75676820626f6e6420616e6420746875732063616e6e6f74206265206368696c6c656420666f72636566756c6c7920627920616e2065787465726e616c20706572736f6e2e44546f6f4d616e794e6f6d696e61746f72730015084d0154686572652061726520746f6f206d616e79206e6f6d696e61746f727320696e207468652073797374656d2e20476f7665726e616e6365206e6565647320746f2061646a75737420746865207374616b696e67b473657474696e677320746f206b656570207468696e6773207361666520666f72207468652072756e74696d652e44546f6f4d616e7956616c696461746f7273001608550154686572652061726520746f6f206d616e792076616c696461746f722063616e6469646174657320696e207468652073797374656d2e20476f7665726e616e6365206e6565647320746f2061646a75737420746865d47374616b696e672073657474696e677320746f206b656570207468696e6773207361666520666f72207468652072756e74696d652e40436f6d6d697373696f6e546f6f4c6f77001704e0436f6d6d697373696f6e20697320746f6f206c6f772e204d757374206265206174206c6561737420604d696e436f6d6d697373696f6e602e2c426f756e644e6f744d657400180458536f6d6520626f756e64206973206e6f74206d65742e44426f6e64696e6752657374726963746564001904e045787465726e616c207265737472696374696f6e2070726576656e747320626f6e64696e67207769746820676976656e206163636f756e7404b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a0909097d07000002810700810700000408007d05008507000004088907300089070c1c73705f636f72651863727970746f244b65795479706549640000040040011c5b75383b20345d00008d070c3870616c6c65745f73657373696f6e1870616c6c6574144572726f7204045400011430496e76616c696450726f6f6600000460496e76616c6964206f776e6572736869702070726f6f662e5c4e6f4173736f63696174656456616c696461746f7249640001049c4e6f206173736f6369617465642076616c696461746f7220494420666f72206163636f756e742e344475706c6963617465644b65790002046452656769737465726564206475706c6963617465206b65792e184e6f4b657973000304a44e6f206b65797320617265206173736f63696174656420776974682074686973206163636f756e742e244e6f4163636f756e7400040419014b65792073657474696e67206163636f756e74206973206e6f74206c6976652c20736f206974277320696d706f737369626c6520746f206173736f6369617465206b6579732e04744572726f7220666f72207468652073657373696f6e2070616c6c65742e9107000004082c10009507083870616c6c65745f6772616e6470612c53746f726564537461746504044e01100110104c6976650000003050656e64696e6750617573650801307363686564756c65645f61741001044e00011464656c61791001044e000100185061757365640002003450656e64696e67526573756d650801307363686564756c65645f61741001044e00011464656c61791001044e000300009907083870616c6c65745f6772616e6470614c53746f72656450656e64696e674368616e676508044e0110144c696d697400001001307363686564756c65645f61741001044e00011464656c61791001044e0001406e6578745f617574686f7269746965739d07016c426f756e646564417574686f726974794c6973743c4c696d69743e000118666f72636564010201244f7074696f6e3c4e3e00009d070c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401c8045300000400c401185665633c543e0000a1070c3870616c6c65745f6772616e6470611870616c6c6574144572726f7204045400011c2c50617573654661696c65640000080501417474656d707420746f207369676e616c204752414e445041207061757365207768656e2074686520617574686f72697479207365742069736e2774206c697665a42865697468657220706175736564206f7220616c72656164792070656e64696e67207061757365292e30526573756d654661696c65640001081101417474656d707420746f207369676e616c204752414e44504120726573756d65207768656e2074686520617574686f72697479207365742069736e277420706175736564a028656974686572206c697665206f7220616c72656164792070656e64696e6720726573756d65292e344368616e676550656e64696e67000204e8417474656d707420746f207369676e616c204752414e445041206368616e67652077697468206f6e6520616c72656164792070656e64696e672e1c546f6f536f6f6e000304bc43616e6e6f74207369676e616c20666f72636564206368616e676520736f20736f6f6e206166746572206c6173742e60496e76616c69644b65794f776e65727368697050726f6f66000404310141206b6579206f776e6572736869702070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e60496e76616c696445717569766f636174696f6e50726f6f660005043101416e2065717569766f636174696f6e2070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e584475706c69636174654f6666656e63655265706f727400060415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e04b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a090909a5070c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e646564566563080454018105045300000400a90701185665633c543e0000a907000002810500ad070c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401d8045300000400b10701185665633c543e0000b107000002d800b50710346672616d655f737570706f727418747261697473106d69736334577261707065724f706171756504045401b907000800e503000000b9070104540000b907084070616c6c65745f696d5f6f6e6c696e6564426f756e6465644f70617175654e6574776f726b53746174650c4c506565724964456e636f64696e674c696d697400584d756c746941646472456e636f64696e674c696d697400384164647265737365734c696d6974000008011c706565725f6964bd07019c5765616b426f756e6465645665633c75382c20506565724964456e636f64696e674c696d69743e00014865787465726e616c5f616464726573736573c107012d015765616b426f756e6465645665633c5765616b426f756e6465645665633c75382c204d756c746941646472456e636f64696e674c696d69743e2c204164647265737365734c696d69740a3e0000bd070c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401080453000004003001185665633c543e0000c1070c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401bd07045300000400c50701185665633c543e0000c507000002bd0700c9070c4070616c6c65745f696d5f6f6e6c696e651870616c6c6574144572726f7204045400010828496e76616c69644b6579000004604e6f6e206578697374656e74207075626c6963206b65792e4c4475706c696361746564486561727462656174000104544475706c696361746564206865617274626561742e04b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a090909cd070c2873705f7374616b696e671c6f6666656e6365384f6666656e636544657461696c7308205265706f727465720100204f6666656e64657201e4000801206f6666656e646572e401204f6666656e6465720001247265706f72746572735d0501345665633c5265706f727465723e0000d10700000408fc3000d5070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454012c045300000400d50301185665633c543e0000d9070c4070616c6c65745f626167735f6c697374106c697374104e6f646508045400044900001401086964000130543a3a4163636f756e744964000110707265769401504f7074696f6e3c543a3a4163636f756e7449643e0001106e6578749401504f7074696f6e3c543a3a4163636f756e7449643e0001246261675f7570706572280120543a3a53636f726500011473636f7265280120543a3a53636f72650000dd070c4070616c6c65745f626167735f6c697374106c6973740c4261670804540004490000080110686561649401504f7074696f6e3c543a3a4163636f756e7449643e0001107461696c9401504f7074696f6e3c543a3a4163636f756e7449643e0000e1070c4070616c6c65745f626167735f6c6973741870616c6c6574144572726f72080454000449000104104c6973740400e50701244c6973744572726f72000004b441206572726f7220696e20746865206c69737420696e7465726661636520696d706c656d656e746174696f6e2e04b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a090909e5070c4070616c6c65745f626167735f6c697374106c697374244c6973744572726f72000110244475706c6963617465000000284e6f7448656176696572000100304e6f74496e53616d65426167000200304e6f64654e6f74466f756e6400030000e9070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401dd05045300000400ed0701185665633c543e0000ed07000002dd0500f107083870616c6c65745f76657374696e672052656c656173657300010808563000000008563100010000f5070c3870616c6c65745f76657374696e671870616c6c6574144572726f72040454000114284e6f7456657374696e6700000484546865206163636f756e7420676976656e206973206e6f742076657374696e672e5441744d617856657374696e675363686564756c65730001082501546865206163636f756e7420616c72656164792068617320604d617856657374696e675363686564756c65736020636f756e74206f66207363686564756c657320616e642074687573510163616e6e6f742061646420616e6f74686572206f6e652e20436f6e7369646572206d657267696e67206578697374696e67207363686564756c657320696e206f7264657220746f2061646420616e6f746865722e24416d6f756e744c6f770002040501416d6f756e74206265696e67207472616e7366657272656420697320746f6f206c6f7720746f2063726561746520612076657374696e67207363686564756c652e605363686564756c65496e6465784f75744f66426f756e6473000304d0416e20696e64657820776173206f7574206f6620626f756e6473206f66207468652076657374696e67207363686564756c65732e54496e76616c69645363686564756c65506172616d730004040d014661696c656420746f206372656174652061206e6577207363686564756c65206265636175736520736f6d6520706172616d657465722077617320696e76616c69642e04744572726f7220666f72207468652076657374696e672070616c6c65742ef90700000408000400fd07083c70616c6c65745f6d756c7469736967204d756c7469736967102c426c6f636b4e756d62657201101c42616c616e63650118244163636f756e7449640100304d6178417070726f76616c7300001001107768656e0d01015854696d65706f696e743c426c6f636b4e756d6265723e00011c6465706f73697418011c42616c616e63650001246465706f7369746f720001244163636f756e744964000124617070726f76616c730108018c426f756e6465645665633c4163636f756e7449642c204d6178417070726f76616c733e000001080c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401000453000004005d0501185665633c543e000005080c3c70616c6c65745f6d756c74697369671870616c6c6574144572726f72040454000138404d696e696d756d5468726573686f6c640000047c5468726573686f6c64206d7573742062652032206f7220677265617465722e3c416c7265616479417070726f766564000104ac43616c6c20697320616c726561647920617070726f7665642062792074686973207369676e61746f72792e444e6f417070726f76616c734e65656465640002049c43616c6c20646f65736e2774206e65656420616e7920286d6f72652920617070726f76616c732e44546f6f4665775369676e61746f72696573000304a854686572652061726520746f6f20666577207369676e61746f7269657320696e20746865206c6973742e48546f6f4d616e795369676e61746f72696573000404ac54686572652061726520746f6f206d616e79207369676e61746f7269657320696e20746865206c6973742e545369676e61746f726965734f75744f664f726465720005040d01546865207369676e61746f7269657320776572652070726f7669646564206f7574206f66206f726465723b20746865792073686f756c64206265206f7264657265642e4c53656e646572496e5369676e61746f726965730006040d015468652073656e6465722077617320636f6e7461696e656420696e20746865206f74686572207369676e61746f726965733b2069742073686f756c646e27742062652e204e6f74466f756e64000704dc4d756c7469736967206f7065726174696f6e206e6f7420666f756e64207768656e20617474656d7074696e6720746f2063616e63656c2e204e6f744f776e65720008042d014f6e6c7920746865206163636f756e742074686174206f726967696e616c6c79206372656174656420746865206d756c74697369672069732061626c6520746f2063616e63656c2069742e2c4e6f54696d65706f696e740009041d014e6f2074696d65706f696e742077617320676976656e2c2079657420746865206d756c7469736967206f7065726174696f6e20697320616c726561647920756e6465727761792e3857726f6e6754696d65706f696e74000a042d014120646966666572656e742074696d65706f696e742077617320676976656e20746f20746865206d756c7469736967206f7065726174696f6e207468617420697320756e6465727761792e4c556e657870656374656454696d65706f696e74000b04f4412074696d65706f696e742077617320676976656e2c20796574206e6f206d756c7469736967206f7065726174696f6e20697320756e6465727761792e3c4d6178576569676874546f6f4c6f77000c04d0546865206d6178696d756d2077656967687420696e666f726d6174696f6e2070726f76696465642077617320746f6f206c6f772e34416c726561647953746f726564000d04a0546865206461746120746f2062652073746f72656420697320616c72656164792073746f7265642e04b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a0909090908083870616c6c65745f636f756e63696c48436f756e63696c5374616765557064617465042c426c6f636b4e756d62657201100008011473746167650d080164436f756e63696c53746167653c426c6f636b4e756d6265723e0001286368616e6765645f617410012c426c6f636b4e756d62657200000d08083870616c6c65745f636f756e63696c30436f756e63696c5374616765042c426c6f636b4e756d6265720110010c28416e6e6f756e63696e6704001108018c436f756e63696c5374616765416e6e6f756e63696e673c426c6f636b4e756d6265723e00000020456c656374696f6e040015080150436f756e63696c5374616765456c656374696f6e0001001049646c65040019080174436f756e63696c537461676549646c653c426c6f636b4e756d6265723e000200001108083870616c6c65745f636f756e63696c58436f756e63696c5374616765416e6e6f756e63696e67042c426c6f636b4e756d62657201100008014063616e646964617465735f636f756e7410010c75333200011c656e64735f617410012c426c6f636b4e756d62657200001508083870616c6c65745f636f756e63696c50436f756e63696c5374616765456c656374696f6e000004014063616e646964617465735f636f756e7410010c75333200001908083870616c6c65745f636f756e63696c40436f756e63696c537461676549646c65042c426c6f636b4e756d62657201100004011c656e64735f617410012c426c6f636b4e756d62657200001d080c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e646564566563080454012108045300000400250801185665633c543e00002108083870616c6c65745f636f756e63696c34436f756e63696c4d656d62657210244163636f756e7449640100204d656d626572496401281c42616c616e636501182c426c6f636b4e756d6265720110001801487374616b696e675f6163636f756e745f69640001244163636f756e7449640001447265776172645f6163636f756e745f69640001244163636f756e7449640001346d656d626572736869705f69642801204d656d62657249640001147374616b6518011c42616c616e63650001486c6173745f7061796d656e745f626c6f636b10012c426c6f636b4e756d626572000134756e706169645f72657761726418011c42616c616e6365000025080000022108002908083870616c6c65745f636f756e63696c2443616e64696461746510244163636f756e74496401001c42616c616e636501181048617368012c24566f7465506f7765720118001801487374616b696e675f6163636f756e745f69640001244163636f756e7449640001447265776172645f6163636f756e745f69640001244163636f756e7449640001206379636c655f696428010c7536340001147374616b6518011c42616c616e6365000128766f74655f706f776572180124566f7465506f7765720001246e6f74655f68617368790201304f7074696f6e3c486173683e00002d08083870616c6c65745f636f756e63696c144572726f720404540001603c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f7729244261644f726967696e000104484f726967696e20697320696e76616c69642e4043616e7443616e6469646174654e6f7700020439015573657220747269656420746f20616e6e6f756e63652063616e646964616379206f757473696465206f66207468652063616e64696461637920616e6e6f756e63656d656e7420706572696f642e4c43616e7452656c656173655374616b654e6f77000304f05573657220747269656420746f2072656c65617365207374616b65206f757473696465206f66207468652072657665616c696e6720706572696f642e5043616e6469646163795374616b65546f6f4c6f77000404b043616e64696461746520686176656e27742070726f76696465642073756666696369656e74207374616b652e4843616e7443616e6469646174655477696365000504f45573657220747269656420746f20616e6e6f756e63652063616e64696461637920747769636520696e207468652073616d6520656c656374696f6e732e40436f6e666c696374696e675374616b650006085d015573657220747269656420746f20616e6e6f756e63652063616e646964616379207769746820616e206163636f756e742074686174206861732074686520636f6e666c696374696e672074797065206f66207374616b653901776974682063616e646964616379207374616b6520616e6420686173206e6f7420656e6f7567682062616c616e636520666f72207374616b696e6720666f7220626f746820707572706f7365732e405374616b655374696c6c4e6565646564000704dc436f756e63696c206d656d62657220616e642063616e646964617465732063616e2774207769746864726177207374616b65207965742e1c4e6f5374616b65000804c45573657220747269656420746f2072656c65617365207374616b65207768656e206e6f207374616b65206578697374732e74496e73756666696369656e7442616c616e6365466f725374616b696e67000904ac496e73756666696369656e742062616c616e636520666f722063616e646964616379207374616b696e672e4c43616e74566f7465466f72596f757273656c66000a048443616e6469646174652063616e277420766f746520666f722068696d73656c662e5c4d656d62657249644e6f744d617463684163636f756e74000b044c496e76616c6964206d656d626572736869702e68496e76616c69644163636f756e74546f5374616b655265757365000c08510154686520636f6d62696e6174696f6e206f66206d656d6265727368697020696420616e64206163636f756e7420696420697320696e76616c696420666f7220756e7374616b696e6720616e206578697374696e674063616e646964616379207374616b652e444e6f7443616e6469646174696e674e6f77000d04d85573657220747269656420746f2077697468647261772063616e646964616379207768656e206e6f742063616e6469646174696e672e6043616e74576974686472617743616e6469646163794e6f77000e04190143616e27742077697468647261772063616e646964616379206f757473696465206f66207468652063616e64696461637920616e6e6f756e63656d656e7420706572696f642e304e6f74436f756e63696c6f72000f0478546865206d656d626572206973206e6f74206120636f756e63696c6f722e88496e73756666696369656e7446756e6473466f7246756e64696e6752657175657374001004f0496e737566666963656e742066756e647320696e20636f756e63696c20666f7220657865637574696e67202746756e64696e67205265717565737427585a65726f42616c616e636546756e64526571756573740011045c46756e642072657175657374206e6f2062616c616e636568526570656174656446756e64526571756573744163636f756e74001204fc5468652073616d65206163636f756e7420697320726563696576696e672066756e64732066726f6d207468652073616d65207265717565737420747769636550456d70747946756e64696e675265717565737473001304ac46756e64696e6720726571756573747320776974686f757420726563696576696e67206163636f756e747370496e73756666696369656e74546f6b656e73466f7246756e64696e67001404f8496e73756666696369656e7420746f6b656e7320666f722066756e64696e6720286f6e206d656d62657220636f6e74726f6c6c6572206163636f756e7429445a65726f546f6b656e7346756e64696e670015047c547279696e6720746f2066756e642077697468207a65726f20746f6b656e735443616e646964617465446f65734e6f7445786973740016045843616e646964617465206964206e6f7420666f756e6478496e73756666696369656e7442616c616e6365466f725472616e73666572001704b443616e6e6f742077697468647261773a20696e73756666696369656e74206275646765742062616c616e63652e0438436f756e63696c206572726f72733108084470616c6c65745f7265666572656e64756d3c5265666572656e64756d5374616765082c426c6f636b4e756d62657201104c496e7465726d65646961746557696e6e657273013508010c20496e61637469766500000018566f74696e670400390801885265666572656e64756d5374616765566f74696e673c426c6f636b4e756d6265723e0001002452657665616c696e6704003d0801e85265666572656e64756d537461676552657665616c696e673c426c6f636b4e756d6265722c20496e7465726d65646961746557696e6e6572733e0002000035080c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e646564566563080454012501045300000400210101185665633c543e00003908084470616c6c65745f7265666572656e64756d545265666572656e64756d5374616765566f74696e67042c426c6f636b4e756d62657201100010011c7374617274656410012c426c6f636b4e756d62657200015077696e6e696e675f7461726765745f636f756e7410010c75333200014063757272656e745f6379636c655f696428010c75363400011c656e64735f617410012c426c6f636b4e756d62657200003d08084470616c6c65745f7265666572656e64756d605265666572656e64756d537461676552657665616c696e67082c426c6f636b4e756d62657201104c496e7465726d65646961746557696e6e6572730135080014011c7374617274656410012c426c6f636b4e756d62657200015077696e6e696e675f7461726765745f636f756e7410010c753332000150696e7465726d6564696174655f77696e6e6572733508014c496e7465726d65646961746557696e6e65727300014063757272656e745f6379636c655f696428010c75363400011c656e64735f617410012c426c6f636b4e756d62657200004108084470616c6c65745f7265666572656e64756d2043617374566f74650c1048617368012c2043757272656e63790118204d656d6265724964012800100128636f6d6d69746d656e742c0110486173680001206379636c655f696428010c7536340001147374616b6518012043757272656e6379000120766f74655f666f72350101404f7074696f6e3c4d656d62657249643e00004508084470616c6c65745f7265666572656e64756d144572726f72080454000449000138244261644f726967696e000004444f726967696e20697320696e76616c6964505265666572656e64756d4e6f7452756e6e696e67000104a85265666572656e64756d206973206e6f742072756e6e696e67207768656e20657870656374656420746f5852657665616c696e674e6f74496e50726f6772657373000204b052657665616c696e67207374616765206973206e6f7420696e2070726f6772657373207269676874206e6f775c436f6e666c6963745374616b65734f6e4163636f756e74000304b05374616b696e67206163636f756e7420636f6e7461696e7320636f6e666c696374696e67207374616b65732e68496e73756666696369656e7442616c616e6365546f5374616b650004049c4163636f756e7420496e73756666696369656e7420467265652042616c616e636520286e6f772944496e73756666696369656e745374616b65000504a8496e73756666696369656e74207374616b652070726f766964656420746f2063617374206120766f746534496e76616c696452657665616c000604190153616c7420616e64207265666572656e64756d206f7074696f6e2070726f766964656420646f6e277420636f72726573706f6e6420746f2074686520636f6d6d69746d656e742c496e76616c6964566f7465000704a4566f746520666f72206e6f74206578697374696e67206f7074696f6e207761732072657665616c65643c566f74654e6f744578697374696e670008049c547279696e6720746f2072657665616c20766f7465207468617420776173206e6f74206361737454416c7265616479566f746564546869734379636c65000904b8547279696e6720746f20766f7465206d756c7469706c652074696d6520696e207468652073616d65206379636c6560556e7374616b696e67566f7465496e53616d654379636c65000a04a0496e76616c69642074696d6520746f2072656c6561736520746865206c6f636b6564207374616b652c53616c74546f6f4c6f6e67000b044053616c7420697320746f6f206c6f6e6748556e7374616b696e67466f7262696464656e000c04f0556e7374616b696e6720686173206265656e20666f7262696464656e20666f7220746865207573657220286174206c6561737420666f72206e6f7729784163636f756e74416c72656164794f707465644f75744f66566f74696e67000d041d014120766f74652063616e6e6f7420626520636173742066726f6d20616e206163636f756e74207468617420616c7265616479206f70746564206f7574206f6620766f74696e672e04445265666572656e64756d206572726f72734908084470616c6c65745f6d656d62657273686970404d656d626572736869704f626a65637408244163636f756e74496401001048617368012c0014012c68616e646c655f686173682c011048617368000130726f6f745f6163636f756e740001244163636f756e744964000148636f6e74726f6c6c65725f6163636f756e740001244163636f756e7449640001207665726966696564980110626f6f6c00011c696e766974657310010c75333200004d08084470616c6c65745f6d656d626572736869706c5374616b696e674163636f756e744d656d62657242696e64696e6704204d656d62657249640128000801246d656d6265725f69642801204d656d6265724964000124636f6e6669726d6564980110626f6f6c00005108084470616c6c65745f6d656d62657273686970144572726f720404540001587c4e6f74456e6f75676842616c616e6365546f4275794d656d62657273686970000004944e6f7420656e6f7567682062616c616e636520746f20627579206d656d626572736869702e64436f6e74726f6c6c65724163636f756e74526571756972656400010470436f6e74726f6c6c6572206163636f756e742072657175697265642e4c526f6f744163636f756e74526571756972656400020458526f6f74206163636f756e742072657175697265642e38556e7369676e65644f726967696e00030440556e7369676e6564206f726967696e2e544d656d62657250726f66696c654e6f74466f756e64000404b44d656d6265722070726f66696c65206e6f7420666f756e642028696e76616c6964206d656d626572206964292e5c48616e646c65416c7265616479526567697374657265640005046848616e646c6520616c726561647920726567697374657265642e9848616e646c654d757374426550726f7669646564447572696e67526567697374726174696f6e000604b048616e646c65206d7573742062652070726f766964656420647572696e6720726567697374726174696f6e2e4c526566657272657249734e6f744d656d626572000704d043616e6e6f742066696e642061206d656d6265727368697020666f7220612070726f76696465642072656665727265722069642e8443616e6e6f745472616e73666572496e7669746573466f724e6f744d656d6265720008049853686f756c642062652061206d656d62657220746f207265636569766520696e76697465732e404e6f74456e6f756768496e7669746573000904ac4e6f7420656e6f75676820696e766974657320746f20706572666f726d20616e206f7065726174696f6e2e60576f726b696e6747726f75704c65616465724e6f74536574000a04ac4d656d6265727368697020776f726b696e672067726f7570206c6561646572206973206e6f74207365742e845374616b696e674163636f756e744973416c726561647952656769737465726564000b04b85374616b696e67206163636f756e74206973207265676973746572656420666f7220736f6d65206d656d6265722e645374616b696e674163636f756e74446f65736e744578697374000c04b45374616b696e67206163636f756e7420666f72206d656d6265727368697020646f65736e27742065786973742e785374616b696e674163636f756e74416c7265616479436f6e6669726d6564000d04ac5374616b696e67206163636f756e742068617320616c7265616479206265656e20636f6e6669726d65642eb0576f726b696e6747726f757042756467657449734e6f7453756666696369656e74466f72496e766974696e67000e08490143616e6e6f7420696e766974652061206d656d6265722e20576f726b696e672067726f75702062616c616e6365206973206e6f742073756666696369656e7420746f20736574207468652064656661756c742062616c616e63652e3c436f6e666c696374696e674c6f636b000f04410143616e6e6f7420696e766974652061206d656d6265722e2054686520636f6e74726f6c6c6572206163636f756e742068617320616e206578697374696e6720636f6e666c696374696e67206c6f636b2e8c43616e6e6f74457863656564526566657272616c43757450657263656e744c696d6974001004010143616e6e6f7420736574206120726566657272616c206375742070657263656e742076616c75652e20546865206c696d6974207761732065786365656465642e5c436f6e666c6963745374616b65734f6e4163636f756e74001104b05374616b696e67206163636f756e7420636f6e7461696e7320636f6e666c696374696e67207374616b65732e7c496e73756666696369656e7442616c616e6365546f436f7665725374616b6500120490496e73756666696369656e742062616c616e636520746f20636f766572207374616b652e504769664c6f636b45786365656473437265646974001304ac4c6f636b656420616d6f756e742069732067726561746572207468616e2063726564697420616d6f756e7464496e73756666696369656e7442616c616e6365546f47696674001404c047696674657220646f65736e277420686176652073756666696369656e742062616c616e636520746f2063726564697484496e73756666696369656e7442616c616e6365546f436f7665725061796d656e7400150498496e73756666696369656e742062616c616e636520746f20636f766572207061796d656e742e048c4d656d62657273686970206d6f64756c6520707265646566696e6564206572726f72735508083070616c6c65745f666f72756d2043617465676f72790c2843617465676f7279496401281048617368012c44537469636b696564546872656164496473015908002001287469746c655f686173682c0110486173680001406465736372697074696f6e5f686173682c0110486173680001206172636869766564980110626f6f6c0001606e756d5f6469726563745f73756263617465676f7269657310010c7533320001486e756d5f6469726563745f7468726561647310010c7533320001546e756d5f6469726563745f6d6f64657261746f727310010c753332000148706172656e745f63617465676f72795f6964350101484f7074696f6e3c43617465676f727949643e000144737469636b795f7468726561645f69647359080144537469636b696564546872656164496473000059080c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401280453000004006901012c42547265655365743c543e00005d08083070616c6c65745f666f72756d185468726561640c2c466f72756d55736572496401282843617465676f72794964012848526570617961626c65426c6f6174426f6e6401e1010010012c63617465676f72795f696428012843617465676f72794964000124617574686f725f696428012c466f72756d55736572496400013c636c65616e75705f7061795f6f6666e1010148526570617961626c65426c6f6174426f6e640001606e756d6265725f6f665f6564697461626c655f706f7374732801344e756d6265724f66506f73747300006108083070616c6c65745f666f72756d10506f7374142c466f72756d557365724964012820546872656164496401281048617368012c2c426c6f636b4e756d626572011048526570617961626c65426c6f6174426f6e6401e101001401247468726561645f69642801205468726561644964000124746578745f686173682c011048617368000124617574686f725f696428012c466f72756d55736572496400013c636c65616e75705f7061795f6f6666e1010148526570617961626c65426c6f6174426f6e6400012c6c6173745f65646974656410012c426c6f636b4e756d62657200006508083070616c6c65745f666f72756d144572726f7204045400016c3c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f7729484f726967696e4e6f74466f72756d4c656164000104b44f726967696e20646f65736e277420636f72726573706f6e6420746f20616e79206c656164206163636f756e7468466f72756d5573657249644e6f744d617463684163636f756e7400020490466f72756d2075736572206964206e6f74206d6174636820697473206163636f756e742e684d6f64657261746f7249644e6f744d617463684163636f756e740003048c4d6f64657261746f72206964206e6f74206d6174636820697473206163636f756e742e7c4163636f756e74446f65734e6f744d61746368546872656164417574686f7200040498546872656164206e6f7420617574686f7265642062792074686520676976656e20757365722e48546872656164446f65734e6f7445786973740005045454687265616420646f6573206e6f742065786973747c4d6f64657261746f724d6f6465726174654f726967696e43617465676f7279000604d04d6f64657261746f722063616e2774206d6f6465726174652063617465676f727920636f6e7461696e696e67207468726561642e904d6f64657261746f724d6f64657261746544657374696e6174696f6e43617465676f7279000704b84d6f64657261746f722063616e2774206d6f6465726174652064657374696e6174696f6e2063617465676f72792e445468726561644d6f7665496e76616c6964000804984f726967696e206973207468652073616d65206173207468652064657374696e6174696f6e2e545468726561644e6f744265696e675570646174656400090464546872656164206e6f74206265696e6720757064617465642e90496e73756666696369656e7442616c616e6365466f725468726561644372656174696f6e000a048c4e6f7420656e6f7567682062616c616e636520746f20637265617465207468726561649843616e6e6f7444656c657465546872656164576974684f75747374616e64696e67506f737473000b04c441207468726561642077697468206f75747374616e64696e6720706f7374732063616e6e6f742062652072656d6f76656440506f7374446f65734e6f744578697374000c0450506f737420646f6573206e6f742065786973742e744163636f756e74446f65734e6f744d61746368506f7374417574686f72000d048c4163636f756e7420646f6573206e6f74206d6174636820706f737420617574686f722e68496e73756666696369656e7442616c616e6365466f72506f7374000e04684e6f7420656e6f7567682062616c616e636520746f20706f73745c43617465676f72794e6f744265696e6755706461746564000f046c43617465676f7279206e6f74206265696e6720757064617465642e64416e636573746f7243617465676f7279496d6d757461626c65001004d4416e636573746f722063617465676f727920696d6d757461626c652c20692e652e2064656c65746564206f72206172636869766564744d617856616c696443617465676f727944657074684578636565646564001104984d6178696d756d2076616c69642063617465676f72792064657074682065786365656465642e5043617465676f7279446f65734e6f7445786973740012046043617465676f727920646f6573206e6f742065786973742e7443617465676f72794d6f64657261746f72446f65734e6f744578697374001304c850726f7669646564206d6f64657261746f72206973206e6f7420676976656e2063617465676f7279206d6f64657261746f725c43617465676f72794e6f74456d707479546872656164730014049443617465676f7279207374696c6c20636f6e7461696e7320736f6d6520746872656164732e6843617465676f72794e6f74456d70747943617465676f72696573001504ac43617465676f7279207374696c6c20636f6e7461696e7320736f6d652073756263617465676f726965732e6c4d6f64657261746f7243616e7444656c65746543617465676f7279001604884e6f207065726d697373696f6e7320746f2064656c6574652063617465676f72792e6c4d6f64657261746f7243616e7455706461746543617465676f7279001704884e6f207065726d697373696f6e7320746f207570646174652063617465676f72792e304d617053697a654c696d6974001804904d6178696d756d2073697a65206f662073746f72616765206d617020657863656564656484506174684c656e67746853686f756c644265477265617465725468616e5a65726f001904b443617465676f72792070617468206c656e2073686f756c642062652067726561746572207468616e207a65726f884d61784e756d6265724f66537469636b696564546872656164734578636565646564001a04e04d6178696d756d206e756d626572206f6620737469636b6965642074687265616473207065722063617465676f7279206578636565646564045c466f72756d20707265646566696e6564206572726f72736908084c70616c6c65745f636f6e737469747574696f6e40436f6e737469747574696f6e496e666f041048617368012c00040124746578745f686173682c01104861736800006d08083470616c6c65745f626f756e747930426f756e74795265636f7264101c42616c616e636501182c426c6f636b4e756d6265720110204d656d626572496401285c436c6f736564436f6e747261637457686974656c6973740171080014013c6372656174696f6e5f706172616d737508012501426f756e7479506172616d65746572733c42616c616e63652c20426c6f636b4e756d6265722c204d656d62657249642c20436c6f736564436f6e747261637457686974656c6973743e000134746f74616c5f66756e64696e6718011c42616c616e63650001246d696c6573746f6e657d080170426f756e74794d696c6573746f6e653c426c6f636b4e756d6265723e00015c6163746976655f776f726b5f656e7472795f636f756e7410010c7533320001606861735f756e706169645f6f7261636c655f726577617264980110626f6f6c000071080c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401280453000004006901012c42547265655365743c543e00007508083470616c6c65745f626f756e747940426f756e7479506172616d6574657273101c42616c616e636501182c426c6f636b4e756d6265720110204d656d626572496401285c436c6f736564436f6e747261637457686974656c697374017108001c01186f7261636c6579010154426f756e74794163746f723c4d656d62657249643e000134636f6e74726163745f74797065790801b84173737572616e6365436f6e7472616374547970653c436c6f736564436f6e747261637457686974656c6973743e00011c63726561746f7279010154426f756e74794163746f723c4d656d62657249643e00011863686572727918011c42616c616e63650001346f7261636c655f72657761726418011c42616c616e6365000134656e7472616e745f7374616b6518011c42616c616e636500013066756e64696e675f747970658101018446756e64696e67547970653c426c6f636b4e756d6265722c2042616c616e63653e00007908083470616c6c65745f626f756e7479544173737572616e6365436f6e747261637454797065045c436c6f736564436f6e747261637457686974656c6973740171080108104f70656e00000018436c6f73656404007108015c436c6f736564436f6e747261637457686974656c697374000100007d08083470616c6c65745f626f756e74793c426f756e74794d696c6573746f6e65042c426c6f636b4e756d626572011001141c43726561746564080128637265617465645f617410012c426c6f636b4e756d6265720001446861735f636f6e747269627574696f6e73980110626f6f6c0000005c426f756e74794d617846756e64696e675265616368656400010034576f726b5375626d6974746564000200285465726d696e61746564000300444a7564676d656e745375626d69747465640401447375636365737366756c5f626f756e7479980110626f6f6c00040000810800000408287901008508083470616c6c65745f626f756e747930436f6e747269627574696f6e0404540000080118616d6f756e7418013042616c616e63654f663c543e00017866756e6465725f73746174655f626c6f61745f626f6e645f616d6f756e7418013042616c616e63654f663c543e00008908083470616c6c65745f626f756e74792c456e7472795265636f72640c244163636f756e7449640100204d656d626572496401282c426c6f636b4e756d6265720110001001246d656d6265725f69642801204d656d62657249640001487374616b696e675f6163636f756e745f69640001244163636f756e7449640001307375626d69747465645f617410012c426c6f636b4e756d626572000138776f726b5f7375626d6974746564980110626f6f6c00008d08083470616c6c65745f626f756e7479144572726f7204045400018c3c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f7729b04d696e46756e64696e67416d6f756e7443616e6e6f744265477265617465725468616e4d6178416d6f756e74000104d44d696e2066756e64696e6720616d6f756e742063616e6e6f742062652067726561746572207468616e206d617820616d6f756e742e44426f756e7479446f65736e74457869737400020450426f756e747920646f65736e742065786973742e605377697463684f7261636c654f726967696e4973526f6f7400030489014f726967696e20697320726f6f742c20736f20737769746368696e67206f7261636c65206973206e6f7420616c6c6f77656420696e20746869732065787472696e7369632e202863616c6c207377697463685f6f7261636c655f61735f726f6f742974496e76616c69645374616765556e657870656374656446756e64696e67000404c8556e657870656374656420626f756e747920737461676520666f7220616e206f7065726174696f6e3a2046756e64696e672ea8496e76616c69645374616765556e65787065637465644e6f46756e64696e67436f6e7472696275746564000504fc556e657870656374656420626f756e747920737461676520666f7220616e206f7065726174696f6e3a204e6f46756e64696e67436f6e74726962757465642e7c496e76616c69645374616765556e657870656374656443616e63656c6c6564000604d0556e657870656374656420626f756e747920737461676520666f7220616e206f7065726174696f6e3a2043616e63656c6c65642e90496e76616c69645374616765556e6578706563746564576f726b5375626d697373696f6e000704e4556e657870656374656420626f756e747920737461676520666f7220616e206f7065726174696f6e3a20576f726b5375626d697373696f6e2e78496e76616c69645374616765556e65787065637465644a7564676d656e74000804cc556e657870656374656420626f756e747920737461676520666f7220616e206f7065726174696f6e3a204a7564676d656e742ec0496e76616c69645374616765556e65787065637465645375636365737366756c426f756e74795769746864726177616c0009041501556e657870656374656420626f756e747920737461676520666f7220616e206f7065726174696f6e3a205375636365737366756c426f756e74795769746864726177616c2eb0496e76616c69645374616765556e65787065637465644661696c6564426f756e74795769746864726177616c000a040501556e657870656374656420626f756e747920737461676520666f7220616e206f7065726174696f6e3a204661696c6564426f756e74795769746864726177616c2e70496e73756666696369656e7442616c616e6365466f72426f756e7479000b04a4496e73756666696369656e742062616c616e636520666f72206120626f756e7479206368657272792e644e6f426f756e7479436f6e747269627574696f6e466f756e64000c048443616e6e6f7420666f756e6420626f756e747920636f6e747269627574696f6e2e6c496e73756666696369656e7442616c616e6365466f725374616b65000d04a05468657265206973206e6f7420656e6f7567682062616c616e636520666f722061207374616b652e44436f6e666c696374696e675374616b6573000e04bc54686520636f6e666c696374696e67207374616b6520646973636f76657265642e2043616e6e6f74207374616b652e50576f726b456e747279446f65736e744578697374000f0460576f726b20656e74727920646f65736e742065786973742e704368657272794c6573735468656e4d696e696d756d416c6c6f77656400100484436865727279206c657373207468616e206d696e696d756d20616c6c6f7765642e9843616e6e6f745375626d6974576f726b546f436c6f736564436f6e7472616374426f756e74790011085101496e636f6d70617469626c65206173737572616e636520636f6e7472616374207479706520666f722061206d656d6265723a2063616e6e6f74207375626d697420776f726b20746f207468652027636c6f7365646c6173737572616e63652720626f756e747920636f6e74726163742e7c436c6f736564436f6e74726163744d656d6265724c6973744973456d707479001204290143616e6e6f742063726561746520612027636c6f736564206173737572616e636520636f6e74726163742720626f756e7479207769746820656d707479206d656d626572206c6973742e88436c6f736564436f6e74726163744d656d6265724c6973744973546f6f4c61726765001308290143616e6e6f742063726561746520612027636c6f736564206173737572616e636520636f6e74726163742720626f756e74792077697468206d656d626572206c697374206c6172676572887468616e20616c6c6f776564206d617820776f726b20656e747279206c696d69742e70436c6f736564436f6e74726163744d656d6265724e6f74466f756e64001404410127636c6f736564206173737572616e636520636f6e74726163742720626f756e7479206d656d626572206c6973742063616e206f6e6c7920696e636c756465206578697374696e67206d656d6265727354496e76616c69644f7261636c654d656d6265724964001504fc50726f7669646564206f7261636c65206d656d62657220696420646f6573206e6f742062656c6f6e6720746f20616e206578697374696e67206d656d62657278496e76616c69645374616b696e674163636f756e74466f724d656d626572001604ac5374616b696e67206163636f756e7420646f65736e27742062656c6f6e6720746f2061206d656d6265722e405a65726f57696e6e65725265776172640017048c43616e6e6f7420736574207a65726f2072657761726420666f722077696e6e6572732e98546f74616c52657761726453686f756c644265457175616c546f546f74616c46756e64696e67001804150154686520746f74616c2072657761726420666f722077696e6e6572732073686f756c6420626520657175616c20746f20746f74616c20626f756e74792066756e64696e672e74456e7472616e745374616b6549734c6573735468616e4d696e696e756d0019042d0143616e6e6f7420637265617465206120626f756e7479207769746820616e20656e7472616e74207374616b65206973206c657373207468616e207265717569726564206d696e696d756d2e6446756e64696e67416d6f756e7443616e6e6f7442655a65726f001a04e843616e6e6f7420637265617465206120626f756e74792077697468207a65726f2066756e64696e6720616d6f756e7420706172616d657465722e6446756e64696e67506572696f6443616e6e6f7442655a65726f001b04e843616e6e6f7420637265617465206120626f756e74792077697468207a65726f2066756e64696e6720706572696f6420706172616d657465722e7457696e6e657253686f756c64486173576f726b5375626d697373696f6e001c04f0496e76616c6964206a7564676d656e74202d20616c6c2077696e6e6572732073686f756c64206861766520776f726b207375626d697373696f6e732e80496e76616c6964436f6e7472696275746f724163746f72537065636966696564001d0470426f756e747920636f6e7472696275746f72206e6f7420666f756e646c496e76616c69644f7261636c654163746f72537065636966696564001e045c426f756e7479206f7261636c65206e6f7420666f756e6474496e76616c6964456e7472616e74576f726b6572537065636966696564001f04a44d656d62657220737065636966696564206973206e6f7420616e20656e7472616e7420776f726b657270496e76616c696443726561746f724163746f72537065636966696564002004a8496e76616c69642043726561746f72204163746f7220666f7220426f756e74792073706563696669656474576f726b456e747279446f65736e7442656c6f6e67546f576f726b6572002104f8576f726b657220747269656420746f20616363657373206120776f726b20656e747279207468617420646f65736e27742062656c6f6e6720746f2068696d704f7261636c65526577617264416c726561647957697468647261776e002204884f7261636c65206861766520616c7265616479206265656e2077697468647261776e047c426f756e74792070616c6c657420707265646566696e6564206572726f72739108083870616c6c65745f7574696c697479144572726f7204045400010c80496e73756666696369656e7446756e6473466f724275646765745570646174650000041d01496e73756666696369656e742066756e647320666f72202755706461746520576f726b696e672047726f757020427564676574272070726f706f73616c20657865637574696f6e385a65726f546f6b656e734275726e00010468547279696e6720746f206275726e207a65726f20746f6b656e7360496e73756666696369656e7446756e6473466f724275726e00020478496e73756666696369656e742066756e647320666f72206275726e696e670478436f646578206d6f64756c6520707265646566696e6564206572726f727395080c3870616c6c65745f636f6e74656e741474797065732c566964656f5265636f726410244368616e6e656c49640128204f776e65644e667401990838566964656f41737365747353657401b90848526570617961626c65426c6f6174426f6e6401e10100100128696e5f6368616e6e656c2801244368616e6e656c49640001286e66745f737461747573bd0801404f7074696f6e3c4f776e65644e66743e000130646174615f6f626a65637473b9080138566964656f417373657473536574000158766964656f5f73746174655f626c6f61745f626f6e64e1010148526570617961626c65426c6f6174426f6e6400009908103870616c6c65745f636f6e74656e740c6e6674147479706573204f776e65644e66740c4c5472616e73616374696f6e616c537461747573019d08204d656d626572496401282441756374696f6e49640128001001146f776e6572b50801484e66744f776e65723c4d656d62657249643e0001507472616e73616374696f6e616c5f7374617475739d08014c5472616e73616374696f6e616c53746174757300013c63726561746f725f726f79616c74791102013c4f7074696f6e3c526f79616c74793e00014c6f70656e5f61756374696f6e735f6e6f6e636528012441756374696f6e496400009d08103870616c6c65745f636f6e74656e740c6e6674147479706573645472616e73616374696f6e616c5374617475735265636f726410204d656d626572496401281c42616c616e6365011848456e676c69736841756374696f6e5479706501a1083c4f70656e41756374696f6e5479706501b10801141049646c6500000058496e697469617465644f66666572546f4d656d62657208002801204d656d626572496400004501013c4f7074696f6e3c42616c616e63653e00010038456e676c69736841756374696f6e0400a1080148456e676c69736841756374696f6e547970650002002c4f70656e41756374696f6e0400b108013c4f70656e41756374696f6e54797065000300184275794e6f77040018011c42616c616e636500040000a108103870616c6c65745f636f6e74656e740c6e667414747970657350456e676c69736841756374696f6e5265636f7264102c426c6f636b4e756d62657201101c42616c616e63650118204d656d626572496401284c4e667441756374696f6e57686974656c69737401a508002001387374617274696e675f707269636518011c42616c616e63650001346275795f6e6f775f70726963654501013c4f7074696f6e3c42616c616e63653e00012477686974656c697374a508014c4e667441756374696f6e57686974656c69737400010c656e6410012c426c6f636b4e756d626572000114737461727410012c426c6f636b4e756d626572000140657874656e73696f6e5f706572696f6410012c426c6f636b4e756d6265720001306d696e5f6269645f7374657018011c42616c616e636500011c746f705f626964a90801b04f7074696f6e3c456e676c69736841756374696f6e4269643c42616c616e63652c204d656d62657249643e3e0000a5080c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401280453000004006901012c42547265655365743c543e0000a90804184f7074696f6e04045401ad080108104e6f6e6500000010536f6d650400ad080000010000ad08103870616c6c65745f636f6e74656e740c6e667414747970657344456e676c69736841756374696f6e426964081c42616c616e63650118204d656d6265724964012800080118616d6f756e7418011c42616c616e63650001246269646465725f69642801204d656d62657249640000b108103870616c6c65745f636f6e74656e740c6e6674147479706573444f70656e41756374696f6e5265636f7264102c426c6f636b4e756d62657201102441756374696f6e496401281c42616c616e636501184c4e667441756374696f6e57686974656c69737401a508001801387374617274696e675f707269636518011c42616c616e63650001346275795f6e6f775f70726963654501013c4f7074696f6e3c42616c616e63653e00012477686974656c697374a508014c4e667441756374696f6e57686974656c6973740001446269645f6c6f636b5f6475726174696f6e10012c426c6f636b4e756d62657200012861756374696f6e5f696428012441756374696f6e4964000114737461727410012c426c6f636b4e756d6265720000b508103870616c6c65745f636f6e74656e740c6e6674147479706573204e66744f776e657204204d656d626572496401280108304368616e6e656c4f776e6572000000184d656d62657204002801204d656d626572496400010000b9080c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401280453000004006901012c42547265655365743c543e0000bd0804184f7074696f6e0404540199080108104e6f6e6500000010536f6d65040099080000010000c108103870616c6c65745f636f6e74656e742c7065726d697373696f6e733463757261746f725f67726f75704843757261746f7247726f75705265636f7264085c43757261746f7247726f757043757261746f72734d617001c508704d6f6465726174696f6e5065726d697373696f6e7342794c6576656c01c908000c012063757261746f7273c508015c43757261746f7247726f757043757261746f72734d6170000118616374697665980110626f6f6c0001507065726d697373696f6e735f62795f6c6576656cc90801704d6f6465726174696f6e5065726d697373696f6e7342794c6576656c0000c5080c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b0128045601b501045300000400c501013842547265654d61703c4b2c20563e0000c9080c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b0108045601cd08045300000400d108013842547265654d61703c4b2c20563e0000cd080c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e6465644254726565536574080454015d020453000004005902012c42547265655365743c543e0000d108042042547265654d617008044b0108045601cd08000400d508000000d508000002d90800d9080000040808cd0800dd08103870616c6c65745f636f6e74656e740c6e6674147479706573504f70656e41756374696f6e4269645265636f72640c1c42616c616e636501182c426c6f636b4e756d62657201102441756374696f6e49640128000c0118616d6f756e7418011c42616c616e63650001346d6164655f61745f626c6f636b10012c426c6f636b4e756d62657200012861756374696f6e5f696428012441756374696f6e49640000e1080c3870616c6c65745f636f6e74656e74186572726f7273144572726f7204045400010102704368616e6e656c5374617465426c6f6174426f6e644368616e676564000004e4496e76616c69642065787472696e7369632063616c6c3a204368616e6e656c20737461746520626c6f617420626f6e64206368616e6765642e68566964656f5374617465426c6f6174426f6e644368616e676564000104dc496e76616c69642065787472696e7369632063616c6c3a20766964656f20737461746520626c6f617420626f6e64206368616e6765642e544d696e436173686f757456616c7565546f6f4c6f77000204d8417474656d707420746f20736574206d696e696d756d20636173686f757420616c6c6f7765642062656c6f7720746865206c696d6974584d6178436173686f757456616c7565546f6f48696768000304d8417474656d707420746f20736574206d696e696d756d20636173686f757420616c6c6f7765642061626f766520746865206c696d69749c4d61784e756d6265724f664368616e6e656c436f6c6c61626f7261746f7273457863656564656400040429014e756d626572206f66206368616e6e656c20636f6c6c61626f7261746f72732065786365656473204d61784e756d6265724f66436f6c6c61626f7261746f72735065724368616e6e656c804d61784e756d6265724f664368616e6e656c4173736574734578636565646564000504f04e756d626572206f66206368616e6e656c206173736574732065786365656473204d61784e756d6265724f664173736574735065724368616e6e656c784d61784e756d6265724f66566964656f4173736574734578636565646564000604ec4e756d626572206f6620766964656f206173736574732065786365656473204d61784d61784e756d6265724f66417373657473506572566964656fa84d61784e756d6265724f664368616e6e656c4167656e745065726d697373696f6e73457863656564656400070419014d6178696d756d206e756d626572206f66206368616e6e656c206167656e74207065726d697373696f6e7320666f72206368616e6e656c206167656e74206578636565646564ac4d61784e756d6265724f6650617573656446656174757265735065724368616e6e656c4578636565646564000804d84d6178696d756d206e756d626572206f662070617573656420666561747572657320706572206368616e6e656c20657863656564656480496e76616c69644368616e6e656c4261675769746e65737350726f766964656400090411014368616e6e656c20626167207769746e65737320706172616d657465727320646f6e2774206d61746368207468652063757272656e742072756e74696d652073746174659c496e76616c696453746f726167654275636b6574734e756d5769746e65737350726f7669646564000a04450153746f72616765206275636b657473206e756d626572207769746e65737320706172616d6574657220646f6573206e6f74206d61746368207468652063757272656e742072756e74696d652073746174657c4d697373696e6753746f726167654275636b6574734e756d5769746e657373000b084d0153746f72616765206275636b657473206e756d626572207769746e65737320706172616d65746572206d7573742062652070726f7669646564207768656e206368616e6e656c2f766964656f2061737365747348617265206265696e6720757064617465642e784368616e6e656c4f776e65724d656d626572446f65734e6f744578697374000c04b850726f7669646564206368616e6e656c206f776e657220286d656d6265722920646f6573206e6f74206578697374904368616e6e656c4f776e657243757261746f7247726f7570446f65734e6f744578697374000d04d450726f7669646564206368616e6e656c206f776e6572202863757261746f722067726f75702920646f6573206e6f74206578697374b04368616e6e656c5374617465426c6f6174426f6e6442656c6f774578697374656e7469616c4465706f736974000e0809014368616e6e656c20737461746520626c6f617420626f6e642063616e6e6f74206265206c6f776572207468616e206578697374656e7469616c206465706f7369742c050162656361757365206974206d7573742073656375726520746865206368616e6e656c206d6f64756c65206163636f756e7420616761696e73742064757374696e67704e756d6265724f66417373657473546f52656d6f766549735a65726f000f04a90144656c657465206368616e6e656c20616e642061737365747320616e642064656c65746520766964656f20617373657473206d75737420686176652061206e756d626572206f662061737365747320746f2072656d6f76652067726561746572207468616e207a65726f9843757261746f7249734e6f74414d656d6265724f66476976656e43757261746f7247726f7570001004450143757261746f7220756e6465722070726f76696465642063757261746f72206964206973206e6f742061206d656d626572206f662063757261726f722067726f757020756e64657220676976656e206964a843757261746f724973416c7265616479414d656d6265724f66476976656e43757261746f7247726f7570001104550143757261746f7220756e6465722070726f76696465642063757261746f7220696420697320616c72656164792061206d656d626572206f662063757261726f722067726f757020756e64657220676976656e2069646043757261746f7247726f7570446f65734e6f74457869737400120488476976656e2063757261746f722067726f757020646f6573206e6f742065786973747043757261746f727350657247726f75704c696d697452656163686564001304b84d6178206e756d626572206f662063757261746f7273207065722067726f7570206c696d697420726561636865645c43757261746f7247726f757049734e6f744163746976650014046c43757261746f722067726f7570206973206e6f74206163746976654043757261746f724964496e76616c6964001504d843757261746f72206964206973206e6f74206120776f726b657220696420696e20636f6e74656e7420776f726b696e672067726f7570384c656164417574684661696c6564001604684c6561642061757468656e7469636174696f6e206661696c6564404d656d626572417574684661696c6564001704704d656d6265722061757468656e7469636174696f6e206661696c65644443757261746f72417574684661696c65640018047443757261746f722061757468656e7469636174696f6e206661696c6564244261644f726967696e00190478457870656374656420726f6f74206f72207369676e6564206f726967696e484163746f724e6f74417574686f72697a6564001a04b04f7065726174696f6e2063616e6e6f7420626520706572666f6d656420776974682074686973204163746f725043617465676f7279446f65734e6f744578697374001b04ac41204368616e6e656c206f7220566964656f2043617465676f727920646f6573206e6f742065786973742e4c4368616e6e656c446f65734e6f744578697374001c04584368616e6e656c20646f6573206e6f7420657869737444566964656f446f65734e6f744578697374001d0450566964656f20646f6573206e6f7420657869737434566964656f496e536561736f6e001e04f4566664656f20696e20736561736f6e2063616e60742062652072656d6f766564202862656361757365206f7264657220697320696d706f7274616e7429444163746f7243616e6e6f7442654c656164001f04c84163746f722063616e6e6f7420617574686f72697a65206173206c65616420666f7220676976656e2065787472696e736963544163746f7243616e6e6f744f776e4368616e6e656c002004604163746f722063616e6e6f74204f776e206368616e6e656c604e6674416c72656164794f776e656442794368616e6e656c002104a4417474656d707420746f20736c696e67206261636b2061206368616e6e656c206f776e6564206e6674404e6674416c7265616479457869737473002204944e667420666f7220676976656e20766964656f20696420616c7265616479206578697374733c4e6674446f65734e6f744578697374002304944e667420666f7220676976656e20766964656f20696420646f6573206e6f742065786973746c4f766572666c6f774f72556e646572666c6f7748617070656e6564002404904f766572666c6f77206f7220756e646572666c6f77206572726f722068617070656e656434446f65734e6f744f776e4e667400250474476976656e206f726967696e20646f6573206e6f74206f776e206e667464526f79616c74795570706572426f756e64457863656564656400260470526f79616c747920557070657220426f756e6420457863656564656464526f79616c74794c6f776572426f756e64457863656564656400270470526f79616c7479204c6f77657220426f756e642045786365656465648441756374696f6e4475726174696f6e5570706572426f756e6445786365656465640028049441756374696f6e206475726174696f6e20757070657220626f756e642065786365656465648441756374696f6e4475726174696f6e4c6f776572426f756e6445786365656465640029049441756374696f6e206475726174696f6e206c6f77657220626f756e6420657863656564656484457874656e73696f6e506572696f645570706572426f756e644578636565646564002a04b441756374696f6e20657874656e73696f6e20706572696f6420757070657220626f756e6420657863656564656484457874656e73696f6e506572696f644c6f776572426f756e644578636565646564002b04b441756374696f6e20657874656e73696f6e20706572696f64206c6f77657220626f756e64206578636565646564844269644c6f636b4475726174696f6e5570706572426f756e644578636565646564002c0498426964206c6f636b206475726174696f6e20757070657220626f756e64206578636565646564844269644c6f636b4475726174696f6e4c6f776572426f756e644578636565646564002d0498426964206c6f636b206475726174696f6e206c6f77657220626f756e642065786365656465647c5374617274696e6750726963655570706572426f756e644578636565646564002e048c5374617274696e6720707269636520757070657220626f756e642065786365656465647c5374617274696e6750726963654c6f776572426f756e644578636565646564002f048c5374617274696e67207072696365206c6f77657220626f756e642065786365656465648041756374696f6e426964537465705570706572426f756e6445786365656465640030049441756374696f6e20626964207374657020757070657220626f756e642065786365656465648041756374696f6e426964537465704c6f776572426f756e6445786365656465640031049441756374696f6e206269642073746570206c6f77657220626f756e642065786365656465644c496e73756666696369656e7442616c616e636500320450496e73756666696369656e742062616c616e63656442696453746570436f6e73747261696e7456696f6c61746564003304b44d696e696d616c2061756374696f6e20626964207374657020636f6e73747261696e742076696f6c617465642e64496e76616c6964426964416d6f756e7453706563696669656400340488436f6d6d697420766572696669636174696f6e20666f722062696420616d6f756e747c5374617274696e675072696365436f6e73747261696e7456696f6c61746564003504ac41756374696f6e207374617274696e6720707269636520636f6e73747261696e742076696f6c617465642e50416374696f6e48617342696473416c7265616479003604a8416c7265616479206163746976652061756374696f6e2063616e6e6f742062652063616e63656c6c6564304e667449734e6f7449646c65003704990143616e206e6f74206372656174652061756374696f6e20666f72204e66742c2069662061756374696f6e2068617665206265656e20616c72656164792073746172746564206f72206e6674206973206c6f636b656420666f7220746865207472616e736665726050656e64696e674f66666572446f65734e6f7445786973740038047c4e6f2070656e64696e67206f666665727320666f7220676976656e204e6674545265776172644163636f756e7449734e6f74536574003904c843726561746f7220726f79616c747920726571756972657320726577617264206163636f756e7420746f206265207365742e404163746f7249734e6f74426964646572003a04684163746f72206973206e6f742061206c617374206269646465726041756374696f6e43616e6e6f744265436f6d706c65746564003b046c41756374696f6e2063616e6e6f7420626520636f6d706c657465643c426964446f65734e6f744578697374003c046841756374696f6e20646f6573206e6f74206861766520626964734c4269644973466f725061737441756374696f6e003d049453656c65637465642042696420697320666f722070617374206f70656e2061756374696f6e6853746172747341744c6f776572426f756e644578636565646564003e049841756374696f6e20737461727473206174206c6f77657220626f756e642065786365656465646853746172747341745570706572426f756e644578636565646564003f049841756374696f6e2073746172747320617420757070657220626f756e642065786365656465644841756374696f6e4469644e6f7453746172740040045c41756374696f6e20646964206e6f742073746172746564444e6f74496e41756374696f6e53746174650041046c4e6674206973206e6f7420696e2061756374696f6e2073746174657c4d656d62657249734e6f74416c6c6f776564546f5061727469636970617465004204bc4d656d626572206973206e6f7420616c6c6f77656420746f20706172746963697061746520696e2061756374696f6e544d656d62657250726f66696c654e6f74466f756e64004304604d656d6265722070726f66696c65206e6f7420666f756e644c4e66744e6f74496e4275794e6f7753746174650044049c476976656e20766964656f206e6674206973206e6f7420696e20627579206e6f7720737461746584496e76616c69644275794e6f775769746e657373507269636550726f76696465640045045501607769746e6573735f7072696365602070726f766964656420746f20606275795f6e6f77602065787472696e73696320646f6573206e6f74206d61746368207468652063757272656e742073656c6c2070726963655049734e6f744f70656e41756374696f6e547970650046046841756374696f6e2074797065206973206e6f7420604f70656e605c49734e6f74456e676c69736841756374696f6e547970650047047441756374696f6e2074797065206973206e6f742060456e676c697368606c4269644c6f636b4475726174696f6e49734e6f744578706972656400480480426964206c6f636b206475726174696f6e206973206e6f742065787069726564684e667441756374696f6e4973416c726561647945787069726564004904784e66742061756374696f6e20697320616c72656164792065787069726564904275794e6f774d7573744265477265617465725468616e5374617274696e675072696365004a04ac41756374696f6e20627579206e6f77206973206c657373207468656e207374617274696e67207072696365605461726765744d656d626572446f65734e6f744578697374004b04984e6674206f6666657220746172676574206d656d62657220646f6573206e6f742065786973748c496e76616c69644e66744f666665725769746e657373507269636550726f7669646564004c040d0143757272656e74206e6674206f6666657220707269636520646f6573206e6f74206d61746368207468652070726f766964656420607769746e6573735f707269636560ac4d617841756374696f6e57686974654c6973744c656e6774685570706572426f756e644578636565646564004d04c44d61782061756374696f6e2077686974656c697374206c656e67746820757070657220626f756e642065786365656465646457686974656c6973744861734f6e6c794f6e654d656d626572004e049441756374696f6e2077686974656c69737420686173206f6e6c79206f6e65206d656d6265727457686974656c69737465644d656d626572446f65734e6f744578697374004f04d84174206c65617374206f6e65206f66207468652077686974656c6973746564206d656d6265727320646f6573206e6f74206578697374784e66744e6f6e4368616e6e656c4f776e6572446f65734e6f744578697374005004f84e6f6e2d6368616e6e656c206f776e65722073706563696669656420647572696e67206e66742069737375616e636520646f6573206e6f74206578697374ac457874656e73696f6e506572696f644973477265617465725468656e41756374696f6e4475726174696f6e005104c4457874656e73696f6e20706572696f642069732067726561746572207468656e2061756374696f6e206475726174696f6e444e6f417373657473537065636966696564005204ac4e6f2061737365747320746f2062652072656d6f7665642068617665206265656e2073706563696669656454496e76616c696441737365747350726f7669646564005304684368616e6e656c2061737365747320666561736962696c697479544368616e6e656c436f6e7461696e73566964656f73005404584368616e6e656c20436f6e7461696e7320566964656f544368616e6e656c436f6e7461696e734173736574730055045c4368616e6e656c20436f6e7461696e73204173736574735c496e76616c696442616753697a655370656369666965640056047c4261672053697a6520737065636966696564206973206e6f742076616c6964504d6967726174696f6e4e6f7446696e6973686564005704584d6967726174696f6e206e6f7420646f6e6520796574445265706c79446f65734e6f7445786973740058046c5061727465636970616e74206973206e6f742061206d656d6265724c556e73756666696369656e7442616c616e636500590450496e73756666696369656e742062616c616e63656c496e73756666696369656e74547265617375727942616c616e6365005a0474496e73756666696369656e742074726561737572792062616c616e636554496e76616c69644d656d62657250726f7669646564005b0470496e76616c6964206d656d62657220696420207370656369666965643c4163746f724e6f74414d656d626572005c04544163746f72206973206e6f742041204d656d626572785061796d656e7450726f6f66566572696669636174696f6e4661696c6564005d04845061796d656e742050726f6f6620766572696669636174696f6e206661696c656484436173686f7574416d6f756e74457863656564734d6178696d756d416d6f756e74005e04c04368616e6e656c20636173686f757420616d6f756e7420697320746f6f206869676820746f20626520636c61696d65647c436173686f7574416d6f756e7442656c6f774d696e696d756d416d6f756e74005f04bc4368616e6e656c20636173686f757420616d6f756e7420697320746f6f206c6f7720746f20626520636c61696d6564e05769746864726177616c416d6f756e74457863656564734368616e6e656c4163636f756e74576974686472617761626c6542616c616e63650060085901416e20617474656d707420746f2077697468647261772066756e64732066726f6d206368616e6e656c206163636f756e74206661696c65642c2062656361757365207468652073706563696669656420616d6f756e744901657863656564732074686520776974686472617761626c6520616d6f756e7420286368616e6e656c206163636f756e742062616c616e6365206d696e7573206368616e6e656c20626c6f617420626f6e64297c576974686472617746726f6d4368616e6e656c416d6f756e7449735a65726f0061085901416e20617474656d707420746f2077697468647261772066756e64732066726f6d206368616e6e656c206163636f756e74206661696c65642c2062656361757365207468652073706563696669656420616d6f756e741c6973207a65726f5c4368616e6e656c436173686f75747344697361626c65640062049c4368616e6e656c20636173686f757473206172652063757272656e746c792064697361626c6564a44d696e436173686f7574416c6c6f776564457863656564734d6178436173686f7574416c6c6f77656400630809014e65772076616c75657320666f72206d696e5f636173686f75745f616c6c6f7765642f6d61785f636173686f75745f616c6c6f7765642061726520696e76616c6964d46d696e5f636173686f75745f616c6c6f7765642063616e6e6f7420657863656564206d61785f636173686f75745f616c6c6f7765648443757261746f724d6f6465726174696f6e416374696f6e4e6f74416c6c6f776564006404110143757261746f7220646f6573206e6f742068617665207065726d697373696f6e7320746f20706572666f726d20676976656e206d6f6465726174696f6e20616374696f6e944d617843757261746f725065726d697373696f6e735065724c6576656c457863656564656400650441014d6178696d756d206e756d626572206f662063757261746f72207065726d697373696f6e732070657220676976656e206368616e6e656c2070726976696c656765206c6576656c206578636565646564c043757261746f7247726f75704d61785065726d697373696f6e7342794c6576656c4d617053697a654578636565646564006604290143757261746f722067726f75702773207065726d697373696f6e73206279206c6576656c206d617020657863656564656420746865206d6178696d756d20616c6c6f7765642073697a65504368616e6e656c466561747572655061757365640067045d014f7065726174696f6e2063616e6e6f742062652065786563757465642c20626563617573652074686973206368616e6e656c206665617475726520686173206265656e2070617573656420627920612063757261746f72444368616e6e656c4261674d697373696e670068042d01556e65787065637465642072756e74696d652073746174653a206d697373696e67206368616e6e656c2062616720647572696e672064656c6574655f6368616e6e656c20617474656d70748c417373657473546f52656d6f76654265796f6e64456e74697479417373657473536574006904f5014c697374206f662061737365747320746f2072656d6f76652070726f766964656420666f72207570646174655f6368616e6e656c202f207570646174655f766964656f20636f6e7461696e7320617373657473207468617420646f6e27742062656c6f6e6720746f207468652073706563696669656420656e7469747990496e76616c6964566964656f446174614f626a65637473436f756e7450726f7669646564006a04f4496e76616c6964206e756d626572206f66206f626a6563747320746f2064656c6574652070726f766964656420666f722064656c6574655f766964656f70496e76616c69644368616e6e656c5472616e73666572537461747573006b04bc496e76616c6964206368616e6e656c207472616e736665722073746174757320666f72206f7065726174696f6e732e78496e76616c69644368616e6e656c5472616e736665724163636570746f72006c04d4496e636f7272656374206163746f7220747269657320746f2061636365707420746865206368616e6e656c207472616e736665722e98496e76616c69644368616e6e656c5472616e73666572436f6d6d69746d656e74506172616d73006d08550143616e6e6f742061636365707420746865206368616e6e656c207472616e736665723a2070726f766964656420636f6d6d69746d656e7420706172616d657465727320646f65736e2774206d617463682077697468906368616e6e656c2070656e64696e67207472616e7366657220706172616d65746572732e8c4368616e6e656c4167656e74496e73756666696369656e745065726d697373696f6e73006e004c496e76616c69644368616e6e656c4f776e6572006f04a4496e636f7272656374206368616e6e656c206f776e657220666f7220616e206f7065726174696f6e2e285a65726f5265776172640070046443616e6e6f7420636c61696d207a65726f207265776172642e78496e73756666696369656e7442616c616e6365466f725472616e73666572007104510143616e6e6f74207472616e7366657220746865206368616e6e656c3a206368616e6e656c206f776e65722068617320696e73756666696369656e742062616c616e6365202862756467657420666f72205747732994496e73756666696369656e7442616c616e6365466f724368616e6e656c4372656174696f6e0072080d0143616e6e6f742063726561746520746865206368616e6e656c3a206368616e6e656c2063726561746f722068617320696e73756666696369656e742062616c616e6365e9012862756467657420666f72206368616e6e656c20737461746520626c6f617420626f6e64202b206368616e6e656c2064617461206f626a7320737461746520626c6f617420626f6e6473202b2064617461206f626a732073746f726167652066656573202b206578697374656e7469616c206465706f736974298c496e73756666696369656e7442616c616e6365466f72566964656f4372656174696f6e007308fc43616e6e6f74206372656174652074686520766964656f3a20766964656f2063726561746f722068617320696e73756666696369656e742062616c616e6365d9012862756467657420666f7220766964656f20737461746520626c6f617420626f6e64202b20766964656f2064617461206f626a7320737461746520626c6f617420626f6e6473202b2064617461206f626a732073746f726167652066656573202b206578697374656e7469616c206465706f7369742964496e73756666696369656e74436f756e63696c4275646765740074006c476c6f62616c4e66744461696c794c696d6974457863656564656400750070476c6f62616c4e66745765656b6c794c696d69744578636565646564007600704368616e6e656c4e66744461696c794c696d69744578636565646564007700744368616e6e656c4e66745765656b6c794c696d697445786365656465640078006443726561746f72546f6b656e416c7265616479497373756564007904c443726561746f7220746f6b656e2077617320616c72656164792069737375656420666f722074686973206368616e6e656c5443726561746f72546f6b656e4e6f74497373756564007a04b043726561746f7220746f6b656e207761736e27742069737375656420666f722074686973206368616e6e656c884d656d6265724964436f756c644e6f7442654465726976656446726f6d4163746f72007b0415014d656d62657220696420636f756c64206e6f7420626520646572697665642066726f6d207468652070726f766964656420436f6e74656e744163746f7220636f6e74657874bc43616e6e6f74576974686472617746726f6d4368616e6e656c5769746843726561746f72546f6b656e497373756564007c08290143616e6e6f74206469726563746c792077697468647261772066756e64732066726f6d2061206368616e6e656c206163636f756e74207768656e20746865206368616e6e656c2068617358612063726561746f7220746f6b656e20697373756564bc506174726f6e61676543616e4f6e6c794265436c61696d6564466f724d656d6265724f776e65644368616e6e656c73007d04f4506174726f6e6167652063616e206f6e6c7920626520636c61696d6564206966206368616e6e656c206973206f776e65642062792061206d656d626572a84368616e6e656c5472616e7366657273426c6f636b6564447572696e67526576656e756553706c697473007e04cc4368616e6e656c205472616e73666572732061726520626c6f636b656420647572696e6720726576656e75652073706c6974739c4368616e6e656c5472616e7366657273426c6f636b6564447572696e67546f6b656e53616c6573007f04c04368616e6e656c205472616e73666572732061726520626c6f636b656420647572696e6720746f6b656e2073616c65730460436f6e74656e74206469726563746f7279206572726f7273e508083870616c6c65745f73746f72616765244261675265636f7264084c53746f726167654275636b657449647353657401e90860446973747269627574696f6e4275636b657449647353657401ed080010012473746f7265645f6279e908014c53746f726167654275636b657449647353657400013864697374726962757465645f6279ed080160446973747269627574696f6e4275636b65744964735365740001486f626a656374735f746f74616c5f73697a6528010c7536340001386f626a656374735f6e756d62657228010c7536340000e9080c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401280453000004006901012c42547265655365743c543e0000ed080c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e64656442547265655365740804540125020453000004003902012c42547265655365743c543e0000f108083870616c6c65745f73746f726167654c53746f726167654275636b65745265636f72640820576f726b657249640128244163636f756e74496401000010013c6f70657261746f725f737461747573f50801c053746f726167654275636b65744f70657261746f725374617475733c576f726b657249642c204163636f756e7449643e000148616363657074696e675f6e65775f62616773980110626f6f6c00011c766f7563686572ad02011c566f756368657200013461737369676e65645f6261677328010c7536340000f508083870616c6c65745f73746f726167656c53746f726167654275636b65744f70657261746f725374617475730820576f726b657249640128244163636f756e7449640100010c1c4d697373696e6700000050496e766974656453746f72616765576f726b65720400280120576f726b657249640001003453746f72616765576f726b65720800280120576f726b6572496400000001244163636f756e74496400020000f9080c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003001185665633c543e0000fd08083870616c6c65745f73746f726167656044796e616d69634261674372656174696f6e506f6c69637904b0446973747269627574696f6e4275636b657446616d696c79546f4e756d6265724f664275636b6574734d6170010109000801646e756d6265725f6f665f73746f726167655f6275636b65747310010c75333200012066616d696c696573010901b0446973747269627574696f6e4275636b657446616d696c79546f4e756d6265724f664275636b6574734d6170000001090c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b012804560110045300000400b502013842547265654d61703c4b2c20563e0000050900000408950228000909083870616c6c65745f73746f7261676528446174614f626a6563740448526570617961626c65426c6f6174426f6e6401e101001001206163636570746564980110626f6f6c00014073746174655f626c6f61745f626f6e64e1010148526570617961626c65426c6f6174426f6e6400011073697a6528010c75363400013c697066735f636f6e74656e745f6964f908013c4261736535384d756c74696861736800000d09083870616c6c65745f73746f7261676578446973747269627574696f6e4275636b657446616d696c795265636f7264045c446973747269627574696f6e4275636b6574496e6465780128000401786e6578745f646973747269627574696f6e5f6275636b65745f696e64657828015c446973747269627574696f6e4275636b6574496e64657800001109083870616c6c65745f73746f7261676560446973747269627574696f6e4275636b65745265636f72640888446973747269627574696f6e4275636b6574496e76697465644f70657261746f72730115096c446973747269627574696f6e4275636b65744f70657261746f727301190900140148616363657074696e675f6e65775f62616773980110626f6f6c000130646973747269627574696e67980110626f6f6c00014c70656e64696e675f696e7669746174696f6e7315090188446973747269627574696f6e4275636b6574496e76697465644f70657261746f72730001246f70657261746f72731909016c446973747269627574696f6e4275636b65744f70657261746f727300013461737369676e65645f6261677328010c753634000015090c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401280453000004006901012c42547265655365743c543e000019090c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401280453000004006901012c42547265655365743c543e00001d09083870616c6c65745f73746f72616765144572726f72040454000105013c41726974686d657469634572726f72000004f447656e657269632041726974686d65746963204572726f722064756520746f20696e7465726e616c206163636f756e74696e67206f7065726174696f6e40496e76616c69644369644c656e67746800010494496e76616c696420434944206c656e67746820286d75737420626520343620627974657329444e6f4f626a656374734f6e55706c6f6164000204a0456d707479202264617461206f626a656374206372656174696f6e2220636f6c6c656374696f6e2e6053746f726167654275636b6574446f65736e744578697374000304ac546865207265717565737465642073746f72616765206275636b657420646f65736e27742065786973742e7053746f726167654275636b657449734e6f74426f756e64546f426167000404cc546865207265717565737465642073746f72616765206275636b6574206973206e6f7420626f756e6420746f2061206261672e6453746f726167654275636b65744973426f756e64546f426167000504dc546865207265717565737465642073746f72616765206275636b657420697320616c726561647920626f756e6420746f2061206261672e644e6f53746f726167654275636b6574496e7669746174696f6e0006041901496e76616c6964206f7065726174696f6e207769746820696e76697465733a207468657265206973206e6f2073746f72616765206275636b657420696e7669746174696f6e2e6453746f7261676550726f7669646572416c72656164795365740007040501496e76616c6964206f7065726174696f6e207769746820696e76697465733a2073746f726167652070726f76696465722077617320616c7265616479207365742e6053746f7261676550726f76696465724d75737442655365740008047453746f726167652070726f7669646572206d757374206265207365742e7c446966666572656e7453746f7261676550726f7669646572496e76697465640009041501496e76616c6964206f7065726174696f6e207769746820696e76697465733a20616e6f746865722073746f726167652070726f76696465722077617320696e76697465642e58496e766974656453746f7261676550726f7669646572000a041501496e76616c6964206f7065726174696f6e207769746820696e76697465733a2073746f726167652070726f76696465722077617320616c726561647920696e76697465642e8853746f726167654275636b65744964436f6c6c656374696f6e73417265456d707479000b04a053746f72616765206275636b657420696420636f6c6c656374696f6e732061726520656d7074792ed053746f726167654275636b6574734e756d62657256696f6c6174657344796e616d69634261674372656174696f6e506f6c696379000c08290153746f72616765206275636b657420696420636f6c6c656374696f6e2070726f766964656420636f6e747261646963747320746865206578697374696e672064796e616d696320626167406372656174696f6e20706f6c6963792ecc446973747269627574696f6e4275636b65747356696f6c6174657344796e616d69634261674372656174696f6e506f6c696379000d083d01446973747269627574696f6e206275636b657420696420636f6c6c656374696f6e2070726f766964656420636f6e747261646963747320746865206578697374696e672064796e616d696320626167406372656174696f6e20706f6c6963792e38456d707479436f6e74656e744964000e04b455706c6f61642064617461206572726f723a20656d70747920636f6e74656e742049442070726f76696465642e385a65726f4f626a65637453697a65000f049055706c6f61642064617461206572726f723a207a65726f206f626a6563742073697a652e88496e76616c69645374617465426c6f6174426f6e64536f757263654163636f756e74001004ec55706c6f61642064617461206572726f723a20696e76616c696420737461746520626c6f617420626f6e6420736f75726365206163636f756e742e58496e76616c696453746f7261676550726f766964657200110490496e76616c69642073746f726167652070726f766964657220666f72206275636b65742e4c496e73756666696369656e7442616c616e636500120498496e73756666696369656e742062616c616e636520666f7220616e206f7065726174696f6e2e54446174614f626a656374446f65736e7445786973740013046844617461206f626a65637420646f65736e27742065786973742e4055706c6f6164696e67426c6f636b65640014049c55706c6f6164696e67206f6620746865206e6577206f626a65637420697320626c6f636b65642e74446174614f626a6563744964436f6c6c656374696f6e4973456d7074790015048c44617461206f626a65637420696420636f6c6c656374696f6e20697320656d7074792e80536f75726365416e6444657374696e6174696f6e42616773417265457175616c001604a043616e6e6f74206d6f7665206f626a656374732077697468696e207468652073616d65206261672e54446174614f626a656374426c61636b6c6973746564001704a844617461206f626a65637420686173682069732070617274206f662074686520626c61636b6c6973742e68426c61636b6c69737453697a654c696d6974457863656564656400180478426c61636b6c6973742073697a65206c696d69742065786365656465642e84566f75636865724d61784f626a65637453697a654c696d69744578636565646564001904ac4d6178206f626a6563742073697a65206c696d697420657863656564656420666f7220766f75636865722e8c566f75636865724d61784f626a6563744e756d6265724c696d69744578636565646564001a04b44d6178206f626a656374206e756d626572206c696d697420657863656564656420666f7220766f75636865722e9453746f726167654275636b65744f626a6563744e756d6265724c696d697452656163686564001b04cc4f626a656374206e756d626572206c696d697420666f72207468652073746f72616765206275636b657420726561636865642e8c53746f726167654275636b65744f626a65637453697a654c696d697452656163686564001c04e04f626a6563747320746f74616c2073697a65206c696d697420666f72207468652073746f72616765206275636b657420726561636865642e6c496e73756666696369656e74547265617375727942616c616e6365001d04d8496e73756666696369656e74206d6f64756c652074726561737572792062616c616e636520666f7220616e206f7065726174696f6e2e8443616e6e6f7444656c6574654e6f6e456d70747953746f726167654275636b6574001e04a443616e6e6f742064656c6574652061206e6f6e2d656d7074792073746f72616765206275636b65742e68446174614f626a6563744964506172616d73417265456d707479001f04f85468652060646174615f6f626a6563745f696473602065787472696e73696320706172616d6574657220636f6c6c656374696f6e20697320656d7074792e7c53746f726167654275636b6574735065724261674c696d6974546f6f4c6f77002004d8546865206e6577206053746f726167654275636b6574735065724261674c696d697460206e756d62657220697320746f6f206c6f772e8053746f726167654275636b6574735065724261674c696d6974546f6f48696768002104dc546865206e6577206053746f726167654275636b6574735065724261674c696d697460206e756d62657220697320746f6f20686967682e8053746f726167654275636b65745065724261674c696d69744578636565646564002204cc6053746f726167654275636b6574735065724261674c696d6974602077617320657863656564656420666f722061206261672e8053746f726167654275636b6574446f65736e744163636570744e657742616773002304ac5468652073746f72616765206275636b657420646f65736e277420616363657074206e657720626167732e4044796e616d6963426167457869737473002404c843616e6e6f7420637265617465207468652064796e616d6963206261673a2064796e616d696320626167206578697374732e5444796e616d6963426167446f65736e7445786973740025046844796e616d69632062616720646f65736e27742065786973742e8853746f7261676550726f76696465724f70657261746f72446f65736e744578697374002604a053746f726167652070726f7669646572206f70657261746f7220646f65736e27742065786973742e484461746153697a654665654368616e676564002704b8496e76616c69642065787472696e7369632063616c6c3a20646174612073697a6520666565206368616e6765642e7c446174614f626a6563745374617465426c6f6174426f6e644368616e676564002804f4496e76616c69642065787472696e7369632063616c6c3a2064617461206f626a65637420737461746520626c6f617420626f6e64206368616e6765642e7843616e6e6f7444656c6574654e6f6e456d70747944796e616d69634261670029049043616e6e6f742064656c657465206e6f6e20656d7074792064796e616d6963206261672eb84d6178446973747269627574696f6e4275636b657446616d696c794e756d6265724c696d69744578636565646564002a04d44d617820646973747269627574696f6e206275636b65742066616d696c79206e756d626572206c696d69742065786365656465642e8c446973747269627574696f6e4275636b657446616d696c79446f65736e744578697374002b04a4446973747269627574696f6e206275636b65742066616d696c7920646f65736e27742065786973742e74446973747269627574696f6e4275636b6574446f65736e744578697374002c0488446973747269627574696f6e206275636b657420646f65736e27742065786973742e9c446973747269627574696f6e4275636b65744964436f6c6c656374696f6e73417265456d707479002d04b4446973747269627574696f6e206275636b657420696420636f6c6c656374696f6e732061726520656d7074792e94446973747269627574696f6e4275636b6574446f65736e744163636570744e657742616773002e04b0446973747269627574696f6e206275636b657420646f65736e277420616363657074206e657720626167732eb84d6178446973747269627574696f6e4275636b65744e756d6265725065724261674c696d69744578636565646564002f04d84d617820646973747269627574696f6e206275636b6574206e756d6265722070657220626167206c696d69742065786365656465642e84446973747269627574696f6e4275636b657449734e6f74426f756e64546f426167003004a8446973747269627574696f6e206275636b6574206973206e6f7420626f756e6420746f2061206261672e78446973747269627574696f6e4275636b65744973426f756e64546f42616700310498446973747269627574696f6e206275636b657420697320626f756e6420746f2061206261672e90446973747269627574696f6e4275636b6574735065724261674c696d6974546f6f4c6f77003204ec546865206e65772060446973747269627574696f6e4275636b6574735065724261674c696d697460206e756d62657220697320746f6f206c6f772e94446973747269627574696f6e4275636b6574735065724261674c696d6974546f6f48696768003304f0546865206e65772060446973747269627574696f6e4275636b6574735065724261674c696d697460206e756d62657220697320746f6f20686967682e9c446973747269627574696f6e50726f76696465724f70657261746f72446f65736e744578697374003404b4446973747269627574696f6e2070726f7669646572206f70657261746f7220646f65736e27742065786973742ea8446973747269627574696f6e50726f76696465724f70657261746f72416c7265616479496e7669746564003504bc446973747269627574696f6e2070726f7669646572206f70657261746f7220616c726561647920696e76697465642e7c446973747269627574696f6e50726f76696465724f70657261746f72536574003604ac446973747269627574696f6e2070726f7669646572206f70657261746f7220616c7265616479207365742e784e6f446973747269627574696f6e4275636b6574496e7669746174696f6e003704884e6f20646973747269627574696f6e206275636b657420696e7669746174696f6e2eac4d7573744265446973747269627574696f6e50726f76696465724f70657261746f72466f724275636b65740038042901496e76616c6964206f7065726174696f6e733a206d757374206265206120646973747269627574696f6e2070726f7669646572206f70657261746f7220666f722061206275636b65742ef84d61784e756d6265724f6650656e64696e67496e7669746174696f6e734c696d6974466f72446973747269627574696f6e4275636b65745265616368656400390429014d6178206e756d626572206f662070656e64696e6720696e7669746174696f6e73206c696d697420666f72206120646973747269627574696f6e206275636b657420726561636865642ec04d61784e756d6265724f664f70657261746f7273506572446973747269627574696f6e4275636b657452656163686564003a04e84d6178206e756d626572206f66206f70657261746f727320666f72206120646973747269627574696f6e206275636b657420726561636865642ea8446973747269627574696f6e46616d696c79426f756e64546f4261674372656174696f6e506f6c696379003b04cc446973747269627574696f6e2066616d696c7920626f756e6420746f206120626167206372656174696f6e20706f6c6963792e644d6178446174614f626a65637453697a654578636565646564003c04784d61782064617461206f626a6563742073697a652065786365656465642e60496e76616c69645472616e736163746f724163636f756e74003d04b8496e76616c6964207472616e736163746f72206163636f756e7420494420666f722074686973206275636b65742ec04e756d6265724f6653746f726167654275636b6574734f7574736964654f66416c6c6f776564436f6e747261696e7473003e049c4e6f7420616c6c6f77656420276e756d626572206f662073746f72616765206275636b65747327d44e756d6265724f66446973747269627574696f6e4275636b6574734f7574736964654f66416c6c6f776564436f6e747261696e7473003f04b04e6f7420616c6c6f77656420276e756d626572206f6620646973747269627574696f6e206275636b657473273043616c6c44697361626c65640040043443616c6c2044697361626c6564048053746f72616765206d6f64756c6520707265646566696e6564206572726f727321090c5070616c6c65745f70726f6a6563745f746f6b656e1474797065732c4163636f756e7444617461101c42616c616e63650118345374616b696e6753746174757301250948526570617961626c65426c6f6174426f6e6401e1014056657374696e675363686564756c65730129090018014476657374696e675f7363686564756c65732909014056657374696e675363686564756c6573000118616d6f756e7418011c42616c616e636500015073706c69745f7374616b696e675f7374617475733d0901544f7074696f6e3c5374616b696e675374617475733e000128626c6f61745f626f6e64e1010148526570617961626c65426c6f6174426f6e640001606e6578745f76657374696e675f7472616e736665725f696428010c7536340001806c6173745f73616c655f746f74616c5f7075726368617365645f616d6f756e74410901784f7074696f6e3c28546f6b656e53616c6549642c2042616c616e6365293e000025090c5070616c6c65745f70726f6a6563745f746f6b656e147479706573345374616b696e67537461747573041c42616c616e636501180008012073706c69745f6964100138526576656e756553706c69744964000118616d6f756e7418011c42616c616e6365000029090c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b0111030456012d090453000004003109013842547265654d61703c4b2c20563e00002d090c5070616c6c65745f70726f6a6563745f746f6b656e1474797065733c56657374696e675363686564756c65082c426c6f636b4e756d62657201101c42616c616e63650118001401686c696e6561725f76657374696e675f73746172745f626c6f636b10012c426c6f636b4e756d62657200015c6c696e6561725f76657374696e675f6475726174696f6e10012c426c6f636b4e756d626572000130636c6966665f616d6f756e7418011c42616c616e636500015c706f73745f636c6966665f746f74616c5f616d6f756e7418011c42616c616e63650001346275726e65645f616d6f756e7418011c42616c616e636500003109042042547265654d617008044b0111030456012d090004003509000000350900000239090039090000040811032d09003d0904184f7074696f6e0404540125090108104e6f6e6500000010536f6d65040025090000010000410904184f7074696f6e0404540145090108104e6f6e6500000010536f6d6504004509000001000045090000040810180049090c5070616c6c65745f70726f6a6563745f746f6b656e14747970657324546f6b656e44617461141c42616c616e636501181048617368012c2c426c6f636b4e756d626572011024546f6b656e53616c6501210344526576656e756553706c69745374617465014d09002c0130746f74616c5f737570706c7918011c42616c616e6365000134746f6b656e735f69737375656418011c42616c616e63650001306e6578745f73616c655f696410012c546f6b656e53616c65496400011073616c65590901444f7074696f6e3c546f6b656e53616c653e00013c7472616e736665725f706f6c696379c50201505472616e73666572506f6c6963793c486173683e00011873796d626f6c2c011048617368000138706174726f6e6167655f696e666f5d09018c506174726f6e616765446174613c42616c616e63652c20426c6f636b4e756d6265723e00013c6163636f756e74735f6e756d62657228010c753634000148726576656e75655f73706c69745f72617465d502011c5065726d696c6c000134726576656e75655f73706c69744d090144526576656e756553706c697453746174650001546e6578745f726576656e75655f73706c69745f6964100138526576656e756553706c6974496400004d090c5070616c6c65745f70726f6a6563745f746f6b656e14747970657344526576656e756553706c6974537461746508284a6f7942616c616e636501182c426c6f636b4e756d6265720110010820496e616374697665000000184163746976650400510901a4526576656e756553706c6974496e666f3c4a6f7942616c616e63652c20426c6f636b4e756d6265723e0001000051090c5070616c6c65745f70726f6a6563745f746f6b656e14747970657340526576656e756553706c6974496e666f08284a6f7942616c616e636501182c426c6f636b4e756d6265720110000c0128616c6c6f636174696f6e1801284a6f7942616c616e636500012074696d656c696e655509015454696d656c696e653c426c6f636b4e756d6265723e0001446469766964656e64735f636c61696d65641801284a6f7942616c616e6365000055090c5070616c6c65745f70726f6a6563745f746f6b656e1474797065732054696d656c696e65042c426c6f636b4e756d626572011000080114737461727410012c426c6f636b4e756d6265720001206475726174696f6e10012c426c6f636b4e756d6265720000590904184f7074696f6e0404540121030108104e6f6e6500000010536f6d650400210300000100005d090c5070616c6c65745f70726f6a6563745f746f6b656e14747970657334506174726f6e61676544617461081c42616c616e636501182c426c6f636b4e756d6265720110000c01107261746561090124426c6f636b52617465000180756e636c61696d65645f706174726f6e6167655f74616c6c795f616d6f756e7418011c42616c616e63650001906c6173745f756e636c61696d65645f706174726f6e6167655f74616c6c795f626c6f636b10012c426c6f636b4e756d626572000061090c5070616c6c65745f70726f6a6563745f746f6b656e14747970657324426c6f636b52617465000004002503012c5065727175696e74696c6c000065090c5070616c6c65745f70726f6a6563745f746f6b656e186572726f7273144572726f720404540001c43c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f772980496e73756666696369656e745472616e736665727261626c6542616c616e636500010481014163636f756e742773207472616e736665727261626c652062616c616e636520697320696e73756666696369656e7420746f20706572666f726d20746865207472616e73666572206f7220696e697469616c697a6520746f6b656e2073616c6544546f6b656e446f65734e6f7445786973740002047852657175657374656420746f6b656e20646f6573206e6f74206578697374784163636f756e74496e666f726d6174696f6e446f65734e6f74457869737400030494526571756573746564206163636f756e74206461746120646f6573206e6f74206578697374945472616e7366657244657374696e6174696f6e4d656d626572446f65734e6f74457869737400040419014174206c65617374206f6e65206f6620746865207472616e736665722064657374696e6174696f6e73206973206e6f7420616e206578697374696e67206d656d626572206964784d65726b6c6550726f6f66566572696669636174696f6e4661696c757265000504804d65726b6c652070726f6f6620766572696669636174696f6e206661696c6564a8546172676574506174726f6e6167655261746549734869676865725468616e43757272656e7452617465000604c4546172676574205261746520697320686967686572207468616e2063757272656e7420706174726f6e61676520726174655c546f6b656e53796d626f6c416c7265616479496e5573650007045453796d626f6c20616c726561647920696e2075736590496e697469616c416c6c6f636174696f6e546f4e6f6e4578697374696e674d656d62657200080441014174206c65617374206f6e65206f6620746865206d656d626572732070726f76696465642061732070617274206f6620496e697469616c416c6c6f636174696f6e20646f6573206e6f74206578697374504163636f756e74416c7265616479457869737473000904584163636f756e7420416c7265616479206578697374736c546f6b656e49737375616e63654e6f74496e49646c655374617465000a04a8546f6b656e27732063757272656e74206f66666572696e67207374617465206973206e6f742049646c6558496e73756666696369656e744a6f7942616c616e6365000b04dc496e73756666696369656e74204a4f592042616c616e636520746f20636f76657220746865207472616e73616374696f6e20636f7374736c4a6f795472616e736665725375626a656374546f44757374696e67000c045d0154686520616d6f756e74206f66204a4f5920746f206265207472616e73666572726564206973206e6f7420656e6f75676820746f206b656570207468652064657374696e6174696f6e206163636f756e7420616c697665cc417474656d7074546f52656d6f76654e6f6e4f776e65644163636f756e74556e6465725065726d697373696f6e65644d6f6465000d04ec417474656d707420746f2072656d6f7665206e6f6e206f776e6564206163636f756e7420756e646572207065726d697373696f6e6564206d6f646578417474656d7074546f52656d6f76654e6f6e456d7074794163636f756e74000e04e4417474656d707420746f2072656d6f766520616e206163636f756e74207769746820736f6d65206f75747374616e64696e6720746f6b656e739c43616e6e6f744a6f696e57686974656c697374496e5065726d697373696f6e6c6573734d6f6465000f04b043616e6e6f74206a6f696e2077686974656c69737420696e207065726d697373696f6e6c657373206d6f6465a443616e6e6f7444656973737565546f6b656e576974684f75747374616e64696e674163636f756e7473001004b843616e6e6f74204465697373756520546f6b656e2077697468206f75747374616e64696e67206163636f756e7473384e6f5570636f6d696e6753616c650011047854686520746f6b656e20686173206e6f207570636f6d696e672073616c65304e6f41637469766553616c65001204a854686520746f6b656e20686173206e6f206163746976652073616c6520617420746865206d6f6d656e748c496e73756666696369656e7442616c616e6365466f72546f6b656e507572636861736500130401014163636f756e742773204a4f592062616c616e636520697320696e73756666696369656e7420746f206d616b652074686520746f6b656e207075726368617365544e6f74456e6f756768546f6b656e734f6e53616c650014047d01416d6f756e74206f6620746f6b656e7320746f207075726368617365206f6e2073616c65206578636565647320746865207175616e74697479206f6620746f6b656e73207374696c6c20617661696c61626c65206f6e207468652073616c656853616c655374617274696e67426c6f636b496e54686550617374001504b05370656369666965642073616c65207374617274696e6720626c6f636b20697320696e2074686520706173745c53616c6541636365737350726f6f66526571756972656400160481014f6e6c792077686974656c6973746564207061727469636970616e74732061726520616c6c6f77656420746f20616363657373207468652073616c652c207468657265666f7265206163636573732070726f6f662069732072657175697265649453616c6541636365737350726f6f665061727469636970616e7449734e6f7453656e64657200170829015061727469636970616e7420696e2073616c65206163636573732070726f6f662070726f766964656420647572696e67206070757263686173655f746f6b656e735f6f6e5f73616c656084646f6573206e6f74206d61746368207468652073656e646572206163636f756e745c53616c6550757263686173654361704578636565646564001808610153616c65207061727469636970616e742773206361702028656974686572206361705f7065725f6d656d626572206f722077686974656c6973746564207061727469636970616e742773207370656369666963206361702978776173206578636565646564207769746820746865207075726368617365b04d617856657374696e675363686564756c65735065724163636f756e74506572546f6b656e52656163686564001908c843616e6e6f742061646420616e6f746865722076657374696e67207363686564756c6520746f20616e206163636f756e742e31014d6178696d756d206e756d626572206f662076657374696e67207363686564756c657320666f722074686973206163636f756e742d746f6b656e20706169722077617320726561636865642e6050726576696f757353616c654e6f7446696e616c697a6564001a04e450726576696f75732073616c6520776173207374696c6c206e6f742066696e616c697a65642c2066696e616c697a652069742066697273742e444e6f546f6b656e73546f5265636f766572001b041501546865726520617265206e6f2072656d61696e696e6720746f6b657320746f207265636f7665722066726f6d207468652070726576696f757320746f6b656e2073616c652e5053616c654475726174696f6e546f6f53686f7274001c04dc5370656369666965642073616c65206475726174696f6e2069732073686f72746572207468616e204d696e53616c654475726174696f6e4853616c654475726174696f6e49735a65726f001d047053616c65206475726174696f6e2063616e6e6f74206265207a65726f7053616c655570706572426f756e645175616e7469747949735a65726f001e048c557070657220626f756e64207175616e746974792063616e6e6f74206265207a65726f5853616c654361705065724d656d62657249735a65726f001f049850757263686173652063617020706572206d656d6265722063616e6e6f74206265207a65726f4c53616c65556e6974507269636549735a65726f00200484546f6b656e277320756e69742070726963652063616e6e6f74206265207a65726f6053616c655075726368617365416d6f756e7449735a65726f002104cc416d6f756e74206f6620746f6b656e7320746f207075726368617365206f6e2073616c652063616e6e6f74206265207a65726f7c526576656e756553706c697454696d65546f5374617274546f6f53686f7274002204d453706563696669656420726576656e75652073706c6974207374617274696e6720626c6f636b20697320696e20746865207061737470526576656e756553706c69744475726174696f6e546f6f53686f72740023048c526576656e75652053706c6974206475726174696f6e20697320746f6f2073686f727484526576656e756553706c6974416c7265616479416374697665466f72546f6b656e002404a8417474656d707420746f2061637469766174652073706c69742077697468206f6e65206f6e676f696e6774526576656e756553706c69744e6f74416374697665466f72546f6b656e0025043501417474656d707420746f206d616b6520726576656e75652073706c6974206f7065726174696f6e73207769746820746f6b656e206e6f7420696e206163746976652073706c697420737461746554526576656e756553706c69744469644e6f74456e640026047c526576656e75652053706c697420686173206e6f7420656e6465642079657458526576656e756553706c69744e6f744f6e676f696e67002704bc526576656e75652053706c697420666f7220746f6b656e206163746976652c20627574206e6f74206f6e676f696e676055736572416c726561647950617274696369706174696e67002804bc5573657220616c72656164792070617274696369706174696e6720696e2074686520726576656e75652073706c6974a0496e73756666696369656e7442616c616e6365466f7253706c697450617274696369706174696f6e0029041d015573657220646f6573206e6f7420706f7373657320656e6f7567682062616c616e636520746f20706172746963697061746520696e2074686520726576656e75652073706c69747c557365724e6f745061727469636970616e74696e67496e416e7953706c6974002a049855736572206973206e6f742070617274696369706174696e6720696e20616e792073706c69749843616e6e6f745061727469636970617465496e53706c6974576974685a65726f416d6f756e74002b04e8417474656d707420746f20706172746963697061746520696e20612073706c69742077697468207a65726f20746f6b656e20746f207374616b65a043616e6e6f74497373756553706c6974576974685a65726f416c6c6f636174696f6e416d6f756e74002c04dc417474656d707420746f20697373756520696e20612073706c69742077697468207a65726f20616c6c6f636174696f6e20616d6f756e74b043616e6e6f744d6f64696679537570706c795768656e526576656e756553706c697473417265416374697665002d04d4417474656d707420746f206d6f6469667920737570706c79207768656e20726576656e75652073706c69742069732061637469766558526576656e756553706c69745261746549735a65726f002e0478526576656e75652073706c697420726174652063616e6e6f742062652030404275726e416d6f756e7449735a65726f002f047c50726f766964656420616d6f756e7420746f206275726e206973203d3d2030a04275726e416d6f756e74477265617465725468616e4163636f756e74546f6b656e73416d6f756e740030043101416d6f756e74206f6620746f6b656e7320746f206275726e206578636565647320746f74616c20616d6f756e74206f6620746f6b656e73206f776e656420627920746865206163636f756e740069090c5c70616c6c65745f70726f706f73616c735f656e67696e651474797065732050726f706f73616c102c426c6f636b4e756d62657201102850726f706f736572496401281c42616c616e63650118244163636f756e744964010000200128706172616d65746572736d0901a050726f706f73616c506172616d65746572733c426c6f636b4e756d6265722c2042616c616e63653e00012c70726f706f7365725f696428012850726f706f73657249640001306163746976617465645f617410012c426c6f636b4e756d6265720001187374617475732d03016c50726f706f73616c5374617475733c426c6f636b4e756d6265723e000138766f74696e675f726573756c747371090134566f74696e67526573756c747300015465786163745f657865637574696f6e5f626c6f636b0102014c4f7074696f6e3c426c6f636b4e756d6265723e00016c6e725f6f665f636f756e63696c5f636f6e6669726d6174696f6e7310010c7533320001487374616b696e675f6163636f756e745f69649401444f7074696f6e3c4163636f756e7449643e00006d090c5c70616c6c65745f70726f706f73616c735f656e67696e651474797065734850726f706f73616c506172616d6574657273082c426c6f636b4e756d62657201101c42616c616e6365011800200134766f74696e675f706572696f6410012c426c6f636b4e756d62657200013067726163655f706572696f6410012c426c6f636b4e756d626572000168617070726f76616c5f71756f72756d5f70657263656e7461676510010c753332000174617070726f76616c5f7468726573686f6c645f70657263656e7461676510010c753332000168736c617368696e675f71756f72756d5f70657263656e7461676510010c753332000174736c617368696e675f7468726573686f6c645f70657263656e7461676510010c75333200013872657175697265645f7374616b654501013c4f7074696f6e3c42616c616e63653e000144636f6e737469747574696f6e616c69747910010c753332000071090c5c70616c6c65745f70726f706f73616c735f656e67696e6514747970657334566f74696e67526573756c7473000010012c61627374656e74696f6e7310010c753332000124617070726f76616c7310010c75333200012872656a656374696f6e7310010c75333200011c736c617368657310010c753332000075090c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003001185665633c543e00007909000004081028007d09085c70616c6c65745f70726f706f73616c735f656e67696e65144572726f7204045400015c3c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f772948456d7074795469746c6550726f76696465640001049050726f706f73616c2063616e6e6f74206861766520616e20656d707479207469746c652260456d7074794465736372697074696f6e50726f76696465640002048850726f706f73616c2063616e6e6f74206861766520616e20656d70747920626f6479385469746c654973546f6f4c6f6e67000304445469746c6520697320746f6f206c6f6e67504465736372697074696f6e4973546f6f4c6f6e670004045c4465736372697074696f6e20697320746f6f206c6f6e674050726f706f73616c4e6f74466f756e640005046c5468652070726f706f73616c20646f6573206e6f742065786973744450726f706f73616c46696e616c697a65640006047450726f706f73616c2069732066696e616c697a656420616c726561647930416c7265616479566f7465640007049c5468652070726f706f73616c2068617665206265656e20616c726561647920766f746564206f6e244e6f74417574686f72000804344e6f7420616e20617574686f727c4d617841637469766550726f706f73616c4e756d6265724578636565646564000904904d6178206163746976652070726f706f73616c73206e756d62657220657863656564656428456d7074795374616b65000a04a05374616b652063616e6e6f7420626520656d707479207769746820746869732070726f706f73616c485374616b6553686f756c644265456d707479000b049c5374616b652073686f756c6420626520656d70747920666f7220746869732070726f706f73616c605374616b654469666665727346726f6d5265717569726564000c04b05374616b6520646966666572732066726f6d207468652070726f706f73616c20726571756972656d656e747384496e76616c6964506172616d65746572417070726f76616c5468726573686f6c64000d0484417070726f76616c207468726573686f6c642063616e6e6f74206265207a65726f84496e76616c6964506172616d65746572536c617368696e675468726573686f6c64000e0484536c617368696e67207468726573686f6c642063616e6e6f74206265207a65726f4452657175697265526f6f744f726967696e000f04845265717569726520726f6f74206f726967696e20696e2065787472696e736963734050726f706f73616c486173566f746573001004f4446973616c6c6f7720746f2063616e63656c207468652070726f706f73616c2069662074686572652061726520616e7920766f746573206f6e2069742e5c5a65726f4578616374457865637574696f6e426c6f636b00110494457861637420657865637574696f6e20626c6f636b2063616e6e6f74206265207a65726f2e68496e76616c69644578616374457865637574696f6e426c6f636b001204e0457861637420657865637574696f6e20626c6f636b2063616e6e6f74206265206c657373207468616e2063757272656e745f626c6f636b2e6c496e73756666696369656e7442616c616e6365466f725374616b65001304a05468657265206973206e6f7420656e6f7567682062616c616e636520666f722061207374616b652e44436f6e666c696374696e675374616b6573001404bc54686520636f6e666c696374696e67207374616b6520646973636f76657265642e2043616e6e6f74207374616b652e78496e76616c69645374616b696e674163636f756e74466f724d656d626572001504ac5374616b696e67206163636f756e7420646f65736e27742062656c6f6e6720746f2061206d656d6265722e8c4d6178446973706174636861626c6543616c6c436f646553697a6545786365656465640016043d015468652073697a65206f6620656e636f64656420646973706174636861626c652063616c6c20746f206265206578656375746564206279207468652070726f706f73616c20697320746f6f20626967047c456e67696e65206d6f64756c6520707265646566696e6564206572726f727381090c6c70616c6c65745f70726f706f73616c735f64697363757373696f6e1474797065734044697363757373696f6e5468726561640c204d656d626572496401282c426c6f636b4e756d62657201103c54687265616457686974656c697374018509000c01306163746976617465645f617410012c426c6f636b4e756d626572000124617574686f725f69642801204d656d62657249640001106d6f64658909016c5468726561644d6f64653c54687265616457686974656c6973743e000085090c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401280453000004006901012c42547265655365743c543e000089090c6c70616c6c65745f70726f706f73616c735f64697363757373696f6e147479706573285468726561644d6f6465043c54687265616457686974656c6973740185090108104f70656e00000018436c6f73656404008509013c54687265616457686974656c697374000100008d090c6c70616c6c65745f70726f706f73616c735f64697363757373696f6e1474797065733844697363757373696f6e506f73740c204d656d626572496401282c426c6f636b4e756d626572011048526570617961626c65426c6f6174426f6e6401e101000c0124617574686f725f69642801204d656d626572496400013c636c65616e75705f7061795f6f6666e1010148526570617961626c65426c6f6174426f6e6400012c6c6173745f65646974656410012c426c6f636b4e756d62657200009109086c70616c6c65745f70726f706f73616c735f64697363757373696f6e144572726f720404540001283c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f772944546872656164446f65736e7445786973740001045054687265616420646f65736e27742065786973743c506f7374446f65736e74457869737400020448506f737420646f65736e27742065786973744452657175697265526f6f744f726967696e000304845265717569726520726f6f74206f726967696e20696e2065787472696e736963736043616e6e6f74506f73744f6e436c6f7365645468726561640004046501546865207468726561642068617320436c6f736564206d6f64652e20416e6420706f737420617574686f7220646f65736e27742062656c6f6e6720746f20636f756e63696c206f7220616c6c6f776564206d656d626572732e504e6f74417574686f724f72436f756e63696c6f720005049453686f756c642062652074687265616420617574686f72206f7220636f756e63696c6f722e604d617857686974654c69737453697a654578636565646564000604a04d617820616c6c6f77656420617574686f7273206c697374206c696d69742065786365656465642e7457686974656c69737465644d656d626572446f65734e6f74457869737400070849014174206c65617374206f6e65206f6620746865206d656d626572206964732070726f76696465642061732070617274206f6620636c6f736564207468726561642077686974656c6973742062656c6f6e677364746f2061206e6f6e2d6578697374696e67206d656d6265722e68496e73756666696369656e7442616c616e6365466f72506f7374000804c44163636f756e742068617320696e73756666696369656e742062616c616e636520746f20637265617465206120706f73744043616e6e6f7444656c657465506f73740009049c4163636f756e742063616e27742064656c65746520706f737420617420746865206d6f6d656e74048c44697363757373696f6e206d6f64756c6520707265646566696e6564206572726f72739509085870616c6c65745f70726f706f73616c735f636f646578144572726f72040454000168545369676e616c50726f706f73616c4973456d707479000004a050726f7669646564207465787420666f7220746578742070726f706f73616c20697320656d7074795852756e74696d6550726f706f73616c4973456d707479000104f050726f7669646564205741534d20636f646520666f72207468652072756e74696d6520757067726164652070726f706f73616c20697320656d70747990496e76616c696446756e64696e675265717565737450726f706f73616c42616c616e6365000204bc496e76616c69642062616c616e63652076616c756520666f7220746865207370656e64696e672070726f706f73616c54496e76616c696456616c696461746f72436f756e74000304f8496e76616c69642076616c696461746f7220636f756e7420666f722074686520277365742076616c696461746f7220636f756e74272070726f706f73616c4452657175697265526f6f744f726967696e000404845265717569726520726f6f74206f726967696e20696e2065787472696e73696373a8496e76616c6964436f756e63696c456c656374696f6e506172616d65746572436f756e63696c53697a65000504c4496e76616c696420636f756e63696c20656c656374696f6e20706172616d65746572202d20636f756e63696c5f73697a65b4496e76616c6964436f756e63696c456c656374696f6e506172616d6574657243616e6469646163794c696d6974000604d0496e76616c696420636f756e63696c20656c656374696f6e20706172616d65746572202d2063616e6469646163792d6c696d6974b4496e76616c6964436f756e63696c456c656374696f6e506172616d657465724d696e566f74696e675374616b65000704d4496e76616c696420636f756e63696c20656c656374696f6e20706172616d65746572202d206d696e2d766f74696e675f7374616b65b8496e76616c6964436f756e63696c456c656374696f6e506172616d657465724e65775465726d4475726174696f6e000804d8496e76616c696420636f756e63696c20656c656374696f6e20706172616d65746572202d206e65775f7465726d5f6475726174696f6eb8496e76616c6964436f756e63696c456c656374696f6e506172616d657465724d696e436f756e63696c5374616b65000904d8496e76616c696420636f756e63696c20656c656374696f6e20706172616d65746572202d206d696e5f636f756e63696c5f7374616b65b8496e76616c6964436f756e63696c456c656374696f6e506172616d6574657252657665616c696e67506572696f64000a04d4496e76616c696420636f756e63696c20656c656374696f6e20706172616d65746572202d2072657665616c696e675f706572696f64ac496e76616c6964436f756e63696c456c656374696f6e506172616d65746572566f74696e67506572696f64000b04c8496e76616c696420636f756e63696c20656c656374696f6e20706172616d65746572202d20766f74696e675f706572696f64bc496e76616c6964436f756e63696c456c656374696f6e506172616d65746572416e6e6f756e63696e67506572696f64000c04d8496e76616c696420636f756e63696c20656c656374696f6e20706172616d65746572202d20616e6e6f756e63696e675f706572696f6484496e76616c6964576f726b696e6747726f75704275646765744361706163697479000d04bc496e76616c696420776f726b696e672067726f75702062756467657420636170616369747920706172616d65746572a0496e76616c69645365744c656164506172616d6574657243616e6e6f744265436f756e63696c6f72000e042d01496e76616c69642027736574206c6561642070726f706f73616c2720706172616d65746572202d2070726f706f736564206c6561642063616e6e6f74206265206120636f756e63696c6f724c536c617368696e675374616b6549735a65726f000f042101496e76616c69642027736c617368207374616b652070726f706f73616c2720706172616d65746572202d2063616e6e6f7420736c617368206279207a65726f2062616c616e63652e5444656372656173696e675374616b6549735a65726f0010043901496e76616c696420276465637265617365207374616b652070726f706f73616c2720706172616d65746572202d2063616e6e6f74206465637265617365206279207a65726f2062616c616e63652e80496e73756666696369656e7446756e6473466f724275646765745570646174650011041d01496e73756666696369656e742066756e647320666f72202755706461746520576f726b696e672047726f757020427564676574272070726f706f73616c20657865637574696f6eb0496e76616c696446756e64696e675265717565737450726f706f73616c4e756d6265724f664163636f756e740012045101496e76616c6964206e756d626572206f66206163636f756e747320726563696576696e672066756e64696e67207265717565737420666f72202746756e64696e672052657175657374272070726f706f73616c2eb0496e76616c696446756e64696e675265717565737450726f706f73616c52657065617465644163636f756e74001304bc5265706561746564206163636f756e7420696e202746756e64696e672052657175657374272070726f706f73616c2ee0496e76616c69644368616e6e656c5061796f75747350726f706f73616c4d696e436173686f7574457863656564734d6178436173686f7574001404e50154686520737065636966696564206d696e206368616e6e656c20636173686f75742069732067726561746572207468616e2074686520737065636966696564206d6178206368616e6e656c20636173686f757420696e2060557064617465204368616e6e656c205061796f757473602070726f706f73616c2e4c496e76616c69644c656164576f726b657249640015049050726f7669646564206c65616420776f726b6572206964206973206e6f742076616c696450496e76616c69644c6561644f70656e696e6749640016049450726f7669646564206c656164206f70656e696e67206964206973206e6f742076616c696460496e76616c69644c6561644170706c69636174696f6e4964001704a450726f7669646564206c656164206170706c69636174696f6e206964206973206e6f742076616c696444496e76616c696450726f706f73616c49640018048450726f76696465642070726f706f73616c206964206973206e6f742076616c69643c41726974686d657469634572726f720019043c41726974686d656963204572726f720478436f646578206d6f64756c6520707265646566696e6564206572726f727399090c5070616c6c65745f776f726b696e675f67726f75701474797065731c4f70656e696e670c2c426c6f636b4e756d62657201101c42616c616e636501181048617368012c001801306f70656e696e675f747970657d03012c4f70656e696e675479706500011c6372656174656410012c426c6f636b4e756d6265720001406465736372697074696f6e5f686173682c0110486173680001307374616b655f706f6c696379610301845374616b65506f6c6963793c426c6f636b4e756d6265722c2042616c616e63653e0001407265776172645f7065725f626c6f636b4501013c4f7074696f6e3c42616c616e63653e0001386372656174696f6e5f7374616b6518011c42616c616e636500009d090c5070616c6c65745f776f726b696e675f67726f7570147479706573384a6f624170706c69636174696f6e0c244163636f756e7449640100204d656d626572496401281048617368012c0018013c726f6c655f6163636f756e745f69640001244163636f756e7449640001447265776172645f6163636f756e745f69640001244163636f756e7449640001487374616b696e675f6163636f756e745f69640001244163636f756e7449640001246d656d6265725f69642801204d656d62657249640001406465736372697074696f6e5f686173682c0110486173680001286f70656e696e675f69642801244f70656e696e6749640000a1090c5070616c6c65745f776f726b696e675f67726f75701474797065732c47726f7570576f726b657210244163636f756e7449640100204d656d626572496401282c426c6f636b4e756d62657201101c42616c616e63650118002401246d656d6265725f69642801204d656d626572496400013c726f6c655f6163636f756e745f69640001244163636f756e7449640001487374616b696e675f6163636f756e745f69640001244163636f756e7449640001447265776172645f6163636f756e745f69640001244163636f756e744964000148737461727465645f6c656176696e675f61740102014c4f7074696f6e3c426c6f636b4e756d6265723e0001506a6f625f756e7374616b696e675f706572696f6410012c426c6f636b4e756d6265720001407265776172645f7065725f626c6f636b4501013c4f7074696f6e3c42616c616e63653e0001346d69737365645f7265776172644501013c4f7074696f6e3c42616c616e63653e000128637265617465645f617410012c426c6f636b4e756d6265720000a5090c5070616c6c65745f776f726b696e675f67726f7570186572726f7273144572726f720804540004490001803c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f7729605374616b6542616c616e636543616e6e6f7442655a65726f0001049850726f7669646564207374616b652062616c616e63652063616e6e6f74206265207a65726f2e4c4f70656e696e67446f65734e6f7445786973740002045c4f70656e696e6720646f6573206e6f742065786973742e6443616e6e6f74486972654d756c7469706c654c656164657273000304bc43616e6e6f742066696c6c206f70656e696e672077697468206d756c7469706c65206170706c69636174696f6e732e74576f726b65724170706c69636174696f6e446f65734e6f74457869737400040488576f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e744d6178416374697665576f726b65724e756d626572457863656564656400050488576f726b696e672067726f75702073697a65206c696d69742065786365656465642e9c5375636365737366756c576f726b65724170706c69636174696f6e446f65734e6f744578697374000604b45375636365737366756c20776f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e8043616e6e6f74486972654c65616465725768656e4c6561646572457869737473000704c45468657265206973206c656164657220616c72656164792c2063616e6e6f74206869726520616e6f74686572206f6e652e4049734e6f744c6561644163636f756e740008044c4e6f742061206c656164206163636f756e742e4443757272656e744c6561644e6f745365740009046043757272656e74206c656164206973206e6f74207365742e48576f726b6572446f65734e6f744578697374000a0458576f726b657220646f6573206e6f742065786973742e4c496e76616c69644d656d6265724f726967696e000b0470496e76616c6964206f726967696e20666f722061206d656d6265722e705369676e657249734e6f74576f726b6572526f6c654163636f756e74000c04885369676e6572206973206e6f7420776f726b657220726f6c65206163636f756e742e4842656c6f774d696e696d756d5374616b6573000d04885374616b696e67206c657373207468616e20746865206c6f77657220626f756e642e7c496e73756666696369656e7442616c616e6365546f436f7665725374616b65000e0490496e73756666696369656e742062616c616e636520746f20636f766572207374616b652e884170706c69636174696f6e5374616b65446f65736e744d617463684f70656e696e67000f04d84170706c69636174696f6e207374616b65206973206c657373207468616e207265717569726564206f70656e696e67207374616b652e504f726967696e49734e6f744170706c6963616e74001004604f726967696e206973206e6f74206170706c6963616e742e3c576f726b657249734c656176696e6700110498496e76616c6964206f7065726174696f6e202d20776f726b6572206973206c656176696e672e5043616e6e6f74526577617264576974685a65726f0012046452657761726420636f756c64206e6f74206265207a65726f2e78496e76616c69645374616b696e674163636f756e74466f724d656d626572001304ac5374616b696e67206163636f756e7420646f65736e27742062656c6f6e6720746f2061206d656d6265722e5c436f6e666c6963745374616b65734f6e4163636f756e74001404b05374616b696e67206163636f756e7420636f6e7461696e7320636f6e666c696374696e67207374616b65732e44576f726b65724861734e6f5265776172640015047c576f726b657220686173206e6f20726563757272696e67207265776172642e78556e7374616b696e67506572696f644c6573735468616e4d696e696d756d001604090153706563696669656420756e7374616b696e6720706572696f64206973206c657373207468656e206d696e696d756d2073657420666f72207468652067726f75702e3c43616e6e6f745370656e645a65726f00170460496e76616c6964207370656e64696e6720616d6f756e742e74496e73756666696369656e74427564676574466f725370656e64696e67001804a449742773206e6f7420656e6f7567682062756467657420666f722074686973207370656e64696e672e584e6f4170706c69636174696f6e7350726f7669646564001904bc43616e6e6f742066696c6c206f70656e696e67202d206e6f206170706c69636174696f6e732070726f76696465642ea043616e6e6f7444656372656173655374616b6544656c7461477265617465725468616e5374616b65001a04fc43616e6e6f74206465637265617365207374616b65202d207374616b652064656c74612067726561746572207468616e20696e697469616c207374616b652e644170706c69636174696f6e734e6f74466f724f70656e696e67001b04f0547279696e6720746f2066696c6c206f70656e696e67207769746820616e206170706c69636174696f6e20666f72206f74686572206f70656e696e6764576f726b657253746f7261676556616c7565546f6f4c6f6e67001c0480576f726b65722073746f72616765207465787420697320746f6f206c6f6e672e70496e73756666696369656e74546f6b656e73466f7246756e64696e67001d04f8496e73756666696369656e7420746f6b656e7320666f722066756e64696e6720286f6e206d656d62657220636f6e74726f6c6c6572206163636f756e7429445a65726f546f6b656e7346756e64696e67001e047c547279696e6720746f2066756e642077697468207a65726f20746f6b656e7378496e73756666696369656e7442616c616e6365466f725472616e73666572001f04b443616e6e6f742077697468647261773a20696e73756666696369656e74206275646765742062616c616e63652e048c44697363757373696f6e206d6f64756c6520707265646566696e6564206572726f7273a9090c5070616c6c65745f776f726b696e675f67726f7570186572726f7273144572726f720804540004490001803c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f7729605374616b6542616c616e636543616e6e6f7442655a65726f0001049850726f7669646564207374616b652062616c616e63652063616e6e6f74206265207a65726f2e4c4f70656e696e67446f65734e6f7445786973740002045c4f70656e696e6720646f6573206e6f742065786973742e6443616e6e6f74486972654d756c7469706c654c656164657273000304bc43616e6e6f742066696c6c206f70656e696e672077697468206d756c7469706c65206170706c69636174696f6e732e74576f726b65724170706c69636174696f6e446f65734e6f74457869737400040488576f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e744d6178416374697665576f726b65724e756d626572457863656564656400050488576f726b696e672067726f75702073697a65206c696d69742065786365656465642e9c5375636365737366756c576f726b65724170706c69636174696f6e446f65734e6f744578697374000604b45375636365737366756c20776f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e8043616e6e6f74486972654c65616465725768656e4c6561646572457869737473000704c45468657265206973206c656164657220616c72656164792c2063616e6e6f74206869726520616e6f74686572206f6e652e4049734e6f744c6561644163636f756e740008044c4e6f742061206c656164206163636f756e742e4443757272656e744c6561644e6f745365740009046043757272656e74206c656164206973206e6f74207365742e48576f726b6572446f65734e6f744578697374000a0458576f726b657220646f6573206e6f742065786973742e4c496e76616c69644d656d6265724f726967696e000b0470496e76616c6964206f726967696e20666f722061206d656d6265722e705369676e657249734e6f74576f726b6572526f6c654163636f756e74000c04885369676e6572206973206e6f7420776f726b657220726f6c65206163636f756e742e4842656c6f774d696e696d756d5374616b6573000d04885374616b696e67206c657373207468616e20746865206c6f77657220626f756e642e7c496e73756666696369656e7442616c616e6365546f436f7665725374616b65000e0490496e73756666696369656e742062616c616e636520746f20636f766572207374616b652e884170706c69636174696f6e5374616b65446f65736e744d617463684f70656e696e67000f04d84170706c69636174696f6e207374616b65206973206c657373207468616e207265717569726564206f70656e696e67207374616b652e504f726967696e49734e6f744170706c6963616e74001004604f726967696e206973206e6f74206170706c6963616e742e3c576f726b657249734c656176696e6700110498496e76616c6964206f7065726174696f6e202d20776f726b6572206973206c656176696e672e5043616e6e6f74526577617264576974685a65726f0012046452657761726420636f756c64206e6f74206265207a65726f2e78496e76616c69645374616b696e674163636f756e74466f724d656d626572001304ac5374616b696e67206163636f756e7420646f65736e27742062656c6f6e6720746f2061206d656d6265722e5c436f6e666c6963745374616b65734f6e4163636f756e74001404b05374616b696e67206163636f756e7420636f6e7461696e7320636f6e666c696374696e67207374616b65732e44576f726b65724861734e6f5265776172640015047c576f726b657220686173206e6f20726563757272696e67207265776172642e78556e7374616b696e67506572696f644c6573735468616e4d696e696d756d001604090153706563696669656420756e7374616b696e6720706572696f64206973206c657373207468656e206d696e696d756d2073657420666f72207468652067726f75702e3c43616e6e6f745370656e645a65726f00170460496e76616c6964207370656e64696e6720616d6f756e742e74496e73756666696369656e74427564676574466f725370656e64696e67001804a449742773206e6f7420656e6f7567682062756467657420666f722074686973207370656e64696e672e584e6f4170706c69636174696f6e7350726f7669646564001904bc43616e6e6f742066696c6c206f70656e696e67202d206e6f206170706c69636174696f6e732070726f76696465642ea043616e6e6f7444656372656173655374616b6544656c7461477265617465725468616e5374616b65001a04fc43616e6e6f74206465637265617365207374616b65202d207374616b652064656c74612067726561746572207468616e20696e697469616c207374616b652e644170706c69636174696f6e734e6f74466f724f70656e696e67001b04f0547279696e6720746f2066696c6c206f70656e696e67207769746820616e206170706c69636174696f6e20666f72206f74686572206f70656e696e6764576f726b657253746f7261676556616c7565546f6f4c6f6e67001c0480576f726b65722073746f72616765207465787420697320746f6f206c6f6e672e70496e73756666696369656e74546f6b656e73466f7246756e64696e67001d04f8496e73756666696369656e7420746f6b656e7320666f722066756e64696e6720286f6e206d656d62657220636f6e74726f6c6c6572206163636f756e7429445a65726f546f6b656e7346756e64696e67001e047c547279696e6720746f2066756e642077697468207a65726f20746f6b656e7378496e73756666696369656e7442616c616e6365466f725472616e73666572001f04b443616e6e6f742077697468647261773a20696e73756666696369656e74206275646765742062616c616e63652e048c44697363757373696f6e206d6f64756c6520707265646566696e6564206572726f7273ad090c5070616c6c65745f776f726b696e675f67726f7570186572726f7273144572726f720804540004490001803c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f7729605374616b6542616c616e636543616e6e6f7442655a65726f0001049850726f7669646564207374616b652062616c616e63652063616e6e6f74206265207a65726f2e4c4f70656e696e67446f65734e6f7445786973740002045c4f70656e696e6720646f6573206e6f742065786973742e6443616e6e6f74486972654d756c7469706c654c656164657273000304bc43616e6e6f742066696c6c206f70656e696e672077697468206d756c7469706c65206170706c69636174696f6e732e74576f726b65724170706c69636174696f6e446f65734e6f74457869737400040488576f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e744d6178416374697665576f726b65724e756d626572457863656564656400050488576f726b696e672067726f75702073697a65206c696d69742065786365656465642e9c5375636365737366756c576f726b65724170706c69636174696f6e446f65734e6f744578697374000604b45375636365737366756c20776f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e8043616e6e6f74486972654c65616465725768656e4c6561646572457869737473000704c45468657265206973206c656164657220616c72656164792c2063616e6e6f74206869726520616e6f74686572206f6e652e4049734e6f744c6561644163636f756e740008044c4e6f742061206c656164206163636f756e742e4443757272656e744c6561644e6f745365740009046043757272656e74206c656164206973206e6f74207365742e48576f726b6572446f65734e6f744578697374000a0458576f726b657220646f6573206e6f742065786973742e4c496e76616c69644d656d6265724f726967696e000b0470496e76616c6964206f726967696e20666f722061206d656d6265722e705369676e657249734e6f74576f726b6572526f6c654163636f756e74000c04885369676e6572206973206e6f7420776f726b657220726f6c65206163636f756e742e4842656c6f774d696e696d756d5374616b6573000d04885374616b696e67206c657373207468616e20746865206c6f77657220626f756e642e7c496e73756666696369656e7442616c616e6365546f436f7665725374616b65000e0490496e73756666696369656e742062616c616e636520746f20636f766572207374616b652e884170706c69636174696f6e5374616b65446f65736e744d617463684f70656e696e67000f04d84170706c69636174696f6e207374616b65206973206c657373207468616e207265717569726564206f70656e696e67207374616b652e504f726967696e49734e6f744170706c6963616e74001004604f726967696e206973206e6f74206170706c6963616e742e3c576f726b657249734c656176696e6700110498496e76616c6964206f7065726174696f6e202d20776f726b6572206973206c656176696e672e5043616e6e6f74526577617264576974685a65726f0012046452657761726420636f756c64206e6f74206265207a65726f2e78496e76616c69645374616b696e674163636f756e74466f724d656d626572001304ac5374616b696e67206163636f756e7420646f65736e27742062656c6f6e6720746f2061206d656d6265722e5c436f6e666c6963745374616b65734f6e4163636f756e74001404b05374616b696e67206163636f756e7420636f6e7461696e7320636f6e666c696374696e67207374616b65732e44576f726b65724861734e6f5265776172640015047c576f726b657220686173206e6f20726563757272696e67207265776172642e78556e7374616b696e67506572696f644c6573735468616e4d696e696d756d001604090153706563696669656420756e7374616b696e6720706572696f64206973206c657373207468656e206d696e696d756d2073657420666f72207468652067726f75702e3c43616e6e6f745370656e645a65726f00170460496e76616c6964207370656e64696e6720616d6f756e742e74496e73756666696369656e74427564676574466f725370656e64696e67001804a449742773206e6f7420656e6f7567682062756467657420666f722074686973207370656e64696e672e584e6f4170706c69636174696f6e7350726f7669646564001904bc43616e6e6f742066696c6c206f70656e696e67202d206e6f206170706c69636174696f6e732070726f76696465642ea043616e6e6f7444656372656173655374616b6544656c7461477265617465725468616e5374616b65001a04fc43616e6e6f74206465637265617365207374616b65202d207374616b652064656c74612067726561746572207468616e20696e697469616c207374616b652e644170706c69636174696f6e734e6f74466f724f70656e696e67001b04f0547279696e6720746f2066696c6c206f70656e696e67207769746820616e206170706c69636174696f6e20666f72206f74686572206f70656e696e6764576f726b657253746f7261676556616c7565546f6f4c6f6e67001c0480576f726b65722073746f72616765207465787420697320746f6f206c6f6e672e70496e73756666696369656e74546f6b656e73466f7246756e64696e67001d04f8496e73756666696369656e7420746f6b656e7320666f722066756e64696e6720286f6e206d656d62657220636f6e74726f6c6c6572206163636f756e7429445a65726f546f6b656e7346756e64696e67001e047c547279696e6720746f2066756e642077697468207a65726f20746f6b656e7378496e73756666696369656e7442616c616e6365466f725472616e73666572001f04b443616e6e6f742077697468647261773a20696e73756666696369656e74206275646765742062616c616e63652e048c44697363757373696f6e206d6f64756c6520707265646566696e6564206572726f7273b1090c5070616c6c65745f776f726b696e675f67726f7570186572726f7273144572726f720804540004490001803c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f7729605374616b6542616c616e636543616e6e6f7442655a65726f0001049850726f7669646564207374616b652062616c616e63652063616e6e6f74206265207a65726f2e4c4f70656e696e67446f65734e6f7445786973740002045c4f70656e696e6720646f6573206e6f742065786973742e6443616e6e6f74486972654d756c7469706c654c656164657273000304bc43616e6e6f742066696c6c206f70656e696e672077697468206d756c7469706c65206170706c69636174696f6e732e74576f726b65724170706c69636174696f6e446f65734e6f74457869737400040488576f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e744d6178416374697665576f726b65724e756d626572457863656564656400050488576f726b696e672067726f75702073697a65206c696d69742065786365656465642e9c5375636365737366756c576f726b65724170706c69636174696f6e446f65734e6f744578697374000604b45375636365737366756c20776f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e8043616e6e6f74486972654c65616465725768656e4c6561646572457869737473000704c45468657265206973206c656164657220616c72656164792c2063616e6e6f74206869726520616e6f74686572206f6e652e4049734e6f744c6561644163636f756e740008044c4e6f742061206c656164206163636f756e742e4443757272656e744c6561644e6f745365740009046043757272656e74206c656164206973206e6f74207365742e48576f726b6572446f65734e6f744578697374000a0458576f726b657220646f6573206e6f742065786973742e4c496e76616c69644d656d6265724f726967696e000b0470496e76616c6964206f726967696e20666f722061206d656d6265722e705369676e657249734e6f74576f726b6572526f6c654163636f756e74000c04885369676e6572206973206e6f7420776f726b657220726f6c65206163636f756e742e4842656c6f774d696e696d756d5374616b6573000d04885374616b696e67206c657373207468616e20746865206c6f77657220626f756e642e7c496e73756666696369656e7442616c616e6365546f436f7665725374616b65000e0490496e73756666696369656e742062616c616e636520746f20636f766572207374616b652e884170706c69636174696f6e5374616b65446f65736e744d617463684f70656e696e67000f04d84170706c69636174696f6e207374616b65206973206c657373207468616e207265717569726564206f70656e696e67207374616b652e504f726967696e49734e6f744170706c6963616e74001004604f726967696e206973206e6f74206170706c6963616e742e3c576f726b657249734c656176696e6700110498496e76616c6964206f7065726174696f6e202d20776f726b6572206973206c656176696e672e5043616e6e6f74526577617264576974685a65726f0012046452657761726420636f756c64206e6f74206265207a65726f2e78496e76616c69645374616b696e674163636f756e74466f724d656d626572001304ac5374616b696e67206163636f756e7420646f65736e27742062656c6f6e6720746f2061206d656d6265722e5c436f6e666c6963745374616b65734f6e4163636f756e74001404b05374616b696e67206163636f756e7420636f6e7461696e7320636f6e666c696374696e67207374616b65732e44576f726b65724861734e6f5265776172640015047c576f726b657220686173206e6f20726563757272696e67207265776172642e78556e7374616b696e67506572696f644c6573735468616e4d696e696d756d001604090153706563696669656420756e7374616b696e6720706572696f64206973206c657373207468656e206d696e696d756d2073657420666f72207468652067726f75702e3c43616e6e6f745370656e645a65726f00170460496e76616c6964207370656e64696e6720616d6f756e742e74496e73756666696369656e74427564676574466f725370656e64696e67001804a449742773206e6f7420656e6f7567682062756467657420666f722074686973207370656e64696e672e584e6f4170706c69636174696f6e7350726f7669646564001904bc43616e6e6f742066696c6c206f70656e696e67202d206e6f206170706c69636174696f6e732070726f76696465642ea043616e6e6f7444656372656173655374616b6544656c7461477265617465725468616e5374616b65001a04fc43616e6e6f74206465637265617365207374616b65202d207374616b652064656c74612067726561746572207468616e20696e697469616c207374616b652e644170706c69636174696f6e734e6f74466f724f70656e696e67001b04f0547279696e6720746f2066696c6c206f70656e696e67207769746820616e206170706c69636174696f6e20666f72206f74686572206f70656e696e6764576f726b657253746f7261676556616c7565546f6f4c6f6e67001c0480576f726b65722073746f72616765207465787420697320746f6f206c6f6e672e70496e73756666696369656e74546f6b656e73466f7246756e64696e67001d04f8496e73756666696369656e7420746f6b656e7320666f722066756e64696e6720286f6e206d656d62657220636f6e74726f6c6c6572206163636f756e7429445a65726f546f6b656e7346756e64696e67001e047c547279696e6720746f2066756e642077697468207a65726f20746f6b656e7378496e73756666696369656e7442616c616e6365466f725472616e73666572001f04b443616e6e6f742077697468647261773a20696e73756666696369656e74206275646765742062616c616e63652e048c44697363757373696f6e206d6f64756c6520707265646566696e6564206572726f7273b5090c5070616c6c65745f776f726b696e675f67726f7570186572726f7273144572726f720804540004490001803c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f7729605374616b6542616c616e636543616e6e6f7442655a65726f0001049850726f7669646564207374616b652062616c616e63652063616e6e6f74206265207a65726f2e4c4f70656e696e67446f65734e6f7445786973740002045c4f70656e696e6720646f6573206e6f742065786973742e6443616e6e6f74486972654d756c7469706c654c656164657273000304bc43616e6e6f742066696c6c206f70656e696e672077697468206d756c7469706c65206170706c69636174696f6e732e74576f726b65724170706c69636174696f6e446f65734e6f74457869737400040488576f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e744d6178416374697665576f726b65724e756d626572457863656564656400050488576f726b696e672067726f75702073697a65206c696d69742065786365656465642e9c5375636365737366756c576f726b65724170706c69636174696f6e446f65734e6f744578697374000604b45375636365737366756c20776f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e8043616e6e6f74486972654c65616465725768656e4c6561646572457869737473000704c45468657265206973206c656164657220616c72656164792c2063616e6e6f74206869726520616e6f74686572206f6e652e4049734e6f744c6561644163636f756e740008044c4e6f742061206c656164206163636f756e742e4443757272656e744c6561644e6f745365740009046043757272656e74206c656164206973206e6f74207365742e48576f726b6572446f65734e6f744578697374000a0458576f726b657220646f6573206e6f742065786973742e4c496e76616c69644d656d6265724f726967696e000b0470496e76616c6964206f726967696e20666f722061206d656d6265722e705369676e657249734e6f74576f726b6572526f6c654163636f756e74000c04885369676e6572206973206e6f7420776f726b657220726f6c65206163636f756e742e4842656c6f774d696e696d756d5374616b6573000d04885374616b696e67206c657373207468616e20746865206c6f77657220626f756e642e7c496e73756666696369656e7442616c616e6365546f436f7665725374616b65000e0490496e73756666696369656e742062616c616e636520746f20636f766572207374616b652e884170706c69636174696f6e5374616b65446f65736e744d617463684f70656e696e67000f04d84170706c69636174696f6e207374616b65206973206c657373207468616e207265717569726564206f70656e696e67207374616b652e504f726967696e49734e6f744170706c6963616e74001004604f726967696e206973206e6f74206170706c6963616e742e3c576f726b657249734c656176696e6700110498496e76616c6964206f7065726174696f6e202d20776f726b6572206973206c656176696e672e5043616e6e6f74526577617264576974685a65726f0012046452657761726420636f756c64206e6f74206265207a65726f2e78496e76616c69645374616b696e674163636f756e74466f724d656d626572001304ac5374616b696e67206163636f756e7420646f65736e27742062656c6f6e6720746f2061206d656d6265722e5c436f6e666c6963745374616b65734f6e4163636f756e74001404b05374616b696e67206163636f756e7420636f6e7461696e7320636f6e666c696374696e67207374616b65732e44576f726b65724861734e6f5265776172640015047c576f726b657220686173206e6f20726563757272696e67207265776172642e78556e7374616b696e67506572696f644c6573735468616e4d696e696d756d001604090153706563696669656420756e7374616b696e6720706572696f64206973206c657373207468656e206d696e696d756d2073657420666f72207468652067726f75702e3c43616e6e6f745370656e645a65726f00170460496e76616c6964207370656e64696e6720616d6f756e742e74496e73756666696369656e74427564676574466f725370656e64696e67001804a449742773206e6f7420656e6f7567682062756467657420666f722074686973207370656e64696e672e584e6f4170706c69636174696f6e7350726f7669646564001904bc43616e6e6f742066696c6c206f70656e696e67202d206e6f206170706c69636174696f6e732070726f76696465642ea043616e6e6f7444656372656173655374616b6544656c7461477265617465725468616e5374616b65001a04fc43616e6e6f74206465637265617365207374616b65202d207374616b652064656c74612067726561746572207468616e20696e697469616c207374616b652e644170706c69636174696f6e734e6f74466f724f70656e696e67001b04f0547279696e6720746f2066696c6c206f70656e696e67207769746820616e206170706c69636174696f6e20666f72206f74686572206f70656e696e6764576f726b657253746f7261676556616c7565546f6f4c6f6e67001c0480576f726b65722073746f72616765207465787420697320746f6f206c6f6e672e70496e73756666696369656e74546f6b656e73466f7246756e64696e67001d04f8496e73756666696369656e7420746f6b656e7320666f722066756e64696e6720286f6e206d656d62657220636f6e74726f6c6c6572206163636f756e7429445a65726f546f6b656e7346756e64696e67001e047c547279696e6720746f2066756e642077697468207a65726f20746f6b656e7378496e73756666696369656e7442616c616e6365466f725472616e73666572001f04b443616e6e6f742077697468647261773a20696e73756666696369656e74206275646765742062616c616e63652e048c44697363757373696f6e206d6f64756c6520707265646566696e6564206572726f7273b9090c5070616c6c65745f776f726b696e675f67726f7570186572726f7273144572726f720804540004490001803c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f7729605374616b6542616c616e636543616e6e6f7442655a65726f0001049850726f7669646564207374616b652062616c616e63652063616e6e6f74206265207a65726f2e4c4f70656e696e67446f65734e6f7445786973740002045c4f70656e696e6720646f6573206e6f742065786973742e6443616e6e6f74486972654d756c7469706c654c656164657273000304bc43616e6e6f742066696c6c206f70656e696e672077697468206d756c7469706c65206170706c69636174696f6e732e74576f726b65724170706c69636174696f6e446f65734e6f74457869737400040488576f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e744d6178416374697665576f726b65724e756d626572457863656564656400050488576f726b696e672067726f75702073697a65206c696d69742065786365656465642e9c5375636365737366756c576f726b65724170706c69636174696f6e446f65734e6f744578697374000604b45375636365737366756c20776f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e8043616e6e6f74486972654c65616465725768656e4c6561646572457869737473000704c45468657265206973206c656164657220616c72656164792c2063616e6e6f74206869726520616e6f74686572206f6e652e4049734e6f744c6561644163636f756e740008044c4e6f742061206c656164206163636f756e742e4443757272656e744c6561644e6f745365740009046043757272656e74206c656164206973206e6f74207365742e48576f726b6572446f65734e6f744578697374000a0458576f726b657220646f6573206e6f742065786973742e4c496e76616c69644d656d6265724f726967696e000b0470496e76616c6964206f726967696e20666f722061206d656d6265722e705369676e657249734e6f74576f726b6572526f6c654163636f756e74000c04885369676e6572206973206e6f7420776f726b657220726f6c65206163636f756e742e4842656c6f774d696e696d756d5374616b6573000d04885374616b696e67206c657373207468616e20746865206c6f77657220626f756e642e7c496e73756666696369656e7442616c616e6365546f436f7665725374616b65000e0490496e73756666696369656e742062616c616e636520746f20636f766572207374616b652e884170706c69636174696f6e5374616b65446f65736e744d617463684f70656e696e67000f04d84170706c69636174696f6e207374616b65206973206c657373207468616e207265717569726564206f70656e696e67207374616b652e504f726967696e49734e6f744170706c6963616e74001004604f726967696e206973206e6f74206170706c6963616e742e3c576f726b657249734c656176696e6700110498496e76616c6964206f7065726174696f6e202d20776f726b6572206973206c656176696e672e5043616e6e6f74526577617264576974685a65726f0012046452657761726420636f756c64206e6f74206265207a65726f2e78496e76616c69645374616b696e674163636f756e74466f724d656d626572001304ac5374616b696e67206163636f756e7420646f65736e27742062656c6f6e6720746f2061206d656d6265722e5c436f6e666c6963745374616b65734f6e4163636f756e74001404b05374616b696e67206163636f756e7420636f6e7461696e7320636f6e666c696374696e67207374616b65732e44576f726b65724861734e6f5265776172640015047c576f726b657220686173206e6f20726563757272696e67207265776172642e78556e7374616b696e67506572696f644c6573735468616e4d696e696d756d001604090153706563696669656420756e7374616b696e6720706572696f64206973206c657373207468656e206d696e696d756d2073657420666f72207468652067726f75702e3c43616e6e6f745370656e645a65726f00170460496e76616c6964207370656e64696e6720616d6f756e742e74496e73756666696369656e74427564676574466f725370656e64696e67001804a449742773206e6f7420656e6f7567682062756467657420666f722074686973207370656e64696e672e584e6f4170706c69636174696f6e7350726f7669646564001904bc43616e6e6f742066696c6c206f70656e696e67202d206e6f206170706c69636174696f6e732070726f76696465642ea043616e6e6f7444656372656173655374616b6544656c7461477265617465725468616e5374616b65001a04fc43616e6e6f74206465637265617365207374616b65202d207374616b652064656c74612067726561746572207468616e20696e697469616c207374616b652e644170706c69636174696f6e734e6f74466f724f70656e696e67001b04f0547279696e6720746f2066696c6c206f70656e696e67207769746820616e206170706c69636174696f6e20666f72206f74686572206f70656e696e6764576f726b657253746f7261676556616c7565546f6f4c6f6e67001c0480576f726b65722073746f72616765207465787420697320746f6f206c6f6e672e70496e73756666696369656e74546f6b656e73466f7246756e64696e67001d04f8496e73756666696369656e7420746f6b656e7320666f722066756e64696e6720286f6e206d656d62657220636f6e74726f6c6c6572206163636f756e7429445a65726f546f6b656e7346756e64696e67001e047c547279696e6720746f2066756e642077697468207a65726f20746f6b656e7378496e73756666696369656e7442616c616e6365466f725472616e73666572001f04b443616e6e6f742077697468647261773a20696e73756666696369656e74206275646765742062616c616e63652e048c44697363757373696f6e206d6f64756c6520707265646566696e6564206572726f7273bd090c5070616c6c65745f776f726b696e675f67726f7570186572726f7273144572726f720804540004490001803c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f7729605374616b6542616c616e636543616e6e6f7442655a65726f0001049850726f7669646564207374616b652062616c616e63652063616e6e6f74206265207a65726f2e4c4f70656e696e67446f65734e6f7445786973740002045c4f70656e696e6720646f6573206e6f742065786973742e6443616e6e6f74486972654d756c7469706c654c656164657273000304bc43616e6e6f742066696c6c206f70656e696e672077697468206d756c7469706c65206170706c69636174696f6e732e74576f726b65724170706c69636174696f6e446f65734e6f74457869737400040488576f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e744d6178416374697665576f726b65724e756d626572457863656564656400050488576f726b696e672067726f75702073697a65206c696d69742065786365656465642e9c5375636365737366756c576f726b65724170706c69636174696f6e446f65734e6f744578697374000604b45375636365737366756c20776f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e8043616e6e6f74486972654c65616465725768656e4c6561646572457869737473000704c45468657265206973206c656164657220616c72656164792c2063616e6e6f74206869726520616e6f74686572206f6e652e4049734e6f744c6561644163636f756e740008044c4e6f742061206c656164206163636f756e742e4443757272656e744c6561644e6f745365740009046043757272656e74206c656164206973206e6f74207365742e48576f726b6572446f65734e6f744578697374000a0458576f726b657220646f6573206e6f742065786973742e4c496e76616c69644d656d6265724f726967696e000b0470496e76616c6964206f726967696e20666f722061206d656d6265722e705369676e657249734e6f74576f726b6572526f6c654163636f756e74000c04885369676e6572206973206e6f7420776f726b657220726f6c65206163636f756e742e4842656c6f774d696e696d756d5374616b6573000d04885374616b696e67206c657373207468616e20746865206c6f77657220626f756e642e7c496e73756666696369656e7442616c616e6365546f436f7665725374616b65000e0490496e73756666696369656e742062616c616e636520746f20636f766572207374616b652e884170706c69636174696f6e5374616b65446f65736e744d617463684f70656e696e67000f04d84170706c69636174696f6e207374616b65206973206c657373207468616e207265717569726564206f70656e696e67207374616b652e504f726967696e49734e6f744170706c6963616e74001004604f726967696e206973206e6f74206170706c6963616e742e3c576f726b657249734c656176696e6700110498496e76616c6964206f7065726174696f6e202d20776f726b6572206973206c656176696e672e5043616e6e6f74526577617264576974685a65726f0012046452657761726420636f756c64206e6f74206265207a65726f2e78496e76616c69645374616b696e674163636f756e74466f724d656d626572001304ac5374616b696e67206163636f756e7420646f65736e27742062656c6f6e6720746f2061206d656d6265722e5c436f6e666c6963745374616b65734f6e4163636f756e74001404b05374616b696e67206163636f756e7420636f6e7461696e7320636f6e666c696374696e67207374616b65732e44576f726b65724861734e6f5265776172640015047c576f726b657220686173206e6f20726563757272696e67207265776172642e78556e7374616b696e67506572696f644c6573735468616e4d696e696d756d001604090153706563696669656420756e7374616b696e6720706572696f64206973206c657373207468656e206d696e696d756d2073657420666f72207468652067726f75702e3c43616e6e6f745370656e645a65726f00170460496e76616c6964207370656e64696e6720616d6f756e742e74496e73756666696369656e74427564676574466f725370656e64696e67001804a449742773206e6f7420656e6f7567682062756467657420666f722074686973207370656e64696e672e584e6f4170706c69636174696f6e7350726f7669646564001904bc43616e6e6f742066696c6c206f70656e696e67202d206e6f206170706c69636174696f6e732070726f76696465642ea043616e6e6f7444656372656173655374616b6544656c7461477265617465725468616e5374616b65001a04fc43616e6e6f74206465637265617365207374616b65202d207374616b652064656c74612067726561746572207468616e20696e697469616c207374616b652e644170706c69636174696f6e734e6f74466f724f70656e696e67001b04f0547279696e6720746f2066696c6c206f70656e696e67207769746820616e206170706c69636174696f6e20666f72206f74686572206f70656e696e6764576f726b657253746f7261676556616c7565546f6f4c6f6e67001c0480576f726b65722073746f72616765207465787420697320746f6f206c6f6e672e70496e73756666696369656e74546f6b656e73466f7246756e64696e67001d04f8496e73756666696369656e7420746f6b656e7320666f722066756e64696e6720286f6e206d656d62657220636f6e74726f6c6c6572206163636f756e7429445a65726f546f6b656e7346756e64696e67001e047c547279696e6720746f2066756e642077697468207a65726f20746f6b656e7378496e73756666696369656e7442616c616e6365466f725472616e73666572001f04b443616e6e6f742077697468647261773a20696e73756666696369656e74206275646765742062616c616e63652e048c44697363757373696f6e206d6f64756c6520707265646566696e6564206572726f7273c1090c5070616c6c65745f776f726b696e675f67726f7570186572726f7273144572726f720804540004490001803c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f7729605374616b6542616c616e636543616e6e6f7442655a65726f0001049850726f7669646564207374616b652062616c616e63652063616e6e6f74206265207a65726f2e4c4f70656e696e67446f65734e6f7445786973740002045c4f70656e696e6720646f6573206e6f742065786973742e6443616e6e6f74486972654d756c7469706c654c656164657273000304bc43616e6e6f742066696c6c206f70656e696e672077697468206d756c7469706c65206170706c69636174696f6e732e74576f726b65724170706c69636174696f6e446f65734e6f74457869737400040488576f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e744d6178416374697665576f726b65724e756d626572457863656564656400050488576f726b696e672067726f75702073697a65206c696d69742065786365656465642e9c5375636365737366756c576f726b65724170706c69636174696f6e446f65734e6f744578697374000604b45375636365737366756c20776f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e8043616e6e6f74486972654c65616465725768656e4c6561646572457869737473000704c45468657265206973206c656164657220616c72656164792c2063616e6e6f74206869726520616e6f74686572206f6e652e4049734e6f744c6561644163636f756e740008044c4e6f742061206c656164206163636f756e742e4443757272656e744c6561644e6f745365740009046043757272656e74206c656164206973206e6f74207365742e48576f726b6572446f65734e6f744578697374000a0458576f726b657220646f6573206e6f742065786973742e4c496e76616c69644d656d6265724f726967696e000b0470496e76616c6964206f726967696e20666f722061206d656d6265722e705369676e657249734e6f74576f726b6572526f6c654163636f756e74000c04885369676e6572206973206e6f7420776f726b657220726f6c65206163636f756e742e4842656c6f774d696e696d756d5374616b6573000d04885374616b696e67206c657373207468616e20746865206c6f77657220626f756e642e7c496e73756666696369656e7442616c616e6365546f436f7665725374616b65000e0490496e73756666696369656e742062616c616e636520746f20636f766572207374616b652e884170706c69636174696f6e5374616b65446f65736e744d617463684f70656e696e67000f04d84170706c69636174696f6e207374616b65206973206c657373207468616e207265717569726564206f70656e696e67207374616b652e504f726967696e49734e6f744170706c6963616e74001004604f726967696e206973206e6f74206170706c6963616e742e3c576f726b657249734c656176696e6700110498496e76616c6964206f7065726174696f6e202d20776f726b6572206973206c656176696e672e5043616e6e6f74526577617264576974685a65726f0012046452657761726420636f756c64206e6f74206265207a65726f2e78496e76616c69645374616b696e674163636f756e74466f724d656d626572001304ac5374616b696e67206163636f756e7420646f65736e27742062656c6f6e6720746f2061206d656d6265722e5c436f6e666c6963745374616b65734f6e4163636f756e74001404b05374616b696e67206163636f756e7420636f6e7461696e7320636f6e666c696374696e67207374616b65732e44576f726b65724861734e6f5265776172640015047c576f726b657220686173206e6f20726563757272696e67207265776172642e78556e7374616b696e67506572696f644c6573735468616e4d696e696d756d001604090153706563696669656420756e7374616b696e6720706572696f64206973206c657373207468656e206d696e696d756d2073657420666f72207468652067726f75702e3c43616e6e6f745370656e645a65726f00170460496e76616c6964207370656e64696e6720616d6f756e742e74496e73756666696369656e74427564676574466f725370656e64696e67001804a449742773206e6f7420656e6f7567682062756467657420666f722074686973207370656e64696e672e584e6f4170706c69636174696f6e7350726f7669646564001904bc43616e6e6f742066696c6c206f70656e696e67202d206e6f206170706c69636174696f6e732070726f76696465642ea043616e6e6f7444656372656173655374616b6544656c7461477265617465725468616e5374616b65001a04fc43616e6e6f74206465637265617365207374616b65202d207374616b652064656c74612067726561746572207468616e20696e697469616c207374616b652e644170706c69636174696f6e734e6f74466f724f70656e696e67001b04f0547279696e6720746f2066696c6c206f70656e696e67207769746820616e206170706c69636174696f6e20666f72206f74686572206f70656e696e6764576f726b657253746f7261676556616c7565546f6f4c6f6e67001c0480576f726b65722073746f72616765207465787420697320746f6f206c6f6e672e70496e73756666696369656e74546f6b656e73466f7246756e64696e67001d04f8496e73756666696369656e7420746f6b656e7320666f722066756e64696e6720286f6e206d656d62657220636f6e74726f6c6c6572206163636f756e7429445a65726f546f6b656e7346756e64696e67001e047c547279696e6720746f2066756e642077697468207a65726f20746f6b656e7378496e73756666696369656e7442616c616e6365466f725472616e73666572001f04b443616e6e6f742077697468647261773a20696e73756666696369656e74206275646765742062616c616e63652e048c44697363757373696f6e206d6f64756c6520707265646566696e6564206572726f7273c5090c5070616c6c65745f776f726b696e675f67726f7570186572726f7273144572726f720804540004490001803c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f7729605374616b6542616c616e636543616e6e6f7442655a65726f0001049850726f7669646564207374616b652062616c616e63652063616e6e6f74206265207a65726f2e4c4f70656e696e67446f65734e6f7445786973740002045c4f70656e696e6720646f6573206e6f742065786973742e6443616e6e6f74486972654d756c7469706c654c656164657273000304bc43616e6e6f742066696c6c206f70656e696e672077697468206d756c7469706c65206170706c69636174696f6e732e74576f726b65724170706c69636174696f6e446f65734e6f74457869737400040488576f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e744d6178416374697665576f726b65724e756d626572457863656564656400050488576f726b696e672067726f75702073697a65206c696d69742065786365656465642e9c5375636365737366756c576f726b65724170706c69636174696f6e446f65734e6f744578697374000604b45375636365737366756c20776f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e8043616e6e6f74486972654c65616465725768656e4c6561646572457869737473000704c45468657265206973206c656164657220616c72656164792c2063616e6e6f74206869726520616e6f74686572206f6e652e4049734e6f744c6561644163636f756e740008044c4e6f742061206c656164206163636f756e742e4443757272656e744c6561644e6f745365740009046043757272656e74206c656164206973206e6f74207365742e48576f726b6572446f65734e6f744578697374000a0458576f726b657220646f6573206e6f742065786973742e4c496e76616c69644d656d6265724f726967696e000b0470496e76616c6964206f726967696e20666f722061206d656d6265722e705369676e657249734e6f74576f726b6572526f6c654163636f756e74000c04885369676e6572206973206e6f7420776f726b657220726f6c65206163636f756e742e4842656c6f774d696e696d756d5374616b6573000d04885374616b696e67206c657373207468616e20746865206c6f77657220626f756e642e7c496e73756666696369656e7442616c616e6365546f436f7665725374616b65000e0490496e73756666696369656e742062616c616e636520746f20636f766572207374616b652e884170706c69636174696f6e5374616b65446f65736e744d617463684f70656e696e67000f04d84170706c69636174696f6e207374616b65206973206c657373207468616e207265717569726564206f70656e696e67207374616b652e504f726967696e49734e6f744170706c6963616e74001004604f726967696e206973206e6f74206170706c6963616e742e3c576f726b657249734c656176696e6700110498496e76616c6964206f7065726174696f6e202d20776f726b6572206973206c656176696e672e5043616e6e6f74526577617264576974685a65726f0012046452657761726420636f756c64206e6f74206265207a65726f2e78496e76616c69645374616b696e674163636f756e74466f724d656d626572001304ac5374616b696e67206163636f756e7420646f65736e27742062656c6f6e6720746f2061206d656d6265722e5c436f6e666c6963745374616b65734f6e4163636f756e74001404b05374616b696e67206163636f756e7420636f6e7461696e7320636f6e666c696374696e67207374616b65732e44576f726b65724861734e6f5265776172640015047c576f726b657220686173206e6f20726563757272696e67207265776172642e78556e7374616b696e67506572696f644c6573735468616e4d696e696d756d001604090153706563696669656420756e7374616b696e6720706572696f64206973206c657373207468656e206d696e696d756d2073657420666f72207468652067726f75702e3c43616e6e6f745370656e645a65726f00170460496e76616c6964207370656e64696e6720616d6f756e742e74496e73756666696369656e74427564676574466f725370656e64696e67001804a449742773206e6f7420656e6f7567682062756467657420666f722074686973207370656e64696e672e584e6f4170706c69636174696f6e7350726f7669646564001904bc43616e6e6f742066696c6c206f70656e696e67202d206e6f206170706c69636174696f6e732070726f76696465642ea043616e6e6f7444656372656173655374616b6544656c7461477265617465725468616e5374616b65001a04fc43616e6e6f74206465637265617365207374616b65202d207374616b652064656c74612067726561746572207468616e20696e697469616c207374616b652e644170706c69636174696f6e734e6f74466f724f70656e696e67001b04f0547279696e6720746f2066696c6c206f70656e696e67207769746820616e206170706c69636174696f6e20666f72206f74686572206f70656e696e6764576f726b657253746f7261676556616c7565546f6f4c6f6e67001c0480576f726b65722073746f72616765207465787420697320746f6f206c6f6e672e70496e73756666696369656e74546f6b656e73466f7246756e64696e67001d04f8496e73756666696369656e7420746f6b656e7320666f722066756e64696e6720286f6e206d656d62657220636f6e74726f6c6c6572206163636f756e7429445a65726f546f6b656e7346756e64696e67001e047c547279696e6720746f2066756e642077697468207a65726f20746f6b656e7378496e73756666696369656e7442616c616e6365466f725472616e73666572001f04b443616e6e6f742077697468647261773a20696e73756666696369656e74206275646765742062616c616e63652e048c44697363757373696f6e206d6f64756c6520707265646566696e6564206572726f7273c909102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c4164647265737301001043616c6c013904245369676e617475726501cd0914457874726101d90900040030000000cd09082873705f72756e74696d65384d756c74695369676e617475726500010c1c4564323535313904009d050148656432353531393a3a5369676e61747572650000001c537232353531390400d1050148737232353531393a3a5369676e61747572650001001445636473610400d109014065636473613a3a5369676e617475726500020000d1090c1c73705f636f7265146563647361245369676e617475726500000400d50901205b75383b2036355d0000d509000003410000000800d90900000420dd09e109e509e909ed09f509f909fd0900dd0910306672616d655f73797374656d28657874656e73696f6e7354636865636b5f6e6f6e5f7a65726f5f73656e64657248436865636b4e6f6e5a65726f53656e64657204045400000000e10910306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e04045400000000e50910306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e04045400000000e90910306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e6573697304045400000000ed0910306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c69747904045400000400f109010c4572610000f109102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff0000f50910306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e636504045400000400e5030120543a3a496e6465780000f90910306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b57656967687404045400000000fd09086870616c6c65745f7472616e73616374696f6e5f7061796d656e74604368617267655472616e73616374696f6e5061796d656e7404045400000400ec013042616c616e63654f663c543e0000010a08586a6f7973747265616d5f6e6f64655f72756e74696d651c52756e74696d6500000000a41853797374656d011853797374656d401c4163636f756e7401010402000c4101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e2c426c6f636b57656967687401001c180000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b4861736801010405102c8000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510300400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801002c80000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e18446967657374010034040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301004404001ca0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e001d01204e4f54453a20546865206974656d20697320756e626f756e6420616e642073686f756c64207468657265666f7265206e657665722062652072656164206f6e20636861696e2ed020497420636f756c64206f746865727769736520696e666c6174652074686520506f562073697a65206f66206120626c6f636b2e002d01204576656e747320686176652061206c6172676520696e2d6d656d6f72792073697a652e20426f7820746865206576656e747320746f206e6f7420676f206f75742d6f662d6d656d6f7279fc206a75737420696e206361736520736f6d656f6e65207374696c6c207265616473207468656d2066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f70696373010104022cd9030400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e004d01205468652076616c756520686173207468652074797065206028543a3a426c6f636b4e756d6265722c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000e10304000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e740100980400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e740100980400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e50686173650000d103040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e01ed0301501830426c6f636b57656967687473f90301020720f7d66001000b00204aa9d10113ffffffffffffffff820e6c1900010b60c4aea72e011366666666666666a6010b0098f73e5d0113ffffffffffffffbf010000820e6c1900010b604c0112a3011366666666666666e6010b00204aa9d10113ffffffffffffffff01070088526a74130000000000000040820e6c190000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e67746809043000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e74101060090000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e2044625765696768741104408848890000000000f0b64603000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6e1504d102386a6f7973747265616d2d6e6f6465386a6f7973747265616d2d6e6f64650c000000b80b0000000000002cdf6acb689907609b0400000037e397fc7c91f5e40100000040fe3ad401f8959a06000000d2bc9897eed08f1503000000f78b278be53f454c02000000ed99c5acb25eedf503000000cbca25e39f14238702000000687ad44ad37f03c201000000bc9d89904f5b923f0100000037c8bb1350a9a2a803000000ab3c0572291feb8b0100000001000000010484204765742074686520636861696e27732063757272656e742076657273696f6e2e28535335385072656669782904087e0014a8205468652064657369676e61746564205353353820707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e012d04001c5574696c697479000131040174044c626174636865645f63616c6c735f6c696d69741010aa2a000004a820546865206c696d6974206f6e20746865206e756d626572206f6620626174636865642063616c6c732e019d06011042616265011042616265442845706f6368496e64657801002820000000000000000004542043757272656e742065706f636820696e6465782e2c417574686f7269746965730100a1060400046c2043757272656e742065706f636820617574686f7269746965732e2c47656e65736973536c6f740100510420000000000000000008f82054686520736c6f74206174207768696368207468652066697273742065706f63682061637475616c6c7920737461727465642e205468697320697320309020756e74696c2074686520666972737420626c6f636b206f662074686520636861696e2e2c43757272656e74536c6f740100510420000000000000000004542043757272656e7420736c6f74206e756d6265722e2852616e646f6d6e65737301000480000000000000000000000000000000000000000000000000000000000000000028b8205468652065706f63682072616e646f6d6e65737320666f7220746865202a63757272656e742a2065706f63682e002c20232053656375726974790005012054686973204d555354204e4f54206265207573656420666f722067616d626c696e672c2061732069742063616e20626520696e666c75656e6365642062792061f8206d616c6963696f75732076616c696461746f7220696e207468652073686f7274207465726d2e204974204d4159206265207573656420696e206d616e7915012063727970746f677261706869632070726f746f636f6c732c20686f77657665722c20736f206c6f6e67206173206f6e652072656d656d6265727320746861742074686973150120286c696b652065766572797468696e6720656c7365206f6e2d636861696e29206974206973207075626c69632e20466f72206578616d706c652c2069742063616e206265050120757365642077686572652061206e756d626572206973206e656564656420746861742063616e6e6f742068617665206265656e2063686f73656e20627920616e0d01206164766572736172792c20666f7220707572706f7365732073756368206173207075626c69632d636f696e207a65726f2d6b6e6f776c656467652070726f6f66732e6050656e64696e6745706f6368436f6e6669674368616e67650000590404000461012050656e64696e672065706f636820636f6e66696775726174696f6e206368616e676520746861742077696c6c206265206170706c696564207768656e20746865206e6578742065706f636820697320656e61637465642e384e65787452616e646f6d6e657373010004800000000000000000000000000000000000000000000000000000000000000000045c204e6578742065706f63682072616e646f6d6e6573732e3c4e657874417574686f7269746965730100a10604000460204e6578742065706f636820617574686f7269746965732e305365676d656e74496e6465780100101000000000247c2052616e646f6d6e65737320756e64657220636f6e737472756374696f6e2e00f8205765206d616b6520612074726164652d6f6666206265747765656e2073746f7261676520616363657373657320616e64206c697374206c656e6774682e01012057652073746f72652074686520756e6465722d636f6e737472756374696f6e2072616e646f6d6e65737320696e207365676d656e7473206f6620757020746f942060554e4445525f434f4e535452554354494f4e5f5345474d454e545f4c454e475448602e00ec204f6e63652061207365676d656e7420726561636865732074686973206c656e6774682c20776520626567696e20746865206e657874206f6e652e090120576520726573657420616c6c207365676d656e747320616e642072657475726e20746f206030602061742074686520626567696e6e696e67206f662065766572791c2065706f63682e44556e646572436f6e737472756374696f6e0101040510ad0604000415012054574f582d4e4f54453a20605365676d656e74496e6465786020697320616e20696e6372656173696e6720696e74656765722c20736f2074686973206973206f6b61792e2c496e697469616c697a65640000b50604000801012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e292077686963682069732060536f6d65601d01206966207065722d626c6f636b20696e697469616c697a6174696f6e2068617320616c7265616479206265656e2063616c6c656420666f722063757272656e7420626c6f636b2e4c417574686f7256726652616e646f6d6e6573730100c90604001015012054686973206669656c642073686f756c6420616c7761797320626520706f70756c6174656420647572696e6720626c6f636b2070726f63657373696e6720756e6c6573731901207365636f6e6461727920706c61696e20736c6f74732061726520656e61626c65642028776869636820646f6e277420636f6e7461696e206120565246206f7574707574292e0049012049742069732073657420696e20606f6e5f66696e616c697a65602c206265666f72652069742077696c6c20636f6e7461696e207468652076616c75652066726f6d20746865206c61737420626c6f636b2e2845706f636853746172740100dd03200000000000000000145d012054686520626c6f636b206e756d62657273207768656e20746865206c61737420616e642063757272656e742065706f6368206861766520737461727465642c20726573706563746976656c7920604e2d316020616e641420604e602e4901204e4f54453a20576520747261636b207468697320697320696e206f7264657220746f20616e6e6f746174652074686520626c6f636b206e756d626572207768656e206120676976656e20706f6f6c206f66590120656e74726f7079207761732066697865642028692e652e20697420776173206b6e6f776e20746f20636861696e206f6273657276657273292e2053696e63652065706f6368732061726520646566696e656420696e590120736c6f74732c207768696368206d617920626520736b69707065642c2074686520626c6f636b206e756d62657273206d6179206e6f74206c696e6520757020776974682074686520736c6f74206e756d626572732e204c6174656e657373010010100000000014d820486f77206c617465207468652063757272656e7420626c6f636b20697320636f6d706172656420746f2069747320706172656e742e001501205468697320656e74727920697320706f70756c617465642061732070617274206f6620626c6f636b20657865637574696f6e20616e6420697320636c65616e65642075701101206f6e20626c6f636b2066696e616c697a6174696f6e2e205175657279696e6720746869732073746f7261676520656e747279206f757473696465206f6620626c6f636bb020657865637574696f6e20636f6e746578742073686f756c6420616c77617973207969656c64207a65726f2e2c45706f6368436f6e6669670000cd0604000861012054686520636f6e66696775726174696f6e20666f72207468652063757272656e742065706f63682e2053686f756c64206e6576657220626520604e6f6e656020617320697420697320696e697469616c697a656420696e242067656e657369732e3c4e65787445706f6368436f6e6669670000cd060400082d012054686520636f6e66696775726174696f6e20666f7220746865206e6578742065706f63682c20604e6f6e65602069662074686520636f6e6669672077696c6c206e6f74206368616e6765e82028796f752063616e2066616c6c6261636b20746f206045706f6368436f6e6669676020696e737465616420696e20746861742063617365292e34536b697070656445706f6368730100d10604002029012041206c697374206f6620746865206c6173742031303020736b69707065642065706f63687320616e642074686520636f72726573706f6e64696e672073657373696f6e20696e64657870207768656e207468652065706f63682077617320736b69707065642e0031012054686973206973206f6e6c79207573656420666f722076616c69646174696e672065717569766f636174696f6e2070726f6f66732e20416e2065717569766f636174696f6e2070726f6f663501206d75737420636f6e7461696e732061206b65792d6f776e6572736869702070726f6f6620666f72206120676976656e2073657373696f6e2c207468657265666f7265207765206e656564206139012077617920746f2074696520746f6765746865722073657373696f6e7320616e642065706f636820696e64696365732c20692e652e207765206e65656420746f2076616c69646174652074686174290120612076616c696461746f722077617320746865206f776e6572206f66206120676976656e206b6579206f6e206120676976656e2073657373696f6e2c20616e64207768617420746865b0206163746976652065706f636820696e6465782077617320647572696e6720746861742073657373696f6e2e013d04000c3445706f63684475726174696f6e28201e000000000000000cec2054686520616d6f756e74206f662074696d652c20696e20736c6f74732c207468617420656163682065706f63682073686f756c64206c6173742e1901204e4f54453a2043757272656e746c79206974206973206e6f7420706f737369626c6520746f206368616e6765207468652065706f6368206475726174696f6e20616674657221012074686520636861696e2068617320737461727465642e20417474656d7074696e6720746f20646f20736f2077696c6c20627269636b20626c6f636b2070726f64756374696f6e2e444578706563746564426c6f636b54696d652820e80300000000000014050120546865206578706563746564206176657261676520626c6f636b2074696d6520617420776869636820424142452073686f756c64206265206372656174696e67110120626c6f636b732e2053696e636520424142452069732070726f626162696c6973746963206974206973206e6f74207472697669616c20746f20666967757265206f75740501207768617420746865206578706563746564206176657261676520626c6f636b2074696d652073686f756c64206265206261736564206f6e2074686520736c6f740901206475726174696f6e20616e642074686520736563757269747920706172616d657465722060636020287768657265206031202d20636020726570726573656e7473a0207468652070726f626162696c697479206f66206120736c6f74206265696e6720656d707479292e384d6178417574686f7269746965731010a08601000488204d6178206e756d626572206f6620617574686f72697469657320616c6c6f77656401d506022454696d657374616d70012454696d657374616d70080c4e6f7701002820000000000000000004902043757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010098040004b420446964207468652074696d657374616d7020676574207570646174656420696e207468697320626c6f636b3f0161040004344d696e696d756d506572696f642820f401000000000000104d0120546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e204265776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a5d0120706572696f6420746861742074686520626c6f636b2070726f64756374696f6e206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c5d012067656e6572616c6c7920776f726b2077697468207468697320746f2064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20652e672e20466f7220417572612c2069742077696c6c206265a020646f75626c65207468697320706572696f64206f6e2064656661756c742073657474696e67732e000328417574686f72736869700128417574686f72736869700418417574686f720000000400046420417574686f72206f662063757272656e7420626c6f636b2e00000000042042616c616e636573012042616c616e6365731434546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e40496e61637469766549737375616e636501001840000000000000000000000000000000000409012054686520746f74616c20756e697473206f66206f75747374616e64696e672064656163746976617465642062616c616e636520696e207468652073797374656d2e1c4163636f756e74010104020014010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600901205468652042616c616e6365732070616c6c6574206578616d706c65206f662073746f72696e67207468652062616c616e6365206f6620616e206163636f756e742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b19022020202074797065204163636f756e7453746f7265203d2053746f726167654d61705368696d3c53656c663a3a4163636f756e743c52756e74696d653e2c206672616d655f73797374656d3a3a50726f76696465723c52756e74696d653e2c204163636f756e7449642c2053656c663a3a4163636f756e74446174613c42616c616e63653e3e0c20207d102060606000150120596f752063616e20616c736f2073746f7265207468652062616c616e6365206f6620616e206163636f756e7420696e20746865206053797374656d602070616c6c65742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b7420202074797065204163636f756e7453746f7265203d2053797374656d0c20207d102060606000510120427574207468697320636f6d657320776974682074726164656f6666732c2073746f72696e67206163636f756e742062616c616e63657320696e207468652073797374656d2070616c6c65742073746f7265736d0120606672616d655f73797374656d60206461746120616c6f6e677369646520746865206163636f756e74206461746120636f6e747261727920746f2073746f72696e67206163636f756e742062616c616e63657320696e207468652901206042616c616e636573602070616c6c65742c20776869636820757365732061206053746f726167654d61706020746f2073746f72652062616c616e6365732064617461206f6e6c792e4101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b730101040200d906040008b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e2052657365727665730101040200e906040004a4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e01650401800c484578697374656e7469616c4465706f73697418404002e50f00000000000000000000000004d420546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d61784c6f636b7310103200000008f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e2c4d61785265736572766573101032000000040d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e01f50605485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100f90640000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e0100fd0604000000018804604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c6974706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f7269747960004d0120546869732076616c7565206973206d756c7469706c656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e000668456c656374696f6e50726f76696465724d756c746950686173650168456c656374696f6e50726f76696465724d756c746950686173652814526f756e64010010100100000018ac20496e7465726e616c20636f756e74657220666f7220746865206e756d626572206f6620726f756e64732e00550120546869732069732075736566756c20666f722064652d6475706c69636174696f6e206f66207472616e73616374696f6e73207375626d697474656420746f2074686520706f6f6c2c20616e642067656e6572616c6c20646961676e6f7374696373206f66207468652070616c6c65742e004d012054686973206973206d6572656c7920696e6372656d656e746564206f6e6365207065722065766572792074696d65207468617420616e20757073747265616d2060656c656374602069732063616c6c65642e3043757272656e7450686173650100a00400043c2043757272656e742070686173652e38517565756564536f6c7574696f6e000001070400043d012043757272656e74206265737420736f6c7574696f6e2c207369676e6564206f7220756e7369676e65642c2071756575656420746f2062652072657475726e65642075706f6e2060656c656374602e20536e617073686f740000090704000c7020536e617073686f742064617461206f662074686520726f756e642e005d01205468697320697320637265617465642061742074686520626567696e6e696e67206f6620746865207369676e656420706861736520616e6420636c65617265642075706f6e2063616c6c696e672060656c656374602e38446573697265645461726765747300001004000ccc2044657369726564206e756d626572206f66207461726765747320746f20656c65637420666f72207468697320726f756e642e00a8204f6e6c7920657869737473207768656e205b60536e617073686f74605d2069732070726573656e742e40536e617073686f744d6574616461746100003d0504000c9820546865206d65746164617461206f6620746865205b60526f756e64536e617073686f74605d00a8204f6e6c7920657869737473207768656e205b60536e617073686f74605d2069732070726573656e742e645369676e65645375626d697373696f6e4e657874496e646578010010100000000024010120546865206e65787420696e64657820746f2062652061737369676e656420746f20616e20696e636f6d696e67207369676e6564207375626d697373696f6e2e007501204576657279206163636570746564207375626d697373696f6e2069732061737369676e6564206120756e6971756520696e6465783b207468617420696e64657820697320626f756e6420746f207468617420706172746963756c61726501207375626d697373696f6e20666f7220746865206475726174696f6e206f662074686520656c656374696f6e2e204f6e20656c656374696f6e2066696e616c697a6174696f6e2c20746865206e65787420696e6465782069733020726573657420746f20302e0069012057652063616e2774206a7573742075736520605369676e65645375626d697373696f6e496e64696365732e6c656e2829602c206265636175736520746861742773206120626f756e646564207365743b20706173742069747359012063617061636974792c2069742077696c6c2073696d706c792073617475726174652e2057652063616e2774206a7573742069746572617465206f76657220605369676e65645375626d697373696f6e734d6170602cf4206265636175736520697465726174696f6e20697320736c6f772e20496e73746561642c2077652073746f7265207468652076616c756520686572652e5c5369676e65645375626d697373696f6e496e6469636573010019070400186d01204120736f727465642c20626f756e64656420766563746f72206f6620602873636f72652c20626c6f636b5f6e756d6265722c20696e64657829602c20776865726520656163682060696e6465786020706f696e747320746f2061782076616c756520696e20605369676e65645375626d697373696f6e73602e007101205765206e65766572206e65656420746f2070726f63657373206d6f7265207468616e20612073696e676c65207369676e6564207375626d697373696f6e20617420612074696d652e205369676e6564207375626d697373696f6e7375012063616e206265207175697465206c617267652c20736f2077652772652077696c6c696e6720746f207061792074686520636f7374206f66206d756c7469706c6520646174616261736520616363657373657320746f206163636573732101207468656d206f6e6520617420612074696d6520696e7374656164206f662072656164696e6720616e64206465636f64696e6720616c6c206f66207468656d206174206f6e63652e505369676e65645375626d697373696f6e734d61700001040510250704001c7420556e636865636b65642c207369676e656420736f6c7574696f6e732e00690120546f676574686572207769746820605375626d697373696f6e496e6469636573602c20746869732073746f726573206120626f756e64656420736574206f6620605369676e65645375626d697373696f6e7360207768696c65ec20616c6c6f77696e6720757320746f206b656570206f6e6c7920612073696e676c65206f6e6520696e206d656d6f727920617420612074696d652e0069012054776f78206e6f74653a20746865206b6579206f6620746865206d617020697320616e206175746f2d696e6372656d656e74696e6720696e6465782077686963682075736572732063616e6e6f7420696e7370656374206f72f4206166666563743b2077652073686f756c646e2774206e65656420612063727970746f67726170686963616c6c7920736563757265206861736865722e544d696e696d756d556e7472757374656453636f726500009c0400105d0120546865206d696e696d756d2073636f7265207468617420656163682027756e747275737465642720736f6c7574696f6e206d7573742061747461696e20696e206f7264657220746f20626520636f6e7369646572656428206665617369626c652e00b82043616e206265207365742076696120607365745f6d696e696d756d5f756e747275737465645f73636f7265602e016904018c4c34556e7369676e656450686173651010070000000480204475726174696f6e206f662074686520756e7369676e65642070686173652e2c5369676e656450686173651010070000000478204475726174696f6e206f6620746865207369676e65642070686173652e544265747465725369676e65645468726573686f6c64ac1000000000084d0120546865206d696e696d756d20616d6f756e74206f6620696d70726f76656d656e7420746f2074686520736f6c7574696f6e2073636f7265207468617420646566696e6573206120736f6c7574696f6e2061737820226265747465722220696e20746865205369676e65642070686173652e5c426574746572556e7369676e65645468726573686f6c64ac1020a10700084d0120546865206d696e696d756d20616d6f756e74206f6620696d70726f76656d656e7420746f2074686520736f6c7574696f6e2073636f7265207468617420646566696e6573206120736f6c7574696f6e2061738020226265747465722220696e2074686520556e7369676e65642070686173652e384f6666636861696e52657065617410100000000010b42054686520726570656174207468726573686f6c64206f6620746865206f6666636861696e20776f726b65722e00610120466f72206578616d706c652c20696620697420697320352c2074686174206d65616e732074686174206174206c65617374203520626c6f636b732077696c6c20656c61707365206265747765656e20617474656d7074738420746f207375626d69742074686520776f726b6572277320736f6c7574696f6e2e3c4d696e657254785072696f726974792820feffffffffffff7f04250120546865207072696f72697479206f662074686520756e7369676e6564207472616e73616374696f6e207375626d697474656420696e2074686520756e7369676e65642d7068617365505369676e65644d61785375626d697373696f6e731010100000001ce4204d6178696d756d206e756d626572206f66207369676e6564207375626d697373696f6e7320746861742063616e206265207175657565642e005501204974206973206265737420746f2061766f69642061646a757374696e67207468697320647572696e6720616e20656c656374696f6e2c20617320697420696d706163747320646f776e73747265616d2064617461650120737472756374757265732e20496e20706172746963756c61722c20605369676e65645375626d697373696f6e496e64696365733c543e6020697320626f756e646564206f6e20746869732076616c75652e20496620796f75f42075706461746520746869732076616c756520647572696e6720616e20656c656374696f6e2c20796f75205f6d7573745f20656e7375726520746861744d0120605369676e65645375626d697373696f6e496e64696365732e6c656e282960206973206c657373207468616e206f7220657175616c20746f20746865206e65772076616c75652e204f74686572776973652cf020617474656d70747320746f207375626d6974206e657720736f6c7574696f6e73206d617920636175736520612072756e74696d652070616e69632e3c5369676e65644d617857656967687420400b40cdd7462d011366666666666666a61494204d6178696d756d20776569676874206f662061207369676e656420736f6c7574696f6e2e005d01204966205b60436f6e6669673a3a4d696e6572436f6e666967605d206973206265696e6720696d706c656d656e74656420746f207375626d6974207369676e656420736f6c7574696f6e7320286f757473696465206f663d0120746869732070616c6c6574292c207468656e205b604d696e6572436f6e6669673a3a736f6c7574696f6e5f776569676874605d206973207573656420746f20636f6d7061726520616761696e73743020746869732076616c75652e405369676e65644d6178526566756e647310100400000004190120546865206d6178696d756d20616d6f756e74206f6620756e636865636b656420736f6c7574696f6e7320746f20726566756e64207468652063616c6c2066656520666f722e405369676e6564526577617264426173651840aa821bce260000000000000000000000048820426173652072657761726420666f722061207369676e656420736f6c7574696f6e445369676e65644465706f736974426173651840a41a130d84010000000000000000000004902042617365206465706f73697420666f722061207369676e656420736f6c7574696f6e2e445369676e65644465706f7369744279746518406a6e190000000000000000000000000004a0205065722d62797465206465706f73697420666f722061207369676e656420736f6c7574696f6e2e4c5369676e65644465706f73697457656967687418400000000000000000000000000000000004a8205065722d776569676874206465706f73697420666f722061207369676e656420736f6c7574696f6e2e444d6178456c656374696e67566f746572731010d43000000c5d0120546865206d6178696d756d206e756d626572206f6620656c656374696e6720766f7465727320746f2070757420696e2074686520736e617073686f742e20417420746865206d6f6d656e742c20736e617073686f7473590120617265206f6e6c79206f76657220612073696e676c6520626c6f636b2c20627574206f6e6365206d756c74692d626c6f636b20656c656374696f6e732061726520696e74726f647563656420746865792077696c6c842074616b6520706c616365206f766572206d756c7469706c6520626c6f636b732e4c4d6178456c65637461626c6554617267657473290408ffff04010120546865206d6178696d756d206e756d626572206f6620656c65637461626c65207461726765747320746f2070757420696e2074686520736e617073686f742e284d617857696e6e65727310109001000010350120546865206d6178696d756d206e756d626572206f662077696e6e65727320746861742063616e20626520656c656374656420627920746869732060456c656374696f6e50726f7669646572604020696d706c656d656e746174696f6e2e005101204e6f74653a2054686973206d75737420616c776179732062652067726561746572206f7220657175616c20746f2060543a3a4461746150726f76696465723a3a646573697265645f746172676574732829602e384d696e65724d61784c656e67746810100000360000384d696e65724d617857656967687420400b40cdd7462d011366666666666666a600544d696e65724d6178566f746573506572566f74657210101000000000012907071c5374616b696e67011c5374616b696e67943856616c696461746f72436f756e740100101000000000049c2054686520696465616c206e756d626572206f66206163746976652076616c696461746f72732e544d696e696d756d56616c696461746f72436f756e740100101000000000044101204d696e696d756d206e756d626572206f66207374616b696e67207061727469636970616e7473206265666f726520656d657267656e637920636f6e646974696f6e732061726520696d706f7365642e34496e76756c6e657261626c657301005d0504000c590120416e792076616c696461746f72732074686174206d6179206e6576657220626520736c6173686564206f7220666f726369626c79206b69636b65642e20497427732061205665632073696e636520746865792772654d01206561737920746f20696e697469616c697a6520616e642074686520706572666f726d616e636520686974206973206d696e696d616c2028776520657870656374206e6f206d6f7265207468616e20666f7572ac20696e76756c6e657261626c65732920616e64207265737472696374656420746f20746573746e6574732e18426f6e64656400010405000004000c0101204d61702066726f6d20616c6c206c6f636b65642022737461736822206163636f756e747320746f2074686520636f6e74726f6c6c6572206163636f756e742e00d02054574f582d4e4f54453a20534146452073696e636520604163636f756e7449646020697320612073656375726520686173682e404d696e4e6f6d696e61746f72426f6e64010018400000000000000000000000000000000004210120546865206d696e696d756d2061637469766520626f6e6420746f206265636f6d6520616e64206d61696e7461696e2074686520726f6c65206f662061206e6f6d696e61746f722e404d696e56616c696461746f72426f6e64010018400000000000000000000000000000000004210120546865206d696e696d756d2061637469766520626f6e6420746f206265636f6d6520616e64206d61696e7461696e2074686520726f6c65206f6620612076616c696461746f722e484d696e696d756d4163746976655374616b65010018400000000000000000000000000000000004110120546865206d696e696d756d20616374697665206e6f6d696e61746f72207374616b65206f6620746865206c617374207375636365737366756c20656c656374696f6e2e344d696e436f6d6d697373696f6e0100ac10000000000ce820546865206d696e696d756d20616d6f756e74206f6620636f6d6d697373696f6e20746861742076616c696461746f72732063616e207365742e00802049662073657420746f206030602c206e6f206c696d6974206578697374732e184c656467657200010402002d070400044501204d61702066726f6d20616c6c2028756e6c6f636b6564292022636f6e74726f6c6c657222206163636f756e747320746f2074686520696e666f20726567617264696e6720746865207374616b696e672e1450617965650101040500590504000ce42057686572652074686520726577617264207061796d656e742073686f756c64206265206d6164652e204b657965642062792073746173682e00d02054574f582d4e4f54453a20534146452073696e636520604163636f756e7449646020697320612073656375726520686173682e2856616c696461746f72730101040500b00800000c450120546865206d61702066726f6d202877616e6e616265292076616c696461746f72207374617368206b657920746f2074686520707265666572656e636573206f6620746861742076616c696461746f722e00d02054574f582d4e4f54453a20534146452073696e636520604163636f756e7449646020697320612073656375726520686173682e50436f756e746572466f7256616c696461746f7273010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170484d617856616c696461746f7273436f756e7400001004000c310120546865206d6178696d756d2076616c696461746f7220636f756e74206265666f72652077652073746f7020616c6c6f77696e67206e65772076616c696461746f727320746f206a6f696e2e00d0205768656e20746869732076616c7565206973206e6f74207365742c206e6f206c696d6974732061726520656e666f726365642e284e6f6d696e61746f727300010405004107040048750120546865206d61702066726f6d206e6f6d696e61746f72207374617368206b657920746f207468656972206e6f6d696e6174696f6e20707265666572656e6365732c206e616d656c79207468652076616c696461746f72732074686174582074686579207769736820746f20737570706f72742e003901204e6f7465207468617420746865206b657973206f6620746869732073746f72616765206d6170206d69676874206265636f6d65206e6f6e2d6465636f6461626c6520696e2063617365207468656d01205b60436f6e6669673a3a4d61784e6f6d696e6174696f6e73605d20636f6e66696775726174696f6e206973206465637265617365642e20496e2074686973207261726520636173652c207468657365206e6f6d696e61746f7273650120617265207374696c6c206578697374656e7420696e2073746f726167652c207468656972206b657920697320636f727265637420616e64207265747269657661626c652028692e652e2060636f6e7461696e735f6b657960710120696e6469636174657320746861742074686579206578697374292c206275742074686569722076616c75652063616e6e6f74206265206465636f6465642e205468657265666f72652c20746865206e6f6e2d6465636f6461626c656d01206e6f6d696e61746f72732077696c6c206566666563746976656c79206e6f742d65786973742c20756e74696c20746865792072652d7375626d697420746865697220707265666572656e6365732073756368207468617420697401012069732077697468696e2074686520626f756e6473206f6620746865206e65776c79207365742060436f6e6669673a3a4d61784e6f6d696e6174696f6e73602e006101205468697320696d706c696573207468617420603a3a697465725f6b65797328292e636f756e7428296020616e6420603a3a6974657228292e636f756e74282960206d696768742072657475726e20646966666572656e746d012076616c75657320666f722074686973206d61702e204d6f72656f7665722c20746865206d61696e20603a3a636f756e7428296020697320616c69676e656420776974682074686520666f726d65722c206e616d656c79207468656c206e756d626572206f66206b65797320746861742065786973742e006d01204c6173746c792c20696620616e79206f6620746865206e6f6d696e61746f7273206265636f6d65206e6f6e2d6465636f6461626c652c20746865792063616e206265206368696c6c656420696d6d6564696174656c7920766961b8205b6043616c6c3a3a6368696c6c5f6f74686572605d20646973706174636861626c6520627920616e796f6e652e00d02054574f582d4e4f54453a20534146452073696e636520604163636f756e7449646020697320612073656375726520686173682e50436f756e746572466f724e6f6d696e61746f7273010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170484d61784e6f6d696e61746f7273436f756e7400001004000c310120546865206d6178696d756d206e6f6d696e61746f7220636f756e74206265666f72652077652073746f7020616c6c6f77696e67206e65772076616c696461746f727320746f206a6f696e2e00d0205768656e20746869732076616c7565206973206e6f74207365742c206e6f206c696d6974732061726520656e666f726365642e2843757272656e744572610000100400105c205468652063757272656e742065726120696e6465782e006501205468697320697320746865206c617465737420706c616e6e6564206572612c20646570656e64696e67206f6e20686f77207468652053657373696f6e2070616c6c657420717565756573207468652076616c696461746f7280207365742c206974206d6967687420626520616374697665206f72206e6f742e2441637469766545726100004507040010d820546865206163746976652065726120696e666f726d6174696f6e2c20697420686f6c647320696e64657820616e642073746172742e0059012054686520616374697665206572612069732074686520657261206265696e672063757272656e746c792072657761726465642e2056616c696461746f7220736574206f66207468697320657261206d757374206265ac20657175616c20746f205b6053657373696f6e496e746572666163653a3a76616c696461746f7273605d2e5445726173537461727453657373696f6e496e6465780001040510100400103101205468652073657373696f6e20696e646578206174207768696368207468652065726120737461727420666f7220746865206c6173742060484953544f52595f44455054486020657261732e006101204e6f74653a205468697320747261636b7320746865207374617274696e672073657373696f6e2028692e652e2073657373696f6e20696e646578207768656e20657261207374617274206265696e672061637469766529f020666f7220746865206572617320696e20605b43757272656e74457261202d20484953544f52595f44455054482c2043757272656e744572615d602e2c457261735374616b65727301010805054907e80c0000001878204578706f73757265206f662076616c696461746f72206174206572612e0061012054686973206973206b65796564206669727374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00a82049732069742072656d6f7665642061667465722060484953544f52595f44455054486020657261732e4101204966207374616b657273206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e20656d707479206578706f737572652069732072657475726e65642e48457261735374616b657273436c697070656401010805054907e80c0000002c9820436c6970706564204578706f73757265206f662076616c696461746f72206174206572612e00590120546869732069732073696d696c617220746f205b60457261735374616b657273605d20627574206e756d626572206f66206e6f6d696e61746f7273206578706f736564206973207265647563656420746f20746865dc2060543a3a4d61784e6f6d696e61746f72526577617264656450657256616c696461746f72602062696767657374207374616b6572732e1d0120284e6f74653a20746865206669656c642060746f74616c6020616e6420606f776e60206f6620746865206578706f737572652072656d61696e7320756e6368616e676564292ef42054686973206973207573656420746f206c696d69742074686520692f6f20636f737420666f7220746865206e6f6d696e61746f72207061796f75742e005d012054686973206973206b657965642066697374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00a82049732069742072656d6f7665642061667465722060484953544f52595f44455054486020657261732e4101204966207374616b657273206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e20656d707479206578706f737572652069732072657475726e65642e484572617356616c696461746f72507265667301010805054907b00800001411012053696d696c617220746f2060457261735374616b657273602c207468697320686f6c64732074686520707265666572656e636573206f662076616c696461746f72732e0061012054686973206973206b65796564206669727374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00a82049732069742072656d6f7665642061667465722060484953544f52595f44455054486020657261732e4c4572617356616c696461746f7252657761726400010405101804000c09012054686520746f74616c2076616c696461746f7220657261207061796f757420666f7220746865206c6173742060484953544f52595f44455054486020657261732e0021012045726173207468617420686176656e27742066696e697368656420796574206f7220686173206265656e2072656d6f76656420646f65736e27742068617665207265776172642e4045726173526577617264506f696e747301010405104d0714000000000008ac205265776172647320666f7220746865206c6173742060484953544f52595f44455054486020657261732e250120496620726577617264206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e2030207265776172642069732072657475726e65642e3845726173546f74616c5374616b65010104051018400000000000000000000000000000000008ec2054686520746f74616c20616d6f756e74207374616b656420666f7220746865206c6173742060484953544f52595f44455054486020657261732e1d0120496620746f74616c206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e2030207374616b652069732072657475726e65642e20466f7263654572610100b804000454204d6f6465206f662065726120666f7263696e672e4c536c6173685265776172644672616374696f6e0100ac10000000000cf8205468652070657263656e74616765206f662074686520736c617368207468617420697320646973747269627574656420746f207265706f72746572732e00e4205468652072657374206f662074686520736c61736865642076616c75652069732068616e646c6564206279207468652060536c617368602e4c43616e63656c6564536c6173685061796f757401001840000000000000000000000000000000000815012054686520616d6f756e74206f662063757272656e637920676976656e20746f207265706f7274657273206f66206120736c617368206576656e7420776869636820776173ec2063616e63656c65642062792065787472616f7264696e6172792063697263756d7374616e6365732028652e672e20676f7665726e616e6365292e40556e6170706c696564536c617368657301010405105d07040004c420416c6c20756e6170706c69656420736c61736865732074686174206172652071756575656420666f72206c617465722e28426f6e646564457261730100d90304001025012041206d617070696e672066726f6d207374696c6c2d626f6e646564206572617320746f207468652066697273742073657373696f6e20696e646578206f662074686174206572612e00c8204d75737420636f6e7461696e7320696e666f726d6174696f6e20666f72206572617320666f72207468652072616e67653abc20605b6163746976655f657261202d20626f756e64696e675f6475726174696f6e3b206163746976655f6572615d604c56616c696461746f72536c617368496e457261000108050549076507040008450120416c6c20736c617368696e67206576656e7473206f6e2076616c696461746f72732c206d61707065642062792065726120746f20746865206869676865737420736c6173682070726f706f7274696f6e7020616e6420736c6173682076616c7565206f6620746865206572612e4c4e6f6d696e61746f72536c617368496e4572610001080505490718040004610120416c6c20736c617368696e67206576656e7473206f6e206e6f6d696e61746f72732c206d61707065642062792065726120746f20746865206869676865737420736c6173682076616c7565206f6620746865206572612e34536c617368696e675370616e73000104050069070400048c20536c617368696e67207370616e7320666f72207374617368206163636f756e74732e245370616e536c6173680101040559076d07800000000000000000000000000000000000000000000000000000000000000000083d01205265636f72647320696e666f726d6174696f6e2061626f757420746865206d6178696d756d20736c617368206f6620612073746173682077697468696e206120736c617368696e67207370616e2cb82061732077656c6c20617320686f77206d7563682072657761726420686173206265656e2070616964206f75742e5443757272656e74506c616e6e656453657373696f6e01001010000000000ce820546865206c61737420706c616e6e65642073657373696f6e207363686564756c6564206279207468652073657373696f6e2070616c6c65742e0071012054686973206973206261736963616c6c7920696e2073796e632077697468207468652063616c6c20746f205b6070616c6c65745f73657373696f6e3a3a53657373696f6e4d616e616765723a3a6e65775f73657373696f6e605d2e4c4f6666656e64696e6756616c696461746f727301007107040024690120496e6469636573206f662076616c696461746f727320746861742068617665206f6666656e64656420696e20746865206163746976652065726120616e6420776865746865722074686579206172652063757272656e746c79282064697361626c65642e00690120546869732076616c75652073686f756c642062652061207375706572736574206f662064697361626c65642076616c696461746f72732073696e6365206e6f7420616c6c206f6666656e636573206c65616420746f2074686571012076616c696461746f72206265696e672064697361626c65642028696620746865726520776173206e6f20736c617368292e2054686973206973206e656564656420746f20747261636b207468652070657263656e74616765206f6649012076616c696461746f727320746861742068617665206f6666656e64656420696e207468652063757272656e74206572612c20656e737572696e672061206e65772065726120697320666f72636564206966750120604f6666656e64696e6756616c696461746f72735468726573686f6c646020697320726561636865642e205468652076656320697320616c77617973206b65707420736f7274656420736f20746861742077652063616e2066696e6471012077686574686572206120676976656e2076616c696461746f72206861732070726576696f75736c79206f6666656e646564207573696e672062696e617279207365617263682e204974206765747320636c6561726564207768656e38207468652065726120656e64732e384368696c6c5468726573686f6c640000610504000c510120546865207468726573686f6c6420666f72207768656e2075736572732063616e2073746172742063616c6c696e6720606368696c6c5f6f746865726020666f72206f746865722076616c696461746f7273202f5901206e6f6d696e61746f72732e20546865207468726573686f6c6420697320636f6d706172656420746f207468652061637475616c206e756d626572206f662076616c696461746f7273202f206e6f6d696e61746f72732901202860436f756e74466f722a602920696e207468652073797374656d20636f6d706172656420746f2074686520636f6e66696775726564206d61782028604d61782a436f756e7460292e01550501a81c384d61784e6f6d696e6174696f6e7310101000000004b4204d6178696d756d206e756d626572206f66206e6f6d696e6174696f6e7320706572206e6f6d696e61746f722e30486973746f72794465707468101078000000508c204e756d626572206f66206572617320746f206b65657020696e20686973746f72792e00e820466f6c6c6f77696e6720696e666f726d6174696f6e206973206b65707420666f72206572617320696e20605b63757272656e745f657261202d090120486973746f727944657074682c2063757272656e745f6572615d603a2060457261735374616b657273602c2060457261735374616b657273436c6970706564602c050120604572617356616c696461746f725072656673602c20604572617356616c696461746f72526577617264602c206045726173526577617264506f696e7473602cac206045726173546f74616c5374616b65602c206045726173537461727453657373696f6e496e646578602c8420605374616b696e674c65646765722e636c61696d65645f72657761726473602e00e4204d757374206265206d6f7265207468616e20746865206e756d626572206f6620657261732064656c617965642062792073657373696f6e2ef820492e652e2061637469766520657261206d75737420616c7761797320626520696e20686973746f72792e20492e652e20606163746976655f657261203ec42063757272656e745f657261202d20686973746f72795f646570746860206d7573742062652067756172616e746565642e001101204966206d6967726174696e6720616e206578697374696e672070616c6c65742066726f6d2073746f726167652076616c756520746f20636f6e6669672076616c75652cec20746869732073686f756c642062652073657420746f2073616d652076616c7565206f72206772656174657220617320696e2073746f726167652e001501204e6f74653a2060486973746f727944657074686020697320757365642061732074686520757070657220626f756e6420666f72207468652060426f756e646564566563601101206974656d20605374616b696e674c65646765722e636c61696d65645f72657761726473602e2053657474696e6720746869732076616c7565206c6f776572207468616ed820746865206578697374696e672076616c75652063616e206c65616420746f20696e636f6e73697374656e6369657320696e20746865150120605374616b696e674c65646765726020616e642077696c6c206e65656420746f2062652068616e646c65642070726f7065726c7920696e2061206d6967726174696f6e2ef020546865207465737420607265647563696e675f686973746f72795f64657074685f616272757074602073686f77732074686973206566666563742e3853657373696f6e735065724572611010060000000470204e756d626572206f662073657373696f6e7320706572206572612e3c426f6e64696e674475726174696f6e10107000000004e4204e756d626572206f6620657261732074686174207374616b65642066756e6473206d7573742072656d61696e20626f6e64656420666f722e48536c61736844656665724475726174696f6e10106f000000100101204e756d626572206f662065726173207468617420736c6173686573206172652064656665727265642062792c20616674657220636f6d7075746174696f6e2e000d0120546869732073686f756c64206265206c657373207468616e2074686520626f6e64696e67206475726174696f6e2e2053657420746f203020696620736c617368657315012073686f756c64206265206170706c69656420696d6d6564696174656c792c20776974686f7574206f70706f7274756e69747920666f7220696e74657276656e74696f6e2e804d61784e6f6d696e61746f72526577617264656450657256616c696461746f7210100001000010f820546865206d6178696d756d206e756d626572206f66206e6f6d696e61746f727320726577617264656420666f7220656163682076616c696461746f722e00510120466f7220656163682076616c696461746f72206f6e6c79207468652060244d61784e6f6d696e61746f72526577617264656450657256616c696461746f72602062696767657374207374616b6572732063616e390120636c61696d207468656972207265776172642e2054686973207573656420746f206c696d69742074686520692f6f20636f737420666f7220746865206e6f6d696e61746f72207061796f75742e484d6178556e6c6f636b696e674368756e6b7310102000000028050120546865206d6178696d756d206e756d626572206f662060756e6c6f636b696e6760206368756e6b732061205b605374616b696e674c6564676572605d2063616e090120686176652e204566666563746976656c792064657465726d696e657320686f77206d616e7920756e6971756520657261732061207374616b6572206d61792062653820756e626f6e64696e6720696e2e00f8204e6f74653a20604d6178556e6c6f636b696e674368756e6b736020697320757365642061732074686520757070657220626f756e6420666f722074686501012060426f756e64656456656360206974656d20605374616b696e674c65646765722e756e6c6f636b696e67602e2053657474696e6720746869732076616c75650501206c6f776572207468616e20746865206578697374696e672076616c75652063616e206c65616420746f20696e636f6e73697374656e6369657320696e20746865090120605374616b696e674c65646765726020616e642077696c6c206e65656420746f2062652068616e646c65642070726f7065726c7920696e20612072756e74696d650501206d6967726174696f6e2e20546865207465737420607265647563696e675f6d61785f756e6c6f636b696e675f6368756e6b735f616272757074602073686f7773342074686973206566666563742e017907081c53657373696f6e011c53657373696f6e1c2856616c696461746f727301005d050400047c205468652063757272656e7420736574206f662076616c696461746f72732e3043757272656e74496e646578010010100000000004782043757272656e7420696e646578206f66207468652073657373696f6e2e345175657565644368616e676564010098040008390120547275652069662074686520756e6465726c79696e672065636f6e6f6d6963206964656e746974696573206f7220776569676874696e6720626568696e64207468652076616c696461746f7273a420686173206368616e67656420696e20746865207175657565642076616c696461746f72207365742e285175657565644b65797301007d070400083d012054686520717565756564206b65797320666f7220746865206e6578742073657373696f6e2e205768656e20746865206e6578742073657373696f6e20626567696e732c207468657365206b657973e02077696c6c206265207573656420746f2064657465726d696e65207468652076616c696461746f7227732073657373696f6e206b6579732e4844697361626c656456616c696461746f7273010065050400148020496e6469636573206f662064697361626c65642076616c696461746f72732e003d01205468652076656320697320616c77617973206b65707420736f7274656420736f20746861742077652063616e2066696e642077686574686572206120676976656e2076616c696461746f722069733d012064697361626c6564207573696e672062696e617279207365617263682e204974206765747320636c6561726564207768656e20606f6e5f73657373696f6e5f656e64696e67602072657475726e73642061206e657720736574206f66206964656e7469746965732e204e6578744b65797300010405007d050400049c20546865206e6578742073657373696f6e206b65797320666f7220612076616c696461746f722e204b65794f776e657200010405850700040004090120546865206f776e6572206f662061206b65792e20546865206b65792069732074686520604b657954797065496460202b2074686520656e636f646564206b65792e01790501bc00018d070928486973746f726963616c0128486973746f726963616c0848486973746f726963616c53657373696f6e73000104051091070400045d01204d617070696e672066726f6d20686973746f726963616c2073657373696f6e20696e646963657320746f2073657373696f6e2d6461746120726f6f74206861736820616e642076616c696461746f7220636f756e742e2c53746f72656452616e67650000dd03040004e4205468652072616e6765206f6620686973746f726963616c2073657373696f6e732077652073746f72652e205b66697273742c206c61737429000000000a1c4772616e647061011c4772616e647061181453746174650100950704000490205374617465206f66207468652063757272656e7420617574686f72697479207365742e3450656e64696e674368616e676500009907040004c42050656e64696e67206368616e67653a20287369676e616c65642061742c207363686564756c6564206368616e6765292e284e657874466f72636564000010040004bc206e65787420626c6f636b206e756d6265722077686572652077652063616e20666f7263652061206368616e67652e1c5374616c6c65640000dd030400049020607472756560206966207765206172652063757272656e746c79207374616c6c65642e3043757272656e745365744964010028200000000000000000085d0120546865206e756d626572206f66206368616e6765732028626f746820696e207465726d73206f66206b65797320616e6420756e6465726c79696e672065636f6e6f6d696320726573706f6e736962696c697469657329c420696e20746865202273657422206f66204772616e6470612076616c696461746f72732066726f6d2067656e657369732e30536574496453657373696f6e00010405281004002859012041206d617070696e672066726f6d206772616e6470612073657420494420746f2074686520696e646578206f6620746865202a6d6f737420726563656e742a2073657373696f6e20666f722077686963682069747368206d656d62657273207765726520726573706f6e7369626c652e0045012054686973206973206f6e6c79207573656420666f722076616c69646174696e672065717569766f636174696f6e2070726f6f66732e20416e2065717569766f636174696f6e2070726f6f66206d7573744d0120636f6e7461696e732061206b65792d6f776e6572736869702070726f6f6620666f72206120676976656e2073657373696f6e2c207468657265666f7265207765206e65656420612077617920746f20746965450120746f6765746865722073657373696f6e7320616e64204752414e44504120736574206964732c20692e652e207765206e65656420746f2076616c6964617465207468617420612076616c696461746f7241012077617320746865206f776e6572206f66206120676976656e206b6579206f6e206120676976656e2073657373696f6e2c20616e642077686174207468652061637469766520736574204944207761735420647572696e6720746861742073657373696f6e2e00b82054574f582d4e4f54453a2060536574496460206973206e6f7420756e646572207573657220636f6e74726f6c2e01850501c008384d6178417574686f7269746965731010a0860100045c204d617820417574686f72697469657320696e20757365584d6178536574496453657373696f6e456e74726965732820a00200000000000018390120546865206d6178696d756d206e756d626572206f6620656e747269657320746f206b65657020696e207468652073657420696420746f2073657373696f6e20696e646578206d617070696e672e0031012053696e6365207468652060536574496453657373696f6e60206d6170206973206f6e6c79207573656420666f722076616c69646174696e672065717569766f636174696f6e73207468697329012076616c75652073686f756c642072656c61746520746f2074686520626f6e64696e67206475726174696f6e206f66207768617465766572207374616b696e672073797374656d2069733501206265696e6720757365642028696620616e79292e2049662065717569766f636174696f6e2068616e646c696e67206973206e6f7420656e61626c6564207468656e20746869732076616c7565342063616e206265207a65726f2e01a1070b48417574686f72697479446973636f766572790148417574686f72697479446973636f7665727908104b6579730100a5070400048c204b657973206f66207468652063757272656e7420617574686f72697479207365742e204e6578744b6579730100a50704000480204b657973206f6620746865206e65787420617574686f72697479207365742e000000000c20496d4f6e6c696e650120496d4f6e6c696e651038486561727462656174416674657201001010000000002c1d012054686520626c6f636b206e756d6265722061667465722077686963682069742773206f6b20746f2073656e64206865617274626561747320696e207468652063757272656e74242073657373696f6e2e0025012041742074686520626567696e6e696e67206f6620656163682073657373696f6e20776520736574207468697320746f20612076616c756520746861742073686f756c642066616c6c350120726f7567686c7920696e20746865206d6964646c65206f66207468652073657373696f6e206475726174696f6e2e20546865206964656120697320746f206669727374207761697420666f721901207468652076616c696461746f727320746f2070726f64756365206120626c6f636b20696e207468652063757272656e742073657373696f6e2c20736f207468617420746865a820686561727462656174206c61746572206f6e2077696c6c206e6f74206265206e65636573736172792e00390120546869732076616c75652077696c6c206f6e6c79206265207573656420617320612066616c6c6261636b206966207765206661696c20746f2067657420612070726f7065722073657373696f6e2d012070726f677265737320657374696d6174652066726f6d20604e65787453657373696f6e526f746174696f6e602c2061732074686f736520657374696d617465732073686f756c642062650101206d6f7265206163637572617465207468656e207468652076616c75652077652063616c63756c61746520666f7220604865617274626561744166746572602e104b6579730100ad07040004d0205468652063757272656e7420736574206f66206b6579732074686174206d61792069737375652061206865617274626561742e485265636569766564486561727462656174730001080505dd03b5070400083d0120466f7220656163682073657373696f6e20696e6465782c207765206b6565702061206d617070696e67206f66206053657373696f6e496e6465786020616e64206041757468496e6465786020746fb02060577261707065724f70617175653c426f756e6465644f70617175654e6574776f726b53746174653e602e38417574686f726564426c6f636b730101080505490710100000000008150120466f7220656163682073657373696f6e20696e6465782c207765206b6565702061206d617070696e67206f66206056616c696461746f7249643c543e6020746f20746865c8206e756d626572206f6620626c6f636b7320617574686f7265642062792074686520676976656e20617574686f726974792e01b50501d40440556e7369676e65645072696f726974792820ffffffffffffffff10f0204120636f6e66696775726174696f6e20666f722062617365207072696f72697479206f6620756e7369676e6564207472616e73616374696f6e732e0015012054686973206973206578706f73656420736f20746861742069742063616e2062652074756e656420666f7220706172746963756c61722072756e74696d652c207768656eb4206d756c7469706c652070616c6c6574732073656e6420756e7369676e6564207472616e73616374696f6e732e01c9070d204f6666656e63657301204f6666656e6365730c1c5265706f727473000104052ccd07040004490120546865207072696d61727920737472756374757265207468617420686f6c647320616c6c206f6666656e6365207265636f726473206b65796564206279207265706f7274206964656e746966696572732e58436f6e63757272656e745265706f727473496e6465780101080505d107d5030400042901204120766563746f72206f66207265706f727473206f66207468652073616d65206b696e6420746861742068617070656e6564206174207468652073616d652074696d6520736c6f742e485265706f72747342794b696e64496e64657801010405fc30040018110120456e756d65726174657320616c6c207265706f727473206f662061206b696e6420616c6f6e672077697468207468652074696d6520746865792068617070656e65642e00bc20416c6c207265706f7274732061726520736f72746564206279207468652074696d65206f66206f6666656e63652e004901204e6f74652074686174207468652061637475616c2074797065206f662074686973206d617070696e6720697320605665633c75383e602c207468697320697320626563617573652076616c756573206f66690120646966666572656e7420747970657320617265206e6f7420737570706f7274656420617420746865206d6f6d656e7420736f2077652061726520646f696e6720746865206d616e75616c2073657269616c697a6174696f6e2e0001f800000e6052616e646f6d6e657373436f6c6c656374697665466c6970016052616e646f6d6e657373436f6c6c656374697665466c6970043852616e646f6d4d6174657269616c0100d50704000c610120536572696573206f6620626c6f636b20686561646572732066726f6d20746865206c61737420383120626c6f636b73207468617420616374732061732072616e646f6d2073656564206d6174657269616c2e2054686973610120697320617272616e67656420617320612072696e672062756666657220776974682060626c6f636b5f6e756d626572202520383160206265696e672074686520696e64657820696e746f20746865206056656360206f664420746865206f6c6465737420686173682e000000000f20426167734c6973740120426167734c6973740c244c6973744e6f6465730001040500d90704000c8020412073696e676c65206e6f64652c2077697468696e20736f6d65206261672e000501204e6f6465732073746f7265206c696e6b7320666f727761726420616e64206261636b2077697468696e207468656972207265737065637469766520626167732e4c436f756e746572466f724c6973744e6f646573010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170204c697374426167730001040528dd0704000c642041206261672073746f72656420696e2073746f726167652e0019012053746f7265732061206042616760207374727563742c2077686963682073746f726573206865616420616e64207461696c20706f696e7465727320746f20697473656c662e01d50501010104344261675468726573686f6c647315010919210300407a10f35a00006a70ccd4a96000009ef3397fbc660000a907ccd5306d00003d9a67fb0c740000a9bfa275577b0000a6fdf73217830000034f5d91538b0000132445651494000078081001629d00000302f63c45a70000392e6f7fc7b10000f59c23c6f2bc00004ae76aafd1c80000598a64846fd50000129fb243d8e200003f22e1ac18f1000033a4844c3e000100e2e51b895710010076a2c0b0732101006789b407a3330100793ed8d7f646010078131b81815b01000c1cf38a567101004437eeb68a8801009eb56d1434a10100335e9f156abb010067c3c7a545d701003218f340e1f40100de0b230d59140200699c11f5ca350200ad50a2c4565902009ae41c471e7f0200d0244e6745a70200f984ad51f2d10200ace7a7984dff0200a118325b822f0300ffa4c76dbe620300580bfd8532990300a9afce6812d30300109ad81b95100400d9caa519f551040038df488970970400bee1727949e10400cc73401fc62f0500b304f91831830500828bffb4d9db05001235383d143a0600a5b42a473a9e060036662d09ab080700f73aeab4cb790700b87e93d707f20700ffec23c0d1710800b84b0beca2f90800c9dcae7afc89090091752ba867230a0064f1cd4f76c60a003609be76c3730b0078655fdff32b0c00a407f5a5b6ef0c0052f61be7c5bf0d00da71bb70e79c0e000de9127eed870f001477987fb7811000ebee65ef328b11001269fe325ca5120033f8428b3fd113008ba57a13fa0f15001b2b60d0ba6216000d1d37d0c3ca17006c64fa5c6b4919002622c7411de01a00045bb9245c901c00233d83f6c25b1e00c8771c79064420003013fddef64a2200aa8b6e848172240082c096c4b2bc260016a3faebb72b29008296524ae1c12b00a636a865a4812e00d0e2d4509e6d31009c0a9a2796883400e4faafb27fd53700e6e64d367e573b000e4bd66de7113f0088b17db746084300b07def72603e470034de249635b84b00d48bd57b077a5000d0bd20ef5b885500b8f0467801e85a0010f88aee139e60003892925301b066009c95e4fc8e236d00b4126d10dffe730028b43e5976487b00a08a1c7a42078300b09ab083a0428b002846b2f463029400c861a42ade4e9d0050d23d4ae630a700805101a7e1b1b10038e501b2ccdbbc002016527844b9c800388924ba9055d50070ca35a4aebce200805fb1355cfbf0008035685d241f0001a0c3dcd96b361001d07862e87e50210160e852d09f7d330190662c5816cf460110274c3340575b01804be277a22971013082b92dfc5a880180d276075a01a101b0f511592b34bb014031745f580cd701802f6cee59a4f40140ff799b521814026075607d2986350260fde999a60d590200e5e71c91d07e02c0df2575cff2a602a07fd975899ad102a067009d4cf0fe0220dc29a1321f2f0320ff526b0a5562038088caa383c29803e05683fb5c9bd203401dd75d9516100400317e39a06e5104c0b071129de1960480b48c9192b1e00480e8124aad242f05c007ca7082858205007c13c45623db0540836fe869523906c0700f81466c9d0640f09c5017d00707c0e624b301e37807c0332ac78510f10780074ca1e4ca700800d5a9eb8c8bf80800a849588ed3880900804254142c220a80a25170e826c50a00e8d5fafc5e720b801df64e00792a0c80d4fe64f923ee0c006dd038ee19be0d001e90a494209b0e0010bf570e0a860f00da6a9db0b57f1000bf64afd810891100bb5b60cd17a31200f963f3aed6ce1300d5f004766a0d1500e099770202601600103d663bdfc71700de3e2d4158461900ecdbadb2d8dc1a0045c70007e38c1c00b8bde0fc11581e00ba5c2a211a402000407de46dcb462200dea55b03136e2400aaf1f3fcfcb7260014226f63b62629006492803e8fbc2b008486a6c7fc7b2e002cf05fc09b673100da63f7ed32823400f0b13fbdb5ce3700f291c41047503b00422a1a3c3c0a3f002c24212f20004300ac9342d4b6354700cc6ed7a400af4b00c4d022773e70500020017d89f57d5500f86387cef3dc5a008c4c7f7e54926000206207f284a36600cc1e05cb49166d00b42a7a70c4f07300d43a90e278397b0038f461ec53f78200a07264b9b1318b0048c9b3d464f09300007fe998bd3b9d0010058f17921ca70000dfaf7f469cb100e80c880bd6c4bc0058bdcb7ddca0c80038d18d37a03bd50030d55bf01ca1e200704ac01a0fdef0ffffffffffffffffacd020546865206c697374206f66207468726573686f6c64732073657061726174696e672074686520766172696f757320626167732e00490120496473206172652073657061726174656420696e746f20756e736f727465642062616773206163636f7264696e6720746f2074686569722073636f72652e205468697320737065636966696573207468656101207468726573686f6c64732073657061726174696e672074686520626167732e20416e20696427732062616720697320746865206c6172676573742062616720666f722077686963682074686520696427732073636f7265b8206973206c657373207468616e206f7220657175616c20746f20697473207570706572207468726573686f6c642e006501205768656e20696473206172652069746572617465642c2068696768657220626167732061726520697465726174656420636f6d706c6574656c79206265666f7265206c6f77657220626167732e2054686973206d65616e735901207468617420697465726174696f6e206973205f73656d692d736f727465645f3a20696473206f66206869676865722073636f72652074656e6420746f20636f6d65206265666f726520696473206f66206c6f7765722d012073636f72652c206275742070656572206964732077697468696e206120706172746963756c6172206261672061726520736f7274656420696e20696e73657274696f6e206f726465722e006820232045787072657373696e672074686520636f6e7374616e74004d01205468697320636f6e7374616e74206d75737420626520736f7274656420696e207374726963746c7920696e6372656173696e67206f726465722e204475706c6963617465206974656d7320617265206e6f742c207065726d69747465642e00410120546865726520697320616e20696d706c696564207570706572206c696d6974206f66206053636f72653a3a4d4158603b20746861742076616c756520646f6573206e6f74206e65656420746f2062652101207370656369666965642077697468696e20746865206261672e20466f7220616e792074776f207468726573686f6c64206c697374732c206966206f6e6520656e647320776974683101206053636f72653a3a4d4158602c20746865206f74686572206f6e6520646f6573206e6f742c20616e64207468657920617265206f746865727769736520657175616c2c207468652074776f7c206c697374732077696c6c20626568617665206964656e746963616c6c792e003820232043616c63756c6174696f6e005501204974206973207265636f6d6d656e64656420746f2067656e65726174652074686520736574206f66207468726573686f6c647320696e20612067656f6d6574726963207365726965732c2073756368207468617441012074686572652065786973747320736f6d6520636f6e7374616e7420726174696f2073756368207468617420607468726573686f6c645b6b202b20315d203d3d20287468726573686f6c645b6b5d202ad020636f6e7374616e745f726174696f292e6d6178287468726573686f6c645b6b5d202b2031296020666f7220616c6c20606b602e005901205468652068656c7065727320696e2074686520602f7574696c732f6672616d652f67656e65726174652d6261677360206d6f64756c652063616e2073696d706c69667920746869732063616c63756c6174696f6e2e002c2023204578616d706c6573005101202d20496620604261675468726573686f6c64733a3a67657428292e69735f656d7074792829602c207468656e20616c6c20696473206172652070757420696e746f207468652073616d65206261672c20616e64b0202020697465726174696f6e206973207374726963746c7920696e20696e73657274696f6e206f726465722e6101202d20496620604261675468726573686f6c64733a3a67657428292e6c656e2829203d3d203634602c20616e6420746865207468726573686f6c6473206172652064657465726d696e6564206163636f7264696e6720746f11012020207468652070726f63656475726520676976656e2061626f76652c207468656e2074686520636f6e7374616e7420726174696f20697320657175616c20746f20322e6501202d20496620604261675468726573686f6c64733a3a67657428292e6c656e2829203d3d20323030602c20616e6420746865207468726573686f6c6473206172652064657465726d696e6564206163636f7264696e6720746f59012020207468652070726f63656475726520676976656e2061626f76652c207468656e2074686520636f6e7374616e7420726174696f20697320617070726f78696d6174656c7920657175616c20746f20312e3234382e6101202d20496620746865207468726573686f6c64206c69737420626567696e7320605b312c20322c20332c202e2e2e5d602c207468656e20616e20696420776974682073636f72652030206f7220312077696c6c2066616c6cf0202020696e746f2062616720302c20616e20696420776974682073636f726520322077696c6c2066616c6c20696e746f2062616720312c206574632e00302023204d6967726174696f6e00610120496e20746865206576656e7420746861742074686973206c6973742065766572206368616e6765732c206120636f7079206f6620746865206f6c642062616773206c697374206d7573742062652072657461696e65642e5d012057697468207468617420604c6973743a3a6d696772617465602063616e2062652063616c6c65642c2077686963682077696c6c20706572666f726d2074686520617070726f707269617465206d6967726174696f6e2e01e107101c56657374696e67011c56657374696e67081c56657374696e670001040200e907040004d820496e666f726d6174696f6e20726567617264696e67207468652076657374696e67206f66206120676976656e206163636f756e742e3853746f7261676556657273696f6e0100f10704000c7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e003101204e6577206e6574776f726b732073746172742077697468206c61746573742076657273696f6e2c2061732064657465726d696e6564206279207468652067656e65736973206275696c642e01d90501050108444d696e5665737465645472616e736665721840aa821bce26000000000000000000000004e820546865206d696e696d756d20616d6f756e74207472616e7366657272656420746f2063616c6c20607665737465645f7472616e73666572602e4c4d617856657374696e675363686564756c657310101c0000000001f50711204d756c746973696701204d756c746973696704244d756c7469736967730001080502f907fd07040004942054686520736574206f66206f70656e206d756c7469736967206f7065726174696f6e732e01e1050109010c2c4465706f736974426173651840d042de1300000000000000000000000018590120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e672061206d756c746973696720657865637574696f6e206f7220746f842073746f726520612064697370617463682063616c6c20666f72206c617465722e00010120546869732069732068656c6420666f7220616e206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a652069733101206034202b2073697a656f662828426c6f636b4e756d6265722c2042616c616e63652c204163636f756e74496429296020627974657320616e642077686f7365206b65792073697a652069738020603332202b2073697a656f66284163636f756e74496429602062797465732e344465706f736974466163746f72184040cd2d030000000000000000000000000c55012054686520616d6f756e74206f662063757272656e6379206e65656465642070657220756e6974207468726573686f6c64207768656e206372656174696e672061206d756c746973696720657865637574696f6e2e00250120546869732069732068656c6420666f7220616464696e67203332206279746573206d6f726520696e746f2061207072652d6578697374696e672073746f726167652076616c75652e384d61785369676e61746f7269657310106400000004ec20546865206d6178696d756d20616d6f756e74206f66207369676e61746f7269657320616c6c6f77656420696e20746865206d756c74697369672e010508121c436f756e63696c011c436f756e63696c24145374616765010009082402010000000000000004742043757272656e7420636f756e63696c20766f74696e6720737461676538436f756e63696c4d656d6265727301001d08040004602043757272656e7420636f756e63696c206d656d626572732843616e64696461746573000104022829080400041101204d6170206f6620616c6c2063616e64696461746573207468617420657665722063616e6469646174656420616e6420686176656e277420756e7374616b65207965742e50416e6e6f756e63656d656e74506572696f644e72010028200000000000000000085d0120496e646578206f66207468652063757272656e742063616e64696461637920706572696f642e20497420697320696e6372656d656e74656420657665727974696d6520616e6e6f756e63656d656e7420706572696f6420207374617274732e18427564676574010018400000000000000000000000000000000004c82042756467657420666f722074686520636f756e63696c277320656c6563746564206d656d6265727320726577617264732e484e6578745265776172645061796d656e7473010010100000000004290120546865206e65787420626c6f636b20696e2077686963682074686520656c656374656420636f756e63696c206d656d62657220726577617264732077696c6c2062652070617965642e404e657874427564676574526566696c6c010010100000000004d820546865206e65787420626c6f636b20696e20776869636820746865206275646765742077696c6c20626520696e637265617365642e3c427564676574496e6372656d656e74010018400000000000000000000000000000000004d420416d6f756e74206f662062616c616e636520746f20626520726566696c6c65642065766572792062756467657420706572696f643c436f756e63696c6f725265776172640100184000000000000000000000000000000000046c20436f756e63696c6f72207265776172642070657220626c6f636b01e90501110124684d696e4e756d6265724f66457874726143616e64696461746573101000000000080901204d696e696d756d206e756d626572206f662065787472612063616e64696461746573206e656564656420666f72207468652076616c696420656c656374696f6e2e2d01204e756d626572206f6620746f74616c2063616e6469646174657320697320657175616c20746f20636f756e63696c2073697a6520706c75732065787472612063616e646964617465732e2c436f756e63696c53697a65101005000000045420436f756e63696c206d656d62657220636f756e74444d696e43616e6469646174655374616b651840a010a012d3eb050000000000000000000490204d696e696d756d207374616b652063616e6469646174652068617320746f206c6f636b60416e6e6f756e63696e67506572696f644475726174696f6e10103c0000000474204475726174696f6e206f6620616e6e6f6e63696e6720706572696f644849646c65506572696f644475726174696f6e10100a0000000460204475726174696f6e206f662069646c6520706572696f6464456c65637465644d656d626572526577617264506572696f6410100600000004a020496e74657276616c20666f72206175746f6d6174696320726577617264207061796d656e74732e48427564676574526566696c6c506572696f6410100600000004ac20496e74657276616c206265747765656e206175746f6d617469632062756467657420726566696c6c732e3c43616e6469646163794c6f636b496425042063616e6469646163048c204578706f72747320636f6e7374202d2063616e646964616379206c6f636b2069642e3c436f756e63696c6f724c6f636b4964250420636f756e63696c6f048c204578706f72747320636f6e7374202d20636f756e63696c6f72206c6f636b2069642e012d0813285265666572656e64756d014c496e7374616e6365315265666572656e64756d0c14537461676501003108040004682043757272656e74207265666572656e64756d2073746167652e14566f74657301010402004108e400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018510120566f746573206361737420696e20746865207265666572656e64756d2e2041206e6577207265636f726420697320616464656420746f2074686973206d6170207768656e20612075736572206361737473206134207365616c656420766f74652e0101204974206973206d6f646966696564207768656e206120757365722072657665616c732074686520766f7465277320636f6d6d69746d656e742070726f6f662e55012041207265636f72642069732066696e616c6c792072656d6f766564207768656e20746865207573657220756e7374616b65732c2077686963682063616e2068617070656e20647572696e67206120766f74696e679c207374616765206f72206166746572207468652063757272656e74206379636c6520656e64732ef82041207374616b6520666f72206120766f74652063616e2062652072657573656420696e20667574757265207265666572656e64756d206379636c65732e404163636f756e74734f707465644f757401010402007c0004f4204163636f756e74732074686174207065726d616e656e746c79206f70746564206f7574206f6620766f74696e6720696e207265666572656e64756d2e01ed0501190114344d617853616c744c656e67746828202000000000000000085d01204d6178696d756d206c656e677468206f6620766f746520636f6d6d69746d656e742073616c742e20557365206c656e677468207468617420656e737572657320756e697175656e65737320666f722068617368696e675020652e672e207374643a3a7536343a3a4d41582e44566f746553746167654475726174696f6e10101400000004b0204475726174696f6e206f6620766f74696e6720737461676520286e756d626572206f6620626c6f636b73294c52657665616c53746167654475726174696f6e10101400000004bc204475726174696f6e206f662072657665616c696e6720737461676520286e756d626572206f6620626c6f636b7329304d696e696d756d5374616b651840a41a130d8401000000000000000000000480204d696e696d756d207374616b65206e656564656420666f7220766f74696e67505374616b696e6748616e646c65724c6f636b4964250420766f74696e67202004a4204578706f72747320636f6e7374202d207374616b696e672068616e646c6572206c6f636b2069642e014508141c4d656d6265727301284d656d6265727368697020304e6578744d656d6265724964010028200000000000000000084501204d656d626572496420746f2061737369676e20746f206e657874206d656d626572207468617420697320616464656420746f207468652072656769737472792c20616e6420697320616c736f20746865e820746f74616c206e756d626572206f66206d656d6265727320637265617465642e204d656d626572496473207374617274206174205a65726f2e384d656d626572736869704279496400010402284908040004d0204d617070696e67206f66206d656d626572277320696420746f207468656972206d656d626572736869702070726f66696c652e504d656d6265724964427948616e646c6548617368010104022c28200000000000000000040501205265676973746572656420756e697175652068616e646c6573206861736820616e64207468656972206d617070696e6720746f207468656972206f776e65722e2c526566657272616c437574010008040004410120526566657272616c206375742070657263656e74206f6620746865206d656d626572736869702066656520746f2072656365697665206f6e20627579696e6720746865206d656d626572736869702e3c4d656d62657273686970507269636501001840aa821bce26000000000000000000000004682043757272656e74206d656d626572736869702070726963652e58496e697469616c496e7669746174696f6e436f756e74010010100000000004e820496e697469616c20696e7669746174696f6e20636f756e7420666f7220746865206e65776c7920626f75676874206d656d626572736869702e60496e697469616c496e7669746174696f6e42616c616e63650100184034c10d6713000000000000000000000004cc20496e697469616c20696e7669746174696f6e2062616c616e636520666f722074686520696e7669746564206d656d6265722e705374616b696e674163636f756e7449644d656d62657253746174757301010402004d082400000000000000000004250120446f75626c65206f662061207374616b696e67206163636f756e7420696420616e64206d656d62657220696420746f2074686520636f6e6669726d6174696f6e207374617475732e01f105012901185844656661756c744d656d6265727368697050726963651840aa821bce26000000000000000000000004a0204578706f72747320636f6e7374202d2064656661756c74206d656d62657273686970206665652e64526566657272616c4375744d6178696d756d50657263656e74080432044901204578706f72747320636f6e7374202d206d6178696d756d2070657263656e742076616c7565206f6620746865206d656d626572736869702066656520666f722074686520726566657272616c206375742e7c44656661756c74496e697469616c496e7669746174696f6e42616c616e6365184034c10d6713000000000000000000000004e0204578706f72747320636f6e7374202d2064656661756c742062616c616e636520666f722074686520696e7669746564206d656d6265722e3843616e6469646174655374616b651840a41a130d84010000000000000000000004f8204578706f72747320636f6e7374202d205374616b65206e656564656420746f2063616e646964617465206173207374616b696e67206163636f756e742e4c496e76697465644d656d6265724c6f636b4964250420696e766974656d6204a0204578706f72747320636f6e7374202d20696e7669746564206d656d626572206c6f636b2069642e585374616b696e6743616e6469646174654c6f636b4964250420626f756e6473746104ac204578706f72747320636f6e7374202d207374616b696e672063616e646964617465206c6f636b2069642e0151081514466f72756d0124466f72756d5f315f31203043617465676f727942794964010104022855083d010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004cc204d61702063617465676f7279206964656e74696669657220746f20636f72726573706f6e64696e672063617465676f72792e384e65787443617465676f727949640100282000000000000000000411012043617465676f7279206964656e7469666965722076616c756520746f206265207573656420666f7220746865206e6578742043617465676f727920637265617465642e3c43617465676f7279436f756e746572010028200000000000000000049420436f756e74657220666f7220616c6c206578697374696e672063617465676f726965732e2854687265616442794964010108020279035d08a4000000000000000000000000000000000000000000000000000000000000000000000000000000000004bc204d617020746872656164206964656e74696669657220746f20636f72726573706f6e64696e67207468726561642e304e657874546872656164496401002820000000000000000004090120546872656164206964656e7469666965722076616c756520746f206265207573656420666f72206e6578742054687265616420696e20746872656164427949642e284e657874506f7374496401002820000000000000000004f020506f7374206964656e7469666965722076616c756520746f206265207573656420666f7220666f72206e65787420706f737420637265617465642e4c43617465676f727942794d6f64657261746f72010108020279037c000480204d6f64657261746f722073657420666f7220656163682043617465676f727920506f737442794964010108020279036108150100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004ac204d617020706f7374206964656e74696669657220746f20636f72726573706f6e64696e6720706f73742e01f505015101102c506f73744465706f736974184083890d730000000000000000000000000838204578706f72747320636f6e737480204465706f736974206e656564656420746f20637265617465206120706f7374345468726561644465706f736974184099b06c6f0000000000000000000000000488204465706f736974206e656564656420746f20637265617465206120746872656164804d617844697265637453756263617465676f72696573496e43617465676f7279282005000000000000000484204d617844697265637453756263617465676f72696573496e43617465676f7279484d6178546f74616c43617465676f7269657328202800000000000000044c204d6178546f74616c43617465676f726965730165081630436f6e737469747574696f6e0130436f6e737469747574696f6e0430436f6e737469747574696f6e010069088000000000000000000000000000000000000000000000000000000000000000000001f905016d0100001718426f756e74790118426f756e74791420426f756e7469657301010402286d087d010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044020426f756e74792073746f726167652e4c426f756e7479436f6e747269627574696f6e7301010802028108850880000000000000000000000000000000005084c06c000000000000000000000000044d0120446f75626c65206d617020666f7220626f756e74792066756e64696e672e2049742073746f7265732061206d656d626572206f7220636f756e63696c2066756e64696e6720666f7220626f756e746965732e2c426f756e7479436f756e74010010100000000004b820436f756e74206f6620616c6c20626f756e7469657320746861742068617665206265656e20637265617465642e1c456e74726965730001080202790389080400046020576f726b20656e7472792073746f72616765206d61702e28456e747279436f756e74010010100000000004c820436f756e74206f6620616c6c20776f726b20656e747269657320746861742068617665206265656e20637265617465642e01fd05017101105c436c6f736564436f6e747261637453697a654c696d6974101032000000044d01204578706f72747320636f6e7374202d206d617820776f726b20656e747279206e756d62657220666f72206120636c6f736564206173737572616e6365207479706520636f6e747261637420626f756e74792e4c4d696e576f726b456e7472616e745374616b651840958ed36d00000000000000000000000004d4204578706f72747320636f6e7374202d206d696e20776f726b20656e7472616e74207374616b6520666f72206120626f756e74792e6846756e6465725374617465426c6f6174426f6e64416d6f756e7418405084c06c00000000000000000000000004f4204578706f72747320636f6e7374202d2066756e64657220737461746520626c6f617420626f6e6420616d6f756e7420666f72206120626f756e74792e6c43726561746f725374617465426c6f6174426f6e64416d6f756e7418400e16e46c00000000000000000000000004f8204578706f72747320636f6e7374202d2063726561746f7220737461746520626c6f617420626f6e6420616d6f756e7420666f72206120626f756e74792e018d0818404a6f7973747265616d5574696c69747901404a6f7973747265616d5574696c6974790001010601950100019108191c436f6e74656e74011c436f6e74656e74842c4368616e6e656c427949640101040228a901a10100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024566964656f42794964010104022895086c00000000000000000000000000000000000000000000000000000000344e6578744368616e6e656c4964010028200000000000000000002c4e657874566964656f496401002820000000000000000000384e6578745472616e73666572496401002820000000000000000000484e65787443757261746f7247726f75704964010028200000000000000000004043757261746f7247726f7570427949640101040228c1080c0000000028436f6d6d69746d656e7401002c80000000000000000000000000000000000000000000000000000000000000000000684368616e6e656c5374617465426c6f6174426f6e6456616c756501001840000000000000000000000000000000000425012054686520737461746520626c6f617420626f6e6420666f7220746865206368616e6e656c202868656c70732070726576656e74696e672074686520737461746520626c6f6174292e60566964656f5374617465426c6f6174426f6e6456616c7565010018400000000000000000000000000000000004190154686520737461746520626c6f617420626f6e6420666f722074686520766964656f202868656c70732070726576656e74696e672074686520737461746520626c6f6174292e444d6178436173686f7574416c6c6f776564010018400000000000000000000000000000000000444d696e436173686f7574416c6c6f776564010018400000000000000000000000000000000000584368616e6e656c436173686f757473456e61626c6564010098040000484d696e41756374696f6e4475726174696f6e01001010000000000454204d696e2061756374696f6e206475726174696f6e484d617841756374696f6e4475726174696f6e01001010000000000454204d61782061756374696f6e206475726174696f6e644d696e41756374696f6e457874656e73696f6e506572696f6401001010000000000474204d696e2061756374696f6e20657874656e73696f6e20706572696f64644d617841756374696f6e457874656e73696f6e506572696f6401001010000000000474204d61782061756374696f6e20657874656e73696f6e20706572696f64484d696e4269644c6f636b4475726174696f6e01001010000000000458204d696e20626964206c6f636b206475726174696f6e484d61784269644c6f636b4475726174696f6e01001010000000000458204d617820626964206c6f636b206475726174696f6e404d696e5374617274696e67507269636501001840000000000000000000000000000000000468204d696e2061756374696f6e2073746172696e67207072696365404d61785374617274696e67507269636501001840000000000000000000000000000000000468204d61782061756374696f6e2073746172696e67207072696365444d696e43726561746f72526f79616c74790100ac1000000000047c204d696e2063726561746f7220726f79616c74792070657263656e74616765444d617843726561746f72526f79616c74790100ac1000000000047c204d61782063726561746f7220726f79616c74792070657263656e74616765284d696e4269645374657001001840000000000000000000000000000000000454204d696e2061756374696f6e206269642073746570284d61784269645374657001001840000000000000000000000000000000000454204d61782061756374696f6e20626964207374657054506c617466726f6d46656550657263656e746167650100ac1000000000046020506c6174666f726d206665652070657263656e746167655c41756374696f6e53746172747341744d617844656c7461010010100000000004b8204d61782064656c7461206265747765656e2063757272656e7420626c6f636b20616e6420737461727473206174784f70656e41756374696f6e4269644279566964656f416e644d656d62657201010802027903dd087000000000000000000000000000000000000000000000000000000000045c204269647320666f72206f70656e2061756374696f6e7354476c6f62616c4461696c794e6674436f756e7465720100f90130000000000000000000000000046820476c6f62616c206461696c79204e465420636f756e7465722e58476c6f62616c5765656b6c794e6674436f756e7465720100f90130000000000000000000000000046c20476c6f62616c207765656b6c79204e465420636f756e7465722e4c476c6f62616c4461696c794e66744c696d69740100f50130000000000000000000000000046020476c6f62616c206461696c79204e4654206c696d69742e50476c6f62616c5765656b6c794e66744c696d69740100f50130000000000000000000000000046420476c6f62616c207765656b6c79204e4654206c696d69742e404e66744c696d697473456e61626c656401009804000868204e4654206c696d69747320656e61626c6564206f72206e6f74a02043616e206265207570646174656420696e20666c696768742062792074686520436f756e63696c01050601a101246c4d61784e756d6265724f6643757261746f727350657247726f757010100a00000004c4204578706f72747320636f6e7374202d206d6178206e756d626572206f662063757261746f7273207065722067726f7570ac4d61784b65797350657243757261746f7247726f75705065726d697373696f6e7342794c6576656c4d6170101019000000045d01204578706f72747320636f6e7374202d206d6178206e756d626572206f66206b657973207065722063757261746f725f67726f75702e7065726d697373696f6e735f62795f6c6576656c206d617020696e7374616e6365704d61784e667441756374696f6e57686974656c6973744c656e67746810101400000004c4204578706f72747320636f6e7374202d206d6178206e66742061756374696f6e2077686974656c697374206c656e6774686844656661756c74476c6f62616c4461696c794e66744c696d6974f5013064000000000000008051010004c0204578706f72747320636f6e7374202d2064656661756c7420676c6f62616c206461696c79204e4654206c696d69742e6c44656661756c74476c6f62616c5765656b6c794e66744c696d6974f5013064000000000000008051010004c4204578706f72747320636f6e7374202d2064656661756c7420676c6f62616c207765656b6c79204e4654206c696d69742e6c44656661756c744368616e6e656c4461696c794e66744c696d6974f5013064000000000000008051010004c4204578706f72747320636f6e7374202d2064656661756c74206368616e6e656c206461696c79204e4654206c696d69742e7044656661756c744368616e6e656c5765656b6c794e66744c696d6974f5013064000000000000008051010004c8204578706f72747320636f6e7374202d2064656661756c74206368616e6e656c207765656b6c79204e4654206c696d69742e684d696e696d756d436173686f7574416c6c6f7765644c696d69741840a41a130d84010000000000000000000004a8204578706f727420636f6e7374202d206d696e20636173686f757420616c6c6f776564206c696d697473684d6178696d756d436173686f7574416c6c6f7765644c696d6974184040a640ba3e363b00000000000000000004a8204578706f727420636f6e7374202d206d617820636173686f757420616c6c6f776564206c696d69747301e1081a1c53746f72616765011c53746f726167654c4055706c6f6164696e67426c6f636b6564010098040004a020446566696e6573207768657468657220616c6c206e65772075706c6f61647320626c6f636b65641042616773010104029502e50848000000000000000000000000000000000000044820426167732073746f72616765206d61702e4c4e65787453746f726167654275636b6574496401002820000000000000000004ac2053746f72616765206275636b657420696420636f756e7465722e20537461727473206174207a65726f2e404e657874446174614f626a656374496401002820000000000000000004a02044617461206f626a65637420696420636f756e7465722e20537461727473206174207a65726f2e4453746f726167654275636b6574427949640001040228f108040004442053746f72616765206275636b6574732e24426c61636b6c69737401010402f9087c00048020426c61636b6c69737465642064617461206f626a656374206861736865732e5043757272656e74426c61636b6c69737453697a65010028200000000000000000047820426c61636b6c69737420636f6c6c656374696f6e20636f756e7465722e60446174614f626a6563745065724d65676162797465466565010018400000000000000000000000000000000004b02053697a652062617365642070726963696e67206f66206e6577206f626a656374732075706c6f616465642e6453746f726167654275636b6574735065724261674c696d6974010010100000000004a0202253746f72616765206275636b657473207065722062616722206e756d626572206c696d69742e68566f75636865724d61784f626a6563747353697a654c696d697401002820000000000000000004f820224d6178206f626a656374732073697a6520666f7220612073746f72616765206275636b657420766f756368657222206e756d626572206c696d69742e70566f75636865724d61784f626a656374734e756d6265724c696d697401002820000000000000000004050120224d6178206f626a65637473206e756d62657220666f7220612073746f7261676520206275636b657420766f756368657222206e756d626572206c696d69742e74446174614f626a6563745374617465426c6f6174426f6e6456616c756501001840000000000000000000000000000000000439012054686520737461746520626c6f617420626f6e6420666f72207468652064617461206f626a65637473202868656c70732070726576656e74696e672074686520737461746520626c6f6174292e6844796e616d69634261674372656174696f6e506f6c696369657301010402b102fd0814000000000004c82044796e616d69634261674372656174696f6e506f6c6963792062792062616720747970652073746f72616765206d61702e3c446174614f626a65637473427949640101080202050909096c00000000000000000000000000000000000000000000000000000004b0202744617461206f626a6563747320666f722062616773272073746f7261676520646f75626c65206d61702e784e657874446973747269627574696f6e4275636b657446616d696c79496401002820000000000000000004dc20446973747269627574696f6e206275636b65742066616d696c7920696420636f756e7465722e20537461727473206174207a65726f2e70446973747269627574696f6e4275636b657446616d696c794279496401010402280d09200000000000000000047820446973747269627574696f6e206275636b65742066616d696c6965732e80446973747269627574696f6e4275636b6574427946616d696c794964427949640101080202790311093000000000000000000000000004a82027446973747269627574696f6e206275636b6574272073746f7261676520646f75626c65206d61702e78446973747269627574696f6e4275636b657446616d696c794e756d62657201002820000000000000000004f020546f74616c206e756d626572206f6620646973747269627574696f6e206275636b65742066616d696c69657320696e207468652073797374656d2e78446973747269627574696f6e4275636b6574735065724261674c696d6974010010100000000004b42022446973747269627574696f6e206275636b657473207065722062616722206e756d626572206c696d69742e013506018d022c48426c61636b6c69737453697a654c696d69742820e803000000000000040501204578706f72747320636f6e7374202d206d6178696d756d2073697a65206f662074686520226861736820626c61636b6c6973742220636f6c6c656374696f6e2e5c4d696e53746f726167654275636b65747350657242616710100100000004ec204578706f72747320636f6e7374202d206d696e696d756d206e756d626572206f662073746f72616765206275636b65747320706572206261672e5c4d617853746f726167654275636b65747350657242616710100d00000004ec204578706f72747320636f6e7374202d206d6178696d756d206e756d626572206f662073746f72616765206275636b65747320706572206261672e704d696e446973747269627574696f6e4275636b657473506572426167101001000000040101204578706f72747320636f6e7374202d206d696e696d756d206e756d626572206f6620646973747269627574696f6e206275636b65747320706572206261672e704d6178446973747269627574696f6e4275636b657473506572426167101033000000040101204578706f72747320636f6e7374202d206d6178696d756d206e756d626572206f6620646973747269627574696f6e206275636b65747320706572206261672eb444656661756c744d656d62657244796e616d69634261674e756d6265724f6653746f726167654275636b657473101001000000085101204578706f72747320636f6e7374202d207468652064656661756c742064796e616d696320626167206372656174696f6e20706f6c69637920666f72206d656d62657273202873746f72616765206275636b657424206e756d626572292eb844656661756c744368616e6e656c44796e616d69634261674e756d6265724f6653746f726167654275636b657473101001000000085501204578706f72747320636f6e7374202d207468652064656661756c742064796e616d696320626167206372656174696f6e20706f6c69637920666f72206368616e6e656c73202873746f72616765206275636b657424206e756d626572292e844d6178446973747269627574696f6e4275636b657446616d696c794e756d6265722820c80000000000000004fc204578706f72747320636f6e7374202d206d617820616c6c6f77656420646973747269627574696f6e206275636b65742066616d696c79206e756d6265722ec84d61784e756d6265724f6650656e64696e67496e7669746174696f6e73506572446973747269627574696f6e4275636b6574101014000000042d01204578706f72747320636f6e7374202d206d6178206e756d626572206f662070656e64696e6720696e7669746174696f6e732070657220646973747269627574696f6e206275636b65742ea44d61784e756d6265724f664f70657261746f7273506572446973747269627574696f6e4275636b6574101014000000040501204578706f72747320636f6e7374202d206d6178206e756d626572206f66206f70657261746f72732070657220646973747269627574696f6e206275636b65742e444d6178446174614f626a65637453697a652820000000000f00000004bc204578706f72747320636f6e7374202d206d61782064617461206f626a6563742073697a6520696e2062797465732e011d091b3050726f6a656374546f6b656e0114546f6b656e246c4163636f756e74496e666f4279546f6b656e416e644d656d626572010108020279032109b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041d0120446f75626c65206d617020546f6b656e49642078204d656d6265724964203d3e204163636f756e744461746120666f72206d616e6167696e67206163636f756e74206461746134546f6b656e496e666f4279496401010402284909cd010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004dc206d617020546f6b656e4964203d3e20546f6b656e4461746120746f20726574726965766520746f6b656e20696e666f726d6174696f6e2c4e657874546f6b656e4964010028200000000000000000043c20546f6b656e204964206e6f6e63652c53796d626f6c7355736564010104022c7c00046c2053657420666f722074686520746f6b656e732073796d626f6c7324426c6f6174426f6e64010018400000000000000000000000000000000004b820426c6f617420426f6e642076616c7565207573656420647572696e67206163636f756e74206372656174696f6e3c4d696e53616c654475726174696f6e01001010000000000484204d696e696d756d206475726174696f6e206f66206120746f6b656e2073616c655c4d696e526576656e756553706c69744475726174696f6e010010100000000004a8204d696e696d756d20726576656e75652073706c6974206475726174696f6e20636f6e73747261696e74684d696e526576656e756553706c697454696d65546f5374617274010010100000000004bc204d696e696d756d20726576656e75652073706c69742074696d6520746f20737461727420636f6e73747261696e743c53616c65506c6174666f726d4665650100d5021000000000044d0120506c6174666f726d20666565202870657263656e74616765292063686172676564206f6e20746f70206f6620656163682073616c652070757263686173652028696e204a4f592920616e64206275726e656401390601c102000165091c3c50726f706f73616c73456e67696e65013850726f706f73616c456e67696e65142450726f706f73616c73010104021069090101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460204d61702070726f706f73616c206279206974732069642e3450726f706f73616c436f756e74010010100000000004bc20436f756e74206f6620616c6c2070726f706f73616c7320746861742068617665206265656e20637265617465642e50446973706174636861626c6543616c6c436f646501010402107509040004b4204d61702070726f706f73616c2065786563757461626c6520636f64652062792070726f706f73616c2069642e4c41637469766550726f706f73616c436f756e740100101000000000046c20436f756e74206f66206163746976652070726f706f73616c732e6c566f7465457869737473427950726f706f73616c4279566f746572010108020279093d03040104290120446f75626c65206d617020666f722070726576656e74696e67206475706c696361746520766f7465732e2053686f756c6420626520636c65616e65642061667465722075736167652e016106012903183c43616e63656c6c6174696f6e4665651840aa821bce260000000000000000000000047901204578706f72747320636f6e7374202d2074686520666565206973206170706c696564207768656e2063616e63656c207468652070726f706f73616c2e20412066656520776f756c6420626520736c617368656420286275726e6564292e3052656a656374696f6e4665651840528d8906c20000000000000000000000084501204578706f72747320636f6e7374202d202074686520666565206973206170706c696564207768656e207468652070726f706f73616c20676574732072656a65637465642e20412066656520776f756c645420626520736c617368656420286275726e6564292e385469746c654d61784c656e67746810102800000004d0204578706f72747320636f6e7374202d20206d617820616c6c6f7765642070726f706f73616c207469746c65206c656e6774682e504465736372697074696f6e4d61784c656e6774681010b80b000004e8204578706f72747320636f6e7374202d20206d617820616c6c6f7765642070726f706f73616c206465736372697074696f6e206c656e6774682e584d617841637469766550726f706f73616c4c696d697410101400000004ec204578706f72747320636f6e7374202d20206d61782073696d756c74616e656f7573206163746976652070726f706f73616c73206e756d6265722e505374616b696e6748616e646c65724c6f636b496425042070726f706f73616c04a4204578706f72747320636f6e7374202d207374616b696e672068616e646c6572206c6f636b2069642e017d091d4c50726f706f73616c7344697363757373696f6e014850726f706f73616c44697363757373696f6e10285468726561644279496401010402288109340000000000000000000000000004bc204d617020746872656164206964656e74696669657220746f20636f72726573706f6e64696e67207468726561642e2c546872656164436f756e7401002820000000000000000004b420436f756e74206f6620616c6c207468726561647320746861742068617665206265656e20637265617465642e50506f737454687265616449644279506f73744964010108020279038d0974000000000000000000000000000000000000000000000000000000000004c4204d61702074687265616420696420616e6420706f737420696420746f20636f72726573706f6e64696e6720706f73742e24506f7374436f756e7401002820000000000000000004ac20436f756e74206f6620616c6c20706f73747320746861742068617665206265656e20637265617465642e0165060141030c404d617857686974654c69737453697a65101014000000040901204578706f72747320636f6e7374202d20617574686f72206c6973742073697a65206c696d697420666f722074686520436c6f7365642064697363757373696f6e2e2c506f73744465706f736974184092ef216e00000000000000000000000004a0204578706f72747320636f6e7374202d2066656520666f72206372656174696e67206120706f737430506f73744c69666554696d651010100e0000043d01204578706f72747320636f6e7374202d206d6178696d756d206e756d626572206f6620626c6f636b73206265666f7265206120706f73742063616e2062652065726173656420627920616e796f6e650191091e3850726f706f73616c73436f646578013850726f706f73616c73436f64657804505468726561644964427950726f706f73616c496401010402102820000000000000000004b0204d61702070726f706f73616c20696420746f206974732064697363757373696f6e2074687265616420696401690601490368985365744d617856616c696461746f72436f756e7450726f706f73616c506172616d65746572736d09b41e0000000000000042000000500000003c0000005000000001680abf82280f000000000000000000000100000004dc204578706f7274732027536574204d61782056616c696461746f7220436f756e74272070726f706f73616c20706172616d65746572732e8052756e74696d655570677261646550726f706f73616c506172616d65746572736d09b4640000002800000050000000640000003c00000050000000011068761b9597000000000000000000000200000004bc204578706f727473202752756e74696d652055706772616465272070726f706f73616c20706172616d65746572732e605369676e616c50726f706f73616c506172616d65746572736d09b41e000000000000003c000000500000003c00000050000000019ac2af20ca0300000000000000000000010000000498204578706f72747320275369676e616c272070726f706f73616c20706172616d65746572732e8046756e64696e675265717565737450726f706f73616c506172616d65746572736d09b41e000000140000003c000000500000003c00000050000000019ac2af20ca03000000000000000000000100000004bc204578706f727473202746756e64696e672052657175657374272070726f706f73616c20706172616d65746572732ebc437265617465576f726b696e6747726f75704c6561644f70656e696e6750726f706f73616c506172616d65746572736d09b41e000000000000003c000000500000003c0000005000000001680abf82280f0000000000000000000001000000040501204578706f727473202743726561746520576f726b696e672047726f7570204c656164204f70656e696e67272070726f706f73616c20706172616d65746572732ea446696c6c576f726b696e6747726f75704f70656e696e6750726f706f73616c506172616d65746572736d09b41e000000000000003c0000004b0000003c000000500000000134855f419407000000000000000000000100000004fc204578706f727473202746696c6c20576f726b696e672047726f7570204c656164204f70656e696e67272070726f706f73616c20706172616d65746572732ea8557064617465576f726b696e6747726f757042756467657450726f706f73616c506172616d65746572736d09b41e000000000000003c0000004b0000003c000000500000000134855f419407000000000000000000000100000004ec204578706f727473202755706461746520576f726b696e672047726f757020427564676574272070726f706f73616c20706172616d65746572732ebc4465637265617365576f726b696e6747726f75704c6561645374616b6550726f706f73616c506172616d65746572736d09b41e000000000000003c0000004b0000003c000000500000000134855f4194070000000000000000000001000000040501204578706f7274732027446563726561736520576f726b696e672047726f7570204c656164205374616b65272070726f706f73616c20706172616d65746572732e9c536c617368576f726b696e6747726f75704c65616450726f706f73616c506172616d65746572736d09b41e000000000000003c0000004b0000003c000000500000000134855f419407000000000000000000000100000004e0204578706f7274732027536c61736820576f726b696e672047726f7570204c656164272070726f706f73616c20706172616d65746572732eac536574576f726b696e6747726f75704c65616452657761726450726f706f73616c506172616d65746572736d09b41e000000000000003c0000004b0000003c000000500000000134855f419407000000000000000000000100000004f4204578706f727473202753657420576f726b696e672047726f7570204c65616420526577617264272070726f706f73616c20706172616d65746572732eac5465726d696e617465576f726b696e6747726f75704c65616450726f706f73616c506172616d65746572736d09b41e0000000000000042000000500000003c0000005000000001680abf82280f000000000000000000000100000004f0204578706f72747320275465726d696e61746520576f726b696e672047726f7570204c656164272070726f706f73616c20706172616d65746572732e8c416d656e64436f6e737469747574696f6e50726f706f73616c506172616d65746572736d09b41e0000002800000050000000640000003c00000050000000011068761b9597000000000000000000000200000004c8204578706f7274732027416d656e6420436f6e737469747574696f6e272070726f706f73616c20706172616d65746572732ebc43616e63656c576f726b696e6747726f75704c6561644f70656e696e6750726f706f73616c506172616d65746572736d09b41e000000000000003c0000004b0000003c000000500000000134855f4194070000000000000000000001000000040501204578706f727473202743616e63656c20576f726b696e672047726f7570204c656164204f70656e696e67272070726f706f73616c20706172616d65746572732e905365744d656d62657273686970507269636550726f706f73616c506172616d65746572736d09b41e000000140000003c0000004b0000003c000000500000000134855f419407000000000000000000000100000004d0204578706f7274732027536574204d656d62657273686970205072696365272070726f706f73616c20706172616d65746572732eac536574436f756e63696c427564676574496e6372656d656e7450726f706f73616c506172616d65746572736d09b41e0000001400000042000000500000003c0000005000000001d0147e05511e000000000000000000000100000004f0204578706f727473206053657420436f756e63696c2042756467657420496e6372656d656e74602070726f706f73616c20706172616d65746572732e90536574436f756e63696c6f7252657761726450726f706f73616c506172616d65746572736d09b41e0000002800000042000000500000003c0000005000000001d0147e05511e0000000000000000000002000000042101204578706f727473206053657420436f756e63696c6f72205265776172642050726f706f73616c20506172616d6574657273602070726f706f73616c20706172616d65746572732eb4536574496e697469616c496e7669746174696f6e42616c616e636550726f706f73616c506172616d65746572736d09b41e000000140000003c0000004b0000003c000000500000000134855f419407000000000000000000000100000004f8204578706f727473206053657420496e697469616c20496e7669746174696f6e2042616c616e6365602070726f706f73616c20706172616d65746572732e90536574496e7669746174696f6e436f756e7450726f706f73616c506172616d65746572736d09b41e000000140000003c0000004b0000003c000000500000000134855f419407000000000000000000000100000000c85365744d656d626572736869704c656164496e7669746174696f6e51756f746150726f706f73616c506172616d65746572736d09b41e000000140000003c0000004b0000003c000000500000000134855f41940700000000000000000000010000000080536574526566657272616c43757450726f706f73616c506172616d65746572736d09b41e000000140000003c0000004b0000003c000000500000000134855f419407000000000000000000000100000000785665746f50726f706f73616c50726f706f73616c506172616d65746572736d09b41e000000000000004b000000500000003c00000042000000011068761b959700000000000000000000010000000098557064617465476c6f62616c4e66744c696d697450726f706f73616c506172616d65746572736d09b41e000000000000003c000000500000003c0000005000000001680abf82280f000000000000000000000100000000985570646174654368616e6e656c5061796f75747350726f706f73616c506172616d65746572736d09b41e000000000000003c000000500000003c0000005000000001680abf82280f0000000000000000000001000000009046756e64696e675265717565737450726f706f73616c4d6178546f74616c416d6f756e741840a010a012d3eb0500000000000000000004c4204d6178696d756d20746f74616c20616d6f756e7420696e2066756e64696e6720726571756573742070726f706f73616c8446756e64696e675265717565737450726f706f73616c4d61784163636f756e747310101400000004d0204d6178206e756d626572206f66206163636f756e7473207065722066756e64696e6720726571756573742070726f706f73616ca45365744d617856616c696461746f72436f756e7450726f706f73616c4d617856616c696461746f7273101064000000041501204d617820616c6c6f776564206e756d626572206f662076616c696461746f727320696e20736574206d61782076616c696461746f7220636f756e742070726f706f73616c0195091f44466f72756d576f726b696e6747726f75700154496e7374616e636531576f726b696e6747726f757028344e6578744f70656e696e67496401002820000000000000000004ac204e657874206964656e7469666965722076616c756520666f72206e6577206a6f62206f70656e696e672e2c4f70656e696e674279496401010402289909290101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000480204d617073206964656e74696669657220746f206a6f62206f70656e696e672e44416374697665576f726b6572436f756e740100101000000000046420436f756e74206f662061637469766520776f726b6572732e3c4170706c69636174696f6e4279496400010402289d09040004c8204d617073206964656e74696669657220746f20776f726b6572206170706c69636174696f6e206f6e206f70656e696e672e444e6578744170706c69636174696f6e496401002820000000000000000004c8204e657874206964656e7469666965722076616c756520666f72206e657720776f726b6572206170706c69636174696f6e2e304e657874576f726b657249640100282000000000000000000488204e657874206964656e74696669657220666f722061206e657720776f726b65722e28576f726b6572427949640001040228a109040004a4204d617073206964656e74696669657220746f20636f72726573706f6e64696e6720776f726b65722e2c43757272656e744c656164000028040004502043757272656e742067726f7570206c6561642e18427564676574010018400000000000000000000000000000000004782042756467657420666f722074686520776f726b696e672067726f75702e38537461747573546578744861736801002c800000000000000000000000000000000000000000000000000000000000000000044820537461747573207465787420686173682e016d06016d0318504d6178576f726b65724e756d6265724c696d697410101e0000000838204578706f72747320636f6e73749c204d61782073696d756c74616e656f75732061637469766520776f726b6572206e756d6265722e5c4d696e556e7374616b696e67506572696f644c696d69741010005e1a0004ac20446566696e6573206d696e20756e7374616b696e6720706572696f6420696e207468652067726f75702e5c4d696e696d756d4170706c69636174696f6e5374616b6518404835261a08030000000000000000000004d4204d696e696d756d207374616b6520726571756972656420666f72206170706c79696e6720696e746f20616e206f70656e696e672e484c65616465724f70656e696e675374616b651840680abf82280f00000000000000000000048c205374616b65206e656564656420746f2063726561746520616e206f70656e696e672e30526577617264506572696f6410108a51010004d420446566696e65732074686520706572696f6420657665727920776f726b65722067657473207061696420696e20626c6f636b732e505374616b696e6748616e646c65724c6f636b496425042077672d666f72756d0464205374616b696e672068616e646c6572206c6f636b2069642e01a509204c53746f72616765576f726b696e6747726f75700154496e7374616e636532576f726b696e6747726f757028344e6578744f70656e696e67496401002820000000000000000004ac204e657874206964656e7469666965722076616c756520666f72206e6577206a6f62206f70656e696e672e2c4f70656e696e674279496401010402289909290101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000480204d617073206964656e74696669657220746f206a6f62206f70656e696e672e44416374697665576f726b6572436f756e740100101000000000046420436f756e74206f662061637469766520776f726b6572732e3c4170706c69636174696f6e4279496400010402289d09040004c8204d617073206964656e74696669657220746f20776f726b6572206170706c69636174696f6e206f6e206f70656e696e672e444e6578744170706c69636174696f6e496401002820000000000000000004c8204e657874206964656e7469666965722076616c756520666f72206e657720776f726b6572206170706c69636174696f6e2e304e657874576f726b657249640100282000000000000000000488204e657874206964656e74696669657220666f722061206e657720776f726b65722e28576f726b6572427949640001040228a109040004a4204d617073206964656e74696669657220746f20636f72726573706f6e64696e6720776f726b65722e2c43757272656e744c656164000028040004502043757272656e742067726f7570206c6561642e18427564676574010018400000000000000000000000000000000004782042756467657420666f722074686520776f726b696e672067726f75702e38537461747573546578744861736801002c800000000000000000000000000000000000000000000000000000000000000000044820537461747573207465787420686173682e01710601910318504d6178576f726b65724e756d6265724c696d697410101e0000000838204578706f72747320636f6e73749c204d61782073696d756c74616e656f75732061637469766520776f726b6572206e756d6265722e5c4d696e556e7374616b696e67506572696f644c696d69741010005e1a0004ac20446566696e6573206d696e20756e7374616b696e6720706572696f6420696e207468652067726f75702e5c4d696e696d756d4170706c69636174696f6e5374616b6518404835261a08030000000000000000000004d4204d696e696d756d207374616b6520726571756972656420666f72206170706c79696e6720696e746f20616e206f70656e696e672e484c65616465724f70656e696e675374616b651840680abf82280f00000000000000000000048c205374616b65206e656564656420746f2063726561746520616e206f70656e696e672e30526577617264506572696f6410109451010004d420446566696e65732074686520706572696f6420657665727920776f726b65722067657473207061696420696e20626c6f636b732e505374616b696e6748616e646c65724c6f636b496425042077672d73746f72670464205374616b696e672068616e646c6572206c6f636b2069642e01a909214c436f6e74656e74576f726b696e6747726f75700154496e7374616e636533576f726b696e6747726f757028344e6578744f70656e696e67496401002820000000000000000004ac204e657874206964656e7469666965722076616c756520666f72206e6577206a6f62206f70656e696e672e2c4f70656e696e674279496401010402289909290101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000480204d617073206964656e74696669657220746f206a6f62206f70656e696e672e44416374697665576f726b6572436f756e740100101000000000046420436f756e74206f662061637469766520776f726b6572732e3c4170706c69636174696f6e4279496400010402289d09040004c8204d617073206964656e74696669657220746f20776f726b6572206170706c69636174696f6e206f6e206f70656e696e672e444e6578744170706c69636174696f6e496401002820000000000000000004c8204e657874206964656e7469666965722076616c756520666f72206e657720776f726b6572206170706c69636174696f6e2e304e657874576f726b657249640100282000000000000000000488204e657874206964656e74696669657220666f722061206e657720776f726b65722e28576f726b6572427949640001040228a109040004a4204d617073206964656e74696669657220746f20636f72726573706f6e64696e6720776f726b65722e2c43757272656e744c656164000028040004502043757272656e742067726f7570206c6561642e18427564676574010018400000000000000000000000000000000004782042756467657420666f722074686520776f726b696e672067726f75702e38537461747573546578744861736801002c800000000000000000000000000000000000000000000000000000000000000000044820537461747573207465787420686173682e01750601990318504d6178576f726b65724e756d6265724c696d697410101e0000000838204578706f72747320636f6e73749c204d61782073696d756c74616e656f75732061637469766520776f726b6572206e756d6265722e5c4d696e556e7374616b696e67506572696f644c696d69741010005e1a0004ac20446566696e6573206d696e20756e7374616b696e6720706572696f6420696e207468652067726f75702e5c4d696e696d756d4170706c69636174696f6e5374616b6518404835261a08030000000000000000000004d4204d696e696d756d207374616b6520726571756972656420666f72206170706c79696e6720696e746f20616e206f70656e696e672e484c65616465724f70656e696e675374616b651840680abf82280f00000000000000000000048c205374616b65206e656564656420746f2063726561746520616e206f70656e696e672e30526577617264506572696f6410109e51010004d420446566696e65732074686520706572696f6420657665727920776f726b65722067657473207061696420696e20626c6f636b732e505374616b696e6748616e646c65724c6f636b496425042077672d636f6e74740464205374616b696e672068616e646c6572206c6f636b2069642e01ad09226c4f7065726174696f6e73576f726b696e6747726f7570416c7068610154496e7374616e636534576f726b696e6747726f757028344e6578744f70656e696e67496401002820000000000000000004ac204e657874206964656e7469666965722076616c756520666f72206e6577206a6f62206f70656e696e672e2c4f70656e696e674279496401010402289909290101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000480204d617073206964656e74696669657220746f206a6f62206f70656e696e672e44416374697665576f726b6572436f756e740100101000000000046420436f756e74206f662061637469766520776f726b6572732e3c4170706c69636174696f6e4279496400010402289d09040004c8204d617073206964656e74696669657220746f20776f726b6572206170706c69636174696f6e206f6e206f70656e696e672e444e6578744170706c69636174696f6e496401002820000000000000000004c8204e657874206964656e7469666965722076616c756520666f72206e657720776f726b6572206170706c69636174696f6e2e304e657874576f726b657249640100282000000000000000000488204e657874206964656e74696669657220666f722061206e657720776f726b65722e28576f726b6572427949640001040228a109040004a4204d617073206964656e74696669657220746f20636f72726573706f6e64696e6720776f726b65722e2c43757272656e744c656164000028040004502043757272656e742067726f7570206c6561642e18427564676574010018400000000000000000000000000000000004782042756467657420666f722074686520776f726b696e672067726f75702e38537461747573546578744861736801002c800000000000000000000000000000000000000000000000000000000000000000044820537461747573207465787420686173682e01790601a10318504d6178576f726b65724e756d6265724c696d697410101e0000000838204578706f72747320636f6e73749c204d61782073696d756c74616e656f75732061637469766520776f726b6572206e756d6265722e5c4d696e556e7374616b696e67506572696f644c696d69741010005e1a0004ac20446566696e6573206d696e20756e7374616b696e6720706572696f6420696e207468652067726f75702e5c4d696e696d756d4170706c69636174696f6e5374616b6518404835261a08030000000000000000000004d4204d696e696d756d207374616b6520726571756972656420666f72206170706c79696e6720696e746f20616e206f70656e696e672e484c65616465724f70656e696e675374616b651840680abf82280f00000000000000000000048c205374616b65206e656564656420746f2063726561746520616e206f70656e696e672e30526577617264506572696f641010bc51010004d420446566696e65732074686520706572696f6420657665727920776f726b65722067657473207061696420696e20626c6f636b732e505374616b696e6748616e646c65724c6f636b496425042077672d6f706572610464205374616b696e672068616e646c6572206c6f636b2069642e01b109233c417070576f726b696e6747726f75700154496e7374616e636535576f726b696e6747726f757028344e6578744f70656e696e67496401002820000000000000000004ac204e657874206964656e7469666965722076616c756520666f72206e6577206a6f62206f70656e696e672e2c4f70656e696e674279496401010402289909290101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000480204d617073206964656e74696669657220746f206a6f62206f70656e696e672e44416374697665576f726b6572436f756e740100101000000000046420436f756e74206f662061637469766520776f726b6572732e3c4170706c69636174696f6e4279496400010402289d09040004c8204d617073206964656e74696669657220746f20776f726b6572206170706c69636174696f6e206f6e206f70656e696e672e444e6578744170706c69636174696f6e496401002820000000000000000004c8204e657874206964656e7469666965722076616c756520666f72206e657720776f726b6572206170706c69636174696f6e2e304e657874576f726b657249640100282000000000000000000488204e657874206964656e74696669657220666f722061206e657720776f726b65722e28576f726b6572427949640001040228a109040004a4204d617073206964656e74696669657220746f20636f72726573706f6e64696e6720776f726b65722e2c43757272656e744c656164000028040004502043757272656e742067726f7570206c6561642e18427564676574010018400000000000000000000000000000000004782042756467657420666f722074686520776f726b696e672067726f75702e38537461747573546578744861736801002c800000000000000000000000000000000000000000000000000000000000000000044820537461747573207465787420686173682e017d0601a90318504d6178576f726b65724e756d6265724c696d697410101e0000000838204578706f72747320636f6e73749c204d61782073696d756c74616e656f75732061637469766520776f726b6572206e756d6265722e5c4d696e556e7374616b696e67506572696f644c696d69741010005e1a0004ac20446566696e6573206d696e20756e7374616b696e6720706572696f6420696e207468652067726f75702e5c4d696e696d756d4170706c69636174696f6e5374616b6518404835261a08030000000000000000000004d4204d696e696d756d207374616b6520726571756972656420666f72206170706c79696e6720696e746f20616e206f70656e696e672e484c65616465724f70656e696e675374616b651840680abf82280f00000000000000000000048c205374616b65206e656564656420746f2063726561746520616e206f70656e696e672e30526577617264506572696f641010b251010004d420446566696e65732074686520706572696f6420657665727920776f726b65722067657473207061696420696e20626c6f636b732e505374616b696e6748616e646c65724c6f636b496425042077672d6170706c690464205374616b696e672068616e646c6572206c6f636b2069642e01b50924584d656d62657273686970576f726b696e6747726f75700154496e7374616e636536576f726b696e6747726f757028344e6578744f70656e696e67496401002820000000000000000004ac204e657874206964656e7469666965722076616c756520666f72206e6577206a6f62206f70656e696e672e2c4f70656e696e674279496401010402289909290101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000480204d617073206964656e74696669657220746f206a6f62206f70656e696e672e44416374697665576f726b6572436f756e740100101000000000046420436f756e74206f662061637469766520776f726b6572732e3c4170706c69636174696f6e4279496400010402289d09040004c8204d617073206964656e74696669657220746f20776f726b6572206170706c69636174696f6e206f6e206f70656e696e672e444e6578744170706c69636174696f6e496401002820000000000000000004c8204e657874206964656e7469666965722076616c756520666f72206e657720776f726b6572206170706c69636174696f6e2e304e657874576f726b657249640100282000000000000000000488204e657874206964656e74696669657220666f722061206e657720776f726b65722e28576f726b6572427949640001040228a109040004a4204d617073206964656e74696669657220746f20636f72726573706f6e64696e6720776f726b65722e2c43757272656e744c656164000028040004502043757272656e742067726f7570206c6561642e18427564676574010018400000000000000000000000000000000004782042756467657420666f722074686520776f726b696e672067726f75702e38537461747573546578744861736801002c800000000000000000000000000000000000000000000000000000000000000000044820537461747573207465787420686173682e01810601b10318504d6178576f726b65724e756d6265724c696d697410101e0000000838204578706f72747320636f6e73749c204d61782073696d756c74616e656f75732061637469766520776f726b6572206e756d6265722e5c4d696e556e7374616b696e67506572696f644c696d69741010005e1a0004ac20446566696e6573206d696e20756e7374616b696e6720706572696f6420696e207468652067726f75702e5c4d696e696d756d4170706c69636174696f6e5374616b6518404835261a08030000000000000000000004d4204d696e696d756d207374616b6520726571756972656420666f72206170706c79696e6720696e746f20616e206f70656e696e672e484c65616465724f70656e696e675374616b651840680abf82280f00000000000000000000048c205374616b65206e656564656420746f2063726561746520616e206f70656e696e672e30526577617264506572696f641010a851010004d420446566696e65732074686520706572696f6420657665727920776f726b65722067657473207061696420696e20626c6f636b732e505374616b696e6748616e646c65724c6f636b496425042077672d6d656d62720464205374616b696e672068616e646c6572206c6f636b2069642e01b90925684f7065726174696f6e73576f726b696e6747726f7570426574610154496e7374616e636537576f726b696e6747726f757028344e6578744f70656e696e67496401002820000000000000000004ac204e657874206964656e7469666965722076616c756520666f72206e6577206a6f62206f70656e696e672e2c4f70656e696e674279496401010402289909290101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000480204d617073206964656e74696669657220746f206a6f62206f70656e696e672e44416374697665576f726b6572436f756e740100101000000000046420436f756e74206f662061637469766520776f726b6572732e3c4170706c69636174696f6e4279496400010402289d09040004c8204d617073206964656e74696669657220746f20776f726b6572206170706c69636174696f6e206f6e206f70656e696e672e444e6578744170706c69636174696f6e496401002820000000000000000004c8204e657874206964656e7469666965722076616c756520666f72206e657720776f726b6572206170706c69636174696f6e2e304e657874576f726b657249640100282000000000000000000488204e657874206964656e74696669657220666f722061206e657720776f726b65722e28576f726b6572427949640001040228a109040004a4204d617073206964656e74696669657220746f20636f72726573706f6e64696e6720776f726b65722e2c43757272656e744c656164000028040004502043757272656e742067726f7570206c6561642e18427564676574010018400000000000000000000000000000000004782042756467657420666f722074686520776f726b696e672067726f75702e38537461747573546578744861736801002c800000000000000000000000000000000000000000000000000000000000000000044820537461747573207465787420686173682e01850601b90318504d6178576f726b65724e756d6265724c696d697410101e0000000838204578706f72747320636f6e73749c204d61782073696d756c74616e656f75732061637469766520776f726b6572206e756d6265722e5c4d696e556e7374616b696e67506572696f644c696d69741010005e1a0004ac20446566696e6573206d696e20756e7374616b696e6720706572696f6420696e207468652067726f75702e5c4d696e696d756d4170706c69636174696f6e5374616b6518404835261a08030000000000000000000004d4204d696e696d756d207374616b6520726571756972656420666f72206170706c79696e6720696e746f20616e206f70656e696e672e484c65616465724f70656e696e675374616b651840680abf82280f00000000000000000000048c205374616b65206e656564656420746f2063726561746520616e206f70656e696e672e30526577617264506572696f641010c651010004d420446566696e65732074686520706572696f6420657665727920776f726b65722067657473207061696420696e20626c6f636b732e505374616b696e6748616e646c65724c6f636b496425042077672d6f706572620464205374616b696e672068616e646c6572206c6f636b2069642e01bd09266c4f7065726174696f6e73576f726b696e6747726f757047616d6d610154496e7374616e636538576f726b696e6747726f757028344e6578744f70656e696e67496401002820000000000000000004ac204e657874206964656e7469666965722076616c756520666f72206e6577206a6f62206f70656e696e672e2c4f70656e696e674279496401010402289909290101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000480204d617073206964656e74696669657220746f206a6f62206f70656e696e672e44416374697665576f726b6572436f756e740100101000000000046420436f756e74206f662061637469766520776f726b6572732e3c4170706c69636174696f6e4279496400010402289d09040004c8204d617073206964656e74696669657220746f20776f726b6572206170706c69636174696f6e206f6e206f70656e696e672e444e6578744170706c69636174696f6e496401002820000000000000000004c8204e657874206964656e7469666965722076616c756520666f72206e657720776f726b6572206170706c69636174696f6e2e304e657874576f726b657249640100282000000000000000000488204e657874206964656e74696669657220666f722061206e657720776f726b65722e28576f726b6572427949640001040228a109040004a4204d617073206964656e74696669657220746f20636f72726573706f6e64696e6720776f726b65722e2c43757272656e744c656164000028040004502043757272656e742067726f7570206c6561642e18427564676574010018400000000000000000000000000000000004782042756467657420666f722074686520776f726b696e672067726f75702e38537461747573546578744861736801002c800000000000000000000000000000000000000000000000000000000000000000044820537461747573207465787420686173682e01890601c10318504d6178576f726b65724e756d6265724c696d697410101e0000000838204578706f72747320636f6e73749c204d61782073696d756c74616e656f75732061637469766520776f726b6572206e756d6265722e5c4d696e556e7374616b696e67506572696f644c696d69741010005e1a0004ac20446566696e6573206d696e20756e7374616b696e6720706572696f6420696e207468652067726f75702e5c4d696e696d756d4170706c69636174696f6e5374616b6518404835261a08030000000000000000000004d4204d696e696d756d207374616b6520726571756972656420666f72206170706c79696e6720696e746f20616e206f70656e696e672e484c65616465724f70656e696e675374616b651840680abf82280f00000000000000000000048c205374616b65206e656564656420746f2063726561746520616e206f70656e696e672e30526577617264506572696f641010d051010004d420446566696e65732074686520706572696f6420657665727920776f726b65722067657473207061696420696e20626c6f636b732e505374616b696e6748616e646c65724c6f636b496425042077672d6f706572670464205374616b696e672068616e646c6572206c6f636b2069642e01c1092760446973747269627574696f6e576f726b696e6747726f75700154496e7374616e636539576f726b696e6747726f757028344e6578744f70656e696e67496401002820000000000000000004ac204e657874206964656e7469666965722076616c756520666f72206e6577206a6f62206f70656e696e672e2c4f70656e696e674279496401010402289909290101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000480204d617073206964656e74696669657220746f206a6f62206f70656e696e672e44416374697665576f726b6572436f756e740100101000000000046420436f756e74206f662061637469766520776f726b6572732e3c4170706c69636174696f6e4279496400010402289d09040004c8204d617073206964656e74696669657220746f20776f726b6572206170706c69636174696f6e206f6e206f70656e696e672e444e6578744170706c69636174696f6e496401002820000000000000000004c8204e657874206964656e7469666965722076616c756520666f72206e657720776f726b6572206170706c69636174696f6e2e304e657874576f726b657249640100282000000000000000000488204e657874206964656e74696669657220666f722061206e657720776f726b65722e28576f726b6572427949640001040228a109040004a4204d617073206964656e74696669657220746f20636f72726573706f6e64696e6720776f726b65722e2c43757272656e744c656164000028040004502043757272656e742067726f7570206c6561642e18427564676574010018400000000000000000000000000000000004782042756467657420666f722074686520776f726b696e672067726f75702e38537461747573546578744861736801002c800000000000000000000000000000000000000000000000000000000000000000044820537461747573207465787420686173682e018d0601c90318504d6178576f726b65724e756d6265724c696d697410101e0000000838204578706f72747320636f6e73749c204d61782073696d756c74616e656f75732061637469766520776f726b6572206e756d6265722e5c4d696e556e7374616b696e67506572696f644c696d69741010005e1a0004ac20446566696e6573206d696e20756e7374616b696e6720706572696f6420696e207468652067726f75702e5c4d696e696d756d4170706c69636174696f6e5374616b6518404835261a08030000000000000000000004d4204d696e696d756d207374616b6520726571756972656420666f72206170706c79696e6720696e746f20616e206f70656e696e672e484c65616465724f70656e696e675374616b651840680abf82280f00000000000000000000048c205374616b65206e656564656420746f2063726561746520616e206f70656e696e672e30526577617264506572696f641010da51010004d420446566696e65732074686520706572696f6420657665727920776f726b65722067657473207061696420696e20626c6f636b732e505374616b696e6748616e646c65724c6f636b496425042077672d64697374720464205374616b696e672068616e646c6572206c6f636b2069642e01c50928c909042048436865636b4e6f6e5a65726f53656e646572dd097c40436865636b5370656356657273696f6ee1091038436865636b547856657273696f6ee5091030436865636b47656e65736973e9092c38436865636b4d6f7274616c697479ed092c28436865636b4e6f6e6365f5097c2c436865636b576569676874f9097c604368617267655472616e73616374696f6e5061796d656e74fd097c010a","id":"1"} \ No newline at end of file +{"jsonrpc":"2.0","result":"0x6d6574610e050a000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f0814496e64657801102c4163636f756e74446174610114001401146e6f6e6365100114496e646578000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e7444617461000010000005050014083c70616c6c65745f62616c616e6365732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500012c6d6973635f66726f7a656e18011c42616c616e63650001286665655f66726f7a656e18011c42616c616e636500001800000507001c0c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540120000c01186e6f726d616c2001045400012c6f7065726174696f6e616c200104540001246d616e6461746f7279200104540000200c2873705f77656967687473247765696768745f76321857656967687400000801207265665f74696d6524010c75363400012870726f6f665f73697a6524010c75363400002400000628002800000506002c083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d000030000002080034102873705f72756e74696d651c67656e65726963186469676573741844696765737400000401106c6f677338013c5665633c4469676573744974656d3e0000380000023c003c102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0001142850726552756e74696d650800400144436f6e73656e737573456e67696e654964000030011c5665633c75383e00060024436f6e73656e7375730800400144436f6e73656e737573456e67696e654964000030011c5665633c75383e000400105365616c0800400144436f6e73656e737573456e67696e654964000030011c5665633c75383e000500144f74686572040030011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e745570646174656400080000400000030400000008004400000248004808306672616d655f73797374656d2c4576656e745265636f7264080445014c0454012c000c01147068617365d103011450686173650001146576656e744c010445000118746f70696373d50301185665633c543e00004c08586a6f7973747265616d5f6e6f64655f72756e74696d653052756e74696d654576656e7400018c1853797374656d04005001706672616d655f73797374656d3a3a4576656e743c52756e74696d653e0000001c5574696c69747904007401607375627374726174655f7574696c6974793a3a4576656e740001002042616c616e636573040080017c70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e000500485472616e73616374696f6e5061796d656e7404008801a870616c6c65745f7472616e73616374696f6e5f7061796d656e743a3a4576656e743c52756e74696d653e00060068456c656374696f6e50726f76696465724d756c7469506861736504008c01d070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173653a3a4576656e743c52756e74696d653e0007001c5374616b696e670400a8017870616c6c65745f7374616b696e673a3a4576656e743c52756e74696d653e0008001c53657373696f6e0400bc015470616c6c65745f73657373696f6e3a3a4576656e740009001c4772616e6470610400c0015470616c6c65745f6772616e6470613a3a4576656e74000b0020496d4f6e6c696e650400d4018070616c6c65745f696d5f6f6e6c696e653a3a4576656e743c52756e74696d653e000d00204f6666656e6365730400f8015870616c6c65745f6f6666656e6365733a3a4576656e74000e0020426167734c69737404000101018070616c6c65745f626167735f6c6973743a3a4576656e743c52756e74696d653e0010001c56657374696e6704000501017870616c6c65745f76657374696e673a3a4576656e743c52756e74696d653e001100204d756c746973696704000901017c70616c6c65745f6d756c74697369673a3a4576656e743c52756e74696d653e0012001c436f756e63696c04001101015c636f756e63696c3a3a4576656e743c52756e74696d653e001300285265666572656e64756d0400190101c47265666572656e64756d3a3a4576656e743c52756e74696d652c207265666572656e64756d3a3a496e7374616e6365313e0014001c4d656d626572730400290101686d656d626572736869703a3a4576656e743c52756e74696d653e00150014466f72756d040051010154666f72756d3a3a4576656e743c52756e74696d653e00160030436f6e737469747574696f6e04006d01018c70616c6c65745f636f6e737469747574696f6e3a3a4576656e743c52756e74696d653e00170018426f756e7479040071010158626f756e74793a3a4576656e743c52756e74696d653e001800404a6f7973747265616d5574696c6974790400950101846a6f7973747265616d5f7574696c6974793a3a4576656e743c52756e74696d653e0019001c436f6e74656e740400a101015c636f6e74656e743a3a4576656e743c52756e74696d653e001a001c53746f7261676504008d02015c73746f726167653a3a4576656e743c52756e74696d653e001b003050726f6a656374546f6b656e0400c102017470726f6a6563745f746f6b656e3a3a4576656e743c52756e74696d653e001c003c50726f706f73616c73456e67696e6504002903018070726f706f73616c735f656e67696e653a3a4576656e743c52756e74696d653e001d004c50726f706f73616c7344697363757373696f6e04004103019070726f706f73616c735f64697363757373696f6e3a3a4576656e743c52756e74696d653e001e003850726f706f73616c73436f64657804004903017c70726f706f73616c735f636f6465783a3a4576656e743c52756e74696d653e001f0044466f72756d576f726b696e6747726f757004006d0301dc776f726b696e675f67726f75703a3a4576656e743c52756e74696d652c20776f726b696e675f67726f75703a3a496e7374616e6365313e0020004c53746f72616765576f726b696e6747726f75700400910301dc776f726b696e675f67726f75703a3a4576656e743c52756e74696d652c20776f726b696e675f67726f75703a3a496e7374616e6365323e0021004c436f6e74656e74576f726b696e6747726f75700400990301dc776f726b696e675f67726f75703a3a4576656e743c52756e74696d652c20776f726b696e675f67726f75703a3a496e7374616e6365333e0022006c4f7065726174696f6e73576f726b696e6747726f7570416c7068610400a10301dc776f726b696e675f67726f75703a3a4576656e743c52756e74696d652c20776f726b696e675f67726f75703a3a496e7374616e6365343e0023003c417070576f726b696e6747726f75700400a90301dc776f726b696e675f67726f75703a3a4576656e743c52756e74696d652c20776f726b696e675f67726f75703a3a496e7374616e6365353e002400584d656d62657273686970576f726b696e6747726f75700400b10301dc776f726b696e675f67726f75703a3a4576656e743c52756e74696d652c20776f726b696e675f67726f75703a3a496e7374616e6365363e002500684f7065726174696f6e73576f726b696e6747726f7570426574610400b90301dc776f726b696e675f67726f75703a3a4576656e743c52756e74696d652c20776f726b696e675f67726f75703a3a496e7374616e6365373e0026006c4f7065726174696f6e73576f726b696e6747726f757047616d6d610400c10301dc776f726b696e675f67726f75703a3a4576656e743c52756e74696d652c20776f726b696e675f67726f75703a3a496e7374616e6365383e00270060446973747269627574696f6e576f726b696e6747726f75700400c90301dc776f726b696e675f67726f75703a3a4576656e743c52756e74696d652c20776f726b696e675f67726f75703a3a496e7374616e6365393e00280000500c306672616d655f73797374656d1870616c6c6574144576656e740404540001184045787472696e7369635375636365737304013464697370617463685f696e666f5401304469737061746368496e666f00000490416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656408013864697370617463685f6572726f7260013444697370617463684572726f7200013464697370617463685f696e666f5401304469737061746368496e666f00010450416e2065787472696e736963206661696c65642e2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e7404011c6163636f756e74000130543a3a4163636f756e7449640003046841206e6577206163636f756e742077617320637265617465642e344b696c6c65644163636f756e7404011c6163636f756e74000130543a3a4163636f756e74496400040458416e206163636f756e7420776173207265617065642e2052656d61726b656408011873656e646572000130543a3a4163636f756e744964000110686173682c011c543a3a48617368000504704f6e206f6e2d636861696e2072656d61726b2068617070656e65642e04704576656e7420666f72207468652053797374656d2070616c6c65742e540c346672616d655f737570706f7274206469737061746368304469737061746368496e666f00000c0118776569676874200118576569676874000114636c6173735801344469737061746368436c617373000120706179735f6665655c0110506179730000580c346672616d655f737570706f7274206469737061746368344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f7279000200005c0c346672616d655f737570706f727420646973706174636810506179730001080c596573000000084e6f0001000060082873705f72756e74696d653444697370617463684572726f72000134144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c65040064012c4d6f64756c654572726f7200030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050040546f6f4d616e79436f6e73756d65727300060014546f6b656e0400680128546f6b656e4572726f720007002841726974686d6574696304006c013c41726974686d657469634572726f72000800345472616e73616374696f6e616c04007001485472616e73616374696f6e616c4572726f7200090024457868617573746564000a0028436f7272757074696f6e000b002c556e617661696c61626c65000c000064082873705f72756e74696d652c4d6f64756c654572726f720000080114696e64657808010875380001146572726f7240018c5b75383b204d41585f4d4f44554c455f4552524f525f454e434f4445445f53495a455d000068082873705f72756e74696d6528546f6b656e4572726f7200011c1c4e6f46756e647300000020576f756c644469650001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f72746564000600006c083473705f61726974686d657469633c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f0002000070082873705f72756e74696d65485472616e73616374696f6e616c4572726f72000108304c696d6974526561636865640000001c4e6f4c6179657200010000740c3870616c6c65745f7574696c6974791870616c6c6574144576656e74000118404261746368496e746572727570746564080114696e64657810010c7533320001146572726f7260013444697370617463684572726f7200000855014261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c2061734877656c6c20617320746865206572726f722e384261746368436f6d706c65746564000104c84261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e604261746368436f6d706c65746564576974684572726f7273000204b44261746368206f66206469737061746368657320636f6d706c657465642062757420686173206572726f72732e344974656d436f6d706c657465640003041d01412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206e6f206572726f722e284974656d4661696c65640401146572726f7260013444697370617463684572726f720004041101412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206572726f722e30446973706174636865644173040118726573756c747801384469737061746368526573756c7400050458412063616c6c2077617320646973706174636865642e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a090909780418526573756c74080454017c044501600108084f6b04007c000000000c45727204006000000100007c0000040000800c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001281c456e646f77656408011c6163636f756e74000130543a3a4163636f756e744964000130667265655f62616c616e6365180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f737408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742c78726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e736665720c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2842616c616e63655365740c010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e63650001207265736572766564180128543a3a42616c616e636500030468412062616c616e6365207761732073657420627920726f6f742e20526573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e726573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000504e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656410011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014864657374696e6174696f6e5f7374617475738401185374617475730006084d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652e1c4465706f73697408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000704d8536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e20576974686472617708010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008041d01536f6d6520616d6f756e74207761732077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650009040101536f6d6520616d6f756e74207761732072656d6f7665642066726f6d20746865206163636f756e742028652e672e20666f72206d69736265686176696f72292e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a0909098414346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e6365537461747573000108104672656500000020526573657276656400010000880c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741870616c6c6574144576656e74040454000104485472616e73616374696f6e466565506169640c010c77686f000130543a3a4163636f756e74496400012861637475616c5f66656518013042616c616e63654f663c543e00010c74697018013042616c616e63654f663c543e000008590141207472616e73616374696f6e20666565206061637475616c5f666565602c206f662077686963682060746970602077617320616464656420746f20746865206d696e696d756d20696e636c7573696f6e206665652c5c686173206265656e2070616964206279206077686f602e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a0909098c0c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173651870616c6c6574144576656e7404045400011838536f6c7574696f6e53746f7265640c011c636f6d7075746590013c456c656374696f6e436f6d707574650001186f726967696e9401504f7074696f6e3c543a3a4163636f756e7449643e000130707265765f656a6563746564980110626f6f6c00001cb44120736f6c7574696f6e207761732073746f72656420776974682074686520676976656e20636f6d707574652e00510154686520606f726967696e6020696e6469636174657320746865206f726967696e206f662074686520736f6c7574696f6e2e20496620606f726967696e602069732060536f6d65284163636f756e74496429602c55017468652073746f72656420736f6c7574696f6e20776173207375626d6974656420696e20746865207369676e65642070686173652062792061206d696e657220776974682074686520604163636f756e744964602e25014f74686572776973652c2074686520736f6c7574696f6e207761732073746f7265642065697468657220647572696e672074686520756e7369676e6564207068617365206f722062794d0160543a3a466f7263654f726967696e602e205468652060626f6f6c6020697320607472756560207768656e20612070726576696f757320736f6c7574696f6e2077617320656a656374656420746f206d616b6548726f6f6d20666f722074686973206f6e652e44456c656374696f6e46696e616c697a656408011c636f6d7075746590013c456c656374696f6e436f6d7075746500011473636f72659c0134456c656374696f6e53636f7265000104190154686520656c656374696f6e20686173206265656e2066696e616c697a65642c20776974682074686520676976656e20636f6d7075746174696f6e20616e642073636f72652e38456c656374696f6e4661696c656400020c4c416e20656c656374696f6e206661696c65642e0001014e6f74206d7563682063616e20626520736169642061626f757420776869636820636f6d7075746573206661696c656420696e207468652070726f636573732e20526577617264656408011c6163636f756e740001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e74496400011476616c756518013042616c616e63654f663c543e0003042501416e206163636f756e7420686173206265656e20726577617264656420666f72207468656972207369676e6564207375626d697373696f6e206265696e672066696e616c697a65642e1c536c617368656408011c6163636f756e740001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e74496400011476616c756518013042616c616e63654f663c543e0004042101416e206163636f756e7420686173206265656e20736c617368656420666f72207375626d697474696e6720616e20696e76616c6964207369676e6564207375626d697373696f6e2e4450686173655472616e736974696f6e65640c011066726f6da0015450686173653c543a3a426c6f636b4e756d6265723e000108746fa0015450686173653c543a3a426c6f636b4e756d6265723e000114726f756e6410010c753332000504b85468657265207761732061207068617365207472616e736974696f6e20696e206120676976656e20726f756e642e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a09090990089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173653c456c656374696f6e436f6d707574650001141c4f6e436861696e000000185369676e656400010020556e7369676e65640002002046616c6c6261636b00030024456d657267656e6379000400009404184f7074696f6e04045401000108104e6f6e6500000010536f6d6504000000000100009800000500009c084473705f6e706f735f656c656374696f6e7334456c656374696f6e53636f726500000c01346d696e696d616c5f7374616b6518013c457874656e64656442616c616e636500012473756d5f7374616b6518013c457874656e64656442616c616e636500014473756d5f7374616b655f7371756172656418013c457874656e64656442616c616e63650000a0089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173651450686173650408426e011001100c4f6666000000185369676e656400010020556e7369676e65640400a4012828626f6f6c2c20426e2900020024456d657267656e637900030000a400000408981000a8103870616c6c65745f7374616b696e671870616c6c65741870616c6c6574144576656e7404045400013c1c457261506169640c01246572615f696e646578100120457261496e64657800014076616c696461746f725f7061796f757418013042616c616e63654f663c543e00012472656d61696e64657218013042616c616e63654f663c543e000008550154686520657261207061796f757420686173206265656e207365743b207468652066697273742062616c616e6365206973207468652076616c696461746f722d7061796f75743b20746865207365636f6e64206973c07468652072656d61696e6465722066726f6d20746865206d6178696d756d20616d6f756e74206f66207265776172642e2052657761726465640801147374617368000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000104bc546865206e6f6d696e61746f7220686173206265656e207265776172646564206279207468697320616d6f756e742e1c536c61736865640801187374616b6572000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e0002041d0141207374616b6572202876616c696461746f72206f72206e6f6d696e61746f722920686173206265656e20736c61736865642062792074686520676976656e20616d6f756e742e34536c6173685265706f727465640c012476616c696461746f72000130543a3a4163636f756e7449640001206672616374696f6eac011c50657262696c6c000124736c6173685f657261100120457261496e64657800030859014120736c61736820666f722074686520676976656e2076616c696461746f722c20666f722074686520676976656e2070657263656e74616765206f66207468656972207374616b652c2061742074686520676976656e54657261206173206265656e207265706f727465642e684f6c64536c617368696e675265706f727444697363617264656404013473657373696f6e5f696e64657810013053657373696f6e496e6465780004081901416e206f6c6420736c617368696e67207265706f72742066726f6d2061207072696f72206572612077617320646973636172646564206265636175736520697420636f756c64446e6f742062652070726f6365737365642e385374616b657273456c65637465640005048441206e657720736574206f66207374616b6572732077617320656c65637465642e18426f6e6465640801147374617368000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000610d0416e206163636f756e742068617320626f6e646564207468697320616d6f756e742e205c5b73746173682c20616d6f756e745c5d004d014e4f54453a2054686973206576656e74206973206f6e6c7920656d6974746564207768656e2066756e64732061726520626f6e64656420766961206120646973706174636861626c652e204e6f7461626c792c210169742077696c6c206e6f7420626520656d697474656420666f72207374616b696e672072657761726473207768656e20746865792061726520616464656420746f207374616b652e20556e626f6e6465640801147374617368000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e00070490416e206163636f756e742068617320756e626f6e646564207468697320616d6f756e742e2457697468647261776e0801147374617368000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e0008085901416e206163636f756e74206861732063616c6c6564206077697468647261775f756e626f6e6465646020616e642072656d6f76656420756e626f6e64696e67206368756e6b7320776f727468206042616c616e6365606466726f6d2074686520756e6c6f636b696e672071756575652e184b69636b65640801246e6f6d696e61746f72000130543a3a4163636f756e7449640001147374617368000130543a3a4163636f756e744964000904b441206e6f6d696e61746f7220686173206265656e206b69636b65642066726f6d20612076616c696461746f722e545374616b696e67456c656374696f6e4661696c6564000a04ac54686520656c656374696f6e206661696c65642e204e6f206e65772065726120697320706c616e6e65642e1c4368696c6c65640401147374617368000130543a3a4163636f756e744964000b042101416e206163636f756e74206861732073746f707065642070617274696369706174696e672061732065697468657220612076616c696461746f72206f72206e6f6d696e61746f722e345061796f7574537461727465640801246572615f696e646578100120457261496e64657800013c76616c696461746f725f7374617368000130543a3a4163636f756e744964000c0498546865207374616b657273272072657761726473206172652067657474696e6720706169642e4456616c696461746f7250726566735365740801147374617368000130543a3a4163636f756e7449640001147072656673b0013856616c696461746f725072656673000d0498412076616c696461746f72206861732073657420746865697220707265666572656e6365732e20466f7263654572610401106d6f6465b8011c466f7263696e67000e047441206e657720666f72636520657261206d6f646520776173207365742e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a090909ac0c3473705f61726974686d65746963287065725f7468696e67731c50657262696c6c0000040010010c7533320000b0083870616c6c65745f7374616b696e673856616c696461746f7250726566730000080128636f6d6d697373696f6eb4011c50657262696c6c00011c626c6f636b6564980110626f6f6c0000b4000006ac00b8083870616c6c65745f7374616b696e671c466f7263696e67000110284e6f74466f7263696e6700000020466f7263654e657700010024466f7263654e6f6e650002002c466f726365416c7761797300030000bc0c3870616c6c65745f73657373696f6e1870616c6c6574144576656e74000104284e657753657373696f6e04013473657373696f6e5f696e64657810013053657373696f6e496e64657800000839014e65772073657373696f6e206861732068617070656e65642e204e6f746520746861742074686520617267756d656e74206973207468652073657373696f6e20696e6465782c206e6f74207468659c626c6f636b206e756d626572206173207468652074797065206d6967687420737567676573742e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a090909c00c3870616c6c65745f6772616e6470611870616c6c6574144576656e7400010c384e6577417574686f726974696573040134617574686f726974795f736574c40134417574686f726974794c6973740000048c4e657720617574686f726974792073657420686173206265656e206170706c6965642e185061757365640001049843757272656e7420617574686f726974792073657420686173206265656e207061757365642e1c526573756d65640002049c43757272656e7420617574686f726974792073657420686173206265656e20726573756d65642e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a090909c4000002c800c800000408cc2800cc0c4c73705f66696e616c6974795f6772616e6470610c617070185075626c696300000400d0013c656432353531393a3a5075626c69630000d00c1c73705f636f72651c65643235353139185075626c6963000004000401205b75383b2033325d0000d40c4070616c6c65745f696d5f6f6e6c696e651870616c6c6574144576656e7404045400010c444865617274626561745265636569766564040130617574686f726974795f6964d80138543a3a417574686f726974794964000004c041206e657720686561727462656174207761732072656365697665642066726f6d2060417574686f726974794964602e1c416c6c476f6f64000104d041742074686520656e64206f66207468652073657373696f6e2c206e6f206f6666656e63652077617320636f6d6d69747465642e2c536f6d654f66666c696e6504011c6f66666c696e65e0016c5665633c4964656e74696669636174696f6e5475706c653c543e3e000204290141742074686520656e64206f66207468652073657373696f6e2c206174206c65617374206f6e652076616c696461746f722077617320666f756e6420746f206265206f66666c696e652e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a090909d8104070616c6c65745f696d5f6f6e6c696e651c737232353531392c6170705f73723235353139185075626c696300000400dc013c737232353531393a3a5075626c69630000dc0c1c73705f636f72651c73723235353139185075626c6963000004000401205b75383b2033325d0000e0000002e400e40000040800e800e8083870616c6c65745f7374616b696e67204578706f7375726508244163636f756e74496401001c42616c616e63650118000c0114746f74616cec011c42616c616e636500010c6f776eec011c42616c616e63650001186f7468657273f001ac5665633c496e646976696475616c4578706f737572653c4163636f756e7449642c2042616c616e63653e3e0000ec0000061800f0000002f400f4083870616c6c65745f7374616b696e6748496e646976696475616c4578706f7375726508244163636f756e74496401001c42616c616e636501180008010c77686f0001244163636f756e74496400011476616c7565ec011c42616c616e63650000f80c3c70616c6c65745f6f6666656e6365731870616c6c6574144576656e740001041c4f6666656e63650801106b696e64fc01104b696e6400012074696d65736c6f743001384f706171756554696d65536c6f7400000c5101546865726520697320616e206f6666656e6365207265706f72746564206f662074686520676976656e20606b696e64602068617070656e656420617420746865206073657373696f6e5f696e6465786020616e643501286b696e642d7370656369666963292074696d6520736c6f742e2054686973206576656e74206973206e6f74206465706f736974656420666f72206475706c696361746520736c61736865732e4c5c5b6b696e642c2074696d65736c6f745c5d2e04304576656e747320747970652efc00000310000000080001010c4070616c6c65745f626167735f6c6973741870616c6c6574144576656e740804540004490001082052656261676765640c010c77686f000130543a3a4163636f756e74496400011066726f6d280120543a3a53636f7265000108746f280120543a3a53636f7265000004a44d6f76656420616e206163636f756e742066726f6d206f6e652062616720746f20616e6f746865722e3053636f72655570646174656408010c77686f000130543a3a4163636f756e7449640001246e65775f73636f7265280120543a3a53636f7265000104d855706461746564207468652073636f7265206f6620736f6d65206163636f756e7420746f2074686520676976656e20616d6f756e742e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a09090905010c3870616c6c65745f76657374696e671870616c6c6574144576656e740404540001083856657374696e675570646174656408011c6163636f756e74000130543a3a4163636f756e744964000120756e76657374656418013042616c616e63654f663c543e000008510154686520616d6f756e742076657374656420686173206265656e20757064617465642e205468697320636f756c6420696e6469636174652061206368616e676520696e2066756e647320617661696c61626c652e25015468652062616c616e636520676976656e2069732074686520616d6f756e74207768696368206973206c65667420756e7665737465642028616e642074687573206c6f636b6564292e4056657374696e67436f6d706c6574656404011c6163636f756e74000130543a3a4163636f756e7449640001049c416e205c5b6163636f756e745c5d20686173206265636f6d652066756c6c79207665737465642e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a09090909010c3c70616c6c65745f6d756c74697369671870616c6c6574144576656e740404540001102c4e65774d756c74697369670c0124617070726f76696e67000130543a3a4163636f756e7449640001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c486173680000048c41206e6577206d756c7469736967206f7065726174696f6e2068617320626567756e2e404d756c7469736967417070726f76616c100124617070726f76696e67000130543a3a4163636f756e74496400012474696d65706f696e740d01016454696d65706f696e743c543a3a426c6f636b4e756d6265723e0001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c48617368000104c841206d756c7469736967206f7065726174696f6e20686173206265656e20617070726f76656420627920736f6d656f6e652e404d756c74697369674578656375746564140124617070726f76696e67000130543a3a4163636f756e74496400012474696d65706f696e740d01016454696d65706f696e743c543a3a426c6f636b4e756d6265723e0001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c48617368000118726573756c747801384469737061746368526573756c740002049c41206d756c7469736967206f7065726174696f6e20686173206265656e2065786563757465642e444d756c746973696743616e63656c6c656410012863616e63656c6c696e67000130543a3a4163636f756e74496400012474696d65706f696e740d01016454696d65706f696e743c543a3a426c6f636b4e756d6265723e0001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c48617368000304a041206d756c7469736967206f7065726174696f6e20686173206265656e2063616e63656c6c65642e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a0909090d01083c70616c6c65745f6d756c74697369672454696d65706f696e74042c426c6f636b4e756d62657201100008011868656967687410012c426c6f636b4e756d626572000114696e64657810010c75333200001101083870616c6c65745f636f756e63696c205261774576656e74101c42616c616e636501182c426c6f636b4e756d6265720110204d656d62657249640128244163636f756e7449640100014c5c416e6e6f756e63696e67506572696f6453746172746564040010012c426c6f636b4e756d6265720000045c4e657720636f756e63696c2077617320656c65637465644c4e6f74456e6f75676843616e64696461746573040010012c426c6f636b4e756d6265720001041d01416e6e6f756e63696e6720706572696f642063616e27742066696e6973682062656361757365206f6620696e73756666696369656e742063616e6469647461746520636f756e744c566f74696e67506572696f6453746172746564040010010c753332000204a843616e646964617465732061726520616e6e6f756e63656420616e6420766f74696e6720737461727473304e657743616e64696461746510002801204d656d626572496400000001244163636f756e74496400000001244163636f756e744964000018011c42616c616e63650003045c4e65772063616e64696461746520616e6e6f756e636564444e6577436f756e63696c456c65637465640800150101345665633c4d656d62657249643e000010012c426c6f636b4e756d626572000404944e657720636f756e63696c2077617320656c656374656420616e64206170706f696e746564504e6577436f756e63696c4e6f74456c6563746564040010012c426c6f636b4e756d6265720005046c4e657720636f756e63696c20776173206e6f7420656c65637465645443616e6469646163795374616b6552656c6561736504002801204d656d6265724964000604d843616e646964616379207374616b65207468617420776173206e6f206c6f6e676572206e6565646564207761732072656c65617365644443616e646964616379576974686472617704002801204d656d62657249640007049443616e646964617465206861732077697468647261776e206869732063616e6469646163794043616e6469646163794e6f746553657408002801204d656d6265724964000030011c5665633c75383e000804d05468652063616e64696461746520686173207365742061206e6577206e6f746520666f722074686569722063616e646964616379345265776172645061796d656e7410002801204d656d626572496400000001244163636f756e744964000018011c42616c616e6365000018011c42616c616e6365000904c05468652077686f6c652072657761726420776173207061696420746f2074686520636f756e63696c206d656d6265722e4042756467657442616c616e6365536574040018011c42616c616e6365000a049c4275646765742062616c616e636520776173206368616e6765642062792074686520726f6f742e30427564676574526566696c6c040018011c42616c616e6365000b04c44275646765742062616c616e63652077617320696e63726561736564206279206175746f6d6174696320726566696c6c2e4c427564676574526566696c6c506c616e6e6564040010012c426c6f636b4e756d626572000c048c546865206e6578742062756467657420726566696c6c2077617320706c616e6e65642e58427564676574496e6372656d656e7455706461746564040018011c42616c616e6365000d048842756467657420696e6372656d656e7420686173206265656e20757064617465642e58436f756e63696c6f7252657761726455706461746564040018011c42616c616e6365000e0488436f756e63696c6f722072657761726420686173206265656e20757064617465642e345265717565737446756e64656408000001244163636f756e744964000018011c42616c616e6365000f045c5265717565737420686173206265656e2066756e6465644c436f756e63696c42756467657446756e6465640c002801204d656d6265724964000018011c42616c616e6365000030011c5665633c75383e0010146046756e642074686520636f756e63696c206275646765742e1c506172616d733a2c2d204d656d6265722049444c2d20416d6f756e74206f662062616c616e63652c2d20526174696f6e616c6544436f756e63696c6f7252656d61726b656408002801204d656d6265724964000030011c5665633c75383e00110460436f756e63696c6f722072656d61726b206d6573736167654443616e64696461746552656d61726b656408002801204d656d6265724964000030011c5665633c75383e0012046043616e6469646174652072656d61726b206d657373616765085c4576656e747320666f722074686973206d6f64756c652e00150100000228001901084470616c6c65745f7265666572656e64756d205261774576656e741c2c426c6f636b4e756d62657201101c42616c616e636501181048617368012c244163636f756e744964010024566f7465506f7765720118204d656d626572496401280449011d010120445265666572656e64756d53746172746564080010010c753332000010012c426c6f636b4e756d626572000004485265666572656e64756d20737461727465646c5265666572656e64756d53746172746564466f72636566756c6c79080010010c753332000010012c426c6f636b4e756d626572000104485265666572656e64756d20737461727465645452657665616c696e67537461676553746172746564040010012c426c6f636b4e756d6265720002046452657665616c696e672070686173652068617320626567756e485265666572656e64756d46696e69736865640400210101985665633c4f7074696f6e526573756c743c4d656d62657249642c20566f7465506f7765723e3e000304c05265666572656e64756d20656e64656420616e642077696e6e696e67206f7074696f6e207761732073656c656374656420566f7465436173740c000001244163636f756e74496400002c011048617368000018011c42616c616e636500040478557365722063617374206120766f746520696e207265666572656e64756d30566f746552657665616c65640c000001244163636f756e74496400002801204d656d6265724964000030011c5665633c75383e00050458557365722072657665616c65642068697320766f7465345374616b6552656c656173656404000001244163636f756e7449640006045c557365722072656c656173656420686973207374616b655c4163636f756e744f707465644f75744f66566f74696e6704000001244163636f756e744964000704d84163636f756e74207065726d616e656e746c79206f70746564206f7574206f6620766f74696e6720696e207265666572656e64756d2e085c4576656e747320666f722074686973206d6f64756c652e001d01084470616c6c65745f7265666572656e64756d24496e7374616e6365310000000021010000022501002501084470616c6c65745f7265666572656e64756d304f7074696f6e526573756c7408204d656d6265724964012824566f7465506f7765720118000801246f7074696f6e5f69642801204d656d6265724964000128766f74655f706f776572180124566f7465506f77657200002901084470616c6c65745f6d656d62657273686970205261774576656e7420204d656d626572496401281c42616c616e63650118244163636f756e74496401005c4275794d656d62657273686970506172616d6574657273012d011c4163746f724964012868496e766974654d656d62657273686970506172616d6574657273013901584372656174654d656d626572506172616d6574657273013d0160476966744d656d62657273686970506172616d65746572730141010144344d656d626572496e76697465640c002801204d656d6265724964000039010168496e766974654d656d62657273686970506172616d6574657273000018011c42616c616e6365000000404d656d6265727368697047696674656408002801204d656d6265724964000041010160476966744d656d62657273686970506172616d6574657273000100404d656d62657273686970426f756768740c002801204d656d626572496400002d01015c4275794d656d62657273686970506172616d6574657273000010010c753332000200504d656d62657250726f66696c65557064617465640c002801204d656d626572496400003101013c4f7074696f6e3c5665633c75383e3e00003101013c4f7074696f6e3c5665633c75383e3e000300544d656d6265724163636f756e7473557064617465640c002801204d656d626572496400009401444f7074696f6e3c4163636f756e7449643e00009401444f7074696f6e3c4163636f756e7449643e0004007c4d656d626572566572696669636174696f6e537461747573557064617465640c002801204d656d62657249640000980110626f6f6c000028011c4163746f72496400050048526566657272616c437574557064617465640400080108753800060048496e76697465735472616e736665727265640c002801204d656d626572496400002801204d656d6265724964000010010c753332000700584d656d62657273686970507269636555706461746564040018011c42616c616e63650008007c496e697469616c496e7669746174696f6e42616c616e636555706461746564040018011c42616c616e6365000900704c6561646572496e7669746174696f6e51756f746155706461746564040010010c753332000a0074496e697469616c496e7669746174696f6e436f756e7455706461746564040010010c753332000b004c5374616b696e674163636f756e74416464656408000001244163636f756e74496400002801204d656d6265724964000c00545374616b696e674163636f756e7452656d6f76656408000001244163636f756e74496400002801204d656d6265724964000d005c5374616b696e674163636f756e74436f6e6669726d656408000001244163636f756e74496400002801204d656d6265724964000e00384d656d62657252656d61726b65640c002801204d656d6265724964000030011c5665633c75383e0000490101704f7074696f6e3c284163636f756e7449642c2042616c616e6365293e000f00344d656d626572437265617465640c002801204d656d626572496400003d0101584372656174654d656d626572506172616d6574657273000010010c753332001000085c4576656e747320666f722074686973206d6f64756c652e002d01084470616c6c65745f6d656d626572736869705c4275794d656d62657273686970506172616d657465727308244163636f756e7449640100204d656d6265724964012800140130726f6f745f6163636f756e740001244163636f756e744964000148636f6e74726f6c6c65725f6163636f756e740001244163636f756e74496400011868616e646c653101013c4f7074696f6e3c5665633c75383e3e0001206d6574616461746130011c5665633c75383e00012c72656665727265725f6964350101404f7074696f6e3c4d656d62657249643e0000310104184f7074696f6e04045401300108104e6f6e6500000010536f6d650400300000010000350104184f7074696f6e04045401280108104e6f6e6500000010536f6d6504002800000100003901084470616c6c65745f6d656d6265727368697068496e766974654d656d62657273686970506172616d657465727308244163636f756e7449640100204d656d6265724964012800140148696e766974696e675f6d656d6265725f69642801204d656d6265724964000130726f6f745f6163636f756e740001244163636f756e744964000148636f6e74726f6c6c65725f6163636f756e740001244163636f756e74496400011868616e646c653101013c4f7074696f6e3c5665633c75383e3e0001206d6574616461746130011c5665633c75383e00003d01084470616c6c65745f6d656d62657273686970584372656174654d656d626572506172616d657465727304244163636f756e744964010000140130726f6f745f6163636f756e740001244163636f756e744964000148636f6e74726f6c6c65725f6163636f756e740001244163636f756e74496400011868616e646c6530011c5665633c75383e0001206d6574616461746130011c5665633c75383e00014869735f666f756e64696e675f6d656d626572980110626f6f6c00004101084470616c6c65745f6d656d6265727368697060476966744d656d62657273686970506172616d657465727308244163636f756e74496401001c42616c616e6365011800200130726f6f745f6163636f756e740001244163636f756e744964000148636f6e74726f6c6c65725f6163636f756e740001244163636f756e74496400011868616e646c653101013c4f7074696f6e3c5665633c75383e3e0001206d6574616461746130011c5665633c75383e0001646372656469745f636f6e74726f6c6c65725f6163636f756e7418011c42616c616e63650001a06170706c795f636f6e74726f6c6c65725f6163636f756e745f696e7669746174696f6e5f6c6f636b4501013c4f7074696f6e3c42616c616e63653e00014c6372656469745f726f6f745f6163636f756e7418011c42616c616e63650001886170706c795f726f6f745f6163636f756e745f696e7669746174696f6e5f6c6f636b4501013c4f7074696f6e3c42616c616e63653e0000450104184f7074696f6e04045401180108104e6f6e6500000010536f6d650400180000010000490104184f7074696f6e040454014d010108104e6f6e6500000010536f6d6504004d0100000100004d01000004080018005101083070616c6c65745f666f72756d205261774576656e74202843617465676f7279496401282c4d6f64657261746f7249640128205468726561644964012818506f7374496401281048617368012c2c466f72756d55736572496401283c50726976696c656765644163746f7201550138457874656e646564506f7374496401590101443c43617465676f727943726561746564100028012843617465676f727949640000350101484f7074696f6e3c43617465676f727949643e000030011c5665633c75383e000030011c5665633c75383e00000464412063617465676f72792077617320696e74726f64756365647443617465676f7279417263686976616c537461747573557064617465640c0028012843617465676f727949640000980110626f6f6c00005501013c50726976696c656765644163746f72000108e0416e206172686963616c20737461747573206f662063617465676f7279207769746820676976656e2069642077617320757064617465642e1501546865207365636f6e6420617267756d656e74207265666c6563747320746865206e657720617263686976616c20737461747573206f66207468652063617465676f72792e5043617465676f72795469746c65557064617465640c0028012843617465676f7279496400002c01104861736800005501013c50726976696c656765644163746f72000208b841207469746c65206f662063617465676f7279207769746820676976656e2069642077617320757064617465642e0101546865207365636f6e6420617267756d656e74207265666c6563747320746865206e6577207469746c652068617368206f66207468652063617465676f72792e6843617465676f72794465736372697074696f6e557064617465640c0028012843617465676f7279496400002c01104861736800005501013c50726976696c656765644163746f72000308d041206469736372697074696f6e206f662063617465676f7279207769746820676976656e2069642077617320757064617465642e1901546865207365636f6e6420617267756d656e74207265666c6563747320746865206e6577206465736372697074696f6e2068617368206f66207468652063617465676f72792e3c43617465676f727944656c65746564080028012843617465676f7279496400005501013c50726976696c656765644163746f7200040458412063617465676f7279207761732064656c657465643454687265616443726561746564180028012843617465676f72794964000028012054687265616449640000280118506f73744964000028012c466f72756d557365724964000030011c5665633c75383e000030011c5665633c75383e0005088c4120746872656164207769746820676976656e2069642077617320637265617465642ef04120746869726420617267756d656e74207265666c656374732074686520696e697469616c20706f7374206964206f6620746865207468726561642e3c5468726561644d6f6465726174656410002801205468726561644964000030011c5665633c75383e00005501013c50726976696c656765644163746f72000028012843617465676f72794964000604944120746872656164207769746820676976656e20696420776173206d6f646572617465642e3454687265616455706461746564100028012054687265616449640000980110626f6f6c00005501013c50726976696c656765644163746f72000028012843617465676f727949640007088c4120746872656164207769746820676976656e2069642077617320757064617465642e0d01546865207365636f6e6420617267756d656e74207265666c6563747320746865206e657720617263686976616c20737461747573206f6620746865207468726561642e545468726561644d657461646174615570646174656410002801205468726561644964000028012c466f72756d557365724964000028012843617465676f72794964000030011c5665633c75383e0008049c4120746872656164206d6574616461746120676976656e2069642077617320757064617465642e3454687265616444656c6574656410002801205468726561644964000028012c466f72756d557365724964000028012843617465676f727949640000980110626f6f6c000904544120746872656164207761732064656c657465642e2c5468726561644d6f76656410002801205468726561644964000028012843617465676f7279496400005501013c50726976696c656765644163746f72000028012843617465676f72794964000a0488412074687265616420776173206d6f76656420746f206e65772063617465676f727924506f737441646465641800280118506f73744964000028012c466f72756d557365724964000028012843617465676f7279496400002801205468726561644964000030011c5665633c75383e0000980110626f6f6c000b047c506f7374207769746820676976656e2069642077617320637265617465642e34506f73744d6f646572617465641400280118506f73744964000030011c5665633c75383e00005501013c50726976696c656765644163746f72000028012843617465676f7279496400002801205468726561644964000c0484506f73742077697468206769766e6520696420776173206d6f646572617465642e2c506f737444656c657465640c0030011c5665633c75383e000028012c466f72756d55736572496400005d01017842547265654d61703c457874656e646564506f737449642c20626f6f6c3e000d047c506f73742077697468206769766e65206964207761732064656c657465642e3c506f737454657874557064617465641400280118506f73744964000028012c466f72756d557365724964000028012843617465676f7279496400002801205468726561644964000030011c5665633c75383e000e08a0506f7374207769746820676976656e2069642068616420697473207465787420757064617465642e4d01546865207365636f6e6420617267756d656e74207265666c6563747320746865206e756d626572206f6620746f74616c206564697473207768656e20746865207465787420757064617465206f63637572732e6843617465676f7279537469636b795468726561645570646174650c0028012843617465676f7279496400006901014842547265655365743c54687265616449643e00005501013c50726976696c656765644163746f72000f0488537469636b7920746872656164207570646174656420666f722063617465676f72799043617465676f72794d656d626572736869704f664d6f64657261746f72557064617465640c0028012c4d6f64657261746f724964000028012843617465676f727949640000980110626f6f6c0010042501416e206d6f64657261746f72206162696c69747920746f206d6f64657261746520612063617465676f727920616e64206974732073756263617465676f726965732075706461746564085c4576656e747320666f722074686973206d6f64756c652e005501083070616c6c65745f666f72756d3c50726976696c656765644163746f72040454000108104c656164000000244d6f64657261746f7204002801384d6f64657261746f7249643c543e000100005901083070616c6c65745f666f72756d50457874656e646564506f737449644f626a6563740c2843617465676f727949640128205468726561644964012818506f737449640128000c012c63617465676f72795f696428012843617465676f727949640001247468726561645f6964280120546872656164496400011c706f73745f6964280118506f7374496400005d01042042547265654d617008044b015901045601980004006101000000610100000265010065010000040859019800690104204254726565536574040454012800040015010000006d01084c70616c6c65745f636f6e737469747574696f6e205261774576656e74041048617368012c010444436f6e73747574696f6e416d656e64656408002c011048617368000030011c5665633c75383e00001080456d697473206f6e20636f6e737469747574696f6e20616d656e646d656e742e2c506172616d65746572733a602d20636f6e737469747574696f6e207465787420686173684c2d20636f6e737469747574696f6e2074657874085c4576656e747320666f722074686973206d6f64756c652e007101083470616c6c65745f626f756e7479205261774576656e741c20426f756e7479496401281c456e747279496401281c42616c616e63650118204d656d62657249640128244163636f756e744964010060426f756e74794372656174696f6e506172616d6574657273017501384f7261636c654a7564676d656e74018501015c34426f756e7479437265617465640c00280120426f756e74794964000075010160426f756e74794372656174696f6e506172616d6574657273000030011c5665633c75383e000014544120626f756e74792077617320637265617465642e1c506172616d733a2c2d20626f756e7479204944542d206372656174696f6e20706172616d6574657273442d20626f756e7479206d6574616461746150426f756e74794f7261636c6553776974636865641000280120426f756e74794964000079010154426f756e74794163746f723c4d656d62657249643e000079010154426f756e74794163746f723c4d656d62657249643e000079010154426f756e74794163746f723c4d656d62657249643e000118d0426f756e7479204f7261636c652053776974636865642062792063757272656e74206f7261636c65206f7220636f756e63696c2e1c506172616d733a2c2d20626f756e7479204944282d207377697463686572442d2063757272656e745f6f7261636c652c302d206e6577206f7261636c6540426f756e74795465726d696e617465641000280120426f756e74794964000079010154426f756e74794163746f723c4d656d62657249643e000079010154426f756e74794163746f723c4d656d62657249643e000079010154426f756e74794163746f723c4d656d62657249643e0002188c4120626f756e747920776173207465726d696e6174656420627920636f756e63696c2e1c506172616d733a2c2d20626f756e74792049444c2d20626f756e7479207465726d696e61746f72402d20626f756e74792063726561746f723c2d20626f756e7479206f7261636c6530426f756e747946756e6465640c00280120426f756e74794964000079010154426f756e74794163746f723c4d656d62657249643e000018011c42616c616e6365000314b44120626f756e7479207761732066756e6465642062792061206d656d626572206f72206120636f756e63696c2e1c506172616d733a2c2d20626f756e74792049443c2d20626f756e74792066756e646572402d2066756e64696e6720616d6f756e745c426f756e74794d617846756e64696e67526561636865640400280120426f756e7479496400040cbc4120626f756e747920686173207265616368656420697473207461726765742066756e64696e6720616d6f756e742e1c506172616d733a2c2d20626f756e74792049445c426f756e747946756e64696e675769746864726177616c0800280120426f756e74794964000079010154426f756e74794163746f723c4d656d62657249643e000510c041206d656d626572206f72206120636f756e63696c206861732077697468647261776e207468652066756e64696e672e1c506172616d733a2c2d20626f756e74792049443c2d20626f756e74792066756e64657274426f756e747943726561746f724368657272795769746864726177616c0800280120426f756e74794964000079010154426f756e74794163746f723c4d656d62657249643e000610f84120626f756e74792063726561746f72206861732077697468647261776e207468652063686572727920286d656d626572206f7220636f756e63696c292e1c506172616d733a2c2d20626f756e7479204944402d20626f756e74792063726561746f728c426f756e747943726561746f724f7261636c655265776172645769746864726177616c0800280120426f756e74794964000079010154426f756e74794163746f723c4d656d62657249643e00071015014120626f756e74792063726561746f72206861732077697468647261776e20746865206f7261636c652072657761726420286d656d626572206f7220636f756e63696c292e1c506172616d733a2c2d20626f756e7479204944402d20626f756e74792063726561746f7270426f756e74794f7261636c655265776172645769746864726177616c0c00280120426f756e74794964000079010154426f756e74794163746f723c4d656d62657249643e000018011c42616c616e6365000814f441204f7261636c65206861732077697468647261776e20746865206f7261636c652072657761726420286d656d626572206f7220636f756e63696c292e1c506172616d733a2c2d20626f756e7479204944402d20626f756e74792063726561746f723c2d204f7261636c652052657761726434426f756e747952656d6f7665640400280120426f756e7479496400090c544120626f756e7479207761732072656d6f7665642e1c506172616d733a2c2d20626f756e747920494448576f726b456e747279416e6e6f756e6365641400280120426f756e74794964000028011c456e747279496400002801204d656d626572496400000001244163636f756e744964000030011c5665633c75383e000a1c64576f726b20656e7472792077617320616e6e6f756e6365642e1c506172616d733a2c2d20626f756e7479204944482d206372656174656420656e7472792049444c2d20656e7472616e74206d656d626572204944502d207374616b696e67206163636f756e74204944482d20776f726b206465736372697074696f6e34576f726b5375626d69747465641000280120426f756e74794964000028011c456e747279496400002801204d656d6265724964000030011c5665633c75383e000b18305375626d697420776f726b2e1c506172616d733a2c2d20626f756e7479204944482d206372656174656420656e7472792049444c2d20656e7472616e74206d656d626572204944a82d20776f726b206461746120286465736372697074696f6e2c2055524c2c20424c4f422c206574632e295c4f7261636c654a7564676d656e745375626d69747465641000280120426f756e74794964000079010154426f756e74794163746f723c4d656d62657249643e0000850101384f7261636c654a7564676d656e74000030011c5665633c75383e000c185c5375626d6974206f7261636c65206a7564676d656e742e1c506172616d733a2c2d20626f756e7479204944202d206f7261636c653c2d206a7564676d656e7420646174612c2d20726174696f6e616c6564576f726b456e7472616e7446756e647357697468647261776e0c00280120426f756e74794964000028011c456e747279496400002801204d656d6265724964000d145c576f726b20656e7472792077617320736c61736865642e1c506172616d733a2c2d20626f756e7479204944282d20656e7472792049444c2d20656e7472616e74206d656d62657220494464426f756e7479436f6e7472696275746f7252656d61726b65640c0079010154426f756e74794163746f723c4d656d62657249643e0000280120426f756e74794964000030011c5665633c75383e000e14a0426f756e747920636f6e7472696275746f72206d6164652061206d6573736167652072656d61726b1c506172616d733a342d20636f6e7472696275746f722c2d20626f756e7479206964242d206d65737361676550426f756e74794f7261636c6552656d61726b65640c0079010154426f756e74794163746f723c4d656d62657249643e0000280120426f756e74794964000030011c5665633c75383e000f148c426f756e7479206f7261636c65206d6164652061206d6573736167652072656d61726b1c506172616d733a202d206f7261636c652c2d20626f756e7479206964242d206d65737361676554426f756e7479456e7472616e7452656d61726b656410002801204d656d62657249640000280120426f756e74794964000028011c456e7472794964000030011c5665633c75383e00101890426f756e747920656e7472616e74206d6164652061206d6573736167652072656d61726b1c506172616d733a302d20656e7472616e745f69642c2d20626f756e7479206964282d20656e747279206964242d206d65737361676554426f756e747943726561746f7252656d61726b65640c0079010154426f756e74794163746f723c4d656d62657249643e0000280120426f756e74794964000030011c5665633c75383e00111490426f756e74792063726561746f72206d6164652061206d6573736167652072656d61726b1c506172616d733a242d2063726561746f722c2d20626f756e7479206964242d206d65737361676564576f726b5375626d697373696f6e506572696f64456e6465640800280120426f756e74794964000079010154426f756e74794163746f723c4d656d62657249643e0012105c576f726b20656e7472792077617320736c61736865642e1c506172616d733a2c2d20626f756e7479204944442d206f7261636c65202863616c6c65722960576f726b456e7472616e745374616b65556e6c6f636b65640c00280120426f756e74794964000028011c456e747279496400000001244163636f756e74496400131468576f726b20656e747279207374616b6520756e6c6f636b65642e1c506172616d733a2c2d20626f756e7479204944282d20656e7472792049443c2d207374616b65206163636f756e745c576f726b456e7472616e745374616b65536c61736865641000280120426f756e74794964000028011c456e747279496400000001244163636f756e744964000018011c42616c616e636500141864576f726b20656e747279207374616b6520736c61736865642e1c506172616d733a2c2d20626f756e7479204944282d20656e7472792049443c2d207374616b65206163636f756e74402d20736c617368656420616d6f756e747446756e6465725374617465426c6f6174426f6e6457697468647261776e0c00280120426f756e74794964000079010154426f756e74794163746f723c4d656d62657249643e000018011c42616c616e63650015141d0141206d656d626572206f72206120636f756e63696c2066756e646572206861732077697468647261776e207468652066756e64657220737461746520626c6f617420626f6e642e1c506172616d733a2c2d20626f756e74792049443c2d20626f756e74792066756e646572802d2066756e64657220537461746520626c6f617420626f6e6420616d6f756e747843726561746f725374617465426c6f6174426f6e6457697468647261776e0c00280120426f756e74794964000079010154426f756e74794163746f723c4d656d62657249643e000018011c42616c616e6365001614250141206d656d626572206f72206120636f756e63696c2063726561746f72206861732077697468647261776e207468652063726561746f7220737461746520626c6f617420626f6e642e1c506172616d733a2c2d20626f756e7479204944402d20626f756e74792063726561746f72842d2043726561746f7220537461746520626c6f617420626f6e6420616d6f756e74085c4576656e747320666f722074686973206d6f64756c652e007501083470616c6c65745f626f756e747940426f756e7479506172616d6574657273101c42616c616e636501182c426c6f636b4e756d6265720110204d656d626572496401285c436c6f736564436f6e747261637457686974656c697374016901001c01186f7261636c6579010154426f756e74794163746f723c4d656d62657249643e000134636f6e74726163745f747970657d0101b84173737572616e6365436f6e7472616374547970653c436c6f736564436f6e747261637457686974656c6973743e00011c63726561746f7279010154426f756e74794163746f723c4d656d62657249643e00011863686572727918011c42616c616e63650001346f7261636c655f72657761726418011c42616c616e6365000134656e7472616e745f7374616b6518011c42616c616e636500013066756e64696e675f747970658101018446756e64696e67547970653c426c6f636b4e756d6265722c2042616c616e63653e00007901083470616c6c65745f626f756e74792c426f756e74794163746f7204204d656d6265724964012801081c436f756e63696c000000184d656d62657204002801204d656d6265724964000100007d01083470616c6c65745f626f756e7479544173737572616e6365436f6e747261637454797065045c436c6f736564436f6e747261637457686974656c6973740169010108104f70656e00000018436c6f73656404006901015c436c6f736564436f6e747261637457686974656c697374000100008101083470616c6c65745f626f756e74792c46756e64696e6754797065082c426c6f636b4e756d62657201101c42616c616e6365011801082450657270657475616c04011874617267657418011c42616c616e63650000001c4c696d6974656408011874617267657418011c42616c616e636500013866756e64696e675f706572696f6410012c426c6f636b4e756d626572000100008501042042547265654d617008044b012804560189010004008d010000008901083470616c6c65745f626f756e74795c4f7261636c65576f726b456e7472794a7564676d656e74041c42616c616e6365011801081857696e6e657204011872657761726418011c42616c616e63650000002052656a6563746564080138736c617368696e675f7368617265ac011c50657262696c6c000150616374696f6e5f6a757374696669636174696f6e30011c5665633c75383e000100008d01000002910100910100000408288901009501083870616c6c65745f7574696c697479205261774576656e74081c42616c616e63650118244163636f756e74496401000110205369676e616c6564040030011c5665633c75383e00000c7841207369676e616c2070726f706f73616c207761732065786563757465641c506172616d733adc2d205369676e616c20676976656e207768656e206372656174696e672074686520636f72726573706f6e64696e672070726f706f73616c3c52756e74696d655570677261646564040030011c5665633c75383e00010c78412072756e74696d652075706772616465207761732065786563757465641c506172616d733a6c2d204e657720636f646520656e636f64656420696e2062797465736455706461746564576f726b696e6747726f75704275646765740c0099010130576f726b696e6747726f7570000018011c42616c616e636500009d01012c42616c616e63654b696e64000218d8416e206055706461746520576f726b696e672047726f757020427564676574602070726f706f73616c207761732065786563757465641c506172616d733ab42d20576f726b696e672067726f757020776869636820627564676574206973206265696e6720757064617465647c2d20416d6f756e74206f662062616c616e6365206265696e67206d6f7665645d012d20456e756d2076617269616e74207769746820706f73697469766520696e6469636174696e672066756e6473206d6f76656420746f72776172647320776f726b696e672067726f757020616e64206e65676174697665c0616e64206e656761746976652066756e6473206d6f76696e672066726f6d2074686520776f726b696e672067726f757030546f6b656e734275726e656408000001244163636f756e744964000018011c42616c616e636500031060416e206163636f756e74206275726e656420746f6b656e731c506172616d733a882d204163636f756e74204964206f6620746865206275726e696e6720746f6b656e73882d2042616c616e6365206275726e65642066726f6d2074686174206163636f756e74085c4576656e747320666f722074686973206d6f64756c652e009901103470616c6c65745f636f6d6d6f6e34776f726b696e675f67726f7570386974657261626c655f656e756d7330576f726b696e6747726f757000012414466f72756d0000001c53746f726167650001001c436f6e74656e740002003c4f7065726174696f6e73416c7068610003000c41707000040030446973747269627574696f6e000500384f7065726174696f6e73426574610006003c4f7065726174696f6e7347616d6d61000700284d656d62657273686970000800009d01083470616c6c65745f636f6d6d6f6e2c42616c616e63654b696e6400010820506f736974697665000000204e6567617469766500010000a101083870616c6c65745f636f6e74656e74205261774576656e746430436f6e74656e744163746f7201a501204d656d626572496401283843757261746f7247726f7570496401282443757261746f72496401281c566964656f49640128244368616e6e656c496401281c4368616e6e656c01a90130446174614f626a6563744964012850456e676c69736841756374696f6e506172616d7301fd01444f70656e41756374696f6e506172616d73010502344f70656e41756374696f6e49640128544e667449737375616e6365506172616d65746572730109021c42616c616e63650118644368616e6e656c4372656174696f6e506172616d65746572730115025c4368616e6e656c557064617465506172616d65746572730141025c566964656f4372656174696f6e506172616d657465727301490254566964656f557064617465506172616d6574657273015102544368616e6e656c50726976696c6567654c6576656c0108704d6f6465726174696f6e5065726d697373696f6e7342794c6576656c015502645472616e73666572436f6d6d69746d656e745769746e657373016d023c50656e64696e675472616e7366657201ed01244163636f756e7449640100785570646174654368616e6e656c5061796f757473506172616d65746572730171021c546f6b656e496401285c4368616e6e656c46756e647344657374696e6174696f6e01850201d84c43757261746f7247726f757043726561746564040028013843757261746f7247726f757049640000007843757261746f7247726f75705065726d697373696f6e7355706461746564080028013843757261746f7247726f757049640000550201704d6f6465726174696f6e5065726d697373696f6e7342794c6576656c0001005443757261746f7247726f7570537461747573536574080028013843757261746f7247726f757049640000980110626f6f6c0002003043757261746f7241646465640c0028013843757261746f7247726f75704964000028012443757261746f7249640000bd01015c4368616e6e656c4167656e745065726d697373696f6e730003003843757261746f7252656d6f766564080028013843757261746f7247726f75704964000028012443757261746f724964000400384368616e6e656c4372656174656410002801244368616e6e656c49640000a901011c4368616e6e656c0000150201644368616e6e656c4372656174696f6e506172616d657465727300000001244163636f756e744964000500384368616e6e656c557064617465641000a5010130436f6e74656e744163746f7200002801244368616e6e656c496400004102015c4368616e6e656c557064617465506172616d657465727300006901015842547265655365743c446174614f626a65637449643e000600704368616e6e656c50726976696c6567654c6576656c5570646174656408002801244368616e6e656c496400000801544368616e6e656c50726976696c6567654c6576656c000700844368616e6e656c5374617465426c6f6174426f6e6456616c756555706461746564040018011c42616c616e63650008007c566964656f5374617465426c6f6174426f6e6456616c756555706461746564040018011c42616c616e6365000900504368616e6e656c41737365747352656d6f7665641000a5010130436f6e74656e744163746f7200002801244368616e6e656c496400006901015842547265655365743c446174614f626a65637449643e0000a901011c4368616e6e656c000a00384368616e6e656c44656c657465640800a5010130436f6e74656e744163746f7200002801244368616e6e656c4964000b00644368616e6e656c44656c6574656442794d6f64657261746f720c00a5010130436f6e74656e744163746f7200002801244368616e6e656c4964000030011c5665633c75383e000c007c4368616e6e656c5669736962696c69747953657442794d6f64657261746f721000a5010130436f6e74656e744163746f7200002801244368616e6e656c49640000980110626f6f6c000030011c5665633c75383e000d009c4368616e6e656c50617573656446656174757265735570646174656442794d6f64657261746f721000a5010130436f6e74656e744163746f7200002801244368616e6e656c49640000d901018042547265655365743c5061757361626c654368616e6e656c466561747572653e000030011c5665633c75383e000e007c4368616e6e656c41737365747344656c6574656442794d6f64657261746f721000a5010130436f6e74656e744163746f7200002801244368616e6e656c496400006901015842547265655365743c446174614f626a65637449643e000030011c5665633c75383e000f00544368616e6e656c46756e647357697468647261776e1000a5010130436f6e74656e744163746f7200002801244368616e6e656c4964000018011c42616c616e636500008502015c4368616e6e656c46756e647344657374696e6174696f6e001000804368616e6e656c526577617264436c61696d6564416e6457697468647261776e1000a5010130436f6e74656e744163746f7200002801244368616e6e656c4964000018011c42616c616e636500008502015c4368616e6e656c46756e647344657374696e6174696f6e00110030566964656f437265617465641400a5010130436f6e74656e744163746f7200002801244368616e6e656c4964000028011c566964656f496400004902015c566964656f4372656174696f6e506172616d657465727300006901015842547265655365743c446174614f626a65637449643e00120030566964656f557064617465641000a5010130436f6e74656e744163746f72000028011c566964656f4964000051020154566964656f557064617465506172616d657465727300006901015842547265655365743c446174614f626a65637449643e00130030566964656f44656c657465640800a5010130436f6e74656e744163746f72000028011c566964656f49640014005c566964656f44656c6574656442794d6f64657261746f720c00a5010130436f6e74656e744163746f72000028011c566964656f4964000030011c5665633c75383e00150074566964656f5669736962696c69747953657442794d6f64657261746f721000a5010130436f6e74656e744163746f72000028011c566964656f49640000980110626f6f6c000030011c5665633c75383e00160074566964656f41737365747344656c6574656442794d6f64657261746f721400a5010130436f6e74656e744163746f72000028011c566964656f496400006901015842547265655365743c446174614f626a65637449643e0000980110626f6f6c000030011c5665633c75383e001700544368616e6e656c5061796f757473557064617465640c00710201785570646174654368616e6e656c5061796f757473506172616d65746572730000350101504f7074696f6e3c446174614f626a65637449643e00000001244163636f756e744964001800504368616e6e656c526577617264557064617465640c0018011c42616c616e6365000018011c42616c616e636500002801244368616e6e656c496400190054456e676c69736841756374696f6e537461727465640c00a5010130436f6e74656e744163746f72000028011c566964656f49640000fd010150456e676c69736841756374696f6e506172616d73001a00484f70656e41756374696f6e537461727465641000a5010130436f6e74656e744163746f72000028011c566964656f49640000050201444f70656e41756374696f6e506172616d7300002801344f70656e41756374696f6e4964001b00244e66744973737565640c00a5010130436f6e74656e744163746f72000028011c566964656f49640000090201544e667449737375616e6365506172616d6574657273001c00304e667444657374726f7965640800a5010130436f6e74656e744163746f72000028011c566964656f4964001d003841756374696f6e4269644d61646510002801204d656d6265724964000028011c566964656f4964000018011c42616c616e63650000350101404f7074696f6e3c4d656d62657249643e001e004841756374696f6e42696443616e63656c656408002801204d656d6265724964000028011c566964656f4964001f003c41756374696f6e43616e63656c65640800a5010130436f6e74656e744163746f72000028011c566964656f496400200054456e676c69736841756374696f6e536574746c65640c002801204d656d626572496400000001244163636f756e744964000028011c566964656f4964002100604269644d616465436f6d706c6574696e6741756374696f6e0c002801204d656d6265724964000028011c566964656f49640000350101404f7074696f6e3c4d656d62657249643e002200584f70656e41756374696f6e42696441636365707465641000a5010130436f6e74656e744163746f72000028011c566964656f496400002801204d656d6265724964000018011c42616c616e6365002300304f6666657253746172746564100028011c566964656f49640000a5010130436f6e74656e744163746f7200002801204d656d626572496400004501013c4f7074696f6e3c42616c616e63653e002400344f666665724163636570746564040028011c566964656f4964002500344f6666657243616e63656c6564080028011c566964656f49640000a5010130436f6e74656e744163746f72002600404e667453656c6c4f726465724d6164650c0028011c566964656f49640000a5010130436f6e74656e744163746f72000018011c42616c616e6365002700244e6674426f75676874080028011c566964656f496400002801204d656d6265724964002800384275794e6f7743616e63656c6564080028011c566964656f49640000a5010130436f6e74656e744163746f72002900484275794e6f775072696365557064617465640c0028011c566964656f49640000a5010130436f6e74656e744163746f72000018011c42616c616e6365002a00844e6674536c696e6765644261636b546f5468654f726967696e616c417274697374080028011c566964656f49640000a5010130436f6e74656e744163746f72002b00504368616e6e656c4f776e657252656d61726b656408002801244368616e6e656c4964000030011c5665633c75383e002c046c4d65746170726f746f636f6c732072656c61746564206576656e74504368616e6e656c4167656e7452656d61726b65640c00a5010130436f6e74656e744163746f7200002801244368616e6e656c4964000030011c5665633c75383e002d00404e66744f776e657252656d61726b65640c00a5010130436f6e74656e744163746f72000028011c566964656f4964000030011c5665633c75383e002e0068496e697469616c697a65644368616e6e656c5472616e736665720c002801244368616e6e656c49640000a5010130436f6e74656e744163746f720000ed01013c50656e64696e675472616e73666572002f005443616e63656c4368616e6e656c5472616e7366657208002801244368616e6e656c49640000a5010130436f6e74656e744163746f720030005c4368616e6e656c5472616e73666572416363657074656408002801244368616e6e656c496400006d0201645472616e73666572436f6d6d69746d656e745769746e65737300310054476c6f62616c4e66744c696d6974557064617465640800890201384e66744c696d6974506572696f64000028010c753634003200584368616e6e656c4e66744c696d6974557064617465641000a5010130436f6e74656e744163746f720000890201384e66744c696d6974506572696f6400002801244368616e6e656c4964000028010c75363400330040546f67676c65644e66744c696d6974730400980110626f6f6c0034004843726561746f72546f6b656e4973737565640c00a5010130436f6e74656e744163746f7200002801244368616e6e656c4964000028011c546f6b656e4964003500085c4576656e747320666f722074686973206d6f64756c652e00a5010c3870616c6c65745f636f6e74656e742c7065726d697373696f6e7330436f6e74656e744163746f720c3843757261746f7247726f7570496401282443757261746f7249640128204d656d62657249640128010c1c43757261746f72080028013843757261746f7247726f75704964000028012443757261746f724964000000184d656d62657204002801204d656d6265724964000100104c65616400020000a9010c3870616c6c65745f636f6e74656e74147479706573344368616e6e656c5265636f72642c204d656d626572496401283843757261746f7247726f7570496401281c42616c616e63650118544368616e6e656c50726976696c6567654c6576656c01082c426c6f636b4e756d62657201101c546f6b656e49640128285472616e7366657249640128404368616e6e656c41737365747353657401ad015c4368616e6e656c436f6c6c61626f7261746f72734d617001b10144506175736564466561747572657353657401d10148526570617961626c65426c6f6174426f6e6401e101003801146f776e6572e50101984368616e6e656c4f776e65723c4d656d62657249642c2043757261746f7247726f757049643e0001286e756d5f766964656f7328010c753634000134636f6c6c61626f7261746f7273b101015c4368616e6e656c436f6c6c61626f7261746f72734d617000016463756d756c61746976655f7265776172645f636c61696d656418011c42616c616e636500013c70726976696c6567655f6c6576656c0801544368616e6e656c50726976696c6567654c6576656c00013c7061757365645f6665617475726573d1010144506175736564466561747572657353657400013c7472616e736665725f737461747573e9010179014368616e6e656c5472616e736665725374617475733c4d656d62657249642c2043757261746f7247726f757049642c2042616c616e63652c205472616e7366657249642c0a4368616e6e656c436f6c6c61626f7261746f72734d61702c3e000130646174615f6f626a65637473ad0101404368616e6e656c41737365747353657400013c6461696c795f6e66745f6c696d6974f501016c4c696d6974506572506572696f643c426c6f636b4e756d6265723e0001407765656b6c795f6e66745f6c696d6974f501016c4c696d6974506572506572696f643c426c6f636b4e756d6265723e0001446461696c795f6e66745f636f756e746572f901015c4e6674436f756e7465723c426c6f636b4e756d6265723e0001487765656b6c795f6e66745f636f756e746572f901015c4e6674436f756e7465723c426c6f636b4e756d6265723e00014063726561746f725f746f6b656e5f69643501013c4f7074696f6e3c546f6b656e49643e0001606368616e6e656c5f73746174655f626c6f61745f626f6e64e1010148526570617961626c65426c6f6174426f6e640000ad010c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401280453000004006901012c42547265655365743c543e0000b1010c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b0128045601b501045300000400c501013842547265654d61703c4b2c20563e0000b5010c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401b901045300000400bd01012c42547265655365743c543e0000b901103870616c6c65745f636f6e74656e74147479706573386974657261626c655f656e756d735c4368616e6e656c416374696f6e5065726d697373696f6e000154545570646174654368616e6e656c4d657461646174610000006c4d616e6167654e6f6e566964656f4368616e6e656c417373657473000100684d616e6167654368616e6e656c436f6c6c61626f7261746f72730002004c557064617465566964656f4d6574616461746100030020416464566964656f000400444d616e616765566964656f4173736574730005003444656c6574654368616e6e656c0006002c44656c657465566964656f0007003c4d616e616765566964656f4e6674730008002c4167656e7452656d61726b0009003c5472616e736665724368616e6e656c000a0048436c61696d4368616e6e656c526577617264000b0068576974686472617746726f6d4368616e6e656c42616c616e6365000c0044497373756543726561746f72546f6b656e000d0068436c61696d43726561746f72546f6b656e506174726f6e616765000e0074496e6974416e644d616e61676543726561746f72546f6b656e53616c65000f006843726561746f72546f6b656e4973737565725472616e73666572001000784d616b6543726561746f72546f6b656e5065726d697373696f6e6c6573730011007c52656475636543726561746f72546f6b656e506174726f6e616765526174650012004c4d616e616765526576656e756553706c6974730013004c4465697373756543726561746f72546f6b656e00140000bd010420425472656553657404045401b901000400c101000000c101000002b90100c501042042547265654d617008044b0128045601b501000400c901000000c901000002cd0100cd010000040828b50100d1010c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401d501045300000400d901012c42547265655365743c543e0000d501143870616c6c65745f636f6e74656e742c7065726d697373696f6e733463757261746f725f67726f7570386974657261626c655f656e756d73585061757361626c654368616e6e656c4665617475726500011c504368616e6e656c46756e64735472616e736665720000003843726561746f72436173686f757400010040566964656f4e667449737375616e636500020034566964656f4372656174696f6e0003002c566964656f557064617465000400344368616e6e656c5570646174650005005043726561746f72546f6b656e49737375616e636500060000d9010420425472656553657404045401d501000400dd01000000dd01000002d50100e1010c3470616c6c65745f636f6d6d6f6e28626c6f61745f626f6e6448526570617961626c65426c6f6174426f6e6408244163636f756e74496401001c42616c616e636501180008015c72657061796d656e745f726573747269637465645f746f9401444f7074696f6e3c4163636f756e7449643e000118616d6f756e7418011c42616c616e63650000e5010c3870616c6c65745f636f6e74656e74147479706573304368616e6e656c4f776e657208204d656d626572496401283843757261746f7247726f7570496401280108184d656d62657204002801204d656d62657249640000003043757261746f7247726f7570040028013843757261746f7247726f7570496400010000e9010c3870616c6c65745f636f6e74656e74147479706573544368616e6e656c5472616e7366657253746174757314204d656d626572496401283843757261746f7247726f7570496401281c42616c616e63650118285472616e73666572496401285c4368616e6e656c436f6c6c61626f7261746f72734d617001b1010108404e6f4163746976655472616e736665720000003c50656e64696e675472616e736665720400ed01015d0150656e64696e675472616e736665723c4d656d62657249642c2043757261746f7247726f757049642c2042616c616e63652c205472616e7366657249642c0a4368616e6e656c436f6c6c61626f7261746f72734d61703e00010000ed010c3870616c6c65745f636f6e74656e741474797065733c50656e64696e675472616e7366657214204d656d626572496401283843757261746f7247726f7570496401281c42616c616e63650118285472616e73666572496401285c4368616e6e656c436f6c6c61626f7261746f72734d617001b101000801246e65775f6f776e6572e50101984368616e6e656c4f776e65723c4d656d62657249642c2043757261746f7247726f757049643e00013c7472616e736665725f706172616d73f1010129015472616e73666572436f6d6d69746d656e74506172616d65746572733c4368616e6e656c436f6c6c61626f7261746f72734d61702c2042616c616e63652c205472616e7366657249643e0000f1010c3870616c6c65745f636f6e74656e74147479706573705472616e73666572436f6d6d69746d656e74506172616d65746572730c5c4368616e6e656c436f6c6c61626f7261746f72734d617001b1011c42616c616e63650118285472616e7366657249640128000c01446e65775f636f6c6c61626f7261746f7273b101015c4368616e6e656c436f6c6c61626f7261746f72734d6170000114707269636518011c42616c616e636500012c7472616e736665725f69642801285472616e7366657249640000f5010c3870616c6c65745f636f6e74656e74147479706573384c696d6974506572506572696f64042c426c6f636b4e756d6265720110000801146c696d697428010c75363400014c626c6f636b5f6e756d6265725f706572696f6410012c426c6f636b4e756d6265720000f9010c3870616c6c65745f636f6e74656e74147479706573284e6674436f756e746572042c426c6f636b4e756d62657201100008011c636f756e74657228010c7536340001306c6173745f7570646174656410012c426c6f636b4e756d6265720000fd01103870616c6c65745f636f6e74656e740c6e667414747970657368456e676c69736841756374696f6e506172616d735265636f72640c2c426c6f636b4e756d62657201101c42616c616e63650118204d656d62657249640128001c01387374617274696e675f707269636518011c42616c616e63650001346275795f6e6f775f70726963654501013c4f7074696f6e3c42616c616e63653e00012477686974656c6973746901014842547265655365743c4d656d62657249643e0001247374617274735f61740102014c4f7074696f6e3c426c6f636b4e756d6265723e0001206475726174696f6e10012c426c6f636b4e756d626572000140657874656e73696f6e5f706572696f6410012c426c6f636b4e756d6265720001306d696e5f6269645f7374657018011c42616c616e63650000010204184f7074696f6e04045401100108104e6f6e6500000010536f6d6504001000000100000502103870616c6c65745f636f6e74656e740c6e66741474797065735c4f70656e41756374696f6e506172616d735265636f72640c2c426c6f636b4e756d62657201101c42616c616e63650118204d656d62657249640128001401387374617274696e675f707269636518011c42616c616e63650001346275795f6e6f775f70726963654501013c4f7074696f6e3c42616c616e63653e0001247374617274735f61740102014c4f7074696f6e3c426c6f636b4e756d6265723e00012477686974656c6973746901014842547265655365743c4d656d62657249643e0001446269645f6c6f636b5f6475726174696f6e10012c426c6f636b4e756d62657200000902103870616c6c65745f636f6e74656e740c6e66741474797065736c4e667449737375616e6365506172616d65746572735265636f726408204d656d626572496401285c496e69745472616e73616374696f6e616c537461747573010d020010011c726f79616c74791102013c4f7074696f6e3c526f79616c74793e0001306e66745f6d6574616461746130012c4e66744d657461646174610001446e6f6e5f6368616e6e656c5f6f776e6572350101404f7074696f6e3c4d656d62657249643e000164696e69745f7472616e73616374696f6e616c5f7374617475730d02015c496e69745472616e73616374696f6e616c53746174757300000d02103870616c6c65745f636f6e74656e740c6e667414747970657374496e69745472616e73616374696f6e616c5374617475735265636f72641050456e676c69736841756374696f6e506172616d7301fd01444f70656e41756374696f6e506172616d73010502204d656d626572496401281c42616c616e6365011801141049646c65000000184275794e6f77040018011c42616c616e636500010058496e697469617465644f66666572546f4d656d62657208002801204d656d626572496400004501013c4f7074696f6e3c42616c616e63653e00020038456e676c69736841756374696f6e0400fd010150456e676c69736841756374696f6e506172616d730003002c4f70656e41756374696f6e0400050201444f70656e41756374696f6e506172616d7300040000110204184f7074696f6e04045401ac0108104e6f6e6500000010536f6d650400ac000001000015020c3870616c6c65745f636f6e74656e741474797065737c4368616e6e656c4372656174696f6e506172616d65746572735265636f7264143453746f72616765417373657473011902204d656d626572496401283c53746f726167654275636b65744964012850446973747269627574696f6e4275636b657449640125021c42616c616e63650118001c0118617373657473290201544f7074696f6e3c53746f726167654173736574733e0001106d6574613101013c4f7074696f6e3c5665633c75383e3e000134636f6c6c61626f7261746f72732d0201ac42547265654d61703c4d656d62657249642c204368616e6e656c4167656e745065726d697373696f6e733e00013c73746f726167655f6275636b6574736901016442547265655365743c53746f726167654275636b657449643e000150646973747269627574696f6e5f6275636b6574733902017842547265655365743c446973747269627574696f6e4275636b657449643e00018465787065637465645f6368616e6e656c5f73746174655f626c6f61745f626f6e6418011c42616c616e636500019465787065637465645f646174615f6f626a6563745f73746174655f626c6f61745f626f6e6418011c42616c616e6365000019020c3870616c6c65745f636f6e74656e741474797065734c53746f726167654173736574735265636f7264041c42616c616e63650118000801506f626a6563745f6372656174696f6e5f6c6973741d0201845665633c446174614f626a6563744372656174696f6e506172616d65746572733e00015865787065637465645f646174615f73697a655f66656518011c42616c616e636500001d020000022102002102083870616c6c65745f73746f7261676570446174614f626a6563744372656174696f6e506172616d6574657273000008011073697a6528010c75363400013c697066735f636f6e74656e745f696430011c5665633c75383e00002502083870616c6c65745f73746f7261676568446973747269627574696f6e4275636b657449645265636f72640868446973747269627574696f6e4275636b657446616d696c79496401285c446973747269627574696f6e4275636b6574496e646578012800080174646973747269627574696f6e5f6275636b65745f66616d696c795f6964280168446973747269627574696f6e4275636b657446616d696c794964000164646973747269627574696f6e5f6275636b65745f696e64657828015c446973747269627574696f6e4275636b6574496e6465780000290204184f7074696f6e0404540119020108104e6f6e6500000010536f6d650400190200000100002d02042042547265654d617008044b0128045601bd010004003102000000310200000235020035020000040828bd01003902042042547265655365740404540125020004003d020000003d0200000225020041020c3870616c6c65745f636f6e74656e74147479706573744368616e6e656c557064617465506172616d65746572735265636f7264103453746f7261676541737365747301190230446174614f626a65637449640128204d656d626572496401281c42616c616e63650118001801406173736574735f746f5f75706c6f6164290201544f7074696f6e3c53746f726167654173736574733e0001206e65775f6d6574613101013c4f7074696f6e3c5665633c75383e3e0001406173736574735f746f5f72656d6f76656901015842547265655365743c446174614f626a65637449643e000134636f6c6c61626f7261746f7273450201cc4f7074696f6e3c42547265654d61703c4d656d62657249642c204368616e6e656c4167656e745065726d697373696f6e733e3e00019465787065637465645f646174615f6f626a6563745f73746174655f626c6f61745f626f6e6418011c42616c616e636500016c73746f726167655f6275636b6574735f6e756d5f7769746e6573730102012c4f7074696f6e3c7533323e0000450204184f7074696f6e040454012d020108104e6f6e6500000010536f6d6504002d02000001000049020c3870616c6c65745f636f6e74656e7414747970657374566964656f4372656174696f6e506172616d65746572735265636f72640c3453746f72616765417373657473011902544e667449737375616e6365506172616d65746572730109021c42616c616e6365011800180118617373657473290201544f7074696f6e3c53746f726167654173736574733e0001106d6574613101013c4f7074696f6e3c5665633c75383e3e0001386175746f5f69737375655f6e66744d0201744f7074696f6e3c4e667449737375616e6365506172616d65746572733e00017c65787065637465645f766964656f5f73746174655f626c6f61745f626f6e6418011c42616c616e636500019465787065637465645f646174615f6f626a6563745f73746174655f626c6f61745f626f6e6418011c42616c616e636500016c73746f726167655f6275636b6574735f6e756d5f7769746e65737310010c75333200004d0204184f7074696f6e0404540109020108104e6f6e6500000010536f6d6504000902000001000051020c3870616c6c65745f636f6e74656e741474797065736c566964656f557064617465506172616d65746572735265636f7264103453746f7261676541737365747301190230446174614f626a65637449640128544e667449737375616e6365506172616d65746572730109021c42616c616e63650118001801406173736574735f746f5f75706c6f6164290201544f7074696f6e3c53746f726167654173736574733e0001206e65775f6d6574613101013c4f7074696f6e3c5665633c75383e3e0001406173736574735f746f5f72656d6f76656901015842547265655365743c446174614f626a65637449643e0001386175746f5f69737375655f6e66744d0201744f7074696f6e3c4e667449737375616e6365506172616d65746572733e00019465787065637465645f646174615f6f626a6563745f73746174655f626c6f61745f626f6e6418011c42616c616e636500016c73746f726167655f6275636b6574735f6e756d5f7769746e6573730102012c4f7074696f6e3c7533323e00005502042042547265654d617008044b010804560159020004006502000000590204204254726565536574040454015d0200040061020000005d02143870616c6c65745f636f6e74656e742c7065726d697373696f6e733463757261746f725f67726f7570386974657261626c655f656e756d735c436f6e74656e744d6f6465726174696f6e416374696f6e0001202448696465566964656f0000002c486964654368616e6e656c000100684368616e67654368616e6e656c466561747572655374617475730400d50101585061757361626c654368616e6e656c466561747572650002002c44656c657465566964656f0003003444656c6574654368616e6e656c0004004444656c657465566964656f4173736574730400980110626f6f6c0005006c44656c6574654e6f6e566964656f4368616e6e656c417373657473000600585570646174654368616e6e656c4e66744c696d6974730007000061020000025d02006502000002690200690200000408085902006d020c3870616c6c65745f636f6e74656e74147479706573705472616e73666572436f6d6d69746d656e74506172616d65746572730c5c4368616e6e656c436f6c6c61626f7261746f72734d6170012d021c42616c616e63650118285472616e7366657249640128000c01446e65775f636f6c6c61626f7261746f72732d02015c4368616e6e656c436f6c6c61626f7261746f72734d6170000114707269636518011c42616c616e636500012c7472616e736665725f69642801285472616e736665724964000071020c3870616c6c65745f636f6e74656e74147479706573905570646174654368616e6e656c5061796f757473506172616d65746572735265636f72640c7c4368616e6e656c5061796f7574735061796c6f6164506172616d65746572730175021c42616c616e636501181048617368012c00140128636f6d6d69746d656e74790201304f7074696f6e3c486173683e00011c7061796c6f61647d02019c4f7074696f6e3c4368616e6e656c5061796f7574735061796c6f6164506172616d65746572733e00014c6d696e5f636173686f75745f616c6c6f7765644501013c4f7074696f6e3c42616c616e63653e00014c6d61785f636173686f75745f616c6c6f7765644501013c4f7074696f6e3c42616c616e63653e0001606368616e6e656c5f636173686f7574735f656e61626c6564810201304f7074696f6e3c626f6f6c3e000075020c3870616c6c65745f636f6e74656e74147479706573944368616e6e656c5061796f7574735061796c6f6164506172616d65746572735265636f7264041c42616c616e63650118000c01586f626a6563745f6372656174696f6e5f706172616d7321020170446174614f626a6563744372656174696f6e506172616d657465727300015865787065637465645f646174615f73697a655f66656518011c42616c616e636500019465787065637465645f646174615f6f626a6563745f73746174655f626c6f61745f626f6e6418011c42616c616e63650000790204184f7074696f6e040454012c0108104e6f6e6500000010536f6d6504002c00000100007d0204184f7074696f6e0404540175020108104e6f6e6500000010536f6d65040075020000010000810204184f7074696f6e04045401980108104e6f6e6500000010536f6d65040098000001000085020c3870616c6c65745f636f6e74656e741474797065735c4368616e6e656c46756e647344657374696e6174696f6e04244163636f756e74496401000108244163636f756e74496404000001244163636f756e74496400000034436f756e63696c4275646765740001000089020c3870616c6c65745f636f6e74656e74147479706573384e66744c696d6974506572696f64000108144461696c79000000185765656b6c79000100008d02083870616c6c65745f73746f72616765205261774576656e74303c53746f726167654275636b65744964012820576f726b65724964012830446174614f626a656374496401284055706c6f6164506172616d65746572730191021442616749640195023044796e616d69634261674964019d02244163636f756e74496401001c42616c616e6365011868446973747269627574696f6e4275636b657446616d696c794964012850446973747269627574696f6e4275636b657449640125025c446973747269627574696f6e4275636b6574496e64657801287044796e616d69634261674372656174696f6e506172616d657465727301a10201a85053746f726167654275636b657443726561746564140028013c53746f726167654275636b657449640000350101404f7074696f6e3c576f726b657249643e0000980110626f6f6c000028010c753634000028010c75363400001c94456d697473206f6e206372656174696e67207468652073746f72616765206275636b65742e18506172616d734c2d2073746f72616765206275636b6574204944402d20696e766974656420776f726b65726c2d20666c61672022616363657074696e675f6e65775f6261677322642d2073697a65206c696d697420666f7220766f75636865722c702d206f626a65637473206c696d697420666f7220766f75636865722c7c53746f726167654275636b6574496e7669746174696f6e41636365707465640c0028013c53746f726167654275636b657449640000280120576f726b6572496400000001244163636f756e744964000114c4456d697473206f6e20616363657074696e67207468652073746f72616765206275636b657420696e7669746174696f6e2e18506172616d734c2d2073746f72616765206275636b65742049444c2d20696e766974656420776f726b65722049445c2d207472616e736163746f72206163636f756e742049446c53746f726167654275636b65747355706461746564466f724261670c0095020114426167496400006901016442547265655365743c53746f726167654275636b657449643e00006901016442547265655365743c53746f726167654275636b657449643e000214a8456d697473206f6e207570646174696e672073746f72616765206275636b65747320666f72206261672e18506172616d73202d20626167204944982d2073746f72616765206275636b65747320746f2061646420494420636f6c6c656374696f6ea42d2073746f72616765206275636b65747320746f2072656d6f766520494420636f6c6c656374696f6e4c446174614f626a6563747355706c6f616465640c006901015842547265655365743c446174614f626a65637449643e00009102014055706c6f6164506172616d6574657273000018011c42616c616e636500031480456d697473206f6e2075706c6f6164696e672064617461206f626a656374732e18506172616d73482d2064617461206f626a6563747320494473782d20696e697469616c2075706c6f6164696e6720706172616d6574657273782d20737461746520626c6f617420626f6e6420666f72206f626a656374736853746f726167654f70657261746f724d657461646174615365740c0028013c53746f726167654275636b657449640000280120576f726b65724964000030011c5665633c75383e000414bc456d697473206f6e2073657474696e67207468652073746f72616765206f70657261746f72206d657461646174612e18506172616d734c2d2073746f72616765206275636b65742049444c2d20696e766974656420776f726b6572204944282d206d657461646174617453746f726167654275636b6574566f75636865724c696d6974735365740c0028013c53746f726167654275636b65744964000028010c753634000028010c753634000514cc456d697473206f6e2073657474696e67207468652073746f72616765206275636b657420766f7563686572206c696d6974732e18506172616d734c2d2073746f72616765206275636b6574204944782d206e657720746f74616c206f626a656374732073697a65206c696d6974802d206e657720746f74616c206f626a65637473206e756d626572206c696d69746850656e64696e67446174614f626a656374734163636570746564100028013c53746f726167654275636b657449640000280120576f726b65724964000095020114426167496400006901015842547265655365743c446174614f626a65637449643e000618a0456d697473206f6e20616363657074696e672070656e64696e672064617461206f626a656374732e18506172616d734c2d2073746f72616765206275636b6574204944842d20776f726b6572204944202873746f726167652070726f766964657220494429202d20626167204944582d2070656e64696e672064617461206f626a656374738053746f726167654275636b6574496e7669746174696f6e43616e63656c6c6564040028013c53746f726167654275636b6574496400070cc8456d697473206f6e2063616e63656c6c696e67207468652073746f72616765206275636b657420696e7669746174696f6e2e18506172616d734c2d2073746f72616765206275636b65742049447053746f726167654275636b65744f70657261746f72496e7669746564080028013c53746f726167654275636b657449640000280120576f726b65724964000810c0456d697473206f6e207468652073746f72616765206275636b6574206f70657261746f7220696e7669746174696f6e2e18506172616d734c2d2073746f72616765206275636b6574204944a82d206f70657261746f7220776f726b6572204944202873746f726167652070726f7669646572204944297053746f726167654275636b65744f70657261746f7252656d6f766564040028013c53746f726167654275636b6574496400090cb4456d697473206f6e207468652073746f72616765206275636b6574206f70657261746f722072656d6f76616c2e18506172616d734c2d2073746f72616765206275636b65742049446c55706c6f6164696e67426c6f636b537461747573557064617465640400980110626f6f6c000a0c0501456d697473206f6e206368616e67696e67207468652073697a652d62617365642070726963696e67206f66206e6577206f626a656374732075706c6f616465642e18506172616d73302d206e6577207374617475737c446174614f626a6563745065724d6567616279746546656555706461746564040018011c42616c616e6365000b0c0501456d697473206f6e206368616e67696e67207468652073697a652d62617365642070726963696e67206f66206e6577206f626a656374732075706c6f616465642e18506172616d734c2d206e657720646174612073697a65206665658053746f726167654275636b6574735065724261674c696d697455706461746564040010010c753332000c0cf4456d697473206f6e206368616e67696e6720746865202253746f72616765206275636b657473207065722062616722206e756d626572206c696d69742e18506172616d732c2d206e6577206c696d69749453746f726167654275636b657473566f75636865724d61784c696d69747355706461746564080028010c753634000028010c753634000d10ec456d697473206f6e206368616e67696e6720746865202253746f72616765206275636b65747320766f7563686572206d6178206c696d697473222e18506172616d73602d206e6577206f626a656374732073697a65206c696d6974682d206e6577206f626a65637473206e756d626572206c696d697440446174614f626a656374734d6f7665640c00950201144261674964000095020114426167496400006901015842547265655365743c446174614f626a65637449643e000e14a8456d697473206f6e206d6f76696e672064617461206f626a65637473206265747765656e20626167732e18506172616d733c2d20736f7572636520626167204944502d2064657374696e6174696f6e20626167204944442d2064617461206f626a6563742049447348446174614f626a6563747344656c657465640c000001244163636f756e744964000095020114426167496400006901015842547265655365743c446174614f626a65637449643e000f14a4456d697473206f6e2064617461206f626a656374732064656c6574696f6e2066726f6d20626167732e18506172616d73942d206163636f756e7420494420666f722074686520737461746520626c6f617420626f6e64202d20626167204944442d2064617461206f626a656374204944736853746f726167654275636b657453746174757355706461746564080028013c53746f726167654275636b657449640000980110626f6f6c00101098456d697473206f6e2073746f72616765206275636b657420737461747573207570646174652e18506172616d734c2d2073746f72616765206275636b6574204944302d206e6577207374617475733c557064617465426c61636b6c6973740800a502014442547265655365743c5665633c75383e3e0000a502014442547265655365743c5665633c75383e3e001110c4456d697473206f6e207570646174696e672074686520626c61636b6c69737420776974682064617461206861736865732e18506172616d73942d2068617368657320746f2072656d6f76652066726f6d2074686520626c61636b6c697374802d2068617368657320746f2061646420746f2074686520626c61636b6c6973744444796e616d696342616744656c6574656404009d02013044796e616d6963426167496400120c80456d697473206f6e2064656c6574696e6720612064796e616d6963206261672e18506172616d73402d2064796e616d6963206261672049444444796e616d6963426167437265617465640800a102017044796e616d69634261674372656174696f6e506172616d657465727300006901015842547265655365743c446174614f626a65637449643e00131080456d697473206f6e206372656174696e6720612064796e616d6963206261672e18506172616d73842d2064796e616d696320626167206372656174696f6e20706172616d65746572736c2d2075706c6f616465642064617461206f626a656374732069647338566f75636865724368616e676564080028013c53746f726167654275636b657449640000ad02011c566f7563686572001410cc456d697473206f6e206368616e67696e672074686520766f756368657220666f7220612073746f72616765206275636b65742e18506172616d734c2d2073746f72616765206275636b6574204944342d206e657720766f75636865725053746f726167654275636b657444656c65746564040028013c53746f726167654275636b6574496400150c84456d697473206f6e2073746f72616765206275636b65742064656c6574696e672e18506172616d734c2d2073746f72616765206275636b6574204944dc4e756d6265724f6653746f726167654275636b657473496e44796e616d69634261674372656174696f6e506f6c696379557064617465640800b102013844796e616d696342616754797065000010010c7533320016103d01456d697473206f6e207570646174696e6720746865206e756d626572206f662073746f72616765206275636b65747320696e2064796e616d696320626167206372656174696f6e20706f6c6963792e18506172616d73482d2064796e616d69632062616720747970657c2d206e6577206e756d626572206f662073746f72616765206275636b6574737c446973747269627574696f6e4275636b657446616d696c79437265617465640400280168446973747269627574696f6e4275636b657446616d696c79496400170cb4456d697473206f6e206372656174696e6720646973747269627574696f6e206275636b65742066616d696c792e18506172616d737c2d20646973747269627574696f6e2066616d696c79206275636b65742049447c446973747269627574696f6e4275636b657446616d696c7944656c657465640400280168446973747269627574696f6e4275636b657446616d696c79496400180cb4456d697473206f6e2064656c6574696e6720646973747269627574696f6e206275636b65742066616d696c792e18506172616d737c2d20646973747269627574696f6e2066616d696c79206275636b657420494464446973747269627574696f6e4275636b6574437265617465640c00280168446973747269627574696f6e4275636b657446616d696c7949640000980110626f6f6c000025020150446973747269627574696f6e4275636b6574496400191498456d697473206f6e206372656174696e6720646973747269627574696f6e206275636b65742e18506172616d737c2d20646973747269627574696f6e206275636b65742066616d696c79204944502d20616363657074696e67206e65772062616773602d20646973747269627574696f6e206275636b65742049447c446973747269627574696f6e4275636b657453746174757355706461746564080025020150446973747269627574696f6e4275636b657449640000980110626f6f6c001a10ec456d697473206f6e2073746f72616765206275636b657420737461747573207570646174652028616363657074696e67206e65772062616773292e18506172616d73602d20646973747269627574696f6e206275636b6574204944842d206e6577207374617475732028616363657074696e67206e657720626167732964446973747269627574696f6e4275636b657444656c65746564040025020150446973747269627574696f6e4275636b65744964001b0c98456d697473206f6e2064656c6574696e6720646973747269627574696f6e206275636b65742e18506172616d73602d20646973747269627574696f6e206275636b657420494480446973747269627574696f6e4275636b65747355706461746564466f7242616710009502011442616749640000280168446973747269627574696f6e4275636b657446616d696c79496400006901018442547265655365743c446973747269627574696f6e4275636b6574496e6465783e00006901018442547265655365743c446973747269627574696f6e4275636b6574496e6465783e001c14bc456d697473206f6e207570646174696e6720646973747269627574696f6e206275636b65747320666f72206261672e18506172616d73202d20626167204944982d2073746f72616765206275636b65747320746f2061646420494420636f6c6c656374696f6ea42d2073746f72616765206275636b65747320746f2072656d6f766520494420636f6c6c656374696f6e94446973747269627574696f6e4275636b6574735065724261674c696d697455706461746564040010010c753332001d0c0901456d697473206f6e206368616e67696e67207468652022446973747269627574696f6e206275636b657473207065722062616722206e756d626572206c696d69742e18506172616d732c2d206e6577206c696d697474446973747269627574696f6e4275636b65744d6f646555706461746564080025020150446973747269627574696f6e4275636b657449640000980110626f6f6c001e10e0456d697473206f6e2073746f72616765206275636b6574206d6f6465207570646174652028646973747269627574696e6720666c6167292e18506172616d73602d20646973747269627574696f6e206275636b6574204944382d20646973747269627574696e67a446616d696c696573496e44796e616d69634261674372656174696f6e506f6c696379557064617465640800b102013844796e616d6963426167547970650000b50201a442547265654d61703c446973747269627574696f6e4275636b657446616d696c7949642c207533323e001f102d01456d697473206f6e2064796e616d696320626167206372656174696f6e20706f6c696379207570646174652028646973747269627574696f6e206275636b65742066616d696c696573292e18506172616d73482d2064796e616d6963206261672074797065742d2066616d696c69657320616e64206275636b6574206e756d6265727384446973747269627574696f6e4275636b65744f70657261746f72496e7669746564080025020150446973747269627574696f6e4275636b657449640000280120576f726b657249640020101101456d697473206f6e206372656174696e67206120646973747269627574696f6e206275636b657420696e7669746174696f6e20666f7220746865206f70657261746f722e18506172616d73602d20646973747269627574696f6e206275636b65742049442c2d20776f726b657220494494446973747269627574696f6e4275636b6574496e7669746174696f6e43616e63656c6c6564080025020150446973747269627574696f6e4275636b657449640000280120576f726b657249640021101501456d697473206f6e2063616e63656c696e67206120646973747269627574696f6e206275636b657420696e7669746174696f6e20666f7220746865206f70657261746f722e18506172616d73602d20646973747269627574696f6e206275636b6574204944502d206f70657261746f7220776f726b657220494490446973747269627574696f6e4275636b6574496e7669746174696f6e41636365707465640800280120576f726b65724964000025020150446973747269627574696f6e4275636b657449640022101501456d697473206f6e20616363657074696e67206120646973747269627574696f6e206275636b657420696e7669746174696f6e20666f7220746865206f70657261746f722e18506172616d732c2d20776f726b6572204944602d20646973747269627574696f6e206275636b657420494474446973747269627574696f6e4275636b65744d657461646174615365740c00280120576f726b65724964000025020150446973747269627574696f6e4275636b65744964000030011c5665633c75383e0023140101456d697473206f6e2073657474696e6720746865206d65746164617461206279206120646973747269627574696f6e206275636b6574206f70657261746f722e18506172616d732c2d20776f726b6572204944602d20646973747269627574696f6e206275636b6574204944282d206d6574616461746184446973747269627574696f6e4275636b65744f70657261746f7252656d6f766564080025020150446973747269627574696f6e4275636b657449640000280120576f726b65724964002410c8456d697473206f6e2074686520646973747269627574696f6e206275636b6574206f70657261746f722072656d6f76616c2e18506172616d73602d20646973747269627574696f6e206275636b6574204944842d20646973747269627574696f6e206275636b6574206f70657261746f722049448c446973747269627574696f6e4275636b657446616d696c794d657461646174615365740800280168446973747269627574696f6e4275636b657446616d696c794964000030011c5665633c75383e002510f8456d697473206f6e2073657474696e6720746865206d65746164617461206279206120646973747269627574696f6e206275636b65742066616d696c792e18506172616d737c2d20646973747269627574696f6e206275636b65742066616d696c79204944282d206d6574616461746190446174614f626a6563745374617465426c6f6174426f6e6456616c756555706461746564040018011c42616c616e636500260ccc456d697473206f6e207570646174696e67207468652064617461206f626a65637420737461746520626c6f617420626f6e642e18506172616d73602d20737461746520626c6f617420626f6e642076616c756548446174614f626a65637473557064617465640c009102014055706c6f6164506172616d657465727300006901015842547265655365743c446174614f626a65637449643e00006901015842547265655365743c446174614f626a65637449643e0027140d01456d697473206f6e2073746f7261676520617373657473206265696e672075706c6f6164656420616e642064656c65746564206174207468652073616d652074696d6518506172616d73482d2055706c6f6164506172616d6574657273742d20496473206f66207468652075706c6f61646564206f626a65637473702d20496473206f66207468652072656d6f766564206f626a656374735c53746f726167654f70657261746f7252656d61726b65640c00280120576f726b65724964000028013c53746f726167654275636b65744964000030011c5665633c75383e002814a4456d697473206f6e2053746f72616765204f70657261746f72206d616b696e6720612072656d61726b18506172616d73582d206f70657261746f72277320776f726b65722069644c2d2073746f72616765206275636b6574206964402d2072656d61726b206d65737361676570446973747269627574696f6e4f70657261746f7252656d61726b65640c00280120576f726b65724964000025020150446973747269627574696f6e4275636b65744964000030011c5665633c75383e002914b8456d697473206f6e20446973747269627574696f6e204f70657261746f72206d616b696e6720612072656d61726b18506172616d73582d206f70657261746f72277320776f726b6572206964602d20646973747269627574696f6e206275636b6574206964402d2072656d61726b206d6573736167650c5c4576656e747320666f722074686973206d6f64756c652e003853746f72616765206576656e74739102083870616c6c65745f73746f726167655855706c6f6164506172616d65746572735265636f72640c144261674964019502244163636f756e74496401001c42616c616e63650118001401186261675f69649502011442616749640001506f626a6563745f6372656174696f6e5f6c6973741d0201845665633c446174614f626a6563744372656174696f6e506172616d65746572733e00018873746174655f626c6f61745f626f6e645f736f757263655f6163636f756e745f69640001244163636f756e74496400015865787065637465645f646174615f73697a655f66656518011c42616c616e636500019465787065637465645f646174615f6f626a6563745f73746174655f626c6f61745f626f6e6418011c42616c616e636500009502083870616c6c65745f73746f726167652442616749645479706508204d656d62657249640128244368616e6e656c4964012801081853746174696304009902012c53746174696342616749640000001c44796e616d696304009d02019444796e616d69634261674964547970653c4d656d62657249642c204368616e6e656c49643e000100009902083870616c6c65745f73746f726167652c53746174696342616749640001081c436f756e63696c00000030576f726b696e6747726f7570040099010130576f726b696e6747726f7570000100009d02083870616c6c65745f73746f726167654044796e616d696342616749645479706508204d656d62657249640128244368616e6e656c496401280108184d656d62657204002801204d656d62657249640000001c4368616e6e656c04002801244368616e6e656c496400010000a102083870616c6c65745f73746f726167657844796e4261674372656174696f6e506172616d65746572735265636f726414144261674964019d02244163636f756e74496401001c42616c616e636501183c53746f726167654275636b65744964012850446973747269627574696f6e4275636b65744964012502001c01186261675f69649d02011442616749640001506f626a6563745f6372656174696f6e5f6c6973741d0201845665633c446174614f626a6563744372656174696f6e506172616d65746572733e00018873746174655f626c6f61745f626f6e645f736f757263655f6163636f756e745f69640001244163636f756e74496400015865787065637465645f646174615f73697a655f66656518011c42616c616e636500019465787065637465645f646174615f6f626a6563745f73746174655f626c6f61745f626f6e6418011c42616c616e636500013c73746f726167655f6275636b6574736901016442547265655365743c53746f726167654275636b657449643e000150646973747269627574696f6e5f6275636b6574733902017842547265655365743c446973747269627574696f6e4275636b657449643e0000a502042042547265655365740404540130000400a902000000a9020000023000ad02083870616c6c65745f73746f726167651c566f7563686572000010012873697a655f6c696d697428010c7536340001346f626a656374735f6c696d697428010c75363400012473697a655f7573656428010c7536340001306f626a656374735f7573656428010c7536340000b102083870616c6c65745f73746f726167653844796e616d696342616754797065000108184d656d6265720000001c4368616e6e656c00010000b502042042547265654d617008044b012804560110000400b902000000b902000002bd0200bd0200000408281000c1020c5070616c6c65745f70726f6a6563745f746f6b656e186576656e7473205261774576656e74281c42616c616e63650118284a6f7942616c616e636501181c546f6b656e49640128244163636f756e7449640100204d656d626572496401282c426c6f636b4e756d6265720110385472616e73666572506f6c69637901c5025c546f6b656e49737375616e6365506172616d657465727301c9024856616c6964617465645472616e736665727301fd0224546f6b656e53616c65012103014858546f6b656e416d6f756e745472616e73666572726564100028011c546f6b656e496400002801204d656d62657249640000fd02014856616c6964617465645472616e7366657273000030011c5665633c75383e000018ac546f6b656e20616d6f756e74206973207472616e736665727265642066726f6d2073726320746f206473741c506172616d733a482d20746f6b656e206964656e746966696572482d20736f75726365206d656d62657220696459012d206d617020636f6e7461696e696e672076616c696461746564206f7574707574732028616d6f756e7420696e646578656420627920286d656d6265725f6964202b206163636f756e74206578697374616e63652929542d207472616e736665722773206d6574616461746178546f6b656e416d6f756e745472616e736665727265644279497373756572100028011c546f6b656e496400002801204d656d62657249640000fd02014856616c6964617465645472616e7366657273000030011c5665633c75383e00012088546f6b656e20616d6f756e74207472616e73666572726564206279206973737565721c506172616d733a482d20746f6b656e206964656e7469666965726c2d20736f75726365202869737375657229206d656d626572206964882d206d617020636f6e7461696e696e672076616c696461746564206f7574707574732d01202028616d6f756e742c206f70742e2076657374696e67207363686564756c652c206f70742e2076657374696e6720636c65616e7570206b657929206461746120696e6465786564206279882020286163636f756e745f6964202b206163636f756e74206578697374616e636529542d207472616e736665722773206d6574616461746160506174726f6e61676552617465446563726561736564546f080028011c546f6b656e496400002503012c5065727175696e74696c6c00021060506174726f6e6167652072617465206465637265617365641c506172616d733a482d20746f6b656e206964656e746966696572502d206e657720706174726f6e616765207261746558506174726f6e616765437265646974436c61696d65640c0028011c546f6b656e4964000018011c42616c616e636500002801204d656d62657249640003148c506174726f6e6167652063726564697420636c61696d65642062792063726561746f721c506172616d733a482d20746f6b656e206964656e7469666965723c2d2063726564697420616d6f756e742c2d206d656d62657220696448526576656e756553706c6974497373756564100028011c546f6b656e4964000010012c426c6f636b4e756d626572000010012c426c6f636b4e756d62657200001801284a6f7942616c616e636500041850526576656e75652053706c6974206973737565641c506172616d733a482d20746f6b656e206964656e746966696572782d207374617274696e6720626c6f636b20666f72207468652073706c69745c2d206475726174696f6e206f66207468652073706c6974742d204a4f5920616c6c6f636174656420666f72207468652073706c697454526576656e756553706c697446696e616c697a65640c0028011c546f6b656e496400000001244163636f756e74496400001801284a6f7942616c616e63650005145c526576656e75652053706c69742066696e616c697a65641c506172616d733a482d20746f6b656e206964656e746966696572a42d207265636f76657279206163636f756e7420666f7220746865206c6566746f7665722066756e6473402d206c6566746f7665722066756e64735c55736572506172746963697061746564496e53706c6974140028011c546f6b656e496400002801204d656d6265724964000018011c42616c616e636500001801284a6f7942616c616e63650000100138526576656e756553706c6974496400061c8855736572207061727469706174656420696e206120726576656e75652073706c69741c506172616d733a482d20746f6b656e206964656e746966696572642d207061727469636970616e742773206d656d6265722069647c2d207573657220616c6c6f6361746564207374616b65642062616c616e63657c2d206469766964656e6420616d6f756e7420284a4f5929206772616e746564682d20726576656e75652073706c6974206964656e74696669657240526576656e756553706c69744c6566740c0028011c546f6b656e496400002801204d656d6265724964000018011c42616c616e63650007145c55736572206c65667420726576656e75652073706c69741c506172616d733a482d20746f6b656e206964656e746966696572702d2065782d7061727469636970616e742773206d656d626572206964442d20616d6f756e7420756e7374616b6564544d656d6265724a6f696e656457686974656c6973740c0028011c546f6b656e496400002801204d656d62657249640000c50201385472616e73666572506f6c6963790008145c4d656d626572206a6f696e65642077686974656c6973741c506172616d733a482d20746f6b656e206964656e7469666965722c2d206d656d626572206964642d206f6e676f696e67207472616e7366657220706f6c6963793c4163636f756e744475737465644279100028011c546f6b656e496400002801204d656d626572496400000001244163636f756e7449640000c50201385472616e73666572506f6c696379000918384163636f756e74204475737465641c506172616d733a482d20746f6b656e206964656e7469666965729c2d206964206f662074686520647573746564206163636f756e74206f776e6572206d656d6265728c2d206163636f756e7420746861742063616c6c6564207468652065787472696e736963402d206f6e676f696e6720706f6c69637934546f6b656e4465697373756564040028011c546f6b656e4964000a0c38546f6b656e2044656973737565641c506172616d733a282d20746f6b656e2069642c546f6b656e497373756564080028011c546f6b656e49640000c902015c546f6b656e49737375616e6365506172616d6574657273000b1030546f6b656e204973737565641c506172616d733a282d20746f6b656e2069646c2d20746f6b656e2069737375616e636520706172616d657465727350546f6b656e53616c65496e697469616c697a6564100028011c546f6b656e4964000010012c546f6b656e53616c654964000021030124546f6b656e53616c6500003101013c4f7074696f6e3c5665633c75383e3e000c1864546f6b652053616c652077617320496e697469616c697a65641c506172616d733a282d20746f6b656e2069643c2d20746f6b656e2073616c65206964442d20746f6b656e2073616c652064617461542d20746f6b656e2073616c65206d65746164617461605570636f6d696e67546f6b656e53616c6555706461746564100028011c546f6b656e4964000010012c546f6b656e53616c65496400000102014c4f7074696f6e3c426c6f636b4e756d6265723e00000102014c4f7074696f6e3c426c6f636b4e756d6265723e000d187c5570636f6d696e6720546f6b656e2053616c652077617320557064617465641c506172616d733a282d20746f6b656e2069643c2d20746f6b656e2073616c65206964582d206e65772073616c6520737461727420626c6f636b4c2d206e65772073616c65206475726174696f6e54546f6b656e735075726368617365644f6e53616c65100028011c546f6b656e4964000010012c546f6b656e53616c654964000018011c42616c616e636500002801204d656d6265724964000e1860546f6b656e7320507572636861736564204f6e2053616c651c506172616d733a282d20746f6b656e2069643c2d20746f6b656e2073616c65206964702d20616d6f756e74206f6620746f6b656e73207075726368617365644c2d2062757965722773206d656d62657220696448546f6b656e53616c6546696e616c697a6564100028011c546f6b656e4964000010012c546f6b656e53616c654964000018011c42616c616e636500001801284a6f7942616c616e6365000f1850546f6b656e2053616c652046696e616c697a65641c506172616d733a282d20746f6b656e2069643c2d20746f6b656e2073616c652069648c2d20616d6f756e74206f6620756e736f6c6420746f6b656e73207265636f7665726564642d20616d6f756e74206f66204a4f5920636f6c6c6563746564945472616e73666572506f6c6963794368616e676564546f5065726d697373696f6e6c657373040028011c546f6b656e496400100ca45472616e7366657220506f6c696379204368616e67656420546f205065726d697373696f6e6c6573731c506172616d733a282d20746f6b656e20696430546f6b656e734275726e65640c0028011c546f6b656e496400002801204d656d6265724964000018011c42616c616e636500111434546f6b656e73204275726e65641c506172616d733a282d20746f6b656e2069642c2d206d656d626572206964642d206e756d626572206f6620746f6b656e73206275726e6564085c4576656e747320666f722074686973206d6f64756c652e00c5020c5070616c6c65745f70726f6a6563745f746f6b656e147479706573385472616e73666572506f6c696379041048617368012c0108385065726d697373696f6e6c657373000000305065726d697373696f6e656404002c01104861736800010000c9020c5070616c6c65745f70726f6a6563745f746f6b656e1474797065735c546f6b656e49737375616e6365506172616d6574657273101048617368012c3c546f6b656e416c6c6f636174696f6e01cd02505472616e73666572506f6c696379506172616d7301dd02204d656d6265724964012800140148696e697469616c5f616c6c6f636174696f6eed02018c42547265654d61703c4d656d62657249642c20546f6b656e416c6c6f636174696f6e3e00011873796d626f6c2c01104861736800013c7472616e736665725f706f6c696379dd0201505472616e73666572506f6c696379506172616d73000138706174726f6e6167655f72617465f9020128596561726c7952617465000148726576656e75655f73706c69745f72617465d502011c5065726d696c6c0000cd020c5070616c6c65745f70726f6a6563745f746f6b656e1474797065733c546f6b656e416c6c6f636174696f6e081c42616c616e636501185456657374696e675363686564756c65506172616d7301d10200080118616d6f756e7418011c42616c616e636500015c76657374696e675f7363686564756c655f706172616d73d90201744f7074696f6e3c56657374696e675363686564756c65506172616d733e0000d1020c5070616c6c65745f70726f6a6563745f746f6b656e1474797065735456657374696e675363686564756c65506172616d73042c426c6f636b4e756d6265720110000c015c6c696e6561725f76657374696e675f6475726174696f6e10012c426c6f636b4e756d62657200014c626c6f636b735f6265666f72655f636c69666610012c426c6f636b4e756d62657200015c636c6966665f616d6f756e745f70657263656e74616765d502011c5065726d696c6c0000d5020c3473705f61726974686d65746963287065725f7468696e67731c5065726d696c6c0000040010010c7533320000d90204184f7074696f6e04045401d1020108104e6f6e6500000010536f6d650400d1020000010000dd020c5070616c6c65745f70726f6a6563745f746f6b656e147479706573505472616e73666572506f6c696379506172616d73043c57686974656c697374506172616d7301e1020108385065726d697373696f6e6c657373000000305065726d697373696f6e65640400e102013c57686974656c697374506172616d7300010000e1020c5070616c6c65745f70726f6a6563745f746f6b656e1474797065733c57686974656c697374506172616d73081048617368012c7053696e676c65446174614f626a65637455706c6f6164506172616d7301e50200080128636f6d6d69746d656e742c01104861736800011c7061796c6f6164e90201904f7074696f6e3c53696e676c65446174614f626a65637455706c6f6164506172616d733e0000e5020c5070616c6c65745f70726f6a6563745f746f6b656e1474797065737053696e676c65446174614f626a65637455706c6f6164506172616d7304284a6f7942616c616e63650118000c01586f626a6563745f6372656174696f6e5f706172616d7321020170446174614f626a6563744372656174696f6e506172616d657465727300015865787065637465645f646174615f73697a655f6665651801284a6f7942616c616e636500019465787065637465645f646174615f6f626a6563745f73746174655f626c6f61745f626f6e641801284a6f7942616c616e63650000e90204184f7074696f6e04045401e5020108104e6f6e6500000010536f6d650400e5020000010000ed02042042547265654d617008044b0128045601cd02000400f102000000f102000002f50200f5020000040828cd0200f9020c5070616c6c65745f70726f6a6563745f746f6b656e14747970657328596561726c795261746500000400d502011c5065726d696c6c0000fd020c5070616c6c65745f70726f6a6563745f746f6b656e147479706573245472616e736665727308204d656d62657249640101031c5061796d656e740105030004001503016c42547265654d61703c4d656d62657249642c205061796d656e743e000001030c5070616c6c65745f70726f6a6563745f746f6b656e1474797065732456616c69646174656404204d656d626572496401280108204578697374696e6704002801204d656d62657249640000002c4e6f6e4578697374696e6704002801204d656d62657249640001000005030c5070616c6c65745f70726f6a6563745f746f6b656e1474797065734056616c6964617465645061796d656e7404485061796d656e745769746856657374696e670109030008011c7061796d656e74090301485061796d656e745769746856657374696e6700016476657374696e675f636c65616e75705f63616e6469646174650d0301544f7074696f6e3c56657374696e67536f757263653e000009030c5070616c6c65745f70726f6a6563745f746f6b656e147479706573485061796d656e745769746856657374696e67081c42616c616e636501185456657374696e675363686564756c65506172616d7301d10200080118616d6f756e7418011c42616c616e636500014076657374696e675f7363686564756c65d90201744f7074696f6e3c56657374696e675363686564756c65506172616d733e00000d0304184f7074696f6e0404540111030108104e6f6e6500000010536f6d6504001103000001000011030c5070616c6c65745f70726f6a6563745f746f6b656e1474797065733456657374696e67536f7572636500010c3c496e697469616c49737375616e63650000001053616c65040010012c546f6b656e53616c654964000100384973737565725472616e73666572040028010c753634000200001503042042547265654d617008044b0101030456010503000400190300000019030000021d03001d0300000408010305030021030c5070616c6c65745f70726f6a6563745f746f6b656e14747970657324546f6b656e53616c6518284a6f7942616c616e636501181c42616c616e636501182c426c6f636b4e756d62657201105456657374696e675363686564756c65506172616d7301d102204d656d62657249640128244163636f756e744964010000280128756e69745f70726963651801284a6f7942616c616e63650001347175616e746974795f6c65667418011c42616c616e636500013c66756e64735f636f6c6c65637465641801284a6f7942616c616e6365000134746f6b656e735f736f757263652801204d656d62657249640001506561726e696e67735f64657374696e6174696f6e9401444f7074696f6e3c4163636f756e7449643e00012c73746172745f626c6f636b10012c426c6f636b4e756d6265720001206475726174696f6e10012c426c6f636b4e756d62657200015c76657374696e675f7363686564756c655f706172616d73d90201744f7074696f6e3c56657374696e675363686564756c65506172616d733e0001386361705f7065725f6d656d6265724501013c4f7074696f6e3c42616c616e63653e0001346175746f5f66696e616c697a65980110626f6f6c000025030c3473705f61726974686d65746963287065725f7468696e67732c5065727175696e74696c6c0000040028010c75363400002903085c70616c6c65745f70726f706f73616c735f656e67696e65205261774576656e740c2850726f706f73616c49640110204d656d626572496401282c426c6f636b4e756d626572011001185450726f706f73616c53746174757355706461746564080010012850726f706f73616c496400002d03016c50726f706f73616c5374617475733c426c6f636b4e756d6265723e0000106c456d697473206f6e2070726f706f73616c206372656174696f6e2e1c506172616d733a4c2d204964206f6620612070726f706f73616c2e582d204e65772070726f706f73616c207374617475732e5050726f706f73616c4465636973696f6e4d616465080010012850726f706f73616c496400003103014050726f706f73616c4465636973696f6e000110b0456d697473206f6e2067657474696e6720612070726f706f73616c20737461747573206465636973696f6e2e1c506172616d733a4c2d204964206f6620612070726f706f73616c2e4c2d2050726f706f73616c206465636973696f6e4050726f706f73616c4578656375746564080010012850726f706f73616c496400003903013c457865637574696f6e53746174757300021070456d697473206f6e2070726f706f73616c20657865637574696f6e2e1c506172616d733a6c2d204964206f66206120757064617465642070726f706f73616c2e702d2050726f706f73616c20657865637574696f6e207374617475732e14566f74656410002801204d656d6265724964000010012850726f706f73616c496400003d030120566f74654b696e64000030011c5665633c75383e00031880456d697473206f6e20766f74696e6720666f72207468652070726f706f73616c1c506172616d733a7c2d20566f746572202d206d656d626572206964206f66206120766f7465722e4c2d204964206f6620612070726f706f73616c2e3c2d204b696e64206f6620766f74652e302d20526174696f6e616c652e4450726f706f73616c43616e63656c6c656408002801204d656d6265724964000010012850726f706f73616c49640004108c456d697473206f6e20612070726f706f73616c206265696e672063616e63656c6c65641c506172616d733a6c2d204d656d626572204964206f66207468652070726f706f736572502d204964206f66207468652070726f706f73616c4050726f706f73657252656d61726b65640c002801204d656d6265724964000010012850726f706f73616c4964000030011c5665633c75383e00051084456d697473206f6e2070726f706f736572206d616b696e6720612072656d61726b342d2070726f706f736572206964342d2070726f706f73616c206964242d206d6573736167650c5c4576656e747320666f722074686973206d6f64756c652e005c50726f706f73616c7320656e67696e65206576656e74732d03105c70616c6c65745f70726f706f73616c735f656e67696e651474797065734470726f706f73616c5f73746174757365733850726f706f73616c537461747573042c426c6f636b4e756d6265720110010c184163746976650000004050656e64696e67457865637574696f6e040010012c426c6f636b4e756d6265720001006050656e64696e67436f6e737469747574696f6e616c697479000200003103105c70616c6c65745f70726f706f73616c735f656e67696e651474797065734470726f706f73616c5f73746174757365734050726f706f73616c4465636973696f6e00011c2043616e63656c65640000004443616e63656c6564427952756e74696d65000100185665746f65640002002052656a65637465640003001c536c61736865640004001c4578706972656400050020417070726f766564040035030160417070726f76656450726f706f73616c4465636973696f6e000600003503105c70616c6c65745f70726f706f73616c735f656e67696e651474797065734470726f706f73616c5f737461747573657360417070726f76656450726f706f73616c4465636973696f6e0001084050656e64696e67457865637574696f6e0000006050656e64696e67436f6e737469747574696f6e616c697479000100003903105c70616c6c65745f70726f706f73616c735f656e67696e651474797065734470726f706f73616c5f73746174757365733c457865637574696f6e5374617475730001082045786563757465640000003c457865637574696f6e4661696c65640401146572726f7230011c5665633c75383e000100003d030c5c70616c6c65745f70726f706f73616c735f656e67696e6514747970657320566f74654b696e640001101c417070726f76650000001852656a65637400010014536c6173680002001c4162737461696e000300004103086c70616c6c65745f70726f706f73616c735f64697363757373696f6e205261774576656e740c2054687265616449640128204d656d6265724964012818506f737449640128011434546872656164437265617465640800280120546872656164496400002801204d656d626572496400000464456d697473206f6e20746872656164206372656174696f6e2e2c506f7374437265617465641400280118506f7374496400002801204d656d626572496400002801205468726561644964000030011c5665633c75383e0000980110626f6f6c0001045c456d697473206f6e20706f7374206372656174696f6e2e2c506f7374557064617465641000280118506f7374496400002801204d656d626572496400002801205468726561644964000030011c5665633c75383e00020454456d697473206f6e20706f7374207570646174652e445468726561644d6f64654368616e6765640c0028012054687265616449640000450301785468726561644d6f64653c42547265655365743c4d656d62657249643e3e00002801204d656d626572496400030470456d697473206f6e20746872656164206d6f6465206368616e67652e2c506f737444656c6574656410002801204d656d6265724964000028012054687265616449640000280118506f737449640000980110626f6f6c00040454456d697473206f6e20706f73742064656c657465640c5c4576656e747320666f722074686973206d6f64756c652e005c50726f706f73616c7320656e67696e65206576656e747345030c6c70616c6c65745f70726f706f73616c735f64697363757373696f6e147479706573285468726561644d6f6465043c54687265616457686974656c6973740169010108104f70656e00000018436c6f73656404006901013c54687265616457686974656c697374000100004903085870616c6c65745f70726f706f73616c735f636f646578205261774576656e74106447656e6572616c50726f706f73616c506172616d6574657273014d034450726f706f73616c44657461696c734f660151032850726f706f73616c49640110205468726561644964012801043c50726f706f73616c43726561746564100010012850726f706f73616c496400004d03016447656e6572616c50726f706f73616c506172616d657465727300005103014450726f706f73616c44657461696c734f660000280120546872656164496400001858412070726f706f73616c2077617320637265617465641c506172616d733afc2d204964206f662061206e65776c7920637265617465642070726f706f73616c2061667465722069742077617320736176656420696e2073746f726167652e01012d2047656e6572616c2070726f706f73616c20706172616d657465722e20506172616d65746572732073686172656420627920616c6c2070726f706f73616c7349012d2050726f706f73616c2044657461696c732e20506172616d65746572206f662070726f706f73616c207769746820612076617269616e7420666f722065616368206b696e64206f662070726f706f73616c9c2d204964206f662061206e65776c7920637265617465642070726f706f73616c20746872656164085c4576656e747320666f722074686973206d6f64756c652e004d030c5870616c6c65745f70726f706f73616c735f636f6465781474797065735447656e6572616c50726f706f73616c506172616d730c204d656d62657249640128244163636f756e74496401002c426c6f636b4e756d6265720110001401246d656d6265725f69642801204d656d62657249640001147469746c6530011c5665633c75383e00012c6465736372697074696f6e30011c5665633c75383e0001487374616b696e675f6163636f756e745f69649401444f7074696f6e3c4163636f756e7449643e00015465786163745f657865637574696f6e5f626c6f636b0102014c4f7074696f6e3c426c6f636b4e756d6265723e000051030c5870616c6c65745f70726f706f73616c735f636f6465781474797065733c50726f706f73616c44657461696c731c1c42616c616e636501182c426c6f636b4e756d6265720110244163636f756e744964010020576f726b657249640128244f70656e696e67496401282850726f706f73616c49640110785570646174654368616e6e656c5061796f757473506172616d6574657273017102015c185369676e616c040030011c5665633c75383e0000003852756e74696d6555706772616465040030011c5665633c75383e0001003846756e64696e67526571756573740400550301c45665633c46756e64696e6752657175657374506172616d65746572733c42616c616e63652c204163636f756e7449643e3e000200505365744d617856616c696461746f72436f756e74040010010c75333200030074437265617465576f726b696e6747726f75704c6561644f70656e696e6704005d0301b44372656174654f70656e696e67506172616d65746572733c426c6f636b4e756d6265722c2042616c616e63653e0004006c46696c6c576f726b696e6747726f75704c6561644f70656e696e6704006503015446696c6c4f70656e696e67506172616d657465727300050060557064617465576f726b696e6747726f75704275646765740c0018011c42616c616e6365000099010130576f726b696e6747726f757000009d01012c42616c616e63654b696e64000600744465637265617365576f726b696e6747726f75704c6561645374616b650c00280120576f726b65724964000018011c42616c616e6365000099010130576f726b696e6747726f757000070054536c617368576f726b696e6747726f75704c6561640c00280120576f726b65724964000018011c42616c616e6365000099010130576f726b696e6747726f757000080064536574576f726b696e6747726f75704c6561645265776172640c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e000099010130576f726b696e6747726f7570000900645465726d696e617465576f726b696e6747726f75704c6561640400690301a85465726d696e617465526f6c65506172616d65746572733c576f726b657249642c2042616c616e63653e000a0044416d656e64436f6e737469747574696f6e040030011c5665633c75383e000b007443616e63656c576f726b696e6747726f75704c6561644f70656e696e6708002801244f70656e696e674964000099010130576f726b696e6747726f7570000c00485365744d656d626572736869705072696365040018011c42616c616e6365000d0064536574436f756e63696c427564676574496e6372656d656e74040018011c42616c616e6365000e0048536574436f756e63696c6f72526577617264040018011c42616c616e6365000f006c536574496e697469616c496e7669746174696f6e42616c616e6365040018011c42616c616e636500100064536574496e697469616c496e7669746174696f6e436f756e74040010010c753332001100805365744d656d626572736869704c656164496e7669746174696f6e51756f7461040010010c75333200120038536574526566657272616c43757404000801087538001300305665746f50726f706f73616c040010012850726f706f73616c496400140050557064617465476c6f62616c4e66744c696d69740800890201384e66744c696d6974506572696f64000028010c753634001500505570646174654368616e6e656c5061796f7574730400710201785570646174654368616e6e656c5061796f757473506172616d65746572730016000055030000025903005903083470616c6c65745f636f6d6d6f6e6046756e64696e6752657175657374506172616d6574657273081c42616c616e63650118244163636f756e74496401000008011c6163636f756e740001244163636f756e744964000118616d6f756e7418011c42616c616e636500005d030c5870616c6c65745f70726f706f73616c735f636f6465781474797065735c4372656174654f70656e696e67506172616d6574657273082c426c6f636b4e756d62657201101c42616c616e636501180010012c6465736372697074696f6e30011c5665633c75383e0001307374616b655f706f6c696379610301845374616b65506f6c6963793c426c6f636b4e756d6265722c2042616c616e63653e0001407265776172645f7065725f626c6f636b4501013c4f7074696f6e3c42616c616e63653e00011467726f757099010130576f726b696e6747726f7570000061030c5070616c6c65745f776f726b696e675f67726f75701474797065732c5374616b65506f6c696379082c426c6f636b4e756d62657201101c42616c616e63650118000801307374616b655f616d6f756e7418011c42616c616e63650001606c656176696e675f756e7374616b696e675f706572696f6410012c426c6f636b4e756d626572000065030c5870616c6c65745f70726f706f73616c735f636f6465781474797065735446696c6c4f70656e696e67506172616d657465727300000c01286f70656e696e675f6964280160776f726b696e675f67726f75703a3a4f70656e696e6749640001386170706c69636174696f6e5f6964280170776f726b696e675f67726f75703a3a4170706c69636174696f6e4964000134776f726b696e675f67726f757099010130576f726b696e6747726f7570000069030c5870616c6c65745f70726f706f73616c735f636f6465781474797065735c5465726d696e617465526f6c65506172616d65746572730820576f726b6572496401281c42616c616e63650118000c0124776f726b65725f6964280120576f726b6572496400013c736c617368696e675f616d6f756e744501013c4f7074696f6e3c42616c616e63653e00011467726f757099010130576f726b696e6747726f757000006d03085070616c6c65745f776f726b696e675f67726f7570205261774576656e7430244f70656e696e6749640128344170706c69636174696f6e49640128684170706c69636174696f6e4964546f576f726b657249644d617001710320576f726b657249640128244163636f756e74496401001c42616c616e636501182c4f70656e696e6754797065017d032c5374616b65506f6c696379016103604170706c794f6e4f70656e696e67506172616d6574657273018103204d656d626572496401281048617368012c04490189030164304f70656e696e67416464656414002801244f70656e696e674964000030011c5665633c75383e00007d03012c4f70656e696e675479706500006103012c5374616b65506f6c69637900004501013c4f7074696f6e3c42616c616e63653e00001c80456d697473206f6e20616464696e67206e6577206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e67206964342d204465736372697074696f6e782d204f70656e696e672054797065284c656164206f7220576f726b657229782d205374616b6520506f6c69637920666f7220746865206f70656e696e67482d205265776172642070657220626c6f636b404170706c6965644f6e4f70656e696e670800810301604170706c794f6e4f70656e696e67506172616d657465727300002801344170706c69636174696f6e4964000110dc456d697473206f6e20616464696e6720746865206170706c69636174696f6e20666f722074686520776f726b6572206f70656e696e672e1c506172616d733a542d204f70656e696e6720706172616d657465726573402d204170706c69636174696f6e206964344f70656e696e6746696c6c65640c002801244f70656e696e6749640000710301684170706c69636174696f6e4964546f576f726b657249644d617000006901015c42547265655365743c4170706c69636174696f6e49643e00021484456d697473206f6e2066696c6c696e6720746865206a6f62206f70656e696e672e1c506172616d733a4c2d20576f726b6572206f70656e696e67206964cc2d20576f726b6572206170706c69636174696f6e20696420746f2074686520776f726b65722069642064696374696f6e617279ac2d204170706c69636174696f6e6420696473207573656420746f2066696c6c20746865206f70656e696e67244c65616465725365740400280120576f726b6572496400030c88456d697473206f6e2073657474696e67207468652067726f7570206c65616465722e1c506172616d733a482d2047726f757020776f726b65722069642e60576f726b6572526f6c654163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964000410c4456d697473206f6e207570646174696e672074686520726f6c65206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e802d20526f6c65206163636f756e74206964206f662074686520776f726b65722e2c4c6561646572556e7365740005047c456d697473206f6e20756e2d73657474696e6720746865206c65616465722e30576f726b65724578697465640400280120576f726b6572496400061070456d697473206f6e2065786974696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e302d20526174696f6e616c652e50576f726b6572537461727465644c656176696e670800280120576f726b6572496400003101013c4f7074696f6e3c5665633c75383e3e000710b4456d697473207768656e20776f726b65722073746172746564206c656176696e6720746865697220726f6c652e1c506172616d733a302d20576f726b65722069642e302d20526174696f6e616c652e405465726d696e61746564576f726b65720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00081480456d697473206f6e207465726d696e6174696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e405465726d696e617465644c65616465720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00091480456d697473206f6e207465726d696e6174696e6720746865206c65616465722e1c506172616d733a4c2d206c656164657220776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e305374616b65536c61736865641000280120576f726b65724964000018011c42616c616e6365000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e000a18c0456d697473206f6e20736c617368696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e642d2061637475616c20736c61736865642062616c616e63652e702d2052657175657374656420736c61736865642062616c616e63652e302d20526174696f6e616c652e385374616b654465637265617365640800280120576f726b65724964000018011c42616c616e6365000b10c8456d697473206f6e2064656372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74385374616b65496e637265617365640800280120576f726b65724964000018011c42616c616e6365000c10c8456d697473206f6e20696e6372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74504170706c69636174696f6e57697468647261776e04002801344170706c69636174696f6e4964000d0c2501456d697473206f6e207769746864726177696e6720746865206170706c69636174696f6e20666f722074686520726567756c617220776f726b65722f6c656164206f70656e696e672e1c506172616d733a502d204a6f62206170706c69636174696f6e2069643c4f70656e696e6743616e63656c656404002801244f70656e696e674964000e0c8c456d697473206f6e2063616e63656c696e6720746865206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e6720696424427564676574536574040018011c42616c616e6365000f0cc8456d697473206f6e2073657474696e67207468652062756467657420666f722074686520776f726b696e672067726f75702e1c506172616d733a302d206e65772062756467657468576f726b65725265776172644163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964001010cc456d697473206f6e207570646174696e672074686520726577617264206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e882d20526577617264206163636f756e74206964206f662074686520776f726b65722e64576f726b6572526577617264416d6f756e74557064617465640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e001110c8456d697473206f6e207570646174696e67207468652072657761726420616d6f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e482d205265776172642070657220626c6f636b44537461747573546578744368616e67656408002c01104861736800003101013c4f7074696f6e3c5665633c75383e3e001210dc456d697473206f6e207570646174696e6720746865207374617475732074657874206f662074686520776f726b696e672067726f75702e1c506172616d733a482d2073746174757320746578742068617368342d207374617475732074657874384275646765745370656e64696e670c000001244163636f756e744964000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e001314c8456d697473206f6e206275646765742066726f6d2074686520776f726b696e672067726f7570206265696e67207370656e741c506172616d733a582d205265636569766572204163636f756e742049642e402d2042616c616e6365207370656e742e302d20526174696f6e616c652e28526577617264506169641000280120576f726b6572496400000001244163636f756e744964000018011c42616c616e636500008d0301445265776172645061796d656e74547970650014186c456d697473206f6e20706179696e6720746865207265776172642e1c506172616d733a4c2d204964206f662074686520776f726b65722e582d205265636569766572204163636f756e742049642e202d20526577617264b42d205061796d656e74207479706520286d697373656420726577617264206f7220726567756c6172206f6e65296c4e65774d69737365645265776172644c6576656c526561636865640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00151090456d697473206f6e207265616368696e67206e6577206d6973736564207265776172642e1c506172616d733a302d20576f726b65722049442ee82d204d69737365642072657761726420286f7074696f6e616c292e204e6f6e65206d65616e7320276e6f206d697373656420726577617264272e60576f726b696e6747726f757042756467657446756e6465640c002801204d656d6265724964000018011c42616c616e6365000030011c5665633c75383e0016147846756e642074686520776f726b696e672067726f7570206275646765742e1c506172616d733a2c2d204d656d6265722049444c2d20416d6f756e74206f662062616c616e63652c2d20526174696f6e616c65304c65616452656d61726b6564040030011c5665633c75383e00170c94456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a242d206d65737361676538576f726b657252656d61726b65640800280120576f726b65724964000030011c5665633c75383e00181094456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a202d20776f726b6572242d206d6573736167650c5c4576656e747320666f722074686973206d6f64756c652e00385f47726f75705f206576656e74737103042042547265654d617008044b012804560128000400750300000075030000027903007903000004082828007d030c5070616c6c65745f776f726b696e675f67726f75701474797065732c4f70656e696e6754797065000108184c65616465720000001c526567756c61720001000081030c5070616c6c65745f776f726b696e675f67726f7570147479706573504170706c794f6e4f70656e696e67506172616d7310204d656d62657249640128244f70656e696e6749640128244163636f756e74496401001c42616c616e63650118001801246d656d6265725f69642801204d656d62657249640001286f70656e696e675f69642801244f70656e696e67496400013c726f6c655f6163636f756e745f69640001244163636f756e7449640001447265776172645f6163636f756e745f69640001244163636f756e74496400012c6465736372697074696f6e30011c5665633c75383e0001407374616b655f706172616d65746572738503018c5374616b65506172616d65746572733c4163636f756e7449642c2042616c616e63653e000085030c5070616c6c65745f776f726b696e675f67726f75701474797065733c5374616b65506172616d657465727308244163636f756e74496401001c42616c616e63650118000801147374616b6518011c42616c616e63650001487374616b696e675f6163636f756e745f69640001244163636f756e74496400008903085070616c6c65745f776f726b696e675f67726f757024496e7374616e636531000000008d030c5070616c6c65745f776f726b696e675f67726f7570147479706573445265776172645061796d656e7454797065000108304d697373656452657761726400000034526567756c6172526577617264000100009103085070616c6c65745f776f726b696e675f67726f7570205261774576656e7430244f70656e696e6749640128344170706c69636174696f6e49640128684170706c69636174696f6e4964546f576f726b657249644d617001710320576f726b657249640128244163636f756e74496401001c42616c616e636501182c4f70656e696e6754797065017d032c5374616b65506f6c696379016103604170706c794f6e4f70656e696e67506172616d6574657273018103204d656d626572496401281048617368012c04490195030164304f70656e696e67416464656414002801244f70656e696e674964000030011c5665633c75383e00007d03012c4f70656e696e675479706500006103012c5374616b65506f6c69637900004501013c4f7074696f6e3c42616c616e63653e00001c80456d697473206f6e20616464696e67206e6577206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e67206964342d204465736372697074696f6e782d204f70656e696e672054797065284c656164206f7220576f726b657229782d205374616b6520506f6c69637920666f7220746865206f70656e696e67482d205265776172642070657220626c6f636b404170706c6965644f6e4f70656e696e670800810301604170706c794f6e4f70656e696e67506172616d657465727300002801344170706c69636174696f6e4964000110dc456d697473206f6e20616464696e6720746865206170706c69636174696f6e20666f722074686520776f726b6572206f70656e696e672e1c506172616d733a542d204f70656e696e6720706172616d657465726573402d204170706c69636174696f6e206964344f70656e696e6746696c6c65640c002801244f70656e696e6749640000710301684170706c69636174696f6e4964546f576f726b657249644d617000006901015c42547265655365743c4170706c69636174696f6e49643e00021484456d697473206f6e2066696c6c696e6720746865206a6f62206f70656e696e672e1c506172616d733a4c2d20576f726b6572206f70656e696e67206964cc2d20576f726b6572206170706c69636174696f6e20696420746f2074686520776f726b65722069642064696374696f6e617279ac2d204170706c69636174696f6e6420696473207573656420746f2066696c6c20746865206f70656e696e67244c65616465725365740400280120576f726b6572496400030c88456d697473206f6e2073657474696e67207468652067726f7570206c65616465722e1c506172616d733a482d2047726f757020776f726b65722069642e60576f726b6572526f6c654163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964000410c4456d697473206f6e207570646174696e672074686520726f6c65206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e802d20526f6c65206163636f756e74206964206f662074686520776f726b65722e2c4c6561646572556e7365740005047c456d697473206f6e20756e2d73657474696e6720746865206c65616465722e30576f726b65724578697465640400280120576f726b6572496400061070456d697473206f6e2065786974696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e302d20526174696f6e616c652e50576f726b6572537461727465644c656176696e670800280120576f726b6572496400003101013c4f7074696f6e3c5665633c75383e3e000710b4456d697473207768656e20776f726b65722073746172746564206c656176696e6720746865697220726f6c652e1c506172616d733a302d20576f726b65722069642e302d20526174696f6e616c652e405465726d696e61746564576f726b65720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00081480456d697473206f6e207465726d696e6174696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e405465726d696e617465644c65616465720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00091480456d697473206f6e207465726d696e6174696e6720746865206c65616465722e1c506172616d733a4c2d206c656164657220776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e305374616b65536c61736865641000280120576f726b65724964000018011c42616c616e6365000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e000a18c0456d697473206f6e20736c617368696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e642d2061637475616c20736c61736865642062616c616e63652e702d2052657175657374656420736c61736865642062616c616e63652e302d20526174696f6e616c652e385374616b654465637265617365640800280120576f726b65724964000018011c42616c616e6365000b10c8456d697473206f6e2064656372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74385374616b65496e637265617365640800280120576f726b65724964000018011c42616c616e6365000c10c8456d697473206f6e20696e6372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74504170706c69636174696f6e57697468647261776e04002801344170706c69636174696f6e4964000d0c2501456d697473206f6e207769746864726177696e6720746865206170706c69636174696f6e20666f722074686520726567756c617220776f726b65722f6c656164206f70656e696e672e1c506172616d733a502d204a6f62206170706c69636174696f6e2069643c4f70656e696e6743616e63656c656404002801244f70656e696e674964000e0c8c456d697473206f6e2063616e63656c696e6720746865206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e6720696424427564676574536574040018011c42616c616e6365000f0cc8456d697473206f6e2073657474696e67207468652062756467657420666f722074686520776f726b696e672067726f75702e1c506172616d733a302d206e65772062756467657468576f726b65725265776172644163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964001010cc456d697473206f6e207570646174696e672074686520726577617264206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e882d20526577617264206163636f756e74206964206f662074686520776f726b65722e64576f726b6572526577617264416d6f756e74557064617465640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e001110c8456d697473206f6e207570646174696e67207468652072657761726420616d6f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e482d205265776172642070657220626c6f636b44537461747573546578744368616e67656408002c01104861736800003101013c4f7074696f6e3c5665633c75383e3e001210dc456d697473206f6e207570646174696e6720746865207374617475732074657874206f662074686520776f726b696e672067726f75702e1c506172616d733a482d2073746174757320746578742068617368342d207374617475732074657874384275646765745370656e64696e670c000001244163636f756e744964000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e001314c8456d697473206f6e206275646765742066726f6d2074686520776f726b696e672067726f7570206265696e67207370656e741c506172616d733a582d205265636569766572204163636f756e742049642e402d2042616c616e6365207370656e742e302d20526174696f6e616c652e28526577617264506169641000280120576f726b6572496400000001244163636f756e744964000018011c42616c616e636500008d0301445265776172645061796d656e74547970650014186c456d697473206f6e20706179696e6720746865207265776172642e1c506172616d733a4c2d204964206f662074686520776f726b65722e582d205265636569766572204163636f756e742049642e202d20526577617264b42d205061796d656e74207479706520286d697373656420726577617264206f7220726567756c6172206f6e65296c4e65774d69737365645265776172644c6576656c526561636865640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00151090456d697473206f6e207265616368696e67206e6577206d6973736564207265776172642e1c506172616d733a302d20576f726b65722049442ee82d204d69737365642072657761726420286f7074696f6e616c292e204e6f6e65206d65616e7320276e6f206d697373656420726577617264272e60576f726b696e6747726f757042756467657446756e6465640c002801204d656d6265724964000018011c42616c616e6365000030011c5665633c75383e0016147846756e642074686520776f726b696e672067726f7570206275646765742e1c506172616d733a2c2d204d656d6265722049444c2d20416d6f756e74206f662062616c616e63652c2d20526174696f6e616c65304c65616452656d61726b6564040030011c5665633c75383e00170c94456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a242d206d65737361676538576f726b657252656d61726b65640800280120576f726b65724964000030011c5665633c75383e00181094456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a202d20776f726b6572242d206d6573736167650c5c4576656e747320666f722074686973206d6f64756c652e00385f47726f75705f206576656e74739503085070616c6c65745f776f726b696e675f67726f757024496e7374616e636532000000009903085070616c6c65745f776f726b696e675f67726f7570205261774576656e7430244f70656e696e6749640128344170706c69636174696f6e49640128684170706c69636174696f6e4964546f576f726b657249644d617001710320576f726b657249640128244163636f756e74496401001c42616c616e636501182c4f70656e696e6754797065017d032c5374616b65506f6c696379016103604170706c794f6e4f70656e696e67506172616d6574657273018103204d656d626572496401281048617368012c0449019d030164304f70656e696e67416464656414002801244f70656e696e674964000030011c5665633c75383e00007d03012c4f70656e696e675479706500006103012c5374616b65506f6c69637900004501013c4f7074696f6e3c42616c616e63653e00001c80456d697473206f6e20616464696e67206e6577206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e67206964342d204465736372697074696f6e782d204f70656e696e672054797065284c656164206f7220576f726b657229782d205374616b6520506f6c69637920666f7220746865206f70656e696e67482d205265776172642070657220626c6f636b404170706c6965644f6e4f70656e696e670800810301604170706c794f6e4f70656e696e67506172616d657465727300002801344170706c69636174696f6e4964000110dc456d697473206f6e20616464696e6720746865206170706c69636174696f6e20666f722074686520776f726b6572206f70656e696e672e1c506172616d733a542d204f70656e696e6720706172616d657465726573402d204170706c69636174696f6e206964344f70656e696e6746696c6c65640c002801244f70656e696e6749640000710301684170706c69636174696f6e4964546f576f726b657249644d617000006901015c42547265655365743c4170706c69636174696f6e49643e00021484456d697473206f6e2066696c6c696e6720746865206a6f62206f70656e696e672e1c506172616d733a4c2d20576f726b6572206f70656e696e67206964cc2d20576f726b6572206170706c69636174696f6e20696420746f2074686520776f726b65722069642064696374696f6e617279ac2d204170706c69636174696f6e6420696473207573656420746f2066696c6c20746865206f70656e696e67244c65616465725365740400280120576f726b6572496400030c88456d697473206f6e2073657474696e67207468652067726f7570206c65616465722e1c506172616d733a482d2047726f757020776f726b65722069642e60576f726b6572526f6c654163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964000410c4456d697473206f6e207570646174696e672074686520726f6c65206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e802d20526f6c65206163636f756e74206964206f662074686520776f726b65722e2c4c6561646572556e7365740005047c456d697473206f6e20756e2d73657474696e6720746865206c65616465722e30576f726b65724578697465640400280120576f726b6572496400061070456d697473206f6e2065786974696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e302d20526174696f6e616c652e50576f726b6572537461727465644c656176696e670800280120576f726b6572496400003101013c4f7074696f6e3c5665633c75383e3e000710b4456d697473207768656e20776f726b65722073746172746564206c656176696e6720746865697220726f6c652e1c506172616d733a302d20576f726b65722069642e302d20526174696f6e616c652e405465726d696e61746564576f726b65720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00081480456d697473206f6e207465726d696e6174696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e405465726d696e617465644c65616465720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00091480456d697473206f6e207465726d696e6174696e6720746865206c65616465722e1c506172616d733a4c2d206c656164657220776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e305374616b65536c61736865641000280120576f726b65724964000018011c42616c616e6365000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e000a18c0456d697473206f6e20736c617368696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e642d2061637475616c20736c61736865642062616c616e63652e702d2052657175657374656420736c61736865642062616c616e63652e302d20526174696f6e616c652e385374616b654465637265617365640800280120576f726b65724964000018011c42616c616e6365000b10c8456d697473206f6e2064656372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74385374616b65496e637265617365640800280120576f726b65724964000018011c42616c616e6365000c10c8456d697473206f6e20696e6372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74504170706c69636174696f6e57697468647261776e04002801344170706c69636174696f6e4964000d0c2501456d697473206f6e207769746864726177696e6720746865206170706c69636174696f6e20666f722074686520726567756c617220776f726b65722f6c656164206f70656e696e672e1c506172616d733a502d204a6f62206170706c69636174696f6e2069643c4f70656e696e6743616e63656c656404002801244f70656e696e674964000e0c8c456d697473206f6e2063616e63656c696e6720746865206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e6720696424427564676574536574040018011c42616c616e6365000f0cc8456d697473206f6e2073657474696e67207468652062756467657420666f722074686520776f726b696e672067726f75702e1c506172616d733a302d206e65772062756467657468576f726b65725265776172644163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964001010cc456d697473206f6e207570646174696e672074686520726577617264206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e882d20526577617264206163636f756e74206964206f662074686520776f726b65722e64576f726b6572526577617264416d6f756e74557064617465640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e001110c8456d697473206f6e207570646174696e67207468652072657761726420616d6f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e482d205265776172642070657220626c6f636b44537461747573546578744368616e67656408002c01104861736800003101013c4f7074696f6e3c5665633c75383e3e001210dc456d697473206f6e207570646174696e6720746865207374617475732074657874206f662074686520776f726b696e672067726f75702e1c506172616d733a482d2073746174757320746578742068617368342d207374617475732074657874384275646765745370656e64696e670c000001244163636f756e744964000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e001314c8456d697473206f6e206275646765742066726f6d2074686520776f726b696e672067726f7570206265696e67207370656e741c506172616d733a582d205265636569766572204163636f756e742049642e402d2042616c616e6365207370656e742e302d20526174696f6e616c652e28526577617264506169641000280120576f726b6572496400000001244163636f756e744964000018011c42616c616e636500008d0301445265776172645061796d656e74547970650014186c456d697473206f6e20706179696e6720746865207265776172642e1c506172616d733a4c2d204964206f662074686520776f726b65722e582d205265636569766572204163636f756e742049642e202d20526577617264b42d205061796d656e74207479706520286d697373656420726577617264206f7220726567756c6172206f6e65296c4e65774d69737365645265776172644c6576656c526561636865640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00151090456d697473206f6e207265616368696e67206e6577206d6973736564207265776172642e1c506172616d733a302d20576f726b65722049442ee82d204d69737365642072657761726420286f7074696f6e616c292e204e6f6e65206d65616e7320276e6f206d697373656420726577617264272e60576f726b696e6747726f757042756467657446756e6465640c002801204d656d6265724964000018011c42616c616e6365000030011c5665633c75383e0016147846756e642074686520776f726b696e672067726f7570206275646765742e1c506172616d733a2c2d204d656d6265722049444c2d20416d6f756e74206f662062616c616e63652c2d20526174696f6e616c65304c65616452656d61726b6564040030011c5665633c75383e00170c94456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a242d206d65737361676538576f726b657252656d61726b65640800280120576f726b65724964000030011c5665633c75383e00181094456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a202d20776f726b6572242d206d6573736167650c5c4576656e747320666f722074686973206d6f64756c652e00385f47726f75705f206576656e74739d03085070616c6c65745f776f726b696e675f67726f757024496e7374616e63653300000000a103085070616c6c65745f776f726b696e675f67726f7570205261774576656e7430244f70656e696e6749640128344170706c69636174696f6e49640128684170706c69636174696f6e4964546f576f726b657249644d617001710320576f726b657249640128244163636f756e74496401001c42616c616e636501182c4f70656e696e6754797065017d032c5374616b65506f6c696379016103604170706c794f6e4f70656e696e67506172616d6574657273018103204d656d626572496401281048617368012c044901a5030164304f70656e696e67416464656414002801244f70656e696e674964000030011c5665633c75383e00007d03012c4f70656e696e675479706500006103012c5374616b65506f6c69637900004501013c4f7074696f6e3c42616c616e63653e00001c80456d697473206f6e20616464696e67206e6577206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e67206964342d204465736372697074696f6e782d204f70656e696e672054797065284c656164206f7220576f726b657229782d205374616b6520506f6c69637920666f7220746865206f70656e696e67482d205265776172642070657220626c6f636b404170706c6965644f6e4f70656e696e670800810301604170706c794f6e4f70656e696e67506172616d657465727300002801344170706c69636174696f6e4964000110dc456d697473206f6e20616464696e6720746865206170706c69636174696f6e20666f722074686520776f726b6572206f70656e696e672e1c506172616d733a542d204f70656e696e6720706172616d657465726573402d204170706c69636174696f6e206964344f70656e696e6746696c6c65640c002801244f70656e696e6749640000710301684170706c69636174696f6e4964546f576f726b657249644d617000006901015c42547265655365743c4170706c69636174696f6e49643e00021484456d697473206f6e2066696c6c696e6720746865206a6f62206f70656e696e672e1c506172616d733a4c2d20576f726b6572206f70656e696e67206964cc2d20576f726b6572206170706c69636174696f6e20696420746f2074686520776f726b65722069642064696374696f6e617279ac2d204170706c69636174696f6e6420696473207573656420746f2066696c6c20746865206f70656e696e67244c65616465725365740400280120576f726b6572496400030c88456d697473206f6e2073657474696e67207468652067726f7570206c65616465722e1c506172616d733a482d2047726f757020776f726b65722069642e60576f726b6572526f6c654163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964000410c4456d697473206f6e207570646174696e672074686520726f6c65206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e802d20526f6c65206163636f756e74206964206f662074686520776f726b65722e2c4c6561646572556e7365740005047c456d697473206f6e20756e2d73657474696e6720746865206c65616465722e30576f726b65724578697465640400280120576f726b6572496400061070456d697473206f6e2065786974696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e302d20526174696f6e616c652e50576f726b6572537461727465644c656176696e670800280120576f726b6572496400003101013c4f7074696f6e3c5665633c75383e3e000710b4456d697473207768656e20776f726b65722073746172746564206c656176696e6720746865697220726f6c652e1c506172616d733a302d20576f726b65722069642e302d20526174696f6e616c652e405465726d696e61746564576f726b65720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00081480456d697473206f6e207465726d696e6174696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e405465726d696e617465644c65616465720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00091480456d697473206f6e207465726d696e6174696e6720746865206c65616465722e1c506172616d733a4c2d206c656164657220776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e305374616b65536c61736865641000280120576f726b65724964000018011c42616c616e6365000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e000a18c0456d697473206f6e20736c617368696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e642d2061637475616c20736c61736865642062616c616e63652e702d2052657175657374656420736c61736865642062616c616e63652e302d20526174696f6e616c652e385374616b654465637265617365640800280120576f726b65724964000018011c42616c616e6365000b10c8456d697473206f6e2064656372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74385374616b65496e637265617365640800280120576f726b65724964000018011c42616c616e6365000c10c8456d697473206f6e20696e6372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74504170706c69636174696f6e57697468647261776e04002801344170706c69636174696f6e4964000d0c2501456d697473206f6e207769746864726177696e6720746865206170706c69636174696f6e20666f722074686520726567756c617220776f726b65722f6c656164206f70656e696e672e1c506172616d733a502d204a6f62206170706c69636174696f6e2069643c4f70656e696e6743616e63656c656404002801244f70656e696e674964000e0c8c456d697473206f6e2063616e63656c696e6720746865206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e6720696424427564676574536574040018011c42616c616e6365000f0cc8456d697473206f6e2073657474696e67207468652062756467657420666f722074686520776f726b696e672067726f75702e1c506172616d733a302d206e65772062756467657468576f726b65725265776172644163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964001010cc456d697473206f6e207570646174696e672074686520726577617264206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e882d20526577617264206163636f756e74206964206f662074686520776f726b65722e64576f726b6572526577617264416d6f756e74557064617465640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e001110c8456d697473206f6e207570646174696e67207468652072657761726420616d6f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e482d205265776172642070657220626c6f636b44537461747573546578744368616e67656408002c01104861736800003101013c4f7074696f6e3c5665633c75383e3e001210dc456d697473206f6e207570646174696e6720746865207374617475732074657874206f662074686520776f726b696e672067726f75702e1c506172616d733a482d2073746174757320746578742068617368342d207374617475732074657874384275646765745370656e64696e670c000001244163636f756e744964000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e001314c8456d697473206f6e206275646765742066726f6d2074686520776f726b696e672067726f7570206265696e67207370656e741c506172616d733a582d205265636569766572204163636f756e742049642e402d2042616c616e6365207370656e742e302d20526174696f6e616c652e28526577617264506169641000280120576f726b6572496400000001244163636f756e744964000018011c42616c616e636500008d0301445265776172645061796d656e74547970650014186c456d697473206f6e20706179696e6720746865207265776172642e1c506172616d733a4c2d204964206f662074686520776f726b65722e582d205265636569766572204163636f756e742049642e202d20526577617264b42d205061796d656e74207479706520286d697373656420726577617264206f7220726567756c6172206f6e65296c4e65774d69737365645265776172644c6576656c526561636865640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00151090456d697473206f6e207265616368696e67206e6577206d6973736564207265776172642e1c506172616d733a302d20576f726b65722049442ee82d204d69737365642072657761726420286f7074696f6e616c292e204e6f6e65206d65616e7320276e6f206d697373656420726577617264272e60576f726b696e6747726f757042756467657446756e6465640c002801204d656d6265724964000018011c42616c616e6365000030011c5665633c75383e0016147846756e642074686520776f726b696e672067726f7570206275646765742e1c506172616d733a2c2d204d656d6265722049444c2d20416d6f756e74206f662062616c616e63652c2d20526174696f6e616c65304c65616452656d61726b6564040030011c5665633c75383e00170c94456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a242d206d65737361676538576f726b657252656d61726b65640800280120576f726b65724964000030011c5665633c75383e00181094456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a202d20776f726b6572242d206d6573736167650c5c4576656e747320666f722074686973206d6f64756c652e00385f47726f75705f206576656e7473a503085070616c6c65745f776f726b696e675f67726f757024496e7374616e63653400000000a903085070616c6c65745f776f726b696e675f67726f7570205261774576656e7430244f70656e696e6749640128344170706c69636174696f6e49640128684170706c69636174696f6e4964546f576f726b657249644d617001710320576f726b657249640128244163636f756e74496401001c42616c616e636501182c4f70656e696e6754797065017d032c5374616b65506f6c696379016103604170706c794f6e4f70656e696e67506172616d6574657273018103204d656d626572496401281048617368012c044901ad030164304f70656e696e67416464656414002801244f70656e696e674964000030011c5665633c75383e00007d03012c4f70656e696e675479706500006103012c5374616b65506f6c69637900004501013c4f7074696f6e3c42616c616e63653e00001c80456d697473206f6e20616464696e67206e6577206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e67206964342d204465736372697074696f6e782d204f70656e696e672054797065284c656164206f7220576f726b657229782d205374616b6520506f6c69637920666f7220746865206f70656e696e67482d205265776172642070657220626c6f636b404170706c6965644f6e4f70656e696e670800810301604170706c794f6e4f70656e696e67506172616d657465727300002801344170706c69636174696f6e4964000110dc456d697473206f6e20616464696e6720746865206170706c69636174696f6e20666f722074686520776f726b6572206f70656e696e672e1c506172616d733a542d204f70656e696e6720706172616d657465726573402d204170706c69636174696f6e206964344f70656e696e6746696c6c65640c002801244f70656e696e6749640000710301684170706c69636174696f6e4964546f576f726b657249644d617000006901015c42547265655365743c4170706c69636174696f6e49643e00021484456d697473206f6e2066696c6c696e6720746865206a6f62206f70656e696e672e1c506172616d733a4c2d20576f726b6572206f70656e696e67206964cc2d20576f726b6572206170706c69636174696f6e20696420746f2074686520776f726b65722069642064696374696f6e617279ac2d204170706c69636174696f6e6420696473207573656420746f2066696c6c20746865206f70656e696e67244c65616465725365740400280120576f726b6572496400030c88456d697473206f6e2073657474696e67207468652067726f7570206c65616465722e1c506172616d733a482d2047726f757020776f726b65722069642e60576f726b6572526f6c654163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964000410c4456d697473206f6e207570646174696e672074686520726f6c65206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e802d20526f6c65206163636f756e74206964206f662074686520776f726b65722e2c4c6561646572556e7365740005047c456d697473206f6e20756e2d73657474696e6720746865206c65616465722e30576f726b65724578697465640400280120576f726b6572496400061070456d697473206f6e2065786974696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e302d20526174696f6e616c652e50576f726b6572537461727465644c656176696e670800280120576f726b6572496400003101013c4f7074696f6e3c5665633c75383e3e000710b4456d697473207768656e20776f726b65722073746172746564206c656176696e6720746865697220726f6c652e1c506172616d733a302d20576f726b65722069642e302d20526174696f6e616c652e405465726d696e61746564576f726b65720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00081480456d697473206f6e207465726d696e6174696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e405465726d696e617465644c65616465720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00091480456d697473206f6e207465726d696e6174696e6720746865206c65616465722e1c506172616d733a4c2d206c656164657220776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e305374616b65536c61736865641000280120576f726b65724964000018011c42616c616e6365000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e000a18c0456d697473206f6e20736c617368696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e642d2061637475616c20736c61736865642062616c616e63652e702d2052657175657374656420736c61736865642062616c616e63652e302d20526174696f6e616c652e385374616b654465637265617365640800280120576f726b65724964000018011c42616c616e6365000b10c8456d697473206f6e2064656372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74385374616b65496e637265617365640800280120576f726b65724964000018011c42616c616e6365000c10c8456d697473206f6e20696e6372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74504170706c69636174696f6e57697468647261776e04002801344170706c69636174696f6e4964000d0c2501456d697473206f6e207769746864726177696e6720746865206170706c69636174696f6e20666f722074686520726567756c617220776f726b65722f6c656164206f70656e696e672e1c506172616d733a502d204a6f62206170706c69636174696f6e2069643c4f70656e696e6743616e63656c656404002801244f70656e696e674964000e0c8c456d697473206f6e2063616e63656c696e6720746865206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e6720696424427564676574536574040018011c42616c616e6365000f0cc8456d697473206f6e2073657474696e67207468652062756467657420666f722074686520776f726b696e672067726f75702e1c506172616d733a302d206e65772062756467657468576f726b65725265776172644163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964001010cc456d697473206f6e207570646174696e672074686520726577617264206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e882d20526577617264206163636f756e74206964206f662074686520776f726b65722e64576f726b6572526577617264416d6f756e74557064617465640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e001110c8456d697473206f6e207570646174696e67207468652072657761726420616d6f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e482d205265776172642070657220626c6f636b44537461747573546578744368616e67656408002c01104861736800003101013c4f7074696f6e3c5665633c75383e3e001210dc456d697473206f6e207570646174696e6720746865207374617475732074657874206f662074686520776f726b696e672067726f75702e1c506172616d733a482d2073746174757320746578742068617368342d207374617475732074657874384275646765745370656e64696e670c000001244163636f756e744964000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e001314c8456d697473206f6e206275646765742066726f6d2074686520776f726b696e672067726f7570206265696e67207370656e741c506172616d733a582d205265636569766572204163636f756e742049642e402d2042616c616e6365207370656e742e302d20526174696f6e616c652e28526577617264506169641000280120576f726b6572496400000001244163636f756e744964000018011c42616c616e636500008d0301445265776172645061796d656e74547970650014186c456d697473206f6e20706179696e6720746865207265776172642e1c506172616d733a4c2d204964206f662074686520776f726b65722e582d205265636569766572204163636f756e742049642e202d20526577617264b42d205061796d656e74207479706520286d697373656420726577617264206f7220726567756c6172206f6e65296c4e65774d69737365645265776172644c6576656c526561636865640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00151090456d697473206f6e207265616368696e67206e6577206d6973736564207265776172642e1c506172616d733a302d20576f726b65722049442ee82d204d69737365642072657761726420286f7074696f6e616c292e204e6f6e65206d65616e7320276e6f206d697373656420726577617264272e60576f726b696e6747726f757042756467657446756e6465640c002801204d656d6265724964000018011c42616c616e6365000030011c5665633c75383e0016147846756e642074686520776f726b696e672067726f7570206275646765742e1c506172616d733a2c2d204d656d6265722049444c2d20416d6f756e74206f662062616c616e63652c2d20526174696f6e616c65304c65616452656d61726b6564040030011c5665633c75383e00170c94456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a242d206d65737361676538576f726b657252656d61726b65640800280120576f726b65724964000030011c5665633c75383e00181094456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a202d20776f726b6572242d206d6573736167650c5c4576656e747320666f722074686973206d6f64756c652e00385f47726f75705f206576656e7473ad03085070616c6c65745f776f726b696e675f67726f757024496e7374616e63653500000000b103085070616c6c65745f776f726b696e675f67726f7570205261774576656e7430244f70656e696e6749640128344170706c69636174696f6e49640128684170706c69636174696f6e4964546f576f726b657249644d617001710320576f726b657249640128244163636f756e74496401001c42616c616e636501182c4f70656e696e6754797065017d032c5374616b65506f6c696379016103604170706c794f6e4f70656e696e67506172616d6574657273018103204d656d626572496401281048617368012c044901b5030164304f70656e696e67416464656414002801244f70656e696e674964000030011c5665633c75383e00007d03012c4f70656e696e675479706500006103012c5374616b65506f6c69637900004501013c4f7074696f6e3c42616c616e63653e00001c80456d697473206f6e20616464696e67206e6577206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e67206964342d204465736372697074696f6e782d204f70656e696e672054797065284c656164206f7220576f726b657229782d205374616b6520506f6c69637920666f7220746865206f70656e696e67482d205265776172642070657220626c6f636b404170706c6965644f6e4f70656e696e670800810301604170706c794f6e4f70656e696e67506172616d657465727300002801344170706c69636174696f6e4964000110dc456d697473206f6e20616464696e6720746865206170706c69636174696f6e20666f722074686520776f726b6572206f70656e696e672e1c506172616d733a542d204f70656e696e6720706172616d657465726573402d204170706c69636174696f6e206964344f70656e696e6746696c6c65640c002801244f70656e696e6749640000710301684170706c69636174696f6e4964546f576f726b657249644d617000006901015c42547265655365743c4170706c69636174696f6e49643e00021484456d697473206f6e2066696c6c696e6720746865206a6f62206f70656e696e672e1c506172616d733a4c2d20576f726b6572206f70656e696e67206964cc2d20576f726b6572206170706c69636174696f6e20696420746f2074686520776f726b65722069642064696374696f6e617279ac2d204170706c69636174696f6e6420696473207573656420746f2066696c6c20746865206f70656e696e67244c65616465725365740400280120576f726b6572496400030c88456d697473206f6e2073657474696e67207468652067726f7570206c65616465722e1c506172616d733a482d2047726f757020776f726b65722069642e60576f726b6572526f6c654163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964000410c4456d697473206f6e207570646174696e672074686520726f6c65206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e802d20526f6c65206163636f756e74206964206f662074686520776f726b65722e2c4c6561646572556e7365740005047c456d697473206f6e20756e2d73657474696e6720746865206c65616465722e30576f726b65724578697465640400280120576f726b6572496400061070456d697473206f6e2065786974696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e302d20526174696f6e616c652e50576f726b6572537461727465644c656176696e670800280120576f726b6572496400003101013c4f7074696f6e3c5665633c75383e3e000710b4456d697473207768656e20776f726b65722073746172746564206c656176696e6720746865697220726f6c652e1c506172616d733a302d20576f726b65722069642e302d20526174696f6e616c652e405465726d696e61746564576f726b65720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00081480456d697473206f6e207465726d696e6174696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e405465726d696e617465644c65616465720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00091480456d697473206f6e207465726d696e6174696e6720746865206c65616465722e1c506172616d733a4c2d206c656164657220776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e305374616b65536c61736865641000280120576f726b65724964000018011c42616c616e6365000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e000a18c0456d697473206f6e20736c617368696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e642d2061637475616c20736c61736865642062616c616e63652e702d2052657175657374656420736c61736865642062616c616e63652e302d20526174696f6e616c652e385374616b654465637265617365640800280120576f726b65724964000018011c42616c616e6365000b10c8456d697473206f6e2064656372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74385374616b65496e637265617365640800280120576f726b65724964000018011c42616c616e6365000c10c8456d697473206f6e20696e6372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74504170706c69636174696f6e57697468647261776e04002801344170706c69636174696f6e4964000d0c2501456d697473206f6e207769746864726177696e6720746865206170706c69636174696f6e20666f722074686520726567756c617220776f726b65722f6c656164206f70656e696e672e1c506172616d733a502d204a6f62206170706c69636174696f6e2069643c4f70656e696e6743616e63656c656404002801244f70656e696e674964000e0c8c456d697473206f6e2063616e63656c696e6720746865206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e6720696424427564676574536574040018011c42616c616e6365000f0cc8456d697473206f6e2073657474696e67207468652062756467657420666f722074686520776f726b696e672067726f75702e1c506172616d733a302d206e65772062756467657468576f726b65725265776172644163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964001010cc456d697473206f6e207570646174696e672074686520726577617264206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e882d20526577617264206163636f756e74206964206f662074686520776f726b65722e64576f726b6572526577617264416d6f756e74557064617465640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e001110c8456d697473206f6e207570646174696e67207468652072657761726420616d6f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e482d205265776172642070657220626c6f636b44537461747573546578744368616e67656408002c01104861736800003101013c4f7074696f6e3c5665633c75383e3e001210dc456d697473206f6e207570646174696e6720746865207374617475732074657874206f662074686520776f726b696e672067726f75702e1c506172616d733a482d2073746174757320746578742068617368342d207374617475732074657874384275646765745370656e64696e670c000001244163636f756e744964000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e001314c8456d697473206f6e206275646765742066726f6d2074686520776f726b696e672067726f7570206265696e67207370656e741c506172616d733a582d205265636569766572204163636f756e742049642e402d2042616c616e6365207370656e742e302d20526174696f6e616c652e28526577617264506169641000280120576f726b6572496400000001244163636f756e744964000018011c42616c616e636500008d0301445265776172645061796d656e74547970650014186c456d697473206f6e20706179696e6720746865207265776172642e1c506172616d733a4c2d204964206f662074686520776f726b65722e582d205265636569766572204163636f756e742049642e202d20526577617264b42d205061796d656e74207479706520286d697373656420726577617264206f7220726567756c6172206f6e65296c4e65774d69737365645265776172644c6576656c526561636865640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00151090456d697473206f6e207265616368696e67206e6577206d6973736564207265776172642e1c506172616d733a302d20576f726b65722049442ee82d204d69737365642072657761726420286f7074696f6e616c292e204e6f6e65206d65616e7320276e6f206d697373656420726577617264272e60576f726b696e6747726f757042756467657446756e6465640c002801204d656d6265724964000018011c42616c616e6365000030011c5665633c75383e0016147846756e642074686520776f726b696e672067726f7570206275646765742e1c506172616d733a2c2d204d656d6265722049444c2d20416d6f756e74206f662062616c616e63652c2d20526174696f6e616c65304c65616452656d61726b6564040030011c5665633c75383e00170c94456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a242d206d65737361676538576f726b657252656d61726b65640800280120576f726b65724964000030011c5665633c75383e00181094456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a202d20776f726b6572242d206d6573736167650c5c4576656e747320666f722074686973206d6f64756c652e00385f47726f75705f206576656e7473b503085070616c6c65745f776f726b696e675f67726f757024496e7374616e63653600000000b903085070616c6c65745f776f726b696e675f67726f7570205261774576656e7430244f70656e696e6749640128344170706c69636174696f6e49640128684170706c69636174696f6e4964546f576f726b657249644d617001710320576f726b657249640128244163636f756e74496401001c42616c616e636501182c4f70656e696e6754797065017d032c5374616b65506f6c696379016103604170706c794f6e4f70656e696e67506172616d6574657273018103204d656d626572496401281048617368012c044901bd030164304f70656e696e67416464656414002801244f70656e696e674964000030011c5665633c75383e00007d03012c4f70656e696e675479706500006103012c5374616b65506f6c69637900004501013c4f7074696f6e3c42616c616e63653e00001c80456d697473206f6e20616464696e67206e6577206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e67206964342d204465736372697074696f6e782d204f70656e696e672054797065284c656164206f7220576f726b657229782d205374616b6520506f6c69637920666f7220746865206f70656e696e67482d205265776172642070657220626c6f636b404170706c6965644f6e4f70656e696e670800810301604170706c794f6e4f70656e696e67506172616d657465727300002801344170706c69636174696f6e4964000110dc456d697473206f6e20616464696e6720746865206170706c69636174696f6e20666f722074686520776f726b6572206f70656e696e672e1c506172616d733a542d204f70656e696e6720706172616d657465726573402d204170706c69636174696f6e206964344f70656e696e6746696c6c65640c002801244f70656e696e6749640000710301684170706c69636174696f6e4964546f576f726b657249644d617000006901015c42547265655365743c4170706c69636174696f6e49643e00021484456d697473206f6e2066696c6c696e6720746865206a6f62206f70656e696e672e1c506172616d733a4c2d20576f726b6572206f70656e696e67206964cc2d20576f726b6572206170706c69636174696f6e20696420746f2074686520776f726b65722069642064696374696f6e617279ac2d204170706c69636174696f6e6420696473207573656420746f2066696c6c20746865206f70656e696e67244c65616465725365740400280120576f726b6572496400030c88456d697473206f6e2073657474696e67207468652067726f7570206c65616465722e1c506172616d733a482d2047726f757020776f726b65722069642e60576f726b6572526f6c654163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964000410c4456d697473206f6e207570646174696e672074686520726f6c65206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e802d20526f6c65206163636f756e74206964206f662074686520776f726b65722e2c4c6561646572556e7365740005047c456d697473206f6e20756e2d73657474696e6720746865206c65616465722e30576f726b65724578697465640400280120576f726b6572496400061070456d697473206f6e2065786974696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e302d20526174696f6e616c652e50576f726b6572537461727465644c656176696e670800280120576f726b6572496400003101013c4f7074696f6e3c5665633c75383e3e000710b4456d697473207768656e20776f726b65722073746172746564206c656176696e6720746865697220726f6c652e1c506172616d733a302d20576f726b65722069642e302d20526174696f6e616c652e405465726d696e61746564576f726b65720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00081480456d697473206f6e207465726d696e6174696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e405465726d696e617465644c65616465720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00091480456d697473206f6e207465726d696e6174696e6720746865206c65616465722e1c506172616d733a4c2d206c656164657220776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e305374616b65536c61736865641000280120576f726b65724964000018011c42616c616e6365000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e000a18c0456d697473206f6e20736c617368696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e642d2061637475616c20736c61736865642062616c616e63652e702d2052657175657374656420736c61736865642062616c616e63652e302d20526174696f6e616c652e385374616b654465637265617365640800280120576f726b65724964000018011c42616c616e6365000b10c8456d697473206f6e2064656372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74385374616b65496e637265617365640800280120576f726b65724964000018011c42616c616e6365000c10c8456d697473206f6e20696e6372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74504170706c69636174696f6e57697468647261776e04002801344170706c69636174696f6e4964000d0c2501456d697473206f6e207769746864726177696e6720746865206170706c69636174696f6e20666f722074686520726567756c617220776f726b65722f6c656164206f70656e696e672e1c506172616d733a502d204a6f62206170706c69636174696f6e2069643c4f70656e696e6743616e63656c656404002801244f70656e696e674964000e0c8c456d697473206f6e2063616e63656c696e6720746865206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e6720696424427564676574536574040018011c42616c616e6365000f0cc8456d697473206f6e2073657474696e67207468652062756467657420666f722074686520776f726b696e672067726f75702e1c506172616d733a302d206e65772062756467657468576f726b65725265776172644163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964001010cc456d697473206f6e207570646174696e672074686520726577617264206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e882d20526577617264206163636f756e74206964206f662074686520776f726b65722e64576f726b6572526577617264416d6f756e74557064617465640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e001110c8456d697473206f6e207570646174696e67207468652072657761726420616d6f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e482d205265776172642070657220626c6f636b44537461747573546578744368616e67656408002c01104861736800003101013c4f7074696f6e3c5665633c75383e3e001210dc456d697473206f6e207570646174696e6720746865207374617475732074657874206f662074686520776f726b696e672067726f75702e1c506172616d733a482d2073746174757320746578742068617368342d207374617475732074657874384275646765745370656e64696e670c000001244163636f756e744964000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e001314c8456d697473206f6e206275646765742066726f6d2074686520776f726b696e672067726f7570206265696e67207370656e741c506172616d733a582d205265636569766572204163636f756e742049642e402d2042616c616e6365207370656e742e302d20526174696f6e616c652e28526577617264506169641000280120576f726b6572496400000001244163636f756e744964000018011c42616c616e636500008d0301445265776172645061796d656e74547970650014186c456d697473206f6e20706179696e6720746865207265776172642e1c506172616d733a4c2d204964206f662074686520776f726b65722e582d205265636569766572204163636f756e742049642e202d20526577617264b42d205061796d656e74207479706520286d697373656420726577617264206f7220726567756c6172206f6e65296c4e65774d69737365645265776172644c6576656c526561636865640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00151090456d697473206f6e207265616368696e67206e6577206d6973736564207265776172642e1c506172616d733a302d20576f726b65722049442ee82d204d69737365642072657761726420286f7074696f6e616c292e204e6f6e65206d65616e7320276e6f206d697373656420726577617264272e60576f726b696e6747726f757042756467657446756e6465640c002801204d656d6265724964000018011c42616c616e6365000030011c5665633c75383e0016147846756e642074686520776f726b696e672067726f7570206275646765742e1c506172616d733a2c2d204d656d6265722049444c2d20416d6f756e74206f662062616c616e63652c2d20526174696f6e616c65304c65616452656d61726b6564040030011c5665633c75383e00170c94456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a242d206d65737361676538576f726b657252656d61726b65640800280120576f726b65724964000030011c5665633c75383e00181094456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a202d20776f726b6572242d206d6573736167650c5c4576656e747320666f722074686973206d6f64756c652e00385f47726f75705f206576656e7473bd03085070616c6c65745f776f726b696e675f67726f757024496e7374616e63653700000000c103085070616c6c65745f776f726b696e675f67726f7570205261774576656e7430244f70656e696e6749640128344170706c69636174696f6e49640128684170706c69636174696f6e4964546f576f726b657249644d617001710320576f726b657249640128244163636f756e74496401001c42616c616e636501182c4f70656e696e6754797065017d032c5374616b65506f6c696379016103604170706c794f6e4f70656e696e67506172616d6574657273018103204d656d626572496401281048617368012c044901c5030164304f70656e696e67416464656414002801244f70656e696e674964000030011c5665633c75383e00007d03012c4f70656e696e675479706500006103012c5374616b65506f6c69637900004501013c4f7074696f6e3c42616c616e63653e00001c80456d697473206f6e20616464696e67206e6577206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e67206964342d204465736372697074696f6e782d204f70656e696e672054797065284c656164206f7220576f726b657229782d205374616b6520506f6c69637920666f7220746865206f70656e696e67482d205265776172642070657220626c6f636b404170706c6965644f6e4f70656e696e670800810301604170706c794f6e4f70656e696e67506172616d657465727300002801344170706c69636174696f6e4964000110dc456d697473206f6e20616464696e6720746865206170706c69636174696f6e20666f722074686520776f726b6572206f70656e696e672e1c506172616d733a542d204f70656e696e6720706172616d657465726573402d204170706c69636174696f6e206964344f70656e696e6746696c6c65640c002801244f70656e696e6749640000710301684170706c69636174696f6e4964546f576f726b657249644d617000006901015c42547265655365743c4170706c69636174696f6e49643e00021484456d697473206f6e2066696c6c696e6720746865206a6f62206f70656e696e672e1c506172616d733a4c2d20576f726b6572206f70656e696e67206964cc2d20576f726b6572206170706c69636174696f6e20696420746f2074686520776f726b65722069642064696374696f6e617279ac2d204170706c69636174696f6e6420696473207573656420746f2066696c6c20746865206f70656e696e67244c65616465725365740400280120576f726b6572496400030c88456d697473206f6e2073657474696e67207468652067726f7570206c65616465722e1c506172616d733a482d2047726f757020776f726b65722069642e60576f726b6572526f6c654163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964000410c4456d697473206f6e207570646174696e672074686520726f6c65206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e802d20526f6c65206163636f756e74206964206f662074686520776f726b65722e2c4c6561646572556e7365740005047c456d697473206f6e20756e2d73657474696e6720746865206c65616465722e30576f726b65724578697465640400280120576f726b6572496400061070456d697473206f6e2065786974696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e302d20526174696f6e616c652e50576f726b6572537461727465644c656176696e670800280120576f726b6572496400003101013c4f7074696f6e3c5665633c75383e3e000710b4456d697473207768656e20776f726b65722073746172746564206c656176696e6720746865697220726f6c652e1c506172616d733a302d20576f726b65722069642e302d20526174696f6e616c652e405465726d696e61746564576f726b65720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00081480456d697473206f6e207465726d696e6174696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e405465726d696e617465644c65616465720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00091480456d697473206f6e207465726d696e6174696e6720746865206c65616465722e1c506172616d733a4c2d206c656164657220776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e305374616b65536c61736865641000280120576f726b65724964000018011c42616c616e6365000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e000a18c0456d697473206f6e20736c617368696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e642d2061637475616c20736c61736865642062616c616e63652e702d2052657175657374656420736c61736865642062616c616e63652e302d20526174696f6e616c652e385374616b654465637265617365640800280120576f726b65724964000018011c42616c616e6365000b10c8456d697473206f6e2064656372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74385374616b65496e637265617365640800280120576f726b65724964000018011c42616c616e6365000c10c8456d697473206f6e20696e6372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74504170706c69636174696f6e57697468647261776e04002801344170706c69636174696f6e4964000d0c2501456d697473206f6e207769746864726177696e6720746865206170706c69636174696f6e20666f722074686520726567756c617220776f726b65722f6c656164206f70656e696e672e1c506172616d733a502d204a6f62206170706c69636174696f6e2069643c4f70656e696e6743616e63656c656404002801244f70656e696e674964000e0c8c456d697473206f6e2063616e63656c696e6720746865206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e6720696424427564676574536574040018011c42616c616e6365000f0cc8456d697473206f6e2073657474696e67207468652062756467657420666f722074686520776f726b696e672067726f75702e1c506172616d733a302d206e65772062756467657468576f726b65725265776172644163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964001010cc456d697473206f6e207570646174696e672074686520726577617264206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e882d20526577617264206163636f756e74206964206f662074686520776f726b65722e64576f726b6572526577617264416d6f756e74557064617465640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e001110c8456d697473206f6e207570646174696e67207468652072657761726420616d6f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e482d205265776172642070657220626c6f636b44537461747573546578744368616e67656408002c01104861736800003101013c4f7074696f6e3c5665633c75383e3e001210dc456d697473206f6e207570646174696e6720746865207374617475732074657874206f662074686520776f726b696e672067726f75702e1c506172616d733a482d2073746174757320746578742068617368342d207374617475732074657874384275646765745370656e64696e670c000001244163636f756e744964000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e001314c8456d697473206f6e206275646765742066726f6d2074686520776f726b696e672067726f7570206265696e67207370656e741c506172616d733a582d205265636569766572204163636f756e742049642e402d2042616c616e6365207370656e742e302d20526174696f6e616c652e28526577617264506169641000280120576f726b6572496400000001244163636f756e744964000018011c42616c616e636500008d0301445265776172645061796d656e74547970650014186c456d697473206f6e20706179696e6720746865207265776172642e1c506172616d733a4c2d204964206f662074686520776f726b65722e582d205265636569766572204163636f756e742049642e202d20526577617264b42d205061796d656e74207479706520286d697373656420726577617264206f7220726567756c6172206f6e65296c4e65774d69737365645265776172644c6576656c526561636865640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00151090456d697473206f6e207265616368696e67206e6577206d6973736564207265776172642e1c506172616d733a302d20576f726b65722049442ee82d204d69737365642072657761726420286f7074696f6e616c292e204e6f6e65206d65616e7320276e6f206d697373656420726577617264272e60576f726b696e6747726f757042756467657446756e6465640c002801204d656d6265724964000018011c42616c616e6365000030011c5665633c75383e0016147846756e642074686520776f726b696e672067726f7570206275646765742e1c506172616d733a2c2d204d656d6265722049444c2d20416d6f756e74206f662062616c616e63652c2d20526174696f6e616c65304c65616452656d61726b6564040030011c5665633c75383e00170c94456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a242d206d65737361676538576f726b657252656d61726b65640800280120576f726b65724964000030011c5665633c75383e00181094456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a202d20776f726b6572242d206d6573736167650c5c4576656e747320666f722074686973206d6f64756c652e00385f47726f75705f206576656e7473c503085070616c6c65745f776f726b696e675f67726f757024496e7374616e63653800000000c903085070616c6c65745f776f726b696e675f67726f7570205261774576656e7430244f70656e696e6749640128344170706c69636174696f6e49640128684170706c69636174696f6e4964546f576f726b657249644d617001710320576f726b657249640128244163636f756e74496401001c42616c616e636501182c4f70656e696e6754797065017d032c5374616b65506f6c696379016103604170706c794f6e4f70656e696e67506172616d6574657273018103204d656d626572496401281048617368012c044901cd030164304f70656e696e67416464656414002801244f70656e696e674964000030011c5665633c75383e00007d03012c4f70656e696e675479706500006103012c5374616b65506f6c69637900004501013c4f7074696f6e3c42616c616e63653e00001c80456d697473206f6e20616464696e67206e6577206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e67206964342d204465736372697074696f6e782d204f70656e696e672054797065284c656164206f7220576f726b657229782d205374616b6520506f6c69637920666f7220746865206f70656e696e67482d205265776172642070657220626c6f636b404170706c6965644f6e4f70656e696e670800810301604170706c794f6e4f70656e696e67506172616d657465727300002801344170706c69636174696f6e4964000110dc456d697473206f6e20616464696e6720746865206170706c69636174696f6e20666f722074686520776f726b6572206f70656e696e672e1c506172616d733a542d204f70656e696e6720706172616d657465726573402d204170706c69636174696f6e206964344f70656e696e6746696c6c65640c002801244f70656e696e6749640000710301684170706c69636174696f6e4964546f576f726b657249644d617000006901015c42547265655365743c4170706c69636174696f6e49643e00021484456d697473206f6e2066696c6c696e6720746865206a6f62206f70656e696e672e1c506172616d733a4c2d20576f726b6572206f70656e696e67206964cc2d20576f726b6572206170706c69636174696f6e20696420746f2074686520776f726b65722069642064696374696f6e617279ac2d204170706c69636174696f6e6420696473207573656420746f2066696c6c20746865206f70656e696e67244c65616465725365740400280120576f726b6572496400030c88456d697473206f6e2073657474696e67207468652067726f7570206c65616465722e1c506172616d733a482d2047726f757020776f726b65722069642e60576f726b6572526f6c654163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964000410c4456d697473206f6e207570646174696e672074686520726f6c65206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e802d20526f6c65206163636f756e74206964206f662074686520776f726b65722e2c4c6561646572556e7365740005047c456d697473206f6e20756e2d73657474696e6720746865206c65616465722e30576f726b65724578697465640400280120576f726b6572496400061070456d697473206f6e2065786974696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e302d20526174696f6e616c652e50576f726b6572537461727465644c656176696e670800280120576f726b6572496400003101013c4f7074696f6e3c5665633c75383e3e000710b4456d697473207768656e20776f726b65722073746172746564206c656176696e6720746865697220726f6c652e1c506172616d733a302d20576f726b65722069642e302d20526174696f6e616c652e405465726d696e61746564576f726b65720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00081480456d697473206f6e207465726d696e6174696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e405465726d696e617465644c65616465720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00091480456d697473206f6e207465726d696e6174696e6720746865206c65616465722e1c506172616d733a4c2d206c656164657220776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e305374616b65536c61736865641000280120576f726b65724964000018011c42616c616e6365000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e000a18c0456d697473206f6e20736c617368696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e642d2061637475616c20736c61736865642062616c616e63652e702d2052657175657374656420736c61736865642062616c616e63652e302d20526174696f6e616c652e385374616b654465637265617365640800280120576f726b65724964000018011c42616c616e6365000b10c8456d697473206f6e2064656372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74385374616b65496e637265617365640800280120576f726b65724964000018011c42616c616e6365000c10c8456d697473206f6e20696e6372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74504170706c69636174696f6e57697468647261776e04002801344170706c69636174696f6e4964000d0c2501456d697473206f6e207769746864726177696e6720746865206170706c69636174696f6e20666f722074686520726567756c617220776f726b65722f6c656164206f70656e696e672e1c506172616d733a502d204a6f62206170706c69636174696f6e2069643c4f70656e696e6743616e63656c656404002801244f70656e696e674964000e0c8c456d697473206f6e2063616e63656c696e6720746865206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e6720696424427564676574536574040018011c42616c616e6365000f0cc8456d697473206f6e2073657474696e67207468652062756467657420666f722074686520776f726b696e672067726f75702e1c506172616d733a302d206e65772062756467657468576f726b65725265776172644163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964001010cc456d697473206f6e207570646174696e672074686520726577617264206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e882d20526577617264206163636f756e74206964206f662074686520776f726b65722e64576f726b6572526577617264416d6f756e74557064617465640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e001110c8456d697473206f6e207570646174696e67207468652072657761726420616d6f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e482d205265776172642070657220626c6f636b44537461747573546578744368616e67656408002c01104861736800003101013c4f7074696f6e3c5665633c75383e3e001210dc456d697473206f6e207570646174696e6720746865207374617475732074657874206f662074686520776f726b696e672067726f75702e1c506172616d733a482d2073746174757320746578742068617368342d207374617475732074657874384275646765745370656e64696e670c000001244163636f756e744964000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e001314c8456d697473206f6e206275646765742066726f6d2074686520776f726b696e672067726f7570206265696e67207370656e741c506172616d733a582d205265636569766572204163636f756e742049642e402d2042616c616e6365207370656e742e302d20526174696f6e616c652e28526577617264506169641000280120576f726b6572496400000001244163636f756e744964000018011c42616c616e636500008d0301445265776172645061796d656e74547970650014186c456d697473206f6e20706179696e6720746865207265776172642e1c506172616d733a4c2d204964206f662074686520776f726b65722e582d205265636569766572204163636f756e742049642e202d20526577617264b42d205061796d656e74207479706520286d697373656420726577617264206f7220726567756c6172206f6e65296c4e65774d69737365645265776172644c6576656c526561636865640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00151090456d697473206f6e207265616368696e67206e6577206d6973736564207265776172642e1c506172616d733a302d20576f726b65722049442ee82d204d69737365642072657761726420286f7074696f6e616c292e204e6f6e65206d65616e7320276e6f206d697373656420726577617264272e60576f726b696e6747726f757042756467657446756e6465640c002801204d656d6265724964000018011c42616c616e6365000030011c5665633c75383e0016147846756e642074686520776f726b696e672067726f7570206275646765742e1c506172616d733a2c2d204d656d6265722049444c2d20416d6f756e74206f662062616c616e63652c2d20526174696f6e616c65304c65616452656d61726b6564040030011c5665633c75383e00170c94456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a242d206d65737361676538576f726b657252656d61726b65640800280120576f726b65724964000030011c5665633c75383e00181094456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a202d20776f726b6572242d206d6573736167650c5c4576656e747320666f722074686973206d6f64756c652e00385f47726f75705f206576656e7473cd03085070616c6c65745f776f726b696e675f67726f757024496e7374616e63653900000000d10308306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e00020000d5030000022c00d903000002dd0300dd0300000408101000e10308306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6ee503014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d65e903016473705f72756e74696d653a3a52756e74696d65537472696e670000e5030000061000e9030000050200ed030c306672616d655f73797374656d1870616c6c65741043616c6c0404540001201872656d61726b04011872656d61726b30011c5665633c75383e000010684d616b6520736f6d65206f6e2d636861696e2072656d61726b2e0034232320436f6d706c6578697479202d20604f28312960387365745f686561705f7061676573040114706167657328010c753634000104f853657420746865206e756d626572206f6620706167657320696e2074686520576562417373656d626c7920656e7669726f6e6d656e74277320686561702e207365745f636f6465040110636f646530011c5665633c75383e0002106453657420746865206e65772072756e74696d6520636f64652e0034232320436f6d706c657869747931012d20604f2843202b2053296020776865726520604360206c656e677468206f662060636f64656020616e642060536020636f6d706c6578697479206f66206063616e5f7365745f636f6465605c7365745f636f64655f776974686f75745f636865636b73040110636f646530011c5665633c75383e000310190153657420746865206e65772072756e74696d6520636f646520776974686f757420646f696e6720616e7920636865636b73206f662074686520676976656e2060636f6465602e0034232320436f6d706c65786974798c2d20604f2843296020776865726520604360206c656e677468206f662060636f6465602c7365745f73746f726167650401146974656d73f10301345665633c4b657956616c75653e0004046853657420736f6d65206974656d73206f662073746f726167652e306b696c6c5f73746f726167650401106b657973a90201205665633c4b65793e000504744b696c6c20736f6d65206974656d732066726f6d2073746f726167652e2c6b696c6c5f70726566697808011870726566697830010c4b657900011c7375626b65797310010c75333200061011014b696c6c20616c6c2073746f72616765206974656d7320776974682061206b657920746861742073746172747320776974682074686520676976656e207072656669782e0039012a2a4e4f54453a2a2a2057652072656c79206f6e2074686520526f6f74206f726967696e20746f2070726f7669646520757320746865206e756d626572206f66207375626b65797320756e6465723d0174686520707265666978207765206172652072656d6f76696e6720746f2061636375726174656c792063616c63756c6174652074686520776569676874206f6620746869732066756e6374696f6e2e4472656d61726b5f776974685f6576656e7404011872656d61726b30011c5665633c75383e000704a44d616b6520736f6d65206f6e2d636861696e2072656d61726b20616e6420656d6974206576656e742e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ef103000002f50300f50300000408303000f9030c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2001185765696768740001246d61785f626c6f636b2001185765696768740001247065725f636c617373fd0301845065724469737061746368436c6173733c57656967687473506572436c6173733e0000fd030c346672616d655f737570706f7274206469737061746368405065724469737061746368436c617373040454010104000c01186e6f726d616c010401045400012c6f7065726174696f6e616c01040104540001246d616e6461746f72790104010454000001040c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632001185765696768740001346d61785f65787472696e736963050401384f7074696f6e3c5765696768743e0001246d61785f746f74616c050401384f7074696f6e3c5765696768743e0001207265736572766564050401384f7074696f6e3c5765696768743e0000050404184f7074696f6e04045401200108104e6f6e6500000010536f6d65040020000001000009040c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d61780d0401545065724469737061746368436c6173733c7533323e00000d040c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f72791001045400001104082873705f776569676874733c52756e74696d65446257656967687400000801107265616428010c753634000114777269746528010c75363400001504082873705f76657273696f6e3852756e74696d6556657273696f6e0000200124737065635f6e616d65e903013452756e74696d65537472696e67000124696d706c5f6e616d65e903013452756e74696d65537472696e67000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c753332000110617069731904011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c75333200013473746174655f76657273696f6e080108753800001904040c436f77040454011d040004001d040000001d04000002210400210400000408250410002504000003080000000800290400000504002d040c306672616d655f73797374656d1870616c6c6574144572726f720404540001183c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e3043616c6c46696c7465726564000504d0546865206f726967696e2066696c7465722070726576656e74207468652063616c6c20746f20626520646973706174636865642e046c4572726f7220666f72207468652053797374656d2070616c6c657431040c3870616c6c65745f7574696c6974791870616c6c65741043616c6c04045400011814626174636804011463616c6c733504017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0000487c53656e642061206261746368206f662064697370617463682063616c6c732e00b04d61792062652063616c6c65642066726f6d20616e79206f726967696e2065786365707420604e6f6e65602e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e0055014966206f726967696e20697320726f6f74207468656e207468652063616c6c7320617265206469737061746368656420776974686f757420636865636b696e67206f726967696e2066696c7465722e202854686973ec696e636c7564657320627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e0034232320436f6d706c6578697479d02d204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e005501546869732077696c6c2072657475726e20604f6b6020696e20616c6c2063697263756d7374616e6365732e20546f2064657465726d696e65207468652073756363657373206f66207468652062617463682c20616e31016576656e74206973206465706f73697465642e20496620612063616c6c206661696c656420616e64207468652062617463682077617320696e7465727275707465642c207468656e207468655501604261746368496e74657272757074656460206576656e74206973206465706f73697465642c20616c6f6e67207769746820746865206e756d626572206f66207375636365737366756c2063616c6c73206d6164654d01616e6420746865206572726f72206f6620746865206661696c65642063616c6c2e20496620616c6c2077657265207375636365737366756c2c207468656e2074686520604261746368436f6d706c65746564604c6576656e74206973206465706f73697465642e3461735f64657269766174697665080114696e6465782904010c75313600011063616c6c3904017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000134dc53656e6420612063616c6c207468726f75676820616e20696e64657865642070736575646f6e796d206f66207468652073656e6465722e00550146696c7465722066726f6d206f726967696e206172652070617373656420616c6f6e672e205468652063616c6c2077696c6c2062652064697370617463686564207769746820616e206f726967696e207768696368bc757365207468652073616d652066696c74657220617320746865206f726967696e206f6620746869732063616c6c2e0045014e4f54453a20496620796f75206e65656420746f20656e73757265207468617420616e79206163636f756e742d62617365642066696c746572696e67206973206e6f7420686f6e6f7265642028692e652e61016265636175736520796f7520657870656374206070726f78796020746f2068617665206265656e2075736564207072696f7220696e207468652063616c6c20737461636b20616e6420796f7520646f206e6f742077616e7451017468652063616c6c207265737472696374696f6e7320746f206170706c7920746f20616e79207375622d6163636f756e7473292c207468656e20757365206061735f6d756c74695f7468726573686f6c645f31607c696e20746865204d756c74697369672070616c6c657420696e73746561642e00f44e4f54453a205072696f7220746f2076657273696f6e202a31322c2074686973207761732063616c6c6564206061735f6c696d697465645f737562602e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e2462617463685f616c6c04011463616c6c733504017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000234ec53656e642061206261746368206f662064697370617463682063616c6c7320616e642061746f6d6963616c6c792065786563757465207468656d2e21015468652077686f6c65207472616e73616374696f6e2077696c6c20726f6c6c6261636b20616e64206661696c20696620616e79206f66207468652063616c6c73206661696c65642e00b04d61792062652063616c6c65642066726f6d20616e79206f726967696e2065786365707420604e6f6e65602e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e0055014966206f726967696e20697320726f6f74207468656e207468652063616c6c7320617265206469737061746368656420776974686f757420636865636b696e67206f726967696e2066696c7465722e202854686973ec696e636c7564657320627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e0034232320436f6d706c6578697479d02d204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e2c64697370617463685f617308012461735f6f726967696e91060154426f783c543a3a50616c6c6574734f726967696e3e00011063616c6c3904017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000318c84469737061746368657320612066756e6374696f6e2063616c6c207769746820612070726f7669646564206f726967696e2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e0034232320436f6d706c65786974791c2d204f2831292e2c666f7263655f626174636804011463616c6c733504017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0004347c53656e642061206261746368206f662064697370617463682063616c6c732ed4556e6c696b6520606261746368602c20697420616c6c6f7773206572726f727320616e6420776f6e277420696e746572727570742e00b04d61792062652063616c6c65642066726f6d20616e79206f726967696e2065786365707420604e6f6e65602e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e004d014966206f726967696e20697320726f6f74207468656e207468652063616c6c732061726520646973706174636820776974686f757420636865636b696e67206f726967696e2066696c7465722e202854686973ec696e636c7564657320627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e0034232320436f6d706c6578697479d02d204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e2c776974685f77656967687408011063616c6c3904017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000118776569676874200118576569676874000518c4446973706174636820612066756e6374696f6e2063616c6c2077697468206120737065636966696564207765696768742e002d01546869732066756e6374696f6e20646f6573206e6f7420636865636b2074686520776569676874206f66207468652063616c6c2c20616e6420696e737465616420616c6c6f777320746865b8526f6f74206f726967696e20746f20737065636966792074686520776569676874206f66207468652063616c6c2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e3504000002390400390408586a6f7973747265616d5f6e6f64655f72756e74696d652c52756e74696d6543616c6c00018c1853797374656d0400ed0301ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e0000001c5574696c6974790400310401b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5574696c6974792c2052756e74696d653e000100104261626504003d0401a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c426162652c2052756e74696d653e0002002454696d657374616d700400610401b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e0003002042616c616e6365730400650401b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e00050068456c656374696f6e50726f76696465724d756c746950686173650400690401fd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c456c656374696f6e50726f76696465724d756c746950686173652c2052756e74696d653e0007001c5374616b696e670400550501b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5374616b696e672c2052756e74696d653e0008001c53657373696f6e0400790501b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53657373696f6e2c2052756e74696d653e0009001c4772616e6470610400850501b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4772616e6470612c2052756e74696d653e000b0020496d4f6e6c696e650400b50501b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c496d4f6e6c696e652c2052756e74696d653e000d0020426167734c6973740400d50501b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c426167734c6973742c2052756e74696d653e0010001c56657374696e670400d90501b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c56657374696e672c2052756e74696d653e001100204d756c74697369670400e10501b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d756c74697369672c2052756e74696d653e0012001c436f756e63696c0400e90501b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f756e63696c2c2052756e74696d653e001300285265666572656e64756d0400ed0501bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5265666572656e64756d2c2052756e74696d653e0014001c4d656d626572730400f10501b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d656d626572732c2052756e74696d653e00150014466f72756d0400f50501a90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c466f72756d2c2052756e74696d653e00160030436f6e737469747574696f6e0400f90501c50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f6e737469747574696f6e2c2052756e74696d653e00170018426f756e74790400fd0501ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c426f756e74792c2052756e74696d653e001800404a6f7973747265616d5574696c6974790400010601d50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4a6f7973747265616d5574696c6974792c2052756e74696d653e0019001c436f6e74656e740400050601b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f6e74656e742c2052756e74696d653e001a001c53746f726167650400350601b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53746f726167652c2052756e74696d653e001b003050726f6a656374546f6b656e0400390601c50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50726f6a656374546f6b656e2c2052756e74696d653e001c003c50726f706f73616c73456e67696e650400610601d10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50726f706f73616c73456e67696e652c2052756e74696d653e001d004c50726f706f73616c7344697363757373696f6e0400650601e10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50726f706f73616c7344697363757373696f6e2c2052756e74696d653e001e003850726f706f73616c73436f6465780400690601cd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50726f706f73616c73436f6465782c2052756e74696d653e001f0044466f72756d576f726b696e6747726f757004006d0601d90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c466f72756d576f726b696e6747726f75702c2052756e74696d653e0020004c53746f72616765576f726b696e6747726f75700400710601e10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53746f72616765576f726b696e6747726f75702c2052756e74696d653e0021004c436f6e74656e74576f726b696e6747726f75700400750601e10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f6e74656e74576f726b696e6747726f75702c2052756e74696d653e0022006c4f7065726174696f6e73576f726b696e6747726f7570416c7068610400790601010273656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4f7065726174696f6e73576f726b696e6747726f7570416c7068612c2052756e74696d653e0023003c417070576f726b696e6747726f757004007d0601d10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c417070576f726b696e6747726f75702c2052756e74696d653e002400584d656d62657273686970576f726b696e6747726f75700400810601ed0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d656d62657273686970576f726b696e6747726f75702c2052756e74696d653e002500684f7065726174696f6e73576f726b696e6747726f7570426574610400850601fd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4f7065726174696f6e73576f726b696e6747726f7570426574612c2052756e74696d653e0026006c4f7065726174696f6e73576f726b696e6747726f757047616d6d610400890601010273656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4f7065726174696f6e73576f726b696e6747726f757047616d6d612c2052756e74696d653e00270060446973747269627574696f6e576f726b696e6747726f757004008d0601f50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c446973747269627574696f6e576f726b696e6747726f75702c2052756e74696d653e002800003d040c2c70616c6c65745f626162651870616c6c65741043616c6c04045400010c4c7265706f72745f65717569766f636174696f6e08014865717569766f636174696f6e5f70726f6f6641040184426f783c45717569766f636174696f6e50726f6f663c543a3a4865616465723e3e00013c6b65795f6f776e65725f70726f6f6655040140543a3a4b65794f776e657250726f6f6600001009015265706f727420617574686f726974792065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667905017468652065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f660d01616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c306265207265706f727465642e707265706f72745f65717569766f636174696f6e5f756e7369676e656408014865717569766f636174696f6e5f70726f6f6641040184426f783c45717569766f636174696f6e50726f6f663c543a3a4865616465723e3e00013c6b65795f6f776e65725f70726f6f6655040140543a3a4b65794f776e657250726f6f6600012009015265706f727420617574686f726974792065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667905017468652065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f660d01616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c306265207265706f727465642e0d01546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c791501626c6f636b20617574686f72732077696c6c2063616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c2061732073756368150169662074686520626c6f636b20617574686f7220697320646566696e65642069742077696c6c20626520646566696e6564206173207468652065717569766f636174696f6e247265706f727465722e48706c616e5f636f6e6669675f6368616e6765040118636f6e666967590401504e657874436f6e66696744657363726970746f720002105d01506c616e20616e2065706f636820636f6e666967206368616e67652e205468652065706f636820636f6e666967206368616e6765206973207265636f7264656420616e642077696c6c20626520656e6163746564206f6e5101746865206e6578742063616c6c20746f2060656e6163745f65706f63685f6368616e6765602e2054686520636f6e6669672077696c6c20626520616374697661746564206f6e652065706f63682061667465722e59014d756c7469706c652063616c6c7320746f2074686973206d6574686f642077696c6c207265706c61636520616e79206578697374696e6720706c616e6e656420636f6e666967206368616e6765207468617420686164546e6f74206265656e20656e6163746564207965742e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e4104084873705f636f6e73656e7375735f736c6f74734445717569766f636174696f6e50726f6f660818486561646572014504084964014d04001001206f6666656e6465724d0401084964000110736c6f7451040110536c6f7400013066697273745f686561646572450401184865616465720001347365636f6e645f6865616465724504011848656164657200004504102873705f72756e74696d651c67656e65726963186865616465721848656164657208184e756d626572011010486173680149040014012c706172656e745f686173682c0130486173683a3a4f75747075740001186e756d626572e50301184e756d62657200012873746174655f726f6f742c0130486173683a3a4f757470757400013c65787472696e736963735f726f6f742c0130486173683a3a4f7574707574000118646967657374340118446967657374000049040c2873705f72756e74696d65187472616974732c426c616b6554776f323536000000004d040c4473705f636f6e73656e7375735f626162650c617070185075626c696300000400dc013c737232353531393a3a5075626c696300005104084873705f636f6e73656e7375735f736c6f747310536c6f740000040028010c75363400005504082873705f73657373696f6e3c4d656d6265727368697050726f6f6600000c011c73657373696f6e10013053657373696f6e496e646578000128747269655f6e6f646573a90201305665633c5665633c75383e3e00013c76616c696461746f725f636f756e7410013856616c696461746f72436f756e74000059040c4473705f636f6e73656e7375735f626162651c64696765737473504e657874436f6e66696744657363726970746f720001040856310801046379030128287536342c2075363429000134616c6c6f7765645f736c6f74735d040130416c6c6f776564536c6f7473000100005d04084473705f636f6e73656e7375735f6261626530416c6c6f776564536c6f747300010c305072696d617279536c6f7473000000745072696d617279416e645365636f6e64617279506c61696e536c6f74730001006c5072696d617279416e645365636f6e64617279565246536c6f74730002000061040c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f77240124543a3a4d6f6d656e7400003c54536574207468652063757272656e742074696d652e005501546869732063616c6c2073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6ed470686173652c20696620746869732063616c6c206861736e2774206265656e20696e766f6b656420627920746861742074696d652e0041015468652074696d657374616d702073686f756c642062652067726561746572207468616e207468652070726576696f7573206f6e652062792074686520616d6f756e742073706563696669656420627940604d696e696d756d506572696f64602e00d4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060496e686572656e74602e0034232320436f6d706c657869747931012d20604f2831296020284e6f7465207468617420696d706c656d656e746174696f6e73206f6620604f6e54696d657374616d7053657460206d75737420616c736f20626520604f283129602961012d20312073746f72616765207265616420616e6420312073746f72616765206d75746174696f6e2028636f64656320604f28312960292e202862656361757365206f6620604469645570646174653a3a74616b656020696e402020606f6e5f66696e616c697a656029d42d2031206576656e742068616e646c657220606f6e5f74696d657374616d705f736574602e204d75737420626520604f283129602e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e65040c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c080454000449000118207472616e73666572080110646573740001504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565ec0128543a3a42616c616e6365000058d45472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572206163636f756e742e000501607472616e73666572602077696c6c207365742074686520604672656542616c616e636560206f66207468652073656e64657220616e642072656365697665722e11014966207468652073656e6465722773206163636f756e742069732062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c74b06f6620746865207472616e736665722c20746865206163636f756e742077696c6c206265207265617065642e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520605369676e65646020627920746865207472616e736163746f722e0034232320436f6d706c657869747961012d20446570656e64656e74206f6e20617267756d656e747320627574206e6f7420637269746963616c2c20676976656e2070726f70657220696d706c656d656e746174696f6e7320666f7220696e70757420636f6e66696794202074797065732e205365652072656c617465642066756e6374696f6e732062656c6f772e31012d20497420636f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e642077726974657320696e7465726e616c6c7920616e64206e6f20636f6d706c6578382020636f6d7075746174696f6e2e004852656c617465642066756e6374696f6e733a004d0120202d2060656e737572655f63616e5f77697468647261776020697320616c776179732063616c6c656420696e7465726e616c6c792062757420686173206120626f756e64656420636f6d706c65786974792e290120202d205472616e7366657272696e672062616c616e63657320746f206163636f756e7473207468617420646964206e6f74206578697374206265666f72652077696c6c206361757365cc2020202060543a3a4f6e4e65774163636f756e743a3a6f6e5f6e65775f6163636f756e746020746f2062652063616c6c65642e5d0120202d2052656d6f76696e6720656e6f7567682066756e64732066726f6d20616e206163636f756e742077696c6c20747269676765722060543a3a4475737452656d6f76616c3a3a6f6e5f756e62616c616e636564602e5d0120202d20607472616e736665725f6b6565705f616c6976656020776f726b73207468652073616d652077617920617320607472616e73666572602c206275742068617320616e206164646974696f6e616c20636865636bdc202020207468617420746865207472616e736665722077696c6c206e6f74206b696c6c20746865206f726967696e206163636f756e742e2c7365745f62616c616e63650c010c77686f0001504163636f756e7449644c6f6f6b75704f663c543e0001206e65775f66726565ec0128543a3a42616c616e63650001306e65775f7265736572766564ec0128543a3a42616c616e636500012090536574207468652062616c616e636573206f66206120676976656e206163636f756e742e001d01546869732077696c6c20616c74657220604672656542616c616e63656020616e642060526573657276656442616c616e63656020696e2073746f726167652e2069742077696c6c3101616c736f20616c7465722074686520746f74616c2069737375616e6365206f66207468652073797374656d202860546f74616c49737375616e6365602920617070726f7072696174656c792e1501496620746865206e65772066726565206f722072657365727665642062616c616e63652069732062656c6f7720746865206578697374656e7469616c206465706f7369742cfc69742077696c6c20726573657420746865206163636f756e74206e6f6e63652028606672616d655f73797374656d3a3a4163636f756e744e6f6e636560292e00b0546865206469737061746368206f726967696e20666f7220746869732063616c6c2069732060726f6f74602e38666f7263655f7472616e736665720c0118736f757263650001504163636f756e7449644c6f6f6b75704f663c543e000110646573740001504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565ec0128543a3a42616c616e63650002144d0145786163746c7920617320607472616e73666572602c2065786365707420746865206f726967696e206d75737420626520726f6f7420616e642074686520736f75726365206163636f756e74206d6179206265287370656369666965642e34232320436f6d706c65786974794d012d2053616d65206173207472616e736665722c20627574206164646974696f6e616c207265616420616e6420777269746520626563617573652074686520736f75726365206163636f756e74206973206e6f747c2020617373756d656420746f20626520696e20746865206f7665726c61792e4c7472616e736665725f6b6565705f616c697665080110646573740001504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565ec0128543a3a42616c616e63650003184d0153616d6520617320746865205b607472616e73666572605d2063616c6c2c206275742077697468206120636865636b207468617420746865207472616e736665722077696c6c206e6f74206b696c6c207468653c6f726967696e206163636f756e742e00b8393925206f66207468652074696d6520796f752077616e74205b607472616e73666572605d20696e73746561642e00c05b607472616e73666572605d3a207374727563742e50616c6c65742e68746d6c236d6574686f642e7472616e73666572307472616e736665725f616c6c080110646573740001504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c697665980110626f6f6c00044005015472616e736665722074686520656e74697265207472616e7366657261626c652062616c616e63652066726f6d207468652063616c6c6572206163636f756e742e0059014e4f54453a20546869732066756e6374696f6e206f6e6c7920617474656d70747320746f207472616e73666572205f7472616e7366657261626c655f2062616c616e6365732e2054686973206d65616e7320746861746101616e79206c6f636b65642c2072657365727665642c206f72206578697374656e7469616c206465706f7369747320287768656e20606b6565705f616c6976656020697320607472756560292c2077696c6c206e6f742062655d017472616e7366657272656420627920746869732066756e6374696f6e2e20546f20656e73757265207468617420746869732066756e6374696f6e20726573756c747320696e2061206b696c6c6564206163636f756e742c4501796f75206d69676874206e65656420746f207072657061726520746865206163636f756e742062792072656d6f76696e6720616e79207265666572656e636520636f756e746572732c2073746f72616765406465706f736974732c206574632e2e2e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205369676e65642e00a02d206064657374603a2054686520726563697069656e74206f6620746865207472616e736665722e59012d20606b6565705f616c697665603a204120626f6f6c65616e20746f2064657465726d696e652069662074686520607472616e736665725f616c6c60206f7065726174696f6e2073686f756c642073656e6420616c6c4d0120206f66207468652066756e647320746865206163636f756e74206861732c2063617573696e67207468652073656e646572206163636f756e7420746f206265206b696c6c6564202866616c7365292c206f72590120207472616e736665722065766572797468696e6720657863657074206174206c6561737420746865206578697374656e7469616c206465706f7369742c2077686963682077696c6c2067756172616e74656520746fd420206b656570207468652073656e646572206163636f756e7420616c697665202874727565292e20232320436f6d706c657869747939012d204f2831292e204a757374206c696b65207472616e736665722c206275742072656164696e672074686520757365722773207472616e7366657261626c652062616c616e63652066697273742e3c666f7263655f756e7265736572766508010c77686f0001504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74180128543a3a42616c616e636500050cb0556e7265736572766520736f6d652062616c616e63652066726f6d2061207573657220627920666f7263652e006c43616e206f6e6c792062652063616c6c656420627920524f4f542e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e69040c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173651870616c6c65741043616c6c0404540001143c7375626d69745f756e7369676e65640801307261775f736f6c7574696f6e6d0401b0426f783c526177536f6c7574696f6e3c536f6c7574696f6e4f663c543a3a4d696e6572436f6e6669673e3e3e00011c7769746e6573733d050158536f6c7574696f6e4f72536e617073686f7453697a65000038a45375626d6974206120736f6c7574696f6e20666f722074686520756e7369676e65642070686173652e00c8546865206469737061746368206f726967696e20666f20746869732063616c6c206d757374206265205f5f6e6f6e655f5f2e003d0154686973207375626d697373696f6e20697320636865636b6564206f6e2074686520666c792e204d6f72656f7665722c207468697320756e7369676e656420736f6c7574696f6e206973206f6e6c79550176616c696461746564207768656e207375626d697474656420746f2074686520706f6f6c2066726f6d20746865202a2a6c6f63616c2a2a206e6f64652e204566666563746976656c792c2074686973206d65616e735d0174686174206f6e6c79206163746976652076616c696461746f72732063616e207375626d69742074686973207472616e73616374696f6e207768656e20617574686f72696e67206120626c6f636b202873696d696c617240746f20616e20696e686572656e74292e005901546f2070726576656e7420616e7920696e636f727265637420736f6c7574696f6e2028616e642074687573207761737465642074696d652f776569676874292c2074686973207472616e73616374696f6e2077696c6c4d0170616e69632069662074686520736f6c7574696f6e207375626d6974746564206279207468652076616c696461746f7220697320696e76616c696420696e20616e79207761792c206566666563746976656c799c70757474696e6720746865697220617574686f72696e6720726577617264206174207269736b2e00e04e6f206465706f736974206f7220726577617264206973206173736f63696174656420776974682074686973207375626d697373696f6e2e6c7365745f6d696e696d756d5f756e747275737465645f73636f72650401406d617962655f6e6578745f73636f7265410501544f7074696f6e3c456c656374696f6e53636f72653e000114b05365742061206e65772076616c756520666f7220604d696e696d756d556e7472757374656453636f7265602e00d84469737061746368206f726967696e206d75737420626520616c69676e656420776974682060543a3a466f7263654f726967696e602e00f05468697320636865636b2063616e206265207475726e6564206f66662062792073657474696e67207468652076616c756520746f20604e6f6e65602e747365745f656d657267656e63795f656c656374696f6e5f726573756c74040120737570706f72747345050158537570706f7274733c543a3a4163636f756e7449643e0002205901536574206120736f6c7574696f6e20696e207468652071756575652c20746f2062652068616e646564206f757420746f2074686520636c69656e74206f6620746869732070616c6c657420696e20746865206e6578748863616c6c20746f2060456c656374696f6e50726f76696465723a3a656c656374602e004501546869732063616e206f6e6c79206265207365742062792060543a3a466f7263654f726967696e602c20616e64206f6e6c79207768656e207468652070686173652069732060456d657267656e6379602e00610154686520736f6c7574696f6e206973206e6f7420636865636b656420666f7220616e7920666561736962696c69747920616e6420697320617373756d656420746f206265207472757374776f727468792c20617320616e795101666561736962696c69747920636865636b20697473656c662063616e20696e207072696e6369706c652063617573652074686520656c656374696f6e2070726f6365737320746f206661696c202864756520746f686d656d6f72792f77656967687420636f6e73747261696e73292e187375626d69740401307261775f736f6c7574696f6e6d0401b0426f783c526177536f6c7574696f6e3c536f6c7574696f6e4f663c543a3a4d696e6572436f6e6669673e3e3e0003249c5375626d6974206120736f6c7574696f6e20666f7220746865207369676e65642070686173652e00d0546865206469737061746368206f726967696e20666f20746869732063616c6c206d757374206265205f5f7369676e65645f5f2e005d0154686520736f6c7574696f6e20697320706f74656e7469616c6c79207175657565642c206261736564206f6e2074686520636c61696d65642073636f726520616e642070726f6365737365642061742074686520656e64506f6620746865207369676e65642070686173652e005d0141206465706f73697420697320726573657276656420616e64207265636f7264656420666f722074686520736f6c7574696f6e2e204261736564206f6e20746865206f7574636f6d652c2074686520736f6c7574696f6e15016d696768742062652072657761726465642c20736c61736865642c206f722067657420616c6c206f7220612070617274206f6620746865206465706f736974206261636b2e4c676f7665726e616e63655f66616c6c6261636b0801406d617962655f6d61785f766f746572730102012c4f7074696f6e3c7533323e0001446d617962655f6d61785f746172676574730102012c4f7074696f6e3c7533323e00041080547269676765722074686520676f7665726e616e63652066616c6c6261636b2e004901546869732063616e206f6e6c792062652063616c6c6564207768656e205b6050686173653a3a456d657267656e6379605d20697320656e61626c65642c20617320616e20616c7465726e617469766520746fc063616c6c696e67205b6043616c6c3a3a7365745f656d657267656e63795f656c656374696f6e5f726573756c74605d2e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e6d04089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173652c526177536f6c7574696f6e040453017104000c0120736f6c7574696f6e710401045300011473636f72659c0134456c656374696f6e53636f7265000114726f756e6410010c7533320000710408586a6f7973747265616d5f6e6f64655f72756e74696d65384e706f73536f6c7574696f6e31360000400118766f74657331750400000118766f74657332810400000118766f74657333950400000118766f74657334a10400000118766f74657335ad0400000118766f74657336b90400000118766f74657337c50400000118766f74657338d10400000118766f74657339dd040000011c766f7465733130e9040000011c766f7465733131f5040000011c766f746573313201050000011c766f74657331330d050000011c766f746573313419050000011c766f746573313525050000011c766f746573313631050000007504000002790400790400000408e5037d04007d04000006290400810400000285040085040000040ce50389047d04008904000004087d048d04008d0400000691040091040c3473705f61726974686d65746963287065725f7468696e677318506572553136000004002904010c7531360000950400000299040099040000040ce5039d047d04009d0400000302000000890400a104000002a50400a5040000040ce503a9047d0400a90400000303000000890400ad04000002b10400b1040000040ce503b5047d0400b50400000304000000890400b904000002bd0400bd040000040ce503c1047d0400c10400000305000000890400c504000002c90400c9040000040ce503cd047d0400cd0400000306000000890400d104000002d50400d5040000040ce503d9047d0400d90400000307000000890400dd04000002e10400e1040000040ce503e5047d0400e50400000308000000890400e904000002ed0400ed040000040ce503f1047d0400f10400000309000000890400f504000002f90400f9040000040ce503fd047d0400fd040000030a000000890400010500000205050005050000040ce50309057d040009050000030b0000008904000d0500000211050011050000040ce50315057d040015050000030c00000089040019050000021d05001d050000040ce50321057d040021050000030d000000890400250500000229050029050000040ce5032d057d04002d050000030e000000890400310500000235050035050000040ce50339057d040039050000030f0000008904003d05089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f706861736558536f6c7574696f6e4f72536e617073686f7453697a650000080118766f74657273e503010c75333200011c74617267657473e503010c7533320000410504184f7074696f6e040454019c0108104e6f6e6500000010536f6d6504009c00000100004505000002490500490500000408004d05004d05084473705f6e706f735f656c656374696f6e731c537570706f727404244163636f756e744964010000080114746f74616c18013c457874656e64656442616c616e6365000118766f74657273510501845665633c284163636f756e7449642c20457874656e64656442616c616e6365293e000051050000024d01005505103870616c6c65745f7374616b696e671870616c6c65741870616c6c65741043616c6c04045400016810626f6e640c0128636f6e74726f6c6c65720001504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565ec013042616c616e63654f663c543e00011470617965655905017c52657761726444657374696e6174696f6e3c543a3a4163636f756e7449643e00003c610154616b6520746865206f726967696e206163636f756e74206173206120737461736820616e64206c6f636b207570206076616c756560206f66206974732062616c616e63652e2060636f6e74726f6c6c6572602077696c6c80626520746865206163636f756e74207468617420636f6e74726f6c732069742e002d016076616c756560206d757374206265206d6f7265207468616e2074686520606d696e696d756d5f62616c616e636560207370656369666965642062792060543a3a43757272656e6379602e002101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20627920746865207374617368206163636f756e742e003c456d6974732060426f6e646564602e34232320436f6d706c6578697479d02d20496e646570656e64656e74206f662074686520617267756d656e74732e204d6f64657261746520636f6d706c65786974792e1c2d204f2831292e642d20546872656520657874726120444220656e74726965732e004d014e4f54453a2054776f206f66207468652073746f726167652077726974657320286053656c663a3a626f6e646564602c206053656c663a3a7061796565602920617265205f6e657665725f20636c65616e65643d01756e6c6573732074686520606f726967696e602066616c6c732062656c6f77205f6578697374656e7469616c206465706f7369745f20616e6420676574732072656d6f76656420617320647573742e28626f6e645f65787472610401386d61785f6164646974696f6e616cec013042616c616e63654f663c543e000138610141646420736f6d6520657874726120616d6f756e742074686174206861766520617070656172656420696e207468652073746173682060667265655f62616c616e63656020696e746f207468652062616c616e636520757030666f72207374616b696e672e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c65722e004d01557365207468697320696620746865726520617265206164646974696f6e616c2066756e647320696e20796f7572207374617368206163636f756e74207468617420796f75207769736820746f20626f6e642e5501556e6c696b65205b60626f6e64605d2853656c663a3a626f6e6429206f72205b60756e626f6e64605d2853656c663a3a756e626f6e642920746869732066756e6374696f6e20646f6573206e6f7420696d706f7365bc616e79206c696d69746174696f6e206f6e2074686520616d6f756e7420746861742063616e2062652061646465642e003c456d6974732060426f6e646564602e0034232320436f6d706c6578697479e42d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e1c2d204f2831292e18756e626f6e6404011476616c7565ec013042616c616e63654f663c543e00024c51015363686564756c65206120706f7274696f6e206f662074686520737461736820746f20626520756e6c6f636b656420726561647920666f72207472616e73666572206f75742061667465722074686520626f6e64fc706572696f6420656e64732e2049662074686973206c656176657320616e20616d6f756e74206163746976656c7920626f6e646564206c657373207468616e2101543a3a43757272656e63793a3a6d696e696d756d5f62616c616e636528292c207468656e20697420697320696e6372656173656420746f207468652066756c6c20616d6f756e742e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0045014f6e63652074686520756e6c6f636b20706572696f6420697320646f6e652c20796f752063616e2063616c6c206077697468647261775f756e626f6e6465646020746f2061637475616c6c79206d6f7665bc7468652066756e6473206f7574206f66206d616e6167656d656e7420726561647920666f72207472616e736665722e0031014e6f206d6f7265207468616e2061206c696d69746564206e756d626572206f6620756e6c6f636b696e67206368756e6b73202873656520604d6178556e6c6f636b696e674368756e6b736029410163616e20636f2d657869737473206174207468652073616d652074696d652e20496620746865726520617265206e6f20756e6c6f636b696e67206368756e6b7320736c6f747320617661696c61626c6545015b6043616c6c3a3a77697468647261775f756e626f6e646564605d2069732063616c6c656420746f2072656d6f766520736f6d65206f6620746865206368756e6b732028696620706f737369626c65292e00390149662061207573657220656e636f756e74657273207468652060496e73756666696369656e74426f6e6460206572726f72207768656e2063616c6c696e6720746869732065787472696e7369632c1901746865792073686f756c642063616c6c20606368696c6c6020666972737420696e206f7264657220746f206672656520757020746865697220626f6e6465642066756e64732e0044456d6974732060556e626f6e646564602e009453656520616c736f205b6043616c6c3a3a77697468647261775f756e626f6e646564605d2e4477697468647261775f756e626f6e6465640401486e756d5f736c617368696e675f7370616e7310010c753332000338290152656d6f766520616e7920756e6c6f636b6564206368756e6b732066726f6d207468652060756e6c6f636b696e67602071756575652066726f6d206f7572206d616e6167656d656e742e0031015468697320657373656e7469616c6c7920667265657320757020746861742062616c616e636520746f206265207573656420627920746865207374617368206163636f756e7420746f20646f4877686174657665722069742077616e74732e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722e0048456d697473206057697468647261776e602e006853656520616c736f205b6043616c6c3a3a756e626f6e64605d2e0034232320436f6d706c6578697479d84f285329207768657265205320697320746865206e756d626572206f6620736c617368696e67207370616e7320746f2072656d6f766509014e4f54453a2057656967687420616e6e6f746174696f6e20697320746865206b696c6c207363656e6172696f2c20776520726566756e64206f74686572776973652e2076616c69646174650401147072656673b0013856616c696461746f725072656673000414e44465636c617265207468652064657369726520746f2076616c696461746520666f7220746865206f726967696e20636f6e74726f6c6c65722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e206e6f6d696e61746504011c746172676574735d0501645665633c4163636f756e7449644c6f6f6b75704f663c543e3e0005280d014465636c617265207468652064657369726520746f206e6f6d696e6174652060746172676574736020666f7220746865206f726967696e20636f6e74726f6c6c65722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0034232320436f6d706c65786974792d012d20546865207472616e73616374696f6e277320636f6d706c65786974792069732070726f706f7274696f6e616c20746f207468652073697a65206f662060746172676574736020284e29050177686963682069732063617070656420617420436f6d7061637441737369676e6d656e74733a3a4c494d49542028543a3a4d61784e6f6d696e6174696f6e73292ed42d20426f74682074686520726561647320616e642077726974657320666f6c6c6f7720612073696d696c6172207061747465726e2e146368696c6c000628c44465636c617265206e6f2064657369726520746f206569746865722076616c6964617465206f72206e6f6d696e6174652e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0034232320436f6d706c6578697479e42d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e502d20436f6e7461696e73206f6e6520726561642ec42d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e247365745f706179656504011470617965655905017c52657761726444657374696e6174696f6e3c543a3a4163636f756e7449643e000730b42852652d2973657420746865207061796d656e742074617267657420666f72206120636f6e74726f6c6c65722e005101456666656374732077696c6c2062652066656c7420696e7374616e746c792028617320736f6f6e20617320746869732066756e6374696f6e20697320636f6d706c65746564207375636365737366756c6c79292e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0034232320436f6d706c6578697479182d204f283129e42d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e942d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec42d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e242d2d2d2d2d2d2d2d2d387365745f636f6e74726f6c6c6572040128636f6e74726f6c6c65720001504163636f756e7449644c6f6f6b75704f663c543e00082c8c2852652d297365742074686520636f6e74726f6c6c6572206f6620612073746173682e005101456666656374732077696c6c2062652066656c7420696e7374616e746c792028617320736f6f6e20617320746869732066756e6374696f6e20697320636f6d706c65746564207375636365737366756c6c79292e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c65722e0034232320436f6d706c6578697479104f283129e42d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e942d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec42d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e4c7365745f76616c696461746f725f636f756e7404010c6e6577e503010c75333200091890536574732074686520696465616c206e756d626572206f662076616c696461746f72732e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e0034232320436f6d706c6578697479104f28312960696e6372656173655f76616c696461746f725f636f756e740401286164646974696f6e616ce503010c753332000a1ce4496e6372656d656e74732074686520696465616c206e756d626572206f662076616c696461746f7273207570746f206d6178696d756d206f668c60456c656374696f6e50726f7669646572426173653a3a4d617857696e6e657273602e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e0034232320436f6d706c65786974799853616d65206173205b6053656c663a3a7365745f76616c696461746f725f636f756e74605d2e547363616c655f76616c696461746f725f636f756e74040118666163746f726105011c50657263656e74000b1c0d015363616c652075702074686520696465616c206e756d626572206f662076616c696461746f7273206279206120666163746f72207570746f206d6178696d756d206f668c60456c656374696f6e50726f7669646572426173653a3a4d617857696e6e657273602e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e0034232320436f6d706c65786974799853616d65206173205b6053656c663a3a7365745f76616c696461746f725f636f756e74605d2e34666f7263655f6e6f5f65726173000c34ac466f72636520746865726520746f206265206e6f206e6577206572617320696e646566696e6974656c792e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002423205761726e696e6700190154686520656c656374696f6e2070726f6365737320737461727473206d756c7469706c6520626c6f636b73206265666f72652074686520656e64206f6620746865206572612e3901546875732074686520656c656374696f6e2070726f63657373206d6179206265206f6e676f696e67207768656e20746869732069732063616c6c65642e20496e2074686973206361736520746865dc656c656374696f6e2077696c6c20636f6e74696e756520756e74696c20746865206e65787420657261206973207472696767657265642e0034232320436f6d706c65786974793c2d204e6f20617267756d656e74732e382d205765696768743a204f28312934666f7263655f6e65775f657261000d384901466f72636520746865726520746f2062652061206e6577206572612061742074686520656e64206f6620746865206e6578742073657373696f6e2e20416674657220746869732c2069742077696c6c2062659c726573657420746f206e6f726d616c20286e6f6e2d666f7263656429206265686176696f75722e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002423205761726e696e6700190154686520656c656374696f6e2070726f6365737320737461727473206d756c7469706c6520626c6f636b73206265666f72652074686520656e64206f6620746865206572612e4901496620746869732069732063616c6c6564206a757374206265666f72652061206e657720657261206973207472696767657265642c2074686520656c656374696f6e2070726f63657373206d6179206e6f748c6861766520656e6f75676820626c6f636b7320746f20676574206120726573756c742e0034232320436f6d706c65786974793c2d204e6f20617267756d656e74732e382d205765696768743a204f283129447365745f696e76756c6e657261626c6573040134696e76756c6e657261626c65735d0501445665633c543a3a4163636f756e7449643e000e0cc8536574207468652076616c696461746f72732077686f2063616e6e6f7420626520736c61736865642028696620616e79292e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e34666f7263655f756e7374616b650801147374617368000130543a3a4163636f756e7449640001486e756d5f736c617368696e675f7370616e7310010c753332000f0c0901466f72636520612063757272656e74207374616b657220746f206265636f6d6520636f6d706c6574656c7920756e7374616b65642c20696d6d6564696174656c792e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e50666f7263655f6e65775f6572615f616c776179730010240101466f72636520746865726520746f2062652061206e6577206572612061742074686520656e64206f662073657373696f6e7320696e646566696e6974656c792e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002423205761726e696e6700190154686520656c656374696f6e2070726f6365737320737461727473206d756c7469706c6520626c6f636b73206265666f72652074686520656e64206f6620746865206572612e4901496620746869732069732063616c6c6564206a757374206265666f72652061206e657720657261206973207472696767657265642c2074686520656c656374696f6e2070726f63657373206d6179206e6f748c6861766520656e6f75676820626c6f636b7320746f20676574206120726573756c742e5463616e63656c5f64656665727265645f736c61736808010c657261100120457261496e646578000134736c6173685f696e6469636573650501205665633c7533323e0011149443616e63656c20656e6163746d656e74206f66206120646566657272656420736c6173682e009843616e2062652063616c6c6564206279207468652060543a3a41646d696e4f726967696e602e000101506172616d65746572733a2065726120616e6420696e6469636573206f662074686520736c617368657320666f7220746861742065726120746f206b696c6c2e387061796f75745f7374616b65727308013c76616c696461746f725f7374617368000130543a3a4163636f756e74496400010c657261100120457261496e64657800122c0d01506179206f757420616c6c20746865207374616b65727320626568696e6420612073696e676c652076616c696461746f7220666f7220612073696e676c65206572612e0049012d206076616c696461746f725f73746173686020697320746865207374617368206163636f756e74206f66207468652076616c696461746f722e205468656972206e6f6d696e61746f72732c20757020746f2501202060543a3a4d61784e6f6d696e61746f72526577617264656450657256616c696461746f72602c2077696c6c20616c736f207265636569766520746865697220726577617264732e31012d206065726160206d617920626520616e7920657261206265747765656e20605b63757272656e745f657261202d20686973746f72795f64657074683b2063757272656e745f6572615d602e005501546865206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e20416e79206163636f756e742063616e2063616c6c20746869732066756e6374696f6e2c206576656e206966746974206973206e6f74206f6e65206f6620746865207374616b6572732e0034232320436f6d706c6578697479b82d204174206d6f7374204f284d61784e6f6d696e61746f72526577617264656450657256616c696461746f72292e187265626f6e6404011476616c7565ec013042616c616e63654f663c543e00131cdc5265626f6e64206120706f7274696f6e206f6620746865207374617368207363686564756c656420746f20626520756e6c6f636b65642e00d4546865206469737061746368206f726967696e206d757374206265207369676e65642062792074686520636f6e74726f6c6c65722e0034232320436f6d706c6578697479d02d2054696d6520636f6d706c65786974793a204f284c292c207768657265204c20697320756e6c6f636b696e67206368756e6b73882d20426f756e64656420627920604d6178556e6c6f636b696e674368756e6b73602e28726561705f73746173680801147374617368000130543a3a4163636f756e7449640001486e756d5f736c617368696e675f7370616e7310010c7533320014305d0152656d6f766520616c6c2064617461207374727563747572657320636f6e6365726e696e672061207374616b65722f7374617368206f6e636520697420697320617420612073746174652077686572652069742063616e0501626520636f6e736964657265642060647573746020696e20746865207374616b696e672073797374656d2e2054686520726571756972656d656e7473206172653a000501312e207468652060746f74616c5f62616c616e636560206f66207468652073746173682069732062656c6f77206578697374656e7469616c206465706f7369742e1101322e206f722c2074686520606c65646765722e746f74616c60206f66207468652073746173682069732062656c6f77206578697374656e7469616c206465706f7369742e00550154686520666f726d65722063616e2068617070656e20696e206361736573206c696b65206120736c6173683b20746865206c6174746572207768656e20612066756c6c7920756e626f6e646564206163636f756e7409016973207374696c6c20726563656976696e67207374616b696e67207265776172647320696e206052657761726444657374696e6174696f6e3a3a5374616b6564602e00310149742063616e2062652063616c6c656420627920616e796f6e652c206173206c6f6e672061732060737461736860206d65657473207468652061626f766520726571756972656d656e74732e00dc526566756e647320746865207472616e73616374696f6e20666565732075706f6e207375636365737366756c20657865637574696f6e2e106b69636b04010c77686f5d0501645665633c4163636f756e7449644c6f6f6b75704f663c543e3e00152ce052656d6f76652074686520676976656e206e6f6d696e6174696f6e732066726f6d207468652063616c6c696e672076616c696461746f722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e004d012d206077686f603a2041206c697374206f66206e6f6d696e61746f72207374617368206163636f756e74732077686f20617265206e6f6d696e6174696e6720746869732076616c696461746f72207768696368c0202073686f756c64206e6f206c6f6e676572206265206e6f6d696e6174696e6720746869732076616c696461746f722e0055014e6f74653a204d616b696e6720746869732063616c6c206f6e6c79206d616b65732073656e736520696620796f7520666972737420736574207468652076616c696461746f7220707265666572656e63657320746f78626c6f636b20616e792066757274686572206e6f6d696e6174696f6e732e4c7365745f7374616b696e675f636f6e666967731801486d696e5f6e6f6d696e61746f725f626f6e6469050158436f6e6669674f703c42616c616e63654f663c543e3e0001486d696e5f76616c696461746f725f626f6e6469050158436f6e6669674f703c42616c616e63654f663c543e3e00014c6d61785f6e6f6d696e61746f725f636f756e746d050134436f6e6669674f703c7533323e00014c6d61785f76616c696461746f725f636f756e746d050134436f6e6669674f703c7533323e00013c6368696c6c5f7468726573686f6c6471050144436f6e6669674f703c50657263656e743e0001386d696e5f636f6d6d697373696f6e75050144436f6e6669674f703c50657262696c6c3e001644ac5570646174652074686520766172696f7573207374616b696e6720636f6e66696775726174696f6e73202e0025012a20606d696e5f6e6f6d696e61746f725f626f6e64603a20546865206d696e696d756d2061637469766520626f6e64206e656564656420746f2062652061206e6f6d696e61746f722e25012a20606d696e5f76616c696461746f725f626f6e64603a20546865206d696e696d756d2061637469766520626f6e64206e656564656420746f20626520612076616c696461746f722e55012a20606d61785f6e6f6d696e61746f725f636f756e74603a20546865206d6178206e756d626572206f662075736572732077686f2063616e2062652061206e6f6d696e61746f72206174206f6e63652e205768656e98202073657420746f20604e6f6e65602c206e6f206c696d697420697320656e666f726365642e55012a20606d61785f76616c696461746f725f636f756e74603a20546865206d6178206e756d626572206f662075736572732077686f2063616e20626520612076616c696461746f72206174206f6e63652e205768656e98202073657420746f20604e6f6e65602c206e6f206c696d697420697320656e666f726365642e59012a20606368696c6c5f7468726573686f6c64603a2054686520726174696f206f6620606d61785f6e6f6d696e61746f725f636f756e7460206f7220606d61785f76616c696461746f725f636f756e74602077686963681901202073686f756c642062652066696c6c656420696e206f7264657220666f722074686520606368696c6c5f6f7468657260207472616e73616374696f6e20746f20776f726b2e61012a20606d696e5f636f6d6d697373696f6e603a20546865206d696e696d756d20616d6f756e74206f6620636f6d6d697373696f6e207468617420656163682076616c696461746f7273206d757374206d61696e7461696e2e550120205468697320697320636865636b6564206f6e6c792075706f6e2063616c6c696e67206076616c6964617465602e204578697374696e672076616c696461746f727320617265206e6f742061666665637465642e00c452756e74696d654f726967696e206d75737420626520526f6f7420746f2063616c6c20746869732066756e6374696f6e2e0035014e4f54453a204578697374696e67206e6f6d696e61746f727320616e642076616c696461746f72732077696c6c206e6f742062652061666665637465642062792074686973207570646174652e1101746f206b69636b2070656f706c6520756e64657220746865206e6577206c696d6974732c20606368696c6c5f6f74686572602073686f756c642062652063616c6c65642e2c6368696c6c5f6f74686572040128636f6e74726f6c6c6572000130543a3a4163636f756e74496400176841014465636c61726520612060636f6e74726f6c6c65726020746f2073746f702070617274696369706174696e672061732065697468657220612076616c696461746f72206f72206e6f6d696e61746f722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e004101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2c206275742063616e2062652063616c6c656420627920616e796f6e652e0059014966207468652063616c6c6572206973207468652073616d652061732074686520636f6e74726f6c6c6572206265696e672074617267657465642c207468656e206e6f206675727468657220636865636b7320617265d8656e666f726365642c20616e6420746869732066756e6374696f6e2062656861766573206a757374206c696b6520606368696c6c602e005d014966207468652063616c6c657220697320646966666572656e74207468616e2074686520636f6e74726f6c6c6572206265696e672074617267657465642c2074686520666f6c6c6f77696e6720636f6e646974696f6e73306d757374206265206d65743a001d012a2060636f6e74726f6c6c657260206d7573742062656c6f6e6720746f2061206e6f6d696e61746f722077686f20686173206265636f6d65206e6f6e2d6465636f6461626c652c000c4f723a003d012a204120604368696c6c5468726573686f6c6460206d7573742062652073657420616e6420636865636b656420776869636820646566696e657320686f7720636c6f736520746f20746865206d6178550120206e6f6d696e61746f7273206f722076616c696461746f7273207765206d757374207265616368206265666f72652075736572732063616e207374617274206368696c6c696e67206f6e652d616e6f746865722e59012a204120604d61784e6f6d696e61746f72436f756e746020616e6420604d617856616c696461746f72436f756e7460206d75737420626520736574207768696368206973207573656420746f2064657465726d696e65902020686f7720636c6f73652077652061726520746f20746865207468726573686f6c642e5d012a204120604d696e4e6f6d696e61746f72426f6e646020616e6420604d696e56616c696461746f72426f6e6460206d7573742062652073657420616e6420636865636b65642c2077686963682064657465726d696e65735101202069662074686973206973206120706572736f6e20746861742073686f756c64206265206368696c6c6564206265636175736520746865792068617665206e6f74206d657420746865207468726573686f6c64402020626f6e642072657175697265642e005501546869732063616e2062652068656c7066756c20696620626f6e6420726571756972656d656e74732061726520757064617465642c20616e64207765206e65656420746f2072656d6f7665206f6c642075736572739877686f20646f206e6f74207361746973667920746865736520726571756972656d656e74732e68666f7263655f6170706c795f6d696e5f636f6d6d697373696f6e04013c76616c696461746f725f7374617368000130543a3a4163636f756e74496400180c4501466f72636520612076616c696461746f7220746f2068617665206174206c6561737420746865206d696e696d756d20636f6d6d697373696f6e2e20546869732077696c6c206e6f74206166666563742061610176616c696461746f722077686f20616c726561647920686173206120636f6d6d697373696f6e2067726561746572207468616e206f7220657175616c20746f20746865206d696e696d756d2e20416e79206163636f756e743863616e2063616c6c20746869732e487365745f6d696e5f636f6d6d697373696f6e04010c6e6577ac011c50657262696c6c00191025015365747320746865206d696e696d756d20616d6f756e74206f6620636f6d6d697373696f6e207468617420656163682076616c696461746f7273206d757374206d61696e7461696e2e005901546869732063616c6c20686173206c6f7765722070726976696c65676520726571756972656d656e7473207468616e20607365745f7374616b696e675f636f6e6669676020616e642063616e2062652063616c6c6564cc6279207468652060543a3a41646d696e4f726967696e602e20526f6f742063616e20616c776179732063616c6c20746869732e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e5905083870616c6c65745f7374616b696e674452657761726444657374696e6174696f6e04244163636f756e74496401000114185374616b656400000014537461736800010028436f6e74726f6c6c65720002001c4163636f756e7404000001244163636f756e744964000300104e6f6e65000400005d05000002000061050c3473705f61726974686d65746963287065725f7468696e67731c50657263656e740000040008010875380000650500000210006905103870616c6c65745f7374616b696e671870616c6c65741870616c6c657420436f6e6669674f700404540118010c104e6f6f700000000c5365740400180104540001001852656d6f7665000200006d05103870616c6c65745f7374616b696e671870616c6c65741870616c6c657420436f6e6669674f700404540110010c104e6f6f700000000c5365740400100104540001001852656d6f7665000200007105103870616c6c65745f7374616b696e671870616c6c65741870616c6c657420436f6e6669674f70040454016105010c104e6f6f700000000c536574040061050104540001001852656d6f7665000200007505103870616c6c65745f7374616b696e671870616c6c65741870616c6c657420436f6e6669674f7004045401ac010c104e6f6f700000000c5365740400ac0104540001001852656d6f76650002000079050c3870616c6c65745f73657373696f6e1870616c6c65741043616c6c040454000108207365745f6b6579730801106b6579737d05011c543a3a4b65797300011470726f6f6630011c5665633c75383e000024e453657473207468652073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c657220746f20606b657973602e1d01416c6c6f777320616e206163636f756e7420746f20736574206974732073657373696f6e206b6579207072696f7220746f206265636f6d696e6720612076616c696461746f722ec05468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e00d0546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265207369676e65642e0034232320436f6d706c657869747959012d20604f283129602e2041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f662060543a3a4b6579733a3a6b65795f69647328296020776869636820697320202066697865642e2870757267655f6b657973000130c852656d6f76657320616e792073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c65722e00c05468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e005501546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265205369676e656420616e6420746865206163636f756e74206d757374206265206569746865722062655d01636f6e7665727469626c6520746f20612076616c696461746f72204944207573696e672074686520636861696e2773207479706963616c2061646472657373696e672073797374656d20287468697320757375616c6c7951016d65616e73206265696e67206120636f6e74726f6c6c6572206163636f756e7429206f72206469726563746c7920636f6e7665727469626c6520696e746f20612076616c696461746f722049442028776869636894757375616c6c79206d65616e73206265696e672061207374617368206163636f756e74292e0034232320436f6d706c65786974793d012d20604f2831296020696e206e756d626572206f66206b65792074797065732e2041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f6698202060543a3a4b6579733a3a6b65795f6964732829602077686963682069732066697865642e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e7d0508586a6f7973747265616d5f6e6f64655f72756e74696d652c53657373696f6e4b657973000010011c6772616e647061cc01d03c4772616e647061206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c6963000110626162654d0401c43c42616265206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c6963000124696d5f6f6e6c696e65d801d43c496d4f6e6c696e65206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c696300014c617574686f726974795f646973636f76657279810501fc3c417574686f72697479446973636f76657279206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c6963000081050c5873705f617574686f726974795f646973636f766572790c617070185075626c696300000400dc013c737232353531393a3a5075626c6963000085050c3870616c6c65745f6772616e6470611870616c6c65741043616c6c04045400010c4c7265706f72745f65717569766f636174696f6e08014865717569766f636174696f6e5f70726f6f66890501bc426f783c45717569766f636174696f6e50726f6f663c543a3a486173682c20543a3a426c6f636b4e756d6265723e3e00013c6b65795f6f776e65725f70726f6f6655040140543a3a4b65794f776e657250726f6f6600001009015265706f727420766f7465722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667920746865f465717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66f8616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63654477696c6c206265207265706f727465642e707265706f72745f65717569766f636174696f6e5f756e7369676e656408014865717569766f636174696f6e5f70726f6f66890501bc426f783c45717569766f636174696f6e50726f6f663c543a3a486173682c20543a3a426c6f636b4e756d6265723e3e00013c6b65795f6f776e65725f70726f6f6655040140543a3a4b65794f776e657250726f6f6600012409015265706f727420766f7465722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667920746865f465717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66f8616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63654477696c6c206265207265706f727465642e000d01546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c791501626c6f636b20617574686f72732077696c6c2063616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c2061732073756368150169662074686520626c6f636b20617574686f7220697320646566696e65642069742077696c6c20626520646566696e6564206173207468652065717569766f636174696f6e247265706f727465722e306e6f74655f7374616c6c656408011464656c6179100138543a3a426c6f636b4e756d62657200016c626573745f66696e616c697a65645f626c6f636b5f6e756d626572100138543a3a426c6f636b4e756d6265720002303d014e6f74652074686174207468652063757272656e7420617574686f7269747920736574206f6620746865204752414e4450412066696e616c6974792067616467657420686173207374616c6c65642e006101546869732077696c6c2074726967676572206120666f7263656420617574686f7269747920736574206368616e67652061742074686520626567696e6e696e67206f6620746865206e6578742073657373696f6e2c20746f6101626520656e6163746564206064656c61796020626c6f636b7320616674657220746861742e20546865206064656c6179602073686f756c64206265206869676820656e6f75676820746f20736166656c7920617373756d654901746861742074686520626c6f636b207369676e616c6c696e672074686520666f72636564206368616e67652077696c6c206e6f742062652072652d6f7267656420652e672e203130303020626c6f636b732e5d0154686520626c6f636b2070726f64756374696f6e207261746520287768696368206d617920626520736c6f77656420646f776e2062656361757365206f662066696e616c697479206c616767696e67292073686f756c64510162652074616b656e20696e746f206163636f756e74207768656e2063686f6f73696e6720746865206064656c6179602e20546865204752414e44504120766f74657273206261736564206f6e20746865206e65775501617574686f726974792077696c6c20737461727420766f74696e67206f6e20746f70206f662060626573745f66696e616c697a65645f626c6f636b5f6e756d6265726020666f72206e65772066696e616c697a65644d01626c6f636b732e2060626573745f66696e616c697a65645f626c6f636b5f6e756d626572602073686f756c64206265207468652068696768657374206f6620746865206c61746573742066696e616c697a6564c4626c6f636b206f6620616c6c2076616c696461746f7273206f6620746865206e657720617574686f72697479207365742e00584f6e6c792063616c6c61626c6520627920726f6f742e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e8905084c73705f66696e616c6974795f6772616e6470614445717569766f636174696f6e50726f6f66080448012c044e0110000801187365745f6964280114536574496400013065717569766f636174696f6e8d05014845717569766f636174696f6e3c482c204e3e00008d05084c73705f66696e616c6974795f6772616e6470613045717569766f636174696f6e080448012c044e011001081c507265766f7465040091050139016772616e6470613a3a45717569766f636174696f6e3c417574686f7269747949642c206772616e6470613a3a507265766f74653c482c204e3e2c0a417574686f726974795369676e61747572653e00000024507265636f6d6d69740400a9050141016772616e6470613a3a45717569766f636174696f6e3c417574686f7269747949642c206772616e6470613a3a507265636f6d6d69743c482c204e3e2c0a417574686f726974795369676e61747572653e000100009105084066696e616c6974795f6772616e6470613045717569766f636174696f6e0c08496401cc0456019505045301990500100130726f756e645f6e756d62657228010c7536340001206964656e74697479cc010849640001146669727374a505011828562c2053290001187365636f6e64a505011828562c20532900009505084066696e616c6974795f6772616e6470611c507265766f7465080448012c044e01100008012c7461726765745f686173682c0104480001347461726765745f6e756d6265721001044e000099050c4c73705f66696e616c6974795f6772616e6470610c617070245369676e6174757265000004009d050148656432353531393a3a5369676e617475726500009d050c1c73705f636f72651c65643235353139245369676e617475726500000400a10501205b75383b2036345d0000a105000003400000000800a505000004089505990500a905084066696e616c6974795f6772616e6470613045717569766f636174696f6e0c08496401cc045601ad05045301990500100130726f756e645f6e756d62657228010c7536340001206964656e74697479cc010849640001146669727374b105011828562c2053290001187365636f6e64b105011828562c2053290000ad05084066696e616c6974795f6772616e64706124507265636f6d6d6974080448012c044e01100008012c7461726765745f686173682c0104480001347461726765745f6e756d6265721001044e0000b10500000408ad05990500b5050c4070616c6c65745f696d5f6f6e6c696e651870616c6c65741043616c6c04045400010424686561727462656174080124686561727462656174b90501644865617274626561743c543a3a426c6f636b4e756d6265723e0001247369676e6174757265cd0501bc3c543a3a417574686f7269747949642061732052756e74696d654170705075626c69633e3a3a5369676e617475726500001438232320436f6d706c65786974793a59012d20604f284b202b20452960207768657265204b206973206c656e677468206f6620604b6579736020286865617274626561742e76616c696461746f72735f6c656e2920616e642045206973206c656e677468206f66b02020606865617274626561742e6e6574776f726b5f73746174652e65787465726e616c5f61646472657373608820202d20604f284b29603a206465636f64696e67206f66206c656e67746820604b60ac20202d20604f284529603a206465636f64696e672f656e636f64696e67206f66206c656e67746820604560042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632eb905084070616c6c65745f696d5f6f6e6c696e6524486561727462656174042c426c6f636b4e756d626572011000140130626c6f636b5f6e756d62657210012c426c6f636b4e756d6265720001346e6574776f726b5f7374617465bd0501484f70617175654e6574776f726b537461746500013473657373696f6e5f696e64657810013053657373696f6e496e64657800013c617574686f726974795f696e64657810012441757468496e64657800013876616c696461746f72735f6c656e10010c7533320000bd050c1c73705f636f7265206f6666636861696e484f70617175654e6574776f726b5374617465000008011c706565725f6964c10501304f706171756550656572496400014865787465726e616c5f616464726573736573c50501505665633c4f70617175654d756c7469616464723e0000c105081c73705f636f7265304f70617175655065657249640000040030011c5665633c75383e0000c505000002c90500c9050c1c73705f636f7265206f6666636861696e3c4f70617175654d756c7469616464720000040030011c5665633c75383e0000cd05104070616c6c65745f696d5f6f6e6c696e651c737232353531392c6170705f73723235353139245369676e617475726500000400d1050148737232353531393a3a5369676e61747572650000d1050c1c73705f636f72651c73723235353139245369676e617475726500000400a10501205b75383b2036345d0000d5050c4070616c6c65745f626167735f6c6973741870616c6c65741043616c6c0804540004490001081472656261670401286469736c6f63617465640001504163636f756e7449644c6f6f6b75704f663c543e00002859014465636c617265207468617420736f6d6520606469736c6f636174656460206163636f756e74206861732c207468726f7567682072657761726473206f722070656e616c746965732c2073756666696369656e746c7951016368616e676564206974732073636f726520746861742069742073686f756c642070726f7065726c792066616c6c20696e746f206120646966666572656e7420626167207468616e206974732063757272656e74106f6e652e001d01416e796f6e652063616e2063616c6c20746869732066756e6374696f6e2061626f757420616e7920706f74656e7469616c6c79206469736c6f6361746564206163636f756e742e00490157696c6c20616c7761797320757064617465207468652073746f7265642073636f7265206f6620606469736c6f63617465646020746f2074686520636f72726563742073636f72652c206261736564206f6e406053636f726550726f7669646572602e00d4496620606469736c6f63617465646020646f6573206e6f74206578697374732c2069742072657475726e7320616e206572726f722e3c7075745f696e5f66726f6e745f6f6604011c6c6967687465720001504163636f756e7449644c6f6f6b75704f663c543e000120d04d6f7665207468652063616c6c65722773204964206469726563746c7920696e2066726f6e74206f6620606c696768746572602e005901546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642063616e206f6e6c792062652063616c6c656420627920746865204964206f66a0746865206163636f756e7420676f696e6720696e2066726f6e74206f6620606c696768746572602e00344f6e6c7920776f726b73206966942d20626f7468206e6f646573206172652077697468696e207468652073616d65206261672cd02d20616e6420606f726967696e602068617320612067726561746572206053636f726560207468616e20606c696768746572602e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ed9050c3870616c6c65745f76657374696e671870616c6c65741043616c6c0404540001141076657374000024b8556e6c6f636b20616e79207665737465642066756e6473206f66207468652073656e646572206163636f756e742e005d01546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652066756e6473207374696c6c646c6f636b656420756e64657220746869732070616c6c65742e00d0456d69747320656974686572206056657374696e67436f6d706c6574656460206f72206056657374696e6755706461746564602e0034232320436f6d706c6578697479242d20604f283129602e28766573745f6f746865720401187461726765740001504163636f756e7449644c6f6f6b75704f663c543e00012cb8556e6c6f636b20616e79207665737465642066756e6473206f662061206074617267657460206163636f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0051012d2060746172676574603a20546865206163636f756e742077686f7365207665737465642066756e64732073686f756c6420626520756e6c6f636b65642e204d75737420686176652066756e6473207374696c6c646c6f636b656420756e64657220746869732070616c6c65742e00d0456d69747320656974686572206056657374696e67436f6d706c6574656460206f72206056657374696e6755706461746564602e0034232320436f6d706c6578697479242d20604f283129602e3c7665737465645f7472616e736665720801187461726765740001504163636f756e7449644c6f6f6b75704f663c543e0001207363686564756c65dd0501a456657374696e67496e666f3c42616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e00023464437265617465206120766573746564207472616e736665722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00cc2d2060746172676574603a20546865206163636f756e7420726563656976696e6720746865207665737465642066756e64732ef02d20607363686564756c65603a205468652076657374696e67207363686564756c6520617474616368656420746f20746865207472616e736665722e005c456d697473206056657374696e6743726561746564602e00fc4e4f54453a20546869732077696c6c20756e6c6f636b20616c6c207363686564756c6573207468726f756768207468652063757272656e7420626c6f636b2e0034232320436f6d706c6578697479242d20604f283129602e54666f7263655f7665737465645f7472616e736665720c0118736f757263650001504163636f756e7449644c6f6f6b75704f663c543e0001187461726765740001504163636f756e7449644c6f6f6b75704f663c543e0001207363686564756c65dd0501a456657374696e67496e666f3c42616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e00033860466f726365206120766573746564207472616e736665722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e00e82d2060736f75726365603a20546865206163636f756e742077686f73652066756e64732073686f756c64206265207472616e736665727265642e11012d2060746172676574603a20546865206163636f756e7420746861742073686f756c64206265207472616e7366657272656420746865207665737465642066756e64732ef02d20607363686564756c65603a205468652076657374696e67207363686564756c6520617474616368656420746f20746865207472616e736665722e005c456d697473206056657374696e6743726561746564602e00fc4e4f54453a20546869732077696c6c20756e6c6f636b20616c6c207363686564756c6573207468726f756768207468652063757272656e7420626c6f636b2e0034232320436f6d706c6578697479242d20604f283129602e3c6d657267655f7363686564756c657308013c7363686564756c65315f696e64657810010c75333200013c7363686564756c65325f696e64657810010c7533320004545d014d657267652074776f2076657374696e67207363686564756c657320746f6765746865722c206372656174696e672061206e65772076657374696e67207363686564756c65207468617420756e6c6f636b73206f7665725501746865206869676865737420706f737369626c6520737461727420616e6420656e6420626c6f636b732e20496620626f7468207363686564756c6573206861766520616c7265616479207374617274656420746865590163757272656e7420626c6f636b2077696c6c206265207573656420617320746865207363686564756c652073746172743b207769746820746865206361766561742074686174206966206f6e65207363686564756c655d0169732066696e6973686564206279207468652063757272656e7420626c6f636b2c20746865206f746865722077696c6c206265207472656174656420617320746865206e6577206d6572676564207363686564756c652c2c756e6d6f6469666965642e00f84e4f54453a20496620607363686564756c65315f696e646578203d3d207363686564756c65325f696e6465786020746869732069732061206e6f2d6f702e41014e4f54453a20546869732077696c6c20756e6c6f636b20616c6c207363686564756c6573207468726f756768207468652063757272656e7420626c6f636b207072696f7220746f206d657267696e672e61014e4f54453a20496620626f7468207363686564756c6573206861766520656e646564206279207468652063757272656e7420626c6f636b2c206e6f206e6577207363686564756c652077696c6c206265206372656174656464616e6420626f74682077696c6c2062652072656d6f7665642e006c4d6572676564207363686564756c6520617474726962757465733a35012d20607374617274696e675f626c6f636b603a20604d4158287363686564756c65312e7374617274696e675f626c6f636b2c207363686564756c6564322e7374617274696e675f626c6f636b2c48202063757272656e745f626c6f636b29602e21012d2060656e64696e675f626c6f636b603a20604d4158287363686564756c65312e656e64696e675f626c6f636b2c207363686564756c65322e656e64696e675f626c6f636b29602e59012d20606c6f636b6564603a20607363686564756c65312e6c6f636b65645f61742863757272656e745f626c6f636b29202b207363686564756c65322e6c6f636b65645f61742863757272656e745f626c6f636b29602e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00e82d20607363686564756c65315f696e646578603a20696e646578206f6620746865206669727374207363686564756c6520746f206d657267652eec2d20607363686564756c65325f696e646578603a20696e646578206f6620746865207365636f6e64207363686564756c6520746f206d657267652e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632edd050c3870616c6c65745f76657374696e673076657374696e675f696e666f2c56657374696e67496e666f081c42616c616e636501182c426c6f636b4e756d6265720110000c01186c6f636b656418011c42616c616e63650001247065725f626c6f636b18011c42616c616e63650001387374617274696e675f626c6f636b10012c426c6f636b4e756d6265720000e1050c3c70616c6c65745f6d756c74697369671870616c6c65741043616c6c0404540001105061735f6d756c74695f7468726573686f6c645f310801446f746865725f7369676e61746f726965735d0501445665633c543a3a4163636f756e7449643e00011063616c6c3904017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0000305101496d6d6564696174656c792064697370617463682061206d756c74692d7369676e61747572652063616c6c207573696e6720612073696e676c6520617070726f76616c2066726f6d207468652063616c6c65722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003d012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f206172652070617274206f662074686501016d756c74692d7369676e61747572652c2062757420646f206e6f7420706172746963697061746520696e2074686520617070726f76616c2070726f636573732e882d206063616c6c603a205468652063616c6c20746f2062652065786563757465642e00b8526573756c74206973206571756976616c656e7420746f20746865206469737061746368656420726573756c742e0034232320436f6d706c657869747919014f285a202b204329207768657265205a20697320746865206c656e677468206f66207468652063616c6c20616e6420432069747320657865637574696f6e207765696768742e2061735f6d756c74691401247468726573686f6c642904010c7531360001446f746865725f7369676e61746f726965735d0501445665633c543a3a4163636f756e7449643e00013c6d617962655f74696d65706f696e74e50501844f7074696f6e3c54696d65706f696e743c543a3a426c6f636b4e756d6265723e3e00011063616c6c3904017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0001286d61785f77656967687420011857656967687400019c5501526567697374657220617070726f76616c20666f72206120646973706174636820746f206265206d6164652066726f6d20612064657465726d696e697374696320636f6d706f73697465206163636f756e74206966f8617070726f766564206279206120746f74616c206f6620607468726573686f6c64202d203160206f6620606f746865725f7369676e61746f72696573602e00b049662074686572652061726520656e6f7567682c207468656e206469737061746368207468652063616c6c2e002d015061796d656e743a20604465706f73697442617365602077696c6c20626520726573657276656420696620746869732069732074686520666972737420617070726f76616c2c20706c75733d01607468726573686f6c64602074696d657320604465706f736974466163746f72602e2049742069732072657475726e6564206f6e636520746869732064697370617463682068617070656e73206f723469732063616e63656c6c65642e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0055012d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e41012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f766520746869736c64697370617463682e204d6179206e6f7420626520656d7074792e59012d20606d617962655f74696d65706f696e74603a20496620746869732069732074686520666972737420617070726f76616c2c207468656e2074686973206d75737420626520604e6f6e65602e20496620697420697351016e6f742074686520666972737420617070726f76616c2c207468656e206974206d7573742062652060536f6d65602c2077697468207468652074696d65706f696e742028626c6f636b206e756d62657220616e64d47472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c207472616e73616374696f6e2e882d206063616c6c603a205468652063616c6c20746f2062652065786563757465642e001d014e4f54453a20556e6c6573732074686973206973207468652066696e616c20617070726f76616c2c20796f752077696c6c2067656e6572616c6c792077616e7420746f20757365190160617070726f76655f61735f6d756c74696020696e73746561642c2073696e6365206974206f6e6c7920726571756972657320612068617368206f66207468652063616c6c2e005901526573756c74206973206571756976616c656e7420746f20746865206469737061746368656420726573756c7420696620607468726573686f6c64602069732065786163746c79206031602e204f746865727769736555016f6e20737563636573732c20726573756c7420697320604f6b6020616e642074686520726573756c742066726f6d2074686520696e746572696f722063616c6c2c206966206974207761732065786563757465642cdc6d617920626520666f756e6420696e20746865206465706f736974656420604d756c7469736967457865637574656460206576656e742e0034232320436f6d706c6578697479502d20604f2853202b205a202b2043616c6c29602ecc2d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e3d012d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f66450120207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2e21012d204f6e652063616c6c20656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285a296020776865726520605a602069732074782d6c656e2ebc2d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602ed42d20557020746f206f6e652062696e6172792073656172636820616e6420696e736572742028604f286c6f6753202b20532960292ef82d20492f4f3a2031207265616420604f285329602c20757020746f2031206d757461746520604f285329602e20557020746f206f6e652072656d6f76652e302d204f6e65206576656e742e6c2d2054686520776569676874206f6620746865206063616c6c602e4d012d2053746f726167653a20696e7365727473206f6e65206974656d2c2076616c75652073697a6520626f756e64656420627920604d61785369676e61746f72696573602c20776974682061206465706f7369741901202074616b656e20666f7220697473206c69666574696d65206f6620604465706f73697442617365202b207468726573686f6c64202a204465706f736974466163746f72602e40617070726f76655f61735f6d756c74691401247468726573686f6c642904010c7531360001446f746865725f7369676e61746f726965735d0501445665633c543a3a4163636f756e7449643e00013c6d617962655f74696d65706f696e74e50501844f7074696f6e3c54696d65706f696e743c543a3a426c6f636b4e756d6265723e3e00012463616c6c5f686173680401205b75383b2033325d0001286d61785f7765696768742001185765696768740002785501526567697374657220617070726f76616c20666f72206120646973706174636820746f206265206d6164652066726f6d20612064657465726d696e697374696320636f6d706f73697465206163636f756e74206966f8617070726f766564206279206120746f74616c206f6620607468726573686f6c64202d203160206f6620606f746865725f7369676e61746f72696573602e002d015061796d656e743a20604465706f73697442617365602077696c6c20626520726573657276656420696620746869732069732074686520666972737420617070726f76616c2c20706c75733d01607468726573686f6c64602074696d657320604465706f736974466163746f72602e2049742069732072657475726e6564206f6e636520746869732064697370617463682068617070656e73206f723469732063616e63656c6c65642e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0055012d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e41012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f766520746869736c64697370617463682e204d6179206e6f7420626520656d7074792e59012d20606d617962655f74696d65706f696e74603a20496620746869732069732074686520666972737420617070726f76616c2c207468656e2074686973206d75737420626520604e6f6e65602e20496620697420697351016e6f742074686520666972737420617070726f76616c2c207468656e206974206d7573742062652060536f6d65602c2077697468207468652074696d65706f696e742028626c6f636b206e756d62657220616e64d47472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c207472616e73616374696f6e2ecc2d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f2062652065786563757465642e0035014e4f54453a2049662074686973206973207468652066696e616c20617070726f76616c2c20796f752077696c6c2077616e7420746f20757365206061735f6d756c74696020696e73746561642e0034232320436f6d706c6578697479242d20604f285329602ecc2d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e3d012d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f66450120207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2ebc2d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602ed42d20557020746f206f6e652062696e6172792073656172636820616e6420696e736572742028604f286c6f6753202b20532960292ef82d20492f4f3a2031207265616420604f285329602c20757020746f2031206d757461746520604f285329602e20557020746f206f6e652072656d6f76652e302d204f6e65206576656e742e4d012d2053746f726167653a20696e7365727473206f6e65206974656d2c2076616c75652073697a6520626f756e64656420627920604d61785369676e61746f72696573602c20776974682061206465706f7369741901202074616b656e20666f7220697473206c69666574696d65206f6620604465706f73697442617365202b207468726573686f6c64202a204465706f736974466163746f72602e3c63616e63656c5f61735f6d756c74691001247468726573686f6c642904010c7531360001446f746865725f7369676e61746f726965735d0501445665633c543a3a4163636f756e7449643e00012474696d65706f696e740d01016454696d65706f696e743c543a3a426c6f636b4e756d6265723e00012463616c6c5f686173680401205b75383b2033325d000354550143616e63656c2061207072652d6578697374696e672c206f6e2d676f696e67206d756c7469736967207472616e73616374696f6e2e20416e79206465706f7369742072657365727665642070726576696f75736c79c4666f722074686973206f7065726174696f6e2077696c6c20626520756e7265736572766564206f6e20737563636573732e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0055012d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e41012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f766520746869736c64697370617463682e204d6179206e6f7420626520656d7074792e5d012d206074696d65706f696e74603a205468652074696d65706f696e742028626c6f636b206e756d62657220616e64207472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c787472616e73616374696f6e20666f7220746869732064697370617463682ecc2d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f2062652065786563757465642e0034232320436f6d706c6578697479242d20604f285329602ecc2d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e3d012d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f66450120207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2ebc2d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602e302d204f6e65206576656e742e842d20492f4f3a2031207265616420604f285329602c206f6e652072656d6f76652e702d2053746f726167653a2072656d6f766573206f6e65206974656d2e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ee50504184f7074696f6e040454010d010108104e6f6e6500000010536f6d6504000d010000010000e905083870616c6c65745f636f756e63696c1043616c6c04045400013048616e6e6f756e63655f63616e6469646163791001346d656d626572736869705f696428012c543a3a4d656d62657249640001487374616b696e675f6163636f756e745f6964000130543a3a4163636f756e7449640001447265776172645f6163636f756e745f6964000130543a3a4163636f756e7449640001147374616b6518012842616c616e63653c543e0000244c5375627363726962652063616e646964617465002823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5c72656c656173655f63616e6469646163795f7374616b650401346d656d626572736869705f696428012c543a3a4d656d6265724964000124c452656c656173652063616e646964616379207374616b652074686174206973206e6f206c6f6e676572206e65656465642e002823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e4877697468647261775f63616e6469646163790401346d656d626572736869705f696428012c543a3a4d656d6265724964000224bc57697468647261772063616e64696461637920616e642072656c656173652063616e646964616379207374616b652e002823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e487365745f63616e6469646163795f6e6f74650801346d656d626572736869705f696428012c543a3a4d656d62657249640001106e6f746530011c5665633c75383e00032879015365742073686f7274206465736372697074696f6e20666f7220746865207573657227732063616e6469646163792e2043616e2062652063616c6c656420616e7974696d6520647572696e67207573657227732063616e6469646163792e002823203c7765696768743e002423232077656967687438604f20284e29602077686572653a98604e60206973207468652073697a65206f6620606e6f74656020696e206b696c6f6279746573142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e287365745f62756467657404011c62616c616e636518012842616c616e63653c543e000424605365747320746865206275646765742062616c616e63652e002823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e48706c616e5f6275646765745f726566696c6c04012c6e6578745f726566696c6c100138543a3a426c6f636b4e756d62657200052470506c616e20746865206e6578742062756467657420726566696c6c2e002823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e507365745f6275646765745f696e6372656d656e740401406275646765745f696e6372656d656e7418012842616c616e63653c543e0006247453657473207468652062756467657420726566696c6c20616d6f756e74002823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e507365745f636f756e63696c6f725f726577617264040140636f756e63696c6f725f72657761726418012842616c616e63653c543e0007248c536574732074686520636f756e63696c6f72207265776172642070657220626c6f636b002823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3c66756e64696e675f7265717565737404014066756e64696e675f7265717565737473550301dc5665633c46756e64696e6752657175657374506172616d65746572733c42616c616e63653c543e2c20543a3a4163636f756e7449643e3e000828b85472616e73666572732066756e64732066726f6d20636f756e63696c2062756467657420746f206163636f756e74002823203c7765696768743e002423232077656967687438604f20284629602077686572653a9c60466020697320746865206c656e677468206f66206066756e64696e675f726571756573747360142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e4c66756e645f636f756e63696c5f6275646765740c01246d656d6265725f696428012c4d656d62657249643c543e000118616d6f756e7418012842616c616e63653c543e000124726174696f6e616c6530011c5665633c75383e0009209046756e642074686520636f756e63696c206275646765742062792061206d656d6265722e203c7765696768743e0024232320576569676874c4604f202831296020446f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e40636f756e63696c6f725f72656d61726b080130636f756e63696c6f725f696428012c543a3a4d656d626572496400010c6d736730011c5665633c75383e000a2480436f756e63696c6f72206d616b657320612072656d61726b206d657373616765002823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e4063616e6469646174655f72656d61726b08013063616e6469646174655f696428012c543a3a4d656d626572496400010c6d736730011c5665633c75383e000b248043616e646964617465206d616b657320612072656d61726b206d657373616765002823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652eed05084470616c6c65745f7265666572656e64756d1043616c6c08045400044900011010766f7465080128636f6d6d69746d656e742c011c543a3a486173680001147374616b6518013042616c616e63654f663c543e00002494436173742061207365616c656420766f746520696e20746865207265666572656e64756d2e002823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c72657665616c5f766f746508011073616c7430011c5665633c75383e000138766f74655f6f7074696f6e5f69642801d03c5420617320636f6d6d6f6e3a3a6d656d626572736869703a3a4d656d6265727368697054797065733e3a3a4d656d626572496400012c9c52657665616c2061207365616c656420766f746520696e20746865207265666572656e64756d2e002823203c7765696768743e002423232057656967687438604f20285729602077686572653a0d012d2060576020697320746865206e756d626572206f662060696e7465726d6564696174655f77696e6e657273602073746f72656420696e207468652063757272656e7468202020206053746167653a3a3c542c20493e3a3a676574282960142d2044423ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e4872656c656173655f766f74655f7374616b650002205c52656c656173652061206c6f636b6564207374616b652e2823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e446f70745f6f75745f6f665f766f74696e67000324cc5065726d616e656e746c79206f7074206f7574206f6620766f74696e672066726f6d206120676976656e206163636f756e742e002823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652ef105084470616c6c65745f6d656d626572736869701043616c6c040454000144386275795f6d656d62657273686970040118706172616d732d0101c84275794d656d62657273686970506172616d65746572733c543a3a4163636f756e7449642c20543a3a4d656d62657249643e00002c7c4e6f6e2d6d656d626572732063616e20627579206d656d626572736869702e00203c7765696768743e002423232057656967687448604f202857202b204d29602077686572653a942d20605760206973207468652068616e646c652073697a6520696e206b696c6f62797465739c2d20604d6020697320746865206d657461646174612073697a6520696e206b696c6f6279746573142d2044423a242020202d204f2831292c23203c2f7765696768743e387570646174655f70726f66696c650c01246d656d6265725f696428012c543a3a4d656d626572496400011868616e646c653101013c4f7074696f6e3c5665633c75383e3e0001206d657461646174613101013c4f7074696f6e3c5665633c75383e3e0001300d01557064617465206d656d626572277320616c6c206f7220736f6d65206f66206e616d652c2068616e646c652c2061766174617220616e642061626f757420746578742e7c4e6f20656666656374206966206e6f206368616e676564206669656c64732e00203c7765696768743e002423232057656967687448604f202857202b204d29602077686572653a942d20605760206973207468652068616e646c652073697a6520696e206b696c6f62797465739c2d20604d6020697320746865206d657461646174612073697a6520696e206b696c6f6279746573142d2044423a242020202d204f2831292c23203c2f7765696768743e3c7570646174655f6163636f756e74730c01246d656d6265725f696428012c543a3a4d656d62657249640001406e65775f726f6f745f6163636f756e749401504f7074696f6e3c543a3a4163636f756e7449643e0001586e65775f636f6e74726f6c6c65725f6163636f756e749401504f7074696f6e3c543a3a4163636f756e7449643e00022c550155706461746573206d656d62657220726f6f74206f7220636f6e74726f6c6c6572206163636f756e74732e204e6f2065666665637420696620626f7468206e6577206163636f756e74732061726520656d7074792e00203c7765696768743e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6c7570646174655f70726f66696c655f766572696669636174696f6e0c0124776f726b65725f6964280128543a3a4163746f7249640001407461726765745f6d656d6265725f696428012c543a3a4d656d626572496400012c69735f7665726966696564980110626f6f6c000324450155706461746573206d656d6265722070726f66696c6520766572696669636174696f6e207374617475732e20526571756972657320776f726b696e672067726f7570206d656d626572206f726967696e2e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e407365745f726566657272616c5f63757404013470657263656e745f76616c75650801087538000424110155706461746573206d656d6265727368697020726566657272616c206375742070657263656e742076616c75652e20526571756972657320726f6f74206f726967696e2e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e407472616e736665725f696e76697465730c0140736f757263655f6d656d6265725f696428012c543a3a4d656d62657249640001407461726765745f6d656d6265725f696428012c543a3a4d656d62657249640001446e756d6265725f6f665f696e766974657310010c753332000524b45472616e736665727320696e76697465732066726f6d206f6e65206d656d62657220746f20616e6f746865722e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e34696e766974655f6d656d626572040118706172616d73390101d4496e766974654d656d62657273686970506172616d65746572733c543a3a4163636f756e7449642c20543a3a4d656d62657249643e00062c50496e766974652061206e6577206d656d6265722e00203c7765696768743e002423232057656967687448604f202857202b204d29602077686572653a942d20605760206973207468652068616e646c652073697a6520696e206b696c6f62797465739c2d20604d6020697320746865206d657461646174612073697a6520696e206b696c6f6279746573142d2044423a242020202d204f2831292c23203c2f7765696768743e3c676966745f6d656d62657273686970040118706172616d73410101d0476966744d656d62657273686970506172616d65746572733c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e00070c1d01476966742061206d656d62657273686970207573696e67206f776e2066756e64732e2047696674657220646f6573206e6f74206e65656420746f2062652061206d656d6265722e5d0143616e206f7074696e616c6c79206170706c792061206c6f636b206f6e206120706f7274696f6e206f66207468652066756e6473207472616e7366657272656420746f20726f6f7420616e6420636f6e74726f6c6c6572b86163636f756e74732e2047696674657220616c736f207061797320746865206d656d62657273686970206665652e507365745f6d656d626572736869705f70726963650401246e65775f707269636518013042616c616e63654f663c543e000824bc55706461746573206d656d626572736869702070726963652e20526571756972657320726f6f74206f726967696e2e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6c7365745f6c65616465725f696e7669746174696f6e5f71756f7461040140696e7669746174696f6e5f71756f746110010c753332000924d855706461746573206c656164657220696e7669746174696f6e2071756f74612e20526571756972657320726f6f74206f726967696e2e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e787365745f696e697469616c5f696e7669746174696f6e5f62616c616e636504014c6e65775f696e697469616c5f62616c616e636518013042616c616e63654f663c543e000a2439015570646174657320696e697469616c20696e7669746174696f6e2062616c616e636520666f72206120696e7669746564206d656d6265722e20526571756972657320726f6f74206f726967696e2e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e707365745f696e697469616c5f696e7669746174696f6e5f636f756e740401506e65775f696e7669746174696f6e5f636f756e7410010c753332000b2411015570646174657320696e697469616c20696e7669746174696f6e20636f756e7420666f722061206d656d6265722e20526571756972657320726f6f74206f726967696e2e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e746164645f7374616b696e675f6163636f756e745f63616e6469646174650401246d656d6265725f696428012c543a3a4d656d6265724964000c28ac416464207374616b696e67206163636f756e742063616e64696461746520666f722061206d656d6265722eb8546865206d656d62657273686970206d75737420626520636f6e6669726d6564206265666f72652075736167652e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5872656d6f76655f7374616b696e675f6163636f756e740401246d656d6265725f696428012c543a3a4d656d6265724964000d249052656d6f7665207374616b696e67206163636f756e7420666f722061206d656d6265722e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5c636f6e6669726d5f7374616b696e675f6163636f756e740801246d656d6265725f696428012c543a3a4d656d62657249640001487374616b696e675f6163636f756e745f6964000130543a3a4163636f756e744964000e24bc436f6e6669726d207374616b696e67206163636f756e742063616e64696461746520666f722061206d656d6265722e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e346d656d6265725f72656d61726b0c01246d656d6265725f696428012c543a3a4d656d626572496400010c6d736730011c5665633c75383e00011c7061796d656e74490101884f7074696f6e3c28543a3a4163636f756e7449642c20543a3a42616c616e6365293e000f24544d656d626572206d616b657320612072656d61726b00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e346372656174655f6d656d626572040118706172616d733d0101904372656174654d656d626572506172616d65746572733c543a3a4163636f756e7449643e00102c804372656174652061206d656d6265722070726f66696c6520617320726f6f742e00203c7765696768743e002423232057656967687448604f202849202b204a29602077686572653a942d20604960206973207468652068616e646c652073697a6520696e206b696c6f62797465739c2d20604a6020697320746865206d657461646174612073697a6520696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652ef505083070616c6c65745f666f72756d1043616c6c0404540001409c7570646174655f63617465676f72795f6d656d626572736869705f6f665f6d6f64657261746f720c01306d6f64657261746f725f69642801384d6f64657261746f7249643c543e00012c63617465676f72795f6964280134543a3a43617465676f727949640001246e65775f76616c7565980110626f6f6c0000240901456e61626c652061206d6f64657261746f722063616e206d6f64657261746520612063617465676f727920616e6420697473207375622063617465676f726965732e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3c6372656174655f63617465676f72790c0148706172656e745f63617465676f72795f6964350101544f7074696f6e3c543a3a43617465676f727949643e0001147469746c6530011c5665633c75383e00012c6465736372697074696f6e30011c5665633c75383e0001304c4164642061206e65772063617465676f72792e00203c7765696768743e002423232057656967687458604f202857202b2056202b205829602077686572653a6c2d20605760206973207468652063617465676f7279206465707468d42d20605660206973207468652073697a65206f66207468652063617465676f7279207469746c6520696e206b696c6f62797465732eec2d20605860206973207468652073697a65206f66207468652063617465676f7279206465736372697074696f6e20696e206b696c6f62797465732e142d2044423a242020202d204f2857292c23203c2f7765696768743e7c7570646174655f63617465676f72795f617263686976616c5f7374617475730c01146163746f725501014850726976696c656765644163746f723c543e00012c63617465676f72795f6964280134543a3a43617465676f7279496400014c6e65775f617263686976616c5f737461747573980110626f6f6c0002285855706461746520617263686976616c2073746174757300203c7765696768743e002423232057656967687438604f20285729602077686572653a6c2d20605760206973207468652063617465676f7279206465707468142d2044423a242020202d204f2857292c23203c2f7765696768743e547570646174655f63617465676f72795f7469746c650c01146163746f725501014850726976696c656765644163746f723c543e00012c63617465676f72795f6964280134543a3a43617465676f727949640001147469746c6530011c5665633c75383e00032c545570646174652063617465676f7279207469746c6500203c7765696768743e002423232057656967687448604f202857202b205629602077686572653a6c2d20605760206973207468652063617465676f7279206465707468d42d20605660206973207468652073697a65206f66207468652063617465676f7279207469746c6520696e206b696c6f62797465732e142d2044423a242020202d204f2857292c23203c2f7765696768743e6c7570646174655f63617465676f72795f6465736372697074696f6e0c01146163746f725501014850726976696c656765644163746f723c543e00012c63617465676f72795f6964280134543a3a43617465676f7279496400012c6465736372697074696f6e30011c5665633c75383e00042c6c5570646174652063617465676f7279206465736372697074696f6e00203c7765696768743e002423232057656967687438604f20285729602077686572653a6c2d20605760206973207468652063617465676f7279206465707468ec2d20605660206973207468652073697a65206f66207468652063617465676f7279206465736372697074696f6e20696e206b696c6f62797465732e142d2044423a242020202d204f2857292c23203c2f7765696768743e3c64656c6574655f63617465676f72790801146163746f725501014850726976696c656765644163746f723c543e00012c63617465676f72795f6964280134543a3a43617465676f727949640005283c44656c6574652063617465676f727900203c7765696768743e002423232057656967687438604f20285729602077686572653a6c2d20605760206973207468652063617465676f7279206465707468142d2044423a242020202d204f2857292c23203c2f7765696768743e346372656174655f746872656164100134666f72756d5f757365725f6964280138466f72756d5573657249643c543e00012c63617465676f72795f6964280134543a3a43617465676f727949640001206d6574616461746130011c5665633c75383e0001107465787430011c5665633c75383e00063074437265617465206e65772074687265616420696e2063617465676f727900203c7765696768743e002423232057656967687458604f202857202b2056202b205829602077686572653a6c2d20605760206973207468652063617465676f7279206465707468cc2d20605660206973207468652073697a65206f662074686520746872656164207469746c6520696e206b696c6f62797465732ec82d20605860206973207468652073697a65206f662074686520746872656164207465787420696e206b696c6f62797465732e142d2044423a242020202d204f2857292c23203c2f7765696768743e50656469745f7468726561645f6d65746164617461100134666f72756d5f757365725f6964280138466f72756d5573657249643c543e00012c63617465676f72795f6964280134543a3a43617465676f727949640001247468726561645f696428012c543a3a54687265616449640001306e65775f6d6574616461746130011c5665633c75383e00072c504564697420746872656164206d6574616461746100203c7765696768743e002423232057656967687448604f202857202b205629602077686572653a6c2d20605760206973207468652063617465676f7279206465707468d82d20605660206973207468652073697a65206f662074686520746872656164206d6574616461746120696e206b696c6f62797465732e142d2044423a242020202d204f2857292c23203c2f7765696768743e3464656c6574655f746872656164100134666f72756d5f757365725f6964280138466f72756d5573657249643c543e00012c63617465676f72795f6964280134543a3a43617465676f727949640001247468726561645f696428012c543a3a546872656164496400011068696465980110626f6f6c0008283444656c6574652074687265616400203c7765696768743e002423232057656967687438604f20285729602077686572653a6c2d20605760206973207468652063617465676f7279206465707468142d2044423a242020202d204f2857292c23203c2f7765696768743e5c6d6f76655f7468726561645f746f5f63617465676f72791001146163746f725501014850726976696c656765644163746f723c543e00012c63617465676f72795f6964280134543a3a43617465676f727949640001247468726561645f696428012c543a3a546872656164496400013c6e65775f63617465676f72795f6964280134543a3a43617465676f727949640009287c4d6f76652074687265616420746f20616e6f746865722063617465676f727900203c7765696768743e002423232057656967687438604f20285729602077686572653a6c2d20605760206973207468652063617465676f7279206465707468142d2044423a242020202d204f2857292c23203c2f7765696768743e3c6d6f6465726174655f7468726561641001146163746f725501014850726976696c656765644163746f723c543e00012c63617465676f72795f6964280134543a3a43617465676f727949640001247468726561645f696428012c543a3a5468726561644964000124726174696f6e616c6530011c5665633c75383e000a303c4d6f6465726174652074687265616400203c7765696768743e002423232057656967687458604f202857202b2056202b205829602077686572653a702d20605760206973207468652063617465676f72792064657074682c902d2060566020697320746865206e756d626572206f662074687265616420706f7374732cbc2d20605860206973207468652073697a65206f662074686520726174696f6e616c6520696e206b696c6f6279746573142d2044423a342020202d204f2857202b2056292c23203c2f7765696768743e206164645f706f7374140134666f72756d5f757365725f6964280138466f72756d5573657249643c543e00012c63617465676f72795f6964280134543a3a43617465676f727949640001247468726561645f696428012c543a3a54687265616449640001107465787430011c5665633c75383e0001206564697461626c65980110626f6f6c000b2c2041646420706f737400203c7765696768743e002423232057656967687448604f202857202b205629602077686572653a702d20605760206973207468652063617465676f72792064657074682ca82d20605660206973207468652073697a65206f6620746865207465787420696e206b696c6f6279746573142d2044423a242020202d204f2857292c23203c2f7765696768743e38656469745f706f73745f74657874140134666f72756d5f757365725f6964280138466f72756d5573657249643c543e00012c63617465676f72795f6964280134543a3a43617465676f727949640001247468726561645f696428012c543a3a546872656164496400011c706f73745f6964280124543a3a506f737449640001206e65775f7465787430011c5665633c75383e000c2c384564697420706f7374207465787400203c7765696768743e002423232057656967687448604f202857202b205629602077686572653a702d20605760206973207468652063617465676f72792064657074682cb82d20605660206973207468652073697a65206f6620746865206e6577207465787420696e206b696c6f6279746573142d2044423a242020202d204f2857292c23203c2f7765696768743e346d6f6465726174655f706f73741401146163746f725501014850726976696c656765644163746f723c543e00012c63617465676f72795f6964280134543a3a43617465676f727949640001247468726561645f696428012c543a3a546872656164496400011c706f73745f6964280124543a3a506f73744964000124726174696f6e616c6530011c5665633c75383e000d2c344d6f64657261746520706f737400203c7765696768743e002423232057656967687448604f202857202b205629602077686572653a702d20605760206973207468652063617465676f72792064657074682cbc2d20605660206973207468652073697a65206f662074686520726174696f6e616c6520696e206b696c6f6279746573142d2044423a242020202d204f2857292c23203c2f7765696768743e3064656c6574655f706f7374730c0134666f72756d5f757365725f6964280138466f72756d5573657249643c543e000114706f7374735d01018442547265654d61703c457874656e646564506f737449643c543e2c20626f6f6c3e000124726174696f6e616c6530011c5665633c75383e000e346444656c65746520706f73742066726f6d2073746f726167652eec596f75206e65656420746f2070726f76696465206120766563746f72206f6620706f73747320746f2064656c65746520696e2074686520666f726db428543a3a43617465676f727949642c20543a3a54687265616449642c20543a3a506f737449642c20626f6f6c292501776865726520746865206c61737420626f6f6c206973207768657468657220796f752077616e7420746f20686964652069742061706172742066726f6d2064656c6574696e67206974002423232057656967687458604f202857202b2056202b205029602077686572653a702d20605760206973207468652063617465676f72792064657074682cbc2d20605660206973207468652073697a65206f662074686520726174696f6e616c6520696e206b696c6f6279746573982d2060506020697320746865206e756d626572206f6620706f73747320746f2064656c657465142d2044423a342020202d204f2857202b2050292c23203c2f7765696768743e507365745f737469636b6965645f746872656164730c01146163746f725501014850726976696c656765644163746f723c543e00012c63617465676f72795f6964280134543a3a43617465676f72794964000130737469636b6965645f6964736901015442547265655365743c543a3a54687265616449643e000f2c8453657420737469636b696564207468726561647320666f722063617465676f727900203c7765696768743e002423232057656967687448604f202857202b205629602077686572653a702d20605760206973207468652063617465676f72792064657074682c9c2d2060566020697320746865206c656e677468206f662074686520737469636b6965645f696473142d2044423a342020202d204f2857202b2056292c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652ef905084c70616c6c65745f636f6e737469747574696f6e1043616c6c04045400010448616d656e645f636f6e737469747574696f6e040144636f6e737469747574696f6e5f7465787430011c5665633c75383e000018e453657473207468652063757272656e7420636f6e737469747574696f6e20686173682e20526571756972657320726f6f74206f726967696e2e2823203c7765696768743e11012d20436f6d706c65786974793a20604f28432960207768657265204320697320746865206c656e677468206f662074686520636f6e737469747574696f6e20746578742e342d2044622072656164733a20307c2d204462207772697465733a20312028636f6e7374616e742076616c7565292c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652efd05083470616c6c65745f626f756e74791043616c6c04045400013c346372656174655f626f756e7479080118706172616d737501016c426f756e74794372656174696f6e506172616d65746572733c543e0001206d6574616461746130011c5665633c75383e000028490143726561746573206120626f756e74792e204d657461646174612073746f72656420696e20746865207472616e73616374696f6e206c6f67206275742064697363617264656420616674657220746861742e203c7765696768743e002423232057656967687438604f20285729602077686572653aa42d2060576020697320746865205f6d657461646174612073697a6520696e206b696c6f62797465732eb02d20604d6020697320636c6f73656420636f6e7472616374206d656d626572206c697374206c656e6774682e142d2044423a842020202d204f284d2920284f283129206f6e206f70656e20636f6e7472616374292c23203c2f7765696768743e2c66756e645f626f756e74790c011866756e64657279010160426f756e74794163746f723c4d656d62657249643c543e3e000124626f756e74795f696428012c543a3a426f756e74794964000118616d6f756e7418013042616c616e63654f663c543e0001206050726f766964657320626f756e74792066756e64696e672e2823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e407465726d696e6174655f626f756e7479040124626f756e74795f696428012c543a3a426f756e74794964000224c05465726d696e61746573206120626f756e747920696e2066756e64696e672c2066756e64696e6720657870697265642c7c776f726b7375626d697373696f6e2c206a756467696e6720706572696f642e2823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e347377697463685f6f7261636c650801286e65775f6f7261636c6579010160426f756e74794163746f723c4d656d62657249643c543e3e000124626f756e74795f696428012c543a3a426f756e74794964000324904f7261636c652073776974636865732068696d73656c6620746f2061206e6577206f6e652823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e004077697468647261775f66756e64696e6708011866756e64657279010160426f756e74794163746f723c4d656d62657249643c543e3e000124626f756e74795f696428012c543a3a426f756e74794964000420c4576974686472617720626f756e74792066756e64696e672062792061206d656d626572206f72206120636f756e63696c2e2823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e4c616e6e6f756e63655f776f726b5f656e7472791001246d656d6265725f696428012c4d656d62657249643c543e000124626f756e74795f696428012c543a3a426f756e747949640001487374616b696e675f6163636f756e745f6964000130543a3a4163636f756e744964000140776f726b5f6465736372697074696f6e30011c5665633c75383e000528b0416e6e6f756e636520776f726b20656e74727920666f722061207375636365737366756c20626f756e74792e2823203c7765696768743e002423232077656967687448604f202857202b204d29602077686572653ac02d206057602069732074686520776f726b5f6465736372697074696f6e2073697a6520696e206b696c6f62797465732eb02d20604d6020697320636c6f73656420636f6e7472616374206d656d626572206c697374206c656e6774682e142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c7375626d69745f776f726b1001246d656d6265725f696428012c4d656d62657249643c543e000124626f756e74795f696428012c543a3a426f756e74794964000120656e7472795f6964280128543a3a456e7472794964000124776f726b5f6461746130011c5665633c75383e000624645375626d697420776f726b20666f72206120626f756e74792e2823203c7765696768743e00242323207765696768741c604f20284e2960a42d20604e602069732074686520776f726b5f646174612073697a6520696e206b696c6f62797465732c142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e48656e645f776f726b696e675f706572696f64040124626f756e74795f696428012c543a3a426f756e7479496400072068656e6420626f756e747920776f726b696e6720706572696f642e2823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e587375626d69745f6f7261636c655f6a7564676d656e740c0124626f756e74795f696428012c543a3a426f756e747949640001206a7564676d656e74850101a04f7261636c654a7564676d656e743c543a3a456e74727949642c2042616c616e63654f663c543e3e000124726174696f6e616c6530011c5665633c75383e00083819015375626d69747320616e206f7261636c65206a7564676d656e7420666f72206120626f756e74792c20736c617368696e672074686520656e74726965732072656a65637465642d01627920616e206172626974726172792070657263656e7461676520616e6420726577617264696e67207468652077696e6e65727320627920616e2061726269747261727920616d6f756e7498286e6f742073757270617373696e672074686520746f74616c2066756e6420616d6f756e74292823203c7765696768743e00242323207765696768744c604f20284a202b204b202b2057202b20522960942d20604a6020697320726174696f6e616c652073697a6520696e206b696c6f62797465732c61012d20604b60206973207468652073756d206f6620616c6c20616374696f6e5f6a757374696669636174696f6e2073697a65732028696e206b696c6f62797465732920696e73696465204f7261636c654a7564676d656e742cac2d20605760206973206e756d626572206f662077696e6e6572206a7564676d656e7420656e74726965732cb42d20605260206973206e756d626572206f662072656a6563746564206a7564676d656e7420656e74726965732c142d2064623a3c2020202d20604f2857202b205229602c23203c2f7765696768743e5877697468647261775f656e7472616e745f7374616b650c01246d656d6265725f696428012c4d656d62657249643c543e000124626f756e74795f696428012c543a3a426f756e74794964000120656e7472795f6964280128543a3a456e7472794964000928a4556e6c6f636b7320746865207374616b652072656c6174656420746f206120776f726b20656e747279a901416674657220746865206f7261636c65206d616b657320746865206a7564676d656e74206f722074686520636f756e63696c207465726d696e617465732074686520626f756e74792062792063616c6c696e67207465726d696e6174655f626f756e7479282e2e2e292c51016561636820776f726b65722077686f736520656e74727920686173206e6f74206265656e206a75646765642c2063616e20756e6c6f636b2074686520746f74616c697479206f66207468656972207374616b652e2823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5877697468647261775f6f7261636c655f726577617264040124626f756e74795f696428012c543a3a426f756e74794964000a2890576974687261777320746865206f7261636c652072657761726420746f206f7261636c651101496620626f756e7479206973207375636365737366756c6c792c204661696c6564206f722043616e63656c6c6564206f7261636c65206d7573742063616c6c2074686973a065787472696e73696320746f20776974686472617720746865206f7261636c65207265776172642c2823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e48636f6e7472696275746f725f72656d61726b0c012c636f6e7472696275746f7279010160426f756e74794163746f723c4d656d62657249643c543e3e000124626f756e74795f696428012c543a3a426f756e7479496400010c6d736730011c5665633c75383e000b2880426f756e747920436f6e7472696275746f72206d61646520612072656d61726b002823203c7765696768743e00242323207765696768741c604f20284e2960782d20604e60206973206d73672073697a6520696e206b696c6f6279746573142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e346f7261636c655f72656d61726b0c01186f7261636c6579010160426f756e74794163746f723c4d656d62657249643c543e3e000124626f756e74795f696428012c543a3a426f756e7479496400010c6d736730011c5665633c75383e000c286c426f756e7479204f7261636c65206d61646520612072656d61726b002823203c7765696768743e00242323207765696768741c604f20284e2960782d20604e60206973206d73672073697a6520696e206b696c6f6279746573142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e38656e7472616e745f72656d61726b100128656e7472616e745f696428012c4d656d62657249643c543e000124626f756e74795f696428012c543a3a426f756e74794964000120656e7472795f6964280128543a3a456e747279496400010c6d736730011c5665633c75383e000d288c426f756e747920456e7472616e7420576f726b6572206d61646520612072656d61726b002823203c7765696768743e00242323207765696768741c604f20284e2960782d20604e60206973206d73672073697a6520696e206b696c6f6279746573142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3863726561746f725f72656d61726b0c011c63726561746f7279010160426f756e74794163746f723c4d656d62657249643c543e3e000124626f756e74795f696428012c543a3a426f756e7479496400010c6d736730011c5665633c75383e000e286c426f756e7479204f7261636c65206d61646520612072656d61726b002823203c7765696768743e00242323207765696768741c604f20284e2960782d20604e60206973206d73672073697a6520696e206b696c6f6279746573142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e0106083870616c6c65745f7574696c6974791043616c6c0404540001105c657865637574655f7369676e616c5f70726f706f73616c0401187369676e616c30011c5665633c75383e00002871015369676e616c2070726f706f73616c2065787472696e7369632e2053686f756c6420626520757365642061732063616c6c61626c65206f626a65637420746f207061737320746f207468652060656e67696e6560206d6f64756c652e00203c7765696768743e002423232057656967687438604f20285329602077686572653ab02d20605360206973207468652073697a65206f6620746865207369676e616c20696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e80657865637574655f72756e74696d655f757067726164655f70726f706f73616c0401107761736d30011c5665633c75383e0001288c52756e74696d6520757067726164652070726f706f73616c2065787472696e7369632e050153686f756c6420626520757365642061732063616c6c61626c65206f626a65637420746f207061737320746f207468652060656e67696e6560206d6f64756c652e203c7765696768743e002423232057656967687438604f20284329602077686572653a742d2060436020697320746865206c656e677468206f6620607761736d603d01486f77657665722c207765207472656174207468697320617320612066756c6c20626c6f636b20617320606672616d655f73797374656d3a3a4d6f64756c653a3a7365745f636f64656020646f65732c23203c2f7765696768743ebd01235b776569676874203d2028543a3a426c6f636b576569676874733a3a67657428292e676574284469737061746368436c6173733a3a4f7065726174696f6e616c292e626173655f65787472696e7369632c204469737061746368436c6173733a3a4f7065726174696f6e616c295d6c7570646174655f776f726b696e675f67726f75705f6275646765740c0134776f726b696e675f67726f757099010130576f726b696e6747726f7570000118616d6f756e7418013042616c616e63654f663c543e00013062616c616e63655f6b696e649d01012c42616c616e63654b696e640002206c55706461746520776f726b696e672067726f757020627564676574203c7765696768743e0024232320576569676874c4604f202831296020446f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e4c6275726e5f6163636f756e745f746f6b656e73040118616d6f756e7418013042616c616e63654f663c543e000320784275726e7320746f6b656e20666f722063616c6c6572206163636f756e74203c7765696768743e0024232320576569676874c4604f202831296020446f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e0506083870616c6c65745f636f6e74656e741043616c6c04045400010101506372656174655f63757261746f725f67726f757008012469735f616374697665980110626f6f6c0001507065726d697373696f6e735f62795f6c6576656c5502017c4d6f6465726174696f6e5065726d697373696f6e7342794c6576656c3c543e000028a0416464206e65772063757261746f722067726f757020746f2072756e74696d652073746f7261676500203c7765696768743e002423232057656967687438604f20284129602077686572653af02d2060416020697320746865206e756d626572206f6620656e747269657320696e20607065726d697373696f6e735f62795f6c6576656c60206d6170142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e807570646174655f63757261746f725f67726f75705f7065726d697373696f6e7308014063757261746f725f67726f75705f6964280144543a3a43757261746f7247726f757049640001507065726d697373696f6e735f62795f6c6576656c5502017c4d6f6465726174696f6e5065726d697373696f6e7342794c6576656c3c543e000128ac557064617465206578697374696e672063757261746f722067726f75702773207065726d697373696f6e7300203c7765696768743e002423232057656967687438604f20284129602077686572653af02d2060416020697320746865206e756d626572206f6620656e747269657320696e20607065726d697373696f6e735f62795f6c6576656c60206d6170142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e607365745f63757261746f725f67726f75705f73746174757308014063757261746f725f67726f75705f6964280144543a3a43757261746f7247726f7570496400012469735f616374697665980110626f6f6c0002241d01536574206069735f616374697665602073746174757320666f722063757261746f722067726f757020756e64657220676976656e206063757261746f725f67726f75705f69646000203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e506164645f63757261746f725f746f5f67726f75700c014063757261746f725f67726f75705f6964280144543a3a43757261746f7247726f7570496400012863757261746f725f6964280130543a3a43757261746f72496400012c7065726d697373696f6e73bd01015c4368616e6e656c4167656e745065726d697373696f6e73000324ec4164642063757261746f7220746f2063757261746f722067726f757020756e64657220676976656e206063757261746f725f67726f75705f69646000203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6472656d6f76655f63757261746f725f66726f6d5f67726f757008014063757261746f725f67726f75705f6964280144543a3a43757261746f7247726f7570496400012863757261746f725f6964280130543a3a43757261746f724964000424a452656d6f76652063757261746f722066726f6d206120676976656e2063757261746f722067726f757000203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e386372656174655f6368616e6e656c0801346368616e6e656c5f6f776e6572e50101b04368616e6e656c4f776e65723c543a3a4d656d62657249642c20543a3a43757261746f7247726f757049643e000118706172616d73150201704368616e6e656c4372656174696f6e506172616d65746572733c543e000530203c7765696768743e002423232057656967687478604f202841202b2042202b2043202b2044202b204529602077686572653ae02d2060416020697320746865206e756d626572206f6620656e747269657320696e2060706172616d732e636f6c6c61626f7261746f727360e02d2060426020697320746865206e756d626572206f66206974656d7320696e2060706172616d732e73746f726167655f6275636b65747360f42d2060436020697320746865206e756d626572206f66206974656d7320696e2060706172616d732e646973747269627574696f6e5f6275636b6574736011012d2060446020697320746865206e756d626572206f66206974656d7320696e2060706172616d732e6173736574732e6f626a6563745f6372656174696f6e5f6c69737460c02d20604560206973207468652073697a65206f66202060706172616d732e6d6574616020696e206b696c6f6279746573142d2044423ae02020202d20604f2841202b2042202b2043202b20442960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e387570646174655f6368616e6e656c0c01146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c4964000118706172616d73410201684368616e6e656c557064617465506172616d65746572733c543e000630203c7765696768743e002423232057656967687478604f202841202b2042202b2043202b2044202b204529602077686572653ae02d2060416020697320746865206e756d626572206f6620656e747269657320696e2060706172616d732e636f6c6c61626f7261746f72736071012d2060426020697320746865206e756d626572206f66206974656d7320696e2060706172616d732e6173736574735f746f5f75706c6f61642e6f626a6563745f6372656174696f6e5f6c69737460202869662070726f766964656429e42d2060436020697320746865206e756d626572206f66206974656d7320696e2060706172616d732e6173736574735f746f5f72656d6f766560cc2d20604460206973207468652073697a65206f662060706172616d732e6e65775f6d6574616020696e206b696c6f6279746573ec2d206045602069732060706172616d732e73746f726167655f6275636b6574735f6e756d5f7769746e65737360202869662070726f766964656429142d2044423ae02020202d20604f2841202b2042202b2043202b20452960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e787570646174655f6368616e6e656c5f70726976696c6567655f6c6576656c0801286368616e6e656c5f6964280130543a3a4368616e6e656c496400014c6e65775f70726976696c6567655f6c6576656c080160543a3a4368616e6e656c50726976696c6567654c6576656c000724150145787472696e73696320666f72207570646174696e67206368616e6e656c2070726976696c656765206c6576656c20287265717569726573206c656164206163636573732900203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743ea07365745f6368616e6e656c5f7061757365645f66656174757265735f61735f6d6f64657261746f721001146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c496400014c6e65775f7061757365645f6665617475726573d901018042547265655365743c5061757361626c654368616e6e656c466561747572653e000124726174696f6e616c6530011c5665633c75383e000828c845787472696e73696320666f722070617573696e672f72652d656e61626c696e67206368616e6e656c20666561747572657300203c7765696768743e002423232057656967687438604f20284129602077686572653ab42d20604160206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3864656c6574655f6368616e6e656c1001146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c496400014c6368616e6e656c5f6261675f7769746e657373090601444368616e6e656c4261675769746e6573730001546e756d5f6f626a656374735f746f5f64656c65746528010c753634000928203c7765696768743e002423232057656967687458604f202841202b2042202b204329602077686572653a802d2060416020697320606e756d5f6f626a656374735f746f5f64656c65746560c82d2060426020697320606368616e6e656c5f6261675f7769746e6573732e73746f726167655f6275636b6574735f6e756d60dc2d2060436020697320606368616e6e656c5f6261675f7769746e6573732e646973747269627574696f6e5f6275636b6574735f6e756d60142d2044423ad02020202d20604f2841202b2042202b20432960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e8864656c6574655f6368616e6e656c5f6173736574735f61735f6d6f64657261746f721401146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c49640001406173736574735f746f5f72656d6f76656901016442547265655365743c446174614f626a65637449643c543e3e00016c73746f726167655f6275636b6574735f6e756d5f7769746e65737310010c753332000124726174696f6e616c6530011c5665633c75383e000a28203c7765696768743e002423232057656967687458604f202841202b2042202b204329602077686572653aa42d2060416020697320746865206c656e677468206f6620606173736574735f746f5f72656d6f766560cc2d20604260206973207468652076616c7565206f66206073746f726167655f6275636b6574735f6e756d5f7769746e65737360b42d20604360206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423ac02020202d20604f2841202b20422960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e6c64656c6574655f6368616e6e656c5f61735f6d6f64657261746f721401146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c496400014c6368616e6e656c5f6261675f7769746e657373090601444368616e6e656c4261675769746e6573730001546e756d5f6f626a656374735f746f5f64656c65746528010c753634000124726174696f6e616c6530011c5665633c75383e000b008c7365745f6368616e6e656c5f7669736962696c6974795f61735f6d6f64657261746f721001146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c496400012469735f68696464656e980110626f6f6c000124726174696f6e616c6530011c5665633c75383e000c28350145787472696e73696320666f722073657474696e67206368616e6e656c207669736962696c69747920737461747573202868696464656e2f76697369626c6529206279206d6f64657261746f7200203c7765696768743e002423232057656967687438604f20284129602077686572653ab42d20604160206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e306372656174655f766964656f0c01146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c4964000118706172616d7349020168566964656f4372656174696f6e506172616d65746572733c543e000d2c203c7765696768743e002423232057656967687468604f202841202b2042202b2043202b204429602077686572653a11012d2060416020697320746865206e756d626572206f66206974656d7320696e2060706172616d732e6173736574732e6f626a6563745f6372656174696f6e5f6c69737460b42d206042602069732060706172616d732e73746f726167655f6275636b6574735f6e756d5f7769746e6573736035012d2060436020697320746865206c656e677468206f66206f70656e2061756374696f6e202f20656e676c6973682061756374696f6e2077686974656c697374202869662070726f766964656429f42d20604460206973207468652073697a65206f662060706172616d732e6d6574616020696e206b696c6f6279746573202869662070726f766964656429142d2044423ad02020202d20604f2841202b2042202b20432960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e307570646174655f766964656f0c01146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f4964000118706172616d7351020160566964656f557064617465506172616d65746572733c543e000e30203c7765696768743e002423232057656967687478604f202841202b2042202b2043202b2044202b204529602077686572653a25012d2060416020697320706172616d732e6173736574735f746f5f75706c6f61642e6f626a6563745f6372656174696f6e5f6c6973742e6c656e2829202869662070726f766964656429982d2060426020697320706172616d732e6173736574735f746f5f72656d6f76652e6c656e2829ec2d206043602069732060706172616d732e73746f726167655f6275636b6574735f6e756d5f7769746e65737360202869662070726f76696465642935012d2060446020697320746865206c656e677468206f66206f70656e2061756374696f6e202f20656e676c6973682061756374696f6e2077686974656c697374202869662070726f76696465642905012d20604560206973207468652073697a65206f662060706172616d732e6e65775f6d6574616020696e206b696c6f6279746573202869662070726f766964656429142d2044423ae02020202d20604f2841202b2042202b2043202b20442960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e3064656c6574655f766964656f1001146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f49640001546e756d5f6f626a656374735f746f5f64656c65746528010c75363400016c73746f726167655f6275636b6574735f6e756d5f7769746e6573730102012c4f7074696f6e3c7533323e000f24203c7765696768743e002423232057656967687448604f202841202b204229602077686572653a782d20604160206973206e756d5f6f626a656374735f746f5f64656c657465ec2d206042602069732060706172616d732e73746f726167655f6275636b6574735f6e756d5f7769746e65737360202869662070726f766964656429142d2044423ac02020202d20604f2841202b20422960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e8064656c6574655f766964656f5f6173736574735f61735f6d6f64657261746f721401146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f496400016c73746f726167655f6275636b6574735f6e756d5f7769746e65737310010c7533320001406173736574735f746f5f72656d6f76656901016442547265655365743c446174614f626a65637449643c543e3e000124726174696f6e616c6530011c5665633c75383e001028203c7765696768743e002423232057656967687458604f202841202b2042202b204329602077686572653aa42d2060416020697320746865206c656e677468206f6620606173736574735f746f5f72656d6f766560cc2d20604260206973207468652076616c7565206f66206073746f726167655f6275636b6574735f6e756d5f7769746e65737360b42d20604360206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423ac02020202d20604f2841202b20422960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e6464656c6574655f766964656f5f61735f6d6f64657261746f721401146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f496400016c73746f726167655f6275636b6574735f6e756d5f7769746e6573730102012c4f7074696f6e3c7533323e0001546e756d5f6f626a656374735f746f5f64656c65746528010c753634000124726174696f6e616c6530011c5665633c75383e001128203c7765696768743e002423232057656967687458604f202841202b2042202b204329602077686572653ab42d20604160206973207468652076616c7565206f6620606e756d5f6f626a656374735f746f5f64656c65746560cc2d20604260206973207468652076616c7565206f66206073746f726167655f6275636b6574735f6e756d5f7769746e65737360b42d20604360206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423ac02020202d20604f2841202b20422960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e847365745f766964656f5f7669736962696c6974795f61735f6d6f64657261746f721001146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f496400012469735f68696464656e980110626f6f6c000124726174696f6e616c6530011c5665633c75383e0012282d0145787472696e73696320666f7220766964656f207669736962696c69747920737461747573202868696464656e2f76697369626c65292073657474696e67206279206d6f64657261746f7200203c7765696768743e002423232057656967687438604f20284129602077686572653ab42d20604160206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e587570646174655f6368616e6e656c5f7061796f757473080118706172616d73710201845570646174654368616e6e656c5061796f757473506172616d65746572733c543e00014075706c6f616465725f6163636f756e74000130543a3a4163636f756e74496400132458557064617465206368616e6e656c207061796f75747300203c7765696768743e002423232057656967687438604f20283129602077686572653a142d2044423a182d204f2831292c23203c2f7765696768743e50636c61696d5f6368616e6e656c5f7265776172640c01146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e00011470726f6f660d0601505665633c50726f6f66456c656d656e743c543e3e0001106974656d1906013850756c6c5061796d656e743c543e001428a0436c61696d2072657761726420696e204a4f592066726f6d206368616e6e656c206163636f756e7400203c7765696768743e002423232057656967687438604f20284829602077686572653ac82d2060486020697320746865206c656e676874206f66207468652070726f7669646564206d65726b6c65206070726f6f6660142d2044423a242020202d204f2831292c23203c2f7765696768743e7477697468647261775f66726f6d5f6368616e6e656c5f62616c616e63650c01146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c4964000118616d6f756e7418013042616c616e63654f663c543e001524845769746864726177204a4f592066726f6d206368616e6e656c206163636f756e7400203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e7c7570646174655f6368616e6e656c5f73746174655f626c6f61745f626f6e640401706e65775f6368616e6e656c5f73746174655f626c6f61745f626f6e6418013042616c616e63654f663c543e0016289c55706461746573206368616e6e656c20737461746520626c6f617420626f6e642076616c75652e7c4f6e6c79206c6561642063616e2075706c6f616420746869732076616c756500203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e747570646174655f766964656f5f73746174655f626c6f61745f626f6e640401686e65775f766964656f5f73746174655f626c6f61745f626f6e6418013042616c616e63654f663c543e001728945570646174657320766964656f20737461746520626c6f617420626f6e642076616c75652e7c4f6e6c79206c6561642063616e2075706c6f616420746869732076616c756500203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e84636c61696d5f616e645f77697468647261775f6368616e6e656c5f7265776172640c01146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e00011470726f6f660d0601505665633c50726f6f66456c656d656e743c543e3e0001106974656d1906013850756c6c5061796d656e743c543e001828d4436c61696d20616e642077697468647261772072657761726420696e204a4f592066726f6d206368616e6e656c206163636f756e7400203c7765696768743e002423232057656967687438604f20284829602077686572653ac82d2060486020697320746865206c656e676874206f66207468652070726f7669646564206d65726b6c65206070726f6f6660142d2044423a242020202d204f2831292c23203c2f7765696768743e2469737375655f6e66740c01146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f4964000118706172616d73090201604e667449737375616e6365506172616d65746572733c543e001930244973737565204e465400203c7765696768743e00242323205765696768742c604f202857202b20422960142d2044423a242020202d204f2857291877686572653a19012020202d2057203a206d656d6265722077686974656c697374206c656e67746820696e2063617365206e667420696e697469616c207374617475732069732061756374696f6ec02020202d2042203a2073697a65206f66206d6574616461746120706172616d6574657220696e206b696c6f62797465732c23203c2f7765696768743e2c64657374726f795f6e66740801146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f4964001a242c44657374726f79204e465400203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e4873746172745f6f70656e5f61756374696f6e0c01206f776e65725f6964a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f496400013861756374696f6e5f706172616d73050201504f70656e41756374696f6e506172616d733c543e001b2470537461727420766964656f206e6674206f70656e2061756374696f6e203c7765696768743e002423232057656967687438604f20285729602077686572653a742d2057203a206d656d6265722077686974656c697374206c656e677468142d2044423a242020202d204f2857292c23203c2f7765696768743e5473746172745f656e676c6973685f61756374696f6e0c01206f776e65725f6964a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f496400013861756374696f6e5f706172616d73fd01015c456e676c69736841756374696f6e506172616d733c543e001c247c537461727420766964656f206e667420656e676c6973682061756374696f6e203c7765696768743e002423232057656967687438604f20285729602077686572653a882d2057203a2077686974656c697374206d656d626572206c697374206c656e677468142d2044423a242020202d204f2857292c23203c2f7765696768743e5863616e63656c5f656e676c6973685f61756374696f6e0801206f776e65725f6964a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f4964001d208043616e63656c20766964656f206e667420656e676c6973682061756374696f6e203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e4c63616e63656c5f6f70656e5f61756374696f6e0801206f776e65725f6964a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f4964001e207443616e63656c20766964656f206e6674206f70656e2061756374696f6e203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e3063616e63656c5f6f666665720801206f776e65725f6964a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f4964001f244043616e63656c204e6674206f6666657200203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e3863616e63656c5f6275795f6e6f770801206f776e65725f6964a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f49640020245443616e63656c204e66742073656c6c206f7264657200203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f283129243c2f7765696768743e507570646174655f6275795f6e6f775f70726963650c01206f776e65725f6964a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f49640001246e65775f707269636518013042616c616e63654f663c543e0021246055706461746520427579206e6f77206e667420707269636500203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e546d616b655f6f70656e5f61756374696f6e5f6269640c01387061727469636970616e745f696428012c543a3a4d656d6265724964000120766964656f5f6964280128543a3a566964656f49640001286269645f616d6f756e7418013042616c616e63654f663c543e002220404d616b652061756374696f6e20626964203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e606d616b655f656e676c6973685f61756374696f6e5f6269640c01387061727469636970616e745f696428012c543a3a4d656d6265724964000120766964656f5f6964280128543a3a566964656f49640001286269645f616d6f756e7418013042616c616e63654f663c543e002320604d616b6520656e676c6973682061756374696f6e20626964203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e5c63616e63656c5f6f70656e5f61756374696f6e5f6269640801387061727469636970616e745f696428012c543a3a4d656d6265724964000120766964656f5f6964280128543a3a566964656f49640024205c43616e63656c206f70656e2061756374696f6e20626964203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e58736574746c655f656e676c6973685f61756374696f6e040120766964656f5f6964280128543a3a566964656f496400252464436c61696d20776f6e20656e676c6973682061756374696f6e5c43616e2062652063616c6c656420627920616e796f6e65203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e607069636b5f6f70656e5f61756374696f6e5f77696e6e65721001206f776e65725f6964a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f496400012477696e6e65725f696428012c543a3a4d656d6265724964000118636f6d6d697418013042616c616e63654f663c543e0026245c416363657074206f70656e2061756374696f6e206269648c53686f756c64206f6e6c792062652063616c6c65642062792061756374696f6e656572203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e246f666665725f6e6674100120766964656f5f6964280128543a3a566964656f49640001206f776e65725f6964a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000108746f28012c543a3a4d656d62657249640001147072696365450101504f7074696f6e3c42616c616e63654f663c543e3e002724244f66666572204e667400203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e38736c696e675f6e66745f6261636b080120766964656f5f6964280128543a3a566964656f49640001206f776e65725f6964a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e002824c452657475726e204e6674206261636b20746f20746865206f726967696e616c20617274697374206174206e6f20636f737400203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e546163636570745f696e636f6d696e675f6f66666572080120766964656f5f6964280128543a3a566964656f49640001347769746e6573735f7072696365450101a04f7074696f6e3c3c542061732062616c616e6365733a3a436f6e6669673e3a3a42616c616e63653e0029246441636365707420696e636f6d696e67204e6674206f6666657200203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e2073656c6c5f6e66740c0120766964656f5f6964280128543a3a566964656f49640001206f776e65725f6964a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000114707269636518013042616c616e63654f663c543e002a202053656c6c204e6674203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e1c6275795f6e66740c0120766964656f5f6964280128543a3a566964656f49640001387061727469636970616e745f696428012c543a3a4d656d62657249640001347769746e6573735f707269636518013042616c616e63654f663c543e002b241c427579204e667400203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e44746f67676c655f6e66745f6c696d69747304011c656e61626c6564980110626f6f6c002c20dc4f6e6c7920436f756e63696c2063616e20746f67676c65206e66742069737375616e6365206c696d69747320636f6e73747261696e7473203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e506368616e6e656c5f6f776e65725f72656d61726b0801286368616e6e656c5f6964280130543a3a4368616e6e656c496400010c6d736730011c5665633c75383e002d28504368616e6e656c206f776e65722072656d61726b203c7765696768743e00242323205765696768741c604f2028422960142d2044423a242020202d204f2831291877686572653a8c2d204220697320746865206b696c6f62797465206c656e676874206f6620606d7367602c23203c2f7765696768743e506368616e6e656c5f6167656e745f72656d61726b0c01146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c496400010c6d736730011c5665633c75383e002e286c4368616e6e656c20636f6c6c61626f7261746f722072656d61726b203c7765696768743e00242323205765696768741c604f2028422960142d2044423a242020202d204f2831291877686572653a8420202d2042206973207468652062797465206c656e676874206f6620606d7367602c23203c2f7765696768743e406e66745f6f776e65725f72656d61726b0c01146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f496400010c6d736730011c5665633c75383e002f28404e4654206f776e65722072656d61726b203c7765696768743e00242323205765696768741c604f2028422960142d2044423a2020202d204f2831291877686572653a8420202d2042206973207468652062797465206c656e676874206f6620606d7367602c23203c2f7765696768743e6c696e697469616c697a655f6368616e6e656c5f7472616e736665720c01286368616e6e656c5f6964280130543a3a4368616e6e656c49640001146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e00013c7472616e736665725f706172616d731d06016c496e69745472616e73666572506172616d65746572734f663c543e003028dc53746172742061206368616e6e656c207472616e736665722077697468207370656369666965642063686172616374657269737469637300203c7765696768743e002423232057656967687438604f20284129602077686572653a25012d2060416020697320746865206e756d626572206f6620656e747269657320696e20607472616e736665725f706172616d732e6e65775f636f6c6c61626f7261746f727360206d6170142d2044423aa82020202d204f284129202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e5c63616e63656c5f6368616e6e656c5f7472616e736665720801286368616e6e656c5f6964280130543a3a4368616e6e656c49640001146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0031245c63616e63656c206368616e6e656c207472616e7366657200203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5c6163636570745f6368616e6e656c5f7472616e736665720801286368616e6e656c5f6964280130543a3a4368616e6e656c4964000144636f6d6d69746d656e745f706172616d736d0201785472616e73666572436f6d6d69746d656e745769746e6573734f663c543e00322c6441636365707473206368616e6e656c207472616e736665722e310160636f6d6d69746d656e745f706172616d736020697320726571756972656420746f2070726576656e74206368616e67696e6720746865207472616e7366657220636f6e646974696f6e732e00203c7765696768743e002423232057656967687438604f20284129602077686572653a2d012d2060416020697320746865206e756d626572206f6620656e747269657320696e2060636f6d6d69746d656e745f706172616d732e6e65775f636f6c6c61626f7261746f727360206d6170142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5c7570646174655f676c6f62616c5f6e66745f6c696d69740801406e66745f6c696d69745f706572696f64890201384e66744c696d6974506572696f640001146c696d697428010c753634003320605570646174657320676c6f62616c204e4654206c696d6974203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e607570646174655f6368616e6e656c5f6e66745f6c696d69741001146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001406e66745f6c696d69745f706572696f64890201384e66744c696d6974506572696f640001286368616e6e656c5f6964280130543a3a4368616e6e656c49640001146c696d697428010c7536340034207055706461746573206368616e6e656c2773204e4654206c696d69742e203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e4c69737375655f63726561746f725f746f6b656e0c01146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c4964000118706172616d73c9020170546f6b656e49737375616e6365506172616d65746572734f663c543e0035284c49737375652063726561746f7220746f6b656e00203c7765696768743e002423232057656967687438604f20284129602077686572653a05012d2060416020697320746865206e756d626572206f6620656e747269657320696e2060706172616d732e696e697469616c5f616c6c6f636174696f6e60206d6170142d2044423ab02020202d20604f28412960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e5c696e69745f63726561746f725f746f6b656e5f73616c650c01146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c4964000118706172616d7321060150546f6b656e53616c65506172616d734f663c543e00362874496e697469616c697a652063726561746f7220746f6b656e2073616c6500203c7765696768743e002423232057656967687438604f20284129602077686572653a29012d20604160206973207468652073697a65206f662060706172616d732e6d657461646174616020696e206b696c6f627974657320286f722030206966206e6f742070726f766964656429142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e887570646174655f7570636f6d696e675f63726561746f725f746f6b656e5f73616c651001146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c496400013c6e65775f73746172745f626c6f636b010201584f7074696f6e3c543a3a426c6f636b4e756d6265723e0001306e65775f6475726174696f6e010201584f7074696f6e3c543a3a426c6f636b4e756d6265723e00372488557064617465207570636f6d696e672063726561746f7220746f6b656e2073616c6500203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e7463726561746f725f746f6b656e5f6973737565725f7472616e736665721001146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c496400011c6f757470757473250601645472616e73666572735769746856657374696e674f663c543e0001206d6574616461746130011c5665633c75383e00382cc8506572666f726d207472616e73666572206f6620746f6b656e732061732063726561746f7220746f6b656e2069737375657200203c7765696768743e002423232057656967687448604f202841202b204229602077686572653aac2d2060416020697320746865206e756d626572206f6620656e747269657320696e20606f75747075747360c02d20604260206973207468652073697a65206f662074686520606d657461646174616020696e206b696c6f6279746573142d2044423ab02020202d20604f28412960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e846d616b655f63726561746f725f746f6b656e5f7065726d697373696f6e6c6573730801146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c4964003924ac4d616b65206368616e6e656c27732063726561746f7220746f6b656e207065726d697373696f6e6c65737300203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e987265647563655f63726561746f725f746f6b656e5f706174726f6e6167655f726174655f746f0c01146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c496400012c7461726765745f72617465f9020128596561726c7952617465003a24f0526564756365206368616e6e656c27732063726561746f7220746f6b656e20706174726f6e616765207261746520746f20676976656e2076616c756500203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e90636c61696d5f63726561746f725f746f6b656e5f706174726f6e6167655f6372656469740801146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c4964003b24b8436c61696d206368616e6e656c27732063726561746f7220746f6b656e20706174726f6e6167652063726564697400203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e4c69737375655f726576656e75655f73706c69741001146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c49640001147374617274010201584f7074696f6e3c543a3a426c6f636b4e756d6265723e0001206475726174696f6e100138543a3a426c6f636b4e756d626572003c2484497373756520726576656e75652073706c697420666f722061206368616e6e656c00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5866696e616c697a655f726576656e75655f73706c69740801146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c4964003d247c46696e616c697a6520616e20656e64656420726576656e75652073706c697400203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6c66696e616c697a655f63726561746f725f746f6b656e5f73616c650801146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c4964003e249046696e616c697a6520616e20656e6465642063726561746f7220746f6b656e2073616c6500203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e54646569737375655f63726561746f725f746f6b656e0801146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c4964003f247c44656973737565206368616e6e656c27732063726561746f7220746f6b656e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e09060c3870616c6c65745f636f6e74656e74147479706573444368616e6e656c4261675769746e657373000008014c73746f726167655f6275636b6574735f6e756d10010c753332000160646973747269627574696f6e5f6275636b6574735f6e756d10010c75333200000d0600000211060011060c3470616c6c65745f636f6d6d6f6e2c6d65726b6c655f747265654850726f6f66456c656d656e745265636f7264081048617368012c105369646501150600080110686173682c011048617368000110736964651506011053696465000015060c3470616c6c65745f636f6d6d6f6e2c6d65726b6c655f747265651053696465000108104c6566740000001452696768740001000019060c3870616c6c65745f636f6e74656e741474797065734850756c6c5061796d656e74456c656d656e740c244368616e6e656c496401281c42616c616e636501181048617368012c000c01286368616e6e656c5f69642801244368616e6e656c496400016063756d756c61746976655f7265776172645f6561726e656418011c42616c616e6365000118726561736f6e2c01104861736800001d060c3870616c6c65745f636f6e74656e7414747970657358496e69745472616e73666572506172616d65746572730c204d656d626572496401283843757261746f7247726f7570496401281c42616c616e63650118000c01446e65775f636f6c6c61626f7261746f72732d0201ac42547265654d61703c4d656d62657249642c204368616e6e656c4167656e745065726d697373696f6e733e000114707269636518011c42616c616e63650001246e65775f6f776e6572e50101984368616e6e656c4f776e65723c4d656d62657249642c2043757261746f7247726f757049643e000021060c5070616c6c65745f70726f6a6563745f746f6b656e1474797065733c546f6b656e53616c65506172616d7310284a6f7942616c616e636501181c42616c616e636501182c426c6f636b4e756d62657201105456657374696e675363686564756c65506172616d7301d102001c0128756e69745f70726963651801284a6f7942616c616e636500015075707065725f626f756e645f7175616e7469747918011c42616c616e63650001247374617274735f61740102014c4f7074696f6e3c426c6f636b4e756d6265723e0001206475726174696f6e10012c426c6f636b4e756d62657200015c76657374696e675f7363686564756c655f706172616d73d90201744f7074696f6e3c56657374696e675363686564756c65506172616d733e0001386361705f7065725f6d656d6265724501013c4f7074696f6e3c42616c616e63653e0001206d657461646174613101013c4f7074696f6e3c5665633c75383e3e000025060c5070616c6c65745f70726f6a6563745f746f6b656e147479706573245472616e736665727308204d656d626572496401281c5061796d656e740109030004002906016c42547265654d61703c4d656d62657249642c205061796d656e743e00002906042042547265654d617008044b012804560109030004002d060000002d06000002310600310600000408280903003506083870616c6c65745f73746f726167651043616c6c04045400018c5464656c6574655f73746f726167655f6275636b657404014473746f726167655f6275636b65745f6964280148543a3a53746f726167654275636b657449640000201d0144656c6574652073746f72616765206275636b65742e204d75737420626520656d7074792e2053746f72616765206f70657261746f72206d757374206265206d697373696e672e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e7c7570646174655f75706c6f6164696e675f626c6f636b65645f7374617475730401286e65775f737461747573980110626f6f6c000120785570646174657320676c6f62616c2075706c6f6164696e6720666c61672e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e507570646174655f646174615f73697a655f6665650401446e65775f646174615f73697a655f66656518013042616c616e63654f663c543e000220cc557064617465732073697a652d62617365642070726963696e67206f66206e6577206f626a656374732075706c6f616465642e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e907570646174655f73746f726167655f6275636b6574735f7065725f6261675f6c696d69740401246e65775f6c696d697410010c753332000320bc55706461746573202253746f72616765206275636b657473207065722062616722206e756d626572206c696d69742e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743ea47570646174655f73746f726167655f6275636b6574735f766f75636865725f6d61785f6c696d6974730801406e65775f6f626a656374735f73697a6528010c7536340001486e65775f6f626a656374735f6e756d62657228010c753634000420b455706461746573202253746f72616765206275636b65747320766f7563686572206d6178206c696d697473222e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e8c7570646174655f646174615f6f626a6563745f73746174655f626c6f61745f626f6e6404014073746174655f626c6f61745f626f6e6418013042616c616e63654f663c543e000520ac557064617465732064617461206f626a65637420737461746520626c6f617420626f6e642076616c75652e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743efc7570646174655f6e756d6265725f6f665f73746f726167655f6275636b6574735f696e5f64796e616d69635f6261675f6372656174696f6e5f706f6c69637908014064796e616d69635f6261675f74797065b102013844796e616d6963426167547970650001646e756d6265725f6f665f73746f726167655f6275636b65747310010c7533320006202d01557064617465206e756d626572206f662073746f72616765206275636b657473207573656420696e20676976656e2064796e616d696320626167206372656174696f6e20706f6c6963792e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e407570646174655f626c61636b6c69737408013472656d6f76655f686173686573a502014442547265655365743c5665633c75383e3e0001286164645f686173686573a502014442547265655365743c5665633c75383e3e000728bc41646420616e642072656d6f76652068617368657320746f207468652063757272656e7420626c61636b6c6973742e203c7765696768743e002423232057656967687448604f202857202b205629602077686572653abc2d2060576020697320746865206e756d626572206f66206974656d7320696e206072656d6f76655f68617368657360b02d2060566020697320746865206e756d626572206f66206974656d7320696e20606164645f68617368657360142d2044423ab02020202d20604f28572960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e546372656174655f73746f726167655f6275636b6574100134696e766974655f776f726b65723501014c4f7074696f6e3c576f726b657249643c543e3e000148616363657074696e675f6e65775f62616773980110626f6f6c00012873697a655f6c696d697428010c7536340001346f626a656374735f6c696d697428010c753634000820584372656174652073746f72616765206275636b65742e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e787570646174655f73746f726167655f6275636b6574735f666f725f6261670c01186261675f69649502012042616749643c543e00012c6164645f6275636b6574736901017042547265655365743c543a3a53746f726167654275636b657449643e00013872656d6f76655f6275636b6574736901017042547265655365743c543a3a53746f726167654275636b657449643e00092888557064617465732073746f72616765206275636b65747320666f722061206261672e203c7765696768743e002423232057656967687448604f202857202b205629602077686572653ab42d2060576020697320746865206e756d626572206f66206974656d7320696e20606164645f6275636b65747360c02d2060566020697320746865206e756d626572206f66206974656d7320696e206072656d6f76655f6275636b65747360142d2044423ac02020202d20604f2856202b20572960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e9463616e63656c5f73746f726167655f6275636b65745f6f70657261746f725f696e7669746504014473746f726167655f6275636b65745f6964280148543a3a53746f726167654275636b65744964000a20110143616e63656c2070656e64696e672073746f72616765206275636b657420696e766974652e20416e20696e7669746174696f6e206d7573742062652070656e64696e672e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e78696e766974655f73746f726167655f6275636b65745f6f70657261746f7208014473746f726167655f6275636b65745f6964280148543a3a53746f726167654275636b6574496400012c6f70657261746f725f696428012c576f726b657249643c543e000b20c0496e766974652073746f72616765206275636b6574206f70657261746f722e204d757374206265206d697373696e672e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e7872656d6f76655f73746f726167655f6275636b65745f6f70657261746f7204014473746f726167655f6275636b65745f6964280148543a3a53746f726167654275636b65744964000c208052656d6f7665732073746f72616765206275636b6574206f70657261746f722e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e707570646174655f73746f726167655f6275636b65745f73746174757308014473746f726167655f6275636b65745f6964280148543a3a53746f726167654275636b65744964000148616363657074696e675f6e65775f62616773980110626f6f6c000d20dc5570646174652077686574686572206e6577206261677320617265206265696e6720616363657074656420666f722073746f726167652e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e847365745f73746f726167655f6275636b65745f766f75636865725f6c696d6974730c014473746f726167655f6275636b65745f6964280148543a3a53746f726167654275636b657449640001586e65775f6f626a656374735f73697a655f6c696d697428010c7536340001606e65775f6f626a656374735f6e756d6265725f6c696d697428010c753634000e208c536574732073746f72616765206275636b657420766f7563686572206c696d6974732e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e806163636570745f73746f726167655f6275636b65745f696e7669746174696f6e0c0124776f726b65725f696428012c576f726b657249643c543e00014473746f726167655f6275636b65745f6964280148543a3a53746f726167654275636b657449640001547472616e736163746f725f6163636f756e745f6964000130543a3a4163636f756e744964000f285d01416363657074207468652073746f72616765206275636b657420696e7669746174696f6e2e20416e20696e7669746174696f6e206d757374206d617463682074686520776f726b65725f696420706172616d657465722e59014974206163636570747320616e206164646974696f6e616c206163636f756e7420494420287472616e736163746f722920666f7220616363657074696e672064617461206f626a6563747320746f2070726576656e74747472616e73616374696f6e206e6f6e636520636f6c6c6973696f6e732e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e747365745f73746f726167655f6f70657261746f725f6d657461646174610c0124776f726b65725f696428012c576f726b657249643c543e00014473746f726167655f6275636b65745f6964280148543a3a53746f726167654275636b657449640001206d6574616461746130011c5665633c75383e001024dc536574732073746f72616765206f70657261746f72206d65746164617461202865672e3a2073746f72616765206e6f64652055524c292e203c7765696768743e002423232057656967687438604f20285729602077686572653aa02d206057602069732073697a65206f6620606d657461646174616020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6c6163636570745f70656e64696e675f646174615f6f626a65637473100124776f726b65725f696428012c576f726b657249643c543e00014473746f726167655f6275636b65745f6964280148543a3a53746f726167654275636b657449640001186261675f69649502012042616749643c543e000130646174615f6f626a656374736901016442547265655365743c543a3a446174614f626a65637449643e0011246501412073746f726167652070726f7669646572207369676e616c732074686174207468652064617461206f626a65637420776173207375636365737366756c6c792075706c6f6164656420746f206974732073746f726167652e203c7765696768743e00242323205765696768743c604f2028572029602077686572653ab82d2060576020697320746865206e756d626572206f66206974656d7320696e2060646174615f6f626a6563747360142d2044423ab02020202d20604f28572960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e846372656174655f646973747269627574696f6e5f6275636b65745f66616d696c7900122090437265617465206120646973747269627574696f6e206275636b65742066616d696c792e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e8464656c6574655f646973747269627574696f6e5f6275636b65745f66616d696c7904012466616d696c795f6964280174543a3a446973747269627574696f6e4275636b657446616d696c7949640013209444656c65746573206120646973747269627574696f6e206275636b65742066616d696c792e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e686372656174655f646973747269627574696f6e5f6275636b657408012466616d696c795f6964280174543a3a446973747269627574696f6e4275636b657446616d696c794964000148616363657074696e675f6e65775f62616773980110626f6f6c00142074437265617465206120646973747269627574696f6e206275636b65742e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e847570646174655f646973747269627574696f6e5f6275636b65745f7374617475730801246275636b65745f69642502015c446973747269627574696f6e4275636b657449643c543e000148616363657074696e675f6e65775f62616773980110626f6f6c001520d855706461746573206120646973747269627574696f6e206275636b6574202761636365707473206e657720626167732720666c61672e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6864656c6574655f646973747269627574696f6e5f6275636b65740401246275636b65745f69642502015c446973747269627574696f6e4275636b657449643c543e001620a844656c65746520646973747269627574696f6e206275636b65742e204d75737420626520656d7074792e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e8c7570646174655f646973747269627574696f6e5f6275636b6574735f666f725f6261671001186261675f69649502012042616749643c543e00012466616d696c795f6964280174543a3a446973747269627574696f6e4275636b657446616d696c79496400014c6164645f6275636b6574735f696e64696365736901019042547265655365743c543a3a446973747269627574696f6e4275636b6574496e6465783e00015872656d6f76655f6275636b6574735f696e64696365736901019042547265655365743c543a3a446973747269627574696f6e4275636b6574496e6465783e0017289c5570646174657320646973747269627574696f6e206275636b65747320666f722061206261672e203c7765696768743e002423232057656967687448604f202857202b205629602077686572653ad42d2060576020697320746865206e756d626572206f66206974656d7320696e20606164645f6275636b6574735f696e646963657360e02d2060566020697320746865206e756d626572206f66206974656d7320696e206072656d6f76655f6275636b6574735f696e646963657360142d2044423ac02020202d20604f2856202b20572960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743ea47570646174655f646973747269627574696f6e5f6275636b6574735f7065725f6261675f6c696d69740401246e65775f6c696d697410010c753332001820d0557064617465732022446973747269627574696f6e206275636b657473207065722062616722206e756d626572206c696d69742e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e7c7570646174655f646973747269627574696f6e5f6275636b65745f6d6f64650801246275636b65745f69642502015c446973747269627574696f6e4275636b657449643c543e000130646973747269627574696e67980110626f6f6c001920d8557064617465732027646973747269627574696e672720666c616720666f722074686520646973747269627574696e6720666c61672e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743eb87570646174655f66616d696c6965735f696e5f64796e616d69635f6261675f6372656174696f6e5f706f6c69637908014064796e616d69635f6261675f74797065b102013844796e616d69634261675479706500012066616d696c696573b50201b042547265654d61703c543a3a446973747269627574696f6e4275636b657446616d696c7949642c207533323e001a283d01557064617465206e756d626572206f66206469737472696275746564206275636b657473207573656420696e20676976656e2064796e616d696320626167206372656174696f6e20706f6c6963792e9c5570646174657320646973747269627574696f6e206275636b65747320666f722061206261672e203c7765696768743e002423232057656967687438604f20285729602077686572653aa82d2060576020697320746865206e756d626572206f66206974656d7320696e206066616d696c69657360142d2044423ab02020202d20604f28572960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e8c696e766974655f646973747269627574696f6e5f6275636b65745f6f70657261746f720801246275636b65745f69642502015c446973747269627574696f6e4275636b657449643c543e0001486f70657261746f725f776f726b65725f696428012c576f726b657249643c543e001b2090496e7669746520616e206f70657261746f722e204d757374206265206d697373696e672e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743ea863616e63656c5f646973747269627574696f6e5f6275636b65745f6f70657261746f725f696e766974650801246275636b65745f69642502015c446973747269627574696f6e4275636b657449643c543e0001486f70657261746f725f776f726b65725f696428012c576f726b657249643c543e001c209c43616e63656c2070656e64696e6720696e766974652e204d7573742062652070656e64696e672e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e8c72656d6f76655f646973747269627574696f6e5f6275636b65745f6f70657261746f720801246275636b65745f69642502015c446973747269627574696f6e4275636b657449643c543e0001486f70657261746f725f776f726b65725f696428012c576f726b657249643c543e001d209452656d6f76657320646973747269627574696f6e206275636b6574206f70657261746f722e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e9c7365745f646973747269627574696f6e5f6275636b65745f66616d696c795f6d6574616461746108012466616d696c795f6964280174543a3a446973747269627574696f6e4275636b657446616d696c7949640001206d6574616461746130011c5665633c75383e001e24a053657420646973747269627574696f6e206275636b65742066616d696c79206d657461646174612e203c7765696768743e002423232057656967687438604f20285729602077686572653aa02d206057602069732073697a65206f6620606d657461646174616020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e946163636570745f646973747269627574696f6e5f6275636b65745f696e7669746174696f6e080124776f726b65725f696428012c576f726b657249643c543e0001246275636b65745f69642502015c446973747269627574696f6e4275636b657449643c543e001f20584163636570742070656e64696e6720696e766974652e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e887365745f646973747269627574696f6e5f6f70657261746f725f6d657461646174610c0124776f726b65725f696428012c576f726b657249643c543e0001246275636b65745f69642502015c446973747269627574696f6e4275636b657449643c543e0001206d6574616461746130011c5665633c75383e002024fc53657420646973747269627574696f6e206f70657261746f72206d6574616461746120666f722074686520646973747269627574696f6e206275636b65742e203c7765696768743e002423232057656967687438604f20285729602077686572653aa02d206057602069732073697a65206f6620606d657461646174616020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5c73746f726167655f6f70657261746f725f72656d61726b0c0124776f726b65725f696428012c576f726b657249643c543e00014473746f726167655f6275636b65745f6964280148543a3a53746f726167654275636b6574496400010c6d736730011c5665633c75383e0021289c4465706f73697420612053746f726167654f70657261746f7252656d61726b6564206576656e7474636f6e7461696e696e6720612067656e65726963206d6573736167652e203c7765696768743e002423232057656967687438604f20285729602077686572653a9c2d206057602069732073697a65206f6620606d6573736167656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e70646973747269627574696f6e5f6f70657261746f725f72656d61726b0c0124776f726b65725f696428012c576f726b657249643c543e000158646973747269627574696f6e5f6275636b65745f69642502015c446973747269627574696f6e4275636b657449643c543e00010c6d736730011c5665633c75383e0022249c43726561746520612064796e616d6963206261672e20446576656c6f706d656e74206d6f64652e203c7765696768743e002423232057656967687438604f20285729602077686572653a9c2d206057602069732073697a65206f6620606d6573736167656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e3906085070616c6c65745f70726f6a6563745f746f6b656e1043616c6c04045400011c207472616e736665721001347372635f6d656d6265725f696428012c543a3a4d656d6265724964000120746f6b656e5f6964280128543a3a546f6b656e496400011c6f7574707574733d0601385472616e73666572734f663c543e0001206d6574616461746130011c5665633c75383e0000685501416c6c6f7720746f207472616e736665722066726f6d20607372635f6d656d6265725f696460206163636f756e7420746f2074686520766172696f757320606f757470757473602062656e6566696369617269657364696e207468652073706563696669656420616d6f756e74732e0038507265636f6e646974696f6e733ae82d206f726967696e207369676e6572206d75737420626520607372635f6d656d6265725f69646020636f6e74726f6c6c6572206163636f756e74842d20746f6b656e2062792060746f6b656e5f696460206d75737420657869737473d82d206163636f756e74206f6620607372635f6d656d6265725f696460206d75737420657869737420666f722060746f6b656e5f69646041012d2073656e646572206d757374206861766520656e6f756768204a4f597320746f20636f7665722074686520746f74616c20626c6f617420626f6e6420726571756972656420696e2063617365206f6678202064657374696e6174696f6e287329206e6f74206578697374696e672e29012d20736f75726365206163636f756e74206d757374206861766520656e6f75676820746f6b656e2066756e647320746f20636f76657220616c6c20746865207472616e7366657228732941012d20606f75747075747360206d7573742064657369676e617465206578697374696e672064657374696e6174696f6e28732920666f7220225065726d697373696f6e656422207472616e73666572732e3c506f7374636f6e646974696f6e733ae82d20736f75726365206163636f756e74277320746f6b656e7320616d6f756e74206973206465637265617365642062792060616d6f756e74602e49012d20746f74616c20626c6f617420626f6e64207472616e736665727265642066726f6d2073656e6465722773204a4f592062616c616e636520696e746f20746865207472656173757279206163636f756e74cc2020696e20636173652064657374696e6174696f6e2873292068617665206265656e20616464656420746f2073746f72616765ec2d20606f7574707574732e62656e65666963696172796020746f6b656e7320616d6f756e7420696e637265617365642062792060616d6f756e746000203c7765696768743e002423232057656967687448604f202854202b204d29602077686572653a802d2060546020697320746865206c656e677468206f6620606f75747075747360b02d20604d60206973207468652073697a65206f6620606d657461646174616020696e206b696c6f6279746573142d2044423aac20202d20604f28542960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e106275726e0c0120746f6b656e5f6964280128543a3a546f6b656e49640001246d656d6265725f696428012c543a3a4d656d6265724964000118616d6f756e74180144546f6b656e42616c616e63654f663c543e000178884275726e20746f6b656e732066726f6d20737065636966696564206163636f756e740038507265636f6e646974696f6e733a442d2060616d6f756e7460206973203e2030f42d206f726967696e207369676e6572206973206120636f6e74726f6c6c6572206163636f756e74206f6620606d656d6265725f696460206d656d626572702d20746f6b656e2062792060746f6b656e5f69646020657869737473c02d20616e206163636f756e742065786973747320666f722060746f6b656e5f696460207820606d656d6265725f696460a02d206163636f756e74277320746f6b656e7320616d6f756e74206973203e3d2060616d6f756e746005012d20746f6b656e20737570706c792063616e206265206d6f64696669656420287468657265206973206e6f2061637469766520726576656e75652073706c697429003c506f7374636f6e646974696f6e733a4d012d207374617274696e6720776974682060756e70726f6365737365646020626565696e6720657175616c20746f2060616d6f756e74602c206163636f756e7427732076657374696e67207363686564756c6573602020617265206974657261746564206f76657220616e643a5d0120202d2075706461746564207769746820606275726e65645f616d6f756e74202b3d207570726f636573736564602069662076657374696e67207363686564756c65277320756e76657374656420616d6f756e74206973742020202067726561746572207468616e20607570726f636573736564605420202d2072656d6f766564206f746865727769736545012020286166746572206561636820697465726174696f6e2060756e70726f6365737365646020697320726564756365642062792074686520616d6f756e74206f6620756e76657374656420746f6b656e737c20206275726e656420647572696e67207468617420697465726174696f6e2949012d20696620746865206163636f756e742068617320616e79206073706c69745f7374616b696e675f737461747573602c20746865206073706c69745f7374616b696e675f7374617475732e616d6f756e7460e820206973207265647563656420627920606d696e28616d6f756e742c2073706c69745f7374616b696e675f7374617475732e616d6f756e742960a42d20606163636f756e742e616d6f756e746020697320726564756365642062792060616d6f756e7460942d20746f6b656e20737570706c7920697320726564756365642062792060616d6f756e746000203c7765696768743e00242323205765696768741c604f2028312960142d2044423ad820202d20604f28312960202d20646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e30647573745f6163636f756e74080120746f6b656e5f6964280128543a3a546f6b656e49640001246d656d6265725f696428012c543a3a4d656d62657249640002508c416c6c6f7720616e79207573657220746f2072656d6f766520616e206163636f756e740038507265636f6e646974696f6e733a802d20746f6b656e2062792060746f6b656e5f696460206d757374206578697374d02d20616e206163636f756e74206d75737420657869737420666f722060746f6b656e5f696460207820606d656d6265725f69646015012d206966205065726d697373696f6e656420746f6b656e3a20606f726967696e60207369676e6572206d75737420626520606d656d6265725f696460206d656d6265722773502020636f6e74726f6c6c6572206163636f756e74ec2d2060746f6b656e5f696460207820606d656d6265725f696460206163636f756e74206d75737420626520616e20656d707479206163636f756e7478202028606163636f756e745f646174612e616d6f756e7460203d3d2030293c506f7374636f6e646974696f6e733a1d012d204163636f756e7420696e666f726d6174696f6e20666f722060746f6b656e5f696460207820606d656d6265725f6964602072656d6f7665642066726f6d2073746f72616765dc2d20626c6f617420626f6e6420726566756e64656420746f20606d656d6265725f69646020636f6e74726f6c6c6572206163636f756e74cc2020286f722060626c6f61745f626f6e642e72657061796d656e745f726573747269637465645f746f60206163636f756e742900203c7765696768743e001c604f2028312960142d2044423ad820202d20604f28312960202d20646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e386a6f696e5f77686974656c6973740c01246d656d6265725f696428012c543a3a4d656d6265724964000120746f6b656e5f6964280128543a3a546f6b656e496400011470726f6f66510601404d65726b6c6550726f6f664f663c543e00034c11014a6f696e2077686974656c69737420666f72207065726d697373696f6e656420636173653a207573656420746f20616464206163636f756e747320666f7220746f6b656e38507265636f6e646974696f6e733a682d2027746f6b656e5f696427206d7573742062652076616c6964f42d20606f726967696e60207369676e6572206d757374206265206120636f6e74726f6c6c6572206163636f756e74206f6620606d656d6265725f696460c02d206163636f756e7420666f7220606d656d6265725f696460206d757374206e6f7420616c726561647920657869737409012d207472616e7366657220706f6c69637920697320605065726d697373696f6e65646020616e64206d65726b6c652070726f6f66206d7573742062652076616c6964003c506f7374636f6e646974696f6e733af42d206163636f756e7420666f7220606d656d6265725f696460206372656174656420616e6420616464656420746f2070616c6c65742073746f72616765e82d2060626c6f61745f626f6e6460207472616e736665727265642066726f6d2073656e64657220746f207472656173757279206163636f756e7400203c7765696768743e002423232057656967687438604f20284829602077686572653a802d2060486020697320746865206c656e677468206f66206070726f6f662e3060142d2044423ad820202d20604f28312960202d20646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5c70757263686173655f746f6b656e735f6f6e5f73616c650c0120746f6b656e5f6964280128543a3a546f6b656e49640001246d656d6265725f696428012c543a3a4d656d6265724964000118616d6f756e74180144546f6b656e42616c616e63654f663c543e0004ec94507572636861736520746f6b656e73206f6e2061637469766520746f6b656e2073616c652e0038507265636f6e646974696f6e733a802d20746f6b656e2062792060746f6b656e5f696460206d757374206578697374d02d20746f6b656e2062792060746f6b656e5f696460206d75737420626520696e204f66666572696e6753746174653a3a53616c65ec2d2060616d6f756e74602063616e6e6f7420657863656564206e756d626572206f6620746f6b656e732072656d61696e696e67206f6e2073616c6509012d20606f726967696e60207369676e6572206d75737420626520636f6e74726f6c6c6572206163636f756e74206f6620606d656d6265725f696460206d656d626572a42d2073656e646572277320617661696c61626c65204a4f592062616c616e6365206d7573742062653aec20202d203e3d20606a6f795f6578697374656e7469616c5f6465706f736974202b20616d6f756e74202a2073616c652e756e69745f70726963656080202020206966204163636f756e744461746120616c7265616479206578697374210120202d203e3d20606a6f795f6578697374656e7469616c5f6465706f736974202b20616d6f756e74202a2073616c652e756e69745f7072696365202b20626c6f61745f626f6e646084202020206966204163636f756e744461746120646f6573206e6f7420657869737435012d206c657420606665655f616d6f756e7460206265206073616c655f706c6174666f726d5f6665652e6d756c5f666c6f6f7228616d6f756e74202a2073616c652e756e69745f7072696365296059012d206966206073616c652e6561726e696e67735f64657374696e6174696f6e2e69735f736f6d6528296020616e64206073616c652e6561726e696e67735f64657374696e6174696f6e60206163636f756e74206861733c20207a65726f2062616c616e63653a390120202d2074686520616d6f756e7420746f206265207472616e736665727265642066726f6d206073656e6465726020746f206073616c652e6561726e696e67735f64657374696e6174696f6e602c4d0120202020776869636820697320657175616c20746f2060616d6f756e74202a2073616c652e756e69745f7072696365202d206665655f616d6f756e74602c206d7573742062652067726561746572207468616e7420202020606a6f795f6578697374656e7469616c5f6465706f7369746031012d20746f74616c206e756d626572206f6620746f6b656e7320616c72656164792070757263686173656420627920746865206d656d626572206f6e207468652063757272656e742073616c65f82020504c55532060616d6f756e7460206d757374206e6f74206578636565642073616c6527732070757263686173652063617020706572206d656d626572602d206966205065726d697373696f6e656420746f6b656e3a010120202d204163636f756e74496e666f4279546f6b656e416e644d656d62657228746f6b656e5f69642c20266d656d6265725f696429206d7573742065786973749c2d206966206073616c652e76657374696e675f7363686564756c652e69735f736f6d652829603ae020202d206e756d626572206f662073656e646572206163636f756e742773206f6e676f696e672076657374696e67207363686564756c6573cc202020206d757374206265203c204d617856657374696e675363686564756c65735065724163636f756e74506572546f6b656e003c506f7374636f6e646974696f6e733aac2d206966206073616c652e6561726e696e67735f64657374696e6174696f6e2e69735f736f6d652829603a4d0120202d2060616d6f756e74202a2073616c652e756e69745f7072696365202d206665655f616d6f756e7460204a4f5920746f6b656e7320617265207472616e7366657265642066726f6d206073656e646572608820202020746f206073616c652e6561726e696e67735f64657374696e6174696f6e60d420202d20606665655f616d6f756e7460204a4f5920697320736c61736865642066726f6d206073656e646572602062616c616e6365ac2d206966206073616c652e6561726e696e67735f64657374696e6174696f6e2e69735f6e6f6e652829603a0d0120202d2060616d6f756e74202a2073616c652e756e69745f707269636560204a4f5920697320736c61736865642066726f6d206073656e646572602062616c616e636549012d206966206e657720746f6b656e206163636f756e7420637265617465643a2060626c6f61745f626f6e6460207472616e736665727265642066726f6d206073656e6465726020746f2074726561737572799c2d206966206073616c652e76657374696e675f7363686564756c652e69735f736f6d652829603a0d0120202d20696620627579657220686173206e6f206076657374696e675f7363686564756c65602072656c6174656420746f207468652063757272656e742073616c653a5d01202020202d2061206e65772076657374696e67207363686564756c6520286073616c652e6765745f76657374696e675f7363686564756c652870757263686173655f616d6f756e7429602920697320616464656420746f80202020202020627579657227732060766573696e675f7363686564756c6573605501202020202d20736f6d652066696e69736865642076657374696e67207363686564756c652069732072656d6f7665642066726f6d2062757965722773206163636f756e745f6461746120696e20636173652074686559012020202020206e756d626572206f6620627579657227732076657374696e675f7363686564756c657320776173203d3d204d617856657374696e675363686564756c65735065724163636f756e74506572546f6b656e290120202d20696620627579657220616c7265616479206861732061206076657374696e675f7363686564756c65602072656c6174656420746f207468652063757272656e742073616c653afc202020202d2063757272656e742076657374696e67207363686564756c6527732060636c6966665f616d6f756e746020697320696e63726561736564206279fc2020202020206073616c652e6765745f76657374696e675f7363686564756c652870757263686173655f616d6f756e74292e636c6966665f616d6f756e74602901202020202d2063757272656e742076657374696e67207363686564756c6527732060706f73745f636c6966665f746f74616c5f616d6f756e746020697320696e6372656173656420627929012020202020206073616c652e6765745f76657374696e675f7363686564756c652870757263686173655f616d6f756e74292e706f73745f636c6966665f746f74616c5f616d6f756e74609c2d206966206073616c652e76657374696e675f7363686564756c652e69735f6e6f6e652829603ad820202d2062757965722773206163636f756e7420746f6b656e20616d6f756e7420696e637265617365642062792060616d6f756e746055012d2069662060746f6b656e5f646174612e73616c652e7175616e746974795f6c656674202d20616d6f756e74203d3d20306020616e64206073616c652e6175746f5f66696e616c697a6560206973206074727565604101202060746f6b656e5f646174612e73616c65602069732073657420746f204e6f6e652c206f74686572776973652060746f6b656e5f646174612e73616c652e7175616e746974795f6c65667460206973350120206465637265617365642062792060616d6f756e746020616e642060746f6b656e5f646174612e73616c652e66756e64735f636f6c6c65637465646020696e20696e6372656173656420627970202060616d6f756e74202a2073616c652e756e69745f70726963656000203c7765696768743e00242323205765696768741c604f2028312960142d2044423ad820202d20604f28312960202d20646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5070617274696369706174655f696e5f73706c69740c0120746f6b656e5f6964280128543a3a546f6b656e49640001246d656d6265725f696428012c543a3a4d656d6265724964000118616d6f756e74180144546f6b656e42616c616e63654f663c543e000568f0506172746963697061746520696e20746865202a6c61746573742a20746f6b656e20726576656e75652073706c697420286966206f6e676f696e672938507265636f6e646974696f6e733a8c2d2060746f6b656e60206d75737420657869737420666f722060746f6b656e5f696460fc2d20606f726967696e60207369676e6572206d75737420626520606d656d6265725f696460206d656d62657220636f6e74726f6c6c6572206163636f756e74582d2060616d6f756e7460206d757374206265203e2030cc2d20606163636f756e7460206d7573742065786973742020666f72206028746f6b656e5f69642c206d656d6265725f69642960fc2d2060746f6b656e2e73706c69745f73746174757360206d7573742062652061637469766520414e44205448454e2063757272656e745f626c6f636b20696eb82020205b73706c69742e73746172742c2073706c69742e7374617274202b2073706c69745f6475726174696f6e2981012d20606163636f756e742e7374616b696e675f7374617475732e69735f6e6f6e65282960204f5220606163636f756e742e7374616b696e675f7374617475732e73706c69745f6964602072656665727320746f206120706173742073706c6974782d20606163636f756e742e616d6f756e7460203e3d2060616d6f756e74602d012d206c657420606469766964656e64203d2073706c69745f616c6c6f636174696f6e202a206163636f756e742e7374616b65645f616d6f756e74202f20746f6b656e2e737570706c79606015012020207468656e2060747265617375727960206d7573742062652061626c6520746f207472616e7366657220606469766964656e646020616d6f756e74206f66204a4f592eec202020285468697320636f6e646974696f6e20746563686e6963616c6c792c2073686f756c6420616c7761797320626520736174697366696564290038506f7374636f6e646974696f6e732d012d20606469766964656e646020616d6f756e74206f66204a4f5973207472616e736665727265642066726f6d206074726561737572795f6163636f756e746020746f206073656e6465726045012d2060746f6b656e6020726576656e75652073706c6974206469766964656e647320706179656420747261636b696e67207661726961626c6520696e6372656173656420627920606469766964656e646045012d20606163636f756e742e7374616b696e675f737461747573602073657420746f20536f6d65282e2e2920776974682060616d6f756e746020616e642060746f6b656e2e6c61746573745f73706c69746000203c7765696768743e00242323205765696768741c604f2028312960142d2044423ad820202d20604f28312960202d20646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e48657869745f726576656e75655f73706c6974080120746f6b656e5f6964280128543a3a546f6b656e49640001246d656d6265725f696428012c543a3a4d656d626572496400064cb453706c69742d70617274696369706174696e672075736572206c656176657320726576656e75652073706c697434507265636f6e646974696f6e738c2d2060746f6b656e60206d75737420657869737420666f722060746f6b656e5f696460fc2d20606f726967696e60207369676e6572206d75737420626520606d656d6265725f696460206d656d62657220636f6e74726f6c6c6572206163636f756e74c82d20606163636f756e7460206d75737420657869737420666f72206028746f6b656e5f69642c206d656d6265725f69642960902d20606163636f756e742e7374616b696e67207374617475732e69735f736f6d6528292729012d2069662060286163636f756e742e7374616b696e675f7374617475732e73706c69745f6964203d3d20746f6b656e2e6e6578745f726576656e75655f73706c69745f6964202d2031604101202020414e442060746f6b656e2e726576656e75655f73706c6974602069732061637469766529205448454e2073706c6974207374616b696e6720706572696f6420206d75737420626520656e6465640038506f7374636f6e646974696f6e73982d20606163636f756e742e7374616b696e675f737461747573602073657420746f204e6f6e6500203c7765696768743e00242323205765696768741c604f2028312960142d2044423ad820202d20604f28312960202d20646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e3d060c5070616c6c65745f70726f6a6563745f746f6b656e147479706573245472616e736665727308204d656d626572496401281c5061796d656e740141060004004506016c42547265654d61703c4d656d62657249642c205061796d656e743e000041060c5070616c6c65745f70726f6a6563745f746f6b656e1474797065731c5061796d656e74041c42616c616e6365011800040118616d6f756e7418011c42616c616e636500004506042042547265654d617008044b01280456014106000400490600000049060000024d06004d06000004082841060051060c5070616c6c65745f70726f6a6563745f746f6b656e1474797065732c4d65726b6c6550726f6f660418486173686572014904000400550601845665633c284861736865723a3a4f75747075742c204d65726b6c6553696465293e000055060000025906005906000004082c5d06005d060c5070616c6c65745f70726f6a6563745f746f6b656e147479706573284d65726b6c6553696465000108145269676874000000104c656674000100006106085c70616c6c65745f70726f706f73616c735f656e67696e651043616c6c04045400011010766f7465100120766f7465725f696428012c4d656d62657249643c543e00012c70726f706f73616c5f6964100134543a3a50726f706f73616c4964000110766f74653d030120566f74654b696e64000124726174696f6e616c6530011c5665633c75383e000028d4566f74652065787472696e7369632e20436f6e646974696f6e733a20206f726967696e206d75737420616c6c6f7720766f7465732e00203c7765696768743e002423232057656967687438604f20285229602077686572653ab42d20605260206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f722070617261656d746572732c23203c2f7765696768743e3c63616e63656c5f70726f706f73616c08012c70726f706f7365725f696428012c4d656d62657249643c543e00012c70726f706f73616c5f6964100134543a3a50726f706f73616c4964000128ac43616e63656c20612070726f706f73616c20627920697473206f726967696e616c2070726f706f7365722e00203c7765696768743e002423232057656967687438604f20284c29602077686572653ac02d20604c602069732074686520746f74616c206e756d626572206f66206c6f636b7320696e206042616c616e63657360142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e347665746f5f70726f706f73616c04012c70726f706f73616c5f6964100134543a3a50726f706f73616c4964000224785665746f20612070726f706f73616c2e204d75737420626520726f6f742e00203c7765696768743e0024232320576569676874c4604f202831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3c70726f706f7365725f72656d61726b0c012c70726f706f73616c5f6964100134543a3a50726f706f73616c496400012c70726f706f7365725f696428012c4d656d62657249643c543e00010c6d736730011c5665633c75383e0003243c50726f706f7365722052656d61726b00203c7765696768743e0024232320576569676874c4604f202831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e6506086c70616c6c65745f70726f706f73616c735f64697363757373696f6e1043616c6c040454000110206164645f706f7374100138706f73745f617574686f725f696428012c4d656d62657249643c543e0001247468726561645f696428012c543a3a54687265616449640001107465787430011c5665633c75383e0001206564697461626c65980110626f6f6c0000289441646473206120706f7374207769746820617574686f72206f726967696e20636865636b2e00203c7765696768743e002423232057656967687438604f20284c29602077686572653aa02d20604c60206973207468652073697a65206f662060746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c64656c6574655f706f737410012864656c657465725f696428012c4d656d62657249643c543e00011c706f73745f6964280124543a3a506f737449640001247468726561645f696428012c543a3a546872656164496400011068696465980110626f6f6c000128510152656d6f766520706f73742066726f6d2073746f726167652c207769746820746865206c61737420706172616d6574657220696e6469636174696e67207768657468657220746f20616c736f206869646520697428696e207468652055492e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c7570646174655f706f73740c01247468726561645f696428012c543a3a546872656164496400011c706f73745f6964280124543a3a506f737449640001107465787430011c5665633c75383e0002282d0155706461746573206120706f7374207769746820617574686f72206f726967696e20636865636b2e2055706461746520617474656d707473206e756d626572206973206c696d697465642e00203c7765696768743e002423232057656967687438604f20284c29602077686572653aa02d20604c60206973207468652073697a65206f662060746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e486368616e67655f7468726561645f6d6f64650c01246d656d6265725f696428012c4d656d62657249643c543e0001247468726561645f696428012c543a3a54687265616449640001106d6f6465450301d85468726561644d6f64653c42547265655365743c3c54206173204d656d6265727368697054797065733e3a3a4d656d62657249643e3e0003287c4368616e67657320746872656164207065726d697373696f6e206d6f64652e00203c7765696768743e0024232320576569676874dc604f2028572960206966205468726561644d6f646520697320636c6f7365206f72204f283129206f74686572776973652077686572653ad02d2060576020697320746865206e756d626572206f662077686974656c6973746564206d656d6265727320696e20606d6f646560142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e6906085870616c6c65745f70726f706f73616c735f636f6465781043616c6c0404540001043c6372656174655f70726f706f73616c08016c67656e6572616c5f70726f706f73616c5f706172616d65746572734d03017047656e6572616c50726f706f73616c506172616d65746572733c543e00014070726f706f73616c5f64657461696c735103015050726f706f73616c44657461696c734f663c543e000034450143726561746520612070726f706f73616c2c207468652074797065206f662070726f706f73616c20646570656e6473206f6e20746865206070726f706f73616c5f64657461696c73602076617269616e7400203c7765696768743e002423232057656967687458604f202854202b2044202b204929602077686572653a902d2060546020697320746865207469746c652073697a6520696e206b696c6f6279746573a82d2060446020697320746865206465736372697074696f6e2073697a6520696e206b696c6f6279746573e02d20604960206973207468652073697a65206f6620616e7920706172616d6574657220696e206070726f706f73616c5f64657461696c736084202028696e206b696c6f62797465732069662069742773206d6574616461746129142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e6d06085070616c6c65745f776f726b696e675f67726f75701043616c6c08045400044900014c2c6164645f6f70656e696e6710012c6465736372697074696f6e30011c5665633c75383e0001306f70656e696e675f747970657d03012c4f70656e696e67547970650001307374616b655f706f6c696379610301a45374616b65506f6c6963793c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e3e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e00002cc44164642061206a6f62206f70656e696e6720666f72206120726567756c617220776f726b65722f6c65616420726f6c652e490152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20616464206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e002423232057656967687438604f20284429602077686572653abc2d20604460206973207468652073697a65206f6620606465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e406170706c795f6f6e5f6f70656e696e67040104708103016c4170706c794f6e4f70656e696e67506172616d65746572733c543e000128684170706c79206f6e206120776f726b6572206f70656e696e672e002823203c7765696768743e002423232057656967687438604f20284429602077686572653ac42d20604460206973207468652073697a65206f662060702e6465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3066696c6c5f6f70656e696e670801286f70656e696e675f69642801244f70656e696e6749640001687375636365737366756c5f6170706c69636174696f6e5f6964736901015c42547265655365743c4170706c69636174696f6e49643e000228ac46696c6c206f70656e696e6720666f722074686520726567756c61722f6c65616420706f736974696f6e2e4d0152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2066696c6c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e2823203c7765696768743e002423232057656967687438604f20284129602077686572653acc2d2060416020697320746865206c656e677468206f6620607375636365737366756c5f6170706c69636174696f6e5f69647360142d2044423a242020202d204f2841292c23203c2f7765696768743e4c7570646174655f726f6c655f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e00014c6e65775f726f6c655f6163636f756e745f6964000130543a3a4163636f756e744964000324150155706461746520746865206173736f63696174656420726f6c65206163636f756e74206f66207468652061637469766520726567756c617220776f726b65722f6c6561642e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e286c656176655f726f6c65080124776f726b65725f696428012c576f726b657249643c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000424904c656176652074686520726f6c65206279207468652061637469766520776f726b65722e2823203c7765696768743e002423232057656967687438604f20285229602077686572653ab42d20605260206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e387465726d696e6174655f726f6c650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c7479450101504f7074696f6e3c42616c616e63654f663c543e3e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000528a05465726d696e617465207468652061637469766520776f726b657220627920746865206c6561642e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f207465726d696e61746520746865206c656164657220726f6c65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ad82d20605060206973207468652073697a65206070656e616c74792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c736c6173685f7374616b650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c747918013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e00062c7d01536c61736865732074686520726567756c617220776f726b6572207374616b652c2064656d616e64732061206c6561646572206f726967696e2e204e6f206c696d6974732c206e6f20616374696f6e73206f6e207a65726f207374616b652e3d01496620736c617368696e672062616c616e63652067726561746572207468616e20746865206578697374696e67207374616b65202d207374616b6520697320736c617368656420746f207a65726f2e19015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20736c61736820746865206c6561646572207374616b65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ae82d20605060206973207468652073697a65206f66206070656e616c6974792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3864656372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e00073021014465637265617365732074686520726567756c617220776f726b65722f6c656164207374616b6520616e642072657475726e73207468652072656d61696e64657220746f207468653901776f726b6572207374616b696e675f6163636f756e745f69642e2043616e2062652064656372656173656420746f207a65726f2c206e6f20616374696f6e73206f6e207a65726f207374616b652e944163636570747320746865207374616b6520616d6f756e7420746f2064656372656173652e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20646563726561736520746865206c6561646572207374616b65292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e38696e6372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e0008280501496e637265617365732074686520726567756c617220776f726b65722f6c656164207374616b652c2064656d616e6473206120776f726b6572206f726967696e2e6d014c6f636b7320746f6b656e732066726f6d2074686520776f726b6572207374616b696e675f6163636f756e745f696420657175616c20746f206e6577207374616b652e204e6f206c696d697473206f6e20746865207374616b652e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5077697468647261775f6170706c69636174696f6e0401386170706c69636174696f6e5f69642801344170706c69636174696f6e4964000924010157697468647261772074686520776f726b6572206170706c69636174696f6e2e2043616e20626520646f6e652062792074686520776f726b6572206f6e6c792e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3863616e63656c5f6f70656e696e670401286f70656e696e675f69642801244f70656e696e674964000a28dc43616e63656c20616e206f70656e696e6720666f722074686520726567756c617220776f726b65722f6c65616420706f736974696f6e2e550152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2063616e63656c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e287365745f6275646765740401286e65775f62756467657418013042616c616e63654f663c543e000b28a0536574732061206e65772062756467657420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e547570646174655f7265776172645f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e0001546e65775f7265776172645f6163636f756e745f6964000130543a3a4163636f756e744964000c2469015570646174652074686520726577617264206163636f756e74206173736f6369617465642077697468206120736574207265776172642072656c6174696f6e7368697020666f72207468652061637469766520776f726b65722e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e507570646174655f7265776172645f616d6f756e74080124776f726b65725f696428012c576f726b657249643c543e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e000d28c855706461746520746865207265776172642070657220626c6f636b20666f72207468652061637469766520776f726b65722e310152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20757064617465206c656164657227732072657761726420616d6f756e74292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3c7365745f7374617475735f7465787404012c7374617475735f746578743101013c4f7074696f6e3c5665633c75383e3e000e30b4536574732061206e657720737461747573207465787420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e002423232057656967687438604f20285329602077686572653a4d012d20605360206973207468652073697a65206f662074686520636f6e74656e7473206f6620607374617475735f746578746020696e206b696c6f6279746573207768656e206974206973206e6f74206e6f6e6500142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e447370656e645f66726f6d5f6275646765740c01286163636f756e745f6964000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000f28a85472616e73666572732073706563696669656420616d6f756e7420746f20616e79206163636f756e742e5c5265717569726573206c6561646572206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6466756e645f776f726b696e675f67726f75705f6275646765740c01246d656d6265725f696428012c4d656d62657249643c543e000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c6530011c5665633c75383e0010209846756e6420776f726b696e672067726f7570206275646765742062792061206d656d6265722e203c7765696768743e0024232320576569676874c4604f202831296020446f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c6c6561645f72656d61726b04010c6d736730011c5665633c75383e0011284c4c6561642072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e34776f726b65725f72656d61726b080124776f726b65725f696428012c576f726b657249643c543e00010c6d736730011c5665633c75383e00122854576f726b65722072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e7106085070616c6c65745f776f726b696e675f67726f75701043616c6c08045400044900014c2c6164645f6f70656e696e6710012c6465736372697074696f6e30011c5665633c75383e0001306f70656e696e675f747970657d03012c4f70656e696e67547970650001307374616b655f706f6c696379610301a45374616b65506f6c6963793c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e3e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e00002cc44164642061206a6f62206f70656e696e6720666f72206120726567756c617220776f726b65722f6c65616420726f6c652e490152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20616464206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e002423232057656967687438604f20284429602077686572653abc2d20604460206973207468652073697a65206f6620606465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e406170706c795f6f6e5f6f70656e696e67040104708103016c4170706c794f6e4f70656e696e67506172616d65746572733c543e000128684170706c79206f6e206120776f726b6572206f70656e696e672e002823203c7765696768743e002423232057656967687438604f20284429602077686572653ac42d20604460206973207468652073697a65206f662060702e6465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3066696c6c5f6f70656e696e670801286f70656e696e675f69642801244f70656e696e6749640001687375636365737366756c5f6170706c69636174696f6e5f6964736901015c42547265655365743c4170706c69636174696f6e49643e000228ac46696c6c206f70656e696e6720666f722074686520726567756c61722f6c65616420706f736974696f6e2e4d0152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2066696c6c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e2823203c7765696768743e002423232057656967687438604f20284129602077686572653acc2d2060416020697320746865206c656e677468206f6620607375636365737366756c5f6170706c69636174696f6e5f69647360142d2044423a242020202d204f2841292c23203c2f7765696768743e4c7570646174655f726f6c655f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e00014c6e65775f726f6c655f6163636f756e745f6964000130543a3a4163636f756e744964000324150155706461746520746865206173736f63696174656420726f6c65206163636f756e74206f66207468652061637469766520726567756c617220776f726b65722f6c6561642e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e286c656176655f726f6c65080124776f726b65725f696428012c576f726b657249643c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000424904c656176652074686520726f6c65206279207468652061637469766520776f726b65722e2823203c7765696768743e002423232057656967687438604f20285229602077686572653ab42d20605260206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e387465726d696e6174655f726f6c650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c7479450101504f7074696f6e3c42616c616e63654f663c543e3e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000528a05465726d696e617465207468652061637469766520776f726b657220627920746865206c6561642e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f207465726d696e61746520746865206c656164657220726f6c65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ad82d20605060206973207468652073697a65206070656e616c74792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c736c6173685f7374616b650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c747918013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e00062c7d01536c61736865732074686520726567756c617220776f726b6572207374616b652c2064656d616e64732061206c6561646572206f726967696e2e204e6f206c696d6974732c206e6f20616374696f6e73206f6e207a65726f207374616b652e3d01496620736c617368696e672062616c616e63652067726561746572207468616e20746865206578697374696e67207374616b65202d207374616b6520697320736c617368656420746f207a65726f2e19015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20736c61736820746865206c6561646572207374616b65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ae82d20605060206973207468652073697a65206f66206070656e616c6974792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3864656372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e00073021014465637265617365732074686520726567756c617220776f726b65722f6c656164207374616b6520616e642072657475726e73207468652072656d61696e64657220746f207468653901776f726b6572207374616b696e675f6163636f756e745f69642e2043616e2062652064656372656173656420746f207a65726f2c206e6f20616374696f6e73206f6e207a65726f207374616b652e944163636570747320746865207374616b6520616d6f756e7420746f2064656372656173652e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20646563726561736520746865206c6561646572207374616b65292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e38696e6372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e0008280501496e637265617365732074686520726567756c617220776f726b65722f6c656164207374616b652c2064656d616e6473206120776f726b6572206f726967696e2e6d014c6f636b7320746f6b656e732066726f6d2074686520776f726b6572207374616b696e675f6163636f756e745f696420657175616c20746f206e6577207374616b652e204e6f206c696d697473206f6e20746865207374616b652e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5077697468647261775f6170706c69636174696f6e0401386170706c69636174696f6e5f69642801344170706c69636174696f6e4964000924010157697468647261772074686520776f726b6572206170706c69636174696f6e2e2043616e20626520646f6e652062792074686520776f726b6572206f6e6c792e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3863616e63656c5f6f70656e696e670401286f70656e696e675f69642801244f70656e696e674964000a28dc43616e63656c20616e206f70656e696e6720666f722074686520726567756c617220776f726b65722f6c65616420706f736974696f6e2e550152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2063616e63656c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e287365745f6275646765740401286e65775f62756467657418013042616c616e63654f663c543e000b28a0536574732061206e65772062756467657420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e547570646174655f7265776172645f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e0001546e65775f7265776172645f6163636f756e745f6964000130543a3a4163636f756e744964000c2469015570646174652074686520726577617264206163636f756e74206173736f6369617465642077697468206120736574207265776172642072656c6174696f6e7368697020666f72207468652061637469766520776f726b65722e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e507570646174655f7265776172645f616d6f756e74080124776f726b65725f696428012c576f726b657249643c543e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e000d28c855706461746520746865207265776172642070657220626c6f636b20666f72207468652061637469766520776f726b65722e310152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20757064617465206c656164657227732072657761726420616d6f756e74292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3c7365745f7374617475735f7465787404012c7374617475735f746578743101013c4f7074696f6e3c5665633c75383e3e000e30b4536574732061206e657720737461747573207465787420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e002423232057656967687438604f20285329602077686572653a4d012d20605360206973207468652073697a65206f662074686520636f6e74656e7473206f6620607374617475735f746578746020696e206b696c6f6279746573207768656e206974206973206e6f74206e6f6e6500142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e447370656e645f66726f6d5f6275646765740c01286163636f756e745f6964000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000f28a85472616e73666572732073706563696669656420616d6f756e7420746f20616e79206163636f756e742e5c5265717569726573206c6561646572206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6466756e645f776f726b696e675f67726f75705f6275646765740c01246d656d6265725f696428012c4d656d62657249643c543e000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c6530011c5665633c75383e0010209846756e6420776f726b696e672067726f7570206275646765742062792061206d656d6265722e203c7765696768743e0024232320576569676874c4604f202831296020446f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c6c6561645f72656d61726b04010c6d736730011c5665633c75383e0011284c4c6561642072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e34776f726b65725f72656d61726b080124776f726b65725f696428012c576f726b657249643c543e00010c6d736730011c5665633c75383e00122854576f726b65722072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e7506085070616c6c65745f776f726b696e675f67726f75701043616c6c08045400044900014c2c6164645f6f70656e696e6710012c6465736372697074696f6e30011c5665633c75383e0001306f70656e696e675f747970657d03012c4f70656e696e67547970650001307374616b655f706f6c696379610301a45374616b65506f6c6963793c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e3e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e00002cc44164642061206a6f62206f70656e696e6720666f72206120726567756c617220776f726b65722f6c65616420726f6c652e490152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20616464206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e002423232057656967687438604f20284429602077686572653abc2d20604460206973207468652073697a65206f6620606465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e406170706c795f6f6e5f6f70656e696e67040104708103016c4170706c794f6e4f70656e696e67506172616d65746572733c543e000128684170706c79206f6e206120776f726b6572206f70656e696e672e002823203c7765696768743e002423232057656967687438604f20284429602077686572653ac42d20604460206973207468652073697a65206f662060702e6465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3066696c6c5f6f70656e696e670801286f70656e696e675f69642801244f70656e696e6749640001687375636365737366756c5f6170706c69636174696f6e5f6964736901015c42547265655365743c4170706c69636174696f6e49643e000228ac46696c6c206f70656e696e6720666f722074686520726567756c61722f6c65616420706f736974696f6e2e4d0152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2066696c6c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e2823203c7765696768743e002423232057656967687438604f20284129602077686572653acc2d2060416020697320746865206c656e677468206f6620607375636365737366756c5f6170706c69636174696f6e5f69647360142d2044423a242020202d204f2841292c23203c2f7765696768743e4c7570646174655f726f6c655f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e00014c6e65775f726f6c655f6163636f756e745f6964000130543a3a4163636f756e744964000324150155706461746520746865206173736f63696174656420726f6c65206163636f756e74206f66207468652061637469766520726567756c617220776f726b65722f6c6561642e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e286c656176655f726f6c65080124776f726b65725f696428012c576f726b657249643c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000424904c656176652074686520726f6c65206279207468652061637469766520776f726b65722e2823203c7765696768743e002423232057656967687438604f20285229602077686572653ab42d20605260206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e387465726d696e6174655f726f6c650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c7479450101504f7074696f6e3c42616c616e63654f663c543e3e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000528a05465726d696e617465207468652061637469766520776f726b657220627920746865206c6561642e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f207465726d696e61746520746865206c656164657220726f6c65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ad82d20605060206973207468652073697a65206070656e616c74792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c736c6173685f7374616b650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c747918013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e00062c7d01536c61736865732074686520726567756c617220776f726b6572207374616b652c2064656d616e64732061206c6561646572206f726967696e2e204e6f206c696d6974732c206e6f20616374696f6e73206f6e207a65726f207374616b652e3d01496620736c617368696e672062616c616e63652067726561746572207468616e20746865206578697374696e67207374616b65202d207374616b6520697320736c617368656420746f207a65726f2e19015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20736c61736820746865206c6561646572207374616b65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ae82d20605060206973207468652073697a65206f66206070656e616c6974792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3864656372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e00073021014465637265617365732074686520726567756c617220776f726b65722f6c656164207374616b6520616e642072657475726e73207468652072656d61696e64657220746f207468653901776f726b6572207374616b696e675f6163636f756e745f69642e2043616e2062652064656372656173656420746f207a65726f2c206e6f20616374696f6e73206f6e207a65726f207374616b652e944163636570747320746865207374616b6520616d6f756e7420746f2064656372656173652e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20646563726561736520746865206c6561646572207374616b65292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e38696e6372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e0008280501496e637265617365732074686520726567756c617220776f726b65722f6c656164207374616b652c2064656d616e6473206120776f726b6572206f726967696e2e6d014c6f636b7320746f6b656e732066726f6d2074686520776f726b6572207374616b696e675f6163636f756e745f696420657175616c20746f206e6577207374616b652e204e6f206c696d697473206f6e20746865207374616b652e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5077697468647261775f6170706c69636174696f6e0401386170706c69636174696f6e5f69642801344170706c69636174696f6e4964000924010157697468647261772074686520776f726b6572206170706c69636174696f6e2e2043616e20626520646f6e652062792074686520776f726b6572206f6e6c792e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3863616e63656c5f6f70656e696e670401286f70656e696e675f69642801244f70656e696e674964000a28dc43616e63656c20616e206f70656e696e6720666f722074686520726567756c617220776f726b65722f6c65616420706f736974696f6e2e550152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2063616e63656c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e287365745f6275646765740401286e65775f62756467657418013042616c616e63654f663c543e000b28a0536574732061206e65772062756467657420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e547570646174655f7265776172645f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e0001546e65775f7265776172645f6163636f756e745f6964000130543a3a4163636f756e744964000c2469015570646174652074686520726577617264206163636f756e74206173736f6369617465642077697468206120736574207265776172642072656c6174696f6e7368697020666f72207468652061637469766520776f726b65722e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e507570646174655f7265776172645f616d6f756e74080124776f726b65725f696428012c576f726b657249643c543e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e000d28c855706461746520746865207265776172642070657220626c6f636b20666f72207468652061637469766520776f726b65722e310152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20757064617465206c656164657227732072657761726420616d6f756e74292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3c7365745f7374617475735f7465787404012c7374617475735f746578743101013c4f7074696f6e3c5665633c75383e3e000e30b4536574732061206e657720737461747573207465787420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e002423232057656967687438604f20285329602077686572653a4d012d20605360206973207468652073697a65206f662074686520636f6e74656e7473206f6620607374617475735f746578746020696e206b696c6f6279746573207768656e206974206973206e6f74206e6f6e6500142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e447370656e645f66726f6d5f6275646765740c01286163636f756e745f6964000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000f28a85472616e73666572732073706563696669656420616d6f756e7420746f20616e79206163636f756e742e5c5265717569726573206c6561646572206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6466756e645f776f726b696e675f67726f75705f6275646765740c01246d656d6265725f696428012c4d656d62657249643c543e000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c6530011c5665633c75383e0010209846756e6420776f726b696e672067726f7570206275646765742062792061206d656d6265722e203c7765696768743e0024232320576569676874c4604f202831296020446f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c6c6561645f72656d61726b04010c6d736730011c5665633c75383e0011284c4c6561642072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e34776f726b65725f72656d61726b080124776f726b65725f696428012c576f726b657249643c543e00010c6d736730011c5665633c75383e00122854576f726b65722072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e7906085070616c6c65745f776f726b696e675f67726f75701043616c6c08045400044900014c2c6164645f6f70656e696e6710012c6465736372697074696f6e30011c5665633c75383e0001306f70656e696e675f747970657d03012c4f70656e696e67547970650001307374616b655f706f6c696379610301a45374616b65506f6c6963793c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e3e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e00002cc44164642061206a6f62206f70656e696e6720666f72206120726567756c617220776f726b65722f6c65616420726f6c652e490152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20616464206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e002423232057656967687438604f20284429602077686572653abc2d20604460206973207468652073697a65206f6620606465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e406170706c795f6f6e5f6f70656e696e67040104708103016c4170706c794f6e4f70656e696e67506172616d65746572733c543e000128684170706c79206f6e206120776f726b6572206f70656e696e672e002823203c7765696768743e002423232057656967687438604f20284429602077686572653ac42d20604460206973207468652073697a65206f662060702e6465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3066696c6c5f6f70656e696e670801286f70656e696e675f69642801244f70656e696e6749640001687375636365737366756c5f6170706c69636174696f6e5f6964736901015c42547265655365743c4170706c69636174696f6e49643e000228ac46696c6c206f70656e696e6720666f722074686520726567756c61722f6c65616420706f736974696f6e2e4d0152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2066696c6c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e2823203c7765696768743e002423232057656967687438604f20284129602077686572653acc2d2060416020697320746865206c656e677468206f6620607375636365737366756c5f6170706c69636174696f6e5f69647360142d2044423a242020202d204f2841292c23203c2f7765696768743e4c7570646174655f726f6c655f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e00014c6e65775f726f6c655f6163636f756e745f6964000130543a3a4163636f756e744964000324150155706461746520746865206173736f63696174656420726f6c65206163636f756e74206f66207468652061637469766520726567756c617220776f726b65722f6c6561642e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e286c656176655f726f6c65080124776f726b65725f696428012c576f726b657249643c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000424904c656176652074686520726f6c65206279207468652061637469766520776f726b65722e2823203c7765696768743e002423232057656967687438604f20285229602077686572653ab42d20605260206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e387465726d696e6174655f726f6c650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c7479450101504f7074696f6e3c42616c616e63654f663c543e3e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000528a05465726d696e617465207468652061637469766520776f726b657220627920746865206c6561642e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f207465726d696e61746520746865206c656164657220726f6c65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ad82d20605060206973207468652073697a65206070656e616c74792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c736c6173685f7374616b650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c747918013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e00062c7d01536c61736865732074686520726567756c617220776f726b6572207374616b652c2064656d616e64732061206c6561646572206f726967696e2e204e6f206c696d6974732c206e6f20616374696f6e73206f6e207a65726f207374616b652e3d01496620736c617368696e672062616c616e63652067726561746572207468616e20746865206578697374696e67207374616b65202d207374616b6520697320736c617368656420746f207a65726f2e19015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20736c61736820746865206c6561646572207374616b65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ae82d20605060206973207468652073697a65206f66206070656e616c6974792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3864656372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e00073021014465637265617365732074686520726567756c617220776f726b65722f6c656164207374616b6520616e642072657475726e73207468652072656d61696e64657220746f207468653901776f726b6572207374616b696e675f6163636f756e745f69642e2043616e2062652064656372656173656420746f207a65726f2c206e6f20616374696f6e73206f6e207a65726f207374616b652e944163636570747320746865207374616b6520616d6f756e7420746f2064656372656173652e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20646563726561736520746865206c6561646572207374616b65292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e38696e6372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e0008280501496e637265617365732074686520726567756c617220776f726b65722f6c656164207374616b652c2064656d616e6473206120776f726b6572206f726967696e2e6d014c6f636b7320746f6b656e732066726f6d2074686520776f726b6572207374616b696e675f6163636f756e745f696420657175616c20746f206e6577207374616b652e204e6f206c696d697473206f6e20746865207374616b652e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5077697468647261775f6170706c69636174696f6e0401386170706c69636174696f6e5f69642801344170706c69636174696f6e4964000924010157697468647261772074686520776f726b6572206170706c69636174696f6e2e2043616e20626520646f6e652062792074686520776f726b6572206f6e6c792e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3863616e63656c5f6f70656e696e670401286f70656e696e675f69642801244f70656e696e674964000a28dc43616e63656c20616e206f70656e696e6720666f722074686520726567756c617220776f726b65722f6c65616420706f736974696f6e2e550152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2063616e63656c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e287365745f6275646765740401286e65775f62756467657418013042616c616e63654f663c543e000b28a0536574732061206e65772062756467657420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e547570646174655f7265776172645f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e0001546e65775f7265776172645f6163636f756e745f6964000130543a3a4163636f756e744964000c2469015570646174652074686520726577617264206163636f756e74206173736f6369617465642077697468206120736574207265776172642072656c6174696f6e7368697020666f72207468652061637469766520776f726b65722e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e507570646174655f7265776172645f616d6f756e74080124776f726b65725f696428012c576f726b657249643c543e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e000d28c855706461746520746865207265776172642070657220626c6f636b20666f72207468652061637469766520776f726b65722e310152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20757064617465206c656164657227732072657761726420616d6f756e74292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3c7365745f7374617475735f7465787404012c7374617475735f746578743101013c4f7074696f6e3c5665633c75383e3e000e30b4536574732061206e657720737461747573207465787420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e002423232057656967687438604f20285329602077686572653a4d012d20605360206973207468652073697a65206f662074686520636f6e74656e7473206f6620607374617475735f746578746020696e206b696c6f6279746573207768656e206974206973206e6f74206e6f6e6500142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e447370656e645f66726f6d5f6275646765740c01286163636f756e745f6964000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000f28a85472616e73666572732073706563696669656420616d6f756e7420746f20616e79206163636f756e742e5c5265717569726573206c6561646572206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6466756e645f776f726b696e675f67726f75705f6275646765740c01246d656d6265725f696428012c4d656d62657249643c543e000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c6530011c5665633c75383e0010209846756e6420776f726b696e672067726f7570206275646765742062792061206d656d6265722e203c7765696768743e0024232320576569676874c4604f202831296020446f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c6c6561645f72656d61726b04010c6d736730011c5665633c75383e0011284c4c6561642072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e34776f726b65725f72656d61726b080124776f726b65725f696428012c576f726b657249643c543e00010c6d736730011c5665633c75383e00122854576f726b65722072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e7d06085070616c6c65745f776f726b696e675f67726f75701043616c6c08045400044900014c2c6164645f6f70656e696e6710012c6465736372697074696f6e30011c5665633c75383e0001306f70656e696e675f747970657d03012c4f70656e696e67547970650001307374616b655f706f6c696379610301a45374616b65506f6c6963793c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e3e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e00002cc44164642061206a6f62206f70656e696e6720666f72206120726567756c617220776f726b65722f6c65616420726f6c652e490152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20616464206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e002423232057656967687438604f20284429602077686572653abc2d20604460206973207468652073697a65206f6620606465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e406170706c795f6f6e5f6f70656e696e67040104708103016c4170706c794f6e4f70656e696e67506172616d65746572733c543e000128684170706c79206f6e206120776f726b6572206f70656e696e672e002823203c7765696768743e002423232057656967687438604f20284429602077686572653ac42d20604460206973207468652073697a65206f662060702e6465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3066696c6c5f6f70656e696e670801286f70656e696e675f69642801244f70656e696e6749640001687375636365737366756c5f6170706c69636174696f6e5f6964736901015c42547265655365743c4170706c69636174696f6e49643e000228ac46696c6c206f70656e696e6720666f722074686520726567756c61722f6c65616420706f736974696f6e2e4d0152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2066696c6c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e2823203c7765696768743e002423232057656967687438604f20284129602077686572653acc2d2060416020697320746865206c656e677468206f6620607375636365737366756c5f6170706c69636174696f6e5f69647360142d2044423a242020202d204f2841292c23203c2f7765696768743e4c7570646174655f726f6c655f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e00014c6e65775f726f6c655f6163636f756e745f6964000130543a3a4163636f756e744964000324150155706461746520746865206173736f63696174656420726f6c65206163636f756e74206f66207468652061637469766520726567756c617220776f726b65722f6c6561642e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e286c656176655f726f6c65080124776f726b65725f696428012c576f726b657249643c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000424904c656176652074686520726f6c65206279207468652061637469766520776f726b65722e2823203c7765696768743e002423232057656967687438604f20285229602077686572653ab42d20605260206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e387465726d696e6174655f726f6c650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c7479450101504f7074696f6e3c42616c616e63654f663c543e3e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000528a05465726d696e617465207468652061637469766520776f726b657220627920746865206c6561642e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f207465726d696e61746520746865206c656164657220726f6c65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ad82d20605060206973207468652073697a65206070656e616c74792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c736c6173685f7374616b650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c747918013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e00062c7d01536c61736865732074686520726567756c617220776f726b6572207374616b652c2064656d616e64732061206c6561646572206f726967696e2e204e6f206c696d6974732c206e6f20616374696f6e73206f6e207a65726f207374616b652e3d01496620736c617368696e672062616c616e63652067726561746572207468616e20746865206578697374696e67207374616b65202d207374616b6520697320736c617368656420746f207a65726f2e19015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20736c61736820746865206c6561646572207374616b65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ae82d20605060206973207468652073697a65206f66206070656e616c6974792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3864656372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e00073021014465637265617365732074686520726567756c617220776f726b65722f6c656164207374616b6520616e642072657475726e73207468652072656d61696e64657220746f207468653901776f726b6572207374616b696e675f6163636f756e745f69642e2043616e2062652064656372656173656420746f207a65726f2c206e6f20616374696f6e73206f6e207a65726f207374616b652e944163636570747320746865207374616b6520616d6f756e7420746f2064656372656173652e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20646563726561736520746865206c6561646572207374616b65292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e38696e6372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e0008280501496e637265617365732074686520726567756c617220776f726b65722f6c656164207374616b652c2064656d616e6473206120776f726b6572206f726967696e2e6d014c6f636b7320746f6b656e732066726f6d2074686520776f726b6572207374616b696e675f6163636f756e745f696420657175616c20746f206e6577207374616b652e204e6f206c696d697473206f6e20746865207374616b652e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5077697468647261775f6170706c69636174696f6e0401386170706c69636174696f6e5f69642801344170706c69636174696f6e4964000924010157697468647261772074686520776f726b6572206170706c69636174696f6e2e2043616e20626520646f6e652062792074686520776f726b6572206f6e6c792e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3863616e63656c5f6f70656e696e670401286f70656e696e675f69642801244f70656e696e674964000a28dc43616e63656c20616e206f70656e696e6720666f722074686520726567756c617220776f726b65722f6c65616420706f736974696f6e2e550152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2063616e63656c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e287365745f6275646765740401286e65775f62756467657418013042616c616e63654f663c543e000b28a0536574732061206e65772062756467657420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e547570646174655f7265776172645f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e0001546e65775f7265776172645f6163636f756e745f6964000130543a3a4163636f756e744964000c2469015570646174652074686520726577617264206163636f756e74206173736f6369617465642077697468206120736574207265776172642072656c6174696f6e7368697020666f72207468652061637469766520776f726b65722e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e507570646174655f7265776172645f616d6f756e74080124776f726b65725f696428012c576f726b657249643c543e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e000d28c855706461746520746865207265776172642070657220626c6f636b20666f72207468652061637469766520776f726b65722e310152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20757064617465206c656164657227732072657761726420616d6f756e74292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3c7365745f7374617475735f7465787404012c7374617475735f746578743101013c4f7074696f6e3c5665633c75383e3e000e30b4536574732061206e657720737461747573207465787420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e002423232057656967687438604f20285329602077686572653a4d012d20605360206973207468652073697a65206f662074686520636f6e74656e7473206f6620607374617475735f746578746020696e206b696c6f6279746573207768656e206974206973206e6f74206e6f6e6500142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e447370656e645f66726f6d5f6275646765740c01286163636f756e745f6964000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000f28a85472616e73666572732073706563696669656420616d6f756e7420746f20616e79206163636f756e742e5c5265717569726573206c6561646572206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6466756e645f776f726b696e675f67726f75705f6275646765740c01246d656d6265725f696428012c4d656d62657249643c543e000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c6530011c5665633c75383e0010209846756e6420776f726b696e672067726f7570206275646765742062792061206d656d6265722e203c7765696768743e0024232320576569676874c4604f202831296020446f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c6c6561645f72656d61726b04010c6d736730011c5665633c75383e0011284c4c6561642072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e34776f726b65725f72656d61726b080124776f726b65725f696428012c576f726b657249643c543e00010c6d736730011c5665633c75383e00122854576f726b65722072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e8106085070616c6c65745f776f726b696e675f67726f75701043616c6c08045400044900014c2c6164645f6f70656e696e6710012c6465736372697074696f6e30011c5665633c75383e0001306f70656e696e675f747970657d03012c4f70656e696e67547970650001307374616b655f706f6c696379610301a45374616b65506f6c6963793c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e3e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e00002cc44164642061206a6f62206f70656e696e6720666f72206120726567756c617220776f726b65722f6c65616420726f6c652e490152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20616464206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e002423232057656967687438604f20284429602077686572653abc2d20604460206973207468652073697a65206f6620606465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e406170706c795f6f6e5f6f70656e696e67040104708103016c4170706c794f6e4f70656e696e67506172616d65746572733c543e000128684170706c79206f6e206120776f726b6572206f70656e696e672e002823203c7765696768743e002423232057656967687438604f20284429602077686572653ac42d20604460206973207468652073697a65206f662060702e6465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3066696c6c5f6f70656e696e670801286f70656e696e675f69642801244f70656e696e6749640001687375636365737366756c5f6170706c69636174696f6e5f6964736901015c42547265655365743c4170706c69636174696f6e49643e000228ac46696c6c206f70656e696e6720666f722074686520726567756c61722f6c65616420706f736974696f6e2e4d0152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2066696c6c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e2823203c7765696768743e002423232057656967687438604f20284129602077686572653acc2d2060416020697320746865206c656e677468206f6620607375636365737366756c5f6170706c69636174696f6e5f69647360142d2044423a242020202d204f2841292c23203c2f7765696768743e4c7570646174655f726f6c655f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e00014c6e65775f726f6c655f6163636f756e745f6964000130543a3a4163636f756e744964000324150155706461746520746865206173736f63696174656420726f6c65206163636f756e74206f66207468652061637469766520726567756c617220776f726b65722f6c6561642e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e286c656176655f726f6c65080124776f726b65725f696428012c576f726b657249643c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000424904c656176652074686520726f6c65206279207468652061637469766520776f726b65722e2823203c7765696768743e002423232057656967687438604f20285229602077686572653ab42d20605260206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e387465726d696e6174655f726f6c650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c7479450101504f7074696f6e3c42616c616e63654f663c543e3e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000528a05465726d696e617465207468652061637469766520776f726b657220627920746865206c6561642e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f207465726d696e61746520746865206c656164657220726f6c65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ad82d20605060206973207468652073697a65206070656e616c74792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c736c6173685f7374616b650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c747918013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e00062c7d01536c61736865732074686520726567756c617220776f726b6572207374616b652c2064656d616e64732061206c6561646572206f726967696e2e204e6f206c696d6974732c206e6f20616374696f6e73206f6e207a65726f207374616b652e3d01496620736c617368696e672062616c616e63652067726561746572207468616e20746865206578697374696e67207374616b65202d207374616b6520697320736c617368656420746f207a65726f2e19015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20736c61736820746865206c6561646572207374616b65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ae82d20605060206973207468652073697a65206f66206070656e616c6974792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3864656372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e00073021014465637265617365732074686520726567756c617220776f726b65722f6c656164207374616b6520616e642072657475726e73207468652072656d61696e64657220746f207468653901776f726b6572207374616b696e675f6163636f756e745f69642e2043616e2062652064656372656173656420746f207a65726f2c206e6f20616374696f6e73206f6e207a65726f207374616b652e944163636570747320746865207374616b6520616d6f756e7420746f2064656372656173652e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20646563726561736520746865206c6561646572207374616b65292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e38696e6372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e0008280501496e637265617365732074686520726567756c617220776f726b65722f6c656164207374616b652c2064656d616e6473206120776f726b6572206f726967696e2e6d014c6f636b7320746f6b656e732066726f6d2074686520776f726b6572207374616b696e675f6163636f756e745f696420657175616c20746f206e6577207374616b652e204e6f206c696d697473206f6e20746865207374616b652e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5077697468647261775f6170706c69636174696f6e0401386170706c69636174696f6e5f69642801344170706c69636174696f6e4964000924010157697468647261772074686520776f726b6572206170706c69636174696f6e2e2043616e20626520646f6e652062792074686520776f726b6572206f6e6c792e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3863616e63656c5f6f70656e696e670401286f70656e696e675f69642801244f70656e696e674964000a28dc43616e63656c20616e206f70656e696e6720666f722074686520726567756c617220776f726b65722f6c65616420706f736974696f6e2e550152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2063616e63656c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e287365745f6275646765740401286e65775f62756467657418013042616c616e63654f663c543e000b28a0536574732061206e65772062756467657420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e547570646174655f7265776172645f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e0001546e65775f7265776172645f6163636f756e745f6964000130543a3a4163636f756e744964000c2469015570646174652074686520726577617264206163636f756e74206173736f6369617465642077697468206120736574207265776172642072656c6174696f6e7368697020666f72207468652061637469766520776f726b65722e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e507570646174655f7265776172645f616d6f756e74080124776f726b65725f696428012c576f726b657249643c543e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e000d28c855706461746520746865207265776172642070657220626c6f636b20666f72207468652061637469766520776f726b65722e310152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20757064617465206c656164657227732072657761726420616d6f756e74292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3c7365745f7374617475735f7465787404012c7374617475735f746578743101013c4f7074696f6e3c5665633c75383e3e000e30b4536574732061206e657720737461747573207465787420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e002423232057656967687438604f20285329602077686572653a4d012d20605360206973207468652073697a65206f662074686520636f6e74656e7473206f6620607374617475735f746578746020696e206b696c6f6279746573207768656e206974206973206e6f74206e6f6e6500142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e447370656e645f66726f6d5f6275646765740c01286163636f756e745f6964000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000f28a85472616e73666572732073706563696669656420616d6f756e7420746f20616e79206163636f756e742e5c5265717569726573206c6561646572206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6466756e645f776f726b696e675f67726f75705f6275646765740c01246d656d6265725f696428012c4d656d62657249643c543e000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c6530011c5665633c75383e0010209846756e6420776f726b696e672067726f7570206275646765742062792061206d656d6265722e203c7765696768743e0024232320576569676874c4604f202831296020446f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c6c6561645f72656d61726b04010c6d736730011c5665633c75383e0011284c4c6561642072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e34776f726b65725f72656d61726b080124776f726b65725f696428012c576f726b657249643c543e00010c6d736730011c5665633c75383e00122854576f726b65722072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e8506085070616c6c65745f776f726b696e675f67726f75701043616c6c08045400044900014c2c6164645f6f70656e696e6710012c6465736372697074696f6e30011c5665633c75383e0001306f70656e696e675f747970657d03012c4f70656e696e67547970650001307374616b655f706f6c696379610301a45374616b65506f6c6963793c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e3e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e00002cc44164642061206a6f62206f70656e696e6720666f72206120726567756c617220776f726b65722f6c65616420726f6c652e490152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20616464206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e002423232057656967687438604f20284429602077686572653abc2d20604460206973207468652073697a65206f6620606465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e406170706c795f6f6e5f6f70656e696e67040104708103016c4170706c794f6e4f70656e696e67506172616d65746572733c543e000128684170706c79206f6e206120776f726b6572206f70656e696e672e002823203c7765696768743e002423232057656967687438604f20284429602077686572653ac42d20604460206973207468652073697a65206f662060702e6465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3066696c6c5f6f70656e696e670801286f70656e696e675f69642801244f70656e696e6749640001687375636365737366756c5f6170706c69636174696f6e5f6964736901015c42547265655365743c4170706c69636174696f6e49643e000228ac46696c6c206f70656e696e6720666f722074686520726567756c61722f6c65616420706f736974696f6e2e4d0152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2066696c6c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e2823203c7765696768743e002423232057656967687438604f20284129602077686572653acc2d2060416020697320746865206c656e677468206f6620607375636365737366756c5f6170706c69636174696f6e5f69647360142d2044423a242020202d204f2841292c23203c2f7765696768743e4c7570646174655f726f6c655f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e00014c6e65775f726f6c655f6163636f756e745f6964000130543a3a4163636f756e744964000324150155706461746520746865206173736f63696174656420726f6c65206163636f756e74206f66207468652061637469766520726567756c617220776f726b65722f6c6561642e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e286c656176655f726f6c65080124776f726b65725f696428012c576f726b657249643c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000424904c656176652074686520726f6c65206279207468652061637469766520776f726b65722e2823203c7765696768743e002423232057656967687438604f20285229602077686572653ab42d20605260206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e387465726d696e6174655f726f6c650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c7479450101504f7074696f6e3c42616c616e63654f663c543e3e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000528a05465726d696e617465207468652061637469766520776f726b657220627920746865206c6561642e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f207465726d696e61746520746865206c656164657220726f6c65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ad82d20605060206973207468652073697a65206070656e616c74792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c736c6173685f7374616b650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c747918013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e00062c7d01536c61736865732074686520726567756c617220776f726b6572207374616b652c2064656d616e64732061206c6561646572206f726967696e2e204e6f206c696d6974732c206e6f20616374696f6e73206f6e207a65726f207374616b652e3d01496620736c617368696e672062616c616e63652067726561746572207468616e20746865206578697374696e67207374616b65202d207374616b6520697320736c617368656420746f207a65726f2e19015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20736c61736820746865206c6561646572207374616b65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ae82d20605060206973207468652073697a65206f66206070656e616c6974792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3864656372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e00073021014465637265617365732074686520726567756c617220776f726b65722f6c656164207374616b6520616e642072657475726e73207468652072656d61696e64657220746f207468653901776f726b6572207374616b696e675f6163636f756e745f69642e2043616e2062652064656372656173656420746f207a65726f2c206e6f20616374696f6e73206f6e207a65726f207374616b652e944163636570747320746865207374616b6520616d6f756e7420746f2064656372656173652e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20646563726561736520746865206c6561646572207374616b65292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e38696e6372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e0008280501496e637265617365732074686520726567756c617220776f726b65722f6c656164207374616b652c2064656d616e6473206120776f726b6572206f726967696e2e6d014c6f636b7320746f6b656e732066726f6d2074686520776f726b6572207374616b696e675f6163636f756e745f696420657175616c20746f206e6577207374616b652e204e6f206c696d697473206f6e20746865207374616b652e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5077697468647261775f6170706c69636174696f6e0401386170706c69636174696f6e5f69642801344170706c69636174696f6e4964000924010157697468647261772074686520776f726b6572206170706c69636174696f6e2e2043616e20626520646f6e652062792074686520776f726b6572206f6e6c792e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3863616e63656c5f6f70656e696e670401286f70656e696e675f69642801244f70656e696e674964000a28dc43616e63656c20616e206f70656e696e6720666f722074686520726567756c617220776f726b65722f6c65616420706f736974696f6e2e550152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2063616e63656c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e287365745f6275646765740401286e65775f62756467657418013042616c616e63654f663c543e000b28a0536574732061206e65772062756467657420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e547570646174655f7265776172645f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e0001546e65775f7265776172645f6163636f756e745f6964000130543a3a4163636f756e744964000c2469015570646174652074686520726577617264206163636f756e74206173736f6369617465642077697468206120736574207265776172642072656c6174696f6e7368697020666f72207468652061637469766520776f726b65722e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e507570646174655f7265776172645f616d6f756e74080124776f726b65725f696428012c576f726b657249643c543e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e000d28c855706461746520746865207265776172642070657220626c6f636b20666f72207468652061637469766520776f726b65722e310152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20757064617465206c656164657227732072657761726420616d6f756e74292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3c7365745f7374617475735f7465787404012c7374617475735f746578743101013c4f7074696f6e3c5665633c75383e3e000e30b4536574732061206e657720737461747573207465787420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e002423232057656967687438604f20285329602077686572653a4d012d20605360206973207468652073697a65206f662074686520636f6e74656e7473206f6620607374617475735f746578746020696e206b696c6f6279746573207768656e206974206973206e6f74206e6f6e6500142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e447370656e645f66726f6d5f6275646765740c01286163636f756e745f6964000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000f28a85472616e73666572732073706563696669656420616d6f756e7420746f20616e79206163636f756e742e5c5265717569726573206c6561646572206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6466756e645f776f726b696e675f67726f75705f6275646765740c01246d656d6265725f696428012c4d656d62657249643c543e000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c6530011c5665633c75383e0010209846756e6420776f726b696e672067726f7570206275646765742062792061206d656d6265722e203c7765696768743e0024232320576569676874c4604f202831296020446f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c6c6561645f72656d61726b04010c6d736730011c5665633c75383e0011284c4c6561642072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e34776f726b65725f72656d61726b080124776f726b65725f696428012c576f726b657249643c543e00010c6d736730011c5665633c75383e00122854576f726b65722072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e8906085070616c6c65745f776f726b696e675f67726f75701043616c6c08045400044900014c2c6164645f6f70656e696e6710012c6465736372697074696f6e30011c5665633c75383e0001306f70656e696e675f747970657d03012c4f70656e696e67547970650001307374616b655f706f6c696379610301a45374616b65506f6c6963793c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e3e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e00002cc44164642061206a6f62206f70656e696e6720666f72206120726567756c617220776f726b65722f6c65616420726f6c652e490152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20616464206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e002423232057656967687438604f20284429602077686572653abc2d20604460206973207468652073697a65206f6620606465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e406170706c795f6f6e5f6f70656e696e67040104708103016c4170706c794f6e4f70656e696e67506172616d65746572733c543e000128684170706c79206f6e206120776f726b6572206f70656e696e672e002823203c7765696768743e002423232057656967687438604f20284429602077686572653ac42d20604460206973207468652073697a65206f662060702e6465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3066696c6c5f6f70656e696e670801286f70656e696e675f69642801244f70656e696e6749640001687375636365737366756c5f6170706c69636174696f6e5f6964736901015c42547265655365743c4170706c69636174696f6e49643e000228ac46696c6c206f70656e696e6720666f722074686520726567756c61722f6c65616420706f736974696f6e2e4d0152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2066696c6c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e2823203c7765696768743e002423232057656967687438604f20284129602077686572653acc2d2060416020697320746865206c656e677468206f6620607375636365737366756c5f6170706c69636174696f6e5f69647360142d2044423a242020202d204f2841292c23203c2f7765696768743e4c7570646174655f726f6c655f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e00014c6e65775f726f6c655f6163636f756e745f6964000130543a3a4163636f756e744964000324150155706461746520746865206173736f63696174656420726f6c65206163636f756e74206f66207468652061637469766520726567756c617220776f726b65722f6c6561642e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e286c656176655f726f6c65080124776f726b65725f696428012c576f726b657249643c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000424904c656176652074686520726f6c65206279207468652061637469766520776f726b65722e2823203c7765696768743e002423232057656967687438604f20285229602077686572653ab42d20605260206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e387465726d696e6174655f726f6c650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c7479450101504f7074696f6e3c42616c616e63654f663c543e3e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000528a05465726d696e617465207468652061637469766520776f726b657220627920746865206c6561642e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f207465726d696e61746520746865206c656164657220726f6c65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ad82d20605060206973207468652073697a65206070656e616c74792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c736c6173685f7374616b650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c747918013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e00062c7d01536c61736865732074686520726567756c617220776f726b6572207374616b652c2064656d616e64732061206c6561646572206f726967696e2e204e6f206c696d6974732c206e6f20616374696f6e73206f6e207a65726f207374616b652e3d01496620736c617368696e672062616c616e63652067726561746572207468616e20746865206578697374696e67207374616b65202d207374616b6520697320736c617368656420746f207a65726f2e19015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20736c61736820746865206c6561646572207374616b65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ae82d20605060206973207468652073697a65206f66206070656e616c6974792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3864656372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e00073021014465637265617365732074686520726567756c617220776f726b65722f6c656164207374616b6520616e642072657475726e73207468652072656d61696e64657220746f207468653901776f726b6572207374616b696e675f6163636f756e745f69642e2043616e2062652064656372656173656420746f207a65726f2c206e6f20616374696f6e73206f6e207a65726f207374616b652e944163636570747320746865207374616b6520616d6f756e7420746f2064656372656173652e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20646563726561736520746865206c6561646572207374616b65292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e38696e6372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e0008280501496e637265617365732074686520726567756c617220776f726b65722f6c656164207374616b652c2064656d616e6473206120776f726b6572206f726967696e2e6d014c6f636b7320746f6b656e732066726f6d2074686520776f726b6572207374616b696e675f6163636f756e745f696420657175616c20746f206e6577207374616b652e204e6f206c696d697473206f6e20746865207374616b652e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5077697468647261775f6170706c69636174696f6e0401386170706c69636174696f6e5f69642801344170706c69636174696f6e4964000924010157697468647261772074686520776f726b6572206170706c69636174696f6e2e2043616e20626520646f6e652062792074686520776f726b6572206f6e6c792e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3863616e63656c5f6f70656e696e670401286f70656e696e675f69642801244f70656e696e674964000a28dc43616e63656c20616e206f70656e696e6720666f722074686520726567756c617220776f726b65722f6c65616420706f736974696f6e2e550152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2063616e63656c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e287365745f6275646765740401286e65775f62756467657418013042616c616e63654f663c543e000b28a0536574732061206e65772062756467657420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e547570646174655f7265776172645f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e0001546e65775f7265776172645f6163636f756e745f6964000130543a3a4163636f756e744964000c2469015570646174652074686520726577617264206163636f756e74206173736f6369617465642077697468206120736574207265776172642072656c6174696f6e7368697020666f72207468652061637469766520776f726b65722e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e507570646174655f7265776172645f616d6f756e74080124776f726b65725f696428012c576f726b657249643c543e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e000d28c855706461746520746865207265776172642070657220626c6f636b20666f72207468652061637469766520776f726b65722e310152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20757064617465206c656164657227732072657761726420616d6f756e74292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3c7365745f7374617475735f7465787404012c7374617475735f746578743101013c4f7074696f6e3c5665633c75383e3e000e30b4536574732061206e657720737461747573207465787420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e002423232057656967687438604f20285329602077686572653a4d012d20605360206973207468652073697a65206f662074686520636f6e74656e7473206f6620607374617475735f746578746020696e206b696c6f6279746573207768656e206974206973206e6f74206e6f6e6500142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e447370656e645f66726f6d5f6275646765740c01286163636f756e745f6964000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000f28a85472616e73666572732073706563696669656420616d6f756e7420746f20616e79206163636f756e742e5c5265717569726573206c6561646572206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6466756e645f776f726b696e675f67726f75705f6275646765740c01246d656d6265725f696428012c4d656d62657249643c543e000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c6530011c5665633c75383e0010209846756e6420776f726b696e672067726f7570206275646765742062792061206d656d6265722e203c7765696768743e0024232320576569676874c4604f202831296020446f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c6c6561645f72656d61726b04010c6d736730011c5665633c75383e0011284c4c6561642072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e34776f726b65725f72656d61726b080124776f726b65725f696428012c576f726b657249643c543e00010c6d736730011c5665633c75383e00122854576f726b65722072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e8d06085070616c6c65745f776f726b696e675f67726f75701043616c6c08045400044900014c2c6164645f6f70656e696e6710012c6465736372697074696f6e30011c5665633c75383e0001306f70656e696e675f747970657d03012c4f70656e696e67547970650001307374616b655f706f6c696379610301a45374616b65506f6c6963793c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e3e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e00002cc44164642061206a6f62206f70656e696e6720666f72206120726567756c617220776f726b65722f6c65616420726f6c652e490152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20616464206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e002423232057656967687438604f20284429602077686572653abc2d20604460206973207468652073697a65206f6620606465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e406170706c795f6f6e5f6f70656e696e67040104708103016c4170706c794f6e4f70656e696e67506172616d65746572733c543e000128684170706c79206f6e206120776f726b6572206f70656e696e672e002823203c7765696768743e002423232057656967687438604f20284429602077686572653ac42d20604460206973207468652073697a65206f662060702e6465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3066696c6c5f6f70656e696e670801286f70656e696e675f69642801244f70656e696e6749640001687375636365737366756c5f6170706c69636174696f6e5f6964736901015c42547265655365743c4170706c69636174696f6e49643e000228ac46696c6c206f70656e696e6720666f722074686520726567756c61722f6c65616420706f736974696f6e2e4d0152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2066696c6c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e2823203c7765696768743e002423232057656967687438604f20284129602077686572653acc2d2060416020697320746865206c656e677468206f6620607375636365737366756c5f6170706c69636174696f6e5f69647360142d2044423a242020202d204f2841292c23203c2f7765696768743e4c7570646174655f726f6c655f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e00014c6e65775f726f6c655f6163636f756e745f6964000130543a3a4163636f756e744964000324150155706461746520746865206173736f63696174656420726f6c65206163636f756e74206f66207468652061637469766520726567756c617220776f726b65722f6c6561642e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e286c656176655f726f6c65080124776f726b65725f696428012c576f726b657249643c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000424904c656176652074686520726f6c65206279207468652061637469766520776f726b65722e2823203c7765696768743e002423232057656967687438604f20285229602077686572653ab42d20605260206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e387465726d696e6174655f726f6c650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c7479450101504f7074696f6e3c42616c616e63654f663c543e3e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000528a05465726d696e617465207468652061637469766520776f726b657220627920746865206c6561642e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f207465726d696e61746520746865206c656164657220726f6c65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ad82d20605060206973207468652073697a65206070656e616c74792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c736c6173685f7374616b650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c747918013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e00062c7d01536c61736865732074686520726567756c617220776f726b6572207374616b652c2064656d616e64732061206c6561646572206f726967696e2e204e6f206c696d6974732c206e6f20616374696f6e73206f6e207a65726f207374616b652e3d01496620736c617368696e672062616c616e63652067726561746572207468616e20746865206578697374696e67207374616b65202d207374616b6520697320736c617368656420746f207a65726f2e19015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20736c61736820746865206c6561646572207374616b65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ae82d20605060206973207468652073697a65206f66206070656e616c6974792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3864656372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e00073021014465637265617365732074686520726567756c617220776f726b65722f6c656164207374616b6520616e642072657475726e73207468652072656d61696e64657220746f207468653901776f726b6572207374616b696e675f6163636f756e745f69642e2043616e2062652064656372656173656420746f207a65726f2c206e6f20616374696f6e73206f6e207a65726f207374616b652e944163636570747320746865207374616b6520616d6f756e7420746f2064656372656173652e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20646563726561736520746865206c6561646572207374616b65292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e38696e6372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e0008280501496e637265617365732074686520726567756c617220776f726b65722f6c656164207374616b652c2064656d616e6473206120776f726b6572206f726967696e2e6d014c6f636b7320746f6b656e732066726f6d2074686520776f726b6572207374616b696e675f6163636f756e745f696420657175616c20746f206e6577207374616b652e204e6f206c696d697473206f6e20746865207374616b652e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5077697468647261775f6170706c69636174696f6e0401386170706c69636174696f6e5f69642801344170706c69636174696f6e4964000924010157697468647261772074686520776f726b6572206170706c69636174696f6e2e2043616e20626520646f6e652062792074686520776f726b6572206f6e6c792e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3863616e63656c5f6f70656e696e670401286f70656e696e675f69642801244f70656e696e674964000a28dc43616e63656c20616e206f70656e696e6720666f722074686520726567756c617220776f726b65722f6c65616420706f736974696f6e2e550152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2063616e63656c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e287365745f6275646765740401286e65775f62756467657418013042616c616e63654f663c543e000b28a0536574732061206e65772062756467657420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e547570646174655f7265776172645f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e0001546e65775f7265776172645f6163636f756e745f6964000130543a3a4163636f756e744964000c2469015570646174652074686520726577617264206163636f756e74206173736f6369617465642077697468206120736574207265776172642072656c6174696f6e7368697020666f72207468652061637469766520776f726b65722e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e507570646174655f7265776172645f616d6f756e74080124776f726b65725f696428012c576f726b657249643c543e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e000d28c855706461746520746865207265776172642070657220626c6f636b20666f72207468652061637469766520776f726b65722e310152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20757064617465206c656164657227732072657761726420616d6f756e74292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3c7365745f7374617475735f7465787404012c7374617475735f746578743101013c4f7074696f6e3c5665633c75383e3e000e30b4536574732061206e657720737461747573207465787420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e002423232057656967687438604f20285329602077686572653a4d012d20605360206973207468652073697a65206f662074686520636f6e74656e7473206f6620607374617475735f746578746020696e206b696c6f6279746573207768656e206974206973206e6f74206e6f6e6500142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e447370656e645f66726f6d5f6275646765740c01286163636f756e745f6964000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000f28a85472616e73666572732073706563696669656420616d6f756e7420746f20616e79206163636f756e742e5c5265717569726573206c6561646572206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6466756e645f776f726b696e675f67726f75705f6275646765740c01246d656d6265725f696428012c4d656d62657249643c543e000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c6530011c5665633c75383e0010209846756e6420776f726b696e672067726f7570206275646765742062792061206d656d6265722e203c7765696768743e0024232320576569676874c4604f202831296020446f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c6c6561645f72656d61726b04010c6d736730011c5665633c75383e0011284c4c6561642072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e34776f726b65725f72656d61726b080124776f726b65725f696428012c576f726b657249643c543e00010c6d736730011c5665633c75383e00122854576f726b65722072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e910608586a6f7973747265616d5f6e6f64655f72756e74696d65304f726967696e43616c6c65720001081873797374656d0400950601746672616d655f73797374656d3a3a4f726967696e3c52756e74696d653e00000010566f69640400990601110173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a566f69640001000095060c346672616d655f737570706f7274206469737061746368245261774f726967696e04244163636f756e7449640100010c10526f6f74000000185369676e656404000001244163636f756e744964000100104e6f6e65000200009906081c73705f636f726510566f6964000100009d060c3870616c6c65745f7574696c6974791870616c6c6574144572726f7204045400010430546f6f4d616e7943616c6c730000045c546f6f206d616e792063616c6c7320626174636865642e04b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a090909a1060c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401a506045300000400a90601185665633c543e0000a506000004084d042800a906000002a50600ad060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540104045300000400b10601185665633c543e0000b1060000020400b50604184f7074696f6e04045401b9060108104e6f6e6500000010536f6d650400b9060000010000b9060c4473705f636f6e73656e7375735f626162651c646967657374732450726544696765737400010c1c5072696d6172790400bd0601405072696d617279507265446967657374000100385365636f6e64617279506c61696e0400c106015c5365636f6e64617279506c61696e507265446967657374000200305365636f6e646172795652460400c50601545365636f6e6461727956524650726544696765737400030000bd060c4473705f636f6e73656e7375735f626162651c64696765737473405072696d617279507265446967657374000010013c617574686f726974795f696e64657810015473757065723a3a417574686f72697479496e646578000110736c6f7451040110536c6f740001287672665f6f75747075740401245652464f75747075740001247672665f70726f6f66a105012056524650726f6f660000c1060c4473705f636f6e73656e7375735f626162651c646967657374735c5365636f6e64617279506c61696e507265446967657374000008013c617574686f726974795f696e64657810015473757065723a3a417574686f72697479496e646578000110736c6f7451040110536c6f740000c5060c4473705f636f6e73656e7375735f626162651c64696765737473545365636f6e64617279565246507265446967657374000010013c617574686f726974795f696e64657810015473757065723a3a417574686f72697479496e646578000110736c6f7451040110536c6f740001287672665f6f75747075740401245652464f75747075740001247672665f70726f6f66a105012056524650726f6f660000c90604184f7074696f6e04045401040108104e6f6e6500000010536f6d650400040000010000cd06084473705f636f6e73656e7375735f62616265584261626545706f6368436f6e66696775726174696f6e00000801046379030128287536342c2075363429000134616c6c6f7765645f736c6f74735d040130416c6c6f776564536c6f74730000d1060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401bd02045300000400b90201185665633c543e0000d5060c2c70616c6c65745f626162651870616c6c6574144572726f7204045400011060496e76616c696445717569766f636174696f6e50726f6f660000043101416e2065717569766f636174696f6e2070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e60496e76616c69644b65794f776e65727368697050726f6f66000104310141206b6579206f776e6572736869702070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e584475706c69636174654f6666656e63655265706f727400020415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e50496e76616c6964436f6e66696775726174696f6e0003048c5375626d697474656420636f6e66696775726174696f6e20697320696e76616c69642e04b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a090909d9060c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401dd06045300000400e50601185665633c543e0000dd06083c70616c6c65745f62616c616e6365732c42616c616e63654c6f636b041c42616c616e63650118000c01086964250401384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e73e106011c526561736f6e730000e106083c70616c6c65745f62616c616e6365731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c00020000e506000002dd0600e9060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401ed06045300000400f10601185665633c543e0000ed06083c70616c6c65745f62616c616e6365732c52657365727665446174610844526573657276654964656e7469666965720125041c42616c616e6365011800080108696425040144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e63650000f106000002ed0600f5060c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001203856657374696e6742616c616e63650000049856657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c7565544c69717569646974795265737472696374696f6e73000104c44163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c4c496e73756666696369656e7442616c616e63650002047842616c616e636520746f6f206c6f7720746f2073656e642076616c75652e484578697374656e7469616c4465706f736974000304e856616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f736974244b656570416c6976650004048c5472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e745c4578697374696e6756657374696e675363686564756c65000504c8412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742c446561644163636f756e740006048842656e6566696369617279206163636f756e74206d757374207072652d65786973743c546f6f4d616e795265736572766573000704ac4e756d626572206f66206e616d656420726573657276657320657863656564204d6178526573657276657304b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a090909f9060c3473705f61726974686d657469632c66697865645f706f696e742446697865645531323800000400180110753132380000fd06086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e74000000085632000100000107089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f7068617365345265616479536f6c7574696f6e04045400000c0120737570706f727473050701b0426f756e646564537570706f7274733c543a3a4163636f756e7449642c20543a3a4d617857696e6e6572733e00011473636f72659c0134456c656374696f6e53636f726500011c636f6d7075746590013c456c656374696f6e436f6d70757465000005070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014905045300000400450501185665633c543e00000907089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f706861736534526f756e64536e617073686f740404540000080118766f746572730d07013c5665633c566f7465724f663c543e3e00011c746172676574735d0501445665633c543a3a4163636f756e7449643e00000d0700000211070011070000040c002815070015070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401000453000004005d0501185665633c543e000019070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454011d07045300000400210701185665633c543e00001d070000040c9c10100021070000021d070025070c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f7068617365187369676e6564405369676e65645375626d697373696f6e0c244163636f756e74496401001c42616c616e6365011820536f6c7574696f6e0171040010010c77686f0001244163636f756e74496400011c6465706f73697418011c42616c616e63650001307261775f736f6c7574696f6e6d040154526177536f6c7574696f6e3c536f6c7574696f6e3e00012063616c6c5f66656518011c42616c616e6365000029070c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173651870616c6c6574144572726f720404540001386850726544697370617463684561726c795375626d697373696f6e000004645375626d697373696f6e2077617320746f6f206561726c792e6c507265446973706174636857726f6e6757696e6e6572436f756e740001048857726f6e67206e756d626572206f662077696e6e6572732070726573656e7465642e6450726544697370617463685765616b5375626d697373696f6e000204905375626d697373696f6e2077617320746f6f207765616b2c2073636f72652d776973652e3c5369676e6564517565756546756c6c0003044901546865207175657565207761732066756c6c2c20616e642074686520736f6c7574696f6e20776173206e6f7420626574746572207468616e20616e79206f6620746865206578697374696e67206f6e65732e585369676e656443616e6e6f745061794465706f73697400040494546865206f726967696e206661696c656420746f2070617920746865206465706f7369742e505369676e6564496e76616c69645769746e657373000504a05769746e657373206461746120746f20646973706174636861626c6520697320696e76616c69642e4c5369676e6564546f6f4d756368576569676874000604b8546865207369676e6564207375626d697373696f6e20636f6e73756d657320746f6f206d756368207765696768743c4f637743616c6c57726f6e67457261000704984f4357207375626d697474656420736f6c7574696f6e20666f722077726f6e6720726f756e645c4d697373696e67536e617073686f744d65746164617461000804a8536e617073686f74206d657461646174612073686f756c6420657869737420627574206469646e27742e58496e76616c69645375626d697373696f6e496e646578000904d06053656c663a3a696e736572745f7375626d697373696f6e602072657475726e656420616e20696e76616c696420696e6465782e3843616c6c4e6f74416c6c6f776564000a04985468652063616c6c206973206e6f7420616c6c6f776564206174207468697320706f696e742e3846616c6c6261636b4661696c6564000b044c5468652066616c6c6261636b206661696c65642c426f756e644e6f744d6574000c0448536f6d6520626f756e64206e6f74206d657438546f6f4d616e7957696e6e657273000d049c5375626d697474656420736f6c7574696f6e2068617320746f6f206d616e792077696e6e657273040d014572726f72206f66207468652070616c6c657420746861742063616e2062652072657475726e656420696e20726573706f6e736520746f20646973706174636865732e2d07083870616c6c65745f7374616b696e67345374616b696e674c656467657204045400001401147374617368000130543a3a4163636f756e744964000114746f74616cec013042616c616e63654f663c543e000118616374697665ec013042616c616e63654f663c543e000124756e6c6f636b696e67310701f0426f756e6465645665633c556e6c6f636b4368756e6b3c42616c616e63654f663c543e3e2c20543a3a4d6178556e6c6f636b696e674368756e6b733e00013c636c61696d65645f726577617264733d070194426f756e6465645665633c457261496e6465782c20543a3a486973746f727944657074683e000031070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454013507045300000400390701185665633c543e00003507083870616c6c65745f7374616b696e672c556e6c6f636b4368756e6b041c42616c616e636501180008011476616c7565ec011c42616c616e636500010c657261e5030120457261496e646578000039070000023507003d070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540110045300000400650501185665633c543e00004107083870616c6c65745f7374616b696e672c4e6f6d696e6174696f6e7304045400000c011c74617267657473150701ac426f756e6465645665633c543a3a4163636f756e7449642c20543a3a4d61784e6f6d696e6174696f6e733e0001307375626d69747465645f696e100120457261496e64657800012873757070726573736564980110626f6f6c00004507083870616c6c65745f7374616b696e6734416374697665457261496e666f0000080114696e646578100120457261496e64657800011473746172743501012c4f7074696f6e3c7536343e00004907000004081000004d07083870616c6c65745f7374616b696e673c457261526577617264506f696e747304244163636f756e744964010000080114746f74616c10012c526577617264506f696e74000128696e646976696475616c5107018042547265654d61703c4163636f756e7449642c20526577617264506f696e743e00005107042042547265654d617008044b010004560110000400550700000055070000025907005907000004080010005d070000026107006107083870616c6c65745f7374616b696e6738556e6170706c696564536c61736808244163636f756e74496401001c42616c616e636501180014012476616c696461746f720001244163636f756e74496400010c6f776e18011c42616c616e63650001186f7468657273510501645665633c284163636f756e7449642c2042616c616e6365293e0001247265706f72746572735d0501385665633c4163636f756e7449643e0001187061796f757418011c42616c616e63650000650700000408ac180069070c3870616c6c65745f7374616b696e6720736c617368696e6734536c617368696e675370616e7300001001287370616e5f696e6465781001245370616e496e6465780001286c6173745f7374617274100120457261496e6465780001486c6173745f6e6f6e7a65726f5f736c617368100120457261496e6465780001147072696f72650501345665633c457261496e6465783e00006d070c3870616c6c65745f7374616b696e6720736c617368696e67285370616e5265636f7264041c42616c616e636501180008011c736c617368656418011c42616c616e6365000120706169645f6f757418011c42616c616e6365000071070000027507007507000004081098007907103870616c6c65745f7374616b696e671870616c6c65741870616c6c6574144572726f72040454000168344e6f74436f6e74726f6c6c6572000004644e6f74206120636f6e74726f6c6c6572206163636f756e742e204e6f745374617368000104504e6f742061207374617368206163636f756e742e34416c7265616479426f6e64656400020460537461736820697320616c726561647920626f6e6465642e34416c726561647950616972656400030474436f6e74726f6c6c657220697320616c7265616479207061697265642e30456d7074795461726765747300040460546172676574732063616e6e6f7420626520656d7074792e384475706c6963617465496e646578000504404475706c696361746520696e6465782e44496e76616c6964536c617368496e64657800060484536c617368207265636f726420696e646578206f7574206f6620626f756e64732e40496e73756666696369656e74426f6e6400070c590143616e6e6f74206861766520612076616c696461746f72206f72206e6f6d696e61746f7220726f6c652c20776974682076616c7565206c657373207468616e20746865206d696e696d756d20646566696e65642062793d01676f7665726e616e6365202873656520604d696e56616c696461746f72426f6e646020616e6420604d696e4e6f6d696e61746f72426f6e6460292e20496620756e626f6e64696e67206973207468651501696e74656e74696f6e2c20606368696c6c6020666972737420746f2072656d6f7665206f6e65277320726f6c652061732076616c696461746f722f6e6f6d696e61746f722e304e6f4d6f72654368756e6b730008049043616e206e6f74207363686564756c65206d6f726520756e6c6f636b206368756e6b732e344e6f556e6c6f636b4368756e6b000904a043616e206e6f74207265626f6e6420776974686f757420756e6c6f636b696e67206368756e6b732e3046756e646564546172676574000a04c8417474656d7074696e6720746f2074617267657420612073746173682074686174207374696c6c206861732066756e64732e48496e76616c6964457261546f526577617264000b0458496e76616c69642065726120746f207265776172642e68496e76616c69644e756d6265724f664e6f6d696e6174696f6e73000c0478496e76616c6964206e756d626572206f66206e6f6d696e6174696f6e732e484e6f74536f72746564416e64556e69717565000d04804974656d7320617265206e6f7420736f7274656420616e6420756e697175652e38416c7265616479436c61696d6564000e0409015265776172647320666f72207468697320657261206861766520616c7265616479206265656e20636c61696d656420666f7220746869732076616c696461746f722e54496e636f7272656374486973746f72794465707468000f04c0496e636f72726563742070726576696f757320686973746f727920646570746820696e7075742070726f76696465642e58496e636f7272656374536c617368696e675370616e73001004b0496e636f7272656374206e756d626572206f6620736c617368696e67207370616e732070726f76696465642e2042616453746174650011043901496e7465726e616c20737461746520686173206265636f6d6520736f6d65686f7720636f7272757074656420616e6420746865206f7065726174696f6e2063616e6e6f7420636f6e74696e75652e38546f6f4d616e795461726765747300120494546f6f206d616e79206e6f6d696e6174696f6e207461726765747320737570706c6965642e244261645461726765740013043d0141206e6f6d696e6174696f6e207461726765742077617320737570706c69656420746861742077617320626c6f636b6564206f72206f7468657277697365206e6f7420612076616c696461746f722e4043616e6e6f744368696c6c4f74686572001404550154686520757365722068617320656e6f75676820626f6e6420616e6420746875732063616e6e6f74206265206368696c6c656420666f72636566756c6c7920627920616e2065787465726e616c20706572736f6e2e44546f6f4d616e794e6f6d696e61746f72730015084d0154686572652061726520746f6f206d616e79206e6f6d696e61746f727320696e207468652073797374656d2e20476f7665726e616e6365206e6565647320746f2061646a75737420746865207374616b696e67b473657474696e677320746f206b656570207468696e6773207361666520666f72207468652072756e74696d652e44546f6f4d616e7956616c696461746f7273001608550154686572652061726520746f6f206d616e792076616c696461746f722063616e6469646174657320696e207468652073797374656d2e20476f7665726e616e6365206e6565647320746f2061646a75737420746865d47374616b696e672073657474696e677320746f206b656570207468696e6773207361666520666f72207468652072756e74696d652e40436f6d6d697373696f6e546f6f4c6f77001704e0436f6d6d697373696f6e20697320746f6f206c6f772e204d757374206265206174206c6561737420604d696e436f6d6d697373696f6e602e2c426f756e644e6f744d657400180458536f6d6520626f756e64206973206e6f74206d65742e44426f6e64696e6752657374726963746564001904e045787465726e616c207265737472696374696f6e2070726576656e747320626f6e64696e67207769746820676976656e206163636f756e7404b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a0909097d07000002810700810700000408007d05008507000004088907300089070c1c73705f636f72651863727970746f244b65795479706549640000040040011c5b75383b20345d00008d070c3870616c6c65745f73657373696f6e1870616c6c6574144572726f7204045400011430496e76616c696450726f6f6600000460496e76616c6964206f776e6572736869702070726f6f662e5c4e6f4173736f63696174656456616c696461746f7249640001049c4e6f206173736f6369617465642076616c696461746f7220494420666f72206163636f756e742e344475706c6963617465644b65790002046452656769737465726564206475706c6963617465206b65792e184e6f4b657973000304a44e6f206b65797320617265206173736f63696174656420776974682074686973206163636f756e742e244e6f4163636f756e7400040419014b65792073657474696e67206163636f756e74206973206e6f74206c6976652c20736f206974277320696d706f737369626c6520746f206173736f6369617465206b6579732e04744572726f7220666f72207468652073657373696f6e2070616c6c65742e9107000004082c10009507083870616c6c65745f6772616e6470612c53746f726564537461746504044e01100110104c6976650000003050656e64696e6750617573650801307363686564756c65645f61741001044e00011464656c61791001044e000100185061757365640002003450656e64696e67526573756d650801307363686564756c65645f61741001044e00011464656c61791001044e000300009907083870616c6c65745f6772616e6470614c53746f72656450656e64696e674368616e676508044e0110144c696d697400001001307363686564756c65645f61741001044e00011464656c61791001044e0001406e6578745f617574686f7269746965739d07016c426f756e646564417574686f726974794c6973743c4c696d69743e000118666f72636564010201244f7074696f6e3c4e3e00009d070c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401c8045300000400c401185665633c543e0000a1070c3870616c6c65745f6772616e6470611870616c6c6574144572726f7204045400011c2c50617573654661696c65640000080501417474656d707420746f207369676e616c204752414e445041207061757365207768656e2074686520617574686f72697479207365742069736e2774206c697665a42865697468657220706175736564206f7220616c72656164792070656e64696e67207061757365292e30526573756d654661696c65640001081101417474656d707420746f207369676e616c204752414e44504120726573756d65207768656e2074686520617574686f72697479207365742069736e277420706175736564a028656974686572206c697665206f7220616c72656164792070656e64696e6720726573756d65292e344368616e676550656e64696e67000204e8417474656d707420746f207369676e616c204752414e445041206368616e67652077697468206f6e6520616c72656164792070656e64696e672e1c546f6f536f6f6e000304bc43616e6e6f74207369676e616c20666f72636564206368616e676520736f20736f6f6e206166746572206c6173742e60496e76616c69644b65794f776e65727368697050726f6f66000404310141206b6579206f776e6572736869702070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e60496e76616c696445717569766f636174696f6e50726f6f660005043101416e2065717569766f636174696f6e2070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e584475706c69636174654f6666656e63655265706f727400060415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e04b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a090909a5070c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e646564566563080454018105045300000400a90701185665633c543e0000a907000002810500ad070c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401d8045300000400b10701185665633c543e0000b107000002d800b50710346672616d655f737570706f727418747261697473106d69736334577261707065724f706171756504045401b907000800e503000000b9070104540000b907084070616c6c65745f696d5f6f6e6c696e6564426f756e6465644f70617175654e6574776f726b53746174650c4c506565724964456e636f64696e674c696d697400584d756c746941646472456e636f64696e674c696d697400384164647265737365734c696d6974000008011c706565725f6964bd07019c5765616b426f756e6465645665633c75382c20506565724964456e636f64696e674c696d69743e00014865787465726e616c5f616464726573736573c107012d015765616b426f756e6465645665633c5765616b426f756e6465645665633c75382c204d756c746941646472456e636f64696e674c696d69743e2c204164647265737365734c696d69740a3e0000bd070c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401080453000004003001185665633c543e0000c1070c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401bd07045300000400c50701185665633c543e0000c507000002bd0700c9070c4070616c6c65745f696d5f6f6e6c696e651870616c6c6574144572726f7204045400010828496e76616c69644b6579000004604e6f6e206578697374656e74207075626c6963206b65792e4c4475706c696361746564486561727462656174000104544475706c696361746564206865617274626561742e04b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a090909cd070c2873705f7374616b696e671c6f6666656e6365384f6666656e636544657461696c7308205265706f727465720100204f6666656e64657201e4000801206f6666656e646572e401204f6666656e6465720001247265706f72746572735d0501345665633c5265706f727465723e0000d10700000408fc3000d5070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454012c045300000400d50301185665633c543e0000d9070c4070616c6c65745f626167735f6c697374106c697374104e6f646508045400044900001401086964000130543a3a4163636f756e744964000110707265769401504f7074696f6e3c543a3a4163636f756e7449643e0001106e6578749401504f7074696f6e3c543a3a4163636f756e7449643e0001246261675f7570706572280120543a3a53636f726500011473636f7265280120543a3a53636f72650000dd070c4070616c6c65745f626167735f6c697374106c6973740c4261670804540004490000080110686561649401504f7074696f6e3c543a3a4163636f756e7449643e0001107461696c9401504f7074696f6e3c543a3a4163636f756e7449643e0000e1070c4070616c6c65745f626167735f6c6973741870616c6c6574144572726f72080454000449000104104c6973740400e50701244c6973744572726f72000004b441206572726f7220696e20746865206c69737420696e7465726661636520696d706c656d656e746174696f6e2e04b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a090909e5070c4070616c6c65745f626167735f6c697374106c697374244c6973744572726f72000110244475706c6963617465000000284e6f7448656176696572000100304e6f74496e53616d65426167000200304e6f64654e6f74466f756e6400030000e9070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401dd05045300000400ed0701185665633c543e0000ed07000002dd0500f107083870616c6c65745f76657374696e672052656c656173657300010808563000000008563100010000f5070c3870616c6c65745f76657374696e671870616c6c6574144572726f72040454000114284e6f7456657374696e6700000484546865206163636f756e7420676976656e206973206e6f742076657374696e672e5441744d617856657374696e675363686564756c65730001082501546865206163636f756e7420616c72656164792068617320604d617856657374696e675363686564756c65736020636f756e74206f66207363686564756c657320616e642074687573510163616e6e6f742061646420616e6f74686572206f6e652e20436f6e7369646572206d657267696e67206578697374696e67207363686564756c657320696e206f7264657220746f2061646420616e6f746865722e24416d6f756e744c6f770002040501416d6f756e74206265696e67207472616e7366657272656420697320746f6f206c6f7720746f2063726561746520612076657374696e67207363686564756c652e605363686564756c65496e6465784f75744f66426f756e6473000304d0416e20696e64657820776173206f7574206f6620626f756e6473206f66207468652076657374696e67207363686564756c65732e54496e76616c69645363686564756c65506172616d730004040d014661696c656420746f206372656174652061206e6577207363686564756c65206265636175736520736f6d6520706172616d657465722077617320696e76616c69642e04744572726f7220666f72207468652076657374696e672070616c6c65742ef90700000408000400fd07083c70616c6c65745f6d756c7469736967204d756c7469736967102c426c6f636b4e756d62657201101c42616c616e63650118244163636f756e7449640100304d6178417070726f76616c7300001001107768656e0d01015854696d65706f696e743c426c6f636b4e756d6265723e00011c6465706f73697418011c42616c616e63650001246465706f7369746f720001244163636f756e744964000124617070726f76616c730108018c426f756e6465645665633c4163636f756e7449642c204d6178417070726f76616c733e000001080c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401000453000004005d0501185665633c543e000005080c3c70616c6c65745f6d756c74697369671870616c6c6574144572726f72040454000138404d696e696d756d5468726573686f6c640000047c5468726573686f6c64206d7573742062652032206f7220677265617465722e3c416c7265616479417070726f766564000104ac43616c6c20697320616c726561647920617070726f7665642062792074686973207369676e61746f72792e444e6f417070726f76616c734e65656465640002049c43616c6c20646f65736e2774206e65656420616e7920286d6f72652920617070726f76616c732e44546f6f4665775369676e61746f72696573000304a854686572652061726520746f6f20666577207369676e61746f7269657320696e20746865206c6973742e48546f6f4d616e795369676e61746f72696573000404ac54686572652061726520746f6f206d616e79207369676e61746f7269657320696e20746865206c6973742e545369676e61746f726965734f75744f664f726465720005040d01546865207369676e61746f7269657320776572652070726f7669646564206f7574206f66206f726465723b20746865792073686f756c64206265206f7264657265642e4c53656e646572496e5369676e61746f726965730006040d015468652073656e6465722077617320636f6e7461696e656420696e20746865206f74686572207369676e61746f726965733b2069742073686f756c646e27742062652e204e6f74466f756e64000704dc4d756c7469736967206f7065726174696f6e206e6f7420666f756e64207768656e20617474656d7074696e6720746f2063616e63656c2e204e6f744f776e65720008042d014f6e6c7920746865206163636f756e742074686174206f726967696e616c6c79206372656174656420746865206d756c74697369672069732061626c6520746f2063616e63656c2069742e2c4e6f54696d65706f696e740009041d014e6f2074696d65706f696e742077617320676976656e2c2079657420746865206d756c7469736967206f7065726174696f6e20697320616c726561647920756e6465727761792e3857726f6e6754696d65706f696e74000a042d014120646966666572656e742074696d65706f696e742077617320676976656e20746f20746865206d756c7469736967206f7065726174696f6e207468617420697320756e6465727761792e4c556e657870656374656454696d65706f696e74000b04f4412074696d65706f696e742077617320676976656e2c20796574206e6f206d756c7469736967206f7065726174696f6e20697320756e6465727761792e3c4d6178576569676874546f6f4c6f77000c04d0546865206d6178696d756d2077656967687420696e666f726d6174696f6e2070726f76696465642077617320746f6f206c6f772e34416c726561647953746f726564000d04a0546865206461746120746f2062652073746f72656420697320616c72656164792073746f7265642e04b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a0909090908083870616c6c65745f636f756e63696c48436f756e63696c5374616765557064617465042c426c6f636b4e756d62657201100008011473746167650d080164436f756e63696c53746167653c426c6f636b4e756d6265723e0001286368616e6765645f617410012c426c6f636b4e756d62657200000d08083870616c6c65745f636f756e63696c30436f756e63696c5374616765042c426c6f636b4e756d6265720110010c28416e6e6f756e63696e6704001108018c436f756e63696c5374616765416e6e6f756e63696e673c426c6f636b4e756d6265723e00000020456c656374696f6e040015080150436f756e63696c5374616765456c656374696f6e0001001049646c65040019080174436f756e63696c537461676549646c653c426c6f636b4e756d6265723e000200001108083870616c6c65745f636f756e63696c58436f756e63696c5374616765416e6e6f756e63696e67042c426c6f636b4e756d62657201100008014063616e646964617465735f636f756e7410010c75333200011c656e64735f617410012c426c6f636b4e756d62657200001508083870616c6c65745f636f756e63696c50436f756e63696c5374616765456c656374696f6e000004014063616e646964617465735f636f756e7410010c75333200001908083870616c6c65745f636f756e63696c40436f756e63696c537461676549646c65042c426c6f636b4e756d62657201100004011c656e64735f617410012c426c6f636b4e756d62657200001d080c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e646564566563080454012108045300000400250801185665633c543e00002108083870616c6c65745f636f756e63696c34436f756e63696c4d656d62657210244163636f756e7449640100204d656d626572496401281c42616c616e636501182c426c6f636b4e756d6265720110001801487374616b696e675f6163636f756e745f69640001244163636f756e7449640001447265776172645f6163636f756e745f69640001244163636f756e7449640001346d656d626572736869705f69642801204d656d62657249640001147374616b6518011c42616c616e63650001486c6173745f7061796d656e745f626c6f636b10012c426c6f636b4e756d626572000134756e706169645f72657761726418011c42616c616e6365000025080000022108002908083870616c6c65745f636f756e63696c2443616e64696461746510244163636f756e74496401001c42616c616e636501181048617368012c24566f7465506f7765720118001801487374616b696e675f6163636f756e745f69640001244163636f756e7449640001447265776172645f6163636f756e745f69640001244163636f756e7449640001206379636c655f696428010c7536340001147374616b6518011c42616c616e6365000128766f74655f706f776572180124566f7465506f7765720001246e6f74655f68617368790201304f7074696f6e3c486173683e00002d08083870616c6c65745f636f756e63696c144572726f720404540001603c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f7729244261644f726967696e000104484f726967696e20697320696e76616c69642e4043616e7443616e6469646174654e6f7700020439015573657220747269656420746f20616e6e6f756e63652063616e646964616379206f757473696465206f66207468652063616e64696461637920616e6e6f756e63656d656e7420706572696f642e4c43616e7452656c656173655374616b654e6f77000304f05573657220747269656420746f2072656c65617365207374616b65206f757473696465206f66207468652072657665616c696e6720706572696f642e5043616e6469646163795374616b65546f6f4c6f77000404b043616e64696461746520686176656e27742070726f76696465642073756666696369656e74207374616b652e4843616e7443616e6469646174655477696365000504f45573657220747269656420746f20616e6e6f756e63652063616e64696461637920747769636520696e207468652073616d6520656c656374696f6e732e40436f6e666c696374696e675374616b650006085d015573657220747269656420746f20616e6e6f756e63652063616e646964616379207769746820616e206163636f756e742074686174206861732074686520636f6e666c696374696e672074797065206f66207374616b653901776974682063616e646964616379207374616b6520616e6420686173206e6f7420656e6f7567682062616c616e636520666f72207374616b696e6720666f7220626f746820707572706f7365732e405374616b655374696c6c4e6565646564000704dc436f756e63696c206d656d62657220616e642063616e646964617465732063616e2774207769746864726177207374616b65207965742e1c4e6f5374616b65000804c45573657220747269656420746f2072656c65617365207374616b65207768656e206e6f207374616b65206578697374732e74496e73756666696369656e7442616c616e6365466f725374616b696e67000904ac496e73756666696369656e742062616c616e636520666f722063616e646964616379207374616b696e672e4c43616e74566f7465466f72596f757273656c66000a048443616e6469646174652063616e277420766f746520666f722068696d73656c662e5c4d656d62657249644e6f744d617463684163636f756e74000b044c496e76616c6964206d656d626572736869702e68496e76616c69644163636f756e74546f5374616b655265757365000c08510154686520636f6d62696e6174696f6e206f66206d656d6265727368697020696420616e64206163636f756e7420696420697320696e76616c696420666f7220756e7374616b696e6720616e206578697374696e674063616e646964616379207374616b652e444e6f7443616e6469646174696e674e6f77000d04d85573657220747269656420746f2077697468647261772063616e646964616379207768656e206e6f742063616e6469646174696e672e6043616e74576974686472617743616e6469646163794e6f77000e04190143616e27742077697468647261772063616e646964616379206f757473696465206f66207468652063616e64696461637920616e6e6f756e63656d656e7420706572696f642e304e6f74436f756e63696c6f72000f0478546865206d656d626572206973206e6f74206120636f756e63696c6f722e88496e73756666696369656e7446756e6473466f7246756e64696e6752657175657374001004f0496e737566666963656e742066756e647320696e20636f756e63696c20666f7220657865637574696e67202746756e64696e67205265717565737427585a65726f42616c616e636546756e64526571756573740011045c46756e642072657175657374206e6f2062616c616e636568526570656174656446756e64526571756573744163636f756e74001204fc5468652073616d65206163636f756e7420697320726563696576696e672066756e64732066726f6d207468652073616d65207265717565737420747769636550456d70747946756e64696e675265717565737473001304ac46756e64696e6720726571756573747320776974686f757420726563696576696e67206163636f756e747370496e73756666696369656e74546f6b656e73466f7246756e64696e67001404f8496e73756666696369656e7420746f6b656e7320666f722066756e64696e6720286f6e206d656d62657220636f6e74726f6c6c6572206163636f756e7429445a65726f546f6b656e7346756e64696e670015047c547279696e6720746f2066756e642077697468207a65726f20746f6b656e735443616e646964617465446f65734e6f7445786973740016045843616e646964617465206964206e6f7420666f756e6478496e73756666696369656e7442616c616e6365466f725472616e73666572001704b443616e6e6f742077697468647261773a20696e73756666696369656e74206275646765742062616c616e63652e0438436f756e63696c206572726f72733108084470616c6c65745f7265666572656e64756d3c5265666572656e64756d5374616765082c426c6f636b4e756d62657201104c496e7465726d65646961746557696e6e657273013508010c20496e61637469766500000018566f74696e670400390801885265666572656e64756d5374616765566f74696e673c426c6f636b4e756d6265723e0001002452657665616c696e6704003d0801e85265666572656e64756d537461676552657665616c696e673c426c6f636b4e756d6265722c20496e7465726d65646961746557696e6e6572733e0002000035080c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e646564566563080454012501045300000400210101185665633c543e00003908084470616c6c65745f7265666572656e64756d545265666572656e64756d5374616765566f74696e67042c426c6f636b4e756d62657201100010011c7374617274656410012c426c6f636b4e756d62657200015077696e6e696e675f7461726765745f636f756e7410010c75333200014063757272656e745f6379636c655f696428010c75363400011c656e64735f617410012c426c6f636b4e756d62657200003d08084470616c6c65745f7265666572656e64756d605265666572656e64756d537461676552657665616c696e67082c426c6f636b4e756d62657201104c496e7465726d65646961746557696e6e6572730135080014011c7374617274656410012c426c6f636b4e756d62657200015077696e6e696e675f7461726765745f636f756e7410010c753332000150696e7465726d6564696174655f77696e6e6572733508014c496e7465726d65646961746557696e6e65727300014063757272656e745f6379636c655f696428010c75363400011c656e64735f617410012c426c6f636b4e756d62657200004108084470616c6c65745f7265666572656e64756d2043617374566f74650c1048617368012c2043757272656e63790118204d656d6265724964012800100128636f6d6d69746d656e742c0110486173680001206379636c655f696428010c7536340001147374616b6518012043757272656e6379000120766f74655f666f72350101404f7074696f6e3c4d656d62657249643e00004508084470616c6c65745f7265666572656e64756d144572726f72080454000449000138244261644f726967696e000004444f726967696e20697320696e76616c6964505265666572656e64756d4e6f7452756e6e696e67000104a85265666572656e64756d206973206e6f742072756e6e696e67207768656e20657870656374656420746f5852657665616c696e674e6f74496e50726f6772657373000204b052657665616c696e67207374616765206973206e6f7420696e2070726f6772657373207269676874206e6f775c436f6e666c6963745374616b65734f6e4163636f756e74000304b05374616b696e67206163636f756e7420636f6e7461696e7320636f6e666c696374696e67207374616b65732e68496e73756666696369656e7442616c616e6365546f5374616b650004049c4163636f756e7420496e73756666696369656e7420467265652042616c616e636520286e6f772944496e73756666696369656e745374616b65000504a8496e73756666696369656e74207374616b652070726f766964656420746f2063617374206120766f746534496e76616c696452657665616c000604190153616c7420616e64207265666572656e64756d206f7074696f6e2070726f766964656420646f6e277420636f72726573706f6e6420746f2074686520636f6d6d69746d656e742c496e76616c6964566f7465000704a4566f746520666f72206e6f74206578697374696e67206f7074696f6e207761732072657665616c65643c566f74654e6f744578697374696e670008049c547279696e6720746f2072657665616c20766f7465207468617420776173206e6f74206361737454416c7265616479566f746564546869734379636c65000904b8547279696e6720746f20766f7465206d756c7469706c652074696d6520696e207468652073616d65206379636c6560556e7374616b696e67566f7465496e53616d654379636c65000a04a0496e76616c69642074696d6520746f2072656c6561736520746865206c6f636b6564207374616b652c53616c74546f6f4c6f6e67000b044053616c7420697320746f6f206c6f6e6748556e7374616b696e67466f7262696464656e000c04f0556e7374616b696e6720686173206265656e20666f7262696464656e20666f7220746865207573657220286174206c6561737420666f72206e6f7729784163636f756e74416c72656164794f707465644f75744f66566f74696e67000d041d014120766f74652063616e6e6f7420626520636173742066726f6d20616e206163636f756e74207468617420616c7265616479206f70746564206f7574206f6620766f74696e672e04445265666572656e64756d206572726f72734908084470616c6c65745f6d656d62657273686970404d656d626572736869704f626a65637408244163636f756e74496401001048617368012c0014012c68616e646c655f686173682c011048617368000130726f6f745f6163636f756e740001244163636f756e744964000148636f6e74726f6c6c65725f6163636f756e740001244163636f756e7449640001207665726966696564980110626f6f6c00011c696e766974657310010c75333200004d08084470616c6c65745f6d656d626572736869706c5374616b696e674163636f756e744d656d62657242696e64696e6704204d656d62657249640128000801246d656d6265725f69642801204d656d6265724964000124636f6e6669726d6564980110626f6f6c00005108084470616c6c65745f6d656d62657273686970144572726f720404540001587c4e6f74456e6f75676842616c616e6365546f4275794d656d62657273686970000004944e6f7420656e6f7567682062616c616e636520746f20627579206d656d626572736869702e64436f6e74726f6c6c65724163636f756e74526571756972656400010470436f6e74726f6c6c6572206163636f756e742072657175697265642e4c526f6f744163636f756e74526571756972656400020458526f6f74206163636f756e742072657175697265642e38556e7369676e65644f726967696e00030440556e7369676e6564206f726967696e2e544d656d62657250726f66696c654e6f74466f756e64000404b44d656d6265722070726f66696c65206e6f7420666f756e642028696e76616c6964206d656d626572206964292e5c48616e646c65416c7265616479526567697374657265640005046848616e646c6520616c726561647920726567697374657265642e9848616e646c654d757374426550726f7669646564447572696e67526567697374726174696f6e000604b048616e646c65206d7573742062652070726f766964656420647572696e6720726567697374726174696f6e2e4c526566657272657249734e6f744d656d626572000704d043616e6e6f742066696e642061206d656d6265727368697020666f7220612070726f76696465642072656665727265722069642e8443616e6e6f745472616e73666572496e7669746573466f724e6f744d656d6265720008049853686f756c642062652061206d656d62657220746f207265636569766520696e76697465732e404e6f74456e6f756768496e7669746573000904ac4e6f7420656e6f75676820696e766974657320746f20706572666f726d20616e206f7065726174696f6e2e60576f726b696e6747726f75704c65616465724e6f74536574000a04ac4d656d6265727368697020776f726b696e672067726f7570206c6561646572206973206e6f74207365742e845374616b696e674163636f756e744973416c726561647952656769737465726564000b04b85374616b696e67206163636f756e74206973207265676973746572656420666f7220736f6d65206d656d6265722e645374616b696e674163636f756e74446f65736e744578697374000c04b45374616b696e67206163636f756e7420666f72206d656d6265727368697020646f65736e27742065786973742e785374616b696e674163636f756e74416c7265616479436f6e6669726d6564000d04ac5374616b696e67206163636f756e742068617320616c7265616479206265656e20636f6e6669726d65642eb0576f726b696e6747726f757042756467657449734e6f7453756666696369656e74466f72496e766974696e67000e08490143616e6e6f7420696e766974652061206d656d6265722e20576f726b696e672067726f75702062616c616e6365206973206e6f742073756666696369656e7420746f20736574207468652064656661756c742062616c616e63652e3c436f6e666c696374696e674c6f636b000f04410143616e6e6f7420696e766974652061206d656d6265722e2054686520636f6e74726f6c6c6572206163636f756e742068617320616e206578697374696e6720636f6e666c696374696e67206c6f636b2e8c43616e6e6f74457863656564526566657272616c43757450657263656e744c696d6974001004010143616e6e6f7420736574206120726566657272616c206375742070657263656e742076616c75652e20546865206c696d6974207761732065786365656465642e5c436f6e666c6963745374616b65734f6e4163636f756e74001104b05374616b696e67206163636f756e7420636f6e7461696e7320636f6e666c696374696e67207374616b65732e7c496e73756666696369656e7442616c616e6365546f436f7665725374616b6500120490496e73756666696369656e742062616c616e636520746f20636f766572207374616b652e504769664c6f636b45786365656473437265646974001304ac4c6f636b656420616d6f756e742069732067726561746572207468616e2063726564697420616d6f756e7464496e73756666696369656e7442616c616e6365546f47696674001404c047696674657220646f65736e277420686176652073756666696369656e742062616c616e636520746f2063726564697484496e73756666696369656e7442616c616e6365546f436f7665725061796d656e7400150498496e73756666696369656e742062616c616e636520746f20636f766572207061796d656e742e048c4d656d62657273686970206d6f64756c6520707265646566696e6564206572726f72735508083070616c6c65745f666f72756d2043617465676f72790c2843617465676f7279496401281048617368012c44537469636b696564546872656164496473015908002001287469746c655f686173682c0110486173680001406465736372697074696f6e5f686173682c0110486173680001206172636869766564980110626f6f6c0001606e756d5f6469726563745f73756263617465676f7269657310010c7533320001486e756d5f6469726563745f7468726561647310010c7533320001546e756d5f6469726563745f6d6f64657261746f727310010c753332000148706172656e745f63617465676f72795f6964350101484f7074696f6e3c43617465676f727949643e000144737469636b795f7468726561645f69647359080144537469636b696564546872656164496473000059080c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401280453000004006901012c42547265655365743c543e00005d08083070616c6c65745f666f72756d185468726561640c2c466f72756d55736572496401282843617465676f72794964012848526570617961626c65426c6f6174426f6e6401e1010010012c63617465676f72795f696428012843617465676f72794964000124617574686f725f696428012c466f72756d55736572496400013c636c65616e75705f7061795f6f6666e1010148526570617961626c65426c6f6174426f6e640001606e756d6265725f6f665f6564697461626c655f706f7374732801344e756d6265724f66506f73747300006108083070616c6c65745f666f72756d10506f7374142c466f72756d557365724964012820546872656164496401281048617368012c2c426c6f636b4e756d626572011048526570617961626c65426c6f6174426f6e6401e101001401247468726561645f69642801205468726561644964000124746578745f686173682c011048617368000124617574686f725f696428012c466f72756d55736572496400013c636c65616e75705f7061795f6f6666e1010148526570617961626c65426c6f6174426f6e6400012c6c6173745f65646974656410012c426c6f636b4e756d62657200006508083070616c6c65745f666f72756d144572726f7204045400016c3c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f7729484f726967696e4e6f74466f72756d4c656164000104b44f726967696e20646f65736e277420636f72726573706f6e6420746f20616e79206c656164206163636f756e7468466f72756d5573657249644e6f744d617463684163636f756e7400020490466f72756d2075736572206964206e6f74206d6174636820697473206163636f756e742e684d6f64657261746f7249644e6f744d617463684163636f756e740003048c4d6f64657261746f72206964206e6f74206d6174636820697473206163636f756e742e7c4163636f756e74446f65734e6f744d61746368546872656164417574686f7200040498546872656164206e6f7420617574686f7265642062792074686520676976656e20757365722e48546872656164446f65734e6f7445786973740005045454687265616420646f6573206e6f742065786973747c4d6f64657261746f724d6f6465726174654f726967696e43617465676f7279000604d04d6f64657261746f722063616e2774206d6f6465726174652063617465676f727920636f6e7461696e696e67207468726561642e904d6f64657261746f724d6f64657261746544657374696e6174696f6e43617465676f7279000704b84d6f64657261746f722063616e2774206d6f6465726174652064657374696e6174696f6e2063617465676f72792e445468726561644d6f7665496e76616c6964000804984f726967696e206973207468652073616d65206173207468652064657374696e6174696f6e2e545468726561644e6f744265696e675570646174656400090464546872656164206e6f74206265696e6720757064617465642e90496e73756666696369656e7442616c616e6365466f725468726561644372656174696f6e000a048c4e6f7420656e6f7567682062616c616e636520746f20637265617465207468726561649843616e6e6f7444656c657465546872656164576974684f75747374616e64696e67506f737473000b04c441207468726561642077697468206f75747374616e64696e6720706f7374732063616e6e6f742062652072656d6f76656440506f7374446f65734e6f744578697374000c0450506f737420646f6573206e6f742065786973742e744163636f756e74446f65734e6f744d61746368506f7374417574686f72000d048c4163636f756e7420646f6573206e6f74206d6174636820706f737420617574686f722e68496e73756666696369656e7442616c616e6365466f72506f7374000e04684e6f7420656e6f7567682062616c616e636520746f20706f73745c43617465676f72794e6f744265696e6755706461746564000f046c43617465676f7279206e6f74206265696e6720757064617465642e64416e636573746f7243617465676f7279496d6d757461626c65001004d4416e636573746f722063617465676f727920696d6d757461626c652c20692e652e2064656c65746564206f72206172636869766564744d617856616c696443617465676f727944657074684578636565646564001104984d6178696d756d2076616c69642063617465676f72792064657074682065786365656465642e5043617465676f7279446f65734e6f7445786973740012046043617465676f727920646f6573206e6f742065786973742e7443617465676f72794d6f64657261746f72446f65734e6f744578697374001304c850726f7669646564206d6f64657261746f72206973206e6f7420676976656e2063617465676f7279206d6f64657261746f725c43617465676f72794e6f74456d707479546872656164730014049443617465676f7279207374696c6c20636f6e7461696e7320736f6d6520746872656164732e6843617465676f72794e6f74456d70747943617465676f72696573001504ac43617465676f7279207374696c6c20636f6e7461696e7320736f6d652073756263617465676f726965732e6c4d6f64657261746f7243616e7444656c65746543617465676f7279001604884e6f207065726d697373696f6e7320746f2064656c6574652063617465676f72792e6c4d6f64657261746f7243616e7455706461746543617465676f7279001704884e6f207065726d697373696f6e7320746f207570646174652063617465676f72792e304d617053697a654c696d6974001804904d6178696d756d2073697a65206f662073746f72616765206d617020657863656564656484506174684c656e67746853686f756c644265477265617465725468616e5a65726f001904b443617465676f72792070617468206c656e2073686f756c642062652067726561746572207468616e207a65726f884d61784e756d6265724f66537469636b696564546872656164734578636565646564001a04e04d6178696d756d206e756d626572206f6620737469636b6965642074687265616473207065722063617465676f7279206578636565646564045c466f72756d20707265646566696e6564206572726f72736908084c70616c6c65745f636f6e737469747574696f6e40436f6e737469747574696f6e496e666f041048617368012c00040124746578745f686173682c01104861736800006d08083470616c6c65745f626f756e747930426f756e74795265636f7264101c42616c616e636501182c426c6f636b4e756d6265720110204d656d626572496401285c436c6f736564436f6e747261637457686974656c6973740171080014013c6372656174696f6e5f706172616d737508012501426f756e7479506172616d65746572733c42616c616e63652c20426c6f636b4e756d6265722c204d656d62657249642c20436c6f736564436f6e747261637457686974656c6973743e000134746f74616c5f66756e64696e6718011c42616c616e63650001246d696c6573746f6e657d080170426f756e74794d696c6573746f6e653c426c6f636b4e756d6265723e00015c6163746976655f776f726b5f656e7472795f636f756e7410010c7533320001606861735f756e706169645f6f7261636c655f726577617264980110626f6f6c000071080c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401280453000004006901012c42547265655365743c543e00007508083470616c6c65745f626f756e747940426f756e7479506172616d6574657273101c42616c616e636501182c426c6f636b4e756d6265720110204d656d626572496401285c436c6f736564436f6e747261637457686974656c697374017108001c01186f7261636c6579010154426f756e74794163746f723c4d656d62657249643e000134636f6e74726163745f74797065790801b84173737572616e6365436f6e7472616374547970653c436c6f736564436f6e747261637457686974656c6973743e00011c63726561746f7279010154426f756e74794163746f723c4d656d62657249643e00011863686572727918011c42616c616e63650001346f7261636c655f72657761726418011c42616c616e6365000134656e7472616e745f7374616b6518011c42616c616e636500013066756e64696e675f747970658101018446756e64696e67547970653c426c6f636b4e756d6265722c2042616c616e63653e00007908083470616c6c65745f626f756e7479544173737572616e6365436f6e747261637454797065045c436c6f736564436f6e747261637457686974656c6973740171080108104f70656e00000018436c6f73656404007108015c436c6f736564436f6e747261637457686974656c697374000100007d08083470616c6c65745f626f756e74793c426f756e74794d696c6573746f6e65042c426c6f636b4e756d626572011001141c43726561746564080128637265617465645f617410012c426c6f636b4e756d6265720001446861735f636f6e747269627574696f6e73980110626f6f6c0000005c426f756e74794d617846756e64696e675265616368656400010034576f726b5375626d6974746564000200285465726d696e61746564000300444a7564676d656e745375626d69747465640401447375636365737366756c5f626f756e7479980110626f6f6c00040000810800000408287901008508083470616c6c65745f626f756e747930436f6e747269627574696f6e0404540000080118616d6f756e7418013042616c616e63654f663c543e00017866756e6465725f73746174655f626c6f61745f626f6e645f616d6f756e7418013042616c616e63654f663c543e00008908083470616c6c65745f626f756e74792c456e7472795265636f72640c244163636f756e7449640100204d656d626572496401282c426c6f636b4e756d6265720110001001246d656d6265725f69642801204d656d62657249640001487374616b696e675f6163636f756e745f69640001244163636f756e7449640001307375626d69747465645f617410012c426c6f636b4e756d626572000138776f726b5f7375626d6974746564980110626f6f6c00008d08083470616c6c65745f626f756e7479144572726f7204045400018c3c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f7729b04d696e46756e64696e67416d6f756e7443616e6e6f744265477265617465725468616e4d6178416d6f756e74000104d44d696e2066756e64696e6720616d6f756e742063616e6e6f742062652067726561746572207468616e206d617820616d6f756e742e44426f756e7479446f65736e74457869737400020450426f756e747920646f65736e742065786973742e605377697463684f7261636c654f726967696e4973526f6f7400030489014f726967696e20697320726f6f742c20736f20737769746368696e67206f7261636c65206973206e6f7420616c6c6f77656420696e20746869732065787472696e7369632e202863616c6c207377697463685f6f7261636c655f61735f726f6f742974496e76616c69645374616765556e657870656374656446756e64696e67000404c8556e657870656374656420626f756e747920737461676520666f7220616e206f7065726174696f6e3a2046756e64696e672ea8496e76616c69645374616765556e65787065637465644e6f46756e64696e67436f6e7472696275746564000504fc556e657870656374656420626f756e747920737461676520666f7220616e206f7065726174696f6e3a204e6f46756e64696e67436f6e74726962757465642e7c496e76616c69645374616765556e657870656374656443616e63656c6c6564000604d0556e657870656374656420626f756e747920737461676520666f7220616e206f7065726174696f6e3a2043616e63656c6c65642e90496e76616c69645374616765556e6578706563746564576f726b5375626d697373696f6e000704e4556e657870656374656420626f756e747920737461676520666f7220616e206f7065726174696f6e3a20576f726b5375626d697373696f6e2e78496e76616c69645374616765556e65787065637465644a7564676d656e74000804cc556e657870656374656420626f756e747920737461676520666f7220616e206f7065726174696f6e3a204a7564676d656e742ec0496e76616c69645374616765556e65787065637465645375636365737366756c426f756e74795769746864726177616c0009041501556e657870656374656420626f756e747920737461676520666f7220616e206f7065726174696f6e3a205375636365737366756c426f756e74795769746864726177616c2eb0496e76616c69645374616765556e65787065637465644661696c6564426f756e74795769746864726177616c000a040501556e657870656374656420626f756e747920737461676520666f7220616e206f7065726174696f6e3a204661696c6564426f756e74795769746864726177616c2e70496e73756666696369656e7442616c616e6365466f72426f756e7479000b04a4496e73756666696369656e742062616c616e636520666f72206120626f756e7479206368657272792e644e6f426f756e7479436f6e747269627574696f6e466f756e64000c048443616e6e6f7420666f756e6420626f756e747920636f6e747269627574696f6e2e6c496e73756666696369656e7442616c616e6365466f725374616b65000d04a05468657265206973206e6f7420656e6f7567682062616c616e636520666f722061207374616b652e44436f6e666c696374696e675374616b6573000e04bc54686520636f6e666c696374696e67207374616b6520646973636f76657265642e2043616e6e6f74207374616b652e50576f726b456e747279446f65736e744578697374000f0460576f726b20656e74727920646f65736e742065786973742e704368657272794c6573735468656e4d696e696d756d416c6c6f77656400100484436865727279206c657373207468616e206d696e696d756d20616c6c6f7765642e9843616e6e6f745375626d6974576f726b546f436c6f736564436f6e7472616374426f756e74790011085101496e636f6d70617469626c65206173737572616e636520636f6e7472616374207479706520666f722061206d656d6265723a2063616e6e6f74207375626d697420776f726b20746f207468652027636c6f7365646c6173737572616e63652720626f756e747920636f6e74726163742e7c436c6f736564436f6e74726163744d656d6265724c6973744973456d707479001204290143616e6e6f742063726561746520612027636c6f736564206173737572616e636520636f6e74726163742720626f756e7479207769746820656d707479206d656d626572206c6973742e88436c6f736564436f6e74726163744d656d6265724c6973744973546f6f4c61726765001308290143616e6e6f742063726561746520612027636c6f736564206173737572616e636520636f6e74726163742720626f756e74792077697468206d656d626572206c697374206c6172676572887468616e20616c6c6f776564206d617820776f726b20656e747279206c696d69742e70436c6f736564436f6e74726163744d656d6265724e6f74466f756e64001404410127636c6f736564206173737572616e636520636f6e74726163742720626f756e7479206d656d626572206c6973742063616e206f6e6c7920696e636c756465206578697374696e67206d656d6265727354496e76616c69644f7261636c654d656d6265724964001504fc50726f7669646564206f7261636c65206d656d62657220696420646f6573206e6f742062656c6f6e6720746f20616e206578697374696e67206d656d62657278496e76616c69645374616b696e674163636f756e74466f724d656d626572001604ac5374616b696e67206163636f756e7420646f65736e27742062656c6f6e6720746f2061206d656d6265722e405a65726f57696e6e65725265776172640017048c43616e6e6f7420736574207a65726f2072657761726420666f722077696e6e6572732e98546f74616c52657761726453686f756c644265457175616c546f546f74616c46756e64696e67001804150154686520746f74616c2072657761726420666f722077696e6e6572732073686f756c6420626520657175616c20746f20746f74616c20626f756e74792066756e64696e672e74456e7472616e745374616b6549734c6573735468616e4d696e696e756d0019042d0143616e6e6f7420637265617465206120626f756e7479207769746820616e20656e7472616e74207374616b65206973206c657373207468616e207265717569726564206d696e696d756d2e6446756e64696e67416d6f756e7443616e6e6f7442655a65726f001a04e843616e6e6f7420637265617465206120626f756e74792077697468207a65726f2066756e64696e6720616d6f756e7420706172616d657465722e6446756e64696e67506572696f6443616e6e6f7442655a65726f001b04e843616e6e6f7420637265617465206120626f756e74792077697468207a65726f2066756e64696e6720706572696f6420706172616d657465722e7457696e6e657253686f756c64486173576f726b5375626d697373696f6e001c04f0496e76616c6964206a7564676d656e74202d20616c6c2077696e6e6572732073686f756c64206861766520776f726b207375626d697373696f6e732e80496e76616c6964436f6e7472696275746f724163746f72537065636966696564001d0470426f756e747920636f6e7472696275746f72206e6f7420666f756e646c496e76616c69644f7261636c654163746f72537065636966696564001e045c426f756e7479206f7261636c65206e6f7420666f756e6474496e76616c6964456e7472616e74576f726b6572537065636966696564001f04a44d656d62657220737065636966696564206973206e6f7420616e20656e7472616e7420776f726b657270496e76616c696443726561746f724163746f72537065636966696564002004a8496e76616c69642043726561746f72204163746f7220666f7220426f756e74792073706563696669656474576f726b456e747279446f65736e7442656c6f6e67546f576f726b6572002104f8576f726b657220747269656420746f20616363657373206120776f726b20656e747279207468617420646f65736e27742062656c6f6e6720746f2068696d704f7261636c65526577617264416c726561647957697468647261776e002204884f7261636c65206861766520616c7265616479206265656e2077697468647261776e047c426f756e74792070616c6c657420707265646566696e6564206572726f72739108083870616c6c65745f7574696c697479144572726f7204045400010c80496e73756666696369656e7446756e6473466f724275646765745570646174650000041d01496e73756666696369656e742066756e647320666f72202755706461746520576f726b696e672047726f757020427564676574272070726f706f73616c20657865637574696f6e385a65726f546f6b656e734275726e00010468547279696e6720746f206275726e207a65726f20746f6b656e7360496e73756666696369656e7446756e6473466f724275726e00020478496e73756666696369656e742066756e647320666f72206275726e696e670478436f646578206d6f64756c6520707265646566696e6564206572726f727395080c3870616c6c65745f636f6e74656e741474797065732c566964656f5265636f726410244368616e6e656c49640128204f776e65644e667401990838566964656f41737365747353657401b90848526570617961626c65426c6f6174426f6e6401e10100100128696e5f6368616e6e656c2801244368616e6e656c49640001286e66745f737461747573bd0801404f7074696f6e3c4f776e65644e66743e000130646174615f6f626a65637473b9080138566964656f417373657473536574000158766964656f5f73746174655f626c6f61745f626f6e64e1010148526570617961626c65426c6f6174426f6e6400009908103870616c6c65745f636f6e74656e740c6e6674147479706573204f776e65644e66740c4c5472616e73616374696f6e616c537461747573019d08204d656d626572496401282441756374696f6e49640128001001146f776e6572b50801484e66744f776e65723c4d656d62657249643e0001507472616e73616374696f6e616c5f7374617475739d08014c5472616e73616374696f6e616c53746174757300013c63726561746f725f726f79616c74791102013c4f7074696f6e3c526f79616c74793e00014c6f70656e5f61756374696f6e735f6e6f6e636528012441756374696f6e496400009d08103870616c6c65745f636f6e74656e740c6e6674147479706573645472616e73616374696f6e616c5374617475735265636f726410204d656d626572496401281c42616c616e6365011848456e676c69736841756374696f6e5479706501a1083c4f70656e41756374696f6e5479706501b10801141049646c6500000058496e697469617465644f66666572546f4d656d62657208002801204d656d626572496400004501013c4f7074696f6e3c42616c616e63653e00010038456e676c69736841756374696f6e0400a1080148456e676c69736841756374696f6e547970650002002c4f70656e41756374696f6e0400b108013c4f70656e41756374696f6e54797065000300184275794e6f77040018011c42616c616e636500040000a108103870616c6c65745f636f6e74656e740c6e667414747970657350456e676c69736841756374696f6e5265636f7264102c426c6f636b4e756d62657201101c42616c616e63650118204d656d626572496401284c4e667441756374696f6e57686974656c69737401a508002001387374617274696e675f707269636518011c42616c616e63650001346275795f6e6f775f70726963654501013c4f7074696f6e3c42616c616e63653e00012477686974656c697374a508014c4e667441756374696f6e57686974656c69737400010c656e6410012c426c6f636b4e756d626572000114737461727410012c426c6f636b4e756d626572000140657874656e73696f6e5f706572696f6410012c426c6f636b4e756d6265720001306d696e5f6269645f7374657018011c42616c616e636500011c746f705f626964a90801b04f7074696f6e3c456e676c69736841756374696f6e4269643c42616c616e63652c204d656d62657249643e3e0000a5080c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401280453000004006901012c42547265655365743c543e0000a90804184f7074696f6e04045401ad080108104e6f6e6500000010536f6d650400ad080000010000ad08103870616c6c65745f636f6e74656e740c6e667414747970657344456e676c69736841756374696f6e426964081c42616c616e63650118204d656d6265724964012800080118616d6f756e7418011c42616c616e63650001246269646465725f69642801204d656d62657249640000b108103870616c6c65745f636f6e74656e740c6e6674147479706573444f70656e41756374696f6e5265636f7264102c426c6f636b4e756d62657201102441756374696f6e496401281c42616c616e636501184c4e667441756374696f6e57686974656c69737401a508001801387374617274696e675f707269636518011c42616c616e63650001346275795f6e6f775f70726963654501013c4f7074696f6e3c42616c616e63653e00012477686974656c697374a508014c4e667441756374696f6e57686974656c6973740001446269645f6c6f636b5f6475726174696f6e10012c426c6f636b4e756d62657200012861756374696f6e5f696428012441756374696f6e4964000114737461727410012c426c6f636b4e756d6265720000b508103870616c6c65745f636f6e74656e740c6e6674147479706573204e66744f776e657204204d656d626572496401280108304368616e6e656c4f776e6572000000184d656d62657204002801204d656d626572496400010000b9080c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401280453000004006901012c42547265655365743c543e0000bd0804184f7074696f6e0404540199080108104e6f6e6500000010536f6d65040099080000010000c108103870616c6c65745f636f6e74656e742c7065726d697373696f6e733463757261746f725f67726f75704843757261746f7247726f75705265636f7264085c43757261746f7247726f757043757261746f72734d617001c508704d6f6465726174696f6e5065726d697373696f6e7342794c6576656c01c908000c012063757261746f7273c508015c43757261746f7247726f757043757261746f72734d6170000118616374697665980110626f6f6c0001507065726d697373696f6e735f62795f6c6576656cc90801704d6f6465726174696f6e5065726d697373696f6e7342794c6576656c0000c5080c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b0128045601b501045300000400c501013842547265654d61703c4b2c20563e0000c9080c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b0108045601cd08045300000400d108013842547265654d61703c4b2c20563e0000cd080c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e6465644254726565536574080454015d020453000004005902012c42547265655365743c543e0000d108042042547265654d617008044b0108045601cd08000400d508000000d508000002d90800d9080000040808cd0800dd08103870616c6c65745f636f6e74656e740c6e6674147479706573504f70656e41756374696f6e4269645265636f72640c1c42616c616e636501182c426c6f636b4e756d62657201102441756374696f6e49640128000c0118616d6f756e7418011c42616c616e63650001346d6164655f61745f626c6f636b10012c426c6f636b4e756d62657200012861756374696f6e5f696428012441756374696f6e49640000e1080c3870616c6c65745f636f6e74656e74186572726f7273144572726f7204045400010102704368616e6e656c5374617465426c6f6174426f6e644368616e676564000004e4496e76616c69642065787472696e7369632063616c6c3a204368616e6e656c20737461746520626c6f617420626f6e64206368616e6765642e68566964656f5374617465426c6f6174426f6e644368616e676564000104dc496e76616c69642065787472696e7369632063616c6c3a20766964656f20737461746520626c6f617420626f6e64206368616e6765642e544d696e436173686f757456616c7565546f6f4c6f77000204d8417474656d707420746f20736574206d696e696d756d20636173686f757420616c6c6f7765642062656c6f7720746865206c696d6974584d6178436173686f757456616c7565546f6f48696768000304d8417474656d707420746f20736574206d696e696d756d20636173686f757420616c6c6f7765642061626f766520746865206c696d69749c4d61784e756d6265724f664368616e6e656c436f6c6c61626f7261746f7273457863656564656400040429014e756d626572206f66206368616e6e656c20636f6c6c61626f7261746f72732065786365656473204d61784e756d6265724f66436f6c6c61626f7261746f72735065724368616e6e656c804d61784e756d6265724f664368616e6e656c4173736574734578636565646564000504f04e756d626572206f66206368616e6e656c206173736574732065786365656473204d61784e756d6265724f664173736574735065724368616e6e656c784d61784e756d6265724f66566964656f4173736574734578636565646564000604ec4e756d626572206f6620766964656f206173736574732065786365656473204d61784d61784e756d6265724f66417373657473506572566964656fa84d61784e756d6265724f664368616e6e656c4167656e745065726d697373696f6e73457863656564656400070419014d6178696d756d206e756d626572206f66206368616e6e656c206167656e74207065726d697373696f6e7320666f72206368616e6e656c206167656e74206578636565646564ac4d61784e756d6265724f6650617573656446656174757265735065724368616e6e656c4578636565646564000804d84d6178696d756d206e756d626572206f662070617573656420666561747572657320706572206368616e6e656c20657863656564656480496e76616c69644368616e6e656c4261675769746e65737350726f766964656400090411014368616e6e656c20626167207769746e65737320706172616d657465727320646f6e2774206d61746368207468652063757272656e742072756e74696d652073746174659c496e76616c696453746f726167654275636b6574734e756d5769746e65737350726f7669646564000a04450153746f72616765206275636b657473206e756d626572207769746e65737320706172616d6574657220646f6573206e6f74206d61746368207468652063757272656e742072756e74696d652073746174657c4d697373696e6753746f726167654275636b6574734e756d5769746e657373000b084d0153746f72616765206275636b657473206e756d626572207769746e65737320706172616d65746572206d7573742062652070726f7669646564207768656e206368616e6e656c2f766964656f2061737365747348617265206265696e6720757064617465642e784368616e6e656c4f776e65724d656d626572446f65734e6f744578697374000c04b850726f7669646564206368616e6e656c206f776e657220286d656d6265722920646f6573206e6f74206578697374904368616e6e656c4f776e657243757261746f7247726f7570446f65734e6f744578697374000d04d450726f7669646564206368616e6e656c206f776e6572202863757261746f722067726f75702920646f6573206e6f74206578697374b04368616e6e656c5374617465426c6f6174426f6e6442656c6f774578697374656e7469616c4465706f736974000e0809014368616e6e656c20737461746520626c6f617420626f6e642063616e6e6f74206265206c6f776572207468616e206578697374656e7469616c206465706f7369742c050162656361757365206974206d7573742073656375726520746865206368616e6e656c206d6f64756c65206163636f756e7420616761696e73742064757374696e67704e756d6265724f66417373657473546f52656d6f766549735a65726f000f04a90144656c657465206368616e6e656c20616e642061737365747320616e642064656c65746520766964656f20617373657473206d75737420686176652061206e756d626572206f662061737365747320746f2072656d6f76652067726561746572207468616e207a65726f9843757261746f7249734e6f74414d656d6265724f66476976656e43757261746f7247726f7570001004450143757261746f7220756e6465722070726f76696465642063757261746f72206964206973206e6f742061206d656d626572206f662063757261726f722067726f757020756e64657220676976656e206964a843757261746f724973416c7265616479414d656d6265724f66476976656e43757261746f7247726f7570001104550143757261746f7220756e6465722070726f76696465642063757261746f7220696420697320616c72656164792061206d656d626572206f662063757261726f722067726f757020756e64657220676976656e2069646043757261746f7247726f7570446f65734e6f74457869737400120488476976656e2063757261746f722067726f757020646f6573206e6f742065786973747043757261746f727350657247726f75704c696d697452656163686564001304b84d6178206e756d626572206f662063757261746f7273207065722067726f7570206c696d697420726561636865645c43757261746f7247726f757049734e6f744163746976650014046c43757261746f722067726f7570206973206e6f74206163746976654043757261746f724964496e76616c6964001504d843757261746f72206964206973206e6f74206120776f726b657220696420696e20636f6e74656e7420776f726b696e672067726f7570384c656164417574684661696c6564001604684c6561642061757468656e7469636174696f6e206661696c6564404d656d626572417574684661696c6564001704704d656d6265722061757468656e7469636174696f6e206661696c65644443757261746f72417574684661696c65640018047443757261746f722061757468656e7469636174696f6e206661696c6564244261644f726967696e00190478457870656374656420726f6f74206f72207369676e6564206f726967696e484163746f724e6f74417574686f72697a6564001a04b04f7065726174696f6e2063616e6e6f7420626520706572666f6d656420776974682074686973204163746f725043617465676f7279446f65734e6f744578697374001b04ac41204368616e6e656c206f7220566964656f2043617465676f727920646f6573206e6f742065786973742e4c4368616e6e656c446f65734e6f744578697374001c04584368616e6e656c20646f6573206e6f7420657869737444566964656f446f65734e6f744578697374001d0450566964656f20646f6573206e6f7420657869737434566964656f496e536561736f6e001e04f4566664656f20696e20736561736f6e2063616e60742062652072656d6f766564202862656361757365206f7264657220697320696d706f7274616e7429444163746f7243616e6e6f7442654c656164001f04c84163746f722063616e6e6f7420617574686f72697a65206173206c65616420666f7220676976656e2065787472696e736963544163746f7243616e6e6f744f776e4368616e6e656c002004604163746f722063616e6e6f74204f776e206368616e6e656c604e6674416c72656164794f776e656442794368616e6e656c002104a4417474656d707420746f20736c696e67206261636b2061206368616e6e656c206f776e6564206e6674404e6674416c7265616479457869737473002204944e667420666f7220676976656e20766964656f20696420616c7265616479206578697374733c4e6674446f65734e6f744578697374002304944e667420666f7220676976656e20766964656f20696420646f6573206e6f742065786973746c4f766572666c6f774f72556e646572666c6f7748617070656e6564002404904f766572666c6f77206f7220756e646572666c6f77206572726f722068617070656e656434446f65734e6f744f776e4e667400250474476976656e206f726967696e20646f6573206e6f74206f776e206e667464526f79616c74795570706572426f756e64457863656564656400260470526f79616c747920557070657220426f756e6420457863656564656464526f79616c74794c6f776572426f756e64457863656564656400270470526f79616c7479204c6f77657220426f756e642045786365656465648441756374696f6e4475726174696f6e5570706572426f756e6445786365656465640028049441756374696f6e206475726174696f6e20757070657220626f756e642065786365656465648441756374696f6e4475726174696f6e4c6f776572426f756e6445786365656465640029049441756374696f6e206475726174696f6e206c6f77657220626f756e6420657863656564656484457874656e73696f6e506572696f645570706572426f756e644578636565646564002a04b441756374696f6e20657874656e73696f6e20706572696f6420757070657220626f756e6420657863656564656484457874656e73696f6e506572696f644c6f776572426f756e644578636565646564002b04b441756374696f6e20657874656e73696f6e20706572696f64206c6f77657220626f756e64206578636565646564844269644c6f636b4475726174696f6e5570706572426f756e644578636565646564002c0498426964206c6f636b206475726174696f6e20757070657220626f756e64206578636565646564844269644c6f636b4475726174696f6e4c6f776572426f756e644578636565646564002d0498426964206c6f636b206475726174696f6e206c6f77657220626f756e642065786365656465647c5374617274696e6750726963655570706572426f756e644578636565646564002e048c5374617274696e6720707269636520757070657220626f756e642065786365656465647c5374617274696e6750726963654c6f776572426f756e644578636565646564002f048c5374617274696e67207072696365206c6f77657220626f756e642065786365656465648041756374696f6e426964537465705570706572426f756e6445786365656465640030049441756374696f6e20626964207374657020757070657220626f756e642065786365656465648041756374696f6e426964537465704c6f776572426f756e6445786365656465640031049441756374696f6e206269642073746570206c6f77657220626f756e642065786365656465644c496e73756666696369656e7442616c616e636500320450496e73756666696369656e742062616c616e63656442696453746570436f6e73747261696e7456696f6c61746564003304b44d696e696d616c2061756374696f6e20626964207374657020636f6e73747261696e742076696f6c617465642e64496e76616c6964426964416d6f756e7453706563696669656400340488436f6d6d697420766572696669636174696f6e20666f722062696420616d6f756e747c5374617274696e675072696365436f6e73747261696e7456696f6c61746564003504ac41756374696f6e207374617274696e6720707269636520636f6e73747261696e742076696f6c617465642e50416374696f6e48617342696473416c7265616479003604a8416c7265616479206163746976652061756374696f6e2063616e6e6f742062652063616e63656c6c6564304e667449734e6f7449646c65003704990143616e206e6f74206372656174652061756374696f6e20666f72204e66742c2069662061756374696f6e2068617665206265656e20616c72656164792073746172746564206f72206e6674206973206c6f636b656420666f7220746865207472616e736665726050656e64696e674f66666572446f65734e6f7445786973740038047c4e6f2070656e64696e67206f666665727320666f7220676976656e204e6674545265776172644163636f756e7449734e6f74536574003904c843726561746f7220726f79616c747920726571756972657320726577617264206163636f756e7420746f206265207365742e404163746f7249734e6f74426964646572003a04684163746f72206973206e6f742061206c617374206269646465726041756374696f6e43616e6e6f744265436f6d706c65746564003b046c41756374696f6e2063616e6e6f7420626520636f6d706c657465643c426964446f65734e6f744578697374003c046841756374696f6e20646f6573206e6f74206861766520626964734c4269644973466f725061737441756374696f6e003d049453656c65637465642042696420697320666f722070617374206f70656e2061756374696f6e6853746172747341744c6f776572426f756e644578636565646564003e049841756374696f6e20737461727473206174206c6f77657220626f756e642065786365656465646853746172747341745570706572426f756e644578636565646564003f049841756374696f6e2073746172747320617420757070657220626f756e642065786365656465644841756374696f6e4469644e6f7453746172740040045c41756374696f6e20646964206e6f742073746172746564444e6f74496e41756374696f6e53746174650041046c4e6674206973206e6f7420696e2061756374696f6e2073746174657c4d656d62657249734e6f74416c6c6f776564546f5061727469636970617465004204bc4d656d626572206973206e6f7420616c6c6f77656420746f20706172746963697061746520696e2061756374696f6e544d656d62657250726f66696c654e6f74466f756e64004304604d656d6265722070726f66696c65206e6f7420666f756e644c4e66744e6f74496e4275794e6f7753746174650044049c476976656e20766964656f206e6674206973206e6f7420696e20627579206e6f7720737461746584496e76616c69644275794e6f775769746e657373507269636550726f76696465640045045501607769746e6573735f7072696365602070726f766964656420746f20606275795f6e6f77602065787472696e73696320646f6573206e6f74206d61746368207468652063757272656e742073656c6c2070726963655049734e6f744f70656e41756374696f6e547970650046046841756374696f6e2074797065206973206e6f7420604f70656e605c49734e6f74456e676c69736841756374696f6e547970650047047441756374696f6e2074797065206973206e6f742060456e676c697368606c4269644c6f636b4475726174696f6e49734e6f744578706972656400480480426964206c6f636b206475726174696f6e206973206e6f742065787069726564684e667441756374696f6e4973416c726561647945787069726564004904784e66742061756374696f6e20697320616c72656164792065787069726564904275794e6f774d7573744265477265617465725468616e5374617274696e675072696365004a04ac41756374696f6e20627579206e6f77206973206c657373207468656e207374617274696e67207072696365605461726765744d656d626572446f65734e6f744578697374004b04984e6674206f6666657220746172676574206d656d62657220646f6573206e6f742065786973748c496e76616c69644e66744f666665725769746e657373507269636550726f7669646564004c040d0143757272656e74206e6674206f6666657220707269636520646f6573206e6f74206d61746368207468652070726f766964656420607769746e6573735f707269636560ac4d617841756374696f6e57686974654c6973744c656e6774685570706572426f756e644578636565646564004d04c44d61782061756374696f6e2077686974656c697374206c656e67746820757070657220626f756e642065786365656465646457686974656c6973744861734f6e6c794f6e654d656d626572004e049441756374696f6e2077686974656c69737420686173206f6e6c79206f6e65206d656d6265727457686974656c69737465644d656d626572446f65734e6f744578697374004f04d84174206c65617374206f6e65206f66207468652077686974656c6973746564206d656d6265727320646f6573206e6f74206578697374784e66744e6f6e4368616e6e656c4f776e6572446f65734e6f744578697374005004f84e6f6e2d6368616e6e656c206f776e65722073706563696669656420647572696e67206e66742069737375616e636520646f6573206e6f74206578697374ac457874656e73696f6e506572696f644973477265617465725468656e41756374696f6e4475726174696f6e005104c4457874656e73696f6e20706572696f642069732067726561746572207468656e2061756374696f6e206475726174696f6e444e6f417373657473537065636966696564005204ac4e6f2061737365747320746f2062652072656d6f7665642068617665206265656e2073706563696669656454496e76616c696441737365747350726f7669646564005304684368616e6e656c2061737365747320666561736962696c697479544368616e6e656c436f6e7461696e73566964656f73005404584368616e6e656c20436f6e7461696e7320566964656f544368616e6e656c436f6e7461696e734173736574730055045c4368616e6e656c20436f6e7461696e73204173736574735c496e76616c696442616753697a655370656369666965640056047c4261672053697a6520737065636966696564206973206e6f742076616c6964504d6967726174696f6e4e6f7446696e6973686564005704584d6967726174696f6e206e6f7420646f6e6520796574445265706c79446f65734e6f7445786973740058046c5061727465636970616e74206973206e6f742061206d656d6265724c556e73756666696369656e7442616c616e636500590450496e73756666696369656e742062616c616e63656c496e73756666696369656e74547265617375727942616c616e6365005a0474496e73756666696369656e742074726561737572792062616c616e636554496e76616c69644d656d62657250726f7669646564005b0470496e76616c6964206d656d62657220696420207370656369666965643c4163746f724e6f74414d656d626572005c04544163746f72206973206e6f742041204d656d626572785061796d656e7450726f6f66566572696669636174696f6e4661696c6564005d04845061796d656e742050726f6f6620766572696669636174696f6e206661696c656484436173686f7574416d6f756e74457863656564734d6178696d756d416d6f756e74005e04c04368616e6e656c20636173686f757420616d6f756e7420697320746f6f206869676820746f20626520636c61696d65647c436173686f7574416d6f756e7442656c6f774d696e696d756d416d6f756e74005f04bc4368616e6e656c20636173686f757420616d6f756e7420697320746f6f206c6f7720746f20626520636c61696d6564e05769746864726177616c416d6f756e74457863656564734368616e6e656c4163636f756e74576974686472617761626c6542616c616e63650060085901416e20617474656d707420746f2077697468647261772066756e64732066726f6d206368616e6e656c206163636f756e74206661696c65642c2062656361757365207468652073706563696669656420616d6f756e744901657863656564732074686520776974686472617761626c6520616d6f756e7420286368616e6e656c206163636f756e742062616c616e6365206d696e7573206368616e6e656c20626c6f617420626f6e64297c576974686472617746726f6d4368616e6e656c416d6f756e7449735a65726f0061085901416e20617474656d707420746f2077697468647261772066756e64732066726f6d206368616e6e656c206163636f756e74206661696c65642c2062656361757365207468652073706563696669656420616d6f756e741c6973207a65726f5c4368616e6e656c436173686f75747344697361626c65640062049c4368616e6e656c20636173686f757473206172652063757272656e746c792064697361626c6564a44d696e436173686f7574416c6c6f776564457863656564734d6178436173686f7574416c6c6f77656400630809014e65772076616c75657320666f72206d696e5f636173686f75745f616c6c6f7765642f6d61785f636173686f75745f616c6c6f7765642061726520696e76616c6964d46d696e5f636173686f75745f616c6c6f7765642063616e6e6f7420657863656564206d61785f636173686f75745f616c6c6f7765648443757261746f724d6f6465726174696f6e416374696f6e4e6f74416c6c6f776564006404110143757261746f7220646f6573206e6f742068617665207065726d697373696f6e7320746f20706572666f726d20676976656e206d6f6465726174696f6e20616374696f6e944d617843757261746f725065726d697373696f6e735065724c6576656c457863656564656400650441014d6178696d756d206e756d626572206f662063757261746f72207065726d697373696f6e732070657220676976656e206368616e6e656c2070726976696c656765206c6576656c206578636565646564c043757261746f7247726f75704d61785065726d697373696f6e7342794c6576656c4d617053697a654578636565646564006604290143757261746f722067726f75702773207065726d697373696f6e73206279206c6576656c206d617020657863656564656420746865206d6178696d756d20616c6c6f7765642073697a65504368616e6e656c466561747572655061757365640067045d014f7065726174696f6e2063616e6e6f742062652065786563757465642c20626563617573652074686973206368616e6e656c206665617475726520686173206265656e2070617573656420627920612063757261746f72444368616e6e656c4261674d697373696e670068042d01556e65787065637465642072756e74696d652073746174653a206d697373696e67206368616e6e656c2062616720647572696e672064656c6574655f6368616e6e656c20617474656d70748c417373657473546f52656d6f76654265796f6e64456e74697479417373657473536574006904f5014c697374206f662061737365747320746f2072656d6f76652070726f766964656420666f72207570646174655f6368616e6e656c202f207570646174655f766964656f20636f6e7461696e7320617373657473207468617420646f6e27742062656c6f6e6720746f207468652073706563696669656420656e7469747990496e76616c6964566964656f446174614f626a65637473436f756e7450726f7669646564006a04f4496e76616c6964206e756d626572206f66206f626a6563747320746f2064656c6574652070726f766964656420666f722064656c6574655f766964656f70496e76616c69644368616e6e656c5472616e73666572537461747573006b04bc496e76616c6964206368616e6e656c207472616e736665722073746174757320666f72206f7065726174696f6e732e78496e76616c69644368616e6e656c5472616e736665724163636570746f72006c04d4496e636f7272656374206163746f7220747269657320746f2061636365707420746865206368616e6e656c207472616e736665722e98496e76616c69644368616e6e656c5472616e73666572436f6d6d69746d656e74506172616d73006d08550143616e6e6f742061636365707420746865206368616e6e656c207472616e736665723a2070726f766964656420636f6d6d69746d656e7420706172616d657465727320646f65736e2774206d617463682077697468906368616e6e656c2070656e64696e67207472616e7366657220706172616d65746572732e8c4368616e6e656c4167656e74496e73756666696369656e745065726d697373696f6e73006e004c496e76616c69644368616e6e656c4f776e6572006f04a4496e636f7272656374206368616e6e656c206f776e657220666f7220616e206f7065726174696f6e2e285a65726f5265776172640070046443616e6e6f7420636c61696d207a65726f207265776172642e78496e73756666696369656e7442616c616e6365466f725472616e73666572007104510143616e6e6f74207472616e7366657220746865206368616e6e656c3a206368616e6e656c206f776e65722068617320696e73756666696369656e742062616c616e6365202862756467657420666f72205747732994496e73756666696369656e7442616c616e6365466f724368616e6e656c4372656174696f6e0072080d0143616e6e6f742063726561746520746865206368616e6e656c3a206368616e6e656c2063726561746f722068617320696e73756666696369656e742062616c616e6365e9012862756467657420666f72206368616e6e656c20737461746520626c6f617420626f6e64202b206368616e6e656c2064617461206f626a7320737461746520626c6f617420626f6e6473202b2064617461206f626a732073746f726167652066656573202b206578697374656e7469616c206465706f736974298c496e73756666696369656e7442616c616e6365466f72566964656f4372656174696f6e007308fc43616e6e6f74206372656174652074686520766964656f3a20766964656f2063726561746f722068617320696e73756666696369656e742062616c616e6365d9012862756467657420666f7220766964656f20737461746520626c6f617420626f6e64202b20766964656f2064617461206f626a7320737461746520626c6f617420626f6e6473202b2064617461206f626a732073746f726167652066656573202b206578697374656e7469616c206465706f7369742964496e73756666696369656e74436f756e63696c4275646765740074006c476c6f62616c4e66744461696c794c696d6974457863656564656400750070476c6f62616c4e66745765656b6c794c696d69744578636565646564007600704368616e6e656c4e66744461696c794c696d69744578636565646564007700744368616e6e656c4e66745765656b6c794c696d697445786365656465640078006443726561746f72546f6b656e416c7265616479497373756564007904c443726561746f7220746f6b656e2077617320616c72656164792069737375656420666f722074686973206368616e6e656c5443726561746f72546f6b656e4e6f74497373756564007a04b043726561746f7220746f6b656e207761736e27742069737375656420666f722074686973206368616e6e656c884d656d6265724964436f756c644e6f7442654465726976656446726f6d4163746f72007b0415014d656d62657220696420636f756c64206e6f7420626520646572697665642066726f6d207468652070726f766964656420436f6e74656e744163746f7220636f6e74657874bc43616e6e6f74576974686472617746726f6d4368616e6e656c5769746843726561746f72546f6b656e497373756564007c08290143616e6e6f74206469726563746c792077697468647261772066756e64732066726f6d2061206368616e6e656c206163636f756e74207768656e20746865206368616e6e656c2068617358612063726561746f7220746f6b656e20697373756564bc506174726f6e61676543616e4f6e6c794265436c61696d6564466f724d656d6265724f776e65644368616e6e656c73007d04f4506174726f6e6167652063616e206f6e6c7920626520636c61696d6564206966206368616e6e656c206973206f776e65642062792061206d656d626572a84368616e6e656c5472616e7366657273426c6f636b6564447572696e67526576656e756553706c697473007e04cc4368616e6e656c205472616e73666572732061726520626c6f636b656420647572696e6720726576656e75652073706c6974739c4368616e6e656c5472616e7366657273426c6f636b6564447572696e67546f6b656e53616c6573007f04c04368616e6e656c205472616e73666572732061726520626c6f636b656420647572696e6720746f6b656e2073616c65730460436f6e74656e74206469726563746f7279206572726f7273e508083870616c6c65745f73746f72616765244261675265636f7264084c53746f726167654275636b657449647353657401e90860446973747269627574696f6e4275636b657449647353657401ed080010012473746f7265645f6279e908014c53746f726167654275636b657449647353657400013864697374726962757465645f6279ed080160446973747269627574696f6e4275636b65744964735365740001486f626a656374735f746f74616c5f73697a6528010c7536340001386f626a656374735f6e756d62657228010c7536340000e9080c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401280453000004006901012c42547265655365743c543e0000ed080c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e64656442547265655365740804540125020453000004003902012c42547265655365743c543e0000f108083870616c6c65745f73746f726167654c53746f726167654275636b65745265636f72640820576f726b657249640128244163636f756e74496401000010013c6f70657261746f725f737461747573f50801c053746f726167654275636b65744f70657261746f725374617475733c576f726b657249642c204163636f756e7449643e000148616363657074696e675f6e65775f62616773980110626f6f6c00011c766f7563686572ad02011c566f756368657200013461737369676e65645f6261677328010c7536340000f508083870616c6c65745f73746f726167656c53746f726167654275636b65744f70657261746f725374617475730820576f726b657249640128244163636f756e7449640100010c1c4d697373696e6700000050496e766974656453746f72616765576f726b65720400280120576f726b657249640001003453746f72616765576f726b65720800280120576f726b6572496400000001244163636f756e74496400020000f9080c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003001185665633c543e0000fd08083870616c6c65745f73746f726167656044796e616d69634261674372656174696f6e506f6c69637904b0446973747269627574696f6e4275636b657446616d696c79546f4e756d6265724f664275636b6574734d6170010109000801646e756d6265725f6f665f73746f726167655f6275636b65747310010c75333200012066616d696c696573010901b0446973747269627574696f6e4275636b657446616d696c79546f4e756d6265724f664275636b6574734d6170000001090c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b012804560110045300000400b502013842547265654d61703c4b2c20563e0000050900000408950228000909083870616c6c65745f73746f7261676528446174614f626a6563740448526570617961626c65426c6f6174426f6e6401e101001001206163636570746564980110626f6f6c00014073746174655f626c6f61745f626f6e64e1010148526570617961626c65426c6f6174426f6e6400011073697a6528010c75363400013c697066735f636f6e74656e745f6964f908013c4261736535384d756c74696861736800000d09083870616c6c65745f73746f7261676578446973747269627574696f6e4275636b657446616d696c795265636f7264045c446973747269627574696f6e4275636b6574496e6465780128000401786e6578745f646973747269627574696f6e5f6275636b65745f696e64657828015c446973747269627574696f6e4275636b6574496e64657800001109083870616c6c65745f73746f7261676560446973747269627574696f6e4275636b65745265636f72640888446973747269627574696f6e4275636b6574496e76697465644f70657261746f72730115096c446973747269627574696f6e4275636b65744f70657261746f727301190900140148616363657074696e675f6e65775f62616773980110626f6f6c000130646973747269627574696e67980110626f6f6c00014c70656e64696e675f696e7669746174696f6e7315090188446973747269627574696f6e4275636b6574496e76697465644f70657261746f72730001246f70657261746f72731909016c446973747269627574696f6e4275636b65744f70657261746f727300013461737369676e65645f6261677328010c753634000015090c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401280453000004006901012c42547265655365743c543e000019090c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401280453000004006901012c42547265655365743c543e00001d09083870616c6c65745f73746f72616765144572726f72040454000105013c41726974686d657469634572726f72000004f447656e657269632041726974686d65746963204572726f722064756520746f20696e7465726e616c206163636f756e74696e67206f7065726174696f6e40496e76616c69644369644c656e67746800010494496e76616c696420434944206c656e67746820286d75737420626520343620627974657329444e6f4f626a656374734f6e55706c6f6164000204a0456d707479202264617461206f626a656374206372656174696f6e2220636f6c6c656374696f6e2e6053746f726167654275636b6574446f65736e744578697374000304ac546865207265717565737465642073746f72616765206275636b657420646f65736e27742065786973742e7053746f726167654275636b657449734e6f74426f756e64546f426167000404cc546865207265717565737465642073746f72616765206275636b6574206973206e6f7420626f756e6420746f2061206261672e6453746f726167654275636b65744973426f756e64546f426167000504dc546865207265717565737465642073746f72616765206275636b657420697320616c726561647920626f756e6420746f2061206261672e644e6f53746f726167654275636b6574496e7669746174696f6e0006041901496e76616c6964206f7065726174696f6e207769746820696e76697465733a207468657265206973206e6f2073746f72616765206275636b657420696e7669746174696f6e2e6453746f7261676550726f7669646572416c72656164795365740007040501496e76616c6964206f7065726174696f6e207769746820696e76697465733a2073746f726167652070726f76696465722077617320616c7265616479207365742e6053746f7261676550726f76696465724d75737442655365740008047453746f726167652070726f7669646572206d757374206265207365742e7c446966666572656e7453746f7261676550726f7669646572496e76697465640009041501496e76616c6964206f7065726174696f6e207769746820696e76697465733a20616e6f746865722073746f726167652070726f76696465722077617320696e76697465642e58496e766974656453746f7261676550726f7669646572000a041501496e76616c6964206f7065726174696f6e207769746820696e76697465733a2073746f726167652070726f76696465722077617320616c726561647920696e76697465642e8853746f726167654275636b65744964436f6c6c656374696f6e73417265456d707479000b04a053746f72616765206275636b657420696420636f6c6c656374696f6e732061726520656d7074792ed053746f726167654275636b6574734e756d62657256696f6c6174657344796e616d69634261674372656174696f6e506f6c696379000c08290153746f72616765206275636b657420696420636f6c6c656374696f6e2070726f766964656420636f6e747261646963747320746865206578697374696e672064796e616d696320626167406372656174696f6e20706f6c6963792ecc446973747269627574696f6e4275636b65747356696f6c6174657344796e616d69634261674372656174696f6e506f6c696379000d083d01446973747269627574696f6e206275636b657420696420636f6c6c656374696f6e2070726f766964656420636f6e747261646963747320746865206578697374696e672064796e616d696320626167406372656174696f6e20706f6c6963792e38456d707479436f6e74656e744964000e04b455706c6f61642064617461206572726f723a20656d70747920636f6e74656e742049442070726f76696465642e385a65726f4f626a65637453697a65000f049055706c6f61642064617461206572726f723a207a65726f206f626a6563742073697a652e88496e76616c69645374617465426c6f6174426f6e64536f757263654163636f756e74001004ec55706c6f61642064617461206572726f723a20696e76616c696420737461746520626c6f617420626f6e6420736f75726365206163636f756e742e58496e76616c696453746f7261676550726f766964657200110490496e76616c69642073746f726167652070726f766964657220666f72206275636b65742e4c496e73756666696369656e7442616c616e636500120498496e73756666696369656e742062616c616e636520666f7220616e206f7065726174696f6e2e54446174614f626a656374446f65736e7445786973740013046844617461206f626a65637420646f65736e27742065786973742e4055706c6f6164696e67426c6f636b65640014049c55706c6f6164696e67206f6620746865206e6577206f626a65637420697320626c6f636b65642e74446174614f626a6563744964436f6c6c656374696f6e4973456d7074790015048c44617461206f626a65637420696420636f6c6c656374696f6e20697320656d7074792e80536f75726365416e6444657374696e6174696f6e42616773417265457175616c001604a043616e6e6f74206d6f7665206f626a656374732077697468696e207468652073616d65206261672e54446174614f626a656374426c61636b6c6973746564001704a844617461206f626a65637420686173682069732070617274206f662074686520626c61636b6c6973742e68426c61636b6c69737453697a654c696d6974457863656564656400180478426c61636b6c6973742073697a65206c696d69742065786365656465642e84566f75636865724d61784f626a65637453697a654c696d69744578636565646564001904ac4d6178206f626a6563742073697a65206c696d697420657863656564656420666f7220766f75636865722e8c566f75636865724d61784f626a6563744e756d6265724c696d69744578636565646564001a04b44d6178206f626a656374206e756d626572206c696d697420657863656564656420666f7220766f75636865722e9453746f726167654275636b65744f626a6563744e756d6265724c696d697452656163686564001b04cc4f626a656374206e756d626572206c696d697420666f72207468652073746f72616765206275636b657420726561636865642e8c53746f726167654275636b65744f626a65637453697a654c696d697452656163686564001c04e04f626a6563747320746f74616c2073697a65206c696d697420666f72207468652073746f72616765206275636b657420726561636865642e6c496e73756666696369656e74547265617375727942616c616e6365001d04d8496e73756666696369656e74206d6f64756c652074726561737572792062616c616e636520666f7220616e206f7065726174696f6e2e8443616e6e6f7444656c6574654e6f6e456d70747953746f726167654275636b6574001e04a443616e6e6f742064656c6574652061206e6f6e2d656d7074792073746f72616765206275636b65742e68446174614f626a6563744964506172616d73417265456d707479001f04f85468652060646174615f6f626a6563745f696473602065787472696e73696320706172616d6574657220636f6c6c656374696f6e20697320656d7074792e7c53746f726167654275636b6574735065724261674c696d6974546f6f4c6f77002004d8546865206e6577206053746f726167654275636b6574735065724261674c696d697460206e756d62657220697320746f6f206c6f772e8053746f726167654275636b6574735065724261674c696d6974546f6f48696768002104dc546865206e6577206053746f726167654275636b6574735065724261674c696d697460206e756d62657220697320746f6f20686967682e8053746f726167654275636b65745065724261674c696d69744578636565646564002204cc6053746f726167654275636b6574735065724261674c696d6974602077617320657863656564656420666f722061206261672e8053746f726167654275636b6574446f65736e744163636570744e657742616773002304ac5468652073746f72616765206275636b657420646f65736e277420616363657074206e657720626167732e4044796e616d6963426167457869737473002404c843616e6e6f7420637265617465207468652064796e616d6963206261673a2064796e616d696320626167206578697374732e5444796e616d6963426167446f65736e7445786973740025046844796e616d69632062616720646f65736e27742065786973742e8853746f7261676550726f76696465724f70657261746f72446f65736e744578697374002604a053746f726167652070726f7669646572206f70657261746f7220646f65736e27742065786973742e484461746153697a654665654368616e676564002704b8496e76616c69642065787472696e7369632063616c6c3a20646174612073697a6520666565206368616e6765642e7c446174614f626a6563745374617465426c6f6174426f6e644368616e676564002804f4496e76616c69642065787472696e7369632063616c6c3a2064617461206f626a65637420737461746520626c6f617420626f6e64206368616e6765642e7843616e6e6f7444656c6574654e6f6e456d70747944796e616d69634261670029049043616e6e6f742064656c657465206e6f6e20656d7074792064796e616d6963206261672eb84d6178446973747269627574696f6e4275636b657446616d696c794e756d6265724c696d69744578636565646564002a04d44d617820646973747269627574696f6e206275636b65742066616d696c79206e756d626572206c696d69742065786365656465642e8c446973747269627574696f6e4275636b657446616d696c79446f65736e744578697374002b04a4446973747269627574696f6e206275636b65742066616d696c7920646f65736e27742065786973742e74446973747269627574696f6e4275636b6574446f65736e744578697374002c0488446973747269627574696f6e206275636b657420646f65736e27742065786973742e9c446973747269627574696f6e4275636b65744964436f6c6c656374696f6e73417265456d707479002d04b4446973747269627574696f6e206275636b657420696420636f6c6c656374696f6e732061726520656d7074792e94446973747269627574696f6e4275636b6574446f65736e744163636570744e657742616773002e04b0446973747269627574696f6e206275636b657420646f65736e277420616363657074206e657720626167732eb84d6178446973747269627574696f6e4275636b65744e756d6265725065724261674c696d69744578636565646564002f04d84d617820646973747269627574696f6e206275636b6574206e756d6265722070657220626167206c696d69742065786365656465642e84446973747269627574696f6e4275636b657449734e6f74426f756e64546f426167003004a8446973747269627574696f6e206275636b6574206973206e6f7420626f756e6420746f2061206261672e78446973747269627574696f6e4275636b65744973426f756e64546f42616700310498446973747269627574696f6e206275636b657420697320626f756e6420746f2061206261672e90446973747269627574696f6e4275636b6574735065724261674c696d6974546f6f4c6f77003204ec546865206e65772060446973747269627574696f6e4275636b6574735065724261674c696d697460206e756d62657220697320746f6f206c6f772e94446973747269627574696f6e4275636b6574735065724261674c696d6974546f6f48696768003304f0546865206e65772060446973747269627574696f6e4275636b6574735065724261674c696d697460206e756d62657220697320746f6f20686967682e9c446973747269627574696f6e50726f76696465724f70657261746f72446f65736e744578697374003404b4446973747269627574696f6e2070726f7669646572206f70657261746f7220646f65736e27742065786973742ea8446973747269627574696f6e50726f76696465724f70657261746f72416c7265616479496e7669746564003504bc446973747269627574696f6e2070726f7669646572206f70657261746f7220616c726561647920696e76697465642e7c446973747269627574696f6e50726f76696465724f70657261746f72536574003604ac446973747269627574696f6e2070726f7669646572206f70657261746f7220616c7265616479207365742e784e6f446973747269627574696f6e4275636b6574496e7669746174696f6e003704884e6f20646973747269627574696f6e206275636b657420696e7669746174696f6e2eac4d7573744265446973747269627574696f6e50726f76696465724f70657261746f72466f724275636b65740038042901496e76616c6964206f7065726174696f6e733a206d757374206265206120646973747269627574696f6e2070726f7669646572206f70657261746f7220666f722061206275636b65742ef84d61784e756d6265724f6650656e64696e67496e7669746174696f6e734c696d6974466f72446973747269627574696f6e4275636b65745265616368656400390429014d6178206e756d626572206f662070656e64696e6720696e7669746174696f6e73206c696d697420666f72206120646973747269627574696f6e206275636b657420726561636865642ec04d61784e756d6265724f664f70657261746f7273506572446973747269627574696f6e4275636b657452656163686564003a04e84d6178206e756d626572206f66206f70657261746f727320666f72206120646973747269627574696f6e206275636b657420726561636865642ea8446973747269627574696f6e46616d696c79426f756e64546f4261674372656174696f6e506f6c696379003b04cc446973747269627574696f6e2066616d696c7920626f756e6420746f206120626167206372656174696f6e20706f6c6963792e644d6178446174614f626a65637453697a654578636565646564003c04784d61782064617461206f626a6563742073697a652065786365656465642e60496e76616c69645472616e736163746f724163636f756e74003d04b8496e76616c6964207472616e736163746f72206163636f756e7420494420666f722074686973206275636b65742ec04e756d6265724f6653746f726167654275636b6574734f7574736964654f66416c6c6f776564436f6e747261696e7473003e049c4e6f7420616c6c6f77656420276e756d626572206f662073746f72616765206275636b65747327d44e756d6265724f66446973747269627574696f6e4275636b6574734f7574736964654f66416c6c6f776564436f6e747261696e7473003f04b04e6f7420616c6c6f77656420276e756d626572206f6620646973747269627574696f6e206275636b657473273043616c6c44697361626c65640040043443616c6c2044697361626c6564048053746f72616765206d6f64756c6520707265646566696e6564206572726f727321090c5070616c6c65745f70726f6a6563745f746f6b656e1474797065732c4163636f756e7444617461101c42616c616e63650118345374616b696e6753746174757301250948526570617961626c65426c6f6174426f6e6401e1014056657374696e675363686564756c65730129090018014476657374696e675f7363686564756c65732909014056657374696e675363686564756c6573000118616d6f756e7418011c42616c616e636500015073706c69745f7374616b696e675f7374617475733d0901544f7074696f6e3c5374616b696e675374617475733e000128626c6f61745f626f6e64e1010148526570617961626c65426c6f6174426f6e640001606e6578745f76657374696e675f7472616e736665725f696428010c7536340001806c6173745f73616c655f746f74616c5f7075726368617365645f616d6f756e74410901784f7074696f6e3c28546f6b656e53616c6549642c2042616c616e6365293e000025090c5070616c6c65745f70726f6a6563745f746f6b656e147479706573345374616b696e67537461747573041c42616c616e636501180008012073706c69745f6964100138526576656e756553706c69744964000118616d6f756e7418011c42616c616e6365000029090c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b0111030456012d090453000004003109013842547265654d61703c4b2c20563e00002d090c5070616c6c65745f70726f6a6563745f746f6b656e1474797065733c56657374696e675363686564756c65082c426c6f636b4e756d62657201101c42616c616e63650118001401686c696e6561725f76657374696e675f73746172745f626c6f636b10012c426c6f636b4e756d62657200015c6c696e6561725f76657374696e675f6475726174696f6e10012c426c6f636b4e756d626572000130636c6966665f616d6f756e7418011c42616c616e636500015c706f73745f636c6966665f746f74616c5f616d6f756e7418011c42616c616e63650001346275726e65645f616d6f756e7418011c42616c616e636500003109042042547265654d617008044b0111030456012d090004003509000000350900000239090039090000040811032d09003d0904184f7074696f6e0404540125090108104e6f6e6500000010536f6d65040025090000010000410904184f7074696f6e0404540145090108104e6f6e6500000010536f6d6504004509000001000045090000040810180049090c5070616c6c65745f70726f6a6563745f746f6b656e14747970657324546f6b656e44617461141c42616c616e636501181048617368012c2c426c6f636b4e756d626572011024546f6b656e53616c6501210344526576656e756553706c69745374617465014d09002c0130746f74616c5f737570706c7918011c42616c616e6365000134746f6b656e735f69737375656418011c42616c616e63650001306e6578745f73616c655f696410012c546f6b656e53616c65496400011073616c65590901444f7074696f6e3c546f6b656e53616c653e00013c7472616e736665725f706f6c696379c50201505472616e73666572506f6c6963793c486173683e00011873796d626f6c2c011048617368000138706174726f6e6167655f696e666f5d09018c506174726f6e616765446174613c42616c616e63652c20426c6f636b4e756d6265723e00013c6163636f756e74735f6e756d62657228010c753634000148726576656e75655f73706c69745f72617465d502011c5065726d696c6c000134726576656e75655f73706c69744d090144526576656e756553706c697453746174650001546e6578745f726576656e75655f73706c69745f6964100138526576656e756553706c6974496400004d090c5070616c6c65745f70726f6a6563745f746f6b656e14747970657344526576656e756553706c6974537461746508284a6f7942616c616e636501182c426c6f636b4e756d6265720110010820496e616374697665000000184163746976650400510901a4526576656e756553706c6974496e666f3c4a6f7942616c616e63652c20426c6f636b4e756d6265723e0001000051090c5070616c6c65745f70726f6a6563745f746f6b656e14747970657340526576656e756553706c6974496e666f08284a6f7942616c616e636501182c426c6f636b4e756d6265720110000c0128616c6c6f636174696f6e1801284a6f7942616c616e636500012074696d656c696e655509015454696d656c696e653c426c6f636b4e756d6265723e0001446469766964656e64735f636c61696d65641801284a6f7942616c616e6365000055090c5070616c6c65745f70726f6a6563745f746f6b656e1474797065732054696d656c696e65042c426c6f636b4e756d626572011000080114737461727410012c426c6f636b4e756d6265720001206475726174696f6e10012c426c6f636b4e756d6265720000590904184f7074696f6e0404540121030108104e6f6e6500000010536f6d650400210300000100005d090c5070616c6c65745f70726f6a6563745f746f6b656e14747970657334506174726f6e61676544617461081c42616c616e636501182c426c6f636b4e756d6265720110000c01107261746561090124426c6f636b52617465000180756e636c61696d65645f706174726f6e6167655f74616c6c795f616d6f756e7418011c42616c616e63650001906c6173745f756e636c61696d65645f706174726f6e6167655f74616c6c795f626c6f636b10012c426c6f636b4e756d626572000061090c5070616c6c65745f70726f6a6563745f746f6b656e14747970657324426c6f636b52617465000004002503012c5065727175696e74696c6c000065090c5070616c6c65745f70726f6a6563745f746f6b656e186572726f7273144572726f720404540001c43c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f772980496e73756666696369656e745472616e736665727261626c6542616c616e636500010481014163636f756e742773207472616e736665727261626c652062616c616e636520697320696e73756666696369656e7420746f20706572666f726d20746865207472616e73666572206f7220696e697469616c697a6520746f6b656e2073616c6544546f6b656e446f65734e6f7445786973740002047852657175657374656420746f6b656e20646f6573206e6f74206578697374784163636f756e74496e666f726d6174696f6e446f65734e6f74457869737400030494526571756573746564206163636f756e74206461746120646f6573206e6f74206578697374945472616e7366657244657374696e6174696f6e4d656d626572446f65734e6f74457869737400040419014174206c65617374206f6e65206f6620746865207472616e736665722064657374696e6174696f6e73206973206e6f7420616e206578697374696e67206d656d626572206964784d65726b6c6550726f6f66566572696669636174696f6e4661696c757265000504804d65726b6c652070726f6f6620766572696669636174696f6e206661696c6564a8546172676574506174726f6e6167655261746549734869676865725468616e43757272656e7452617465000604c4546172676574205261746520697320686967686572207468616e2063757272656e7420706174726f6e61676520726174655c546f6b656e53796d626f6c416c7265616479496e5573650007045453796d626f6c20616c726561647920696e2075736590496e697469616c416c6c6f636174696f6e546f4e6f6e4578697374696e674d656d62657200080441014174206c65617374206f6e65206f6620746865206d656d626572732070726f76696465642061732070617274206f6620496e697469616c416c6c6f636174696f6e20646f6573206e6f74206578697374504163636f756e74416c7265616479457869737473000904584163636f756e7420416c7265616479206578697374736c546f6b656e49737375616e63654e6f74496e49646c655374617465000a04a8546f6b656e27732063757272656e74206f66666572696e67207374617465206973206e6f742049646c6558496e73756666696369656e744a6f7942616c616e6365000b04dc496e73756666696369656e74204a4f592042616c616e636520746f20636f76657220746865207472616e73616374696f6e20636f7374736c4a6f795472616e736665725375626a656374546f44757374696e67000c045d0154686520616d6f756e74206f66204a4f5920746f206265207472616e73666572726564206973206e6f7420656e6f75676820746f206b656570207468652064657374696e6174696f6e206163636f756e7420616c697665cc417474656d7074546f52656d6f76654e6f6e4f776e65644163636f756e74556e6465725065726d697373696f6e65644d6f6465000d04ec417474656d707420746f2072656d6f7665206e6f6e206f776e6564206163636f756e7420756e646572207065726d697373696f6e6564206d6f646578417474656d7074546f52656d6f76654e6f6e456d7074794163636f756e74000e04e4417474656d707420746f2072656d6f766520616e206163636f756e74207769746820736f6d65206f75747374616e64696e6720746f6b656e739c43616e6e6f744a6f696e57686974656c697374496e5065726d697373696f6e6c6573734d6f6465000f04b043616e6e6f74206a6f696e2077686974656c69737420696e207065726d697373696f6e6c657373206d6f6465a443616e6e6f7444656973737565546f6b656e576974684f75747374616e64696e674163636f756e7473001004b843616e6e6f74204465697373756520546f6b656e2077697468206f75747374616e64696e67206163636f756e7473384e6f5570636f6d696e6753616c650011047854686520746f6b656e20686173206e6f207570636f6d696e672073616c65304e6f41637469766553616c65001204a854686520746f6b656e20686173206e6f206163746976652073616c6520617420746865206d6f6d656e748c496e73756666696369656e7442616c616e6365466f72546f6b656e507572636861736500130401014163636f756e742773204a4f592062616c616e636520697320696e73756666696369656e7420746f206d616b652074686520746f6b656e207075726368617365544e6f74456e6f756768546f6b656e734f6e53616c650014047d01416d6f756e74206f6620746f6b656e7320746f207075726368617365206f6e2073616c65206578636565647320746865207175616e74697479206f6620746f6b656e73207374696c6c20617661696c61626c65206f6e207468652073616c656853616c655374617274696e67426c6f636b496e54686550617374001504b05370656369666965642073616c65207374617274696e6720626c6f636b20697320696e2074686520706173745c53616c6541636365737350726f6f66526571756972656400160481014f6e6c792077686974656c6973746564207061727469636970616e74732061726520616c6c6f77656420746f20616363657373207468652073616c652c207468657265666f7265206163636573732070726f6f662069732072657175697265649453616c6541636365737350726f6f665061727469636970616e7449734e6f7453656e64657200170829015061727469636970616e7420696e2073616c65206163636573732070726f6f662070726f766964656420647572696e67206070757263686173655f746f6b656e735f6f6e5f73616c656084646f6573206e6f74206d61746368207468652073656e646572206163636f756e745c53616c6550757263686173654361704578636565646564001808610153616c65207061727469636970616e742773206361702028656974686572206361705f7065725f6d656d626572206f722077686974656c6973746564207061727469636970616e742773207370656369666963206361702978776173206578636565646564207769746820746865207075726368617365b04d617856657374696e675363686564756c65735065724163636f756e74506572546f6b656e52656163686564001908c843616e6e6f742061646420616e6f746865722076657374696e67207363686564756c6520746f20616e206163636f756e742e31014d6178696d756d206e756d626572206f662076657374696e67207363686564756c657320666f722074686973206163636f756e742d746f6b656e20706169722077617320726561636865642e6050726576696f757353616c654e6f7446696e616c697a6564001a04e450726576696f75732073616c6520776173207374696c6c206e6f742066696e616c697a65642c2066696e616c697a652069742066697273742e444e6f546f6b656e73546f5265636f766572001b041501546865726520617265206e6f2072656d61696e696e6720746f6b657320746f207265636f7665722066726f6d207468652070726576696f757320746f6b656e2073616c652e5053616c654475726174696f6e546f6f53686f7274001c04dc5370656369666965642073616c65206475726174696f6e2069732073686f72746572207468616e204d696e53616c654475726174696f6e4853616c654475726174696f6e49735a65726f001d047053616c65206475726174696f6e2063616e6e6f74206265207a65726f7053616c655570706572426f756e645175616e7469747949735a65726f001e048c557070657220626f756e64207175616e746974792063616e6e6f74206265207a65726f5853616c654361705065724d656d62657249735a65726f001f049850757263686173652063617020706572206d656d6265722063616e6e6f74206265207a65726f4c53616c65556e6974507269636549735a65726f00200484546f6b656e277320756e69742070726963652063616e6e6f74206265207a65726f6053616c655075726368617365416d6f756e7449735a65726f002104cc416d6f756e74206f6620746f6b656e7320746f207075726368617365206f6e2073616c652063616e6e6f74206265207a65726f7c526576656e756553706c697454696d65546f5374617274546f6f53686f7274002204d453706563696669656420726576656e75652073706c6974207374617274696e6720626c6f636b20697320696e20746865207061737470526576656e756553706c69744475726174696f6e546f6f53686f72740023048c526576656e75652053706c6974206475726174696f6e20697320746f6f2073686f727484526576656e756553706c6974416c7265616479416374697665466f72546f6b656e002404a8417474656d707420746f2061637469766174652073706c69742077697468206f6e65206f6e676f696e6774526576656e756553706c69744e6f74416374697665466f72546f6b656e0025043501417474656d707420746f206d616b6520726576656e75652073706c6974206f7065726174696f6e73207769746820746f6b656e206e6f7420696e206163746976652073706c697420737461746554526576656e756553706c69744469644e6f74456e640026047c526576656e75652053706c697420686173206e6f7420656e6465642079657458526576656e756553706c69744e6f744f6e676f696e67002704bc526576656e75652053706c697420666f7220746f6b656e206163746976652c20627574206e6f74206f6e676f696e676055736572416c726561647950617274696369706174696e67002804bc5573657220616c72656164792070617274696369706174696e6720696e2074686520726576656e75652073706c6974a0496e73756666696369656e7442616c616e6365466f7253706c697450617274696369706174696f6e0029041d015573657220646f6573206e6f7420706f7373657320656e6f7567682062616c616e636520746f20706172746963697061746520696e2074686520726576656e75652073706c69747c557365724e6f745061727469636970616e74696e67496e416e7953706c6974002a049855736572206973206e6f742070617274696369706174696e6720696e20616e792073706c69749843616e6e6f745061727469636970617465496e53706c6974576974685a65726f416d6f756e74002b04e8417474656d707420746f20706172746963697061746520696e20612073706c69742077697468207a65726f20746f6b656e20746f207374616b65a043616e6e6f74497373756553706c6974576974685a65726f416c6c6f636174696f6e416d6f756e74002c04dc417474656d707420746f20697373756520696e20612073706c69742077697468207a65726f20616c6c6f636174696f6e20616d6f756e74b043616e6e6f744d6f64696679537570706c795768656e526576656e756553706c697473417265416374697665002d04d4417474656d707420746f206d6f6469667920737570706c79207768656e20726576656e75652073706c69742069732061637469766558526576656e756553706c69745261746549735a65726f002e0478526576656e75652073706c697420726174652063616e6e6f742062652030404275726e416d6f756e7449735a65726f002f047c50726f766964656420616d6f756e7420746f206275726e206973203d3d2030a04275726e416d6f756e74477265617465725468616e4163636f756e74546f6b656e73416d6f756e740030043101416d6f756e74206f6620746f6b656e7320746f206275726e206578636565647320746f74616c20616d6f756e74206f6620746f6b656e73206f776e656420627920746865206163636f756e740069090c5c70616c6c65745f70726f706f73616c735f656e67696e651474797065732050726f706f73616c102c426c6f636b4e756d62657201102850726f706f736572496401281c42616c616e63650118244163636f756e744964010000200128706172616d65746572736d0901a050726f706f73616c506172616d65746572733c426c6f636b4e756d6265722c2042616c616e63653e00012c70726f706f7365725f696428012850726f706f73657249640001306163746976617465645f617410012c426c6f636b4e756d6265720001187374617475732d03016c50726f706f73616c5374617475733c426c6f636b4e756d6265723e000138766f74696e675f726573756c747371090134566f74696e67526573756c747300015465786163745f657865637574696f6e5f626c6f636b0102014c4f7074696f6e3c426c6f636b4e756d6265723e00016c6e725f6f665f636f756e63696c5f636f6e6669726d6174696f6e7310010c7533320001487374616b696e675f6163636f756e745f69649401444f7074696f6e3c4163636f756e7449643e00006d090c5c70616c6c65745f70726f706f73616c735f656e67696e651474797065734850726f706f73616c506172616d6574657273082c426c6f636b4e756d62657201101c42616c616e6365011800200134766f74696e675f706572696f6410012c426c6f636b4e756d62657200013067726163655f706572696f6410012c426c6f636b4e756d626572000168617070726f76616c5f71756f72756d5f70657263656e7461676510010c753332000174617070726f76616c5f7468726573686f6c645f70657263656e7461676510010c753332000168736c617368696e675f71756f72756d5f70657263656e7461676510010c753332000174736c617368696e675f7468726573686f6c645f70657263656e7461676510010c75333200013872657175697265645f7374616b654501013c4f7074696f6e3c42616c616e63653e000144636f6e737469747574696f6e616c69747910010c753332000071090c5c70616c6c65745f70726f706f73616c735f656e67696e6514747970657334566f74696e67526573756c7473000010012c61627374656e74696f6e7310010c753332000124617070726f76616c7310010c75333200012872656a656374696f6e7310010c75333200011c736c617368657310010c753332000075090c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003001185665633c543e00007909000004081028007d09085c70616c6c65745f70726f706f73616c735f656e67696e65144572726f7204045400015c3c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f772948456d7074795469746c6550726f76696465640001049050726f706f73616c2063616e6e6f74206861766520616e20656d707479207469746c652260456d7074794465736372697074696f6e50726f76696465640002048850726f706f73616c2063616e6e6f74206861766520616e20656d70747920626f6479385469746c654973546f6f4c6f6e67000304445469746c6520697320746f6f206c6f6e67504465736372697074696f6e4973546f6f4c6f6e670004045c4465736372697074696f6e20697320746f6f206c6f6e674050726f706f73616c4e6f74466f756e640005046c5468652070726f706f73616c20646f6573206e6f742065786973744450726f706f73616c46696e616c697a65640006047450726f706f73616c2069732066696e616c697a656420616c726561647930416c7265616479566f7465640007049c5468652070726f706f73616c2068617665206265656e20616c726561647920766f746564206f6e244e6f74417574686f72000804344e6f7420616e20617574686f727c4d617841637469766550726f706f73616c4e756d6265724578636565646564000904904d6178206163746976652070726f706f73616c73206e756d62657220657863656564656428456d7074795374616b65000a04a05374616b652063616e6e6f7420626520656d707479207769746820746869732070726f706f73616c485374616b6553686f756c644265456d707479000b049c5374616b652073686f756c6420626520656d70747920666f7220746869732070726f706f73616c605374616b654469666665727346726f6d5265717569726564000c04b05374616b6520646966666572732066726f6d207468652070726f706f73616c20726571756972656d656e747384496e76616c6964506172616d65746572417070726f76616c5468726573686f6c64000d0484417070726f76616c207468726573686f6c642063616e6e6f74206265207a65726f84496e76616c6964506172616d65746572536c617368696e675468726573686f6c64000e0484536c617368696e67207468726573686f6c642063616e6e6f74206265207a65726f4452657175697265526f6f744f726967696e000f04845265717569726520726f6f74206f726967696e20696e2065787472696e736963734050726f706f73616c486173566f746573001004f4446973616c6c6f7720746f2063616e63656c207468652070726f706f73616c2069662074686572652061726520616e7920766f746573206f6e2069742e5c5a65726f4578616374457865637574696f6e426c6f636b00110494457861637420657865637574696f6e20626c6f636b2063616e6e6f74206265207a65726f2e68496e76616c69644578616374457865637574696f6e426c6f636b001204e0457861637420657865637574696f6e20626c6f636b2063616e6e6f74206265206c657373207468616e2063757272656e745f626c6f636b2e6c496e73756666696369656e7442616c616e6365466f725374616b65001304a05468657265206973206e6f7420656e6f7567682062616c616e636520666f722061207374616b652e44436f6e666c696374696e675374616b6573001404bc54686520636f6e666c696374696e67207374616b6520646973636f76657265642e2043616e6e6f74207374616b652e78496e76616c69645374616b696e674163636f756e74466f724d656d626572001504ac5374616b696e67206163636f756e7420646f65736e27742062656c6f6e6720746f2061206d656d6265722e8c4d6178446973706174636861626c6543616c6c436f646553697a6545786365656465640016043d015468652073697a65206f6620656e636f64656420646973706174636861626c652063616c6c20746f206265206578656375746564206279207468652070726f706f73616c20697320746f6f20626967047c456e67696e65206d6f64756c6520707265646566696e6564206572726f727381090c6c70616c6c65745f70726f706f73616c735f64697363757373696f6e1474797065734044697363757373696f6e5468726561640c204d656d626572496401282c426c6f636b4e756d62657201103c54687265616457686974656c697374018509000c01306163746976617465645f617410012c426c6f636b4e756d626572000124617574686f725f69642801204d656d62657249640001106d6f64658909016c5468726561644d6f64653c54687265616457686974656c6973743e000085090c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401280453000004006901012c42547265655365743c543e000089090c6c70616c6c65745f70726f706f73616c735f64697363757373696f6e147479706573285468726561644d6f6465043c54687265616457686974656c6973740185090108104f70656e00000018436c6f73656404008509013c54687265616457686974656c697374000100008d090c6c70616c6c65745f70726f706f73616c735f64697363757373696f6e1474797065733844697363757373696f6e506f73740c204d656d626572496401282c426c6f636b4e756d626572011048526570617961626c65426c6f6174426f6e6401e101000c0124617574686f725f69642801204d656d626572496400013c636c65616e75705f7061795f6f6666e1010148526570617961626c65426c6f6174426f6e6400012c6c6173745f65646974656410012c426c6f636b4e756d62657200009109086c70616c6c65745f70726f706f73616c735f64697363757373696f6e144572726f720404540001283c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f772944546872656164446f65736e7445786973740001045054687265616420646f65736e27742065786973743c506f7374446f65736e74457869737400020448506f737420646f65736e27742065786973744452657175697265526f6f744f726967696e000304845265717569726520726f6f74206f726967696e20696e2065787472696e736963736043616e6e6f74506f73744f6e436c6f7365645468726561640004046501546865207468726561642068617320436c6f736564206d6f64652e20416e6420706f737420617574686f7220646f65736e27742062656c6f6e6720746f20636f756e63696c206f7220616c6c6f776564206d656d626572732e504e6f74417574686f724f72436f756e63696c6f720005049453686f756c642062652074687265616420617574686f72206f7220636f756e63696c6f722e604d617857686974654c69737453697a654578636565646564000604a04d617820616c6c6f77656420617574686f7273206c697374206c696d69742065786365656465642e7457686974656c69737465644d656d626572446f65734e6f74457869737400070849014174206c65617374206f6e65206f6620746865206d656d626572206964732070726f76696465642061732070617274206f6620636c6f736564207468726561642077686974656c6973742062656c6f6e677364746f2061206e6f6e2d6578697374696e67206d656d6265722e68496e73756666696369656e7442616c616e6365466f72506f7374000804c44163636f756e742068617320696e73756666696369656e742062616c616e636520746f20637265617465206120706f73744043616e6e6f7444656c657465506f73740009049c4163636f756e742063616e27742064656c65746520706f737420617420746865206d6f6d656e74048c44697363757373696f6e206d6f64756c6520707265646566696e6564206572726f72739509085870616c6c65745f70726f706f73616c735f636f646578144572726f72040454000168545369676e616c50726f706f73616c4973456d707479000004a050726f7669646564207465787420666f7220746578742070726f706f73616c20697320656d7074795852756e74696d6550726f706f73616c4973456d707479000104f050726f7669646564205741534d20636f646520666f72207468652072756e74696d6520757067726164652070726f706f73616c20697320656d70747990496e76616c696446756e64696e675265717565737450726f706f73616c42616c616e6365000204bc496e76616c69642062616c616e63652076616c756520666f7220746865207370656e64696e672070726f706f73616c54496e76616c696456616c696461746f72436f756e74000304f8496e76616c69642076616c696461746f7220636f756e7420666f722074686520277365742076616c696461746f7220636f756e74272070726f706f73616c4452657175697265526f6f744f726967696e000404845265717569726520726f6f74206f726967696e20696e2065787472696e73696373a8496e76616c6964436f756e63696c456c656374696f6e506172616d65746572436f756e63696c53697a65000504c4496e76616c696420636f756e63696c20656c656374696f6e20706172616d65746572202d20636f756e63696c5f73697a65b4496e76616c6964436f756e63696c456c656374696f6e506172616d6574657243616e6469646163794c696d6974000604d0496e76616c696420636f756e63696c20656c656374696f6e20706172616d65746572202d2063616e6469646163792d6c696d6974b4496e76616c6964436f756e63696c456c656374696f6e506172616d657465724d696e566f74696e675374616b65000704d4496e76616c696420636f756e63696c20656c656374696f6e20706172616d65746572202d206d696e2d766f74696e675f7374616b65b8496e76616c6964436f756e63696c456c656374696f6e506172616d657465724e65775465726d4475726174696f6e000804d8496e76616c696420636f756e63696c20656c656374696f6e20706172616d65746572202d206e65775f7465726d5f6475726174696f6eb8496e76616c6964436f756e63696c456c656374696f6e506172616d657465724d696e436f756e63696c5374616b65000904d8496e76616c696420636f756e63696c20656c656374696f6e20706172616d65746572202d206d696e5f636f756e63696c5f7374616b65b8496e76616c6964436f756e63696c456c656374696f6e506172616d6574657252657665616c696e67506572696f64000a04d4496e76616c696420636f756e63696c20656c656374696f6e20706172616d65746572202d2072657665616c696e675f706572696f64ac496e76616c6964436f756e63696c456c656374696f6e506172616d65746572566f74696e67506572696f64000b04c8496e76616c696420636f756e63696c20656c656374696f6e20706172616d65746572202d20766f74696e675f706572696f64bc496e76616c6964436f756e63696c456c656374696f6e506172616d65746572416e6e6f756e63696e67506572696f64000c04d8496e76616c696420636f756e63696c20656c656374696f6e20706172616d65746572202d20616e6e6f756e63696e675f706572696f6484496e76616c6964576f726b696e6747726f75704275646765744361706163697479000d04bc496e76616c696420776f726b696e672067726f75702062756467657420636170616369747920706172616d65746572a0496e76616c69645365744c656164506172616d6574657243616e6e6f744265436f756e63696c6f72000e042d01496e76616c69642027736574206c6561642070726f706f73616c2720706172616d65746572202d2070726f706f736564206c6561642063616e6e6f74206265206120636f756e63696c6f724c536c617368696e675374616b6549735a65726f000f042101496e76616c69642027736c617368207374616b652070726f706f73616c2720706172616d65746572202d2063616e6e6f7420736c617368206279207a65726f2062616c616e63652e5444656372656173696e675374616b6549735a65726f0010043901496e76616c696420276465637265617365207374616b652070726f706f73616c2720706172616d65746572202d2063616e6e6f74206465637265617365206279207a65726f2062616c616e63652e80496e73756666696369656e7446756e6473466f724275646765745570646174650011041d01496e73756666696369656e742066756e647320666f72202755706461746520576f726b696e672047726f757020427564676574272070726f706f73616c20657865637574696f6eb0496e76616c696446756e64696e675265717565737450726f706f73616c4e756d6265724f664163636f756e740012045101496e76616c6964206e756d626572206f66206163636f756e747320726563696576696e672066756e64696e67207265717565737420666f72202746756e64696e672052657175657374272070726f706f73616c2eb0496e76616c696446756e64696e675265717565737450726f706f73616c52657065617465644163636f756e74001304bc5265706561746564206163636f756e7420696e202746756e64696e672052657175657374272070726f706f73616c2ee0496e76616c69644368616e6e656c5061796f75747350726f706f73616c4d696e436173686f7574457863656564734d6178436173686f7574001404e50154686520737065636966696564206d696e206368616e6e656c20636173686f75742069732067726561746572207468616e2074686520737065636966696564206d6178206368616e6e656c20636173686f757420696e2060557064617465204368616e6e656c205061796f757473602070726f706f73616c2e4c496e76616c69644c656164576f726b657249640015049050726f7669646564206c65616420776f726b6572206964206973206e6f742076616c696450496e76616c69644c6561644f70656e696e6749640016049450726f7669646564206c656164206f70656e696e67206964206973206e6f742076616c696460496e76616c69644c6561644170706c69636174696f6e4964001704a450726f7669646564206c656164206170706c69636174696f6e206964206973206e6f742076616c696444496e76616c696450726f706f73616c49640018048450726f76696465642070726f706f73616c206964206973206e6f742076616c69643c41726974686d657469634572726f720019043c41726974686d656963204572726f720478436f646578206d6f64756c6520707265646566696e6564206572726f727399090c5070616c6c65745f776f726b696e675f67726f75701474797065731c4f70656e696e670c2c426c6f636b4e756d62657201101c42616c616e636501181048617368012c001801306f70656e696e675f747970657d03012c4f70656e696e675479706500011c6372656174656410012c426c6f636b4e756d6265720001406465736372697074696f6e5f686173682c0110486173680001307374616b655f706f6c696379610301845374616b65506f6c6963793c426c6f636b4e756d6265722c2042616c616e63653e0001407265776172645f7065725f626c6f636b4501013c4f7074696f6e3c42616c616e63653e0001386372656174696f6e5f7374616b6518011c42616c616e636500009d090c5070616c6c65745f776f726b696e675f67726f7570147479706573384a6f624170706c69636174696f6e0c244163636f756e7449640100204d656d626572496401281048617368012c0018013c726f6c655f6163636f756e745f69640001244163636f756e7449640001447265776172645f6163636f756e745f69640001244163636f756e7449640001487374616b696e675f6163636f756e745f69640001244163636f756e7449640001246d656d6265725f69642801204d656d62657249640001406465736372697074696f6e5f686173682c0110486173680001286f70656e696e675f69642801244f70656e696e6749640000a1090c5070616c6c65745f776f726b696e675f67726f75701474797065732c47726f7570576f726b657210244163636f756e7449640100204d656d626572496401282c426c6f636b4e756d62657201101c42616c616e63650118002401246d656d6265725f69642801204d656d626572496400013c726f6c655f6163636f756e745f69640001244163636f756e7449640001487374616b696e675f6163636f756e745f69640001244163636f756e7449640001447265776172645f6163636f756e745f69640001244163636f756e744964000148737461727465645f6c656176696e675f61740102014c4f7074696f6e3c426c6f636b4e756d6265723e0001506a6f625f756e7374616b696e675f706572696f6410012c426c6f636b4e756d6265720001407265776172645f7065725f626c6f636b4501013c4f7074696f6e3c42616c616e63653e0001346d69737365645f7265776172644501013c4f7074696f6e3c42616c616e63653e000128637265617465645f617410012c426c6f636b4e756d6265720000a5090c5070616c6c65745f776f726b696e675f67726f7570186572726f7273144572726f720804540004490001803c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f7729605374616b6542616c616e636543616e6e6f7442655a65726f0001049850726f7669646564207374616b652062616c616e63652063616e6e6f74206265207a65726f2e4c4f70656e696e67446f65734e6f7445786973740002045c4f70656e696e6720646f6573206e6f742065786973742e6443616e6e6f74486972654d756c7469706c654c656164657273000304bc43616e6e6f742066696c6c206f70656e696e672077697468206d756c7469706c65206170706c69636174696f6e732e74576f726b65724170706c69636174696f6e446f65734e6f74457869737400040488576f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e744d6178416374697665576f726b65724e756d626572457863656564656400050488576f726b696e672067726f75702073697a65206c696d69742065786365656465642e9c5375636365737366756c576f726b65724170706c69636174696f6e446f65734e6f744578697374000604b45375636365737366756c20776f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e8043616e6e6f74486972654c65616465725768656e4c6561646572457869737473000704c45468657265206973206c656164657220616c72656164792c2063616e6e6f74206869726520616e6f74686572206f6e652e4049734e6f744c6561644163636f756e740008044c4e6f742061206c656164206163636f756e742e4443757272656e744c6561644e6f745365740009046043757272656e74206c656164206973206e6f74207365742e48576f726b6572446f65734e6f744578697374000a0458576f726b657220646f6573206e6f742065786973742e4c496e76616c69644d656d6265724f726967696e000b0470496e76616c6964206f726967696e20666f722061206d656d6265722e705369676e657249734e6f74576f726b6572526f6c654163636f756e74000c04885369676e6572206973206e6f7420776f726b657220726f6c65206163636f756e742e4842656c6f774d696e696d756d5374616b6573000d04885374616b696e67206c657373207468616e20746865206c6f77657220626f756e642e7c496e73756666696369656e7442616c616e6365546f436f7665725374616b65000e0490496e73756666696369656e742062616c616e636520746f20636f766572207374616b652e884170706c69636174696f6e5374616b65446f65736e744d617463684f70656e696e67000f04d84170706c69636174696f6e207374616b65206973206c657373207468616e207265717569726564206f70656e696e67207374616b652e504f726967696e49734e6f744170706c6963616e74001004604f726967696e206973206e6f74206170706c6963616e742e3c576f726b657249734c656176696e6700110498496e76616c6964206f7065726174696f6e202d20776f726b6572206973206c656176696e672e5043616e6e6f74526577617264576974685a65726f0012046452657761726420636f756c64206e6f74206265207a65726f2e78496e76616c69645374616b696e674163636f756e74466f724d656d626572001304ac5374616b696e67206163636f756e7420646f65736e27742062656c6f6e6720746f2061206d656d6265722e5c436f6e666c6963745374616b65734f6e4163636f756e74001404b05374616b696e67206163636f756e7420636f6e7461696e7320636f6e666c696374696e67207374616b65732e44576f726b65724861734e6f5265776172640015047c576f726b657220686173206e6f20726563757272696e67207265776172642e78556e7374616b696e67506572696f644c6573735468616e4d696e696d756d001604090153706563696669656420756e7374616b696e6720706572696f64206973206c657373207468656e206d696e696d756d2073657420666f72207468652067726f75702e3c43616e6e6f745370656e645a65726f00170460496e76616c6964207370656e64696e6720616d6f756e742e74496e73756666696369656e74427564676574466f725370656e64696e67001804a449742773206e6f7420656e6f7567682062756467657420666f722074686973207370656e64696e672e584e6f4170706c69636174696f6e7350726f7669646564001904bc43616e6e6f742066696c6c206f70656e696e67202d206e6f206170706c69636174696f6e732070726f76696465642ea043616e6e6f7444656372656173655374616b6544656c7461477265617465725468616e5374616b65001a04fc43616e6e6f74206465637265617365207374616b65202d207374616b652064656c74612067726561746572207468616e20696e697469616c207374616b652e644170706c69636174696f6e734e6f74466f724f70656e696e67001b04f0547279696e6720746f2066696c6c206f70656e696e67207769746820616e206170706c69636174696f6e20666f72206f74686572206f70656e696e6764576f726b657253746f7261676556616c7565546f6f4c6f6e67001c0480576f726b65722073746f72616765207465787420697320746f6f206c6f6e672e70496e73756666696369656e74546f6b656e73466f7246756e64696e67001d04f8496e73756666696369656e7420746f6b656e7320666f722066756e64696e6720286f6e206d656d62657220636f6e74726f6c6c6572206163636f756e7429445a65726f546f6b656e7346756e64696e67001e047c547279696e6720746f2066756e642077697468207a65726f20746f6b656e7378496e73756666696369656e7442616c616e6365466f725472616e73666572001f04b443616e6e6f742077697468647261773a20696e73756666696369656e74206275646765742062616c616e63652e048c44697363757373696f6e206d6f64756c6520707265646566696e6564206572726f7273a9090c5070616c6c65745f776f726b696e675f67726f7570186572726f7273144572726f720804540004490001803c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f7729605374616b6542616c616e636543616e6e6f7442655a65726f0001049850726f7669646564207374616b652062616c616e63652063616e6e6f74206265207a65726f2e4c4f70656e696e67446f65734e6f7445786973740002045c4f70656e696e6720646f6573206e6f742065786973742e6443616e6e6f74486972654d756c7469706c654c656164657273000304bc43616e6e6f742066696c6c206f70656e696e672077697468206d756c7469706c65206170706c69636174696f6e732e74576f726b65724170706c69636174696f6e446f65734e6f74457869737400040488576f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e744d6178416374697665576f726b65724e756d626572457863656564656400050488576f726b696e672067726f75702073697a65206c696d69742065786365656465642e9c5375636365737366756c576f726b65724170706c69636174696f6e446f65734e6f744578697374000604b45375636365737366756c20776f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e8043616e6e6f74486972654c65616465725768656e4c6561646572457869737473000704c45468657265206973206c656164657220616c72656164792c2063616e6e6f74206869726520616e6f74686572206f6e652e4049734e6f744c6561644163636f756e740008044c4e6f742061206c656164206163636f756e742e4443757272656e744c6561644e6f745365740009046043757272656e74206c656164206973206e6f74207365742e48576f726b6572446f65734e6f744578697374000a0458576f726b657220646f6573206e6f742065786973742e4c496e76616c69644d656d6265724f726967696e000b0470496e76616c6964206f726967696e20666f722061206d656d6265722e705369676e657249734e6f74576f726b6572526f6c654163636f756e74000c04885369676e6572206973206e6f7420776f726b657220726f6c65206163636f756e742e4842656c6f774d696e696d756d5374616b6573000d04885374616b696e67206c657373207468616e20746865206c6f77657220626f756e642e7c496e73756666696369656e7442616c616e6365546f436f7665725374616b65000e0490496e73756666696369656e742062616c616e636520746f20636f766572207374616b652e884170706c69636174696f6e5374616b65446f65736e744d617463684f70656e696e67000f04d84170706c69636174696f6e207374616b65206973206c657373207468616e207265717569726564206f70656e696e67207374616b652e504f726967696e49734e6f744170706c6963616e74001004604f726967696e206973206e6f74206170706c6963616e742e3c576f726b657249734c656176696e6700110498496e76616c6964206f7065726174696f6e202d20776f726b6572206973206c656176696e672e5043616e6e6f74526577617264576974685a65726f0012046452657761726420636f756c64206e6f74206265207a65726f2e78496e76616c69645374616b696e674163636f756e74466f724d656d626572001304ac5374616b696e67206163636f756e7420646f65736e27742062656c6f6e6720746f2061206d656d6265722e5c436f6e666c6963745374616b65734f6e4163636f756e74001404b05374616b696e67206163636f756e7420636f6e7461696e7320636f6e666c696374696e67207374616b65732e44576f726b65724861734e6f5265776172640015047c576f726b657220686173206e6f20726563757272696e67207265776172642e78556e7374616b696e67506572696f644c6573735468616e4d696e696d756d001604090153706563696669656420756e7374616b696e6720706572696f64206973206c657373207468656e206d696e696d756d2073657420666f72207468652067726f75702e3c43616e6e6f745370656e645a65726f00170460496e76616c6964207370656e64696e6720616d6f756e742e74496e73756666696369656e74427564676574466f725370656e64696e67001804a449742773206e6f7420656e6f7567682062756467657420666f722074686973207370656e64696e672e584e6f4170706c69636174696f6e7350726f7669646564001904bc43616e6e6f742066696c6c206f70656e696e67202d206e6f206170706c69636174696f6e732070726f76696465642ea043616e6e6f7444656372656173655374616b6544656c7461477265617465725468616e5374616b65001a04fc43616e6e6f74206465637265617365207374616b65202d207374616b652064656c74612067726561746572207468616e20696e697469616c207374616b652e644170706c69636174696f6e734e6f74466f724f70656e696e67001b04f0547279696e6720746f2066696c6c206f70656e696e67207769746820616e206170706c69636174696f6e20666f72206f74686572206f70656e696e6764576f726b657253746f7261676556616c7565546f6f4c6f6e67001c0480576f726b65722073746f72616765207465787420697320746f6f206c6f6e672e70496e73756666696369656e74546f6b656e73466f7246756e64696e67001d04f8496e73756666696369656e7420746f6b656e7320666f722066756e64696e6720286f6e206d656d62657220636f6e74726f6c6c6572206163636f756e7429445a65726f546f6b656e7346756e64696e67001e047c547279696e6720746f2066756e642077697468207a65726f20746f6b656e7378496e73756666696369656e7442616c616e6365466f725472616e73666572001f04b443616e6e6f742077697468647261773a20696e73756666696369656e74206275646765742062616c616e63652e048c44697363757373696f6e206d6f64756c6520707265646566696e6564206572726f7273ad090c5070616c6c65745f776f726b696e675f67726f7570186572726f7273144572726f720804540004490001803c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f7729605374616b6542616c616e636543616e6e6f7442655a65726f0001049850726f7669646564207374616b652062616c616e63652063616e6e6f74206265207a65726f2e4c4f70656e696e67446f65734e6f7445786973740002045c4f70656e696e6720646f6573206e6f742065786973742e6443616e6e6f74486972654d756c7469706c654c656164657273000304bc43616e6e6f742066696c6c206f70656e696e672077697468206d756c7469706c65206170706c69636174696f6e732e74576f726b65724170706c69636174696f6e446f65734e6f74457869737400040488576f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e744d6178416374697665576f726b65724e756d626572457863656564656400050488576f726b696e672067726f75702073697a65206c696d69742065786365656465642e9c5375636365737366756c576f726b65724170706c69636174696f6e446f65734e6f744578697374000604b45375636365737366756c20776f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e8043616e6e6f74486972654c65616465725768656e4c6561646572457869737473000704c45468657265206973206c656164657220616c72656164792c2063616e6e6f74206869726520616e6f74686572206f6e652e4049734e6f744c6561644163636f756e740008044c4e6f742061206c656164206163636f756e742e4443757272656e744c6561644e6f745365740009046043757272656e74206c656164206973206e6f74207365742e48576f726b6572446f65734e6f744578697374000a0458576f726b657220646f6573206e6f742065786973742e4c496e76616c69644d656d6265724f726967696e000b0470496e76616c6964206f726967696e20666f722061206d656d6265722e705369676e657249734e6f74576f726b6572526f6c654163636f756e74000c04885369676e6572206973206e6f7420776f726b657220726f6c65206163636f756e742e4842656c6f774d696e696d756d5374616b6573000d04885374616b696e67206c657373207468616e20746865206c6f77657220626f756e642e7c496e73756666696369656e7442616c616e6365546f436f7665725374616b65000e0490496e73756666696369656e742062616c616e636520746f20636f766572207374616b652e884170706c69636174696f6e5374616b65446f65736e744d617463684f70656e696e67000f04d84170706c69636174696f6e207374616b65206973206c657373207468616e207265717569726564206f70656e696e67207374616b652e504f726967696e49734e6f744170706c6963616e74001004604f726967696e206973206e6f74206170706c6963616e742e3c576f726b657249734c656176696e6700110498496e76616c6964206f7065726174696f6e202d20776f726b6572206973206c656176696e672e5043616e6e6f74526577617264576974685a65726f0012046452657761726420636f756c64206e6f74206265207a65726f2e78496e76616c69645374616b696e674163636f756e74466f724d656d626572001304ac5374616b696e67206163636f756e7420646f65736e27742062656c6f6e6720746f2061206d656d6265722e5c436f6e666c6963745374616b65734f6e4163636f756e74001404b05374616b696e67206163636f756e7420636f6e7461696e7320636f6e666c696374696e67207374616b65732e44576f726b65724861734e6f5265776172640015047c576f726b657220686173206e6f20726563757272696e67207265776172642e78556e7374616b696e67506572696f644c6573735468616e4d696e696d756d001604090153706563696669656420756e7374616b696e6720706572696f64206973206c657373207468656e206d696e696d756d2073657420666f72207468652067726f75702e3c43616e6e6f745370656e645a65726f00170460496e76616c6964207370656e64696e6720616d6f756e742e74496e73756666696369656e74427564676574466f725370656e64696e67001804a449742773206e6f7420656e6f7567682062756467657420666f722074686973207370656e64696e672e584e6f4170706c69636174696f6e7350726f7669646564001904bc43616e6e6f742066696c6c206f70656e696e67202d206e6f206170706c69636174696f6e732070726f76696465642ea043616e6e6f7444656372656173655374616b6544656c7461477265617465725468616e5374616b65001a04fc43616e6e6f74206465637265617365207374616b65202d207374616b652064656c74612067726561746572207468616e20696e697469616c207374616b652e644170706c69636174696f6e734e6f74466f724f70656e696e67001b04f0547279696e6720746f2066696c6c206f70656e696e67207769746820616e206170706c69636174696f6e20666f72206f74686572206f70656e696e6764576f726b657253746f7261676556616c7565546f6f4c6f6e67001c0480576f726b65722073746f72616765207465787420697320746f6f206c6f6e672e70496e73756666696369656e74546f6b656e73466f7246756e64696e67001d04f8496e73756666696369656e7420746f6b656e7320666f722066756e64696e6720286f6e206d656d62657220636f6e74726f6c6c6572206163636f756e7429445a65726f546f6b656e7346756e64696e67001e047c547279696e6720746f2066756e642077697468207a65726f20746f6b656e7378496e73756666696369656e7442616c616e6365466f725472616e73666572001f04b443616e6e6f742077697468647261773a20696e73756666696369656e74206275646765742062616c616e63652e048c44697363757373696f6e206d6f64756c6520707265646566696e6564206572726f7273b1090c5070616c6c65745f776f726b696e675f67726f7570186572726f7273144572726f720804540004490001803c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f7729605374616b6542616c616e636543616e6e6f7442655a65726f0001049850726f7669646564207374616b652062616c616e63652063616e6e6f74206265207a65726f2e4c4f70656e696e67446f65734e6f7445786973740002045c4f70656e696e6720646f6573206e6f742065786973742e6443616e6e6f74486972654d756c7469706c654c656164657273000304bc43616e6e6f742066696c6c206f70656e696e672077697468206d756c7469706c65206170706c69636174696f6e732e74576f726b65724170706c69636174696f6e446f65734e6f74457869737400040488576f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e744d6178416374697665576f726b65724e756d626572457863656564656400050488576f726b696e672067726f75702073697a65206c696d69742065786365656465642e9c5375636365737366756c576f726b65724170706c69636174696f6e446f65734e6f744578697374000604b45375636365737366756c20776f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e8043616e6e6f74486972654c65616465725768656e4c6561646572457869737473000704c45468657265206973206c656164657220616c72656164792c2063616e6e6f74206869726520616e6f74686572206f6e652e4049734e6f744c6561644163636f756e740008044c4e6f742061206c656164206163636f756e742e4443757272656e744c6561644e6f745365740009046043757272656e74206c656164206973206e6f74207365742e48576f726b6572446f65734e6f744578697374000a0458576f726b657220646f6573206e6f742065786973742e4c496e76616c69644d656d6265724f726967696e000b0470496e76616c6964206f726967696e20666f722061206d656d6265722e705369676e657249734e6f74576f726b6572526f6c654163636f756e74000c04885369676e6572206973206e6f7420776f726b657220726f6c65206163636f756e742e4842656c6f774d696e696d756d5374616b6573000d04885374616b696e67206c657373207468616e20746865206c6f77657220626f756e642e7c496e73756666696369656e7442616c616e6365546f436f7665725374616b65000e0490496e73756666696369656e742062616c616e636520746f20636f766572207374616b652e884170706c69636174696f6e5374616b65446f65736e744d617463684f70656e696e67000f04d84170706c69636174696f6e207374616b65206973206c657373207468616e207265717569726564206f70656e696e67207374616b652e504f726967696e49734e6f744170706c6963616e74001004604f726967696e206973206e6f74206170706c6963616e742e3c576f726b657249734c656176696e6700110498496e76616c6964206f7065726174696f6e202d20776f726b6572206973206c656176696e672e5043616e6e6f74526577617264576974685a65726f0012046452657761726420636f756c64206e6f74206265207a65726f2e78496e76616c69645374616b696e674163636f756e74466f724d656d626572001304ac5374616b696e67206163636f756e7420646f65736e27742062656c6f6e6720746f2061206d656d6265722e5c436f6e666c6963745374616b65734f6e4163636f756e74001404b05374616b696e67206163636f756e7420636f6e7461696e7320636f6e666c696374696e67207374616b65732e44576f726b65724861734e6f5265776172640015047c576f726b657220686173206e6f20726563757272696e67207265776172642e78556e7374616b696e67506572696f644c6573735468616e4d696e696d756d001604090153706563696669656420756e7374616b696e6720706572696f64206973206c657373207468656e206d696e696d756d2073657420666f72207468652067726f75702e3c43616e6e6f745370656e645a65726f00170460496e76616c6964207370656e64696e6720616d6f756e742e74496e73756666696369656e74427564676574466f725370656e64696e67001804a449742773206e6f7420656e6f7567682062756467657420666f722074686973207370656e64696e672e584e6f4170706c69636174696f6e7350726f7669646564001904bc43616e6e6f742066696c6c206f70656e696e67202d206e6f206170706c69636174696f6e732070726f76696465642ea043616e6e6f7444656372656173655374616b6544656c7461477265617465725468616e5374616b65001a04fc43616e6e6f74206465637265617365207374616b65202d207374616b652064656c74612067726561746572207468616e20696e697469616c207374616b652e644170706c69636174696f6e734e6f74466f724f70656e696e67001b04f0547279696e6720746f2066696c6c206f70656e696e67207769746820616e206170706c69636174696f6e20666f72206f74686572206f70656e696e6764576f726b657253746f7261676556616c7565546f6f4c6f6e67001c0480576f726b65722073746f72616765207465787420697320746f6f206c6f6e672e70496e73756666696369656e74546f6b656e73466f7246756e64696e67001d04f8496e73756666696369656e7420746f6b656e7320666f722066756e64696e6720286f6e206d656d62657220636f6e74726f6c6c6572206163636f756e7429445a65726f546f6b656e7346756e64696e67001e047c547279696e6720746f2066756e642077697468207a65726f20746f6b656e7378496e73756666696369656e7442616c616e6365466f725472616e73666572001f04b443616e6e6f742077697468647261773a20696e73756666696369656e74206275646765742062616c616e63652e048c44697363757373696f6e206d6f64756c6520707265646566696e6564206572726f7273b5090c5070616c6c65745f776f726b696e675f67726f7570186572726f7273144572726f720804540004490001803c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f7729605374616b6542616c616e636543616e6e6f7442655a65726f0001049850726f7669646564207374616b652062616c616e63652063616e6e6f74206265207a65726f2e4c4f70656e696e67446f65734e6f7445786973740002045c4f70656e696e6720646f6573206e6f742065786973742e6443616e6e6f74486972654d756c7469706c654c656164657273000304bc43616e6e6f742066696c6c206f70656e696e672077697468206d756c7469706c65206170706c69636174696f6e732e74576f726b65724170706c69636174696f6e446f65734e6f74457869737400040488576f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e744d6178416374697665576f726b65724e756d626572457863656564656400050488576f726b696e672067726f75702073697a65206c696d69742065786365656465642e9c5375636365737366756c576f726b65724170706c69636174696f6e446f65734e6f744578697374000604b45375636365737366756c20776f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e8043616e6e6f74486972654c65616465725768656e4c6561646572457869737473000704c45468657265206973206c656164657220616c72656164792c2063616e6e6f74206869726520616e6f74686572206f6e652e4049734e6f744c6561644163636f756e740008044c4e6f742061206c656164206163636f756e742e4443757272656e744c6561644e6f745365740009046043757272656e74206c656164206973206e6f74207365742e48576f726b6572446f65734e6f744578697374000a0458576f726b657220646f6573206e6f742065786973742e4c496e76616c69644d656d6265724f726967696e000b0470496e76616c6964206f726967696e20666f722061206d656d6265722e705369676e657249734e6f74576f726b6572526f6c654163636f756e74000c04885369676e6572206973206e6f7420776f726b657220726f6c65206163636f756e742e4842656c6f774d696e696d756d5374616b6573000d04885374616b696e67206c657373207468616e20746865206c6f77657220626f756e642e7c496e73756666696369656e7442616c616e6365546f436f7665725374616b65000e0490496e73756666696369656e742062616c616e636520746f20636f766572207374616b652e884170706c69636174696f6e5374616b65446f65736e744d617463684f70656e696e67000f04d84170706c69636174696f6e207374616b65206973206c657373207468616e207265717569726564206f70656e696e67207374616b652e504f726967696e49734e6f744170706c6963616e74001004604f726967696e206973206e6f74206170706c6963616e742e3c576f726b657249734c656176696e6700110498496e76616c6964206f7065726174696f6e202d20776f726b6572206973206c656176696e672e5043616e6e6f74526577617264576974685a65726f0012046452657761726420636f756c64206e6f74206265207a65726f2e78496e76616c69645374616b696e674163636f756e74466f724d656d626572001304ac5374616b696e67206163636f756e7420646f65736e27742062656c6f6e6720746f2061206d656d6265722e5c436f6e666c6963745374616b65734f6e4163636f756e74001404b05374616b696e67206163636f756e7420636f6e7461696e7320636f6e666c696374696e67207374616b65732e44576f726b65724861734e6f5265776172640015047c576f726b657220686173206e6f20726563757272696e67207265776172642e78556e7374616b696e67506572696f644c6573735468616e4d696e696d756d001604090153706563696669656420756e7374616b696e6720706572696f64206973206c657373207468656e206d696e696d756d2073657420666f72207468652067726f75702e3c43616e6e6f745370656e645a65726f00170460496e76616c6964207370656e64696e6720616d6f756e742e74496e73756666696369656e74427564676574466f725370656e64696e67001804a449742773206e6f7420656e6f7567682062756467657420666f722074686973207370656e64696e672e584e6f4170706c69636174696f6e7350726f7669646564001904bc43616e6e6f742066696c6c206f70656e696e67202d206e6f206170706c69636174696f6e732070726f76696465642ea043616e6e6f7444656372656173655374616b6544656c7461477265617465725468616e5374616b65001a04fc43616e6e6f74206465637265617365207374616b65202d207374616b652064656c74612067726561746572207468616e20696e697469616c207374616b652e644170706c69636174696f6e734e6f74466f724f70656e696e67001b04f0547279696e6720746f2066696c6c206f70656e696e67207769746820616e206170706c69636174696f6e20666f72206f74686572206f70656e696e6764576f726b657253746f7261676556616c7565546f6f4c6f6e67001c0480576f726b65722073746f72616765207465787420697320746f6f206c6f6e672e70496e73756666696369656e74546f6b656e73466f7246756e64696e67001d04f8496e73756666696369656e7420746f6b656e7320666f722066756e64696e6720286f6e206d656d62657220636f6e74726f6c6c6572206163636f756e7429445a65726f546f6b656e7346756e64696e67001e047c547279696e6720746f2066756e642077697468207a65726f20746f6b656e7378496e73756666696369656e7442616c616e6365466f725472616e73666572001f04b443616e6e6f742077697468647261773a20696e73756666696369656e74206275646765742062616c616e63652e048c44697363757373696f6e206d6f64756c6520707265646566696e6564206572726f7273b9090c5070616c6c65745f776f726b696e675f67726f7570186572726f7273144572726f720804540004490001803c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f7729605374616b6542616c616e636543616e6e6f7442655a65726f0001049850726f7669646564207374616b652062616c616e63652063616e6e6f74206265207a65726f2e4c4f70656e696e67446f65734e6f7445786973740002045c4f70656e696e6720646f6573206e6f742065786973742e6443616e6e6f74486972654d756c7469706c654c656164657273000304bc43616e6e6f742066696c6c206f70656e696e672077697468206d756c7469706c65206170706c69636174696f6e732e74576f726b65724170706c69636174696f6e446f65734e6f74457869737400040488576f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e744d6178416374697665576f726b65724e756d626572457863656564656400050488576f726b696e672067726f75702073697a65206c696d69742065786365656465642e9c5375636365737366756c576f726b65724170706c69636174696f6e446f65734e6f744578697374000604b45375636365737366756c20776f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e8043616e6e6f74486972654c65616465725768656e4c6561646572457869737473000704c45468657265206973206c656164657220616c72656164792c2063616e6e6f74206869726520616e6f74686572206f6e652e4049734e6f744c6561644163636f756e740008044c4e6f742061206c656164206163636f756e742e4443757272656e744c6561644e6f745365740009046043757272656e74206c656164206973206e6f74207365742e48576f726b6572446f65734e6f744578697374000a0458576f726b657220646f6573206e6f742065786973742e4c496e76616c69644d656d6265724f726967696e000b0470496e76616c6964206f726967696e20666f722061206d656d6265722e705369676e657249734e6f74576f726b6572526f6c654163636f756e74000c04885369676e6572206973206e6f7420776f726b657220726f6c65206163636f756e742e4842656c6f774d696e696d756d5374616b6573000d04885374616b696e67206c657373207468616e20746865206c6f77657220626f756e642e7c496e73756666696369656e7442616c616e6365546f436f7665725374616b65000e0490496e73756666696369656e742062616c616e636520746f20636f766572207374616b652e884170706c69636174696f6e5374616b65446f65736e744d617463684f70656e696e67000f04d84170706c69636174696f6e207374616b65206973206c657373207468616e207265717569726564206f70656e696e67207374616b652e504f726967696e49734e6f744170706c6963616e74001004604f726967696e206973206e6f74206170706c6963616e742e3c576f726b657249734c656176696e6700110498496e76616c6964206f7065726174696f6e202d20776f726b6572206973206c656176696e672e5043616e6e6f74526577617264576974685a65726f0012046452657761726420636f756c64206e6f74206265207a65726f2e78496e76616c69645374616b696e674163636f756e74466f724d656d626572001304ac5374616b696e67206163636f756e7420646f65736e27742062656c6f6e6720746f2061206d656d6265722e5c436f6e666c6963745374616b65734f6e4163636f756e74001404b05374616b696e67206163636f756e7420636f6e7461696e7320636f6e666c696374696e67207374616b65732e44576f726b65724861734e6f5265776172640015047c576f726b657220686173206e6f20726563757272696e67207265776172642e78556e7374616b696e67506572696f644c6573735468616e4d696e696d756d001604090153706563696669656420756e7374616b696e6720706572696f64206973206c657373207468656e206d696e696d756d2073657420666f72207468652067726f75702e3c43616e6e6f745370656e645a65726f00170460496e76616c6964207370656e64696e6720616d6f756e742e74496e73756666696369656e74427564676574466f725370656e64696e67001804a449742773206e6f7420656e6f7567682062756467657420666f722074686973207370656e64696e672e584e6f4170706c69636174696f6e7350726f7669646564001904bc43616e6e6f742066696c6c206f70656e696e67202d206e6f206170706c69636174696f6e732070726f76696465642ea043616e6e6f7444656372656173655374616b6544656c7461477265617465725468616e5374616b65001a04fc43616e6e6f74206465637265617365207374616b65202d207374616b652064656c74612067726561746572207468616e20696e697469616c207374616b652e644170706c69636174696f6e734e6f74466f724f70656e696e67001b04f0547279696e6720746f2066696c6c206f70656e696e67207769746820616e206170706c69636174696f6e20666f72206f74686572206f70656e696e6764576f726b657253746f7261676556616c7565546f6f4c6f6e67001c0480576f726b65722073746f72616765207465787420697320746f6f206c6f6e672e70496e73756666696369656e74546f6b656e73466f7246756e64696e67001d04f8496e73756666696369656e7420746f6b656e7320666f722066756e64696e6720286f6e206d656d62657220636f6e74726f6c6c6572206163636f756e7429445a65726f546f6b656e7346756e64696e67001e047c547279696e6720746f2066756e642077697468207a65726f20746f6b656e7378496e73756666696369656e7442616c616e6365466f725472616e73666572001f04b443616e6e6f742077697468647261773a20696e73756666696369656e74206275646765742062616c616e63652e048c44697363757373696f6e206d6f64756c6520707265646566696e6564206572726f7273bd090c5070616c6c65745f776f726b696e675f67726f7570186572726f7273144572726f720804540004490001803c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f7729605374616b6542616c616e636543616e6e6f7442655a65726f0001049850726f7669646564207374616b652062616c616e63652063616e6e6f74206265207a65726f2e4c4f70656e696e67446f65734e6f7445786973740002045c4f70656e696e6720646f6573206e6f742065786973742e6443616e6e6f74486972654d756c7469706c654c656164657273000304bc43616e6e6f742066696c6c206f70656e696e672077697468206d756c7469706c65206170706c69636174696f6e732e74576f726b65724170706c69636174696f6e446f65734e6f74457869737400040488576f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e744d6178416374697665576f726b65724e756d626572457863656564656400050488576f726b696e672067726f75702073697a65206c696d69742065786365656465642e9c5375636365737366756c576f726b65724170706c69636174696f6e446f65734e6f744578697374000604b45375636365737366756c20776f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e8043616e6e6f74486972654c65616465725768656e4c6561646572457869737473000704c45468657265206973206c656164657220616c72656164792c2063616e6e6f74206869726520616e6f74686572206f6e652e4049734e6f744c6561644163636f756e740008044c4e6f742061206c656164206163636f756e742e4443757272656e744c6561644e6f745365740009046043757272656e74206c656164206973206e6f74207365742e48576f726b6572446f65734e6f744578697374000a0458576f726b657220646f6573206e6f742065786973742e4c496e76616c69644d656d6265724f726967696e000b0470496e76616c6964206f726967696e20666f722061206d656d6265722e705369676e657249734e6f74576f726b6572526f6c654163636f756e74000c04885369676e6572206973206e6f7420776f726b657220726f6c65206163636f756e742e4842656c6f774d696e696d756d5374616b6573000d04885374616b696e67206c657373207468616e20746865206c6f77657220626f756e642e7c496e73756666696369656e7442616c616e6365546f436f7665725374616b65000e0490496e73756666696369656e742062616c616e636520746f20636f766572207374616b652e884170706c69636174696f6e5374616b65446f65736e744d617463684f70656e696e67000f04d84170706c69636174696f6e207374616b65206973206c657373207468616e207265717569726564206f70656e696e67207374616b652e504f726967696e49734e6f744170706c6963616e74001004604f726967696e206973206e6f74206170706c6963616e742e3c576f726b657249734c656176696e6700110498496e76616c6964206f7065726174696f6e202d20776f726b6572206973206c656176696e672e5043616e6e6f74526577617264576974685a65726f0012046452657761726420636f756c64206e6f74206265207a65726f2e78496e76616c69645374616b696e674163636f756e74466f724d656d626572001304ac5374616b696e67206163636f756e7420646f65736e27742062656c6f6e6720746f2061206d656d6265722e5c436f6e666c6963745374616b65734f6e4163636f756e74001404b05374616b696e67206163636f756e7420636f6e7461696e7320636f6e666c696374696e67207374616b65732e44576f726b65724861734e6f5265776172640015047c576f726b657220686173206e6f20726563757272696e67207265776172642e78556e7374616b696e67506572696f644c6573735468616e4d696e696d756d001604090153706563696669656420756e7374616b696e6720706572696f64206973206c657373207468656e206d696e696d756d2073657420666f72207468652067726f75702e3c43616e6e6f745370656e645a65726f00170460496e76616c6964207370656e64696e6720616d6f756e742e74496e73756666696369656e74427564676574466f725370656e64696e67001804a449742773206e6f7420656e6f7567682062756467657420666f722074686973207370656e64696e672e584e6f4170706c69636174696f6e7350726f7669646564001904bc43616e6e6f742066696c6c206f70656e696e67202d206e6f206170706c69636174696f6e732070726f76696465642ea043616e6e6f7444656372656173655374616b6544656c7461477265617465725468616e5374616b65001a04fc43616e6e6f74206465637265617365207374616b65202d207374616b652064656c74612067726561746572207468616e20696e697469616c207374616b652e644170706c69636174696f6e734e6f74466f724f70656e696e67001b04f0547279696e6720746f2066696c6c206f70656e696e67207769746820616e206170706c69636174696f6e20666f72206f74686572206f70656e696e6764576f726b657253746f7261676556616c7565546f6f4c6f6e67001c0480576f726b65722073746f72616765207465787420697320746f6f206c6f6e672e70496e73756666696369656e74546f6b656e73466f7246756e64696e67001d04f8496e73756666696369656e7420746f6b656e7320666f722066756e64696e6720286f6e206d656d62657220636f6e74726f6c6c6572206163636f756e7429445a65726f546f6b656e7346756e64696e67001e047c547279696e6720746f2066756e642077697468207a65726f20746f6b656e7378496e73756666696369656e7442616c616e6365466f725472616e73666572001f04b443616e6e6f742077697468647261773a20696e73756666696369656e74206275646765742062616c616e63652e048c44697363757373696f6e206d6f64756c6520707265646566696e6564206572726f7273c1090c5070616c6c65745f776f726b696e675f67726f7570186572726f7273144572726f720804540004490001803c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f7729605374616b6542616c616e636543616e6e6f7442655a65726f0001049850726f7669646564207374616b652062616c616e63652063616e6e6f74206265207a65726f2e4c4f70656e696e67446f65734e6f7445786973740002045c4f70656e696e6720646f6573206e6f742065786973742e6443616e6e6f74486972654d756c7469706c654c656164657273000304bc43616e6e6f742066696c6c206f70656e696e672077697468206d756c7469706c65206170706c69636174696f6e732e74576f726b65724170706c69636174696f6e446f65734e6f74457869737400040488576f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e744d6178416374697665576f726b65724e756d626572457863656564656400050488576f726b696e672067726f75702073697a65206c696d69742065786365656465642e9c5375636365737366756c576f726b65724170706c69636174696f6e446f65734e6f744578697374000604b45375636365737366756c20776f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e8043616e6e6f74486972654c65616465725768656e4c6561646572457869737473000704c45468657265206973206c656164657220616c72656164792c2063616e6e6f74206869726520616e6f74686572206f6e652e4049734e6f744c6561644163636f756e740008044c4e6f742061206c656164206163636f756e742e4443757272656e744c6561644e6f745365740009046043757272656e74206c656164206973206e6f74207365742e48576f726b6572446f65734e6f744578697374000a0458576f726b657220646f6573206e6f742065786973742e4c496e76616c69644d656d6265724f726967696e000b0470496e76616c6964206f726967696e20666f722061206d656d6265722e705369676e657249734e6f74576f726b6572526f6c654163636f756e74000c04885369676e6572206973206e6f7420776f726b657220726f6c65206163636f756e742e4842656c6f774d696e696d756d5374616b6573000d04885374616b696e67206c657373207468616e20746865206c6f77657220626f756e642e7c496e73756666696369656e7442616c616e6365546f436f7665725374616b65000e0490496e73756666696369656e742062616c616e636520746f20636f766572207374616b652e884170706c69636174696f6e5374616b65446f65736e744d617463684f70656e696e67000f04d84170706c69636174696f6e207374616b65206973206c657373207468616e207265717569726564206f70656e696e67207374616b652e504f726967696e49734e6f744170706c6963616e74001004604f726967696e206973206e6f74206170706c6963616e742e3c576f726b657249734c656176696e6700110498496e76616c6964206f7065726174696f6e202d20776f726b6572206973206c656176696e672e5043616e6e6f74526577617264576974685a65726f0012046452657761726420636f756c64206e6f74206265207a65726f2e78496e76616c69645374616b696e674163636f756e74466f724d656d626572001304ac5374616b696e67206163636f756e7420646f65736e27742062656c6f6e6720746f2061206d656d6265722e5c436f6e666c6963745374616b65734f6e4163636f756e74001404b05374616b696e67206163636f756e7420636f6e7461696e7320636f6e666c696374696e67207374616b65732e44576f726b65724861734e6f5265776172640015047c576f726b657220686173206e6f20726563757272696e67207265776172642e78556e7374616b696e67506572696f644c6573735468616e4d696e696d756d001604090153706563696669656420756e7374616b696e6720706572696f64206973206c657373207468656e206d696e696d756d2073657420666f72207468652067726f75702e3c43616e6e6f745370656e645a65726f00170460496e76616c6964207370656e64696e6720616d6f756e742e74496e73756666696369656e74427564676574466f725370656e64696e67001804a449742773206e6f7420656e6f7567682062756467657420666f722074686973207370656e64696e672e584e6f4170706c69636174696f6e7350726f7669646564001904bc43616e6e6f742066696c6c206f70656e696e67202d206e6f206170706c69636174696f6e732070726f76696465642ea043616e6e6f7444656372656173655374616b6544656c7461477265617465725468616e5374616b65001a04fc43616e6e6f74206465637265617365207374616b65202d207374616b652064656c74612067726561746572207468616e20696e697469616c207374616b652e644170706c69636174696f6e734e6f74466f724f70656e696e67001b04f0547279696e6720746f2066696c6c206f70656e696e67207769746820616e206170706c69636174696f6e20666f72206f74686572206f70656e696e6764576f726b657253746f7261676556616c7565546f6f4c6f6e67001c0480576f726b65722073746f72616765207465787420697320746f6f206c6f6e672e70496e73756666696369656e74546f6b656e73466f7246756e64696e67001d04f8496e73756666696369656e7420746f6b656e7320666f722066756e64696e6720286f6e206d656d62657220636f6e74726f6c6c6572206163636f756e7429445a65726f546f6b656e7346756e64696e67001e047c547279696e6720746f2066756e642077697468207a65726f20746f6b656e7378496e73756666696369656e7442616c616e6365466f725472616e73666572001f04b443616e6e6f742077697468647261773a20696e73756666696369656e74206275646765742062616c616e63652e048c44697363757373696f6e206d6f64756c6520707265646566696e6564206572726f7273c5090c5070616c6c65745f776f726b696e675f67726f7570186572726f7273144572726f720804540004490001803c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f7729605374616b6542616c616e636543616e6e6f7442655a65726f0001049850726f7669646564207374616b652062616c616e63652063616e6e6f74206265207a65726f2e4c4f70656e696e67446f65734e6f7445786973740002045c4f70656e696e6720646f6573206e6f742065786973742e6443616e6e6f74486972654d756c7469706c654c656164657273000304bc43616e6e6f742066696c6c206f70656e696e672077697468206d756c7469706c65206170706c69636174696f6e732e74576f726b65724170706c69636174696f6e446f65734e6f74457869737400040488576f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e744d6178416374697665576f726b65724e756d626572457863656564656400050488576f726b696e672067726f75702073697a65206c696d69742065786365656465642e9c5375636365737366756c576f726b65724170706c69636174696f6e446f65734e6f744578697374000604b45375636365737366756c20776f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e8043616e6e6f74486972654c65616465725768656e4c6561646572457869737473000704c45468657265206973206c656164657220616c72656164792c2063616e6e6f74206869726520616e6f74686572206f6e652e4049734e6f744c6561644163636f756e740008044c4e6f742061206c656164206163636f756e742e4443757272656e744c6561644e6f745365740009046043757272656e74206c656164206973206e6f74207365742e48576f726b6572446f65734e6f744578697374000a0458576f726b657220646f6573206e6f742065786973742e4c496e76616c69644d656d6265724f726967696e000b0470496e76616c6964206f726967696e20666f722061206d656d6265722e705369676e657249734e6f74576f726b6572526f6c654163636f756e74000c04885369676e6572206973206e6f7420776f726b657220726f6c65206163636f756e742e4842656c6f774d696e696d756d5374616b6573000d04885374616b696e67206c657373207468616e20746865206c6f77657220626f756e642e7c496e73756666696369656e7442616c616e6365546f436f7665725374616b65000e0490496e73756666696369656e742062616c616e636520746f20636f766572207374616b652e884170706c69636174696f6e5374616b65446f65736e744d617463684f70656e696e67000f04d84170706c69636174696f6e207374616b65206973206c657373207468616e207265717569726564206f70656e696e67207374616b652e504f726967696e49734e6f744170706c6963616e74001004604f726967696e206973206e6f74206170706c6963616e742e3c576f726b657249734c656176696e6700110498496e76616c6964206f7065726174696f6e202d20776f726b6572206973206c656176696e672e5043616e6e6f74526577617264576974685a65726f0012046452657761726420636f756c64206e6f74206265207a65726f2e78496e76616c69645374616b696e674163636f756e74466f724d656d626572001304ac5374616b696e67206163636f756e7420646f65736e27742062656c6f6e6720746f2061206d656d6265722e5c436f6e666c6963745374616b65734f6e4163636f756e74001404b05374616b696e67206163636f756e7420636f6e7461696e7320636f6e666c696374696e67207374616b65732e44576f726b65724861734e6f5265776172640015047c576f726b657220686173206e6f20726563757272696e67207265776172642e78556e7374616b696e67506572696f644c6573735468616e4d696e696d756d001604090153706563696669656420756e7374616b696e6720706572696f64206973206c657373207468656e206d696e696d756d2073657420666f72207468652067726f75702e3c43616e6e6f745370656e645a65726f00170460496e76616c6964207370656e64696e6720616d6f756e742e74496e73756666696369656e74427564676574466f725370656e64696e67001804a449742773206e6f7420656e6f7567682062756467657420666f722074686973207370656e64696e672e584e6f4170706c69636174696f6e7350726f7669646564001904bc43616e6e6f742066696c6c206f70656e696e67202d206e6f206170706c69636174696f6e732070726f76696465642ea043616e6e6f7444656372656173655374616b6544656c7461477265617465725468616e5374616b65001a04fc43616e6e6f74206465637265617365207374616b65202d207374616b652064656c74612067726561746572207468616e20696e697469616c207374616b652e644170706c69636174696f6e734e6f74466f724f70656e696e67001b04f0547279696e6720746f2066696c6c206f70656e696e67207769746820616e206170706c69636174696f6e20666f72206f74686572206f70656e696e6764576f726b657253746f7261676556616c7565546f6f4c6f6e67001c0480576f726b65722073746f72616765207465787420697320746f6f206c6f6e672e70496e73756666696369656e74546f6b656e73466f7246756e64696e67001d04f8496e73756666696369656e7420746f6b656e7320666f722066756e64696e6720286f6e206d656d62657220636f6e74726f6c6c6572206163636f756e7429445a65726f546f6b656e7346756e64696e67001e047c547279696e6720746f2066756e642077697468207a65726f20746f6b656e7378496e73756666696369656e7442616c616e6365466f725472616e73666572001f04b443616e6e6f742077697468647261773a20696e73756666696369656e74206275646765742062616c616e63652e048c44697363757373696f6e206d6f64756c6520707265646566696e6564206572726f7273c909102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c4164647265737301001043616c6c013904245369676e617475726501cd0914457874726101d90900040030000000cd09082873705f72756e74696d65384d756c74695369676e617475726500010c1c4564323535313904009d050148656432353531393a3a5369676e61747572650000001c537232353531390400d1050148737232353531393a3a5369676e61747572650001001445636473610400d109014065636473613a3a5369676e617475726500020000d1090c1c73705f636f7265146563647361245369676e617475726500000400d50901205b75383b2036355d0000d509000003410000000800d90900000420dd09e109e509e909ed09f509f909fd0900dd0910306672616d655f73797374656d28657874656e73696f6e7354636865636b5f6e6f6e5f7a65726f5f73656e64657248436865636b4e6f6e5a65726f53656e64657204045400000000e10910306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e04045400000000e50910306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e04045400000000e90910306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e6573697304045400000000ed0910306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c69747904045400000400f109010c4572610000f109102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff0000f50910306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e636504045400000400e5030120543a3a496e6465780000f90910306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b57656967687404045400000000fd09086870616c6c65745f7472616e73616374696f6e5f7061796d656e74604368617267655472616e73616374696f6e5061796d656e7404045400000400ec013042616c616e63654f663c543e0000010a08586a6f7973747265616d5f6e6f64655f72756e74696d651c52756e74696d6500000000a41853797374656d011853797374656d401c4163636f756e7401010402000c4101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e2c426c6f636b57656967687401001c180000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b4861736801010405102c8000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510300400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801002c80000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e18446967657374010034040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301004404001ca0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e001d01204e4f54453a20546865206974656d20697320756e626f756e6420616e642073686f756c64207468657265666f7265206e657665722062652072656164206f6e20636861696e2ed020497420636f756c64206f746865727769736520696e666c6174652074686520506f562073697a65206f66206120626c6f636b2e002d01204576656e747320686176652061206c6172676520696e2d6d656d6f72792073697a652e20426f7820746865206576656e747320746f206e6f7420676f206f75742d6f662d6d656d6f7279fc206a75737420696e206361736520736f6d656f6e65207374696c6c207265616473207468656d2066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f70696373010104022cd9030400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e004d01205468652076616c756520686173207468652074797065206028543a3a426c6f636b4e756d6265722c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000e10304000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e740100980400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e740100980400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e50686173650000d103040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e01ed0301501830426c6f636b57656967687473f903f901a2663852000b00204aa9d10113ffffffffffffffff0230801300010b00bc29a92e011366666666666666a6010b0098f73e5d0113ffffffffffffffbf0100000230801300010b00447c13a3011366666666666666e6010b00204aa9d10113ffffffffffffffff01070088526a74130000000000000040023080130000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e67746809043000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e74101060090000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e20446257656967687411044008fc370000000000f0ef0402000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6e1504d102386a6f7973747265616d2d6e6f6465386a6f7973747265616d2d6e6f64650c000000b80b0000000000002cdf6acb689907609b0400000037e397fc7c91f5e40100000040fe3ad401f8959a06000000d2bc9897eed08f1503000000f78b278be53f454c02000000ed99c5acb25eedf503000000cbca25e39f14238702000000687ad44ad37f03c201000000bc9d89904f5b923f0100000037c8bb1350a9a2a803000000ab3c0572291feb8b0100000001000000010484204765742074686520636861696e27732063757272656e742076657273696f6e2e28535335385072656669782904087e0014a8205468652064657369676e61746564205353353820707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e012d04001c5574696c697479000131040174044c626174636865645f63616c6c735f6c696d69741010aa2a000004a820546865206c696d6974206f6e20746865206e756d626572206f6620626174636865642063616c6c732e019d06011042616265011042616265442845706f6368496e64657801002820000000000000000004542043757272656e742065706f636820696e6465782e2c417574686f7269746965730100a1060400046c2043757272656e742065706f636820617574686f7269746965732e2c47656e65736973536c6f740100510420000000000000000008f82054686520736c6f74206174207768696368207468652066697273742065706f63682061637475616c6c7920737461727465642e205468697320697320309020756e74696c2074686520666972737420626c6f636b206f662074686520636861696e2e2c43757272656e74536c6f740100510420000000000000000004542043757272656e7420736c6f74206e756d6265722e2852616e646f6d6e65737301000480000000000000000000000000000000000000000000000000000000000000000028b8205468652065706f63682072616e646f6d6e65737320666f7220746865202a63757272656e742a2065706f63682e002c20232053656375726974790005012054686973204d555354204e4f54206265207573656420666f722067616d626c696e672c2061732069742063616e20626520696e666c75656e6365642062792061f8206d616c6963696f75732076616c696461746f7220696e207468652073686f7274207465726d2e204974204d4159206265207573656420696e206d616e7915012063727970746f677261706869632070726f746f636f6c732c20686f77657665722c20736f206c6f6e67206173206f6e652072656d656d6265727320746861742074686973150120286c696b652065766572797468696e6720656c7365206f6e2d636861696e29206974206973207075626c69632e20466f72206578616d706c652c2069742063616e206265050120757365642077686572652061206e756d626572206973206e656564656420746861742063616e6e6f742068617665206265656e2063686f73656e20627920616e0d01206164766572736172792c20666f7220707572706f7365732073756368206173207075626c69632d636f696e207a65726f2d6b6e6f776c656467652070726f6f66732e6050656e64696e6745706f6368436f6e6669674368616e67650000590404000461012050656e64696e672065706f636820636f6e66696775726174696f6e206368616e676520746861742077696c6c206265206170706c696564207768656e20746865206e6578742065706f636820697320656e61637465642e384e65787452616e646f6d6e657373010004800000000000000000000000000000000000000000000000000000000000000000045c204e6578742065706f63682072616e646f6d6e6573732e3c4e657874417574686f7269746965730100a10604000460204e6578742065706f636820617574686f7269746965732e305365676d656e74496e6465780100101000000000247c2052616e646f6d6e65737320756e64657220636f6e737472756374696f6e2e00f8205765206d616b6520612074726164652d6f6666206265747765656e2073746f7261676520616363657373657320616e64206c697374206c656e6774682e01012057652073746f72652074686520756e6465722d636f6e737472756374696f6e2072616e646f6d6e65737320696e207365676d656e7473206f6620757020746f942060554e4445525f434f4e535452554354494f4e5f5345474d454e545f4c454e475448602e00ec204f6e63652061207365676d656e7420726561636865732074686973206c656e6774682c20776520626567696e20746865206e657874206f6e652e090120576520726573657420616c6c207365676d656e747320616e642072657475726e20746f206030602061742074686520626567696e6e696e67206f662065766572791c2065706f63682e44556e646572436f6e737472756374696f6e0101040510ad0604000415012054574f582d4e4f54453a20605365676d656e74496e6465786020697320616e20696e6372656173696e6720696e74656765722c20736f2074686973206973206f6b61792e2c496e697469616c697a65640000b50604000801012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e292077686963682069732060536f6d65601d01206966207065722d626c6f636b20696e697469616c697a6174696f6e2068617320616c7265616479206265656e2063616c6c656420666f722063757272656e7420626c6f636b2e4c417574686f7256726652616e646f6d6e6573730100c90604001015012054686973206669656c642073686f756c6420616c7761797320626520706f70756c6174656420647572696e6720626c6f636b2070726f63657373696e6720756e6c6573731901207365636f6e6461727920706c61696e20736c6f74732061726520656e61626c65642028776869636820646f6e277420636f6e7461696e206120565246206f7574707574292e0049012049742069732073657420696e20606f6e5f66696e616c697a65602c206265666f72652069742077696c6c20636f6e7461696e207468652076616c75652066726f6d20746865206c61737420626c6f636b2e2845706f636853746172740100dd03200000000000000000145d012054686520626c6f636b206e756d62657273207768656e20746865206c61737420616e642063757272656e742065706f6368206861766520737461727465642c20726573706563746976656c7920604e2d316020616e641420604e602e4901204e4f54453a20576520747261636b207468697320697320696e206f7264657220746f20616e6e6f746174652074686520626c6f636b206e756d626572207768656e206120676976656e20706f6f6c206f66590120656e74726f7079207761732066697865642028692e652e20697420776173206b6e6f776e20746f20636861696e206f6273657276657273292e2053696e63652065706f6368732061726520646566696e656420696e590120736c6f74732c207768696368206d617920626520736b69707065642c2074686520626c6f636b206e756d62657273206d6179206e6f74206c696e6520757020776974682074686520736c6f74206e756d626572732e204c6174656e657373010010100000000014d820486f77206c617465207468652063757272656e7420626c6f636b20697320636f6d706172656420746f2069747320706172656e742e001501205468697320656e74727920697320706f70756c617465642061732070617274206f6620626c6f636b20657865637574696f6e20616e6420697320636c65616e65642075701101206f6e20626c6f636b2066696e616c697a6174696f6e2e205175657279696e6720746869732073746f7261676520656e747279206f757473696465206f6620626c6f636bb020657865637574696f6e20636f6e746578742073686f756c6420616c77617973207969656c64207a65726f2e2c45706f6368436f6e6669670000cd0604000861012054686520636f6e66696775726174696f6e20666f72207468652063757272656e742065706f63682e2053686f756c64206e6576657220626520604e6f6e656020617320697420697320696e697469616c697a656420696e242067656e657369732e3c4e65787445706f6368436f6e6669670000cd060400082d012054686520636f6e66696775726174696f6e20666f7220746865206e6578742065706f63682c20604e6f6e65602069662074686520636f6e6669672077696c6c206e6f74206368616e6765e82028796f752063616e2066616c6c6261636b20746f206045706f6368436f6e6669676020696e737465616420696e20746861742063617365292e34536b697070656445706f6368730100d10604002029012041206c697374206f6620746865206c6173742031303020736b69707065642065706f63687320616e642074686520636f72726573706f6e64696e672073657373696f6e20696e64657870207768656e207468652065706f63682077617320736b69707065642e0031012054686973206973206f6e6c79207573656420666f722076616c69646174696e672065717569766f636174696f6e2070726f6f66732e20416e2065717569766f636174696f6e2070726f6f663501206d75737420636f6e7461696e732061206b65792d6f776e6572736869702070726f6f6620666f72206120676976656e2073657373696f6e2c207468657265666f7265207765206e656564206139012077617920746f2074696520746f6765746865722073657373696f6e7320616e642065706f636820696e64696365732c20692e652e207765206e65656420746f2076616c69646174652074686174290120612076616c696461746f722077617320746865206f776e6572206f66206120676976656e206b6579206f6e206120676976656e2073657373696f6e2c20616e64207768617420746865b0206163746976652065706f636820696e6465782077617320647572696e6720746861742073657373696f6e2e013d04000c3445706f63684475726174696f6e282058020000000000000cec2054686520616d6f756e74206f662074696d652c20696e20736c6f74732c207468617420656163682065706f63682073686f756c64206c6173742e1901204e4f54453a2043757272656e746c79206974206973206e6f7420706f737369626c6520746f206368616e6765207468652065706f6368206475726174696f6e20616674657221012074686520636861696e2068617320737461727465642e20417474656d7074696e6720746f20646f20736f2077696c6c20627269636b20626c6f636b2070726f64756374696f6e2e444578706563746564426c6f636b54696d652820701700000000000014050120546865206578706563746564206176657261676520626c6f636b2074696d6520617420776869636820424142452073686f756c64206265206372656174696e67110120626c6f636b732e2053696e636520424142452069732070726f626162696c6973746963206974206973206e6f74207472697669616c20746f20666967757265206f75740501207768617420746865206578706563746564206176657261676520626c6f636b2074696d652073686f756c64206265206261736564206f6e2074686520736c6f740901206475726174696f6e20616e642074686520736563757269747920706172616d657465722060636020287768657265206031202d20636020726570726573656e7473a0207468652070726f626162696c697479206f66206120736c6f74206265696e6720656d707479292e384d6178417574686f7269746965731010a08601000488204d6178206e756d626572206f6620617574686f72697469657320616c6c6f77656401d506022454696d657374616d70012454696d657374616d70080c4e6f7701002820000000000000000004902043757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010098040004b420446964207468652074696d657374616d7020676574207570646174656420696e207468697320626c6f636b3f0161040004344d696e696d756d506572696f642820b80b000000000000104d0120546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e204265776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a5d0120706572696f6420746861742074686520626c6f636b2070726f64756374696f6e206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c5d012067656e6572616c6c7920776f726b2077697468207468697320746f2064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20652e672e20466f7220417572612c2069742077696c6c206265a020646f75626c65207468697320706572696f64206f6e2064656661756c742073657474696e67732e000328417574686f72736869700128417574686f72736869700418417574686f720000000400046420417574686f72206f662063757272656e7420626c6f636b2e00000000042042616c616e636573012042616c616e6365731434546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e40496e61637469766549737375616e636501001840000000000000000000000000000000000409012054686520746f74616c20756e697473206f66206f75747374616e64696e672064656163746976617465642062616c616e636520696e207468652073797374656d2e1c4163636f756e74010104020014010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600901205468652042616c616e6365732070616c6c6574206578616d706c65206f662073746f72696e67207468652062616c616e6365206f6620616e206163636f756e742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b19022020202074797065204163636f756e7453746f7265203d2053746f726167654d61705368696d3c53656c663a3a4163636f756e743c52756e74696d653e2c206672616d655f73797374656d3a3a50726f76696465723c52756e74696d653e2c204163636f756e7449642c2053656c663a3a4163636f756e74446174613c42616c616e63653e3e0c20207d102060606000150120596f752063616e20616c736f2073746f7265207468652062616c616e6365206f6620616e206163636f756e7420696e20746865206053797374656d602070616c6c65742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b7420202074797065204163636f756e7453746f7265203d2053797374656d0c20207d102060606000510120427574207468697320636f6d657320776974682074726164656f6666732c2073746f72696e67206163636f756e742062616c616e63657320696e207468652073797374656d2070616c6c65742073746f7265736d0120606672616d655f73797374656d60206461746120616c6f6e677369646520746865206163636f756e74206461746120636f6e747261727920746f2073746f72696e67206163636f756e742062616c616e63657320696e207468652901206042616c616e636573602070616c6c65742c20776869636820757365732061206053746f726167654d61706020746f2073746f72652062616c616e6365732064617461206f6e6c792e4101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b730101040200d906040008b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e2052657365727665730101040200e906040004a4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e01650401800c484578697374656e7469616c4465706f73697418404002e50f00000000000000000000000004d420546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d61784c6f636b7310103200000008f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e2c4d61785265736572766573101032000000040d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e01f50605485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100f90640000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e0100fd0604000000018804604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c6974706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f7269747960004d0120546869732076616c7565206973206d756c7469706c656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e000668456c656374696f6e50726f76696465724d756c746950686173650168456c656374696f6e50726f76696465724d756c746950686173652814526f756e64010010100100000018ac20496e7465726e616c20636f756e74657220666f7220746865206e756d626572206f6620726f756e64732e00550120546869732069732075736566756c20666f722064652d6475706c69636174696f6e206f66207472616e73616374696f6e73207375626d697474656420746f2074686520706f6f6c2c20616e642067656e6572616c6c20646961676e6f7374696373206f66207468652070616c6c65742e004d012054686973206973206d6572656c7920696e6372656d656e746564206f6e6365207065722065766572792074696d65207468617420616e20757073747265616d2060656c656374602069732063616c6c65642e3043757272656e7450686173650100a00400043c2043757272656e742070686173652e38517565756564536f6c7574696f6e000001070400043d012043757272656e74206265737420736f6c7574696f6e2c207369676e6564206f7220756e7369676e65642c2071756575656420746f2062652072657475726e65642075706f6e2060656c656374602e20536e617073686f740000090704000c7020536e617073686f742064617461206f662074686520726f756e642e005d01205468697320697320637265617465642061742074686520626567696e6e696e67206f6620746865207369676e656420706861736520616e6420636c65617265642075706f6e2063616c6c696e672060656c656374602e38446573697265645461726765747300001004000ccc2044657369726564206e756d626572206f66207461726765747320746f20656c65637420666f72207468697320726f756e642e00a8204f6e6c7920657869737473207768656e205b60536e617073686f74605d2069732070726573656e742e40536e617073686f744d6574616461746100003d0504000c9820546865206d65746164617461206f6620746865205b60526f756e64536e617073686f74605d00a8204f6e6c7920657869737473207768656e205b60536e617073686f74605d2069732070726573656e742e645369676e65645375626d697373696f6e4e657874496e646578010010100000000024010120546865206e65787420696e64657820746f2062652061737369676e656420746f20616e20696e636f6d696e67207369676e6564207375626d697373696f6e2e007501204576657279206163636570746564207375626d697373696f6e2069732061737369676e6564206120756e6971756520696e6465783b207468617420696e64657820697320626f756e6420746f207468617420706172746963756c61726501207375626d697373696f6e20666f7220746865206475726174696f6e206f662074686520656c656374696f6e2e204f6e20656c656374696f6e2066696e616c697a6174696f6e2c20746865206e65787420696e6465782069733020726573657420746f20302e0069012057652063616e2774206a7573742075736520605369676e65645375626d697373696f6e496e64696365732e6c656e2829602c206265636175736520746861742773206120626f756e646564207365743b20706173742069747359012063617061636974792c2069742077696c6c2073696d706c792073617475726174652e2057652063616e2774206a7573742069746572617465206f76657220605369676e65645375626d697373696f6e734d6170602cf4206265636175736520697465726174696f6e20697320736c6f772e20496e73746561642c2077652073746f7265207468652076616c756520686572652e5c5369676e65645375626d697373696f6e496e6469636573010019070400186d01204120736f727465642c20626f756e64656420766563746f72206f6620602873636f72652c20626c6f636b5f6e756d6265722c20696e64657829602c20776865726520656163682060696e6465786020706f696e747320746f2061782076616c756520696e20605369676e65645375626d697373696f6e73602e007101205765206e65766572206e65656420746f2070726f63657373206d6f7265207468616e20612073696e676c65207369676e6564207375626d697373696f6e20617420612074696d652e205369676e6564207375626d697373696f6e7375012063616e206265207175697465206c617267652c20736f2077652772652077696c6c696e6720746f207061792074686520636f7374206f66206d756c7469706c6520646174616261736520616363657373657320746f206163636573732101207468656d206f6e6520617420612074696d6520696e7374656164206f662072656164696e6720616e64206465636f64696e6720616c6c206f66207468656d206174206f6e63652e505369676e65645375626d697373696f6e734d61700001040510250704001c7420556e636865636b65642c207369676e656420736f6c7574696f6e732e00690120546f676574686572207769746820605375626d697373696f6e496e6469636573602c20746869732073746f726573206120626f756e64656420736574206f6620605369676e65645375626d697373696f6e7360207768696c65ec20616c6c6f77696e6720757320746f206b656570206f6e6c7920612073696e676c65206f6e6520696e206d656d6f727920617420612074696d652e0069012054776f78206e6f74653a20746865206b6579206f6620746865206d617020697320616e206175746f2d696e6372656d656e74696e6720696e6465782077686963682075736572732063616e6e6f7420696e7370656374206f72f4206166666563743b2077652073686f756c646e2774206e65656420612063727970746f67726170686963616c6c7920736563757265206861736865722e544d696e696d756d556e7472757374656453636f726500009c0400105d0120546865206d696e696d756d2073636f7265207468617420656163682027756e747275737465642720736f6c7574696f6e206d7573742061747461696e20696e206f7264657220746f20626520636f6e7369646572656428206665617369626c652e00b82043616e206265207365742076696120607365745f6d696e696d756d5f756e747275737465645f73636f7265602e016904018c4c34556e7369676e656450686173651010960000000480204475726174696f6e206f662074686520756e7369676e65642070686173652e2c5369676e656450686173651010960000000478204475726174696f6e206f6620746865207369676e65642070686173652e544265747465725369676e65645468726573686f6c64ac1000000000084d0120546865206d696e696d756d20616d6f756e74206f6620696d70726f76656d656e7420746f2074686520736f6c7574696f6e2073636f7265207468617420646566696e6573206120736f6c7574696f6e2061737820226265747465722220696e20746865205369676e65642070686173652e5c426574746572556e7369676e65645468726573686f6c64ac1020a10700084d0120546865206d696e696d756d20616d6f756e74206f6620696d70726f76656d656e7420746f2074686520736f6c7574696f6e2073636f7265207468617420646566696e6573206120736f6c7574696f6e2061738020226265747465722220696e2074686520556e7369676e65642070686173652e384f6666636861696e52657065617410101200000010b42054686520726570656174207468726573686f6c64206f6620746865206f6666636861696e20776f726b65722e00610120466f72206578616d706c652c20696620697420697320352c2074686174206d65616e732074686174206174206c65617374203520626c6f636b732077696c6c20656c61707365206265747765656e20617474656d7074738420746f207375626d69742074686520776f726b6572277320736f6c7574696f6e2e3c4d696e657254785072696f726974792820feffffffffffff7f04250120546865207072696f72697479206f662074686520756e7369676e6564207472616e73616374696f6e207375626d697474656420696e2074686520756e7369676e65642d7068617365505369676e65644d61785375626d697373696f6e731010100000001ce4204d6178696d756d206e756d626572206f66207369676e6564207375626d697373696f6e7320746861742063616e206265207175657565642e005501204974206973206265737420746f2061766f69642061646a757374696e67207468697320647572696e6720616e20656c656374696f6e2c20617320697420696d706163747320646f776e73747265616d2064617461650120737472756374757265732e20496e20706172746963756c61722c20605369676e65645375626d697373696f6e496e64696365733c543e6020697320626f756e646564206f6e20746869732076616c75652e20496620796f75f42075706461746520746869732076616c756520647572696e6720616e20656c656374696f6e2c20796f75205f6d7573745f20656e7375726520746861744d0120605369676e65645375626d697373696f6e496e64696365732e6c656e282960206973206c657373207468616e206f7220657175616c20746f20746865206e65772076616c75652e204f74686572776973652cf020617474656d70747320746f207375626d6974206e657720736f6c7574696f6e73206d617920636175736520612072756e74696d652070616e69632e3c5369676e65644d617857656967687420400b58a29b942e011366666666666666a61494204d6178696d756d20776569676874206f662061207369676e656420736f6c7574696f6e2e005d01204966205b60436f6e6669673a3a4d696e6572436f6e666967605d206973206265696e6720696d706c656d656e74656420746f207375626d6974207369676e656420736f6c7574696f6e7320286f757473696465206f663d0120746869732070616c6c6574292c207468656e205b604d696e6572436f6e6669673a3a736f6c7574696f6e5f776569676874605d206973207573656420746f20636f6d7061726520616761696e73743020746869732076616c75652e405369676e65644d6178526566756e647310100400000004190120546865206d6178696d756d20616d6f756e74206f6620756e636865636b656420736f6c7574696f6e7320746f20726566756e64207468652063616c6c2066656520666f722e405369676e6564526577617264426173651840aa821bce260000000000000000000000048820426173652072657761726420666f722061207369676e656420736f6c7574696f6e445369676e65644465706f736974426173651840a41a130d84010000000000000000000004902042617365206465706f73697420666f722061207369676e656420736f6c7574696f6e2e445369676e65644465706f7369744279746518406a6e190000000000000000000000000004a0205065722d62797465206465706f73697420666f722061207369676e656420736f6c7574696f6e2e4c5369676e65644465706f73697457656967687418400000000000000000000000000000000004a8205065722d776569676874206465706f73697420666f722061207369676e656420736f6c7574696f6e2e444d6178456c656374696e67566f746572731010d43000000c5d0120546865206d6178696d756d206e756d626572206f6620656c656374696e6720766f7465727320746f2070757420696e2074686520736e617073686f742e20417420746865206d6f6d656e742c20736e617073686f7473590120617265206f6e6c79206f76657220612073696e676c6520626c6f636b2c20627574206f6e6365206d756c74692d626c6f636b20656c656374696f6e732061726520696e74726f647563656420746865792077696c6c842074616b6520706c616365206f766572206d756c7469706c6520626c6f636b732e4c4d6178456c65637461626c6554617267657473290408ffff04010120546865206d6178696d756d206e756d626572206f6620656c65637461626c65207461726765747320746f2070757420696e2074686520736e617073686f742e284d617857696e6e65727310109001000010350120546865206d6178696d756d206e756d626572206f662077696e6e65727320746861742063616e20626520656c656374656420627920746869732060456c656374696f6e50726f7669646572604020696d706c656d656e746174696f6e2e005101204e6f74653a2054686973206d75737420616c776179732062652067726561746572206f7220657175616c20746f2060543a3a4461746150726f76696465723a3a646573697265645f746172676574732829602e384d696e65724d61784c656e67746810100000360000384d696e65724d617857656967687420400b58a29b942e011366666666666666a600544d696e65724d6178566f746573506572566f74657210101000000000012907071c5374616b696e67011c5374616b696e67943856616c696461746f72436f756e740100101000000000049c2054686520696465616c206e756d626572206f66206163746976652076616c696461746f72732e544d696e696d756d56616c696461746f72436f756e740100101000000000044101204d696e696d756d206e756d626572206f66207374616b696e67207061727469636970616e7473206265666f726520656d657267656e637920636f6e646974696f6e732061726520696d706f7365642e34496e76756c6e657261626c657301005d0504000c590120416e792076616c696461746f72732074686174206d6179206e6576657220626520736c6173686564206f7220666f726369626c79206b69636b65642e20497427732061205665632073696e636520746865792772654d01206561737920746f20696e697469616c697a6520616e642074686520706572666f726d616e636520686974206973206d696e696d616c2028776520657870656374206e6f206d6f7265207468616e20666f7572ac20696e76756c6e657261626c65732920616e64207265737472696374656420746f20746573746e6574732e18426f6e64656400010405000004000c0101204d61702066726f6d20616c6c206c6f636b65642022737461736822206163636f756e747320746f2074686520636f6e74726f6c6c6572206163636f756e742e00d02054574f582d4e4f54453a20534146452073696e636520604163636f756e7449646020697320612073656375726520686173682e404d696e4e6f6d696e61746f72426f6e64010018400000000000000000000000000000000004210120546865206d696e696d756d2061637469766520626f6e6420746f206265636f6d6520616e64206d61696e7461696e2074686520726f6c65206f662061206e6f6d696e61746f722e404d696e56616c696461746f72426f6e64010018400000000000000000000000000000000004210120546865206d696e696d756d2061637469766520626f6e6420746f206265636f6d6520616e64206d61696e7461696e2074686520726f6c65206f6620612076616c696461746f722e484d696e696d756d4163746976655374616b65010018400000000000000000000000000000000004110120546865206d696e696d756d20616374697665206e6f6d696e61746f72207374616b65206f6620746865206c617374207375636365737366756c20656c656374696f6e2e344d696e436f6d6d697373696f6e0100ac10000000000ce820546865206d696e696d756d20616d6f756e74206f6620636f6d6d697373696f6e20746861742076616c696461746f72732063616e207365742e00802049662073657420746f206030602c206e6f206c696d6974206578697374732e184c656467657200010402002d070400044501204d61702066726f6d20616c6c2028756e6c6f636b6564292022636f6e74726f6c6c657222206163636f756e747320746f2074686520696e666f20726567617264696e6720746865207374616b696e672e1450617965650101040500590504000ce42057686572652074686520726577617264207061796d656e742073686f756c64206265206d6164652e204b657965642062792073746173682e00d02054574f582d4e4f54453a20534146452073696e636520604163636f756e7449646020697320612073656375726520686173682e2856616c696461746f72730101040500b00800000c450120546865206d61702066726f6d202877616e6e616265292076616c696461746f72207374617368206b657920746f2074686520707265666572656e636573206f6620746861742076616c696461746f722e00d02054574f582d4e4f54453a20534146452073696e636520604163636f756e7449646020697320612073656375726520686173682e50436f756e746572466f7256616c696461746f7273010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170484d617856616c696461746f7273436f756e7400001004000c310120546865206d6178696d756d2076616c696461746f7220636f756e74206265666f72652077652073746f7020616c6c6f77696e67206e65772076616c696461746f727320746f206a6f696e2e00d0205768656e20746869732076616c7565206973206e6f74207365742c206e6f206c696d6974732061726520656e666f726365642e284e6f6d696e61746f727300010405004107040048750120546865206d61702066726f6d206e6f6d696e61746f72207374617368206b657920746f207468656972206e6f6d696e6174696f6e20707265666572656e6365732c206e616d656c79207468652076616c696461746f72732074686174582074686579207769736820746f20737570706f72742e003901204e6f7465207468617420746865206b657973206f6620746869732073746f72616765206d6170206d69676874206265636f6d65206e6f6e2d6465636f6461626c6520696e2063617365207468656d01205b60436f6e6669673a3a4d61784e6f6d696e6174696f6e73605d20636f6e66696775726174696f6e206973206465637265617365642e20496e2074686973207261726520636173652c207468657365206e6f6d696e61746f7273650120617265207374696c6c206578697374656e7420696e2073746f726167652c207468656972206b657920697320636f727265637420616e64207265747269657661626c652028692e652e2060636f6e7461696e735f6b657960710120696e6469636174657320746861742074686579206578697374292c206275742074686569722076616c75652063616e6e6f74206265206465636f6465642e205468657265666f72652c20746865206e6f6e2d6465636f6461626c656d01206e6f6d696e61746f72732077696c6c206566666563746976656c79206e6f742d65786973742c20756e74696c20746865792072652d7375626d697420746865697220707265666572656e6365732073756368207468617420697401012069732077697468696e2074686520626f756e6473206f6620746865206e65776c79207365742060436f6e6669673a3a4d61784e6f6d696e6174696f6e73602e006101205468697320696d706c696573207468617420603a3a697465725f6b65797328292e636f756e7428296020616e6420603a3a6974657228292e636f756e74282960206d696768742072657475726e20646966666572656e746d012076616c75657320666f722074686973206d61702e204d6f72656f7665722c20746865206d61696e20603a3a636f756e7428296020697320616c69676e656420776974682074686520666f726d65722c206e616d656c79207468656c206e756d626572206f66206b65797320746861742065786973742e006d01204c6173746c792c20696620616e79206f6620746865206e6f6d696e61746f7273206265636f6d65206e6f6e2d6465636f6461626c652c20746865792063616e206265206368696c6c656420696d6d6564696174656c7920766961b8205b6043616c6c3a3a6368696c6c5f6f74686572605d20646973706174636861626c6520627920616e796f6e652e00d02054574f582d4e4f54453a20534146452073696e636520604163636f756e7449646020697320612073656375726520686173682e50436f756e746572466f724e6f6d696e61746f7273010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170484d61784e6f6d696e61746f7273436f756e7400001004000c310120546865206d6178696d756d206e6f6d696e61746f7220636f756e74206265666f72652077652073746f7020616c6c6f77696e67206e65772076616c696461746f727320746f206a6f696e2e00d0205768656e20746869732076616c7565206973206e6f74207365742c206e6f206c696d6974732061726520656e666f726365642e2843757272656e744572610000100400105c205468652063757272656e742065726120696e6465782e006501205468697320697320746865206c617465737420706c616e6e6564206572612c20646570656e64696e67206f6e20686f77207468652053657373696f6e2070616c6c657420717565756573207468652076616c696461746f7280207365742c206974206d6967687420626520616374697665206f72206e6f742e2441637469766545726100004507040010d820546865206163746976652065726120696e666f726d6174696f6e2c20697420686f6c647320696e64657820616e642073746172742e0059012054686520616374697665206572612069732074686520657261206265696e672063757272656e746c792072657761726465642e2056616c696461746f7220736574206f66207468697320657261206d757374206265ac20657175616c20746f205b6053657373696f6e496e746572666163653a3a76616c696461746f7273605d2e5445726173537461727453657373696f6e496e6465780001040510100400103101205468652073657373696f6e20696e646578206174207768696368207468652065726120737461727420666f7220746865206c6173742060484953544f52595f44455054486020657261732e006101204e6f74653a205468697320747261636b7320746865207374617274696e672073657373696f6e2028692e652e2073657373696f6e20696e646578207768656e20657261207374617274206265696e672061637469766529f020666f7220746865206572617320696e20605b43757272656e74457261202d20484953544f52595f44455054482c2043757272656e744572615d602e2c457261735374616b65727301010805054907e80c0000001878204578706f73757265206f662076616c696461746f72206174206572612e0061012054686973206973206b65796564206669727374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00a82049732069742072656d6f7665642061667465722060484953544f52595f44455054486020657261732e4101204966207374616b657273206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e20656d707479206578706f737572652069732072657475726e65642e48457261735374616b657273436c697070656401010805054907e80c0000002c9820436c6970706564204578706f73757265206f662076616c696461746f72206174206572612e00590120546869732069732073696d696c617220746f205b60457261735374616b657273605d20627574206e756d626572206f66206e6f6d696e61746f7273206578706f736564206973207265647563656420746f20746865dc2060543a3a4d61784e6f6d696e61746f72526577617264656450657256616c696461746f72602062696767657374207374616b6572732e1d0120284e6f74653a20746865206669656c642060746f74616c6020616e6420606f776e60206f6620746865206578706f737572652072656d61696e7320756e6368616e676564292ef42054686973206973207573656420746f206c696d69742074686520692f6f20636f737420666f7220746865206e6f6d696e61746f72207061796f75742e005d012054686973206973206b657965642066697374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00a82049732069742072656d6f7665642061667465722060484953544f52595f44455054486020657261732e4101204966207374616b657273206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e20656d707479206578706f737572652069732072657475726e65642e484572617356616c696461746f72507265667301010805054907b00800001411012053696d696c617220746f2060457261735374616b657273602c207468697320686f6c64732074686520707265666572656e636573206f662076616c696461746f72732e0061012054686973206973206b65796564206669727374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00a82049732069742072656d6f7665642061667465722060484953544f52595f44455054486020657261732e4c4572617356616c696461746f7252657761726400010405101804000c09012054686520746f74616c2076616c696461746f7220657261207061796f757420666f7220746865206c6173742060484953544f52595f44455054486020657261732e0021012045726173207468617420686176656e27742066696e697368656420796574206f7220686173206265656e2072656d6f76656420646f65736e27742068617665207265776172642e4045726173526577617264506f696e747301010405104d0714000000000008ac205265776172647320666f7220746865206c6173742060484953544f52595f44455054486020657261732e250120496620726577617264206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e2030207265776172642069732072657475726e65642e3845726173546f74616c5374616b65010104051018400000000000000000000000000000000008ec2054686520746f74616c20616d6f756e74207374616b656420666f7220746865206c6173742060484953544f52595f44455054486020657261732e1d0120496620746f74616c206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e2030207374616b652069732072657475726e65642e20466f7263654572610100b804000454204d6f6465206f662065726120666f7263696e672e4c536c6173685265776172644672616374696f6e0100ac10000000000cf8205468652070657263656e74616765206f662074686520736c617368207468617420697320646973747269627574656420746f207265706f72746572732e00e4205468652072657374206f662074686520736c61736865642076616c75652069732068616e646c6564206279207468652060536c617368602e4c43616e63656c6564536c6173685061796f757401001840000000000000000000000000000000000815012054686520616d6f756e74206f662063757272656e637920676976656e20746f207265706f7274657273206f66206120736c617368206576656e7420776869636820776173ec2063616e63656c65642062792065787472616f7264696e6172792063697263756d7374616e6365732028652e672e20676f7665726e616e6365292e40556e6170706c696564536c617368657301010405105d07040004c420416c6c20756e6170706c69656420736c61736865732074686174206172652071756575656420666f72206c617465722e28426f6e646564457261730100d90304001025012041206d617070696e672066726f6d207374696c6c2d626f6e646564206572617320746f207468652066697273742073657373696f6e20696e646578206f662074686174206572612e00c8204d75737420636f6e7461696e7320696e666f726d6174696f6e20666f72206572617320666f72207468652072616e67653abc20605b6163746976655f657261202d20626f756e64696e675f6475726174696f6e3b206163746976655f6572615d604c56616c696461746f72536c617368496e457261000108050549076507040008450120416c6c20736c617368696e67206576656e7473206f6e2076616c696461746f72732c206d61707065642062792065726120746f20746865206869676865737420736c6173682070726f706f7274696f6e7020616e6420736c6173682076616c7565206f6620746865206572612e4c4e6f6d696e61746f72536c617368496e4572610001080505490718040004610120416c6c20736c617368696e67206576656e7473206f6e206e6f6d696e61746f72732c206d61707065642062792065726120746f20746865206869676865737420736c6173682076616c7565206f6620746865206572612e34536c617368696e675370616e73000104050069070400048c20536c617368696e67207370616e7320666f72207374617368206163636f756e74732e245370616e536c6173680101040559076d07800000000000000000000000000000000000000000000000000000000000000000083d01205265636f72647320696e666f726d6174696f6e2061626f757420746865206d6178696d756d20736c617368206f6620612073746173682077697468696e206120736c617368696e67207370616e2cb82061732077656c6c20617320686f77206d7563682072657761726420686173206265656e2070616964206f75742e5443757272656e74506c616e6e656453657373696f6e01001010000000000ce820546865206c61737420706c616e6e65642073657373696f6e207363686564756c6564206279207468652073657373696f6e2070616c6c65742e0071012054686973206973206261736963616c6c7920696e2073796e632077697468207468652063616c6c20746f205b6070616c6c65745f73657373696f6e3a3a53657373696f6e4d616e616765723a3a6e65775f73657373696f6e605d2e4c4f6666656e64696e6756616c696461746f727301007107040024690120496e6469636573206f662076616c696461746f727320746861742068617665206f6666656e64656420696e20746865206163746976652065726120616e6420776865746865722074686579206172652063757272656e746c79282064697361626c65642e00690120546869732076616c75652073686f756c642062652061207375706572736574206f662064697361626c65642076616c696461746f72732073696e6365206e6f7420616c6c206f6666656e636573206c65616420746f2074686571012076616c696461746f72206265696e672064697361626c65642028696620746865726520776173206e6f20736c617368292e2054686973206973206e656564656420746f20747261636b207468652070657263656e74616765206f6649012076616c696461746f727320746861742068617665206f6666656e64656420696e207468652063757272656e74206572612c20656e737572696e672061206e65772065726120697320666f72636564206966750120604f6666656e64696e6756616c696461746f72735468726573686f6c646020697320726561636865642e205468652076656320697320616c77617973206b65707420736f7274656420736f20746861742077652063616e2066696e6471012077686574686572206120676976656e2076616c696461746f72206861732070726576696f75736c79206f6666656e646564207573696e672062696e617279207365617263682e204974206765747320636c6561726564207768656e38207468652065726120656e64732e384368696c6c5468726573686f6c640000610504000c510120546865207468726573686f6c6420666f72207768656e2075736572732063616e2073746172742063616c6c696e6720606368696c6c5f6f746865726020666f72206f746865722076616c696461746f7273202f5901206e6f6d696e61746f72732e20546865207468726573686f6c6420697320636f6d706172656420746f207468652061637475616c206e756d626572206f662076616c696461746f7273202f206e6f6d696e61746f72732901202860436f756e74466f722a602920696e207468652073797374656d20636f6d706172656420746f2074686520636f6e66696775726564206d61782028604d61782a436f756e7460292e01550501a81c384d61784e6f6d696e6174696f6e7310101000000004b4204d6178696d756d206e756d626572206f66206e6f6d696e6174696f6e7320706572206e6f6d696e61746f722e30486973746f72794465707468101078000000508c204e756d626572206f66206572617320746f206b65657020696e20686973746f72792e00e820466f6c6c6f77696e6720696e666f726d6174696f6e206973206b65707420666f72206572617320696e20605b63757272656e745f657261202d090120486973746f727944657074682c2063757272656e745f6572615d603a2060457261735374616b657273602c2060457261735374616b657273436c6970706564602c050120604572617356616c696461746f725072656673602c20604572617356616c696461746f72526577617264602c206045726173526577617264506f696e7473602cac206045726173546f74616c5374616b65602c206045726173537461727453657373696f6e496e646578602c8420605374616b696e674c65646765722e636c61696d65645f72657761726473602e00e4204d757374206265206d6f7265207468616e20746865206e756d626572206f6620657261732064656c617965642062792073657373696f6e2ef820492e652e2061637469766520657261206d75737420616c7761797320626520696e20686973746f72792e20492e652e20606163746976655f657261203ec42063757272656e745f657261202d20686973746f72795f646570746860206d7573742062652067756172616e746565642e001101204966206d6967726174696e6720616e206578697374696e672070616c6c65742066726f6d2073746f726167652076616c756520746f20636f6e6669672076616c75652cec20746869732073686f756c642062652073657420746f2073616d652076616c7565206f72206772656174657220617320696e2073746f726167652e001501204e6f74653a2060486973746f727944657074686020697320757365642061732074686520757070657220626f756e6420666f72207468652060426f756e646564566563601101206974656d20605374616b696e674c65646765722e636c61696d65645f72657761726473602e2053657474696e6720746869732076616c7565206c6f776572207468616ed820746865206578697374696e672076616c75652063616e206c65616420746f20696e636f6e73697374656e6369657320696e20746865150120605374616b696e674c65646765726020616e642077696c6c206e65656420746f2062652068616e646c65642070726f7065726c7920696e2061206d6967726174696f6e2ef020546865207465737420607265647563696e675f686973746f72795f64657074685f616272757074602073686f77732074686973206566666563742e3853657373696f6e735065724572611010060000000470204e756d626572206f662073657373696f6e7320706572206572612e3c426f6e64696e674475726174696f6e10107000000004e4204e756d626572206f6620657261732074686174207374616b65642066756e6473206d7573742072656d61696e20626f6e64656420666f722e48536c61736844656665724475726174696f6e10106f000000100101204e756d626572206f662065726173207468617420736c6173686573206172652064656665727265642062792c20616674657220636f6d7075746174696f6e2e000d0120546869732073686f756c64206265206c657373207468616e2074686520626f6e64696e67206475726174696f6e2e2053657420746f203020696620736c617368657315012073686f756c64206265206170706c69656420696d6d6564696174656c792c20776974686f7574206f70706f7274756e69747920666f7220696e74657276656e74696f6e2e804d61784e6f6d696e61746f72526577617264656450657256616c696461746f7210100001000010f820546865206d6178696d756d206e756d626572206f66206e6f6d696e61746f727320726577617264656420666f7220656163682076616c696461746f722e00510120466f7220656163682076616c696461746f72206f6e6c79207468652060244d61784e6f6d696e61746f72526577617264656450657256616c696461746f72602062696767657374207374616b6572732063616e390120636c61696d207468656972207265776172642e2054686973207573656420746f206c696d69742074686520692f6f20636f737420666f7220746865206e6f6d696e61746f72207061796f75742e484d6178556e6c6f636b696e674368756e6b7310102000000028050120546865206d6178696d756d206e756d626572206f662060756e6c6f636b696e6760206368756e6b732061205b605374616b696e674c6564676572605d2063616e090120686176652e204566666563746976656c792064657465726d696e657320686f77206d616e7920756e6971756520657261732061207374616b6572206d61792062653820756e626f6e64696e6720696e2e00f8204e6f74653a20604d6178556e6c6f636b696e674368756e6b736020697320757365642061732074686520757070657220626f756e6420666f722074686501012060426f756e64656456656360206974656d20605374616b696e674c65646765722e756e6c6f636b696e67602e2053657474696e6720746869732076616c75650501206c6f776572207468616e20746865206578697374696e672076616c75652063616e206c65616420746f20696e636f6e73697374656e6369657320696e20746865090120605374616b696e674c65646765726020616e642077696c6c206e65656420746f2062652068616e646c65642070726f7065726c7920696e20612072756e74696d650501206d6967726174696f6e2e20546865207465737420607265647563696e675f6d61785f756e6c6f636b696e675f6368756e6b735f616272757074602073686f7773342074686973206566666563742e017907081c53657373696f6e011c53657373696f6e1c2856616c696461746f727301005d050400047c205468652063757272656e7420736574206f662076616c696461746f72732e3043757272656e74496e646578010010100000000004782043757272656e7420696e646578206f66207468652073657373696f6e2e345175657565644368616e676564010098040008390120547275652069662074686520756e6465726c79696e672065636f6e6f6d6963206964656e746974696573206f7220776569676874696e6720626568696e64207468652076616c696461746f7273a420686173206368616e67656420696e20746865207175657565642076616c696461746f72207365742e285175657565644b65797301007d070400083d012054686520717565756564206b65797320666f7220746865206e6578742073657373696f6e2e205768656e20746865206e6578742073657373696f6e20626567696e732c207468657365206b657973e02077696c6c206265207573656420746f2064657465726d696e65207468652076616c696461746f7227732073657373696f6e206b6579732e4844697361626c656456616c696461746f7273010065050400148020496e6469636573206f662064697361626c65642076616c696461746f72732e003d01205468652076656320697320616c77617973206b65707420736f7274656420736f20746861742077652063616e2066696e642077686574686572206120676976656e2076616c696461746f722069733d012064697361626c6564207573696e672062696e617279207365617263682e204974206765747320636c6561726564207768656e20606f6e5f73657373696f6e5f656e64696e67602072657475726e73642061206e657720736574206f66206964656e7469746965732e204e6578744b65797300010405007d050400049c20546865206e6578742073657373696f6e206b65797320666f7220612076616c696461746f722e204b65794f776e657200010405850700040004090120546865206f776e6572206f662061206b65792e20546865206b65792069732074686520604b657954797065496460202b2074686520656e636f646564206b65792e01790501bc00018d070928486973746f726963616c0128486973746f726963616c0848486973746f726963616c53657373696f6e73000104051091070400045d01204d617070696e672066726f6d20686973746f726963616c2073657373696f6e20696e646963657320746f2073657373696f6e2d6461746120726f6f74206861736820616e642076616c696461746f7220636f756e742e2c53746f72656452616e67650000dd03040004e4205468652072616e6765206f6620686973746f726963616c2073657373696f6e732077652073746f72652e205b66697273742c206c61737429000000000a1c4772616e647061011c4772616e647061181453746174650100950704000490205374617465206f66207468652063757272656e7420617574686f72697479207365742e3450656e64696e674368616e676500009907040004c42050656e64696e67206368616e67653a20287369676e616c65642061742c207363686564756c6564206368616e6765292e284e657874466f72636564000010040004bc206e65787420626c6f636b206e756d6265722077686572652077652063616e20666f7263652061206368616e67652e1c5374616c6c65640000dd030400049020607472756560206966207765206172652063757272656e746c79207374616c6c65642e3043757272656e745365744964010028200000000000000000085d0120546865206e756d626572206f66206368616e6765732028626f746820696e207465726d73206f66206b65797320616e6420756e6465726c79696e672065636f6e6f6d696320726573706f6e736962696c697469657329c420696e20746865202273657422206f66204772616e6470612076616c696461746f72732066726f6d2067656e657369732e30536574496453657373696f6e00010405281004002859012041206d617070696e672066726f6d206772616e6470612073657420494420746f2074686520696e646578206f6620746865202a6d6f737420726563656e742a2073657373696f6e20666f722077686963682069747368206d656d62657273207765726520726573706f6e7369626c652e0045012054686973206973206f6e6c79207573656420666f722076616c69646174696e672065717569766f636174696f6e2070726f6f66732e20416e2065717569766f636174696f6e2070726f6f66206d7573744d0120636f6e7461696e732061206b65792d6f776e6572736869702070726f6f6620666f72206120676976656e2073657373696f6e2c207468657265666f7265207765206e65656420612077617920746f20746965450120746f6765746865722073657373696f6e7320616e64204752414e44504120736574206964732c20692e652e207765206e65656420746f2076616c6964617465207468617420612076616c696461746f7241012077617320746865206f776e6572206f66206120676976656e206b6579206f6e206120676976656e2073657373696f6e2c20616e642077686174207468652061637469766520736574204944207761735420647572696e6720746861742073657373696f6e2e00b82054574f582d4e4f54453a2060536574496460206973206e6f7420756e646572207573657220636f6e74726f6c2e01850501c008384d6178417574686f7269746965731010a0860100045c204d617820417574686f72697469657320696e20757365584d6178536574496453657373696f6e456e74726965732820a00200000000000018390120546865206d6178696d756d206e756d626572206f6620656e747269657320746f206b65657020696e207468652073657420696420746f2073657373696f6e20696e646578206d617070696e672e0031012053696e6365207468652060536574496453657373696f6e60206d6170206973206f6e6c79207573656420666f722076616c69646174696e672065717569766f636174696f6e73207468697329012076616c75652073686f756c642072656c61746520746f2074686520626f6e64696e67206475726174696f6e206f66207768617465766572207374616b696e672073797374656d2069733501206265696e6720757365642028696620616e79292e2049662065717569766f636174696f6e2068616e646c696e67206973206e6f7420656e61626c6564207468656e20746869732076616c7565342063616e206265207a65726f2e01a1070b48417574686f72697479446973636f766572790148417574686f72697479446973636f7665727908104b6579730100a5070400048c204b657973206f66207468652063757272656e7420617574686f72697479207365742e204e6578744b6579730100a50704000480204b657973206f6620746865206e65787420617574686f72697479207365742e000000000c20496d4f6e6c696e650120496d4f6e6c696e651038486561727462656174416674657201001010000000002c1d012054686520626c6f636b206e756d6265722061667465722077686963682069742773206f6b20746f2073656e64206865617274626561747320696e207468652063757272656e74242073657373696f6e2e0025012041742074686520626567696e6e696e67206f6620656163682073657373696f6e20776520736574207468697320746f20612076616c756520746861742073686f756c642066616c6c350120726f7567686c7920696e20746865206d6964646c65206f66207468652073657373696f6e206475726174696f6e2e20546865206964656120697320746f206669727374207761697420666f721901207468652076616c696461746f727320746f2070726f64756365206120626c6f636b20696e207468652063757272656e742073657373696f6e2c20736f207468617420746865a820686561727462656174206c61746572206f6e2077696c6c206e6f74206265206e65636573736172792e00390120546869732076616c75652077696c6c206f6e6c79206265207573656420617320612066616c6c6261636b206966207765206661696c20746f2067657420612070726f7065722073657373696f6e2d012070726f677265737320657374696d6174652066726f6d20604e65787453657373696f6e526f746174696f6e602c2061732074686f736520657374696d617465732073686f756c642062650101206d6f7265206163637572617465207468656e207468652076616c75652077652063616c63756c61746520666f7220604865617274626561744166746572602e104b6579730100ad07040004d0205468652063757272656e7420736574206f66206b6579732074686174206d61792069737375652061206865617274626561742e485265636569766564486561727462656174730001080505dd03b5070400083d0120466f7220656163682073657373696f6e20696e6465782c207765206b6565702061206d617070696e67206f66206053657373696f6e496e6465786020616e64206041757468496e6465786020746fb02060577261707065724f70617175653c426f756e6465644f70617175654e6574776f726b53746174653e602e38417574686f726564426c6f636b730101080505490710100000000008150120466f7220656163682073657373696f6e20696e6465782c207765206b6565702061206d617070696e67206f66206056616c696461746f7249643c543e6020746f20746865c8206e756d626572206f6620626c6f636b7320617574686f7265642062792074686520676976656e20617574686f726974792e01b50501d40440556e7369676e65645072696f726974792820ffffffffffffffff10f0204120636f6e66696775726174696f6e20666f722062617365207072696f72697479206f6620756e7369676e6564207472616e73616374696f6e732e0015012054686973206973206578706f73656420736f20746861742069742063616e2062652074756e656420666f7220706172746963756c61722072756e74696d652c207768656eb4206d756c7469706c652070616c6c6574732073656e6420756e7369676e6564207472616e73616374696f6e732e01c9070d204f6666656e63657301204f6666656e6365730c1c5265706f727473000104052ccd07040004490120546865207072696d61727920737472756374757265207468617420686f6c647320616c6c206f6666656e6365207265636f726473206b65796564206279207265706f7274206964656e746966696572732e58436f6e63757272656e745265706f727473496e6465780101080505d107d5030400042901204120766563746f72206f66207265706f727473206f66207468652073616d65206b696e6420746861742068617070656e6564206174207468652073616d652074696d6520736c6f742e485265706f72747342794b696e64496e64657801010405fc30040018110120456e756d65726174657320616c6c207265706f727473206f662061206b696e6420616c6f6e672077697468207468652074696d6520746865792068617070656e65642e00bc20416c6c207265706f7274732061726520736f72746564206279207468652074696d65206f66206f6666656e63652e004901204e6f74652074686174207468652061637475616c2074797065206f662074686973206d617070696e6720697320605665633c75383e602c207468697320697320626563617573652076616c756573206f66690120646966666572656e7420747970657320617265206e6f7420737570706f7274656420617420746865206d6f6d656e7420736f2077652061726520646f696e6720746865206d616e75616c2073657269616c697a6174696f6e2e0001f800000e6052616e646f6d6e657373436f6c6c656374697665466c6970016052616e646f6d6e657373436f6c6c656374697665466c6970043852616e646f6d4d6174657269616c0100d50704000c610120536572696573206f6620626c6f636b20686561646572732066726f6d20746865206c61737420383120626c6f636b73207468617420616374732061732072616e646f6d2073656564206d6174657269616c2e2054686973610120697320617272616e67656420617320612072696e672062756666657220776974682060626c6f636b5f6e756d626572202520383160206265696e672074686520696e64657820696e746f20746865206056656360206f664420746865206f6c6465737420686173682e000000000f20426167734c6973740120426167734c6973740c244c6973744e6f6465730001040500d90704000c8020412073696e676c65206e6f64652c2077697468696e20736f6d65206261672e000501204e6f6465732073746f7265206c696e6b7320666f727761726420616e64206261636b2077697468696e207468656972207265737065637469766520626167732e4c436f756e746572466f724c6973744e6f646573010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170204c697374426167730001040528dd0704000c642041206261672073746f72656420696e2073746f726167652e0019012053746f7265732061206042616760207374727563742c2077686963682073746f726573206865616420616e64207461696c20706f696e7465727320746f20697473656c662e01d50501010104344261675468726573686f6c647315010919210300407a10f35a00006a70ccd4a96000009ef3397fbc660000a907ccd5306d00003d9a67fb0c740000a9bfa275577b0000a6fdf73217830000034f5d91538b0000132445651494000078081001629d00000302f63c45a70000392e6f7fc7b10000f59c23c6f2bc00004ae76aafd1c80000598a64846fd50000129fb243d8e200003f22e1ac18f1000033a4844c3e000100e2e51b895710010076a2c0b0732101006789b407a3330100793ed8d7f646010078131b81815b01000c1cf38a567101004437eeb68a8801009eb56d1434a10100335e9f156abb010067c3c7a545d701003218f340e1f40100de0b230d59140200699c11f5ca350200ad50a2c4565902009ae41c471e7f0200d0244e6745a70200f984ad51f2d10200ace7a7984dff0200a118325b822f0300ffa4c76dbe620300580bfd8532990300a9afce6812d30300109ad81b95100400d9caa519f551040038df488970970400bee1727949e10400cc73401fc62f0500b304f91831830500828bffb4d9db05001235383d143a0600a5b42a473a9e060036662d09ab080700f73aeab4cb790700b87e93d707f20700ffec23c0d1710800b84b0beca2f90800c9dcae7afc89090091752ba867230a0064f1cd4f76c60a003609be76c3730b0078655fdff32b0c00a407f5a5b6ef0c0052f61be7c5bf0d00da71bb70e79c0e000de9127eed870f001477987fb7811000ebee65ef328b11001269fe325ca5120033f8428b3fd113008ba57a13fa0f15001b2b60d0ba6216000d1d37d0c3ca17006c64fa5c6b4919002622c7411de01a00045bb9245c901c00233d83f6c25b1e00c8771c79064420003013fddef64a2200aa8b6e848172240082c096c4b2bc260016a3faebb72b29008296524ae1c12b00a636a865a4812e00d0e2d4509e6d31009c0a9a2796883400e4faafb27fd53700e6e64d367e573b000e4bd66de7113f0088b17db746084300b07def72603e470034de249635b84b00d48bd57b077a5000d0bd20ef5b885500b8f0467801e85a0010f88aee139e60003892925301b066009c95e4fc8e236d00b4126d10dffe730028b43e5976487b00a08a1c7a42078300b09ab083a0428b002846b2f463029400c861a42ade4e9d0050d23d4ae630a700805101a7e1b1b10038e501b2ccdbbc002016527844b9c800388924ba9055d50070ca35a4aebce200805fb1355cfbf0008035685d241f0001a0c3dcd96b361001d07862e87e50210160e852d09f7d330190662c5816cf460110274c3340575b01804be277a22971013082b92dfc5a880180d276075a01a101b0f511592b34bb014031745f580cd701802f6cee59a4f40140ff799b521814026075607d2986350260fde999a60d590200e5e71c91d07e02c0df2575cff2a602a07fd975899ad102a067009d4cf0fe0220dc29a1321f2f0320ff526b0a5562038088caa383c29803e05683fb5c9bd203401dd75d9516100400317e39a06e5104c0b071129de1960480b48c9192b1e00480e8124aad242f05c007ca7082858205007c13c45623db0540836fe869523906c0700f81466c9d0640f09c5017d00707c0e624b301e37807c0332ac78510f10780074ca1e4ca700800d5a9eb8c8bf80800a849588ed3880900804254142c220a80a25170e826c50a00e8d5fafc5e720b801df64e00792a0c80d4fe64f923ee0c006dd038ee19be0d001e90a494209b0e0010bf570e0a860f00da6a9db0b57f1000bf64afd810891100bb5b60cd17a31200f963f3aed6ce1300d5f004766a0d1500e099770202601600103d663bdfc71700de3e2d4158461900ecdbadb2d8dc1a0045c70007e38c1c00b8bde0fc11581e00ba5c2a211a402000407de46dcb462200dea55b03136e2400aaf1f3fcfcb7260014226f63b62629006492803e8fbc2b008486a6c7fc7b2e002cf05fc09b673100da63f7ed32823400f0b13fbdb5ce3700f291c41047503b00422a1a3c3c0a3f002c24212f20004300ac9342d4b6354700cc6ed7a400af4b00c4d022773e70500020017d89f57d5500f86387cef3dc5a008c4c7f7e54926000206207f284a36600cc1e05cb49166d00b42a7a70c4f07300d43a90e278397b0038f461ec53f78200a07264b9b1318b0048c9b3d464f09300007fe998bd3b9d0010058f17921ca70000dfaf7f469cb100e80c880bd6c4bc0058bdcb7ddca0c80038d18d37a03bd50030d55bf01ca1e200704ac01a0fdef0ffffffffffffffffacd020546865206c697374206f66207468726573686f6c64732073657061726174696e672074686520766172696f757320626167732e00490120496473206172652073657061726174656420696e746f20756e736f727465642062616773206163636f7264696e6720746f2074686569722073636f72652e205468697320737065636966696573207468656101207468726573686f6c64732073657061726174696e672074686520626167732e20416e20696427732062616720697320746865206c6172676573742062616720666f722077686963682074686520696427732073636f7265b8206973206c657373207468616e206f7220657175616c20746f20697473207570706572207468726573686f6c642e006501205768656e20696473206172652069746572617465642c2068696768657220626167732061726520697465726174656420636f6d706c6574656c79206265666f7265206c6f77657220626167732e2054686973206d65616e735901207468617420697465726174696f6e206973205f73656d692d736f727465645f3a20696473206f66206869676865722073636f72652074656e6420746f20636f6d65206265666f726520696473206f66206c6f7765722d012073636f72652c206275742070656572206964732077697468696e206120706172746963756c6172206261672061726520736f7274656420696e20696e73657274696f6e206f726465722e006820232045787072657373696e672074686520636f6e7374616e74004d01205468697320636f6e7374616e74206d75737420626520736f7274656420696e207374726963746c7920696e6372656173696e67206f726465722e204475706c6963617465206974656d7320617265206e6f742c207065726d69747465642e00410120546865726520697320616e20696d706c696564207570706572206c696d6974206f66206053636f72653a3a4d4158603b20746861742076616c756520646f6573206e6f74206e65656420746f2062652101207370656369666965642077697468696e20746865206261672e20466f7220616e792074776f207468726573686f6c64206c697374732c206966206f6e6520656e647320776974683101206053636f72653a3a4d4158602c20746865206f74686572206f6e6520646f6573206e6f742c20616e64207468657920617265206f746865727769736520657175616c2c207468652074776f7c206c697374732077696c6c20626568617665206964656e746963616c6c792e003820232043616c63756c6174696f6e005501204974206973207265636f6d6d656e64656420746f2067656e65726174652074686520736574206f66207468726573686f6c647320696e20612067656f6d6574726963207365726965732c2073756368207468617441012074686572652065786973747320736f6d6520636f6e7374616e7420726174696f2073756368207468617420607468726573686f6c645b6b202b20315d203d3d20287468726573686f6c645b6b5d202ad020636f6e7374616e745f726174696f292e6d6178287468726573686f6c645b6b5d202b2031296020666f7220616c6c20606b602e005901205468652068656c7065727320696e2074686520602f7574696c732f6672616d652f67656e65726174652d6261677360206d6f64756c652063616e2073696d706c69667920746869732063616c63756c6174696f6e2e002c2023204578616d706c6573005101202d20496620604261675468726573686f6c64733a3a67657428292e69735f656d7074792829602c207468656e20616c6c20696473206172652070757420696e746f207468652073616d65206261672c20616e64b0202020697465726174696f6e206973207374726963746c7920696e20696e73657274696f6e206f726465722e6101202d20496620604261675468726573686f6c64733a3a67657428292e6c656e2829203d3d203634602c20616e6420746865207468726573686f6c6473206172652064657465726d696e6564206163636f7264696e6720746f11012020207468652070726f63656475726520676976656e2061626f76652c207468656e2074686520636f6e7374616e7420726174696f20697320657175616c20746f20322e6501202d20496620604261675468726573686f6c64733a3a67657428292e6c656e2829203d3d20323030602c20616e6420746865207468726573686f6c6473206172652064657465726d696e6564206163636f7264696e6720746f59012020207468652070726f63656475726520676976656e2061626f76652c207468656e2074686520636f6e7374616e7420726174696f20697320617070726f78696d6174656c7920657175616c20746f20312e3234382e6101202d20496620746865207468726573686f6c64206c69737420626567696e7320605b312c20322c20332c202e2e2e5d602c207468656e20616e20696420776974682073636f72652030206f7220312077696c6c2066616c6cf0202020696e746f2062616720302c20616e20696420776974682073636f726520322077696c6c2066616c6c20696e746f2062616720312c206574632e00302023204d6967726174696f6e00610120496e20746865206576656e7420746861742074686973206c6973742065766572206368616e6765732c206120636f7079206f6620746865206f6c642062616773206c697374206d7573742062652072657461696e65642e5d012057697468207468617420604c6973743a3a6d696772617465602063616e2062652063616c6c65642c2077686963682077696c6c20706572666f726d2074686520617070726f707269617465206d6967726174696f6e2e01e107101c56657374696e67011c56657374696e67081c56657374696e670001040200e907040004d820496e666f726d6174696f6e20726567617264696e67207468652076657374696e67206f66206120676976656e206163636f756e742e3853746f7261676556657273696f6e0100f10704000c7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e003101204e6577206e6574776f726b732073746172742077697468206c61746573742076657273696f6e2c2061732064657465726d696e6564206279207468652067656e65736973206275696c642e01d90501050108444d696e5665737465645472616e736665721840aa821bce26000000000000000000000004e820546865206d696e696d756d20616d6f756e74207472616e7366657272656420746f2063616c6c20607665737465645f7472616e73666572602e4c4d617856657374696e675363686564756c657310101c0000000001f50711204d756c746973696701204d756c746973696704244d756c7469736967730001080502f907fd07040004942054686520736574206f66206f70656e206d756c7469736967206f7065726174696f6e732e01e1050109010c2c4465706f736974426173651840d042de1300000000000000000000000018590120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e672061206d756c746973696720657865637574696f6e206f7220746f842073746f726520612064697370617463682063616c6c20666f72206c617465722e00010120546869732069732068656c6420666f7220616e206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a652069733101206034202b2073697a656f662828426c6f636b4e756d6265722c2042616c616e63652c204163636f756e74496429296020627974657320616e642077686f7365206b65792073697a652069738020603332202b2073697a656f66284163636f756e74496429602062797465732e344465706f736974466163746f72184040cd2d030000000000000000000000000c55012054686520616d6f756e74206f662063757272656e6379206e65656465642070657220756e6974207468726573686f6c64207768656e206372656174696e672061206d756c746973696720657865637574696f6e2e00250120546869732069732068656c6420666f7220616464696e67203332206279746573206d6f726520696e746f2061207072652d6578697374696e672073746f726167652076616c75652e384d61785369676e61746f7269657310106400000004ec20546865206d6178696d756d20616d6f756e74206f66207369676e61746f7269657320616c6c6f77656420696e20746865206d756c74697369672e010508121c436f756e63696c011c436f756e63696c24145374616765010009082402010000000000000004742043757272656e7420636f756e63696c20766f74696e6720737461676538436f756e63696c4d656d6265727301001d08040004602043757272656e7420636f756e63696c206d656d626572732843616e64696461746573000104022829080400041101204d6170206f6620616c6c2063616e64696461746573207468617420657665722063616e6469646174656420616e6420686176656e277420756e7374616b65207965742e50416e6e6f756e63656d656e74506572696f644e72010028200000000000000000085d0120496e646578206f66207468652063757272656e742063616e64696461637920706572696f642e20497420697320696e6372656d656e74656420657665727974696d6520616e6e6f756e63656d656e7420706572696f6420207374617274732e18427564676574010018400000000000000000000000000000000004c82042756467657420666f722074686520636f756e63696c277320656c6563746564206d656d6265727320726577617264732e484e6578745265776172645061796d656e7473010010100000000004290120546865206e65787420626c6f636b20696e2077686963682074686520656c656374656420636f756e63696c206d656d62657220726577617264732077696c6c2062652070617965642e404e657874427564676574526566696c6c010010100000000004d820546865206e65787420626c6f636b20696e20776869636820746865206275646765742077696c6c20626520696e637265617365642e3c427564676574496e6372656d656e74010018400000000000000000000000000000000004d420416d6f756e74206f662062616c616e636520746f20626520726566696c6c65642065766572792062756467657420706572696f643c436f756e63696c6f725265776172640100184000000000000000000000000000000000046c20436f756e63696c6f72207265776172642070657220626c6f636b01e90501110124684d696e4e756d6265724f66457874726143616e64696461746573101000000000080901204d696e696d756d206e756d626572206f662065787472612063616e64696461746573206e656564656420666f72207468652076616c696420656c656374696f6e2e2d01204e756d626572206f6620746f74616c2063616e6469646174657320697320657175616c20746f20636f756e63696c2073697a6520706c75732065787472612063616e646964617465732e2c436f756e63696c53697a65101003000000045420436f756e63696c206d656d62657220636f756e74444d696e43616e6469646174655374616b651840a010a012d3eb050000000000000000000490204d696e696d756d207374616b652063616e6469646174652068617320746f206c6f636b60416e6e6f756e63696e67506572696f644475726174696f6e101040fa01000474204475726174696f6e206f6620616e6e6f6e63696e6720706572696f644849646c65506572696f644475726174696f6e1010010000000460204475726174696f6e206f662069646c6520706572696f6464456c65637465644d656d626572526577617264506572696f6410104038000004a020496e74657276616c20666f72206175746f6d6174696320726577617264207061796d656e74732e48427564676574526566696c6c506572696f6410104038000004ac20496e74657276616c206265747765656e206175746f6d617469632062756467657420726566696c6c732e3c43616e6469646163794c6f636b496425042063616e6469646163048c204578706f72747320636f6e7374202d2063616e646964616379206c6f636b2069642e3c436f756e63696c6f724c6f636b4964250420636f756e63696c6f048c204578706f72747320636f6e7374202d20636f756e63696c6f72206c6f636b2069642e012d0813285265666572656e64756d014c496e7374616e6365315265666572656e64756d0c14537461676501003108040004682043757272656e74207265666572656e64756d2073746167652e14566f74657301010402004108e400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018510120566f746573206361737420696e20746865207265666572656e64756d2e2041206e6577207265636f726420697320616464656420746f2074686973206d6170207768656e20612075736572206361737473206134207365616c656420766f74652e0101204974206973206d6f646966696564207768656e206120757365722072657665616c732074686520766f7465277320636f6d6d69746d656e742070726f6f662e55012041207265636f72642069732066696e616c6c792072656d6f766564207768656e20746865207573657220756e7374616b65732c2077686963682063616e2068617070656e20647572696e67206120766f74696e679c207374616765206f72206166746572207468652063757272656e74206379636c6520656e64732ef82041207374616b6520666f72206120766f74652063616e2062652072657573656420696e20667574757265207265666572656e64756d206379636c65732e404163636f756e74734f707465644f757401010402007c0004f4204163636f756e74732074686174207065726d616e656e746c79206f70746564206f7574206f6620766f74696e6720696e207265666572656e64756d2e01ed0501190114344d617853616c744c656e67746828202000000000000000085d01204d6178696d756d206c656e677468206f6620766f746520636f6d6d69746d656e742073616c742e20557365206c656e677468207468617420656e737572657320756e697175656e65737320666f722068617368696e675020652e672e207374643a3a7536343a3a4d41582e44566f746553746167654475726174696f6e1010c0a8000004b0204475726174696f6e206f6620766f74696e6720737461676520286e756d626572206f6620626c6f636b73294c52657665616c53746167654475726174696f6e1010c0a8000004bc204475726174696f6e206f662072657665616c696e6720737461676520286e756d626572206f6620626c6f636b7329304d696e696d756d5374616b651840a41a130d8401000000000000000000000480204d696e696d756d207374616b65206e656564656420666f7220766f74696e67505374616b696e6748616e646c65724c6f636b4964250420766f74696e67202004a4204578706f72747320636f6e7374202d207374616b696e672068616e646c6572206c6f636b2069642e014508141c4d656d6265727301284d656d6265727368697020304e6578744d656d6265724964010028200000000000000000084501204d656d626572496420746f2061737369676e20746f206e657874206d656d626572207468617420697320616464656420746f207468652072656769737472792c20616e6420697320616c736f20746865e820746f74616c206e756d626572206f66206d656d6265727320637265617465642e204d656d626572496473207374617274206174205a65726f2e384d656d626572736869704279496400010402284908040004d0204d617070696e67206f66206d656d626572277320696420746f207468656972206d656d626572736869702070726f66696c652e504d656d6265724964427948616e646c6548617368010104022c28200000000000000000040501205265676973746572656420756e697175652068616e646c6573206861736820616e64207468656972206d617070696e6720746f207468656972206f776e65722e2c526566657272616c437574010008040004410120526566657272616c206375742070657263656e74206f6620746865206d656d626572736869702066656520746f2072656365697665206f6e20627579696e6720746865206d656d626572736869702e3c4d656d62657273686970507269636501001840aa821bce26000000000000000000000004682043757272656e74206d656d626572736869702070726963652e58496e697469616c496e7669746174696f6e436f756e74010010100000000004e820496e697469616c20696e7669746174696f6e20636f756e7420666f7220746865206e65776c7920626f75676874206d656d626572736869702e60496e697469616c496e7669746174696f6e42616c616e63650100184034c10d6713000000000000000000000004cc20496e697469616c20696e7669746174696f6e2062616c616e636520666f722074686520696e7669746564206d656d6265722e705374616b696e674163636f756e7449644d656d62657253746174757301010402004d082400000000000000000004250120446f75626c65206f662061207374616b696e67206163636f756e7420696420616e64206d656d62657220696420746f2074686520636f6e6669726d6174696f6e207374617475732e01f105012901185844656661756c744d656d6265727368697050726963651840aa821bce26000000000000000000000004a0204578706f72747320636f6e7374202d2064656661756c74206d656d62657273686970206665652e64526566657272616c4375744d6178696d756d50657263656e74080432044901204578706f72747320636f6e7374202d206d6178696d756d2070657263656e742076616c7565206f6620746865206d656d626572736869702066656520666f722074686520726566657272616c206375742e7c44656661756c74496e697469616c496e7669746174696f6e42616c616e6365184034c10d6713000000000000000000000004e0204578706f72747320636f6e7374202d2064656661756c742062616c616e636520666f722074686520696e7669746564206d656d6265722e3843616e6469646174655374616b651840a41a130d84010000000000000000000004f8204578706f72747320636f6e7374202d205374616b65206e656564656420746f2063616e646964617465206173207374616b696e67206163636f756e742e4c496e76697465644d656d6265724c6f636b4964250420696e766974656d6204a0204578706f72747320636f6e7374202d20696e7669746564206d656d626572206c6f636b2069642e585374616b696e6743616e6469646174654c6f636b4964250420626f756e6473746104ac204578706f72747320636f6e7374202d207374616b696e672063616e646964617465206c6f636b2069642e0151081514466f72756d0124466f72756d5f315f31203043617465676f727942794964010104022855083d010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004cc204d61702063617465676f7279206964656e74696669657220746f20636f72726573706f6e64696e672063617465676f72792e384e65787443617465676f727949640100282000000000000000000411012043617465676f7279206964656e7469666965722076616c756520746f206265207573656420666f7220746865206e6578742043617465676f727920637265617465642e3c43617465676f7279436f756e746572010028200000000000000000049420436f756e74657220666f7220616c6c206578697374696e672063617465676f726965732e2854687265616442794964010108020279035d08a4000000000000000000000000000000000000000000000000000000000000000000000000000000000004bc204d617020746872656164206964656e74696669657220746f20636f72726573706f6e64696e67207468726561642e304e657874546872656164496401002820000000000000000004090120546872656164206964656e7469666965722076616c756520746f206265207573656420666f72206e6578742054687265616420696e20746872656164427949642e284e657874506f7374496401002820000000000000000004f020506f7374206964656e7469666965722076616c756520746f206265207573656420666f7220666f72206e65787420706f737420637265617465642e4c43617465676f727942794d6f64657261746f72010108020279037c000480204d6f64657261746f722073657420666f7220656163682043617465676f727920506f737442794964010108020279036108150100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004ac204d617020706f7374206964656e74696669657220746f20636f72726573706f6e64696e6720706f73742e01f505015101102c506f73744465706f73697418403f254f710000000000000000000000000838204578706f72747320636f6e737480204465706f736974206e656564656420746f20637265617465206120706f7374345468726561644465706f73697418401a9eba6d0000000000000000000000000488204465706f736974206e656564656420746f20637265617465206120746872656164804d617844697265637453756263617465676f72696573496e43617465676f7279282005000000000000000484204d617844697265637453756263617465676f72696573496e43617465676f7279484d6178546f74616c43617465676f7269657328202800000000000000044c204d6178546f74616c43617465676f726965730165081630436f6e737469747574696f6e0130436f6e737469747574696f6e0430436f6e737469747574696f6e010069088000000000000000000000000000000000000000000000000000000000000000000001f905016d0100001718426f756e74790118426f756e74791420426f756e7469657301010402286d087d010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044020426f756e74792073746f726167652e4c426f756e7479436f6e747269627574696f6e7301010802028108850880000000000000000000000000000000008719c46b000000000000000000000000044d0120446f75626c65206d617020666f7220626f756e74792066756e64696e672e2049742073746f7265732061206d656d626572206f7220636f756e63696c2066756e64696e6720666f7220626f756e746965732e2c426f756e7479436f756e74010010100000000004b820436f756e74206f6620616c6c20626f756e7469657320746861742068617665206265656e20637265617465642e1c456e74726965730001080202790389080400046020576f726b20656e7472792073746f72616765206d61702e28456e747279436f756e74010010100000000004c820436f756e74206f6620616c6c20776f726b20656e747269657320746861742068617665206265656e20637265617465642e01fd05017101105c436c6f736564436f6e747261637453697a654c696d6974101032000000044d01204578706f72747320636f6e7374202d206d617820776f726b20656e747279206e756d62657220666f72206120636c6f736564206173737572616e6365207479706520636f6e747261637420626f756e74792e4c4d696e576f726b456e7472616e745374616b6518406039926c00000000000000000000000004d4204578706f72747320636f6e7374202d206d696e20776f726b20656e7472616e74207374616b6520666f72206120626f756e74792e6846756e6465725374617465426c6f6174426f6e64416d6f756e7418408719c46b00000000000000000000000004f4204578706f72747320636f6e7374202d2066756e64657220737461746520626c6f617420626f6e6420616d6f756e7420666f72206120626f756e74792e6c43726561746f725374617465426c6f6174426f6e64416d6f756e74184036bad36b00000000000000000000000004f8204578706f72747320636f6e7374202d2063726561746f7220737461746520626c6f617420626f6e6420616d6f756e7420666f72206120626f756e74792e018d0818404a6f7973747265616d5574696c69747901404a6f7973747265616d5574696c6974790001010601950100019108191c436f6e74656e74011c436f6e74656e74842c4368616e6e656c427949640101040228a901a10100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024566964656f42794964010104022895086c00000000000000000000000000000000000000000000000000000000344e6578744368616e6e656c4964010028200000000000000000002c4e657874566964656f496401002820000000000000000000384e6578745472616e73666572496401002820000000000000000000484e65787443757261746f7247726f75704964010028200000000000000000004043757261746f7247726f7570427949640101040228c1080c0000000028436f6d6d69746d656e7401002c80000000000000000000000000000000000000000000000000000000000000000000684368616e6e656c5374617465426c6f6174426f6e6456616c756501001840000000000000000000000000000000000425012054686520737461746520626c6f617420626f6e6420666f7220746865206368616e6e656c202868656c70732070726576656e74696e672074686520737461746520626c6f6174292e60566964656f5374617465426c6f6174426f6e6456616c7565010018400000000000000000000000000000000004190154686520737461746520626c6f617420626f6e6420666f722074686520766964656f202868656c70732070726576656e74696e672074686520737461746520626c6f6174292e444d6178436173686f7574416c6c6f776564010018400000000000000000000000000000000000444d696e436173686f7574416c6c6f776564010018400000000000000000000000000000000000584368616e6e656c436173686f757473456e61626c6564010098040000484d696e41756374696f6e4475726174696f6e01001010000000000454204d696e2061756374696f6e206475726174696f6e484d617841756374696f6e4475726174696f6e01001010000000000454204d61782061756374696f6e206475726174696f6e644d696e41756374696f6e457874656e73696f6e506572696f6401001010000000000474204d696e2061756374696f6e20657874656e73696f6e20706572696f64644d617841756374696f6e457874656e73696f6e506572696f6401001010000000000474204d61782061756374696f6e20657874656e73696f6e20706572696f64484d696e4269644c6f636b4475726174696f6e01001010000000000458204d696e20626964206c6f636b206475726174696f6e484d61784269644c6f636b4475726174696f6e01001010000000000458204d617820626964206c6f636b206475726174696f6e404d696e5374617274696e67507269636501001840000000000000000000000000000000000468204d696e2061756374696f6e2073746172696e67207072696365404d61785374617274696e67507269636501001840000000000000000000000000000000000468204d61782061756374696f6e2073746172696e67207072696365444d696e43726561746f72526f79616c74790100ac1000000000047c204d696e2063726561746f7220726f79616c74792070657263656e74616765444d617843726561746f72526f79616c74790100ac1000000000047c204d61782063726561746f7220726f79616c74792070657263656e74616765284d696e4269645374657001001840000000000000000000000000000000000454204d696e2061756374696f6e206269642073746570284d61784269645374657001001840000000000000000000000000000000000454204d61782061756374696f6e20626964207374657054506c617466726f6d46656550657263656e746167650100ac1000000000046020506c6174666f726d206665652070657263656e746167655c41756374696f6e53746172747341744d617844656c7461010010100000000004b8204d61782064656c7461206265747765656e2063757272656e7420626c6f636b20616e6420737461727473206174784f70656e41756374696f6e4269644279566964656f416e644d656d62657201010802027903dd087000000000000000000000000000000000000000000000000000000000045c204269647320666f72206f70656e2061756374696f6e7354476c6f62616c4461696c794e6674436f756e7465720100f90130000000000000000000000000046820476c6f62616c206461696c79204e465420636f756e7465722e58476c6f62616c5765656b6c794e6674436f756e7465720100f90130000000000000000000000000046c20476c6f62616c207765656b6c79204e465420636f756e7465722e4c476c6f62616c4461696c794e66744c696d69740100f50130000000000000000000000000046020476c6f62616c206461696c79204e4654206c696d69742e50476c6f62616c5765656b6c794e66744c696d69740100f50130000000000000000000000000046420476c6f62616c207765656b6c79204e4654206c696d69742e404e66744c696d697473456e61626c656401009804000868204e4654206c696d69747320656e61626c6564206f72206e6f74a02043616e206265207570646174656420696e20666c696768742062792074686520436f756e63696c01050601a101246c4d61784e756d6265724f6643757261746f727350657247726f757010100a00000004c4204578706f72747320636f6e7374202d206d6178206e756d626572206f662063757261746f7273207065722067726f7570ac4d61784b65797350657243757261746f7247726f75705065726d697373696f6e7342794c6576656c4d6170101019000000045d01204578706f72747320636f6e7374202d206d6178206e756d626572206f66206b657973207065722063757261746f725f67726f75702e7065726d697373696f6e735f62795f6c6576656c206d617020696e7374616e6365704d61784e667441756374696f6e57686974656c6973744c656e67746810101400000004c4204578706f72747320636f6e7374202d206d6178206e66742061756374696f6e2077686974656c697374206c656e6774686844656661756c74476c6f62616c4461696c794e66744c696d6974f5013064000000000000004038000004c0204578706f72747320636f6e7374202d2064656661756c7420676c6f62616c206461696c79204e4654206c696d69742e6c44656661756c74476c6f62616c5765656b6c794e66744c696d6974f5013064000000000000004038000004c4204578706f72747320636f6e7374202d2064656661756c7420676c6f62616c207765656b6c79204e4654206c696d69742e6c44656661756c744368616e6e656c4461696c794e66744c696d6974f5013064000000000000004038000004c4204578706f72747320636f6e7374202d2064656661756c74206368616e6e656c206461696c79204e4654206c696d69742e7044656661756c744368616e6e656c5765656b6c794e66744c696d6974f5013064000000000000004038000004c8204578706f72747320636f6e7374202d2064656661756c74206368616e6e656c207765656b6c79204e4654206c696d69742e684d696e696d756d436173686f7574416c6c6f7765644c696d69741840a41a130d84010000000000000000000004a8204578706f727420636f6e7374202d206d696e20636173686f757420616c6c6f776564206c696d697473684d6178696d756d436173686f7574416c6c6f7765644c696d6974184040a640ba3e363b00000000000000000004a8204578706f727420636f6e7374202d206d617820636173686f757420616c6c6f776564206c696d69747301e1081a1c53746f72616765011c53746f726167654c4055706c6f6164696e67426c6f636b6564010098040004a020446566696e6573207768657468657220616c6c206e65772075706c6f61647320626c6f636b65641042616773010104029502e50848000000000000000000000000000000000000044820426167732073746f72616765206d61702e4c4e65787453746f726167654275636b6574496401002820000000000000000004ac2053746f72616765206275636b657420696420636f756e7465722e20537461727473206174207a65726f2e404e657874446174614f626a656374496401002820000000000000000004a02044617461206f626a65637420696420636f756e7465722e20537461727473206174207a65726f2e4453746f726167654275636b6574427949640001040228f108040004442053746f72616765206275636b6574732e24426c61636b6c69737401010402f9087c00048020426c61636b6c69737465642064617461206f626a656374206861736865732e5043757272656e74426c61636b6c69737453697a65010028200000000000000000047820426c61636b6c69737420636f6c6c656374696f6e20636f756e7465722e60446174614f626a6563745065724d65676162797465466565010018400000000000000000000000000000000004b02053697a652062617365642070726963696e67206f66206e6577206f626a656374732075706c6f616465642e6453746f726167654275636b6574735065724261674c696d6974010010100000000004a0202253746f72616765206275636b657473207065722062616722206e756d626572206c696d69742e68566f75636865724d61784f626a6563747353697a654c696d697401002820000000000000000004f820224d6178206f626a656374732073697a6520666f7220612073746f72616765206275636b657420766f756368657222206e756d626572206c696d69742e70566f75636865724d61784f626a656374734e756d6265724c696d697401002820000000000000000004050120224d6178206f626a65637473206e756d62657220666f7220612073746f7261676520206275636b657420766f756368657222206e756d626572206c696d69742e74446174614f626a6563745374617465426c6f6174426f6e6456616c756501001840000000000000000000000000000000000439012054686520737461746520626c6f617420626f6e6420666f72207468652064617461206f626a65637473202868656c70732070726576656e74696e672074686520737461746520626c6f6174292e6844796e616d69634261674372656174696f6e506f6c696369657301010402b102fd0814000000000004c82044796e616d69634261674372656174696f6e506f6c6963792062792062616720747970652073746f72616765206d61702e3c446174614f626a65637473427949640101080202050909096c00000000000000000000000000000000000000000000000000000004b0202744617461206f626a6563747320666f722062616773272073746f7261676520646f75626c65206d61702e784e657874446973747269627574696f6e4275636b657446616d696c79496401002820000000000000000004dc20446973747269627574696f6e206275636b65742066616d696c7920696420636f756e7465722e20537461727473206174207a65726f2e70446973747269627574696f6e4275636b657446616d696c794279496401010402280d09200000000000000000047820446973747269627574696f6e206275636b65742066616d696c6965732e80446973747269627574696f6e4275636b6574427946616d696c794964427949640101080202790311093000000000000000000000000004a82027446973747269627574696f6e206275636b6574272073746f7261676520646f75626c65206d61702e78446973747269627574696f6e4275636b657446616d696c794e756d62657201002820000000000000000004f020546f74616c206e756d626572206f6620646973747269627574696f6e206275636b65742066616d696c69657320696e207468652073797374656d2e78446973747269627574696f6e4275636b6574735065724261674c696d6974010010100000000004b42022446973747269627574696f6e206275636b657473207065722062616722206e756d626572206c696d69742e013506018d022c48426c61636b6c69737453697a654c696d69742820e803000000000000040501204578706f72747320636f6e7374202d206d6178696d756d2073697a65206f662074686520226861736820626c61636b6c6973742220636f6c6c656374696f6e2e5c4d696e53746f726167654275636b65747350657242616710100300000004ec204578706f72747320636f6e7374202d206d696e696d756d206e756d626572206f662073746f72616765206275636b65747320706572206261672e5c4d617853746f726167654275636b65747350657242616710100d00000004ec204578706f72747320636f6e7374202d206d6178696d756d206e756d626572206f662073746f72616765206275636b65747320706572206261672e704d696e446973747269627574696f6e4275636b657473506572426167101001000000040101204578706f72747320636f6e7374202d206d696e696d756d206e756d626572206f6620646973747269627574696f6e206275636b65747320706572206261672e704d6178446973747269627574696f6e4275636b657473506572426167101033000000040101204578706f72747320636f6e7374202d206d6178696d756d206e756d626572206f6620646973747269627574696f6e206275636b65747320706572206261672eb444656661756c744d656d62657244796e616d69634261674e756d6265724f6653746f726167654275636b657473101005000000085101204578706f72747320636f6e7374202d207468652064656661756c742064796e616d696320626167206372656174696f6e20706f6c69637920666f72206d656d62657273202873746f72616765206275636b657424206e756d626572292eb844656661756c744368616e6e656c44796e616d69634261674e756d6265724f6653746f726167654275636b657473101005000000085501204578706f72747320636f6e7374202d207468652064656661756c742064796e616d696320626167206372656174696f6e20706f6c69637920666f72206368616e6e656c73202873746f72616765206275636b657424206e756d626572292e844d6178446973747269627574696f6e4275636b657446616d696c794e756d6265722820c80000000000000004fc204578706f72747320636f6e7374202d206d617820616c6c6f77656420646973747269627574696f6e206275636b65742066616d696c79206e756d6265722ec84d61784e756d6265724f6650656e64696e67496e7669746174696f6e73506572446973747269627574696f6e4275636b6574101014000000042d01204578706f72747320636f6e7374202d206d6178206e756d626572206f662070656e64696e6720696e7669746174696f6e732070657220646973747269627574696f6e206275636b65742ea44d61784e756d6265724f664f70657261746f7273506572446973747269627574696f6e4275636b6574101014000000040501204578706f72747320636f6e7374202d206d6178206e756d626572206f66206f70657261746f72732070657220646973747269627574696f6e206275636b65742e444d6178446174614f626a65637453697a652820000000000f00000004bc204578706f72747320636f6e7374202d206d61782064617461206f626a6563742073697a6520696e2062797465732e011d091b3050726f6a656374546f6b656e0114546f6b656e246c4163636f756e74496e666f4279546f6b656e416e644d656d626572010108020279032109b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041d0120446f75626c65206d617020546f6b656e49642078204d656d6265724964203d3e204163636f756e744461746120666f72206d616e6167696e67206163636f756e74206461746134546f6b656e496e666f4279496401010402284909cd010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004dc206d617020546f6b656e4964203d3e20546f6b656e4461746120746f20726574726965766520746f6b656e20696e666f726d6174696f6e2c4e657874546f6b656e4964010028200000000000000000043c20546f6b656e204964206e6f6e63652c53796d626f6c7355736564010104022c7c00046c2053657420666f722074686520746f6b656e732073796d626f6c7324426c6f6174426f6e64010018400000000000000000000000000000000004b820426c6f617420426f6e642076616c7565207573656420647572696e67206163636f756e74206372656174696f6e3c4d696e53616c654475726174696f6e01001010000000000484204d696e696d756d206475726174696f6e206f66206120746f6b656e2073616c655c4d696e526576656e756553706c69744475726174696f6e010010100000000004a8204d696e696d756d20726576656e75652073706c6974206475726174696f6e20636f6e73747261696e74684d696e526576656e756553706c697454696d65546f5374617274010010100000000004bc204d696e696d756d20726576656e75652073706c69742074696d6520746f20737461727420636f6e73747261696e743c53616c65506c6174666f726d4665650100d5021000000000044d0120506c6174666f726d20666565202870657263656e74616765292063686172676564206f6e20746f70206f6620656163682073616c652070757263686173652028696e204a4f592920616e64206275726e656401390601c102000165091c3c50726f706f73616c73456e67696e65013850726f706f73616c456e67696e65142450726f706f73616c73010104021069090101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460204d61702070726f706f73616c206279206974732069642e3450726f706f73616c436f756e74010010100000000004bc20436f756e74206f6620616c6c2070726f706f73616c7320746861742068617665206265656e20637265617465642e50446973706174636861626c6543616c6c436f646501010402107509040004b4204d61702070726f706f73616c2065786563757461626c6520636f64652062792070726f706f73616c2069642e4c41637469766550726f706f73616c436f756e740100101000000000046c20436f756e74206f66206163746976652070726f706f73616c732e6c566f7465457869737473427950726f706f73616c4279566f746572010108020279093d03040104290120446f75626c65206d617020666f722070726576656e74696e67206475706c696361746520766f7465732e2053686f756c6420626520636c65616e65642061667465722075736167652e016106012903183c43616e63656c6c6174696f6e4665651840aa821bce260000000000000000000000047901204578706f72747320636f6e7374202d2074686520666565206973206170706c696564207768656e2063616e63656c207468652070726f706f73616c2e20412066656520776f756c6420626520736c617368656420286275726e6564292e3052656a656374696f6e4665651840528d8906c20000000000000000000000084501204578706f72747320636f6e7374202d202074686520666565206973206170706c696564207768656e207468652070726f706f73616c20676574732072656a65637465642e20412066656520776f756c645420626520736c617368656420286275726e6564292e385469746c654d61784c656e67746810102800000004d0204578706f72747320636f6e7374202d20206d617820616c6c6f7765642070726f706f73616c207469746c65206c656e6774682e504465736372697074696f6e4d61784c656e6774681010b80b000004e8204578706f72747320636f6e7374202d20206d617820616c6c6f7765642070726f706f73616c206465736372697074696f6e206c656e6774682e584d617841637469766550726f706f73616c4c696d697410101400000004ec204578706f72747320636f6e7374202d20206d61782073696d756c74616e656f7573206163746976652070726f706f73616c73206e756d6265722e505374616b696e6748616e646c65724c6f636b496425042070726f706f73616c04a4204578706f72747320636f6e7374202d207374616b696e672068616e646c6572206c6f636b2069642e017d091d4c50726f706f73616c7344697363757373696f6e014850726f706f73616c44697363757373696f6e10285468726561644279496401010402288109340000000000000000000000000004bc204d617020746872656164206964656e74696669657220746f20636f72726573706f6e64696e67207468726561642e2c546872656164436f756e7401002820000000000000000004b420436f756e74206f6620616c6c207468726561647320746861742068617665206265656e20637265617465642e50506f737454687265616449644279506f73744964010108020279038d0974000000000000000000000000000000000000000000000000000000000004c4204d61702074687265616420696420616e6420706f737420696420746f20636f72726573706f6e64696e6720706f73742e24506f7374436f756e7401002820000000000000000004ac20436f756e74206f6620616c6c20706f73747320746861742068617665206265656e20637265617465642e0165060141030c404d617857686974654c69737453697a65101014000000040901204578706f72747320636f6e7374202d20617574686f72206c6973742073697a65206c696d697420666f722074686520436c6f7365642064697363757373696f6e2e2c506f73744465706f73697418405683dd6b00000000000000000000000004a0204578706f72747320636f6e7374202d2066656520666f72206372656174696e67206120706f737430506f73744c69666554696d65101058020000043d01204578706f72747320636f6e7374202d206d6178696d756d206e756d626572206f6620626c6f636b73206265666f7265206120706f73742063616e2062652065726173656420627920616e796f6e650191091e3850726f706f73616c73436f646578013850726f706f73616c73436f64657804505468726561644964427950726f706f73616c496401010402102820000000000000000004b0204d61702070726f706f73616c20696420746f206974732064697363757373696f6e2074687265616420696401690601490368985365744d617856616c696461746f72436f756e7450726f706f73616c506172616d65746572736d09b4c0890100401901006400000064000000640000006400000001a010a012d3eb050000000000000000000200000004dc204578706f7274732027536574204d61782056616c696461746f7220436f756e74272070726f706f73616c20706172616d65746572732e8052756e74696d655570677261646550726f706f73616c506172616d65746572736d09b4c0890100401901006400000064000000640000006400000001a010a012d3eb050000000000000000000200000004bc204578706f727473202752756e74696d652055706772616465272070726f706f73616c20706172616d65746572732e605369676e616c50726f706f73616c506172616d65746572736d09b4c0a80000b004000064000000640000006400000064000000011068761b959700000000000000000000010000000498204578706f72747320275369676e616c272070726f706f73616c20706172616d65746572732e8046756e64696e675265717565737450726f706f73616c506172616d65746572736d09b4c0a80000b00400004200000042000000640000006400000001a41a130d8401000000000000000000000100000004bc204578706f727473202746756e64696e672052657175657374272070726f706f73616c20706172616d65746572732ebc437265617465576f726b696e6747726f75704c6561644f70656e696e6750726f706f73616c506172616d65746572736d09b4c0a80000b00400004200000042000000640000006400000001680abf82280f0000000000000000000001000000040501204578706f727473202743726561746520576f726b696e672047726f7570204c656164204f70656e696e67272070726f706f73616c20706172616d65746572732ea446696c6c576f726b696e6747726f75704f70656e696e6750726f706f73616c506172616d65746572736d09b4c0a80000b0040000420000004200000064000000640000000134855f419407000000000000000000000100000004fc204578706f727473202746696c6c20576f726b696e672047726f7570204c656164204f70656e696e67272070726f706f73616c20706172616d65746572732ea8557064617465576f726b696e6747726f757042756467657450726f706f73616c506172616d65746572736d09b4c0a80000b0040000420000004200000064000000640000000134855f419407000000000000000000000100000004ec204578706f727473202755706461746520576f726b696e672047726f757020427564676574272070726f706f73616c20706172616d65746572732ebc4465637265617365576f726b696e6747726f75704c6561645374616b6550726f706f73616c506172616d65746572736d09b4c0a80000b0040000640000006400000064000000640000000134855f4194070000000000000000000001000000040501204578706f7274732027446563726561736520576f726b696e672047726f7570204c656164205374616b65272070726f706f73616c20706172616d65746572732e9c536c617368576f726b696e6747726f75704c65616450726f706f73616c506172616d65746572736d09b4c0a80000b0040000420000004200000064000000640000000134855f419407000000000000000000000100000004e0204578706f7274732027536c61736820576f726b696e672047726f7570204c656164272070726f706f73616c20706172616d65746572732eac536574576f726b696e6747726f75704c65616452657761726450726f706f73616c506172616d65746572736d09b4c0a80000b0040000420000004200000064000000640000000134855f419407000000000000000000000100000004f4204578706f727473202753657420576f726b696e672047726f7570204c65616420526577617264272070726f706f73616c20706172616d65746572732eac5465726d696e617465576f726b696e6747726f75704c65616450726f706f73616c506172616d65746572736d09b4c0a80000b0040000420000004200000064000000640000000134855f419407000000000000000000000100000004f0204578706f72747320275465726d696e61746520576f726b696e672047726f7570204c656164272070726f706f73616c20706172616d65746572732e8c416d656e64436f6e737469747574696f6e50726f706f73616c506172616d65746572736d09b4081a01004038000050000000640000003c0000005000000001680abf82280f000000000000000000000200000004c8204578706f7274732027416d656e6420436f6e737469747574696f6e272070726f706f73616c20706172616d65746572732ebc43616e63656c576f726b696e6747726f75704c6561644f70656e696e6750726f706f73616c506172616d65746572736d09b4c0a80000b0040000420000004200000064000000640000000134855f4194070000000000000000000001000000040501204578706f727473202743616e63656c20576f726b696e672047726f7570204c656164204f70656e696e67272070726f706f73616c20706172616d65746572732e905365744d656d62657273686970507269636550726f706f73616c506172616d65746572736d09b4c0a80000b0040000420000004200000064000000640000000134855f419407000000000000000000000100000004d0204578706f7274732027536574204d656d62657273686970205072696365272070726f706f73616c20706172616d65746572732eac536574436f756e63696c427564676574496e6372656d656e7450726f706f73616c506172616d65746572736d09b44019010040190100640000006400000064000000640000000120d0ec362a2f010000000000000000000200000004f0204578706f727473206053657420436f756e63696c2042756467657420496e6372656d656e74602070726f706f73616c20706172616d65746572732e90536574436f756e63696c6f7252657761726450726f706f73616c506172616d65746572736d09b480700000c0a80000640000006400000064000000640000000120d0ec362a2f0100000000000000000002000000042101204578706f727473206053657420436f756e63696c6f72205265776172642050726f706f73616c20506172616d6574657273602070726f706f73616c20706172616d65746572732eb4536574496e697469616c496e7669746174696f6e42616c616e636550726f706f73616c506172616d65746572736d09b480700000b00400004200000042000000640000006400000001d0147e05511e000000000000000000000100000004f8204578706f727473206053657420496e697469616c20496e7669746174696f6e2042616c616e6365602070726f706f73616c20706172616d65746572732e90536574496e7669746174696f6e436f756e7450726f706f73616c506172616d65746572736d09b4c0a80000b0040000420000004200000064000000640000000134855f419407000000000000000000000100000000c85365744d656d626572736869704c656164496e7669746174696f6e51756f746150726f706f73616c506172616d65746572736d09b4c0a80000b0040000420000004200000064000000640000000134855f41940700000000000000000000010000000080536574526566657272616c43757450726f706f73616c506172616d65746572736d09b4c0a80000b0040000420000004200000064000000640000000134855f419407000000000000000000000100000000785665746f50726f706f73616c50726f706f73616c506172616d65746572736d09b4403800000000000064000000640000006400000064000000011068761b959700000000000000000000010000000098557064617465476c6f62616c4e66744c696d697450726f706f73616c506172616d65746572736d09b480700000b00400004200000042000000640000006400000001680abf82280f000000000000000000000100000000985570646174654368616e6e656c5061796f75747350726f706f73616c506172616d65746572736d09b4c0890100403800004200000064000000640000006400000001680abf82280f0000000000000000000001000000009046756e64696e675265717565737450726f706f73616c4d6178546f74616c416d6f756e741840a010a012d3eb0500000000000000000004c4204d6178696d756d20746f74616c20616d6f756e7420696e2066756e64696e6720726571756573742070726f706f73616c8446756e64696e675265717565737450726f706f73616c4d61784163636f756e747310101400000004d0204d6178206e756d626572206f66206163636f756e7473207065722066756e64696e6720726571756573742070726f706f73616ca45365744d617856616c696461746f72436f756e7450726f706f73616c4d617856616c696461746f7273101064000000041501204d617820616c6c6f776564206e756d626572206f662076616c696461746f727320696e20736574206d61782076616c696461746f7220636f756e742070726f706f73616c0195091f44466f72756d576f726b696e6747726f75700154496e7374616e636531576f726b696e6747726f757028344e6578744f70656e696e67496401002820000000000000000004ac204e657874206964656e7469666965722076616c756520666f72206e6577206a6f62206f70656e696e672e2c4f70656e696e674279496401010402289909290101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000480204d617073206964656e74696669657220746f206a6f62206f70656e696e672e44416374697665576f726b6572436f756e740100101000000000046420436f756e74206f662061637469766520776f726b6572732e3c4170706c69636174696f6e4279496400010402289d09040004c8204d617073206964656e74696669657220746f20776f726b6572206170706c69636174696f6e206f6e206f70656e696e672e444e6578744170706c69636174696f6e496401002820000000000000000004c8204e657874206964656e7469666965722076616c756520666f72206e657720776f726b6572206170706c69636174696f6e2e304e657874576f726b657249640100282000000000000000000488204e657874206964656e74696669657220666f722061206e657720776f726b65722e28576f726b6572427949640001040228a109040004a4204d617073206964656e74696669657220746f20636f72726573706f6e64696e6720776f726b65722e2c43757272656e744c656164000028040004502043757272656e742067726f7570206c6561642e18427564676574010018400000000000000000000000000000000004782042756467657420666f722074686520776f726b696e672067726f75702e38537461747573546578744861736801002c800000000000000000000000000000000000000000000000000000000000000000044820537461747573207465787420686173682e016d06016d0318504d6178576f726b65724e756d6265724c696d697410101e0000000838204578706f72747320636f6e73749c204d61782073696d756c74616e656f75732061637469766520776f726b6572206e756d6265722e5c4d696e556e7374616b696e67506572696f644c696d697410100065040004ac20446566696e6573206d696e20756e7374616b696e6720706572696f6420696e207468652067726f75702e5c4d696e696d756d4170706c69636174696f6e5374616b6518404835261a08030000000000000000000004d4204d696e696d756d207374616b6520726571756972656420666f72206170706c79696e6720696e746f20616e206f70656e696e672e484c65616465724f70656e696e675374616b651840680abf82280f00000000000000000000048c205374616b65206e656564656420746f2063726561746520616e206f70656e696e672e30526577617264506572696f6410104a38000004d420446566696e65732074686520706572696f6420657665727920776f726b65722067657473207061696420696e20626c6f636b732e505374616b696e6748616e646c65724c6f636b496425042077672d666f72756d0464205374616b696e672068616e646c6572206c6f636b2069642e01a509204c53746f72616765576f726b696e6747726f75700154496e7374616e636532576f726b696e6747726f757028344e6578744f70656e696e67496401002820000000000000000004ac204e657874206964656e7469666965722076616c756520666f72206e6577206a6f62206f70656e696e672e2c4f70656e696e674279496401010402289909290101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000480204d617073206964656e74696669657220746f206a6f62206f70656e696e672e44416374697665576f726b6572436f756e740100101000000000046420436f756e74206f662061637469766520776f726b6572732e3c4170706c69636174696f6e4279496400010402289d09040004c8204d617073206964656e74696669657220746f20776f726b6572206170706c69636174696f6e206f6e206f70656e696e672e444e6578744170706c69636174696f6e496401002820000000000000000004c8204e657874206964656e7469666965722076616c756520666f72206e657720776f726b6572206170706c69636174696f6e2e304e657874576f726b657249640100282000000000000000000488204e657874206964656e74696669657220666f722061206e657720776f726b65722e28576f726b6572427949640001040228a109040004a4204d617073206964656e74696669657220746f20636f72726573706f6e64696e6720776f726b65722e2c43757272656e744c656164000028040004502043757272656e742067726f7570206c6561642e18427564676574010018400000000000000000000000000000000004782042756467657420666f722074686520776f726b696e672067726f75702e38537461747573546578744861736801002c800000000000000000000000000000000000000000000000000000000000000000044820537461747573207465787420686173682e01710601910318504d6178576f726b65724e756d6265724c696d697410101e0000000838204578706f72747320636f6e73749c204d61782073696d756c74616e656f75732061637469766520776f726b6572206e756d6265722e5c4d696e556e7374616b696e67506572696f644c696d697410100065040004ac20446566696e6573206d696e20756e7374616b696e6720706572696f6420696e207468652067726f75702e5c4d696e696d756d4170706c69636174696f6e5374616b6518404835261a08030000000000000000000004d4204d696e696d756d207374616b6520726571756972656420666f72206170706c79696e6720696e746f20616e206f70656e696e672e484c65616465724f70656e696e675374616b651840680abf82280f00000000000000000000048c205374616b65206e656564656420746f2063726561746520616e206f70656e696e672e30526577617264506572696f6410105438000004d420446566696e65732074686520706572696f6420657665727920776f726b65722067657473207061696420696e20626c6f636b732e505374616b696e6748616e646c65724c6f636b496425042077672d73746f72670464205374616b696e672068616e646c6572206c6f636b2069642e01a909214c436f6e74656e74576f726b696e6747726f75700154496e7374616e636533576f726b696e6747726f757028344e6578744f70656e696e67496401002820000000000000000004ac204e657874206964656e7469666965722076616c756520666f72206e6577206a6f62206f70656e696e672e2c4f70656e696e674279496401010402289909290101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000480204d617073206964656e74696669657220746f206a6f62206f70656e696e672e44416374697665576f726b6572436f756e740100101000000000046420436f756e74206f662061637469766520776f726b6572732e3c4170706c69636174696f6e4279496400010402289d09040004c8204d617073206964656e74696669657220746f20776f726b6572206170706c69636174696f6e206f6e206f70656e696e672e444e6578744170706c69636174696f6e496401002820000000000000000004c8204e657874206964656e7469666965722076616c756520666f72206e657720776f726b6572206170706c69636174696f6e2e304e657874576f726b657249640100282000000000000000000488204e657874206964656e74696669657220666f722061206e657720776f726b65722e28576f726b6572427949640001040228a109040004a4204d617073206964656e74696669657220746f20636f72726573706f6e64696e6720776f726b65722e2c43757272656e744c656164000028040004502043757272656e742067726f7570206c6561642e18427564676574010018400000000000000000000000000000000004782042756467657420666f722074686520776f726b696e672067726f75702e38537461747573546578744861736801002c800000000000000000000000000000000000000000000000000000000000000000044820537461747573207465787420686173682e01750601990318504d6178576f726b65724e756d6265724c696d697410101e0000000838204578706f72747320636f6e73749c204d61782073696d756c74616e656f75732061637469766520776f726b6572206e756d6265722e5c4d696e556e7374616b696e67506572696f644c696d697410100065040004ac20446566696e6573206d696e20756e7374616b696e6720706572696f6420696e207468652067726f75702e5c4d696e696d756d4170706c69636174696f6e5374616b6518404835261a08030000000000000000000004d4204d696e696d756d207374616b6520726571756972656420666f72206170706c79696e6720696e746f20616e206f70656e696e672e484c65616465724f70656e696e675374616b651840680abf82280f00000000000000000000048c205374616b65206e656564656420746f2063726561746520616e206f70656e696e672e30526577617264506572696f6410105e38000004d420446566696e65732074686520706572696f6420657665727920776f726b65722067657473207061696420696e20626c6f636b732e505374616b696e6748616e646c65724c6f636b496425042077672d636f6e74740464205374616b696e672068616e646c6572206c6f636b2069642e01ad09226c4f7065726174696f6e73576f726b696e6747726f7570416c7068610154496e7374616e636534576f726b696e6747726f757028344e6578744f70656e696e67496401002820000000000000000004ac204e657874206964656e7469666965722076616c756520666f72206e6577206a6f62206f70656e696e672e2c4f70656e696e674279496401010402289909290101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000480204d617073206964656e74696669657220746f206a6f62206f70656e696e672e44416374697665576f726b6572436f756e740100101000000000046420436f756e74206f662061637469766520776f726b6572732e3c4170706c69636174696f6e4279496400010402289d09040004c8204d617073206964656e74696669657220746f20776f726b6572206170706c69636174696f6e206f6e206f70656e696e672e444e6578744170706c69636174696f6e496401002820000000000000000004c8204e657874206964656e7469666965722076616c756520666f72206e657720776f726b6572206170706c69636174696f6e2e304e657874576f726b657249640100282000000000000000000488204e657874206964656e74696669657220666f722061206e657720776f726b65722e28576f726b6572427949640001040228a109040004a4204d617073206964656e74696669657220746f20636f72726573706f6e64696e6720776f726b65722e2c43757272656e744c656164000028040004502043757272656e742067726f7570206c6561642e18427564676574010018400000000000000000000000000000000004782042756467657420666f722074686520776f726b696e672067726f75702e38537461747573546578744861736801002c800000000000000000000000000000000000000000000000000000000000000000044820537461747573207465787420686173682e01790601a10318504d6178576f726b65724e756d6265724c696d697410101e0000000838204578706f72747320636f6e73749c204d61782073696d756c74616e656f75732061637469766520776f726b6572206e756d6265722e5c4d696e556e7374616b696e67506572696f644c696d697410100065040004ac20446566696e6573206d696e20756e7374616b696e6720706572696f6420696e207468652067726f75702e5c4d696e696d756d4170706c69636174696f6e5374616b6518404835261a08030000000000000000000004d4204d696e696d756d207374616b6520726571756972656420666f72206170706c79696e6720696e746f20616e206f70656e696e672e484c65616465724f70656e696e675374616b651840680abf82280f00000000000000000000048c205374616b65206e656564656420746f2063726561746520616e206f70656e696e672e30526577617264506572696f6410107c38000004d420446566696e65732074686520706572696f6420657665727920776f726b65722067657473207061696420696e20626c6f636b732e505374616b696e6748616e646c65724c6f636b496425042077672d6f706572610464205374616b696e672068616e646c6572206c6f636b2069642e01b109233c417070576f726b696e6747726f75700154496e7374616e636535576f726b696e6747726f757028344e6578744f70656e696e67496401002820000000000000000004ac204e657874206964656e7469666965722076616c756520666f72206e6577206a6f62206f70656e696e672e2c4f70656e696e674279496401010402289909290101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000480204d617073206964656e74696669657220746f206a6f62206f70656e696e672e44416374697665576f726b6572436f756e740100101000000000046420436f756e74206f662061637469766520776f726b6572732e3c4170706c69636174696f6e4279496400010402289d09040004c8204d617073206964656e74696669657220746f20776f726b6572206170706c69636174696f6e206f6e206f70656e696e672e444e6578744170706c69636174696f6e496401002820000000000000000004c8204e657874206964656e7469666965722076616c756520666f72206e657720776f726b6572206170706c69636174696f6e2e304e657874576f726b657249640100282000000000000000000488204e657874206964656e74696669657220666f722061206e657720776f726b65722e28576f726b6572427949640001040228a109040004a4204d617073206964656e74696669657220746f20636f72726573706f6e64696e6720776f726b65722e2c43757272656e744c656164000028040004502043757272656e742067726f7570206c6561642e18427564676574010018400000000000000000000000000000000004782042756467657420666f722074686520776f726b696e672067726f75702e38537461747573546578744861736801002c800000000000000000000000000000000000000000000000000000000000000000044820537461747573207465787420686173682e017d0601a90318504d6178576f726b65724e756d6265724c696d697410101e0000000838204578706f72747320636f6e73749c204d61782073696d756c74616e656f75732061637469766520776f726b6572206e756d6265722e5c4d696e556e7374616b696e67506572696f644c696d697410100065040004ac20446566696e6573206d696e20756e7374616b696e6720706572696f6420696e207468652067726f75702e5c4d696e696d756d4170706c69636174696f6e5374616b6518404835261a08030000000000000000000004d4204d696e696d756d207374616b6520726571756972656420666f72206170706c79696e6720696e746f20616e206f70656e696e672e484c65616465724f70656e696e675374616b651840680abf82280f00000000000000000000048c205374616b65206e656564656420746f2063726561746520616e206f70656e696e672e30526577617264506572696f6410107238000004d420446566696e65732074686520706572696f6420657665727920776f726b65722067657473207061696420696e20626c6f636b732e505374616b696e6748616e646c65724c6f636b496425042077672d6170706c690464205374616b696e672068616e646c6572206c6f636b2069642e01b50924584d656d62657273686970576f726b696e6747726f75700154496e7374616e636536576f726b696e6747726f757028344e6578744f70656e696e67496401002820000000000000000004ac204e657874206964656e7469666965722076616c756520666f72206e6577206a6f62206f70656e696e672e2c4f70656e696e674279496401010402289909290101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000480204d617073206964656e74696669657220746f206a6f62206f70656e696e672e44416374697665576f726b6572436f756e740100101000000000046420436f756e74206f662061637469766520776f726b6572732e3c4170706c69636174696f6e4279496400010402289d09040004c8204d617073206964656e74696669657220746f20776f726b6572206170706c69636174696f6e206f6e206f70656e696e672e444e6578744170706c69636174696f6e496401002820000000000000000004c8204e657874206964656e7469666965722076616c756520666f72206e657720776f726b6572206170706c69636174696f6e2e304e657874576f726b657249640100282000000000000000000488204e657874206964656e74696669657220666f722061206e657720776f726b65722e28576f726b6572427949640001040228a109040004a4204d617073206964656e74696669657220746f20636f72726573706f6e64696e6720776f726b65722e2c43757272656e744c656164000028040004502043757272656e742067726f7570206c6561642e18427564676574010018400000000000000000000000000000000004782042756467657420666f722074686520776f726b696e672067726f75702e38537461747573546578744861736801002c800000000000000000000000000000000000000000000000000000000000000000044820537461747573207465787420686173682e01810601b10318504d6178576f726b65724e756d6265724c696d697410101e0000000838204578706f72747320636f6e73749c204d61782073696d756c74616e656f75732061637469766520776f726b6572206e756d6265722e5c4d696e556e7374616b696e67506572696f644c696d697410100065040004ac20446566696e6573206d696e20756e7374616b696e6720706572696f6420696e207468652067726f75702e5c4d696e696d756d4170706c69636174696f6e5374616b6518404835261a08030000000000000000000004d4204d696e696d756d207374616b6520726571756972656420666f72206170706c79696e6720696e746f20616e206f70656e696e672e484c65616465724f70656e696e675374616b651840680abf82280f00000000000000000000048c205374616b65206e656564656420746f2063726561746520616e206f70656e696e672e30526577617264506572696f6410106838000004d420446566696e65732074686520706572696f6420657665727920776f726b65722067657473207061696420696e20626c6f636b732e505374616b696e6748616e646c65724c6f636b496425042077672d6d656d62720464205374616b696e672068616e646c6572206c6f636b2069642e01b90925684f7065726174696f6e73576f726b696e6747726f7570426574610154496e7374616e636537576f726b696e6747726f757028344e6578744f70656e696e67496401002820000000000000000004ac204e657874206964656e7469666965722076616c756520666f72206e6577206a6f62206f70656e696e672e2c4f70656e696e674279496401010402289909290101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000480204d617073206964656e74696669657220746f206a6f62206f70656e696e672e44416374697665576f726b6572436f756e740100101000000000046420436f756e74206f662061637469766520776f726b6572732e3c4170706c69636174696f6e4279496400010402289d09040004c8204d617073206964656e74696669657220746f20776f726b6572206170706c69636174696f6e206f6e206f70656e696e672e444e6578744170706c69636174696f6e496401002820000000000000000004c8204e657874206964656e7469666965722076616c756520666f72206e657720776f726b6572206170706c69636174696f6e2e304e657874576f726b657249640100282000000000000000000488204e657874206964656e74696669657220666f722061206e657720776f726b65722e28576f726b6572427949640001040228a109040004a4204d617073206964656e74696669657220746f20636f72726573706f6e64696e6720776f726b65722e2c43757272656e744c656164000028040004502043757272656e742067726f7570206c6561642e18427564676574010018400000000000000000000000000000000004782042756467657420666f722074686520776f726b696e672067726f75702e38537461747573546578744861736801002c800000000000000000000000000000000000000000000000000000000000000000044820537461747573207465787420686173682e01850601b90318504d6178576f726b65724e756d6265724c696d697410101e0000000838204578706f72747320636f6e73749c204d61782073696d756c74616e656f75732061637469766520776f726b6572206e756d6265722e5c4d696e556e7374616b696e67506572696f644c696d697410100065040004ac20446566696e6573206d696e20756e7374616b696e6720706572696f6420696e207468652067726f75702e5c4d696e696d756d4170706c69636174696f6e5374616b6518404835261a08030000000000000000000004d4204d696e696d756d207374616b6520726571756972656420666f72206170706c79696e6720696e746f20616e206f70656e696e672e484c65616465724f70656e696e675374616b651840680abf82280f00000000000000000000048c205374616b65206e656564656420746f2063726561746520616e206f70656e696e672e30526577617264506572696f6410108638000004d420446566696e65732074686520706572696f6420657665727920776f726b65722067657473207061696420696e20626c6f636b732e505374616b696e6748616e646c65724c6f636b496425042077672d6f706572620464205374616b696e672068616e646c6572206c6f636b2069642e01bd09266c4f7065726174696f6e73576f726b696e6747726f757047616d6d610154496e7374616e636538576f726b696e6747726f757028344e6578744f70656e696e67496401002820000000000000000004ac204e657874206964656e7469666965722076616c756520666f72206e6577206a6f62206f70656e696e672e2c4f70656e696e674279496401010402289909290101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000480204d617073206964656e74696669657220746f206a6f62206f70656e696e672e44416374697665576f726b6572436f756e740100101000000000046420436f756e74206f662061637469766520776f726b6572732e3c4170706c69636174696f6e4279496400010402289d09040004c8204d617073206964656e74696669657220746f20776f726b6572206170706c69636174696f6e206f6e206f70656e696e672e444e6578744170706c69636174696f6e496401002820000000000000000004c8204e657874206964656e7469666965722076616c756520666f72206e657720776f726b6572206170706c69636174696f6e2e304e657874576f726b657249640100282000000000000000000488204e657874206964656e74696669657220666f722061206e657720776f726b65722e28576f726b6572427949640001040228a109040004a4204d617073206964656e74696669657220746f20636f72726573706f6e64696e6720776f726b65722e2c43757272656e744c656164000028040004502043757272656e742067726f7570206c6561642e18427564676574010018400000000000000000000000000000000004782042756467657420666f722074686520776f726b696e672067726f75702e38537461747573546578744861736801002c800000000000000000000000000000000000000000000000000000000000000000044820537461747573207465787420686173682e01890601c10318504d6178576f726b65724e756d6265724c696d697410101e0000000838204578706f72747320636f6e73749c204d61782073696d756c74616e656f75732061637469766520776f726b6572206e756d6265722e5c4d696e556e7374616b696e67506572696f644c696d697410100065040004ac20446566696e6573206d696e20756e7374616b696e6720706572696f6420696e207468652067726f75702e5c4d696e696d756d4170706c69636174696f6e5374616b6518404835261a08030000000000000000000004d4204d696e696d756d207374616b6520726571756972656420666f72206170706c79696e6720696e746f20616e206f70656e696e672e484c65616465724f70656e696e675374616b651840680abf82280f00000000000000000000048c205374616b65206e656564656420746f2063726561746520616e206f70656e696e672e30526577617264506572696f6410109038000004d420446566696e65732074686520706572696f6420657665727920776f726b65722067657473207061696420696e20626c6f636b732e505374616b696e6748616e646c65724c6f636b496425042077672d6f706572670464205374616b696e672068616e646c6572206c6f636b2069642e01c1092760446973747269627574696f6e576f726b696e6747726f75700154496e7374616e636539576f726b696e6747726f757028344e6578744f70656e696e67496401002820000000000000000004ac204e657874206964656e7469666965722076616c756520666f72206e6577206a6f62206f70656e696e672e2c4f70656e696e674279496401010402289909290101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000480204d617073206964656e74696669657220746f206a6f62206f70656e696e672e44416374697665576f726b6572436f756e740100101000000000046420436f756e74206f662061637469766520776f726b6572732e3c4170706c69636174696f6e4279496400010402289d09040004c8204d617073206964656e74696669657220746f20776f726b6572206170706c69636174696f6e206f6e206f70656e696e672e444e6578744170706c69636174696f6e496401002820000000000000000004c8204e657874206964656e7469666965722076616c756520666f72206e657720776f726b6572206170706c69636174696f6e2e304e657874576f726b657249640100282000000000000000000488204e657874206964656e74696669657220666f722061206e657720776f726b65722e28576f726b6572427949640001040228a109040004a4204d617073206964656e74696669657220746f20636f72726573706f6e64696e6720776f726b65722e2c43757272656e744c656164000028040004502043757272656e742067726f7570206c6561642e18427564676574010018400000000000000000000000000000000004782042756467657420666f722074686520776f726b696e672067726f75702e38537461747573546578744861736801002c800000000000000000000000000000000000000000000000000000000000000000044820537461747573207465787420686173682e018d0601c90318504d6178576f726b65724e756d6265724c696d697410101e0000000838204578706f72747320636f6e73749c204d61782073696d756c74616e656f75732061637469766520776f726b6572206e756d6265722e5c4d696e556e7374616b696e67506572696f644c696d697410100065040004ac20446566696e6573206d696e20756e7374616b696e6720706572696f6420696e207468652067726f75702e5c4d696e696d756d4170706c69636174696f6e5374616b6518404835261a08030000000000000000000004d4204d696e696d756d207374616b6520726571756972656420666f72206170706c79696e6720696e746f20616e206f70656e696e672e484c65616465724f70656e696e675374616b651840680abf82280f00000000000000000000048c205374616b65206e656564656420746f2063726561746520616e206f70656e696e672e30526577617264506572696f6410109a38000004d420446566696e65732074686520706572696f6420657665727920776f726b65722067657473207061696420696e20626c6f636b732e505374616b696e6748616e646c65724c6f636b496425042077672d64697374720464205374616b696e672068616e646c6572206c6f636b2069642e01c50928c909042048436865636b4e6f6e5a65726f53656e646572dd097c40436865636b5370656356657273696f6ee1091038436865636b547856657273696f6ee5091030436865636b47656e65736973e9092c38436865636b4d6f7274616c697479ed092c28436865636b4e6f6e6365f5097c2c436865636b576569676874f9097c604368617267655472616e73616374696f6e5061796d656e74fd097c010a","id":"1"} \ No newline at end of file From 87bc9ab8b09046e86aba72a9b66d9831082f7df6 Mon Sep 17 00:00:00 2001 From: Mokhtar Naamani Date: Mon, 20 Mar 2023 14:02:11 +0400 Subject: [PATCH 43/87] integration tests: tweaks bash scripts --- tests/network-tests/run-full-tests.sh | 63 ------------------- tests/network-tests/run-node-docker.sh | 3 +- .../run-runtime-upgrade-tests.sh | 8 +-- tests/network-tests/run-test-node.sh | 3 +- tests/network-tests/run-test-scenario.sh | 2 +- 5 files changed, 9 insertions(+), 70 deletions(-) delete mode 100755 tests/network-tests/run-full-tests.sh diff --git a/tests/network-tests/run-full-tests.sh b/tests/network-tests/run-full-tests.sh deleted file mode 100755 index ae1a970661..0000000000 --- a/tests/network-tests/run-full-tests.sh +++ /dev/null @@ -1,63 +0,0 @@ -#!/usr/bin/env bash -set -e - -SCRIPT_PATH="$(dirname "${BASH_SOURCE[0]}")" -cd $SCRIPT_PATH - -# Clean start -docker-compose -f ../../docker-compose.yml down -v - -if [ "${DEV_NODE}" == true ] -then - docker-compose -f ../../docker-compose.yml up -d joystream-node - NODE_CONTAINER_ID="joystream-node" - -else - NODE_CONTAINER_ID=$(./run-test-node-docker.sh) -fi - -if [ "${PERSIST}" != true ] -then - function cleanup() { - printf "**************************************************************************\n" - printf "***************************JOSYTREAM NODE LOGS****************************\n" - printf "**************************************************************************\n\n" - docker logs ${NODE_CONTAINER_ID} --tail 50 - docker stop ${NODE_CONTAINER_ID} - docker rm ${NODE_CONTAINER_ID} - - printf "\n\n\n" - printf "**************************************************************************\n" - printf "****************************HYDRA INDEXER LOGS****************************\n" - printf "**************************************************************************\n\n" - docker logs indexer --tail 50 - - printf "\n\n\n" - printf "**************************************************************************\n" - printf "*************************QUERY NODE PROCESSOR LOGS************************\n" - printf "**************************************************************************\n\n" - docker logs processor --tail 50 - - docker-compose -f ../../docker-compose.yml down -v - } - trap cleanup EXIT -fi - -# pass the scenario name without .ts extension -SCENARIO=$1 -# default to "full" if scenario is not specified -SCENARIO=${SCENARIO:=full} - -sleep 3 - -# Display runtime version -yarn workspace api-scripts tsnode-strict src/status.ts | grep Runtime - -# Start a query-node -../../query-node/start.sh - -# Start storage and distribution services -./start-storage.sh - -# Run full tests reusing the existing keys -REUSE_KEYS=true IGNORE_HIRED_LEADS=true SKIP_STORAGE_AND_DISTRIBUTION=true ./run-test-scenario.sh $SCENARIO diff --git a/tests/network-tests/run-node-docker.sh b/tests/network-tests/run-node-docker.sh index ee60a5c1b6..d3e6083f04 100755 --- a/tests/network-tests/run-node-docker.sh +++ b/tests/network-tests/run-node-docker.sh @@ -66,4 +66,5 @@ docker-compose -f ../../docker-compose.yml run -d -v ${DATA_PATH}:/spec --name j -p 9944:9944 -p 9933:9933 joystream-node \ --alice --validator --unsafe-ws-external --unsafe-rpc-external \ --rpc-methods Unsafe --rpc-cors=all -l runtime \ - --chain /spec/chain-spec-raw.json --pruning=archive --no-telemetry + --chain /spec/chain-spec-raw.json --pruning=archive --no-telemetry \ + --no-hardware-benchmarks diff --git a/tests/network-tests/run-runtime-upgrade-tests.sh b/tests/network-tests/run-runtime-upgrade-tests.sh index 9d54cfee64..8c498c6314 100755 --- a/tests/network-tests/run-runtime-upgrade-tests.sh +++ b/tests/network-tests/run-runtime-upgrade-tests.sh @@ -142,8 +142,10 @@ function export_chainspec_file_to_disk() { # cleanup function cleanup() { - docker logs ${CONTAINER_ID} --tail 15 + docker logs ${CONTAINER_ID} --tail 50 docker rm --volumes target-node + docker logs processor --tail 100 || : + docker logs indexer --tail 100 || : docker-compose -f ../../docker-compose.yml down -v --remove-orphans docker volume prune -f # sometimes volumes are still running } @@ -151,9 +153,7 @@ function cleanup() { # entrypoint function main { # Start a query-node - if [ "${NO_QN}" != true ]; then - ../../query-node/start.sh - fi + ../../query-node/start.sh CONTAINER_ID="" export JOYSTREAM_NODE_TAG=${RUNTIME} diff --git a/tests/network-tests/run-test-node.sh b/tests/network-tests/run-test-node.sh index ab9e821c6e..4be3fdf36c 100755 --- a/tests/network-tests/run-test-node.sh +++ b/tests/network-tests/run-test-node.sh @@ -59,4 +59,5 @@ fi --validator --chain ${DATA_PATH}/chain-spec.json \ --unsafe-ws-external --unsafe-rpc-external \ --rpc-methods Unsafe --rpc-cors=all \ - --pruning=archive --no-telemetry + --pruning=archive --no-telemetry \ + --no-hardware-benchmarks diff --git a/tests/network-tests/run-test-scenario.sh b/tests/network-tests/run-test-scenario.sh index 7fcabb9f11..c0a793cfa3 100755 --- a/tests/network-tests/run-test-scenario.sh +++ b/tests/network-tests/run-test-scenario.sh @@ -7,7 +7,7 @@ cd $SCRIPT_PATH # pass the scenario name without .ts extension SCENARIO=$1 # fallback if scenario not specified -SCENARIO=${SCENARIO:="content-directory"} +SCENARIO=${SCENARIO:="full"} # Execute the tests time DEBUG=integration-tests:* yarn workspace network-tests node-ts-strict src/scenarios/${SCENARIO}.ts From 5ed79e2fb7d3a40eb3e7f3c9d7fecbcfca5aa5d4 Mon Sep 17 00:00:00 2001 From: Mokhtar Naamani Date: Mon, 20 Mar 2023 14:12:50 +0400 Subject: [PATCH 44/87] v0.9.39 - cargo update packages --- Cargo.lock | 348 +++++++++++++++++++++++++++++------------------------ 1 file changed, 192 insertions(+), 156 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 857e7c6c63..a5af2d6642 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -197,11 +197,17 @@ dependencies = [ "winapi", ] +[[package]] +name = "anstyle" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23ea9e81bd02e310c216d080f6223c179012256e5151c41db88d12c88a1684d2" + [[package]] name = "anyhow" -version = "1.0.69" +version = "1.0.70" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "224afbd727c3d6e4b90103ece64b8d1b67fbb1973b1046c2281eed3f3803f800" +checksum = "7de8ce5e0f9f8d88245311066a578d72b7af3e7088f32783804676302df237e4" [[package]] name = "approx" @@ -282,7 +288,7 @@ checksum = "db8b7511298d5b7784b40b092d9e9dcd3a627a5707e4b5e507931ab0d44eeebf" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.109", "synstructure", ] @@ -294,7 +300,7 @@ checksum = "726535892e8eae7e70657b4c8ea93d26b8553afb1ce617caee529ef96d7dee6c" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.109", "synstructure", ] @@ -306,7 +312,7 @@ checksum = "2777730b2039ac0f95f093556e61b6d26cebed5393ca6f152717777cec3a42ed" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -317,13 +323,14 @@ checksum = "e22d1f4b888c298a027c99dc9048015fac177587de20fc30232a057dfbe24a21" [[package]] name = "assert_cmd" -version = "2.0.8" +version = "2.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9834fcc22e0874394a010230586367d4a3e9f11b560f469262678547e1d2575e" +checksum = "ec0b2340f55d9661d76793b2bfc2eb0e62689bd79d067a95707ea762afd5e9dd" dependencies = [ + "anstyle", "bstr", "doc-comment", - "predicates", + "predicates 3.0.1", "predicates-core", "predicates-tree", "wait-timeout", @@ -336,7 +343,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a3203e79f4dd9bdda415ed03cf14dae5a2bf775c683a00f94e9cd1faf0f596e5" dependencies = [ "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -443,13 +450,13 @@ checksum = "7a40729d2133846d9ed0ea60a8b9541bccddab49cd30f0715a1da672fe9a2524" [[package]] name = "async-trait" -version = "0.1.66" +version = "0.1.67" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b84f9ebcc6c1f5b8cb160f6990096a5c127f423fcb6e1ccc46c370cbdfb75dfc" +checksum = "86ea188f25f0255d8f92797797c97ebf5631fa88178beb1a46fdf5622c9a00e4" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.2", ] [[package]] @@ -572,7 +579,7 @@ version = "0.64.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c4243e6031260db77ede97ad86c27e501d646a27ab57b59a574f725d98ab1fb4" dependencies = [ - "bitflags", + "bitflags 1.3.2", "cexpr", "clang-sys", "lazy_static", @@ -583,7 +590,7 @@ dependencies = [ "regex", "rustc-hash", "shlex", - "syn", + "syn 1.0.109", ] [[package]] @@ -592,6 +599,12 @@ version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" +[[package]] +name = "bitflags" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "487f1e0fcbe47deb8b0574e646def1c903389d95241dd1bbcc6ce4a715dfc0c1" + [[package]] name = "bitvec" version = "1.0.1" @@ -737,9 +750,9 @@ checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3" [[package]] name = "bstr" -version = "1.3.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ffdb39cb703212f3c11973452c2861b972f757b021158f3516ba10f2fa8b2c1" +checksum = "c3d4260bcc2e8fc9df1eac4919a720effeb63a3f0952f5bf4944adfa18897f09" dependencies = [ "memchr", "once_cell", @@ -1038,7 +1051,7 @@ version = "2.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c" dependencies = [ - "bitflags", + "bitflags 1.3.2", "textwrap 0.11.0", "unicode-width", ] @@ -1050,7 +1063,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "71655c45cb9845d3270c9d6df84ebe72b4dad3c2ba3f7023ad47c144e4e473a5" dependencies = [ "atty", - "bitflags", + "bitflags 1.3.2", "clap_derive 3.2.18", "clap_lex 0.2.4", "indexmap", @@ -1062,13 +1075,13 @@ dependencies = [ [[package]] name = "clap" -version = "4.1.8" +version = "4.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3d7ae14b20b94cb02149ed21a86c423859cbe18dc7ed69845cace50e52b40a5" +checksum = "42dfd32784433290c51d92c438bb72ea5063797fc3cc9a21a8c4346bebbb2098" dependencies = [ - "bitflags", - "clap_derive 4.1.8", - "clap_lex 0.3.2", + "bitflags 2.0.2", + "clap_derive 4.1.9", + "clap_lex 0.3.3", "is-terminal", "once_cell", "strsim", @@ -1077,11 +1090,11 @@ dependencies = [ [[package]] name = "clap_complete" -version = "4.1.4" +version = "4.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "501ff0a401473ea1d4c3b125ff95506b62c5bc5768d818634195fbb7c4ad5ff4" +checksum = "37686beaba5ac9f3ab01ee3172f792fc6ffdd685bfb9e63cfef02c0571a4e8e1" dependencies = [ - "clap 4.1.8", + "clap 4.1.11", ] [[package]] @@ -1094,20 +1107,20 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] name = "clap_derive" -version = "4.1.8" +version = "4.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44bec8e5c9d09e439c4335b1af0abaab56dcf3b94999a936e1bb47b9134288f0" +checksum = "fddf67631444a3a3e3e5ac51c36a5e01335302de677bd78759eaa90ab1f46644" dependencies = [ "heck 0.4.1", "proc-macro-error", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -1121,9 +1134,9 @@ dependencies = [ [[package]] name = "clap_lex" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "350b9cf31731f9957399229e9b2adc51eeabdfbe9d71d9a0552275fd12710d09" +checksum = "033f6b7a4acb1f358c742aaca805c939ee73b4c6209ae4318ec7aca81c42e646" dependencies = [ "os_str_bytes", ] @@ -1494,7 +1507,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6d2301688392eb071b0bf1a37be05c469d3cc4dbbd95df672fe28ab021e6a096" dependencies = [ "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -1557,9 +1570,9 @@ dependencies = [ [[package]] name = "cxx" -version = "1.0.92" +version = "1.0.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a140f260e6f3f79013b8bfc65e7ce630c9ab4388c6a89c71e07226f49487b72" +checksum = "a9c00419335c41018365ddf7e4d5f1c12ee3659ddcf3e01974650ba1de73d038" dependencies = [ "cc", "cxxbridge-flags", @@ -1569,9 +1582,9 @@ dependencies = [ [[package]] name = "cxx-build" -version = "1.0.92" +version = "1.0.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da6383f459341ea689374bf0a42979739dc421874f112ff26f829b8040b8e613" +checksum = "fb8307ad413a98fff033c8545ecf133e3257747b3bae935e7602aab8aa92d4ca" dependencies = [ "cc", "codespan-reporting", @@ -1579,24 +1592,24 @@ dependencies = [ "proc-macro2", "quote", "scratch", - "syn", + "syn 2.0.2", ] [[package]] name = "cxxbridge-flags" -version = "1.0.92" +version = "1.0.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90201c1a650e95ccff1c8c0bb5a343213bdd317c6e600a93075bca2eff54ec97" +checksum = "edc52e2eb08915cb12596d29d55f0b5384f00d697a646dbd269b6ecb0fbd9d31" [[package]] name = "cxxbridge-macro" -version = "1.0.92" +version = "1.0.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b75aed41bb2e6367cae39e6326ef817a851db13c13e4f3263714ca3cfb8de56" +checksum = "631569015d0d8d54e6c241733f944042623ab6df7bc3be7466874b05fcdb1c5f" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.2", ] [[package]] @@ -1620,7 +1633,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn", + "syn 1.0.109", ] [[package]] @@ -1631,7 +1644,7 @@ checksum = "a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e" dependencies = [ "darling_core", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -1657,7 +1670,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a5bbed42daaa95e780b60a50546aa345b8413a1e46f9a40a12907d3598f038db" dependencies = [ "data-encoding", - "syn", + "syn 1.0.109", ] [[package]] @@ -1705,7 +1718,7 @@ version = "0.1.0" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -1716,7 +1729,7 @@ checksum = "3418329ca0ad70234b9735dc4ceed10af4df60eff9c8e7b06cb5e520d92c3535" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -1727,7 +1740,7 @@ checksum = "e79116f119dd1dba1abf1f3405f03b9b0e79a27a3883864bfebded8a3dc768cd" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -1748,7 +1761,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -1758,7 +1771,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f0314b72bed045f3a68671b3c86328386762c93f82d98c65c3cb5e5f573dd68" dependencies = [ "derive_builder_core", - "syn", + "syn 1.0.109", ] [[package]] @@ -1769,7 +1782,7 @@ checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -1856,7 +1869,7 @@ checksum = "3bf95dc3f046b9da4f2d51833c0d3547d8564ef6910f5c1ed130306a75b92886" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -1901,7 +1914,7 @@ checksum = "558e40ea573c374cf53507fd240b7ee2f5477df7cfebdb97323ec61c719399c5" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -1996,7 +2009,7 @@ dependencies = [ "heck 0.4.1", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -2010,7 +2023,7 @@ dependencies = [ "proc-macro2", "quote", "serde_derive_internals", - "syn", + "syn 1.0.109", ] [[package]] @@ -2157,9 +2170,9 @@ dependencies = [ [[package]] name = "finality-grandpa" -version = "0.16.1" +version = "0.16.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e24e6c429951433ccb7c87fd528c60084834dcd14763182c1f83291bcde24c34" +checksum = "36530797b9bf31cd4ff126dcfee8170f86b00cfdcea3269d73133cc0415945c3" dependencies = [ "either", "futures", @@ -2271,7 +2284,7 @@ dependencies = [ "Inflector", "array-bytes", "chrono", - "clap 4.1.8", + "clap 4.1.11", "comfy-table", "frame-benchmarking", "frame-support", @@ -2318,7 +2331,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -2387,7 +2400,7 @@ name = "frame-support" version = "4.0.0-dev" source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ - "bitflags", + "bitflags 1.3.2", "frame-metadata", "frame-support-procedural", "impl-trait-for-tuples", @@ -2426,7 +2439,7 @@ dependencies = [ "itertools", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -2438,7 +2451,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -2448,7 +2461,7 @@ source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e56 dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -2581,7 +2594,7 @@ checksum = "3eb14ed937631bd8b8b8977f2c198443447a8355b6e3ca599f38c975e5a963b6" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -3155,7 +3168,7 @@ checksum = "11d7a9f6330b71fea57921c9b61c47ee6e84f72d394754eff6163ae67e7395eb" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -3217,10 +3230,11 @@ dependencies = [ [[package]] name = "io-lifetimes" -version = "1.0.6" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfa919a82ea574332e2de6e74b4c36e74d41982b335080fa59d4ef31be20fdf3" +checksum = "0dd6da19f25979c7270e70fa95ab371ec3b701cd0eefc47667a09785b3c59155" dependencies = [ + "hermit-abi 0.3.1", "libc", "windows-sys 0.45.0", ] @@ -3251,9 +3265,9 @@ checksum = "30e22bd8629359895450b59ea7a776c850561b96a3b1d31321c1949d9e6c9146" [[package]] name = "is-terminal" -version = "0.4.4" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21b6b32576413a8e69b90e952e4a026476040d81017b80445deda5f2d3921857" +checksum = "8687c819457e979cc940d09cb16e42a1bf70aa6b60a549de6d3a62a0ee90c69e" dependencies = [ "hermit-abi 0.3.1", "io-lifetimes", @@ -3291,7 +3305,7 @@ version = "8.4.0" dependencies = [ "assert_cmd", "async-std", - "clap 4.1.8", + "clap 4.1.11", "clap_complete", "criterion", "frame-benchmarking", @@ -3539,7 +3553,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -4034,7 +4048,7 @@ checksum = "9d527d5827582abd44a6d80c07ff8b50b4ee238a8979e05998474179e79dc400" dependencies = [ "heck 0.4.1", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -4504,7 +4518,7 @@ dependencies = [ "fragile", "lazy_static", "mockall_derive", - "predicates", + "predicates 2.1.5", "predicates-tree", ] @@ -4517,7 +4531,7 @@ dependencies = [ "cfg-if", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -4607,7 +4621,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn", + "syn 1.0.109", "synstructure", ] @@ -4655,7 +4669,7 @@ checksum = "d232c68884c0c99810a5a4d333ef7e47689cfd0edc85efc9e54e1e6bf5212766" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -4686,7 +4700,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d9ea4302b9759a7a88242299225ea3688e63c85ea136371bb6cf94fd674efaab" dependencies = [ "anyhow", - "bitflags", + "bitflags 1.3.2", "byteorder", "libc", "netlink-packet-core", @@ -4739,7 +4753,7 @@ version = "0.23.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f3790c00a0150112de0f4cd161e3d7fc4b2d8a5542ffc35f099a2562aecb35c" dependencies = [ - "bitflags", + "bitflags 1.3.2", "cc", "cfg-if", "libc", @@ -4752,7 +4766,7 @@ version = "0.24.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fa52e972a9a719cecb6864fb88568781eb706bac2cd1d4f04a648542dbf78069" dependencies = [ - "bitflags", + "bitflags 1.3.2", "cfg-if", "libc", "memoffset 0.6.5", @@ -4764,7 +4778,7 @@ version = "0.26.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bfdda3d196821d6af13126e40375cdf7da646a96114af134d5f417a9a1dc8e1a" dependencies = [ - "bitflags", + "bitflags 1.3.2", "cfg-if", "libc", "memoffset 0.7.1", @@ -4776,7 +4790,7 @@ dependencies = [ name = "node-inspect" version = "0.9.0-dev" dependencies = [ - "clap 4.1.8", + "clap 4.1.11", "overrides", "parity-scale-codec", "sc-cli", @@ -4953,9 +4967,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "os_str_bytes" -version = "6.4.1" +version = "6.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b7820b9daea5457c9f21c69448905d723fbd21136ccf521748f23fd49e723ee" +checksum = "ceedf44fb00f2d1984b0bc98102627ce622e083e49a5bacdb3e514fa4238e267" [[package]] name = "overrides" @@ -5669,7 +5683,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -5901,7 +5915,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -6073,7 +6087,7 @@ dependencies = [ "pest_meta", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -6114,7 +6128,7 @@ checksum = "069bdb1e05adc7a8990dce9cc75370895fbe4e3d58b9b73bf1aee56359344a55" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -6198,7 +6212,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7e1f879b2998099c2d69ab9605d145d5b661195627eccc680002c4918a7fb6fa" dependencies = [ "autocfg", - "bitflags", + "bitflags 1.3.2", "cfg-if", "concurrent-queue", "libc", @@ -6262,17 +6276,29 @@ dependencies = [ "regex", ] +[[package]] +name = "predicates" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ba7d6ead3e3966038f68caa9fc1f860185d95a793180bbcfe0d0da47b3961ed" +dependencies = [ + "anstyle", + "difflib", + "itertools", + "predicates-core", +] + [[package]] name = "predicates-core" -version = "1.0.5" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72f883590242d3c6fc5bf50299011695fa6590c2c70eac95ee1bdb9a733ad1a2" +checksum = "b794032607612e7abeb4db69adb4e33590fa6cf1149e95fd7cb00e634b92f174" [[package]] name = "predicates-tree" -version = "1.0.7" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54ff541861505aabf6ea722d2131ee980b8276e10a1297b94e896dd8b621850d" +checksum = "368ba315fb8c5052ab692e68a0eefec6ec57b23a36959c14496f0b0df2c0cecf" dependencies = [ "predicates-core", "termtree", @@ -6280,12 +6306,12 @@ dependencies = [ [[package]] name = "prettyplease" -version = "0.1.24" +version = "0.1.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ebcd279d20a4a0a2404a33056388e950504d891c855c7975b9a8fef75f3bf04" +checksum = "6c8646e95016a7a6c4adea95bafa8a16baab64b583356217f2c85db4a39d9a86" dependencies = [ "proc-macro2", - "syn", + "syn 1.0.109", ] [[package]] @@ -6320,7 +6346,7 @@ dependencies = [ "proc-macro-error-attr", "proc-macro2", "quote", - "syn", + "syn 1.0.109", "version_check", ] @@ -6384,7 +6410,7 @@ checksum = "66a455fbcb954c1a7decf3c586e860fd7889cddf4b8e164be736dbac95a953cd" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -6414,7 +6440,7 @@ dependencies = [ "prost", "prost-types", "regex", - "syn", + "syn 1.0.109", "tempfile", "which", ] @@ -6442,7 +6468,7 @@ dependencies = [ "itertools", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -6661,7 +6687,7 @@ version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" dependencies = [ - "bitflags", + "bitflags 1.3.2", ] [[package]] @@ -6677,22 +6703,22 @@ dependencies = [ [[package]] name = "ref-cast" -version = "1.0.15" +version = "1.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9af2cf09ef80e610097515e80095b7f76660a92743c4185aff5406cd5ce3dd5" +checksum = "f43faa91b1c8b36841ee70e97188a869d37ae21759da6846d4be66de5bf7b12c" dependencies = [ "ref-cast-impl", ] [[package]] name = "ref-cast-impl" -version = "1.0.15" +version = "1.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c501201393982e275433bc55de7d6ae6f00e7699cd5572c5b57581cd69c881b" +checksum = "8d2275aab483050ab2a7364c1a46604865ee7d6906684e08db0f090acf74f9e7" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.2", ] [[package]] @@ -6739,7 +6765,7 @@ version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "76e189c2369884dce920945e2ddf79b3dff49e071a167dd1817fa9c4c00d512e" dependencies = [ - "bitflags", + "bitflags 1.3.2", "libc", "mach", "winapi", @@ -6899,11 +6925,11 @@ dependencies = [ [[package]] name = "rustix" -version = "0.36.9" +version = "0.36.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd5c6ff11fecd55b40746d1995a02f2eb375bf8c00d192d521ee09f42bef37bc" +checksum = "2fe885c3a125aa45213b68cc1472a49880cb5923dc23f522ad2791b882228778" dependencies = [ - "bitflags", + "bitflags 1.3.2", "errno", "io-lifetimes", "libc", @@ -7107,7 +7133,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -7117,7 +7143,7 @@ source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e56 dependencies = [ "array-bytes", "chrono", - "clap 4.1.8", + "clap 4.1.11", "fdlimit", "futures", "libp2p", @@ -7550,7 +7576,7 @@ version = "0.10.0-dev" source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ "async-trait", - "bitflags", + "bitflags 1.3.2", "bytes", "futures", "futures-timer", @@ -7920,7 +7946,7 @@ name = "sc-storage-monitor" version = "0.1.0" source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ - "clap 4.1.8", + "clap 4.1.11", "futures", "log", "nix 0.26.2", @@ -8027,7 +8053,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -8108,7 +8134,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -8240,7 +8266,7 @@ version = "2.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a332be01508d814fed64bf28f798a146d73792121129962fdf335bb3c49a4254" dependencies = [ - "bitflags", + "bitflags 1.3.2", "core-foundation", "core-foundation-sys", "libc", @@ -8292,9 +8318,9 @@ checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" [[package]] name = "serde" -version = "1.0.155" +version = "1.0.157" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71f2b4817415c6d4210bfe1c7bfcf4801b2d904cb4d0e1a8fdb651013c9e86b8" +checksum = "707de5fcf5df2b5788fca98dd7eab490bc2fd9b7ef1404defc462833b83f25ca" dependencies = [ "serde_derive", ] @@ -8311,13 +8337,13 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.155" +version = "1.0.157" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d071a94a3fac4aff69d023a7f411e33f40f3483f8c5190b1953822b6b76d7630" +checksum = "78997f4555c22a7971214540c4a661291970619afd56de19f77e0de86296e1e5" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.2", ] [[package]] @@ -8328,7 +8354,7 @@ checksum = "1dbab34ca63057a1f15280bdf3c39f2b1eb1b54c17e98360e511637aef7418c6" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -8581,7 +8607,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -8764,7 +8790,7 @@ source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e56 dependencies = [ "array-bytes", "base58", - "bitflags", + "bitflags 1.3.2", "blake2", "bounded-collections", "dyn-clonable", @@ -8822,7 +8848,7 @@ dependencies = [ "proc-macro2", "quote", "sp-core-hashing", - "syn", + "syn 1.0.109", ] [[package]] @@ -8841,7 +8867,7 @@ source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e56 dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -9061,7 +9087,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -9228,7 +9254,7 @@ dependencies = [ "parity-scale-codec", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -9309,7 +9335,7 @@ version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a2a1c578e98c1c16fc3b8ec1328f7659a500737d7a0c6d625e73e830ff9c1f6" dependencies = [ - "bitflags", + "bitflags 1.3.2", "cfg_aliases", "libc", "parking_lot 0.11.2", @@ -9328,7 +9354,7 @@ dependencies = [ "memchr", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -9361,7 +9387,7 @@ dependencies = [ "heck 0.3.3", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -9374,7 +9400,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn", + "syn 1.0.109", ] [[package]] @@ -9422,7 +9448,7 @@ name = "substrate-frame-cli" version = "4.0.0-dev" source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" dependencies = [ - "clap 4.1.8", + "clap 4.1.11", "frame-support", "frame-system", "sc-cli", @@ -9624,6 +9650,17 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "syn" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59d3276aee1fa0c33612917969b5172b5be2db051232a6e4826f1a1a9191b045" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + [[package]] name = "synstructure" version = "0.12.6" @@ -9632,7 +9669,7 @@ checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.109", "unicode-xid", ] @@ -9642,7 +9679,7 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d75182f12f490e953596550b65ee31bda7c8e043d9386174b353bda50838c3fd" dependencies = [ - "bitflags", + "bitflags 1.3.2", "core-foundation", "system-configuration-sys", ] @@ -9693,9 +9730,9 @@ dependencies = [ [[package]] name = "termtree" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95059e91184749cb66be6dc994f67f182b6d897cb3df74a5bf66b5e709295fd8" +checksum = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76" [[package]] name = "textwrap" @@ -9714,22 +9751,22 @@ checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d" [[package]] name = "thiserror" -version = "1.0.39" +version = "1.0.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5ab016db510546d856297882807df8da66a16fb8c4101cb8b30054b0d5b2d9c" +checksum = "978c9a314bd8dc99be594bc3c175faaa9794be04a5a5e153caba6915336cebac" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.39" +version = "1.0.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5420d42e90af0c38c3290abcca25b9b3bdf379fc9f55c528f53a269d9c9a267e" +checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.2", ] [[package]] @@ -9877,7 +9914,7 @@ checksum = "d266c00fde287f55d3f1c3e96c500c362a2b8c695076ec180f27918820bc6df8" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -9944,7 +9981,7 @@ version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f873044bf02dd1e8239e9c1293ea39dad76dc594ec16185d0a1bf31d8dc8d858" dependencies = [ - "bitflags", + "bitflags 1.3.2", "bytes", "futures-core", "futures-util", @@ -9989,7 +10026,7 @@ checksum = "4017f8f45139870ca7e672686113917c71c7a6e02d4924eda67186083c03081a" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -10193,9 +10230,9 @@ dependencies = [ [[package]] name = "unicode-bidi" -version = "0.3.11" +version = "0.3.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524b68aca1d05e03fdf03fcdce2c6c94b6daf6d16861ddaa7e4f2b6638a9052c" +checksum = "7d502c968c6a838ead8e69b2ee18ec708802f99db92a0d156705ec9ef801993b" [[package]] name = "unicode-ident" @@ -10311,7 +10348,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aae2faf80ac463422992abf4de234731279c058aaf33171ca70277c98406b124" dependencies = [ "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -10358,12 +10395,11 @@ checksum = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca" [[package]] name = "walkdir" -version = "2.3.2" +version = "2.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56" +checksum = "36df944cda56c7d8d8b7496af378e6b16de9284591917d307c9b4d313c44e698" dependencies = [ "same-file", - "winapi", "winapi-util", ] @@ -10416,7 +10452,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn", + "syn 1.0.109", "wasm-bindgen-shared", ] @@ -10450,7 +10486,7 @@ checksum = "2aff81306fcac3c7515ad4e177f521b5c9a15f2b08f4e32d823066102f35a5f6" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.109", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -10986,7 +11022,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "93f1db1727772c05cf7a2cfece52c3aca8045ca1e176cd517d323489aa3c6d87" dependencies = [ "async-trait", - "bitflags", + "bitflags 1.3.2", "bytes", "cc", "ipnet", @@ -11299,7 +11335,7 @@ checksum = "44bf07cb3e50ea2003396695d58bf46bc9887a1f362260446fad6bc4e79bd36c" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.109", "synstructure", ] From 7594361029fd437d5d5f3f71949cab4622ae5848 Mon Sep 17 00:00:00 2001 From: Mokhtar Naamani Date: Mon, 20 Mar 2023 16:14:30 +0400 Subject: [PATCH 45/87] docker-compose: joystream-node --no-hardware-benchmarks --- docker-compose.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index b81d839a88..86075c0c52 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -7,7 +7,8 @@ services: container_name: joystream-node volumes: - chain-data:/data - command: --dev --alice --validator --pruning=archive --unsafe-ws-external --unsafe-rpc-external --rpc-methods Safe --rpc-cors=all --log runtime --base-path /data + command: "--dev --alice --validator --pruning=archive --unsafe-ws-external --unsafe-rpc-external + --rpc-methods Safe --rpc-cors=all --log runtime --base-path /data --no-hardware-benchmarks" ports: - 9944:9944 - 9933:9933 From f83212f3f879acdf3db68a5f2095b1302739feb1 Mon Sep 17 00:00:00 2001 From: Mokhtar Naamani Date: Thu, 23 Mar 2023 11:53:28 +0400 Subject: [PATCH 46/87] v0.9.39 - runtime migrations --- runtime/src/lib.rs | 7 +++-- runtime/src/runtime_api.rs | 58 +++++++++++++++++++++++++++++++------- 2 files changed, 52 insertions(+), 13 deletions(-) diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs index 75ab052bf7..1c78aa741c 100644 --- a/runtime/src/lib.rs +++ b/runtime/src/lib.rs @@ -591,7 +591,7 @@ impl pallet_staking::Config for Runtime { type OffendingValidatorsThreshold = OffendingValidatorsThreshold; type ElectionProvider = ElectionProviderMultiPhase; type GenesisElectionProvider = onchain::OnChainExecution; - type VoterList = BagsList; + type VoterList = VoterList; type TargetList = pallet_staking::UseValidatorsMap; type MaxUnlockingChunks = ConstU32<32>; type HistoryDepth = HistoryDepth; @@ -762,7 +762,8 @@ parameter_types! { pub const BagThresholds: &'static [u64] = &voter_bags::THRESHOLDS; } -impl pallet_bags_list::Config for Runtime { +type VoterBagsListInstance = pallet_bags_list::Instance1; +impl pallet_bags_list::Config for Runtime { type RuntimeEvent = RuntimeEvent; type ScoreProvider = Staking; type WeightInfo = weights::pallet_bags_list::SubstrateWeight; @@ -1847,7 +1848,7 @@ construct_runtime!( ImOnline: pallet_im_online, Offences: pallet_offences, RandomnessCollectiveFlip: pallet_insecure_randomness_collective_flip, - BagsList: pallet_bags_list, + VoterList: pallet_bags_list::::{Pallet, Call, Storage, Event}, Vesting: pallet_vesting, Multisig: pallet_multisig, // Joystream diff --git a/runtime/src/runtime_api.rs b/runtime/src/runtime_api.rs index 289013e588..4b8e6a98f3 100644 --- a/runtime/src/runtime_api.rs +++ b/runtime/src/runtime_api.rs @@ -6,7 +6,7 @@ use pallet_transaction_payment::{FeeDetails, RuntimeDispatchInfo}; use sp_api::impl_runtime_apis; use sp_core::crypto::KeyTypeId; use sp_core::OpaqueMetadata; -use sp_runtime::traits::{BlakeTwo256, Block as BlockT, NumberFor}; +use sp_runtime::traits::{BlakeTwo256, Block as BlockT, Get, NumberFor}; use sp_runtime::{generic, ApplyExtrinsicResult}; use sp_std::vec::Vec; @@ -15,7 +15,7 @@ use crate::{ AccountId, AllPalletsWithSystem, AuthorityDiscovery, AuthorityDiscoveryId, Babe, Balance, BlockNumber, EpochDuration, Grandpa, GrandpaAuthorityList, GrandpaId, Historical, Index, InherentDataExt, ProposalsEngine, Runtime, RuntimeCall, RuntimeVersion, SessionKeys, Signature, - System, TransactionPayment, BABE_GENESIS_EPOCH_CONFIG, VERSION, + System, TransactionPayment, VoterList, BABE_GENESIS_EPOCH_CONFIG, VERSION, }; use frame_support::weights::Weight; @@ -60,11 +60,11 @@ pub type CheckedExtrinsic = generic::CheckedExtrinsic; -// Does this executive with customonruntimeupgrade prevent individual pallets' on runtime -// upgrade migrations from running?? -/// Custom runtime upgrade handler. -pub struct CustomOnRuntimeUpgrade; -impl OnRuntimeUpgrade for CustomOnRuntimeUpgrade { +// On runtime upgrade, stored calls of proposals are not guarnateed to still +// represent the intended module and dispatch call, so for safety we cancel +// all proposals. +pub struct CancelActiveAndPendingProposals; +impl OnRuntimeUpgrade for CancelActiveAndPendingProposals { fn on_runtime_upgrade() -> Weight { ProposalsEngine::cancel_active_and_pending_proposals(); @@ -72,14 +72,52 @@ impl OnRuntimeUpgrade for CustomOnRuntimeUpgrade { } } -/// Executive: handles dispatch to the various modules with CustomOnRuntimeUpgrade. +pub struct MigrateStakingPalletToV8; +impl OnRuntimeUpgrade for MigrateStakingPalletToV8 { + fn on_runtime_upgrade() -> Weight { + pallet_staking::migrations::v8::migrate::() + } +} + +pub struct StakingMigrationV11OldPallet; +impl Get<&'static str> for StakingMigrationV11OldPallet { + fn get() -> &'static str { + "BagsList" + } +} + +/// Migrations to run on runtime upgrade. +/// Migrations will run before pallet on_runtime_upgrade hooks +/// Always include 'CancelActiveAndPendingProposals' as first migration +pub type Migrations = ( + CancelActiveAndPendingProposals, + // == start Staking migrations (from Release v7 to Release v13) + MigrateStakingPalletToV8, + // list will not produce duplicates.. + pallet_staking::migrations::v9::InjectValidatorsIntoVoterList, + // slash all pending slashes correctly + pallet_staking::migrations::v10::MigrateToV10, + // Rename BagsList to VoterList + pallet_staking::migrations::v11::MigrateToV11, + // Kill HistoryDepth storage + pallet_staking::migrations::v12::MigrateToV12, + // Migrate to new storage versioning + pallet_staking::migrations::v13::MigrateToV13, + // == end Staking Migrations + // unreserve balances from old stored calls in multisig pallet + pallet_multisig::migrations::v1::MigrateToV1, + pallet_election_provider_multi_phase::migrations::v1::MigrateToV1, + pallet_grandpa::migrations::CleanupSetIdSessionMap, +); + +/// Executive: handles dispatch to the various modules with Migrations. pub type Executive = frame_executive::Executive< Runtime, Block, frame_system::ChainContext, Runtime, AllPalletsWithSystem, - CustomOnRuntimeUpgrade, + Migrations, >; /// Export of the private const generated within the macro. @@ -90,7 +128,7 @@ mod benches { define_benchmarks!( [frame_benchmarking, BaselineBench::] [pallet_babe, Babe] - [pallet_bags_list, BagsList] + [pallet_bags_list, VoterList] [pallet_balances, Balances] [pallet_election_provider_multi_phase, ElectionProviderMultiPhase] [pallet_election_provider_support_benchmarking, EPSBench::] From 3aa286184664262cf239f98aee7635511377e25f Mon Sep 17 00:00:00 2001 From: Mokhtar Naamani Date: Thu, 23 Mar 2023 16:11:07 +0400 Subject: [PATCH 47/87] v0.9.39 - clippy fixes --- .../project-token/src/benchmarking.rs | 12 ++++---- runtime-modules/project-token/src/lib.rs | 28 +++++++++---------- runtime-modules/project-token/src/types.rs | 20 ++++++------- runtime-modules/proposals/engine/src/lib.rs | 2 ++ 4 files changed, 30 insertions(+), 32 deletions(-) diff --git a/runtime-modules/project-token/src/benchmarking.rs b/runtime-modules/project-token/src/benchmarking.rs index e5987fad37..62e7ea7db4 100644 --- a/runtime-modules/project-token/src/benchmarking.rs +++ b/runtime-modules/project-token/src/benchmarking.rs @@ -336,7 +336,7 @@ benchmarks! { owner_member_id ) verify { - assert!(!AccountInfoByTokenAndMember::::contains_key(token_id, &owner_member_id)); + assert!(!AccountInfoByTokenAndMember::::contains_key(token_id, owner_member_id)); assert_last_event::( RawEvent::AccountDustedBy( token_id, @@ -382,7 +382,7 @@ benchmarks! { proof ) verify { - assert!(AccountInfoByTokenAndMember::::contains_key(token_id, &member_id)); + assert!(AccountInfoByTokenAndMember::::contains_key(token_id, member_id)); assert_last_event::( RawEvent::MemberJoinedWhitelist( token_id, @@ -429,7 +429,7 @@ benchmarks! { ) verify { assert!( - Token::::account_info_by_token_and_member(token_id, &member_id) + Token::::account_info_by_token_and_member(token_id, member_id) == AccountData { amount: DEFAULT_SALE_PURCHASE.into(), vesting_schedules: vec![ @@ -492,7 +492,7 @@ benchmarks! { ) verify { assert_eq!( - Token::::account_info_by_token_and_member(token_id, &participant_id).staked(), + Token::::account_info_by_token_and_member(token_id, participant_id).staked(), DEFAULT_SPLIT_PARTICIPATION.into() ); assert_eq!( @@ -546,7 +546,7 @@ benchmarks! { participant_id ) verify { - assert!(Token::::account_info_by_token_and_member(token_id, &participant_id).split_staking_status.is_none()); + assert!(Token::::account_info_by_token_and_member(token_id, participant_id).split_staking_status.is_none()); assert_last_event::( RawEvent::RevenueSplitLeft( token_id, @@ -564,7 +564,7 @@ benchmarks! { let (owner_member_id, owner_account) = create_owner::(); let token_id = issue_token::(TransferPolicyParams::Permissionless)?; setup_account_with_max_number_of_locks::(token_id, &owner_member_id, None); - let amount_to_burn = Token::::account_info_by_token_and_member(token_id, &owner_member_id).amount; + let amount_to_burn = Token::::account_info_by_token_and_member(token_id, owner_member_id).amount; let bloat_bond = BloatBond::::get(); }: _( RawOrigin::Signed(owner_account.clone()), diff --git a/runtime-modules/project-token/src/lib.rs b/runtime-modules/project-token/src/lib.rs index d3309c9d16..3a1f97f223 100644 --- a/runtime-modules/project-token/src/lib.rs +++ b/runtime-modules/project-token/src/lib.rs @@ -380,7 +380,7 @@ decl_module! { )?; // == MUTATION SAFE == - AccountInfoByTokenAndMember::::remove(token_id, &member_id); + AccountInfoByTokenAndMember::::remove(token_id, member_id); TokenInfoById::::mutate(token_id, |token_info| { token_info.decrement_accounts_number(); @@ -424,7 +424,7 @@ decl_module! { let token_info = Self::ensure_token_exists(token_id)?; ensure!( - !AccountInfoByTokenAndMember::::contains_key(token_id, &member_id), + !AccountInfoByTokenAndMember::::contains_key(token_id, member_id), Error::::AccountAlreadyExists, ); @@ -586,7 +586,7 @@ decl_module! { let vesting_cleanup_key = if vesting_schedule.is_some() { // Ensure vesting schedule can added if doesn't already exist // (MaxVestingSchedulesPerAccountPerToken not exceeded) - let acc_data = AccountInfoByTokenAndMember::::get(token_id, &member_id); + let acc_data = AccountInfoByTokenAndMember::::get(token_id, member_id); acc_data.ensure_can_add_or_update_vesting_schedule::( current_block, VestingSource::Sale(sale_id) @@ -606,7 +606,7 @@ decl_module! { } if account_data.is_some() { - AccountInfoByTokenAndMember::::try_mutate(token_id, &member_id, |acc_data| { + AccountInfoByTokenAndMember::::try_mutate(token_id, member_id, |acc_data| { acc_data.process_sale_purchase::( sale_id, amount, @@ -735,7 +735,7 @@ decl_module! { token_info.revenue_split.account_for_dividend(dividend_amount); }); - AccountInfoByTokenAndMember::::mutate(token_id, &member_id, |account_info| { + AccountInfoByTokenAndMember::::mutate(token_id, member_id, |account_info| { account_info.stake(split_id, amount); }); @@ -796,7 +796,7 @@ decl_module! { // == MUTATION SAFE == - AccountInfoByTokenAndMember::::mutate(token_id, &member_id, |account_info| { + AccountInfoByTokenAndMember::::mutate(token_id, member_id, |account_info| { account_info.unstake(); }); @@ -920,7 +920,7 @@ impl // == MUTATION SAFE == - AccountInfoByTokenAndMember::::mutate(token_id, &member_id, |account_info| { + AccountInfoByTokenAndMember::::mutate(token_id, member_id, |account_info| { account_info.increase_amount_by(unclaimed_patronage) }); @@ -978,7 +978,7 @@ impl ); // == MUTATION SAFE == - SymbolsUsed::::insert(&token_data.symbol, ()); + SymbolsUsed::::insert(token_data.symbol, ()); TokenInfoById::::insert(token_id, token_data); NextTokenId::::put(token_id.saturating_add(T::TokenId::one())); @@ -1095,7 +1095,7 @@ impl // Decrease source account's tokens number by sale_params.upper_bound_quantity // (unsold tokens can be later recovered with `finalize_token_sale`) - AccountInfoByTokenAndMember::::mutate(token_id, &member_id, |ad| { + AccountInfoByTokenAndMember::::mutate(token_id, member_id, |ad| { ad.decrease_amount_by(sale_params.upper_bound_quantity); }); @@ -1335,7 +1335,7 @@ impl .ok_or(Error::::ArithmeticError)?; // == MUTATION SAFE == - AccountInfoByTokenAndMember::::mutate(token_id, &sale.tokens_source, |ad| { + AccountInfoByTokenAndMember::::mutate(token_id, sale.tokens_source, |ad| { ad.increase_amount_by(sale.quantity_left); }); TokenInfoById::::mutate(token_id, |token_info| { @@ -1444,7 +1444,7 @@ impl Module { ValidatedWithBloatBond::Existing(dst_member_id) => { AccountInfoByTokenAndMember::::try_mutate( token_id, - &dst_member_id, + dst_member_id, |account_data| { if let Some(vs) = vesting_schedule { account_data.add_or_update_vesting_schedule::( @@ -1482,7 +1482,7 @@ impl Module { } } - AccountInfoByTokenAndMember::::mutate(token_id, &src_member_id, |account_data| { + AccountInfoByTokenAndMember::::mutate(token_id, src_member_id, |account_data| { account_data.decrease_amount_by(validated_transfers.total_amount()); }); @@ -1567,7 +1567,7 @@ impl Module { params: &TokenIssuanceParametersOf, ) -> DispatchResult { ensure!( - !SymbolsUsed::::contains_key(¶ms.symbol), + !SymbolsUsed::::contains_key(params.symbol), Error::::TokenSymbolAlreadyInUse, ); @@ -1851,7 +1851,7 @@ impl Module { )), Validated::NonExisting(member_id) => { let repayable_bloat_bond = match locked_balance_used - <= bloat_bond.saturating_mul((bloat_bond_index as u32).into()) + <= bloat_bond.saturating_mul((bloat_bond_index).into()) { true => RepayableBloatBond::new(bloat_bond, None), false => RepayableBloatBond::new(bloat_bond, Some(from.clone())), diff --git a/runtime-modules/project-token/src/types.rs b/runtime-modules/project-token/src/types.rs index 5f31fcee8d..1614bcb4ff 100644 --- a/runtime-modules/project-token/src/types.rs +++ b/runtime-modules/project-token/src/types.rs @@ -943,11 +943,11 @@ where schedule: VestingSchedule, bloat_bond: RepayableBloatBond, ) -> Result { - let next_vesting_transfer_id = if let VestingSource::IssuerTransfer(_) = source { - 1 - } else { - 0 + let next_vesting_transfer_id = match source { + VestingSource::IssuerTransfer(_) => 1, + _ => 0, }; + let vesting_schedules = [(source, schedule.clone())] .iter() .cloned() @@ -1297,11 +1297,7 @@ where rate: BlockRate::from_yearly_rate(params.patronage_rate, T::BlocksPerYear::get()), }; - let total_supply = params - .initial_allocation - .iter() - .map(|(_, v)| v.amount) - .sum(); + let total_supply = params.initial_allocation.values().map(|v| v.amount).sum(); Ok(TokenData { symbol: params.symbol, @@ -1347,7 +1343,7 @@ where Balance: Sum + Copy, { pub fn total_amount(&self) -> Balance { - self.0.iter().map(|(_, payment)| payment.amount).sum() + self.0.values().map(|payment| payment.amount).sum() } } @@ -1361,8 +1357,8 @@ where { pub fn total_amount(&self) -> Balance { self.0 - .iter() - .map(|(_, validated_payment)| validated_payment.payment.amount) + .values() + .map(|validated_payment| validated_payment.payment.amount) .sum() } } diff --git a/runtime-modules/proposals/engine/src/lib.rs b/runtime-modules/proposals/engine/src/lib.rs index 1a1488cb75..fd38881e69 100644 --- a/runtime-modules/proposals/engine/src/lib.rs +++ b/runtime-modules/proposals/engine/src/lib.rs @@ -819,6 +819,7 @@ impl Module { None }) .for_each(|(proposal_id, proposal)| { + #[allow(deprecated)] >::remove_prefix(proposal_id, None); >::insert(proposal_id, proposal.clone()); @@ -1029,6 +1030,7 @@ impl Module { fn remove_proposal_data(proposal_id: &T::ProposalId) -> DispatchResult { >::remove(proposal_id); >::remove(proposal_id); + #[allow(deprecated)] >::remove_prefix(proposal_id, None); let _ = Self::decrease_active_proposal_counter(); From 6d18b004ab7cca598b64df689ad97101dffaffb4 Mon Sep 17 00:00:00 2001 From: Mokhtar Naamani Date: Thu, 23 Mar 2023 16:16:28 +0400 Subject: [PATCH 48/87] v0.9.39 - clippy fixes --- runtime-modules/forum/src/benchmarking.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/runtime-modules/forum/src/benchmarking.rs b/runtime-modules/forum/src/benchmarking.rs index f2a88c442b..5d0a1d74da 100644 --- a/runtime-modules/forum/src/benchmarking.rs +++ b/runtime-modules/forum/src/benchmarking.rs @@ -550,7 +550,7 @@ benchmarks! { archived: new_archival_status, num_direct_subcategories: 0, num_direct_threads: 0, - num_direct_moderators: if i == 1 { 1 } else { 0 }, + num_direct_moderators: u32::from(i == 1), parent_category_id, sticky_thread_ids: BoundedBTreeSet::default(), }; @@ -634,7 +634,7 @@ benchmarks! { archived: false, num_direct_subcategories: 0, num_direct_threads: 0, - num_direct_moderators: if i == 1 { 1 } else { 0 }, + num_direct_moderators: u32::from(i == 1), parent_category_id, sticky_thread_ids: BoundedBTreeSet::default(), }; @@ -718,7 +718,7 @@ benchmarks! { archived: false, num_direct_subcategories: 0, num_direct_threads: 0, - num_direct_moderators: if i == 1 { 1 } else { 0 }, + num_direct_moderators: u32::from(i == 1), parent_category_id, sticky_thread_ids: BoundedBTreeSet::default(), }; From 602c2ec47ba8eddb84a7dce6e461b33c7fcc3aa8 Mon Sep 17 00:00:00 2001 From: Mokhtar Naamani Date: Thu, 23 Mar 2023 16:43:23 +0400 Subject: [PATCH 49/87] v0.9.39 - clippy fixes --- bin/node/src/benchmarking.rs | 4 ++-- bin/node/src/service.rs | 6 ++++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/bin/node/src/benchmarking.rs b/bin/node/src/benchmarking.rs index facf4137fd..6fff64c6a3 100644 --- a/bin/node/src/benchmarking.rs +++ b/bin/node/src/benchmarking.rs @@ -103,8 +103,8 @@ impl frame_benchmarking_cli::ExtrinsicBuilder for TransferKeepAliveBuilder { self.client.as_ref(), acc, BalancesCall::transfer_keep_alive { - dest: self.dest.clone().into(), - value: self.value.into(), + dest: self.dest.clone(), + value: self.value, }, Some(nonce), ) diff --git a/bin/node/src/service.rs b/bin/node/src/service.rs index 3b4677c923..10c1f6b2e4 100644 --- a/bin/node/src/service.rs +++ b/bin/node/src/service.rs @@ -125,13 +125,14 @@ pub fn create_extrinsic( node_runtime::UncheckedExtrinsic::new_signed( function, - sp_runtime::AccountId32::from(sender.public()).into(), + sp_runtime::AccountId32::from(sender.public()), node_runtime::Signature::Sr25519(signature), extra, ) } /// Creates a new partial node. +#[allow(clippy::type_complexity)] pub fn new_partial( config: &Configuration, ) -> Result< @@ -202,6 +203,7 @@ pub fn new_partial( let (grandpa_block_import, grandpa_link) = grandpa::block_import( client.clone(), + #[allow(clippy::redundant_clone)] &(client.clone() as Arc<_>), select_chain.clone(), telemetry.as_ref().map(|x| x.handle()), @@ -326,7 +328,7 @@ pub fn new_full_base( ) -> Result { let hwbench = (!disable_hardware_benchmarks) .then_some(config.database.path().map(|database_path| { - let _ = std::fs::create_dir_all(&database_path); + let _ = std::fs::create_dir_all(database_path); sc_sysinfo::gather_hwbench(Some(database_path)) })) .flatten(); From 677badfc0773bd3a44d2043dc7913e46ee17a632 Mon Sep 17 00:00:00 2001 From: Mokhtar Naamani Date: Thu, 23 Mar 2023 16:45:56 +0400 Subject: [PATCH 50/87] v0.9.39 - minimum 2 steps required for benchmark command --- .github/workflows/joystream-node.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/joystream-node.yml b/.github/workflows/joystream-node.yml index e8dd57a1be..3f8a1e3712 100644 --- a/.github/workflows/joystream-node.yml +++ b/.github/workflows/joystream-node.yml @@ -45,7 +45,7 @@ jobs: - name: Test Generate Weights run: | - ./scripts/generate-weights.sh 1 1 && git diff + ./scripts/generate-weights.sh 2 1 && git diff if: env.GIT_DIFF # Build and test joystream-node with all runtime profiles From 2b7caee12a1d23e122e610381ea96fe97deb6226 Mon Sep 17 00:00:00 2001 From: Mokhtar Naamani Date: Fri, 24 Mar 2023 01:04:09 +0400 Subject: [PATCH 51/87] v0.9.39 - simplify feature selection and cargo tests scripts --- .github/workflows/joystream-node.yml | 5 ++--- runtime/Cargo.toml | 1 + runtime/src/lib.rs | 14 +++++++------- scripts/cargo-checks-with-benchmarking.sh | 16 ++++++++++++++++ scripts/cargo-checks.sh | 5 ++--- scripts/cargo-test-all.sh | 15 +++++++++++++++ scripts/cargo-tests-with-networking.sh | 12 ------------ 7 files changed, 43 insertions(+), 25 deletions(-) create mode 100755 scripts/cargo-checks-with-benchmarking.sh create mode 100755 scripts/cargo-test-all.sh delete mode 100755 scripts/cargo-tests-with-networking.sh diff --git a/.github/workflows/joystream-node.yml b/.github/workflows/joystream-node.yml index 3f8a1e3712..ecd7599366 100644 --- a/.github/workflows/joystream-node.yml +++ b/.github/workflows/joystream-node.yml @@ -38,9 +38,8 @@ jobs: env: WASM_BUILD_TOOLCHAIN: nightly-2022-11-15 run: | - cargo +nightly-2022-11-15 clippy --release --features runtime-benchmarks && - cargo +nightly-2022-11-15 test --release --features runtime-benchmarks && - cargo +nightly-2022-11-15 build --release --features runtime-benchmarks + ./scripts/cargo-checks-with-benchmarking.sh && + ./scripts/cargo-build-with-benchmarking.sh if: env.GIT_DIFF - name: Test Generate Weights diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index 1cbe8be072..2b69d0965f 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -177,6 +177,7 @@ std = [ 'log/std', ] runtime-benchmarks = [ + "playground-runtime", "hex-literal", "frame-support/runtime-benchmarks", "sp-runtime/runtime-benchmarks", diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs index 1c78aa741c..3d63e1919d 100644 --- a/runtime/src/lib.rs +++ b/runtime/src/lib.rs @@ -941,7 +941,6 @@ pub type CouncilModule = council::Module; feature = "staging-runtime", feature = "playground-runtime", feature = "testing-runtime", - feature = "runtime-benchmarks" )))] parameter_types! { // referendum parameters @@ -961,11 +960,11 @@ parameter_types! { pub const BudgetRefillPeriod: BlockNumber = days!(1); } -// Common playground and benchmarking coucil and elections configuration +// playground council and elections configuration - also recommended for benchmarking // Periods are shorter to: // - allow easier testing // - prevent benchmarks System::events() from accumulating too much data and overflowing the memory -#[cfg(any(feature = "playground-runtime", feature = "runtime-benchmarks"))] +#[cfg(feature = "playground-runtime")] parameter_types! { // referendum parameters pub const MaxSaltLength: u64 = 32; @@ -983,14 +982,15 @@ parameter_types! { pub const BudgetRefillPeriod: BlockNumber = 33; } -#[cfg(feature = "runtime-benchmarks")] +#[cfg(feature = "playground-runtime")] +#[cfg(not(feature = "runtime-benchmarks"))] parameter_types! { - pub const CouncilSize: u32 = 3; + pub const CouncilSize: u32 = 1; } -#[cfg(feature = "playground-runtime")] +#[cfg(all(feature = "playground-runtime", feature = "runtime-benchmarks"))] parameter_types! { - pub const CouncilSize: u32 = 1; + pub const CouncilSize: u32 = 3; } // Staging coucil and elections configuration diff --git a/scripts/cargo-checks-with-benchmarking.sh b/scripts/cargo-checks-with-benchmarking.sh new file mode 100755 index 0000000000..0854a43c46 --- /dev/null +++ b/scripts/cargo-checks-with-benchmarking.sh @@ -0,0 +1,16 @@ +#!/usr/bin/env bash +set -e + +SCRIPT_PATH="$(dirname "${BASH_SOURCE[0]}")" +cd $SCRIPT_PATH + +echo 'running rust-fmt' +cargo fmt --all -- --check + +export WASM_BUILD_TOOLCHAIN=nightly-2022-11-15 + +echo 'running cargo clippy' +cargo "+$WASM_BUILD_TOOLCHAIN" clippy --release --all --features runtime-benchmarks -- -D warnings + +echo 'running all cargo tests' +cargo +nightly-2022-11-15 test --release --features runtime-benchmarks --all diff --git a/scripts/cargo-checks.sh b/scripts/cargo-checks.sh index 44c1a774a6..d1247b0d3a 100755 --- a/scripts/cargo-checks.sh +++ b/scripts/cargo-checks.sh @@ -16,8 +16,7 @@ export WASM_BUILD_TOOLCHAIN=nightly-2022-11-15 # So we skip building the WASM binary by setting BUILD_DUMMY_WASM_BINARY=1 # Aggressive linting echo 'running cargo clippy' -#cargo "+$WASM_BUILD_TOOLCHAIN" clippy --release --all --features "${FEATURES}" -- -D warnings -cargo "+$WASM_BUILD_TOOLCHAIN" clippy --release --all --features runtime-benchmarks,"${FEATURES}" +cargo "+$WASM_BUILD_TOOLCHAIN" clippy --release --all --features "${FEATURES}" -- -D warnings echo 'running cargo unit tests' -cargo "+$WASM_BUILD_TOOLCHAIN" test --release --all --features runtime-benchmarks,"${FEATURES}" +cargo "+$WASM_BUILD_TOOLCHAIN" test --release --all --features "${FEATURES}" diff --git a/scripts/cargo-test-all.sh b/scripts/cargo-test-all.sh new file mode 100755 index 0000000000..0f49701266 --- /dev/null +++ b/scripts/cargo-test-all.sh @@ -0,0 +1,15 @@ +#!/usr/bin/env bash +set -e + +SCRIPT_PATH="$(dirname "${BASH_SOURCE[0]}")" +cd $SCRIPT_PATH + +echo 'running rust-fmt' +cargo fmt --all -- --check + +source ./features.sh + +export WASM_BUILD_TOOLCHAIN=nightly-2022-11-15 + +echo 'running cargo unit tests' +cargo "+$WASM_BUILD_TOOLCHAIN" test --release --all --features "${FEATURES}" -- --ignored diff --git a/scripts/cargo-tests-with-networking.sh b/scripts/cargo-tests-with-networking.sh deleted file mode 100755 index f17c923bfe..0000000000 --- a/scripts/cargo-tests-with-networking.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/usr/bin/env bash -set -e - -SCRIPT_PATH="$(dirname "${BASH_SOURCE[0]}")" -cd $SCRIPT_PATH - -source features.sh - -export WASM_BUILD_TOOLCHAIN=nightly-2022-11-15 - -echo 'running all cargo tests' -cargo +nightly-2022-11-15 test --release --features "${FEATURES}" --all -- --ignored From 6004cf6b0385fa2c8cc02014f0c82e9775540066 Mon Sep 17 00:00:00 2001 From: Mokhtar Naamani Date: Mon, 27 Mar 2023 16:45:25 +0400 Subject: [PATCH 52/87] integration test runtime upgrade better cleanup --- tests/network-tests/run-runtime-upgrade-tests.sh | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/tests/network-tests/run-runtime-upgrade-tests.sh b/tests/network-tests/run-runtime-upgrade-tests.sh index 8c498c6314..085953a0f8 100755 --- a/tests/network-tests/run-runtime-upgrade-tests.sh +++ b/tests/network-tests/run-runtime-upgrade-tests.sh @@ -89,6 +89,7 @@ function start_old_joystream_node { function set_new_runtime_wasm_path() { docker create --name target-node joystream/node:${TARGET_RUNTIME} docker cp target-node:/joystream/runtime.compact.compressed.wasm ${DATA_PATH}/new_runtime.wasm + docker rm target-node } ####################################### @@ -134,7 +135,7 @@ function export_chainspec_file_to_disk() { # write the initial genesis state to db, in order to avoid waiting for an arbitrary amount of time # exporting should give some essential tasks errors but they are harmless https://github.com/paritytech/substrate/issues/10583 echo >&2 "exporting state" - docker-compose -f ../../docker-compose.yml run \ + docker-compose -f ../../docker-compose.yml run --rm \ -v ${DATA_PATH}:/spec joystream-node export-state \ --chain /spec/chain-spec-raw.json \ --base-path /data --pruning archive >${DATA_PATH}/exported-state.json @@ -142,8 +143,9 @@ function export_chainspec_file_to_disk() { # cleanup function cleanup() { - docker logs ${CONTAINER_ID} --tail 50 - docker rm --volumes target-node + docker logs ${CONTAINER_ID} --tail 100 + docker stop ${CONTAINER_ID} + docker rm ${CONTAINER_ID} docker logs processor --tail 100 || : docker logs indexer --tail 100 || : docker-compose -f ../../docker-compose.yml down -v --remove-orphans From 2fbf57836a79c424bbbdf80eb2d49a0b5e289e8d Mon Sep 17 00:00:00 2001 From: Mokhtar Naamani Date: Fri, 31 Mar 2023 02:37:48 +0400 Subject: [PATCH 53/87] v0.9.39 - add try-runtime --- Cargo.lock | 53 +++++++++++++++++++ bin/node/Cargo.toml | 6 +++ bin/node/src/cli.rs | 8 +++ bin/node/src/command.rs | 32 +++++++++++ runtime-modules/bounty/Cargo.toml | 3 +- runtime-modules/bounty/src/lib.rs | 7 +++ runtime-modules/constitution/Cargo.toml | 3 +- runtime-modules/constitution/src/lib.rs | 7 +++ runtime-modules/content/Cargo.toml | 1 + runtime-modules/content/src/lib.rs | 7 +++ runtime-modules/council/Cargo.toml | 3 +- runtime-modules/council/src/lib.rs | 7 +++ runtime-modules/forum/Cargo.toml | 1 + runtime-modules/forum/src/lib.rs | 7 +++ runtime-modules/membership/Cargo.toml | 3 +- runtime-modules/membership/src/lib.rs | 7 +++ runtime-modules/project-token/Cargo.toml | 1 + runtime-modules/project-token/src/lib.rs | 7 +++ runtime-modules/proposals/codex/Cargo.toml | 1 + runtime-modules/proposals/codex/src/lib.rs | 7 +++ .../proposals/discussion/Cargo.toml | 1 + .../proposals/discussion/src/lib.rs | 7 +++ runtime-modules/proposals/engine/Cargo.toml | 1 + runtime-modules/proposals/engine/src/lib.rs | 7 +++ runtime-modules/referendum/Cargo.toml | 1 + runtime-modules/referendum/src/lib.rs | 7 +++ runtime-modules/storage/Cargo.toml | 1 + runtime-modules/storage/src/lib.rs | 7 +++ runtime-modules/utility/Cargo.toml | 1 + runtime-modules/utility/src/lib.rs | 7 +++ runtime-modules/working-group/Cargo.toml | 3 +- runtime-modules/working-group/src/lib.rs | 7 +++ runtime/Cargo.toml | 41 ++++++++++++++ runtime/src/runtime_api.rs | 27 +++++++++- 34 files changed, 282 insertions(+), 7 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a5af2d6642..2566264fa4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2358,6 +2358,7 @@ source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e56 dependencies = [ "frame-support", "frame-system", + "frame-try-runtime", "parity-scale-codec", "scale-info", "sp-core", @@ -2506,6 +2507,18 @@ dependencies = [ "sp-api", ] +[[package]] +name = "frame-try-runtime" +version = "0.10.0-dev" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" +dependencies = [ + "frame-support", + "parity-scale-codec", + "sp-api", + "sp-runtime", + "sp-std", +] + [[package]] name = "fs2" version = "0.4.3" @@ -3374,6 +3387,7 @@ dependencies = [ "sp-core", "sp-finality-grandpa", "sp-inherents", + "sp-io", "sp-keyring", "sp-keystore", "sp-runtime", @@ -3388,6 +3402,7 @@ dependencies = [ "substrate-state-trie-migration-rpc", "tempfile", "tokio", + "try-runtime-cli", "wait-timeout", ] @@ -3402,6 +3417,7 @@ dependencies = [ "frame-system", "frame-system-benchmarking", "frame-system-rpc-runtime-api", + "frame-try-runtime", "getrandom 0.2.8", "hex-literal", "impl-serde 0.3.1", @@ -10167,6 +10183,43 @@ version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" +[[package]] +name = "try-runtime-cli" +version = "0.10.0-dev" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" +dependencies = [ + "async-trait", + "clap 4.1.11", + "frame-remote-externalities", + "frame-try-runtime", + "hex", + "log", + "parity-scale-codec", + "sc-cli", + "sc-executor", + "sc-service", + "serde", + "serde_json", + "sp-api", + "sp-consensus-aura", + "sp-consensus-babe", + "sp-core", + "sp-debug-derive", + "sp-externalities", + "sp-inherents", + "sp-io", + "sp-keystore", + "sp-rpc", + "sp-runtime", + "sp-state-machine", + "sp-timestamp", + "sp-transaction-storage-proof", + "sp-version", + "sp-weights", + "substrate-rpc-client", + "zstd", +] + [[package]] name = "tt-call" version = "1.0.9" diff --git a/bin/node/Cargo.toml b/bin/node/Cargo.toml index 957ce99c44..5cc0f1f457 100644 --- a/bin/node/Cargo.toml +++ b/bin/node/Cargo.toml @@ -41,6 +41,7 @@ sp-transaction-pool = { package = 'sp-transaction-pool', git = 'https://github.c sp-transaction-storage-proof = { package = 'sp-transaction-storage-proof', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} sp-block-builder = { package = 'sp-block-builder', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} sp-blockchain = { package = 'sp-blockchain', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +sp-io = { package = 'sp-io', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} # client dependencies sc-client-api = { package = 'sc-client-api', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} @@ -91,6 +92,7 @@ frame-benchmarking-cli = { package = 'frame-benchmarking-cli', optional = true, frame-benchmarking = { package = 'frame-benchmarking', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} serde_json = "1.0.79" node-inspect = { path = "../inspect", optional = true } +try-runtime-cli = { package = 'try-runtime-cli', optional = true, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} [target.'cfg(any(target_arch="x86_64", target_arch="aarch64"))'.dependencies] sc-cli = { package = 'sc-cli', optional = true, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} @@ -132,6 +134,7 @@ sc-cli = { package = 'sc-cli', optional = true, git = 'https://github.com/joystr pallet-balances = { package = 'pallet-balances', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} node-inspect = { path = "../inspect", optional = true } sc-storage-monitor = { package = 'sc-storage-monitor', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +try-runtime-cli = { package = 'try-runtime-cli', optional = true, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} [features] default = ["cli"] @@ -144,9 +147,12 @@ cli = [ "clap_complete", "substrate-build-script-utils", "node-inspect", + "try-runtime-cli", ] runtime-benchmarks = [ "node-runtime/runtime-benchmarks", "frame-benchmarking-cli/runtime-benchmarks" ] + +try-runtime = ["node-runtime/try-runtime", "try-runtime-cli/try-runtime"] \ No newline at end of file diff --git a/bin/node/src/cli.rs b/bin/node/src/cli.rs index ddc215595d..ff05e9a13d 100644 --- a/bin/node/src/cli.rs +++ b/bin/node/src/cli.rs @@ -57,6 +57,14 @@ pub enum Subcommand { #[command(subcommand)] Benchmark(frame_benchmarking_cli::BenchmarkCmd), + /// Try some command against runtime state. + #[cfg(feature = "try-runtime")] + TryRuntime(try_runtime_cli::TryRuntimeCmd), + + /// Try some command against runtime state. Note: `try-runtime` feature must be enabled. + #[cfg(not(feature = "try-runtime"))] + TryRuntime, + /// Key management cli utilities #[command(subcommand)] Key(sc_cli::KeySubcommand), diff --git a/bin/node/src/command.rs b/bin/node/src/command.rs index c1fe842c6e..5642829ca9 100644 --- a/bin/node/src/command.rs +++ b/bin/node/src/command.rs @@ -36,6 +36,11 @@ use sp_core::crypto::Ss58AddressFormat; use sp_keyring::Sr25519Keyring; use std::sync::Arc; +#[cfg(feature = "try-runtime")] +use { + node_runtime::constants::SLOT_DURATION, try_runtime_cli::block_building_info::substrate_info, +}; + impl SubstrateCli for Cli { fn impl_name() -> String { "Joystream Node".into() @@ -255,6 +260,33 @@ pub fn run() -> Result<()> { Ok((cmd.run(client, backend, Some(aux_revert)), task_manager)) }) } + #[cfg(feature = "try-runtime")] + Some(Subcommand::TryRuntime(cmd)) => { + use sc_executor::{sp_wasm_interface::ExtendedHostFunctions, NativeExecutionDispatch}; + let runner = cli.create_runner(cmd)?; + runner.async_run(|config| { + // we don't need any of the components of new_partial, just a runtime, or a task + // manager to do `async_run`. + let registry = config.prometheus_config.as_ref().map(|cfg| &cfg.registry); + let task_manager = + sc_service::TaskManager::new(config.tokio_handle.clone(), registry) + .map_err(|e| sc_cli::Error::Service(sc_service::Error::Prometheus(e)))?; + + let info_provider = substrate_info(SLOT_DURATION); + + Ok(( + cmd.run::::ExtendHostFunctions, + >, _>(Some(info_provider)), + task_manager, + )) + }) + } + #[cfg(not(feature = "try-runtime"))] + Some(Subcommand::TryRuntime) => Err("TryRuntime wasn't enabled when building the node. \ + You can enable it with `--features try-runtime`." + .into()), Some(Subcommand::ChainInfo(cmd)) => { let runner = cli.create_runner(cmd)?; runner.sync_run(|config| cmd.run::(&config)) diff --git a/runtime-modules/bounty/Cargo.toml b/runtime-modules/bounty/Cargo.toml index f69910db91..db5e33af93 100644 --- a/runtime-modules/bounty/Cargo.toml +++ b/runtime-modules/bounty/Cargo.toml @@ -59,4 +59,5 @@ std = [ 'council/std', 'staking-handler/std', 'frame-benchmarking?/std', -] \ No newline at end of file +] +try-runtime = [ "frame-support/try-runtime"] \ No newline at end of file diff --git a/runtime-modules/bounty/src/lib.rs b/runtime-modules/bounty/src/lib.rs index 2333cf0728..94d9ee1b27 100644 --- a/runtime-modules/bounty/src/lib.rs +++ b/runtime-modules/bounty/src/lib.rs @@ -2382,3 +2382,10 @@ impl Module { ) } } + +impl frame_support::traits::Hooks for Pallet { + #[cfg(feature = "try-runtime")] + fn try_state(_: T::BlockNumber) -> Result<(), &'static str> { + Ok(()) + } +} diff --git a/runtime-modules/constitution/Cargo.toml b/runtime-modules/constitution/Cargo.toml index b1caa1edc8..da5e6d11d6 100644 --- a/runtime-modules/constitution/Cargo.toml +++ b/runtime-modules/constitution/Cargo.toml @@ -37,4 +37,5 @@ std = [ 'pallet-balances/std', 'common/std', 'frame-benchmarking?/std', -] \ No newline at end of file +] +try-runtime = [ "frame-support/try-runtime"] \ No newline at end of file diff --git a/runtime-modules/constitution/src/lib.rs b/runtime-modules/constitution/src/lib.rs index 36f4c6c462..e399dbbd1d 100644 --- a/runtime-modules/constitution/src/lib.rs +++ b/runtime-modules/constitution/src/lib.rs @@ -103,3 +103,10 @@ decl_module! { } } } + +impl frame_support::traits::Hooks for Pallet { + #[cfg(feature = "try-runtime")] + fn try_state(_: T::BlockNumber) -> Result<(), &'static str> { + Ok(()) + } +} diff --git a/runtime-modules/content/Cargo.toml b/runtime-modules/content/Cargo.toml index 1abd7f2371..f0ef636a9c 100755 --- a/runtime-modules/content/Cargo.toml +++ b/runtime-modules/content/Cargo.toml @@ -65,3 +65,4 @@ std = [ 'scale-info/std', 'frame-benchmarking?/std', ] +try-runtime = [ "frame-support/try-runtime"] \ No newline at end of file diff --git a/runtime-modules/content/src/lib.rs b/runtime-modules/content/src/lib.rs index 3d5a92cd25..63e9ca6726 100644 --- a/runtime-modules/content/src/lib.rs +++ b/runtime-modules/content/src/lib.rs @@ -4958,3 +4958,10 @@ decl_event!( CreatorTokenIssued(ContentActor, ChannelId, TokenId), } ); + +impl frame_support::traits::Hooks for Pallet { + #[cfg(feature = "try-runtime")] + fn try_state(_: T::BlockNumber) -> Result<(), &'static str> { + Ok(()) + } +} diff --git a/runtime-modules/council/Cargo.toml b/runtime-modules/council/Cargo.toml index 459da73050..ac9cb0f92c 100644 --- a/runtime-modules/council/Cargo.toml +++ b/runtime-modules/council/Cargo.toml @@ -52,4 +52,5 @@ std = [ 'staking-handler/std', 'scale-info/std', 'frame-benchmarking?/std', -] \ No newline at end of file +] +try-runtime = [ "frame-support/try-runtime"] \ No newline at end of file diff --git a/runtime-modules/council/src/lib.rs b/runtime-modules/council/src/lib.rs index c411a944de..8b686a798f 100644 --- a/runtime-modules/council/src/lib.rs +++ b/runtime-modules/council/src/lib.rs @@ -1830,3 +1830,10 @@ impl common::council::CouncilBudgetManager frame_support::traits::Hooks for Pallet { + #[cfg(feature = "try-runtime")] + fn try_state(_: T::BlockNumber) -> Result<(), &'static str> { + Ok(()) + } +} diff --git a/runtime-modules/forum/Cargo.toml b/runtime-modules/forum/Cargo.toml index 18ec090eab..fd1d01c5ca 100755 --- a/runtime-modules/forum/Cargo.toml +++ b/runtime-modules/forum/Cargo.toml @@ -58,3 +58,4 @@ std = [ 'scale-info/std', 'frame-benchmarking?/std', ] +try-runtime = [ "frame-support/try-runtime"] \ No newline at end of file diff --git a/runtime-modules/forum/src/lib.rs b/runtime-modules/forum/src/lib.rs index 25ca779e4b..27414416dc 100755 --- a/runtime-modules/forum/src/lib.rs +++ b/runtime-modules/forum/src/lib.rs @@ -2030,3 +2030,10 @@ impl Module { Ok(()) } } + +impl frame_support::traits::Hooks for Pallet { + #[cfg(feature = "try-runtime")] + fn try_state(_: T::BlockNumber) -> Result<(), &'static str> { + Ok(()) + } +} diff --git a/runtime-modules/membership/Cargo.toml b/runtime-modules/membership/Cargo.toml index 0efe0d87cc..11def40dea 100644 --- a/runtime-modules/membership/Cargo.toml +++ b/runtime-modules/membership/Cargo.toml @@ -45,4 +45,5 @@ std = [ 'staking-handler/std', 'scale-info/std', 'frame-benchmarking?/std', -] \ No newline at end of file +] +try-runtime = [ "frame-support/try-runtime"] \ No newline at end of file diff --git a/runtime-modules/membership/src/lib.rs b/runtime-modules/membership/src/lib.rs index 3b53e74423..e5ce2cc971 100644 --- a/runtime-modules/membership/src/lib.rs +++ b/runtime-modules/membership/src/lib.rs @@ -1479,3 +1479,10 @@ impl MembershipInfoProvider for Module { Ok(membership.controller_account) } } + +impl frame_support::traits::Hooks for Pallet { + #[cfg(feature = "try-runtime")] + fn try_state(_: T::BlockNumber) -> Result<(), &'static str> { + Ok(()) + } +} diff --git a/runtime-modules/project-token/Cargo.toml b/runtime-modules/project-token/Cargo.toml index c978e1860e..1c530fe4d3 100644 --- a/runtime-modules/project-token/Cargo.toml +++ b/runtime-modules/project-token/Cargo.toml @@ -50,3 +50,4 @@ std = [ 'scale-info/std', 'frame-benchmarking?/std' ] +try-runtime = [ "frame-support/try-runtime"] diff --git a/runtime-modules/project-token/src/lib.rs b/runtime-modules/project-token/src/lib.rs index 3a1f97f223..432d748ce6 100644 --- a/runtime-modules/project-token/src/lib.rs +++ b/runtime-modules/project-token/src/lib.rs @@ -1871,3 +1871,10 @@ impl Module { Ok(Transfers(transfers_set)) } } + +impl frame_support::traits::Hooks for Pallet { + #[cfg(feature = "try-runtime")] + fn try_state(_: T::BlockNumber) -> Result<(), &'static str> { + Ok(()) + } +} diff --git a/runtime-modules/proposals/codex/Cargo.toml b/runtime-modules/proposals/codex/Cargo.toml index 86d50a095a..bf51a001d3 100644 --- a/runtime-modules/proposals/codex/Cargo.toml +++ b/runtime-modules/proposals/codex/Cargo.toml @@ -74,3 +74,4 @@ std = [ 'frame-election-provider-support/std', 'sp-staking/std', ] +try-runtime = [ "frame-support/try-runtime"] diff --git a/runtime-modules/proposals/codex/src/lib.rs b/runtime-modules/proposals/codex/src/lib.rs index 8e2fe9e6f9..dd5eda808b 100644 --- a/runtime-modules/proposals/codex/src/lib.rs +++ b/runtime-modules/proposals/codex/src/lib.rs @@ -1107,3 +1107,10 @@ impl ProposalObserver for Module { proposals_discussion::ThreadById::::remove(thread_id); } } + +impl frame_support::traits::Hooks for Pallet { + #[cfg(feature = "try-runtime")] + fn try_state(_: T::BlockNumber) -> Result<(), &'static str> { + Ok(()) + } +} diff --git a/runtime-modules/proposals/discussion/Cargo.toml b/runtime-modules/proposals/discussion/Cargo.toml index e9b28b8fb6..5522a2b5c3 100644 --- a/runtime-modules/proposals/discussion/Cargo.toml +++ b/runtime-modules/proposals/discussion/Cargo.toml @@ -55,3 +55,4 @@ std = [ 'sp-runtime/std', 'frame-benchmarking?/std', ] +try-runtime = [ "frame-support/try-runtime"] diff --git a/runtime-modules/proposals/discussion/src/lib.rs b/runtime-modules/proposals/discussion/src/lib.rs index b3a5121aa4..4657668312 100644 --- a/runtime-modules/proposals/discussion/src/lib.rs +++ b/runtime-modules/proposals/discussion/src/lib.rs @@ -575,3 +575,10 @@ impl Module { T::ModuleId::get().into_sub_account_truncating("TREASURY") } } + +impl frame_support::traits::Hooks for Pallet { + #[cfg(feature = "try-runtime")] + fn try_state(_: T::BlockNumber) -> Result<(), &'static str> { + Ok(()) + } +} diff --git a/runtime-modules/proposals/engine/Cargo.toml b/runtime-modules/proposals/engine/Cargo.toml index b2348b6571..ae97d32caf 100644 --- a/runtime-modules/proposals/engine/Cargo.toml +++ b/runtime-modules/proposals/engine/Cargo.toml @@ -58,3 +58,4 @@ std = [ 'scale-info/std', 'frame-benchmarking?/std' ] +try-runtime = [ "frame-support/try-runtime"] diff --git a/runtime-modules/proposals/engine/src/lib.rs b/runtime-modules/proposals/engine/src/lib.rs index fd38881e69..fe35c6d086 100644 --- a/runtime-modules/proposals/engine/src/lib.rs +++ b/runtime-modules/proposals/engine/src/lib.rs @@ -1079,3 +1079,10 @@ impl Module { executed_weight } } + +impl frame_support::traits::Hooks for Pallet { + #[cfg(feature = "try-runtime")] + fn try_state(_: T::BlockNumber) -> Result<(), &'static str> { + Ok(()) + } +} diff --git a/runtime-modules/referendum/Cargo.toml b/runtime-modules/referendum/Cargo.toml index 8867619f07..37fec235a9 100644 --- a/runtime-modules/referendum/Cargo.toml +++ b/runtime-modules/referendum/Cargo.toml @@ -51,3 +51,4 @@ std = [ 'scale-info/std', 'frame-benchmarking?/std', ] +try-runtime = [ "frame-support/try-runtime"] diff --git a/runtime-modules/referendum/src/lib.rs b/runtime-modules/referendum/src/lib.rs index bfbe9b061e..e7c829db17 100644 --- a/runtime-modules/referendum/src/lib.rs +++ b/runtime-modules/referendum/src/lib.rs @@ -1119,3 +1119,10 @@ impl, I: Instance> EnsureChecks { Ok(cast_vote) } } + +impl, I: Instance> frame_support::traits::Hooks for Pallet { + #[cfg(feature = "try-runtime")] + fn try_state(_: T::BlockNumber) -> Result<(), &'static str> { + Ok(()) + } +} diff --git a/runtime-modules/storage/Cargo.toml b/runtime-modules/storage/Cargo.toml index 2fafe4f7c4..2c29545a4f 100644 --- a/runtime-modules/storage/Cargo.toml +++ b/runtime-modules/storage/Cargo.toml @@ -59,3 +59,4 @@ std = [ ] playground-runtime = [] testing-runtime = [] +try-runtime = [ "frame-support/try-runtime"] diff --git a/runtime-modules/storage/src/lib.rs b/runtime-modules/storage/src/lib.rs index f7ae81ecb6..eb389c0474 100644 --- a/runtime-modules/storage/src/lib.rs +++ b/runtime-modules/storage/src/lib.rs @@ -4659,3 +4659,10 @@ impl Module { pay_fee::(source, None, amount).map(|_| ()) } } + +impl frame_support::traits::Hooks for Pallet { + #[cfg(feature = "try-runtime")] + fn try_state(_: T::BlockNumber) -> Result<(), &'static str> { + Ok(()) + } +} diff --git a/runtime-modules/utility/Cargo.toml b/runtime-modules/utility/Cargo.toml index 84c2e1f56a..9a7489cde4 100644 --- a/runtime-modules/utility/Cargo.toml +++ b/runtime-modules/utility/Cargo.toml @@ -51,3 +51,4 @@ std = [ 'working-group/std', 'frame-benchmarking?/std', ] +try-runtime = [ "frame-support/try-runtime"] diff --git a/runtime-modules/utility/src/lib.rs b/runtime-modules/utility/src/lib.rs index 3a98099bd9..729dfd0a3d 100644 --- a/runtime-modules/utility/src/lib.rs +++ b/runtime-modules/utility/src/lib.rs @@ -264,3 +264,10 @@ impl Module { } } } + +impl frame_support::traits::Hooks for Pallet { + #[cfg(feature = "try-runtime")] + fn try_state(_: T::BlockNumber) -> Result<(), &'static str> { + Ok(()) + } +} diff --git a/runtime-modules/working-group/Cargo.toml b/runtime-modules/working-group/Cargo.toml index ea7bbbcadb..e8a1938fb6 100644 --- a/runtime-modules/working-group/Cargo.toml +++ b/runtime-modules/working-group/Cargo.toml @@ -47,4 +47,5 @@ std = [ 'staking-handler/std', 'membership/std', 'scale-info/std', -] \ No newline at end of file +] +try-runtime = [ "frame-support/try-runtime"] \ No newline at end of file diff --git a/runtime-modules/working-group/src/lib.rs b/runtime-modules/working-group/src/lib.rs index 17ccf7b016..ce7034b460 100644 --- a/runtime-modules/working-group/src/lib.rs +++ b/runtime-modules/working-group/src/lib.rs @@ -1697,3 +1697,10 @@ impl, I: Instance> Ok(()) } } + +impl, I: Instance> frame_support::traits::Hooks for Pallet { + #[cfg(feature = "try-runtime")] + fn try_state(_: T::BlockNumber) -> Result<(), &'static str> { + Ok(()) + } +} diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index 2b69d0965f..435c78af61 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -45,6 +45,7 @@ frame-system = { package = 'frame-system', default-features = false, git = 'http frame-election-provider-support = { package = 'frame-election-provider-support', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} pallet-election-provider-multi-phase = { package = 'pallet-election-provider-multi-phase', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e' } pallet-bags-list = { package = 'pallet-bags-list', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +frame-try-runtime = { package = 'frame-try-runtime', default-features = false, optional = true, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} # Pallets pallet-grandpa = { package = 'pallet-grandpa', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} @@ -134,6 +135,7 @@ std = [ 'frame-benchmarking/std', 'pallet-offences-benchmarking?/std', 'frame-system-benchmarking?/std', + 'frame-try-runtime/std', # Pallets 'pallet-timestamp/std', @@ -225,3 +227,42 @@ staging-runtime = [] playground-runtime = [] # configuration suitable for integration testing testing-runtime = [] + +try-runtime = [ + "frame-try-runtime", + "frame-executive/try-runtime", + "frame-system/try-runtime", + "frame-support/try-runtime", + "pallet-authority-discovery/try-runtime", + "pallet-authorship/try-runtime", + "pallet-babe/try-runtime", + "pallet-bags-list/try-runtime", + "pallet-balances/try-runtime", + "pallet-election-provider-multi-phase/try-runtime", + "pallet-grandpa/try-runtime", + "pallet-im-online/try-runtime", + "pallet-multisig/try-runtime", + "pallet-offences/try-runtime", + "pallet-insecure-randomness-collective-flip/try-runtime", + "pallet-session/try-runtime", + "pallet-staking/try-runtime", + "pallet-timestamp/try-runtime", + "pallet-transaction-payment/try-runtime", + "pallet-vesting/try-runtime", + "substrate-utility/try-runtime", + # joystream + 'forum/try-runtime', + 'membership/try-runtime', + 'council/try-runtime', + 'referendum/try-runtime', + 'working-group/try-runtime', + 'storage/try-runtime', + 'proposals-engine/try-runtime', + 'proposals-discussion/try-runtime', + 'proposals-codex/try-runtime', + 'pallet-constitution/try-runtime', + 'bounty/try-runtime', + 'joystream-utility/try-runtime', + 'content/try-runtime', + 'project-token/try-runtime', +] \ No newline at end of file diff --git a/runtime/src/runtime_api.rs b/runtime/src/runtime_api.rs index 4b8e6a98f3..fd64ec720d 100644 --- a/runtime/src/runtime_api.rs +++ b/runtime/src/runtime_api.rs @@ -14,8 +14,9 @@ use sp_std::vec::Vec; use crate::{ AccountId, AllPalletsWithSystem, AuthorityDiscovery, AuthorityDiscoveryId, Babe, Balance, BlockNumber, EpochDuration, Grandpa, GrandpaAuthorityList, GrandpaId, Historical, Index, - InherentDataExt, ProposalsEngine, Runtime, RuntimeCall, RuntimeVersion, SessionKeys, Signature, - System, TransactionPayment, VoterList, BABE_GENESIS_EPOCH_CONFIG, VERSION, + InherentDataExt, ProposalsEngine, Runtime, RuntimeBlockWeights, RuntimeCall, RuntimeVersion, + SessionKeys, Signature, System, TransactionPayment, VoterList, BABE_GENESIS_EPOCH_CONFIG, + VERSION, }; use frame_support::weights::Weight; @@ -346,6 +347,28 @@ impl_runtime_apis! { } } + #[cfg(feature = "try-runtime")] + impl frame_try_runtime::TryRuntime for Runtime { + fn on_runtime_upgrade(checks: frame_try_runtime::UpgradeCheckSelect) -> (Weight, Weight) { + // NOTE: intentional unwrap: we don't want to propagate the error backwards, and want to + // have a backtrace here. If any of the pre/post migration checks fail, we shall stop + // right here and right now. + let weight = Executive::try_runtime_upgrade(checks).unwrap(); + (weight, RuntimeBlockWeights::get().max_block) + } + + fn execute_block( + block: Block, + state_root_check: bool, + signature_check: bool, + select: frame_try_runtime::TryStateSelect + ) -> Weight { + // NOTE: intentional unwrap: we don't want to propagate the error backwards, and want to + // have a backtrace here. + Executive::try_execute_block(block, state_root_check, signature_check, select).unwrap() + } + } + #[cfg(feature = "runtime-benchmarks")] impl frame_benchmarking::v1::Benchmark for Runtime { fn benchmark_metadata(extra: bool) -> ( From 85bf256eca985edd1e509e4fa13a3027046cbe68 Mon Sep 17 00:00:00 2001 From: Mokhtar Naamani Date: Tue, 4 Apr 2023 14:14:01 +0400 Subject: [PATCH 54/87] v0.9.39 - Fix const export on content pallet - https://github.com/Joystream/joystream/issues/4726 --- runtime-modules/content/src/lib.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/runtime-modules/content/src/lib.rs b/runtime-modules/content/src/lib.rs index 63e9ca6726..2b8f4b169c 100644 --- a/runtime-modules/content/src/lib.rs +++ b/runtime-modules/content/src/lib.rs @@ -333,15 +333,15 @@ decl_module! { /// Exports const - default global weekly NFT limit. const DefaultGlobalWeeklyNftLimit: LimitPerPeriod = - T::DefaultGlobalDailyNftLimit::get(); + T::DefaultGlobalWeeklyNftLimit::get(); /// Exports const - default channel daily NFT limit. const DefaultChannelDailyNftLimit: LimitPerPeriod = - T::DefaultGlobalDailyNftLimit::get(); + T::DefaultChannelDailyNftLimit::get(); /// Exports const - default channel weekly NFT limit. const DefaultChannelWeeklyNftLimit: LimitPerPeriod = - T::DefaultGlobalDailyNftLimit::get(); + T::DefaultChannelWeeklyNftLimit::get(); /// Export const - min cashout allowed limits const MinimumCashoutAllowedLimit: BalanceOf = T::MinimumCashoutAllowedLimit::get(); From 276eb02f2acccbfe0e8066d8e990984fc0fe54f7 Mon Sep 17 00:00:00 2001 From: Mokhtar Naamani Date: Tue, 4 Apr 2023 17:49:04 +0400 Subject: [PATCH 55/87] v0.9.39 - add pallet staking runtime api --- runtime/src/runtime_api.rs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/runtime/src/runtime_api.rs b/runtime/src/runtime_api.rs index fd64ec720d..93671e54c2 100644 --- a/runtime/src/runtime_api.rs +++ b/runtime/src/runtime_api.rs @@ -199,6 +199,12 @@ impl_runtime_apis! { } } + impl pallet_staking_runtime_api::StakingApi for Runtime { + fn nominations_quota(balance: Balance) -> u32 { + Staking::api_nominations_quota(balance) + } + } + impl sp_transaction_pool::runtime_api::TaggedTransactionQueue for Runtime { fn validate_transaction( source: TransactionSource, From 9f67cc44ca06c6cbfeb771d65f50865bc1cb82b6 Mon Sep 17 00:00:00 2001 From: Mokhtar Naamani Date: Wed, 5 Apr 2023 02:11:03 +0400 Subject: [PATCH 56/87] v0.9.39 - Adjust bagslist renaming migration and add migration test to runtime --- Cargo.lock | 13 ++++++++++ runtime/Cargo.toml | 5 ++++ runtime/src/lib.rs | 52 ++++++++++++++++++++++++++++++++++++-- runtime/src/runtime_api.rs | 18 ++++++++----- 4 files changed, 79 insertions(+), 9 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 2566264fa4..55531fe76d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3413,6 +3413,7 @@ dependencies = [ "frame-benchmarking", "frame-election-provider-support", "frame-executive", + "frame-remote-externalities", "frame-support", "frame-system", "frame-system-benchmarking", @@ -3454,6 +3455,7 @@ dependencies = [ "pallet-staking", "pallet-staking-handler", "pallet-staking-reward-curve", + "pallet-staking-runtime-api", "pallet-storage", "pallet-timestamp", "pallet-transaction-payment", @@ -3479,12 +3481,14 @@ dependencies = [ "sp-session", "sp-staking", "sp-std", + "sp-tracing", "sp-transaction-pool", "sp-version", "sp-weights", "static_assertions", "strum 0.19.5", "substrate-wasm-builder", + "tokio", ] [[package]] @@ -5702,6 +5706,15 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "pallet-staking-runtime-api" +version = "4.0.0-dev" +source = "git+https://github.com/joystream/substrate.git?rev=50cf239147a6f569e563bcadec6c7a1c5ad5c67e#50cf239147a6f569e563bcadec6c7a1c5ad5c67e" +dependencies = [ + "parity-scale-codec", + "sp-api", +] + [[package]] name = "pallet-storage" version = "5.0.0" diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index 435c78af61..7f0d966156 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -65,6 +65,7 @@ pallet-im-online = { package = 'pallet-im-online', default-features = false, git substrate-utility = { package = 'pallet-utility', version = "4.0.0-dev", default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} pallet-vesting = { package = 'pallet-vesting', default-features = false, git = 'https://github.com/joystream/substrate', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e' } pallet-multisig = { package = 'pallet-multisig', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +pallet-staking-runtime-api = { package = 'pallet-staking-runtime-api', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} # Benchmarking frame-benchmarking = { git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e', default-features = false, optional = true } @@ -95,6 +96,9 @@ project-token = { package = 'pallet-project-token', default-features = false, pa [dev-dependencies] sp-io = { package = 'sp-io', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} strum = {version = "0.19", default-features = false} +remote-externalities = { package = "frame-remote-externalities", git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +tokio = { version = "1.24.2", features = ["macros"] } +sp-tracing = { package = 'sp-tracing', git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} [build-dependencies] substrate-wasm-builder = { git = "https://github.com/joystream/substrate", rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e' } @@ -158,6 +162,7 @@ std = [ 'pallet-bags-list/std', 'pallet-election-provider-multi-phase/std', 'pallet-election-provider-support-benchmarking?/std', + 'pallet-staking-runtime-api/std', # Joystream 'common/std', diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs index 3d63e1919d..95419af05e 100644 --- a/runtime/src/lib.rs +++ b/runtime/src/lib.rs @@ -591,7 +591,8 @@ impl pallet_staking::Config for Runtime { type OffendingValidatorsThreshold = OffendingValidatorsThreshold; type ElectionProvider = ElectionProviderMultiPhase; type GenesisElectionProvider = onchain::OnChainExecution; - type VoterList = VoterList; + type VoterList = BagsList; + // type VoterList = VoterList; // not renaming for now type TargetList = pallet_staking::UseValidatorsMap; type MaxUnlockingChunks = ConstU32<32>; type HistoryDepth = HistoryDepth; @@ -1848,7 +1849,9 @@ construct_runtime!( ImOnline: pallet_im_online, Offences: pallet_offences, RandomnessCollectiveFlip: pallet_insecure_randomness_collective_flip, - VoterList: pallet_bags_list::::{Pallet, Call, Storage, Event}, + BagsList: pallet_bags_list::::{Pallet, Call, Storage, Event}, + // Not renaming BagsList to VoterList until migration test failing can be fixed + // VoterList: pallet_bags_list::::{Pallet, Call, Storage, Event}, Vesting: pallet_vesting, Multisig: pallet_multisig, // Joystream @@ -1878,3 +1881,48 @@ construct_runtime!( DistributionWorkingGroup: working_group::::{Pallet, Call, Storage, Event}, } ); + +#[cfg(all(test, feature = "try-runtime"))] +mod remote_tests { + use super::*; + use frame_try_runtime::{runtime_decl_for_TryRuntime::TryRuntime, UpgradeCheckSelect}; + use remote_externalities::{ + Builder, Mode, OfflineConfig, OnlineConfig, SnapshotConfig, Transport, + }; + use std::env::var; + + #[tokio::test] + async fn run_migrations() { + if var("RUN_MIGRATION_TESTS").is_err() { + return; + } + + sp_tracing::try_init_simple(); + let transport: Transport = var("WS") + .unwrap_or("wss://rpc.joystream.org:443".to_string()) + .into(); + let maybe_state_snapshot: Option = var("SNAP").map(|s| s.into()).ok(); + let mut ext = Builder::::default() + .mode(if let Some(state_snapshot) = maybe_state_snapshot { + Mode::OfflineOrElseOnline( + OfflineConfig { + state_snapshot: state_snapshot.clone(), + }, + OnlineConfig { + transport, + state_snapshot: Some(state_snapshot), + ..Default::default() + }, + ) + } else { + Mode::Online(OnlineConfig { + transport, + ..Default::default() + }) + }) + .build() + .await + .unwrap(); + ext.execute_with(|| Runtime::on_runtime_upgrade(UpgradeCheckSelect::PreAndPost)); + } +} diff --git a/runtime/src/runtime_api.rs b/runtime/src/runtime_api.rs index 93671e54c2..0a6148c40d 100644 --- a/runtime/src/runtime_api.rs +++ b/runtime/src/runtime_api.rs @@ -12,13 +12,15 @@ use sp_runtime::{generic, ApplyExtrinsicResult}; use sp_std::vec::Vec; use crate::{ - AccountId, AllPalletsWithSystem, AuthorityDiscovery, AuthorityDiscoveryId, Babe, Balance, - BlockNumber, EpochDuration, Grandpa, GrandpaAuthorityList, GrandpaId, Historical, Index, - InherentDataExt, ProposalsEngine, Runtime, RuntimeBlockWeights, RuntimeCall, RuntimeVersion, - SessionKeys, Signature, System, TransactionPayment, VoterList, BABE_GENESIS_EPOCH_CONFIG, - VERSION, + AccountId, AllPalletsWithSystem, AuthorityDiscovery, AuthorityDiscoveryId, Babe, BagsList, + Balance, BlockNumber, EpochDuration, Grandpa, GrandpaAuthorityList, GrandpaId, Historical, + Index, InherentDataExt, ProposalsEngine, Runtime, RuntimeCall, RuntimeVersion, SessionKeys, + Signature, Staking, System, TransactionPayment, BABE_GENESIS_EPOCH_CONFIG, VERSION, }; +#[cfg(feature = "try-runtime")] +use crate::RuntimeBlockWeights; + use frame_support::weights::Weight; /// The SignedExtension to the basic transaction logic. @@ -98,8 +100,10 @@ pub type Migrations = ( pallet_staking::migrations::v9::InjectValidatorsIntoVoterList, // slash all pending slashes correctly pallet_staking::migrations::v10::MigrateToV10, - // Rename BagsList to VoterList - pallet_staking::migrations::v11::MigrateToV11, + // Rename BagsList to VoterList - SKIPPING FOR NOW BY KEEPING SAME NAME + // Post-Upgrade check is failing -> 'old pallet data hasn't been removed' + // Only storage version will be bumped. Is this a problem? + pallet_staking::migrations::v11::MigrateToV11, // Kill HistoryDepth storage pallet_staking::migrations::v12::MigrateToV12, // Migrate to new storage versioning From 5462b1f57f42dcd6f5d42788f6f9c7335a5667e2 Mon Sep 17 00:00:00 2001 From: Mokhtar Naamani Date: Wed, 5 Apr 2023 02:15:15 +0400 Subject: [PATCH 57/87] ci checks - test runtime upgrade with try-runtime --- .github/workflows/joystream-node.yml | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/.github/workflows/joystream-node.yml b/.github/workflows/joystream-node.yml index ecd7599366..71cb17a140 100644 --- a/.github/workflows/joystream-node.yml +++ b/.github/workflows/joystream-node.yml @@ -77,6 +77,19 @@ jobs: yarn cargo-checks && yarn cargo-build ./target/release/call-sizes if: env.GIT_DIFF + - name: OnRuntimeUpgrade (try-runtime) + run: | + cargo build --release --features try-runtime + RUST_LOG=info,runtime=debug ./target/release/joystream-node try-runtime \ + --runtime ./target/release/wbuild/joystream-node-runtime/joystream_node_runtime.compact.compressed.wasm \ + on-runtime-upgrade \ + live \ + --uri wss://rpc.joystream.org:9944/ + if: env.GIT_DIFF + - name: run_migrations test + run: | + RUN_MIGRATION_TESTS=true RUST_LOG=info cargo +nightly-2022-11-15 test --release --features try-runtime + if: env.GIT_DIFF - name: Staging Runtime env: RUNTIME_PROFILE: "STAGING" From 3182d28444e0ae214b7afa71a58cb2615d2164f5 Mon Sep 17 00:00:00 2001 From: Mokhtar Naamani Date: Wed, 5 Apr 2023 11:44:29 +0400 Subject: [PATCH 58/87] ci-checks: use correct rust nightly --- .github/workflows/joystream-node.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/joystream-node.yml b/.github/workflows/joystream-node.yml index 71cb17a140..6bed6b7284 100644 --- a/.github/workflows/joystream-node.yml +++ b/.github/workflows/joystream-node.yml @@ -79,7 +79,7 @@ jobs: if: env.GIT_DIFF - name: OnRuntimeUpgrade (try-runtime) run: | - cargo build --release --features try-runtime + cargo +nightly-2022-11-15 build --release --features try-runtime RUST_LOG=info,runtime=debug ./target/release/joystream-node try-runtime \ --runtime ./target/release/wbuild/joystream-node-runtime/joystream_node_runtime.compact.compressed.wasm \ on-runtime-upgrade \ From 8300116a4db4769aaee1e5d07f52067b41e70522 Mon Sep 17 00:00:00 2001 From: Mokhtar Naamani Date: Wed, 5 Apr 2023 11:50:40 +0400 Subject: [PATCH 59/87] v0.9.39 - fix ref to BagsList in benchmarking --- runtime/src/runtime_api.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runtime/src/runtime_api.rs b/runtime/src/runtime_api.rs index 0a6148c40d..de33c2aa61 100644 --- a/runtime/src/runtime_api.rs +++ b/runtime/src/runtime_api.rs @@ -133,7 +133,7 @@ mod benches { define_benchmarks!( [frame_benchmarking, BaselineBench::] [pallet_babe, Babe] - [pallet_bags_list, VoterList] + [pallet_bags_list, BagsList] [pallet_balances, Balances] [pallet_election_provider_multi_phase, ElectionProviderMultiPhase] [pallet_election_provider_support_benchmarking, EPSBench::] From 5156465a71ffe2094ab4d2e24349bea70b7619fd Mon Sep 17 00:00:00 2001 From: Mokhtar Naamani Date: Thu, 13 Apr 2023 01:48:47 +0400 Subject: [PATCH 60/87] v0.9.39 - fix member remark mapping to handle new runtime spec version --- query-node/mappings/src/membership.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/query-node/mappings/src/membership.ts b/query-node/mappings/src/membership.ts index f87031d91c..8db15cedce 100644 --- a/query-node/mappings/src/membership.ts +++ b/query-node/mappings/src/membership.ts @@ -425,7 +425,7 @@ export async function members_InvitesTransferred({ store, event }: EventContext export async function members_MemberInvited({ store, event, block }: EventContext & StoreContext): Promise { const { specVersion } = block.runtimeVersion const [memberId, inviteMembershipParameters, maybeInvitedMemberBalance] = - specVersion === 2001 ? new MemberInvitedEvent_V2001(event).params : new MemberInvitedEvent_V1001(event).params + specVersion === 1001 ? new MemberInvitedEvent_V1001(event).params : new MemberInvitedEvent_V2001(event).params const entryMethod = new MembershipEntryInvited() const invitedMember = await createNewMemberFromParams(store, memberId, entryMethod, inviteMembershipParameters, 0) @@ -591,7 +591,7 @@ export async function members_MemberRemarked(ctx: EventContext & StoreContext): const { event, store, block } = ctx const { specVersion } = block.runtimeVersion const [memberId, metadataBytes, payment] = - specVersion === 2001 ? new MemberRemarkedEvent_V2001(event).params : new MemberRemarkedEvent_V1001(event).params + specVersion === 1001 ? new MemberRemarkedEvent_V1001(event).params : new MemberRemarkedEvent_V2001(event).params try { const metadata = deserializeMetadata(MemberRemarked, metadataBytes) From 3a79f1ee050698685ca4415b5c08cd3f6f7c35a9 Mon Sep 17 00:00:00 2001 From: Mokhtar Naamani Date: Thu, 13 Apr 2023 13:04:59 +0400 Subject: [PATCH 61/87] integration tests: docker run without pulling joystream/node --- tests/network-tests/run-node-docker.sh | 6 +++--- tests/network-tests/run-runtime-upgrade-tests.sh | 6 +++--- tests/network-tests/run-tests.sh | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/tests/network-tests/run-node-docker.sh b/tests/network-tests/run-node-docker.sh index d3e6083f04..89f7fbab4d 100755 --- a/tests/network-tests/run-node-docker.sh +++ b/tests/network-tests/run-node-docker.sh @@ -18,7 +18,7 @@ RUNTIME=${RUNTIME:=$(../../scripts/runtime-code-shasum.sh)} # Source of funds for all new accounts that are created in the tests. TREASURY_INITIAL_BALANCE=${TREASURY_INITIAL_BALANCE:="100000000"} TREASURY_ACCOUNT_URI=${TREASURY_ACCOUNT_URI:="//Bob"} -TREASURY_ACCOUNT=$(docker run --rm joystream/node:${RUNTIME} key inspect ${TREASURY_ACCOUNT_URI} --output-type json | jq .ss58Address -r) +TREASURY_ACCOUNT=$(docker run --pull never --rm joystream/node:${RUNTIME} key inspect ${TREASURY_ACCOUNT_URI} --output-type json | jq .ss58Address -r) >&2 echo "treasury account from suri: ${TREASURY_ACCOUNT}" @@ -47,7 +47,7 @@ else fi # Create a chain spec file -docker run --rm -v ${DATA_PATH}:/spec --entrypoint ./chain-spec-builder joystream/node:${RUNTIME} \ +docker run --pull never --rm -v ${DATA_PATH}:/spec --entrypoint ./chain-spec-builder joystream/node:${RUNTIME} \ new \ --fund-accounts \ --authorities //Alice \ @@ -56,7 +56,7 @@ docker run --rm -v ${DATA_PATH}:/spec --entrypoint ./chain-spec-builder joystrea --initial-balances-path /spec/initial-balances.json # Convert the chain spec file to a raw chainspec file -docker run --rm -v ${DATA_PATH}:/spec joystream/node:${RUNTIME} build-spec \ +docker run --pull never --rm -v ${DATA_PATH}:/spec joystream/node:${RUNTIME} build-spec \ --raw --disable-default-bootnode \ --chain /spec/chain-spec.json > ${DATA_PATH}/chain-spec-raw.json diff --git a/tests/network-tests/run-runtime-upgrade-tests.sh b/tests/network-tests/run-runtime-upgrade-tests.sh index 085953a0f8..4500af4ecf 100755 --- a/tests/network-tests/run-runtime-upgrade-tests.sh +++ b/tests/network-tests/run-runtime-upgrade-tests.sh @@ -19,7 +19,7 @@ TARGET_RUNTIME=${TARGET_RUNTIME:=target} # Source of funds for all new accounts that are created in the tests. TREASURY_INITIAL_BALANCE=${TREASURY_INITIAL_BALANCE:="100000000"} TREASURY_ACCOUNT_URI=${TREASURY_ACCOUNT_URI:="//Bob"} -TREASURY_ACCOUNT=$(docker run --rm joystream/node:${RUNTIME} key inspect ${TREASURY_ACCOUNT_URI} --output-type json | jq .ss58Address -r) +TREASURY_ACCOUNT=$(docker run --pull never --rm joystream/node:${RUNTIME} key inspect ${TREASURY_ACCOUNT_URI} --output-type json | jq .ss58Address -r) echo >&2 "sudo account from suri: ${SUDO_ACCOUNT}" echo >&2 "treasury account from suri: ${TREASURY_ACCOUNT}" @@ -51,7 +51,7 @@ function generate_config_files() { # Create a chain spec file function create_raw_chain_spec() { - docker run --rm -v ${DATA_PATH}:/spec --entrypoint ./chain-spec-builder joystream/node:${RUNTIME} \ + docker run --pull never --rm -v ${DATA_PATH}:/spec --entrypoint ./chain-spec-builder joystream/node:${RUNTIME} \ generate \ --authorities 1 \ --nominators 1 \ @@ -62,7 +62,7 @@ function create_raw_chain_spec() { --keystore-path /spec/keystore # Convert the chain spec file to a raw chainspec file - docker run --rm -v ${DATA_PATH}:/spec joystream/node:${RUNTIME} build-spec \ + docker run --pull never --rm -v ${DATA_PATH}:/spec joystream/node:${RUNTIME} build-spec \ --raw --disable-default-bootnode \ --chain /spec/chain-spec.json >${DATA_PATH}/chain-spec-raw.json diff --git a/tests/network-tests/run-tests.sh b/tests/network-tests/run-tests.sh index 48ffc85f91..07e8e2175c 100755 --- a/tests/network-tests/run-tests.sh +++ b/tests/network-tests/run-tests.sh @@ -15,7 +15,7 @@ function cleanup() { trap cleanup EXIT -sleep 3 +sleep 30 # Display runtime version yarn workspace api-scripts tsnode-strict src/status.ts | grep Runtime From 76420673b21e1296183c7425857dc2e6de5c0cd6 Mon Sep 17 00:00:00 2001 From: Mokhtar Naamani Date: Fri, 14 Apr 2023 01:58:40 +0400 Subject: [PATCH 62/87] integration tests- runtime upgrade: run new node with old pre-upgrade state --- tests/network-tests/run-runtime-upgrade-tests.sh | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tests/network-tests/run-runtime-upgrade-tests.sh b/tests/network-tests/run-runtime-upgrade-tests.sh index 4500af4ecf..da07e929a9 100755 --- a/tests/network-tests/run-runtime-upgrade-tests.sh +++ b/tests/network-tests/run-runtime-upgrade-tests.sh @@ -179,11 +179,13 @@ function main { # 4. copy chainspec to disk export_chainspec_file_to_disk echo >&2 "chainspec exported" - # 5. start node + # 5. start node using new binary to test rpc endpoint code being different + # than runtime version to look for breaking decoding of types early. + export JOYSTREAM_NODE_TAG=${TARGET_RUNTIME} CONTAINER_ID=$(start_old_joystream_node) echo >&2 "mainnet node starting" - # wait 1 minute + # Wait for chain and query node to get in sync sleep 90 # 6. Bootstrap storage infra because we need to run content-directory tests after runtime upgrade From 4a21288e049876634aee88ad924960f01b871570 Mon Sep 17 00:00:00 2001 From: Mokhtar Naamani Date: Fri, 14 Apr 2023 05:11:47 +0400 Subject: [PATCH 63/87] integration tests: start new node after runtime upgrade --- .../run-runtime-upgrade-tests.sh | 25 +++++++++++++------ 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/tests/network-tests/run-runtime-upgrade-tests.sh b/tests/network-tests/run-runtime-upgrade-tests.sh index da07e929a9..8ce7e4365d 100755 --- a/tests/network-tests/run-runtime-upgrade-tests.sh +++ b/tests/network-tests/run-runtime-upgrade-tests.sh @@ -69,13 +69,16 @@ function create_raw_chain_spec() { } # Start a chain with generated chain spec -function start_old_joystream_node { - docker-compose -f ../../docker-compose.yml run -d -v ${DATA_PATH}:/spec --name joystream-node \ +function start_joystream_node { + docker-compose -f ../../docker-compose.yml run -d -v ${DATA_PATH}:/spec \ + -v ${DATA_PATH}/chain:/chain \ + --name joystream-node \ -p 9944:9944 -p 9933:9933 joystream-node \ --validator --unsafe-ws-external --unsafe-rpc-external \ --rpc-methods Unsafe --rpc-cors=all -l runtime \ --chain /spec/chain-spec-forked.json --pruning=archive --no-telemetry \ - --keystore-path /spec/keystore/auth-0 + --keystore-path /spec/keystore/auth-0 \ + --base-path /chain } ####################################### @@ -179,10 +182,8 @@ function main { # 4. copy chainspec to disk export_chainspec_file_to_disk echo >&2 "chainspec exported" - # 5. start node using new binary to test rpc endpoint code being different - # than runtime version to look for breaking decoding of types early. - export JOYSTREAM_NODE_TAG=${TARGET_RUNTIME} - CONTAINER_ID=$(start_old_joystream_node) + # 5. start node + CONTAINER_ID=$(start_joystream_node) echo >&2 "mainnet node starting" # Wait for chain and query node to get in sync @@ -196,6 +197,16 @@ function main { fi ./run-test-scenario.sh runtimeUpgrade + + # 7. start node using new binary + docker stop ${CONTAINER_ID} + docker rm ${CONTAINER_ID} + export JOYSTREAM_NODE_TAG=${TARGET_RUNTIME} + CONTAINER_ID=$(start_joystream_node) + echo >&2 "restarting node with new binary" + + sleep 90 + ./run-test-scenario.sh content-directory } From dbbf2bc5ba4b1aa947b5a56c2a18380119ee0c58 Mon Sep 17 00:00:00 2001 From: Mokhtar Naamani Date: Sun, 16 Apr 2023 01:59:01 +0400 Subject: [PATCH 64/87] runtime upgrade test: workaround failing indexer --- .../run-runtime-upgrade-tests.sh | 37 +++++++++++-------- 1 file changed, 22 insertions(+), 15 deletions(-) diff --git a/tests/network-tests/run-runtime-upgrade-tests.sh b/tests/network-tests/run-runtime-upgrade-tests.sh index 8ce7e4365d..3dda6ec294 100755 --- a/tests/network-tests/run-runtime-upgrade-tests.sh +++ b/tests/network-tests/run-runtime-upgrade-tests.sh @@ -71,14 +71,14 @@ function create_raw_chain_spec() { # Start a chain with generated chain spec function start_joystream_node { docker-compose -f ../../docker-compose.yml run -d -v ${DATA_PATH}:/spec \ - -v ${DATA_PATH}/chain:/chain \ --name joystream-node \ -p 9944:9944 -p 9933:9933 joystream-node \ --validator --unsafe-ws-external --unsafe-rpc-external \ --rpc-methods Unsafe --rpc-cors=all -l runtime \ - --chain /spec/chain-spec-forked.json --pruning=archive --no-telemetry \ + --chain /spec/chain-spec-forked.json --pruning=archive --no-telemetry --no-mdns \ + --no-hardware-benchmarks \ --keystore-path /spec/keystore/auth-0 \ - --base-path /chain + --base-path /data } ####################################### @@ -134,13 +134,15 @@ function fork_off_init() { # Arguments: # None ####################################### -function export_chainspec_file_to_disk() { +function init_chain_db() { # write the initial genesis state to db, in order to avoid waiting for an arbitrary amount of time + # when starting the node to startup. it can take a significant amount of time + # if the initial state is large. # exporting should give some essential tasks errors but they are harmless https://github.com/paritytech/substrate/issues/10583 echo >&2 "exporting state" docker-compose -f ../../docker-compose.yml run --rm \ -v ${DATA_PATH}:/spec joystream-node export-state \ - --chain /spec/chain-spec-raw.json \ + --chain /spec/chain-spec-forked.json \ --base-path /data --pruning archive >${DATA_PATH}/exported-state.json } @@ -157,9 +159,6 @@ function cleanup() { # entrypoint function main { - # Start a query-node - ../../query-node/start.sh - CONTAINER_ID="" export JOYSTREAM_NODE_TAG=${RUNTIME} if [ $TARGET_RUNTIME == $RUNTIME ]; then @@ -179,12 +178,15 @@ function main { # 3. set path to new runtime.wasm set_new_runtime_wasm_path echo >&2 "new wasm path set" - # 4. copy chainspec to disk - export_chainspec_file_to_disk - echo >&2 "chainspec exported" + # 4. early chain db init + init_chain_db + echo >&2 "chain db initialized" # 5. start node CONTAINER_ID=$(start_joystream_node) - echo >&2 "mainnet node starting" + echo >&2 "joystream node starting" + + # Start a query-node + ../../query-node/start.sh # Wait for chain and query node to get in sync sleep 90 @@ -196,16 +198,21 @@ function main { export SKIP_STORAGE_AND_DISTRIBUTION=true fi - ./run-test-scenario.sh runtimeUpgrade + # We allow this step to fail as the indexer currently has + # a problem dealing with the runtime upgrade block + ./run-test-scenario.sh runtimeUpgrade || : # 7. start node using new binary + docker logs ${CONTAINER_ID} --tail 200 docker stop ${CONTAINER_ID} docker rm ${CONTAINER_ID} export JOYSTREAM_NODE_TAG=${TARGET_RUNTIME} CONTAINER_ID=$(start_joystream_node) - echo >&2 "restarting node with new binary" + echo >&2 "restarting joystream node with new binary" - sleep 90 + # allow indexer to recover from runtime upgrade block before submitting + # new extrinsics.. + sleep 30 ./run-test-scenario.sh content-directory } From 923334246e4e83cfa4419ef6d1320e4136e3f104 Mon Sep 17 00:00:00 2001 From: Mokhtar Naamani Date: Mon, 17 Apr 2023 17:41:34 +0400 Subject: [PATCH 65/87] runtime-upgrade-tests: start test chain with new node --- .../run-runtime-upgrade-tests.sh | 30 ++++--------------- 1 file changed, 5 insertions(+), 25 deletions(-) diff --git a/tests/network-tests/run-runtime-upgrade-tests.sh b/tests/network-tests/run-runtime-upgrade-tests.sh index 3dda6ec294..405d3d6146 100755 --- a/tests/network-tests/run-runtime-upgrade-tests.sh +++ b/tests/network-tests/run-runtime-upgrade-tests.sh @@ -4,9 +4,6 @@ set -e SCRIPT_PATH="$(dirname "${BASH_SOURCE[0]}")" cd $SCRIPT_PATH -# Log only to stderr -# Only output from this script should be the container id of the node at the very end - # Location that will be mounted to /spec in containers # This is where the initial balances files and generated chainspec files will be located. DATA_PATH=$PWD/data @@ -146,21 +143,8 @@ function init_chain_db() { --base-path /data --pruning archive >${DATA_PATH}/exported-state.json } -# cleanup -function cleanup() { - docker logs ${CONTAINER_ID} --tail 100 - docker stop ${CONTAINER_ID} - docker rm ${CONTAINER_ID} - docker logs processor --tail 100 || : - docker logs indexer --tail 100 || : - docker-compose -f ../../docker-compose.yml down -v --remove-orphans - docker volume prune -f # sometimes volumes are still running -} - # entrypoint function main { - CONTAINER_ID="" - export JOYSTREAM_NODE_TAG=${RUNTIME} if [ $TARGET_RUNTIME == $RUNTIME ]; then echo >&2 "Same tag for runtime and target runtime aborting..." exit 1 @@ -178,6 +162,9 @@ function main { # 3. set path to new runtime.wasm set_new_runtime_wasm_path echo >&2 "new wasm path set" + + CONTAINER_ID="" + export JOYSTREAM_NODE_TAG=${TARGET_RUNTIME} # 4. early chain db init init_chain_db echo >&2 "chain db initialized" @@ -202,16 +189,9 @@ function main { # a problem dealing with the runtime upgrade block ./run-test-scenario.sh runtimeUpgrade || : - # 7. start node using new binary - docker logs ${CONTAINER_ID} --tail 200 - docker stop ${CONTAINER_ID} - docker rm ${CONTAINER_ID} - export JOYSTREAM_NODE_TAG=${TARGET_RUNTIME} - CONTAINER_ID=$(start_joystream_node) - echo >&2 "restarting joystream node with new binary" + # restart indexer + docker restart indexer - # allow indexer to recover from runtime upgrade block before submitting - # new extrinsics.. sleep 30 ./run-test-scenario.sh content-directory From d8d852c4e6ab182837845775d41ad63288161e8a Mon Sep 17 00:00:00 2001 From: Mokhtar Naamani Date: Wed, 26 Apr 2023 12:13:15 +0400 Subject: [PATCH 66/87] create-release workflow: use compressed .wasm file --- .github/workflows/create-release.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml index 555cd2151f..6a56e51921 100644 --- a/.github/workflows/create-release.yml +++ b/.github/workflows/create-release.yml @@ -65,12 +65,12 @@ jobs: docker run -d --entrypoint tail --name temp-container-joystream-node $IMAGE-amd64 -f /dev/null - RESULT=$(docker exec temp-container-joystream-node b2sum -l 256 runtime.compact.wasm | awk '{print $1}') + RESULT=$(docker exec temp-container-joystream-node b2sum -l 256 runtime.compact.compressed.wasm | awk '{print $1}') VERSION_AND_COMMIT=$(docker exec temp-container-joystream-node /joystream/node --version | awk '{print $2}' | cut -d- -f -2) echo "::set-output name=blob_hash::${RESULT}" echo "::set-output name=version_and_commit::${VERSION_AND_COMMIT}" - docker cp temp-container-joystream-node:/joystream/runtime.compact.wasm ./joystream_runtime_${{ github.event.inputs.tag }}.wasm + docker cp temp-container-joystream-node:/joystream/runtime.compact.compressed.wasm ./joystream_runtime_${{ github.event.inputs.tag }}.wasm docker cp temp-container-joystream-node:/joystream/node ./joystream-node tar -czvf joystream-node-$VERSION_AND_COMMIT-x86_64-linux-gnu.tar.gz joystream-node From c8bbdb2e3cf3093d74599950c2ed940ec071735e Mon Sep 17 00:00:00 2001 From: Mokhtar Naamani Date: Wed, 26 Apr 2023 19:31:28 +0400 Subject: [PATCH 67/87] add Staking and BagsList to list of skipped pallets in fork-off script --- utils/api-scripts/src/fork-off.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/utils/api-scripts/src/fork-off.ts b/utils/api-scripts/src/fork-off.ts index fdf6f5569c..76311b7192 100644 --- a/utils/api-scripts/src/fork-off.ts +++ b/utils/api-scripts/src/fork-off.ts @@ -26,6 +26,8 @@ const skippedModulesPrefix = [ 'FinalityTracker', 'Authorship', 'Sudo', + 'Staking', + 'BagsList', // Joystream specific 'Council', // empty council 'Referendum', From 17e15f5ede612e68d862350223b30ae143dfd933 Mon Sep 17 00:00:00 2001 From: Mokhtar Naamani Date: Wed, 26 Apr 2023 19:32:09 +0400 Subject: [PATCH 68/87] ansible install tools missing protobuf-compiler libprotobuf-dev --- devops/ansible/roles/common/tasks/install-tools.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/devops/ansible/roles/common/tasks/install-tools.yml b/devops/ansible/roles/common/tasks/install-tools.yml index 094b3a014f..98de93d652 100644 --- a/devops/ansible/roles/common/tasks/install-tools.yml +++ b/devops/ansible/roles/common/tasks/install-tools.yml @@ -31,6 +31,8 @@ - cmake - dpkg - lsb-release + - protobuf-compiler + - libprotobuf-dev state: latest - name: Add Docker GPG Key and repo From fda5c054561fecdd12575dc7bae5e0c3897fa527 Mon Sep 17 00:00:00 2001 From: Mokhtar Naamani Date: Mon, 1 May 2023 09:54:59 +0400 Subject: [PATCH 69/87] generated new weights on ref hardware --- runtime-modules/bounty/src/weights.rs | 220 +++--- runtime-modules/constitution/src/weights.rs | 14 +- runtime-modules/content/src/weights.rs | 690 +++++++++--------- runtime-modules/council/src/weights.rs | 88 +-- runtime-modules/forum/src/weights.rs | 342 ++++----- runtime-modules/membership/src/weights.rs | 142 ++-- runtime-modules/project-token/src/weights.rs | 50 +- .../proposals/codex/src/weights.rs | 306 ++++---- .../proposals/discussion/src/weights.rs | 36 +- .../proposals/engine/src/weights.rs | 86 +-- runtime-modules/referendum/src/weights.rs | 74 +- runtime-modules/storage/src/weights.rs | 204 +++--- runtime-modules/utility/src/weights.rs | 26 +- runtime-modules/working-group/src/weights.rs | 176 ++--- runtime/src/weights/block_weights.rs | 20 +- runtime/src/weights/extrinsic_weights.rs | 20 +- runtime/src/weights/frame_system.rs | 54 +- runtime/src/weights/pallet_bags_list.rs | 18 +- runtime/src/weights/pallet_balances.rs | 34 +- .../pallet_election_provider_multi_phase.rs | 80 +- runtime/src/weights/pallet_im_online.rs | 27 +- runtime/src/weights/pallet_multisig.rs | 82 +-- runtime/src/weights/pallet_session.rs | 14 +- runtime/src/weights/pallet_staking.rs | 248 ++++--- runtime/src/weights/pallet_timestamp.rs | 14 +- runtime/src/weights/pallet_vesting.rs | 118 +-- runtime/src/weights/rocksdb_weights.rs | 36 +- runtime/src/weights/substrate_utility.rs | 38 +- 28 files changed, 1629 insertions(+), 1628 deletions(-) diff --git a/runtime-modules/bounty/src/weights.rs b/runtime-modules/bounty/src/weights.rs index ffd8c55418..d2ebb51759 100644 --- a/runtime-modules/bounty/src/weights.rs +++ b/runtime-modules/bounty/src/weights.rs @@ -18,7 +18,7 @@ //! Autogenerated weights for bounty //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-03-15, STEPS: `2`, REPEAT: 2, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-04-27, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("prod-test"), DB CACHE: 1024 // Executed Command: @@ -28,8 +28,8 @@ // --pallet=bounty // --extrinsic=* // --chain=prod-test -// --steps=2 -// --repeat=2 +// --steps=50 +// --repeat=20 // --execution=wasm // --template=./scripts/../devops/joystream-pallet-weight-template.hbs // --output=./scripts/../runtime-modules/bounty/src/weights.rs @@ -95,15 +95,15 @@ impl WeightInfo for SubstrateWeight { /// The range of component `j` is `[1, 50]`. fn create_bounty_by_council(i: u32, j: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `395 + j * (168 ±0)` + // Measured: `463 + j * (166 ±0)` // Estimated: `3613 + j * (2600 ±0)` - // Minimum execution time: 89_000 nanoseconds. - Weight::from_ref_time(45_561_327) + // Minimum execution time: 188_421 nanoseconds. + Weight::from_ref_time(75_620_767) .saturating_add(Weight::from_proof_size(3613)) - // Standard Error: 136_643 - .saturating_add(Weight::from_ref_time(510_101).saturating_mul(i.into())) - // Standard Error: 276_076 - .saturating_add(Weight::from_ref_time(2_928_571).saturating_mul(j.into())) + // Standard Error: 7_948 + .saturating_add(Weight::from_ref_time(1_138_259).saturating_mul(i.into())) + // Standard Error: 16_092 + .saturating_add(Weight::from_ref_time(4_436_688).saturating_mul(j.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(j.into()))) .saturating_add(T::DbWeight::get().writes(4_u64)) @@ -121,15 +121,15 @@ impl WeightInfo for SubstrateWeight { /// The range of component `j` is `[1, 50]`. fn create_bounty_by_member(i: u32, j: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `462 + j * (168 ±0)` + // Measured: `501 + j * (168 ±0)` // Estimated: `8305 + j * (2600 ±0)` - // Minimum execution time: 93_000 nanoseconds. - Weight::from_ref_time(51_142_547) + // Minimum execution time: 193_826 nanoseconds. + Weight::from_ref_time(88_109_671) .saturating_add(Weight::from_proof_size(8305)) - // Standard Error: 91_189 - .saturating_add(Weight::from_ref_time(469_696).saturating_mul(i.into())) - // Standard Error: 184_239 - .saturating_add(Weight::from_ref_time(2_887_755).saturating_mul(j.into())) + // Standard Error: 8_400 + .saturating_add(Weight::from_ref_time(1_074_934).saturating_mul(i.into())) + // Standard Error: 17_008 + .saturating_add(Weight::from_ref_time(4_352_352).saturating_mul(j.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(j.into()))) .saturating_add(T::DbWeight::get().writes(4_u64)) @@ -147,8 +147,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `620` // Estimated: `8685` - // Minimum execution time: 41_000 nanoseconds. - Weight::from_ref_time(43_000_000) + // Minimum execution time: 67_627 nanoseconds. + Weight::from_ref_time(68_828_000) .saturating_add(Weight::from_proof_size(8685)) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -165,8 +165,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `620` // Estimated: `8685` - // Minimum execution time: 58_000 nanoseconds. - Weight::from_ref_time(58_000_000) + // Minimum execution time: 97_950 nanoseconds. + Weight::from_ref_time(99_171_000) .saturating_add(Weight::from_proof_size(8685)) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -183,8 +183,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `620` // Estimated: `8685` - // Minimum execution time: 38_000 nanoseconds. - Weight::from_ref_time(39_000_000) + // Minimum execution time: 67_557 nanoseconds. + Weight::from_ref_time(68_641_000) .saturating_add(Weight::from_proof_size(8685)) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -201,8 +201,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `620` // Estimated: `8685` - // Minimum execution time: 58_000 nanoseconds. - Weight::from_ref_time(58_000_000) + // Minimum execution time: 97_430 nanoseconds. + Weight::from_ref_time(98_920_000) .saturating_add(Weight::from_proof_size(8685)) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -215,8 +215,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `315` // Estimated: `8127` - // Minimum execution time: 22_000 nanoseconds. - Weight::from_ref_time(27_000_000) + // Minimum execution time: 39_082 nanoseconds. + Weight::from_ref_time(39_964_000) .saturating_add(Weight::from_proof_size(8127)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -229,8 +229,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `315` // Estimated: `8127` - // Minimum execution time: 27_000 nanoseconds. - Weight::from_ref_time(28_000_000) + // Minimum execution time: 45_856 nanoseconds. + Weight::from_ref_time(46_963_000) .saturating_add(Weight::from_proof_size(8127)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -243,8 +243,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `306` // Estimated: `8127` - // Minimum execution time: 21_000 nanoseconds. - Weight::from_ref_time(22_000_000) + // Minimum execution time: 39_197 nanoseconds. + Weight::from_ref_time(39_814_000) .saturating_add(Weight::from_proof_size(8127)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -261,8 +261,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `800` // Estimated: `13377` - // Minimum execution time: 48_000 nanoseconds. - Weight::from_ref_time(49_000_000) + // Minimum execution time: 82_104 nanoseconds. + Weight::from_ref_time(83_047_000) .saturating_add(Weight::from_proof_size(13377)) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) @@ -279,8 +279,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `616` // Estimated: `8685` - // Minimum execution time: 41_000 nanoseconds. - Weight::from_ref_time(41_000_000) + // Minimum execution time: 70_281 nanoseconds. + Weight::from_ref_time(70_827_000) .saturating_add(Weight::from_proof_size(8685)) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) @@ -297,8 +297,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `907` // Estimated: `13377` - // Minimum execution time: 48_000 nanoseconds. - Weight::from_ref_time(51_000_000) + // Minimum execution time: 78_804 nanoseconds. + Weight::from_ref_time(79_844_000) .saturating_add(Weight::from_proof_size(13377)) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -315,8 +315,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `715` // Estimated: `8685` - // Minimum execution time: 40_000 nanoseconds. - Weight::from_ref_time(40_000_000) + // Minimum execution time: 68_534 nanoseconds. + Weight::from_ref_time(69_548_000) .saturating_add(Weight::from_proof_size(8685)) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -339,15 +339,15 @@ impl WeightInfo for SubstrateWeight { /// The range of component `j` is `[1, 50]`. fn announce_work_entry(i: u32, j: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `806 + j * (41 ±0)` + // Measured: `1067 + j * (36 ±0)` // Estimated: `15023` - // Minimum execution time: 62_000 nanoseconds. - Weight::from_ref_time(46_633_168) + // Minimum execution time: 104_412 nanoseconds. + Weight::from_ref_time(84_559_006) .saturating_add(Weight::from_proof_size(15023)) - // Standard Error: 90_815 - .saturating_add(Weight::from_ref_time(550_505).saturating_mul(i.into())) - // Standard Error: 183_484 - .saturating_add(Weight::from_ref_time(316_326).saturating_mul(j.into())) + // Standard Error: 3_769 + .saturating_add(Weight::from_ref_time(1_284_525).saturating_mul(i.into())) + // Standard Error: 7_631 + .saturating_add(Weight::from_ref_time(368_774).saturating_mul(j.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(5_u64)) } @@ -362,11 +362,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `696` // Estimated: `8183` - // Minimum execution time: 24_000 nanoseconds. - Weight::from_ref_time(24_000_000) + // Minimum execution time: 40_341 nanoseconds. + Weight::from_ref_time(42_355_748) .saturating_add(Weight::from_proof_size(8183)) - // Standard Error: 80_000 - .saturating_add(Weight::from_ref_time(550_000).saturating_mul(i.into())) + // Standard Error: 2_741 + .saturating_add(Weight::from_ref_time(1_236_917).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -386,21 +386,17 @@ impl WeightInfo for SubstrateWeight { /// The range of component `k` is `[0, 100]`. /// The range of component `w` is `[1, 20]`. /// The range of component `r` is `[1, 20]`. - fn submit_oracle_judgment_by_council(j: u32, k: u32, w: u32, r: u32, ) -> Weight { + fn submit_oracle_judgment_by_council(_j: u32, _k: u32, w: u32, r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `979 + w * (576 ±0) + r * (576 ±0)` + // Measured: `989 + w * (576 ±0) + r * (576 ±0)` // Estimated: `6129 + w * (11545 ±0) + r * (11545 ±0)` - // Minimum execution time: 962_000 nanoseconds. - Weight::from_ref_time(7_355_263) + // Minimum execution time: 1_551_412 nanoseconds. + Weight::from_ref_time(1_570_319_000) .saturating_add(Weight::from_proof_size(6129)) - // Standard Error: 141_557 - .saturating_add(Weight::from_ref_time(562_500).saturating_mul(j.into())) - // Standard Error: 141_557 - .saturating_add(Weight::from_ref_time(617_500).saturating_mul(k.into())) - // Standard Error: 745_037 - .saturating_add(Weight::from_ref_time(39_776_315).saturating_mul(w.into())) - // Standard Error: 745_037 - .saturating_add(Weight::from_ref_time(51_618_421).saturating_mul(r.into())) + // Standard Error: 451_018 + .saturating_add(Weight::from_ref_time(38_106_635).saturating_mul(w.into())) + // Standard Error: 451_018 + .saturating_add(Weight::from_ref_time(54_928_319).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().reads((4_u64).saturating_mul(w.into()))) .saturating_add(T::DbWeight::get().reads((4_u64).saturating_mul(r.into()))) @@ -426,21 +422,17 @@ impl WeightInfo for SubstrateWeight { /// The range of component `k` is `[0, 100]`. /// The range of component `w` is `[1, 20]`. /// The range of component `r` is `[1, 19]`. - fn submit_oracle_judgment_by_member(j: u32, k: u32, w: u32, r: u32, ) -> Weight { + fn submit_oracle_judgment_by_member(_j: u32, _k: u32, w: u32, r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1132 + w * (578 ±0) + r * (579 ±0)` + // Measured: `1117 + w * (579 ±0) + r * (579 ±0)` // Estimated: `8729 + w * (11545 ±0) + r * (11545 ±0)` - // Minimum execution time: 964_000 nanoseconds. - Weight::from_ref_time(3_223_684) + // Minimum execution time: 1_560_712 nanoseconds. + Weight::from_ref_time(1_571_970_000) .saturating_add(Weight::from_proof_size(8729)) - // Standard Error: 104_103 - .saturating_add(Weight::from_ref_time(520_000).saturating_mul(j.into())) - // Standard Error: 104_103 - .saturating_add(Weight::from_ref_time(675_000).saturating_mul(k.into())) - // Standard Error: 547_912 - .saturating_add(Weight::from_ref_time(40_026_315).saturating_mul(w.into())) - // Standard Error: 578_351 - .saturating_add(Weight::from_ref_time(51_750_000).saturating_mul(r.into())) + // Standard Error: 449_548 + .saturating_add(Weight::from_ref_time(38_446_416).saturating_mul(w.into())) + // Standard Error: 473_583 + .saturating_add(Weight::from_ref_time(53_920_276).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().reads((4_u64).saturating_mul(w.into()))) .saturating_add(T::DbWeight::get().reads((4_u64).saturating_mul(r.into()))) @@ -456,8 +448,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `216` // Estimated: `3015` - // Minimum execution time: 17_000 nanoseconds. - Weight::from_ref_time(17_000_000) + // Minimum execution time: 29_582 nanoseconds. + Weight::from_ref_time(30_303_000) .saturating_add(Weight::from_proof_size(3015)) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -470,8 +462,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `493` // Estimated: `5615` - // Minimum execution time: 20_000 nanoseconds. - Weight::from_ref_time(20_000_000) + // Minimum execution time: 36_182 nanoseconds. + Weight::from_ref_time(36_815_000) .saturating_add(Weight::from_proof_size(5615)) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -484,8 +476,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `538` // Estimated: `5615` - // Minimum execution time: 21_000 nanoseconds. - Weight::from_ref_time(21_000_000) + // Minimum execution time: 37_485 nanoseconds. + Weight::from_ref_time(38_548_000) .saturating_add(Weight::from_proof_size(5615)) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -498,8 +490,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `669` // Estimated: `8215` - // Minimum execution time: 23_000 nanoseconds. - Weight::from_ref_time(23_000_000) + // Minimum execution time: 41_300 nanoseconds. + Weight::from_ref_time(42_374_000) .saturating_add(Weight::from_proof_size(8215)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -512,8 +504,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `501` // Estimated: `5615` - // Minimum execution time: 20_000 nanoseconds. - Weight::from_ref_time(20_000_000) + // Minimum execution time: 35_897 nanoseconds. + Weight::from_ref_time(36_786_000) .saturating_add(Weight::from_proof_size(5615)) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -526,8 +518,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `622` // Estimated: `5615` - // Minimum execution time: 21_000 nanoseconds. - Weight::from_ref_time(22_000_000) + // Minimum execution time: 38_443 nanoseconds. + Weight::from_ref_time(38_978_000) .saturating_add(Weight::from_proof_size(5615)) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -546,8 +538,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1022` // Estimated: `14560` - // Minimum execution time: 37_000 nanoseconds. - Weight::from_ref_time(38_000_000) + // Minimum execution time: 65_585 nanoseconds. + Weight::from_ref_time(66_316_000) .saturating_add(Weight::from_proof_size(14560)) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) @@ -564,8 +556,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `738` // Estimated: `8685` - // Minimum execution time: 38_000 nanoseconds. - Weight::from_ref_time(38_000_000) + // Minimum execution time: 67_751 nanoseconds. + Weight::from_ref_time(68_569_000) .saturating_add(Weight::from_proof_size(8685)) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -582,8 +574,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1035` // Estimated: `13377` - // Minimum execution time: 46_000 nanoseconds. - Weight::from_ref_time(51_000_000) + // Minimum execution time: 77_515 nanoseconds. + Weight::from_ref_time(79_395_000) .saturating_add(Weight::from_proof_size(13377)) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -600,8 +592,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `611` // Estimated: `8685` - // Minimum execution time: 60_000 nanoseconds. - Weight::from_ref_time(60_000_000) + // Minimum execution time: 99_735 nanoseconds. + Weight::from_ref_time(100_642_000) .saturating_add(Weight::from_proof_size(8685)) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -620,8 +612,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1076` // Estimated: `13888` - // Minimum execution time: 69_000 nanoseconds. - Weight::from_ref_time(70_000_000) + // Minimum execution time: 117_474 nanoseconds. + Weight::from_ref_time(121_142_000) .saturating_add(Weight::from_proof_size(13888)) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) @@ -635,11 +627,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `555` // Estimated: `5168` - // Minimum execution time: 17_000 nanoseconds. - Weight::from_ref_time(17_000_000) + // Minimum execution time: 30_959 nanoseconds. + Weight::from_ref_time(31_654_337) .saturating_add(Weight::from_proof_size(5168)) - // Standard Error: 75_000 - .saturating_add(Weight::from_ref_time(565_000).saturating_mul(i.into())) + // Standard Error: 2_064 + .saturating_add(Weight::from_ref_time(1_243_665).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) } // Storage: Membership MembershipById (r:1 w:0) @@ -651,11 +643,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `454` // Estimated: `5156` - // Minimum execution time: 17_000 nanoseconds. - Weight::from_ref_time(17_500_000) + // Minimum execution time: 30_162 nanoseconds. + Weight::from_ref_time(29_958_534) .saturating_add(Weight::from_proof_size(5156)) - // Standard Error: 90_138 - .saturating_add(Weight::from_ref_time(505_000).saturating_mul(i.into())) + // Standard Error: 12_068 + .saturating_add(Weight::from_ref_time(1_113_401).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) } // Storage: Bounty Bounties (r:1 w:0) @@ -665,11 +657,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `236` // Estimated: `3015` - // Minimum execution time: 13_000 nanoseconds. - Weight::from_ref_time(13_500_000) + // Minimum execution time: 22_911 nanoseconds. + Weight::from_ref_time(23_604_997) .saturating_add(Weight::from_proof_size(3015)) - // Standard Error: 90_138 - .saturating_add(Weight::from_ref_time(525_000).saturating_mul(i.into())) + // Standard Error: 2_365 + .saturating_add(Weight::from_ref_time(1_081_347).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) } // Storage: Bounty Bounties (r:1 w:0) @@ -679,11 +671,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `236` // Estimated: `3015` - // Minimum execution time: 13_000 nanoseconds. - Weight::from_ref_time(13_000_000) + // Minimum execution time: 22_842 nanoseconds. + Weight::from_ref_time(23_387_934) .saturating_add(Weight::from_proof_size(3015)) - // Standard Error: 85_000 - .saturating_add(Weight::from_ref_time(535_000).saturating_mul(i.into())) + // Standard Error: 1_934 + .saturating_add(Weight::from_ref_time(1_087_562).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) } } @@ -735,10 +727,10 @@ impl WeightInfo for () { fn submit_work(i: u32, ) -> Weight { Weight::from_ref_time(0) } - fn submit_oracle_judgment_by_council(j: u32, k: u32, w: u32, r: u32, ) -> Weight { + fn submit_oracle_judgment_by_council(_j: u32, _k: u32, w: u32, r: u32, ) -> Weight { Weight::from_ref_time(0) } - fn submit_oracle_judgment_by_member(j: u32, k: u32, w: u32, r: u32, ) -> Weight { + fn submit_oracle_judgment_by_member(_j: u32, _k: u32, w: u32, r: u32, ) -> Weight { Weight::from_ref_time(0) } fn switch_oracle_to_council_by_council_successful() -> Weight { diff --git a/runtime-modules/constitution/src/weights.rs b/runtime-modules/constitution/src/weights.rs index c818de0fe9..e831485f91 100644 --- a/runtime-modules/constitution/src/weights.rs +++ b/runtime-modules/constitution/src/weights.rs @@ -18,7 +18,7 @@ //! Autogenerated weights for pallet_constitution //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-03-15, STEPS: `2`, REPEAT: 2, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-04-27, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("prod-test"), DB CACHE: 1024 // Executed Command: @@ -28,8 +28,8 @@ // --pallet=pallet_constitution // --extrinsic=* // --chain=prod-test -// --steps=2 -// --repeat=2 +// --steps=50 +// --repeat=20 // --execution=wasm // --template=./scripts/../devops/joystream-pallet-weight-template.hbs // --output=./scripts/../runtime-modules/constitution/src/weights.rs @@ -57,11 +57,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 8_000 nanoseconds. - Weight::from_ref_time(8_498_429) + // Minimum execution time: 15_025 nanoseconds. + Weight::from_ref_time(17_014_984) .saturating_add(Weight::from_proof_size(0)) - // Standard Error: 80 - .saturating_add(Weight::from_ref_time(1_570).saturating_mul(i.into())) + // Standard Error: 9 + .saturating_add(Weight::from_ref_time(2_488).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().writes(1_u64)) } } diff --git a/runtime-modules/content/src/weights.rs b/runtime-modules/content/src/weights.rs index 37f9700cd2..3a417d5b7b 100644 --- a/runtime-modules/content/src/weights.rs +++ b/runtime-modules/content/src/weights.rs @@ -18,7 +18,7 @@ //! Autogenerated weights for content //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-03-15, STEPS: `2`, REPEAT: 2, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-04-27, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("prod-test"), DB CACHE: 1024 // Executed Command: @@ -28,8 +28,8 @@ // --pallet=content // --extrinsic=* // --chain=prod-test -// --steps=2 -// --repeat=2 +// --steps=50 +// --repeat=20 // --execution=wasm // --template=./scripts/../devops/joystream-pallet-weight-template.hbs // --output=./scripts/../runtime-modules/content/src/weights.rs @@ -162,27 +162,27 @@ impl WeightInfo for SubstrateWeight { // Storage: Content ChannelById (r:0 w:1) // Proof: Content ChannelById (max_values: None, max_size: Some(889), added: 3364, mode: MaxEncodedLen) /// The range of component `a` is `[1, 10]`. - /// The range of component `b` is `[3, 13]`. + /// The range of component `b` is `[1, 13]`. /// The range of component `c` is `[1, 51]`. /// The range of component `d` is `[1, 10]`. /// The range of component `e` is `[1, 100]`. fn create_channel(a: u32, b: u32, c: u32, d: u32, e: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `2462 + a * (185 ±0) + b * (104 ±0) + c * (40 ±0)` - // Estimated: `26685 + c * (2855 ±0) + a * (2600 ±0) + b * (2581 ±0)` - // Minimum execution time: 450_000 nanoseconds. - Weight::from_ref_time(171_694_915) + // Measured: `2455 + a * (174 ±0) + b * (104 ±0) + c * (40 ±0)` + // Estimated: `26685 + b * (2581 ±0) + c * (2855 ±0) + a * (2600 ±0)` + // Minimum execution time: 701_845 nanoseconds. + Weight::from_ref_time(249_105_407) .saturating_add(Weight::from_proof_size(26685)) - // Standard Error: 979_137 - .saturating_add(Weight::from_ref_time(5_851_851).saturating_mul(a.into())) - // Standard Error: 881_223 - .saturating_add(Weight::from_ref_time(8_816_666).saturating_mul(b.into())) - // Standard Error: 176_244 - .saturating_add(Weight::from_ref_time(9_013_333).saturating_mul(c.into())) - // Standard Error: 979_137 - .saturating_add(Weight::from_ref_time(5_851_851).saturating_mul(d.into())) - // Standard Error: 89_012 - .saturating_add(Weight::from_ref_time(471_380).saturating_mul(e.into())) + // Standard Error: 130_589 + .saturating_add(Weight::from_ref_time(7_261_295).saturating_mul(a.into())) + // Standard Error: 98_985 + .saturating_add(Weight::from_ref_time(13_859_781).saturating_mul(b.into())) + // Standard Error: 24_969 + .saturating_add(Weight::from_ref_time(13_165_018).saturating_mul(c.into())) + // Standard Error: 130_589 + .saturating_add(Weight::from_ref_time(8_480_098).saturating_mul(d.into())) + // Standard Error: 12_650 + .saturating_add(Weight::from_ref_time(1_143_000).saturating_mul(e.into())) .saturating_add(T::DbWeight::get().reads(15_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(a.into()))) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(b.into()))) @@ -191,9 +191,9 @@ impl WeightInfo for SubstrateWeight { .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(b.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(c.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(d.into()))) + .saturating_add(Weight::from_proof_size(2581).saturating_mul(b.into())) .saturating_add(Weight::from_proof_size(2855).saturating_mul(c.into())) .saturating_add(Weight::from_proof_size(2600).saturating_mul(a.into())) - .saturating_add(Weight::from_proof_size(2581).saturating_mul(b.into())) } // Storage: Content ChannelById (r:1 w:1) // Proof: Content ChannelById (max_values: None, max_size: Some(889), added: 3364, mode: MaxEncodedLen) @@ -225,24 +225,24 @@ impl WeightInfo for SubstrateWeight { /// The range of component `b` is `[1, 10]`. /// The range of component `c` is `[1, 10]`. /// The range of component `d` is `[1, 100]`. - /// The range of component `e` is `[3, 13]`. + /// The range of component `e` is `[1, 13]`. fn channel_update_with_assets(a: u32, b: u32, c: u32, d: u32, e: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `4888 + a * (181 ±0) + c * (383 ±0) + e * (112 ±0)` - // Estimated: `22820 + c * (5233 ±0) + e * (2581 ±0) + a * (2600 ±0)` - // Minimum execution time: 556_000 nanoseconds. - Weight::from_ref_time(254_062_794) + // Measured: `4820 + a * (181 ±0) + c * (390 ±0) + e * (112 ±0)` + // Estimated: `22820 + c * (5233 ±0) + a * (2600 ±0) + e * (2581 ±0)` + // Minimum execution time: 812_771 nanoseconds. + Weight::from_ref_time(353_029_844) .saturating_add(Weight::from_proof_size(22820)) - // Standard Error: 753_228 - .saturating_add(Weight::from_ref_time(7_759_259).saturating_mul(a.into())) - // Standard Error: 753_228 - .saturating_add(Weight::from_ref_time(6_314_814).saturating_mul(b.into())) - // Standard Error: 753_228 - .saturating_add(Weight::from_ref_time(20_925_925).saturating_mul(c.into())) - // Standard Error: 68_475 - .saturating_add(Weight::from_ref_time(553_872).saturating_mul(d.into())) - // Standard Error: 677_905 - .saturating_add(Weight::from_ref_time(7_183_333).saturating_mul(e.into())) + // Standard Error: 106_344 + .saturating_add(Weight::from_ref_time(7_254_507).saturating_mul(a.into())) + // Standard Error: 106_344 + .saturating_add(Weight::from_ref_time(10_586_508).saturating_mul(b.into())) + // Standard Error: 106_344 + .saturating_add(Weight::from_ref_time(31_814_927).saturating_mul(c.into())) + // Standard Error: 10_300 + .saturating_add(Weight::from_ref_time(1_226_596).saturating_mul(d.into())) + // Standard Error: 80_603 + .saturating_add(Weight::from_ref_time(11_009_627).saturating_mul(e.into())) .saturating_add(T::DbWeight::get().reads(11_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(a.into()))) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(c.into()))) @@ -252,8 +252,8 @@ impl WeightInfo for SubstrateWeight { .saturating_add(T::DbWeight::get().writes((2_u64).saturating_mul(c.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(e.into()))) .saturating_add(Weight::from_proof_size(5233).saturating_mul(c.into())) - .saturating_add(Weight::from_proof_size(2581).saturating_mul(e.into())) .saturating_add(Weight::from_proof_size(2600).saturating_mul(a.into())) + .saturating_add(Weight::from_proof_size(2581).saturating_mul(e.into())) } // Storage: Content ChannelById (r:1 w:1) // Proof: Content ChannelById (max_values: None, max_size: Some(889), added: 3364, mode: MaxEncodedLen) @@ -267,15 +267,15 @@ impl WeightInfo for SubstrateWeight { /// The range of component `b` is `[1, 100]`. fn channel_update_without_assets(a: u32, b: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `3441 + a * (181 ±0)` + // Measured: `3436 + a * (181 ±0)` // Estimated: `9616 + a * (2600 ±0)` - // Minimum execution time: 209_000 nanoseconds. - Weight::from_ref_time(160_020_202) + // Minimum execution time: 277_615 nanoseconds. + Weight::from_ref_time(203_377_691) .saturating_add(Weight::from_proof_size(9616)) - // Standard Error: 655_775 - .saturating_add(Weight::from_ref_time(7_000_000).saturating_mul(a.into())) - // Standard Error: 59_615 - .saturating_add(Weight::from_ref_time(479_797).saturating_mul(b.into())) + // Standard Error: 45_587 + .saturating_add(Weight::from_ref_time(7_618_936).saturating_mul(a.into())) + // Standard Error: 4_396 + .saturating_add(Weight::from_ref_time(1_121_997).saturating_mul(b.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(a.into()))) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -298,21 +298,21 @@ impl WeightInfo for SubstrateWeight { // Storage: System Account (r:13 w:13) // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) /// The range of component `a` is `[1, 10]`. - /// The range of component `b` is `[3, 13]`. + /// The range of component `b` is `[1, 13]`. /// The range of component `c` is `[1, 51]`. fn delete_channel(a: u32, b: u32, c: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `4282 + a * (400 ±0) + b * (112 ±0) + c * (56 ±0)` + // Measured: `4290 + a * (408 ±0) + b * (112 ±0) + c * (56 ±0)` // Estimated: `23494 + a * (5233 ±0) + c * (2855 ±0) + b * (2581 ±0)` - // Minimum execution time: 511_000 nanoseconds. - Weight::from_ref_time(208_402_222) + // Minimum execution time: 741_443 nanoseconds. + Weight::from_ref_time(289_902_955) .saturating_add(Weight::from_proof_size(23494)) - // Standard Error: 700_253 - .saturating_add(Weight::from_ref_time(21_527_777).saturating_mul(a.into())) - // Standard Error: 630_228 - .saturating_add(Weight::from_ref_time(6_425_000).saturating_mul(b.into())) - // Standard Error: 126_045 - .saturating_add(Weight::from_ref_time(6_295_000).saturating_mul(c.into())) + // Standard Error: 119_200 + .saturating_add(Weight::from_ref_time(31_509_314).saturating_mul(a.into())) + // Standard Error: 90_239 + .saturating_add(Weight::from_ref_time(12_043_158).saturating_mul(b.into())) + // Standard Error: 22_746 + .saturating_add(Weight::from_ref_time(8_934_800).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(a.into()))) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(b.into()))) @@ -335,8 +335,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `2064` // Estimated: `6517` - // Minimum execution time: 88_000 nanoseconds. - Weight::from_ref_time(89_000_000) + // Minimum execution time: 115_100 nanoseconds. + Weight::from_ref_time(116_628_000) .saturating_add(Weight::from_proof_size(6517)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -352,11 +352,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `3129` // Estimated: `9616` - // Minimum execution time: 170_000 nanoseconds. - Weight::from_ref_time(170_994_949) + // Minimum execution time: 206_867 nanoseconds. + Weight::from_ref_time(208_256_287) .saturating_add(Weight::from_proof_size(9616)) - // Standard Error: 117_145 - .saturating_add(Weight::from_ref_time(505_050).saturating_mul(a.into())) + // Standard Error: 6_710 + .saturating_add(Weight::from_ref_time(1_113_825).saturating_mul(a.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -379,21 +379,21 @@ impl WeightInfo for SubstrateWeight { // Storage: System Account (r:11 w:11) // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) /// The range of component `a` is `[1, 10]`. - /// The range of component `b` is `[3, 13]`. + /// The range of component `b` is `[1, 13]`. /// The range of component `c` is `[1, 100]`. fn delete_channel_assets_as_moderator(a: u32, b: u32, c: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `4668 + a * (400 ±0) + b * (112 ±0)` + // Measured: `4678 + a * (408 ±0) + b * (112 ±0)` // Estimated: `16680 + a * (5233 ±0) + b * (2581 ±0)` - // Minimum execution time: 378_000 nanoseconds. - Weight::from_ref_time(215_814_141) + // Minimum execution time: 577_791 nanoseconds. + Weight::from_ref_time(277_456_944) .saturating_add(Weight::from_proof_size(16680)) - // Standard Error: 1_064_653 - .saturating_add(Weight::from_ref_time(20_500_000).saturating_mul(a.into())) - // Standard Error: 958_188 - .saturating_add(Weight::from_ref_time(7_200_000).saturating_mul(b.into())) - // Standard Error: 96_786 - .saturating_add(Weight::from_ref_time(585_858).saturating_mul(c.into())) + // Standard Error: 96_024 + .saturating_add(Weight::from_ref_time(31_571_916).saturating_mul(a.into())) + // Standard Error: 72_696 + .saturating_add(Weight::from_ref_time(11_393_019).saturating_mul(b.into())) + // Standard Error: 9_278 + .saturating_add(Weight::from_ref_time(1_326_464).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(a.into()))) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(b.into()))) @@ -420,24 +420,24 @@ impl WeightInfo for SubstrateWeight { // Storage: System Account (r:12 w:12) // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) /// The range of component `a` is `[1, 10]`. - /// The range of component `b` is `[3, 13]`. + /// The range of component `b` is `[1, 13]`. /// The range of component `c` is `[1, 51]`. /// The range of component `d` is `[1, 100]`. fn delete_channel_as_moderator(a: u32, b: u32, c: u32, d: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `4010 + a * (400 ±0) + b * (112 ±0) + c * (56 ±0)` + // Measured: `4018 + a * (408 ±0) + b * (112 ±0) + c * (56 ±0)` // Estimated: `20891 + b * (2581 ±0) + a * (5233 ±0) + c * (2855 ±0)` - // Minimum execution time: 547_000 nanoseconds. - Weight::from_ref_time(191_668_888) + // Minimum execution time: 843_158 nanoseconds. + Weight::from_ref_time(285_688_114) .saturating_add(Weight::from_proof_size(20891)) - // Standard Error: 1_264_989 - .saturating_add(Weight::from_ref_time(21_083_333).saturating_mul(a.into())) - // Standard Error: 1_138_490 - .saturating_add(Weight::from_ref_time(7_375_000).saturating_mul(b.into())) - // Standard Error: 227_698 - .saturating_add(Weight::from_ref_time(6_345_000).saturating_mul(c.into())) - // Standard Error: 114_999 - .saturating_add(Weight::from_ref_time(527_777).saturating_mul(d.into())) + // Standard Error: 130_063 + .saturating_add(Weight::from_ref_time(31_718_704).saturating_mul(a.into())) + // Standard Error: 98_537 + .saturating_add(Weight::from_ref_time(11_263_461).saturating_mul(b.into())) + // Standard Error: 24_849 + .saturating_add(Weight::from_ref_time(8_828_935).saturating_mul(c.into())) + // Standard Error: 12_586 + .saturating_add(Weight::from_ref_time(1_130_649).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(a.into()))) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(b.into()))) @@ -461,11 +461,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `3135` // Estimated: `9616` - // Minimum execution time: 132_000 nanoseconds. - Weight::from_ref_time(132_434_343) + // Minimum execution time: 170_596 nanoseconds. + Weight::from_ref_time(168_655_319) .saturating_add(Weight::from_proof_size(9616)) - // Standard Error: 91_468 - .saturating_add(Weight::from_ref_time(565_656).saturating_mul(a.into())) + // Standard Error: 6_044 + .saturating_add(Weight::from_ref_time(1_300_300).saturating_mul(a.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) } // Storage: Content VideoById (r:1 w:1) @@ -489,21 +489,21 @@ impl WeightInfo for SubstrateWeight { // Storage: System Account (r:21 w:21) // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) /// The range of component `a` is `[1, 20]`. - /// The range of component `b` is `[3, 13]`. + /// The range of component `b` is `[1, 13]`. /// The range of component `c` is `[1, 100]`. fn delete_video_assets_as_moderator(a: u32, b: u32, c: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `5212 + a * (386 ±0) + b * (112 ±0)` + // Measured: `5727 + a * (379 ±0) + b * (112 ±0)` // Estimated: `19668 + b * (2581 ±0) + a * (5233 ±0)` - // Minimum execution time: 349_000 nanoseconds. - Weight::from_ref_time(172_121_889) + // Minimum execution time: 551_206 nanoseconds. + Weight::from_ref_time(263_379_387) .saturating_add(Weight::from_proof_size(19668)) - // Standard Error: 578_423 - .saturating_add(Weight::from_ref_time(21_039_473).saturating_mul(a.into())) - // Standard Error: 1_099_005 - .saturating_add(Weight::from_ref_time(8_075_000).saturating_mul(b.into())) - // Standard Error: 111_010 - .saturating_add(Weight::from_ref_time(613_636).saturating_mul(c.into())) + // Standard Error: 76_829 + .saturating_add(Weight::from_ref_time(31_359_899).saturating_mul(a.into())) + // Standard Error: 118_935 + .saturating_add(Weight::from_ref_time(11_430_305).saturating_mul(b.into())) + // Standard Error: 15_181 + .saturating_add(Weight::from_ref_time(1_288_325).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(a.into()))) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(b.into()))) @@ -534,21 +534,21 @@ impl WeightInfo for SubstrateWeight { // Storage: System Account (r:22 w:22) // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) /// The range of component `a` is `[1, 20]`. - /// The range of component `b` is `[3, 13]`. + /// The range of component `b` is `[1, 13]`. /// The range of component `c` is `[1, 100]`. fn delete_video_as_moderator_with_assets(a: u32, b: u32, c: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `4782 + a * (390 ±0) + b * (112 ±0)` + // Measured: `5031 + a * (386 ±0) + b * (112 ±0)` // Estimated: `22271 + a * (5233 ±0) + b * (2581 ±0)` - // Minimum execution time: 365_000 nanoseconds. - Weight::from_ref_time(203_444_670) + // Minimum execution time: 562_709 nanoseconds. + Weight::from_ref_time(264_351_495) .saturating_add(Weight::from_proof_size(22271)) - // Standard Error: 463_990 - .saturating_add(Weight::from_ref_time(20_513_157).saturating_mul(a.into())) - // Standard Error: 881_582 - .saturating_add(Weight::from_ref_time(8_025_000).saturating_mul(b.into())) - // Standard Error: 89_048 - .saturating_add(Weight::from_ref_time(467_171).saturating_mul(c.into())) + // Standard Error: 70_781 + .saturating_add(Weight::from_ref_time(32_393_362).saturating_mul(a.into())) + // Standard Error: 109_572 + .saturating_add(Weight::from_ref_time(12_352_882).saturating_mul(b.into())) + // Standard Error: 13_986 + .saturating_add(Weight::from_ref_time(1_091_527).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(9_u64)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(a.into()))) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(b.into()))) @@ -573,11 +573,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `3099` // Estimated: `15207` - // Minimum execution time: 160_000 nanoseconds. - Weight::from_ref_time(160_000_000) + // Minimum execution time: 212_126 nanoseconds. + Weight::from_ref_time(212_897_972) .saturating_add(Weight::from_proof_size(15207)) - // Standard Error: 80_965 - .saturating_add(Weight::from_ref_time(500_000).saturating_mul(a.into())) + // Standard Error: 5_728 + .saturating_add(Weight::from_ref_time(1_090_128).saturating_mul(a.into())) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -594,11 +594,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `3087` // Estimated: `12604` - // Minimum execution time: 128_000 nanoseconds. - Weight::from_ref_time(127_449_494) + // Minimum execution time: 173_011 nanoseconds. + Weight::from_ref_time(170_075_230) .saturating_add(Weight::from_proof_size(12604)) - // Standard Error: 75_757 - .saturating_add(Weight::from_ref_time(550_505).saturating_mul(a.into())) + // Standard Error: 4_954 + .saturating_add(Weight::from_ref_time(1_260_564).saturating_mul(a.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) } // Storage: Instance3WorkingGroup CurrentLead (r:1 w:0) @@ -614,11 +614,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `924` // Estimated: `3656` - // Minimum execution time: 23_000 nanoseconds. - Weight::from_ref_time(24_000_000) + // Minimum execution time: 40_428 nanoseconds. + Weight::from_ref_time(45_633_412) .saturating_add(Weight::from_proof_size(3656)) - // Standard Error: 40_000 - .saturating_add(Weight::from_ref_time(2_000_000).saturating_mul(a.into())) + // Standard Error: 7_146 + .saturating_add(Weight::from_ref_time(1_982_340).saturating_mul(a.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -633,11 +633,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `2178` // Estimated: `6755` - // Minimum execution time: 67_000 nanoseconds. - Weight::from_ref_time(67_500_000) + // Minimum execution time: 91_627 nanoseconds. + Weight::from_ref_time(97_421_837) .saturating_add(Weight::from_proof_size(6755)) - // Standard Error: 121_655 - .saturating_add(Weight::from_ref_time(2_620_000).saturating_mul(a.into())) + // Standard Error: 9_948 + .saturating_add(Weight::from_ref_time(2_115_931).saturating_mul(a.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -651,8 +651,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `2178` // Estimated: `6755` - // Minimum execution time: 78_000 nanoseconds. - Weight::from_ref_time(82_000_000) + // Minimum execution time: 96_163 nanoseconds. + Weight::from_ref_time(96_963_000) .saturating_add(Weight::from_proof_size(6755)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -667,8 +667,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `2309` // Estimated: `9405` - // Minimum execution time: 118_000 nanoseconds. - Weight::from_ref_time(120_000_000) + // Minimum execution time: 144_159 nanoseconds. + Weight::from_ref_time(145_427_000) .saturating_add(Weight::from_proof_size(9405)) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -683,8 +683,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `2178` // Estimated: `6755` - // Minimum execution time: 115_000 nanoseconds. - Weight::from_ref_time(116_000_000) + // Minimum execution time: 137_762 nanoseconds. + Weight::from_ref_time(139_037_000) .saturating_add(Weight::from_proof_size(6755)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -720,21 +720,21 @@ impl WeightInfo for SubstrateWeight { // Storage: Content VideoById (r:0 w:1) // Proof: Content VideoById (max_values: None, max_size: Some(513), added: 2988, mode: MaxEncodedLen) /// The range of component `a` is `[1, 20]`. - /// The range of component `b` is `[3, 13]`. + /// The range of component `b` is `[1, 13]`. /// The range of component `c` is `[1, 100]`. fn create_video_without_nft(a: u32, b: u32, c: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `4820 + b * (112 ±0)` // Estimated: `26437 + b * (2581 ±0)` - // Minimum execution time: 408_000 nanoseconds. - Weight::from_ref_time(252_855_901) + // Minimum execution time: 624_040 nanoseconds. + Weight::from_ref_time(348_598_297) .saturating_add(Weight::from_proof_size(26437)) - // Standard Error: 321_763 - .saturating_add(Weight::from_ref_time(6_078_947).saturating_mul(a.into())) - // Standard Error: 611_350 - .saturating_add(Weight::from_ref_time(7_850_000).saturating_mul(b.into())) - // Standard Error: 61_752 - .saturating_add(Weight::from_ref_time(515_151).saturating_mul(c.into())) + // Standard Error: 52_536 + .saturating_add(Weight::from_ref_time(9_165_681).saturating_mul(a.into())) + // Standard Error: 81_329 + .saturating_add(Weight::from_ref_time(11_849_473).saturating_mul(b.into())) + // Standard Error: 10_381 + .saturating_add(Weight::from_ref_time(1_291_174).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(14_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(b.into()))) .saturating_add(T::DbWeight::get().writes(8_u64)) @@ -807,32 +807,32 @@ impl WeightInfo for SubstrateWeight { // Storage: Content VideoById (r:0 w:1) // Proof: Content VideoById (max_values: None, max_size: Some(513), added: 2988, mode: MaxEncodedLen) /// The range of component `a` is `[1, 20]`. - /// The range of component `b` is `[3, 13]`. + /// The range of component `b` is `[1, 13]`. /// The range of component `c` is `[2, 20]`. /// The range of component `d` is `[1, 100]`. fn create_video_with_nft(a: u32, b: u32, c: u32, d: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `5809 + b * (112 ±0) + c * (191 ±0)` - // Estimated: `37098 + b * (2581 ±0) + c * (2600 ±0)` - // Minimum execution time: 517_000 nanoseconds. - Weight::from_ref_time(303_416_799) + // Measured: `5905 + b * (112 ±0) + c * (187 ±0)` + // Estimated: `37098 + c * (2600 ±0) + b * (2581 ±0)` + // Minimum execution time: 788_140 nanoseconds. + Weight::from_ref_time(436_913_202) .saturating_add(Weight::from_proof_size(37098)) - // Standard Error: 366_063 - .saturating_add(Weight::from_ref_time(6_184_210).saturating_mul(a.into())) - // Standard Error: 695_521 - .saturating_add(Weight::from_ref_time(7_500_000).saturating_mul(b.into())) - // Standard Error: 386_400 - .saturating_add(Weight::from_ref_time(3_194_444).saturating_mul(c.into())) - // Standard Error: 70_254 - .saturating_add(Weight::from_ref_time(510_101).saturating_mul(d.into())) + // Standard Error: 57_854 + .saturating_add(Weight::from_ref_time(9_243_305).saturating_mul(a.into())) + // Standard Error: 89_539 + .saturating_add(Weight::from_ref_time(11_578_887).saturating_mul(b.into())) + // Standard Error: 61_001 + .saturating_add(Weight::from_ref_time(4_614_105).saturating_mul(c.into())) + // Standard Error: 11_437 + .saturating_add(Weight::from_ref_time(1_243_637).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(31_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(b.into()))) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(c.into()))) .saturating_add(T::DbWeight::get().writes(10_u64)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(a.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(b.into()))) - .saturating_add(Weight::from_proof_size(2581).saturating_mul(b.into())) .saturating_add(Weight::from_proof_size(2600).saturating_mul(c.into())) + .saturating_add(Weight::from_proof_size(2581).saturating_mul(b.into())) } // Storage: Content VideoById (r:1 w:0) // Proof: Content VideoById (max_values: None, max_size: Some(513), added: 2988, mode: MaxEncodedLen) @@ -847,11 +847,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `3087` // Estimated: `12604` - // Minimum execution time: 131_000 nanoseconds. - Weight::from_ref_time(131_045_454) + // Minimum execution time: 174_724 nanoseconds. + Weight::from_ref_time(174_334_852) .saturating_add(Weight::from_proof_size(12604)) - // Standard Error: 45_734 - .saturating_add(Weight::from_ref_time(454_545).saturating_mul(a.into())) + // Standard Error: 4_496 + .saturating_add(Weight::from_ref_time(1_105_708).saturating_mul(a.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) } // Storage: Content VideoById (r:1 w:1) @@ -882,23 +882,23 @@ impl WeightInfo for SubstrateWeight { // Proof: Storage NextDataObjectId (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) /// The range of component `a` is `[1, 20]`. /// The range of component `b` is `[1, 20]`. - /// The range of component `c` is `[3, 13]`. + /// The range of component `c` is `[1, 13]`. /// The range of component `d` is `[1, 100]`. fn update_video_with_assets_without_nft(a: u32, b: u32, c: u32, d: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `4848 + b * (390 ±0) + c * (112 ±0)` + // Measured: `4956 + b * (384 ±0) + c * (112 ±0)` // Estimated: `25808 + b * (5233 ±0) + c * (2581 ±0)` - // Minimum execution time: 500_000 nanoseconds. - Weight::from_ref_time(219_960_592) + // Minimum execution time: 775_577 nanoseconds. + Weight::from_ref_time(315_369_040) .saturating_add(Weight::from_proof_size(25808)) - // Standard Error: 362_704 - .saturating_add(Weight::from_ref_time(5_776_315).saturating_mul(a.into())) - // Standard Error: 362_704 - .saturating_add(Weight::from_ref_time(20_855_263).saturating_mul(b.into())) - // Standard Error: 689_137 - .saturating_add(Weight::from_ref_time(7_375_000).saturating_mul(c.into())) - // Standard Error: 69_609 - .saturating_add(Weight::from_ref_time(532_828).saturating_mul(d.into())) + // Standard Error: 69_802 + .saturating_add(Weight::from_ref_time(9_296_613).saturating_mul(a.into())) + // Standard Error: 69_802 + .saturating_add(Weight::from_ref_time(31_856_386).saturating_mul(b.into())) + // Standard Error: 108_030 + .saturating_add(Weight::from_ref_time(10_974_056).saturating_mul(c.into())) + // Standard Error: 13_799 + .saturating_add(Weight::from_ref_time(1_184_020).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(12_u64)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(b.into()))) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(c.into()))) @@ -955,15 +955,15 @@ impl WeightInfo for SubstrateWeight { /// The range of component `b` is `[1, 100]`. fn update_video_without_assets_with_nft(a: u32, b: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `4294 + a * (202 ±0)` + // Measured: `4399 + a * (200 ±0)` // Estimated: `23265 + a * (2600 ±0)` - // Minimum execution time: 248_000 nanoseconds. - Weight::from_ref_time(200_358_585) + // Minimum execution time: 367_769 nanoseconds. + Weight::from_ref_time(278_759_473) .saturating_add(Weight::from_proof_size(23265)) - // Standard Error: 340_962 - .saturating_add(Weight::from_ref_time(3_083_333).saturating_mul(a.into())) - // Standard Error: 61_993 - .saturating_add(Weight::from_ref_time(474_747).saturating_mul(b.into())) + // Standard Error: 36_221 + .saturating_add(Weight::from_ref_time(4_434_739).saturating_mul(a.into())) + // Standard Error: 6_782 + .saturating_add(Weight::from_ref_time(1_165_146).saturating_mul(b.into())) .saturating_add(T::DbWeight::get().reads(21_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(a.into()))) .saturating_add(T::DbWeight::get().writes(4_u64)) @@ -1031,26 +1031,26 @@ impl WeightInfo for SubstrateWeight { // Proof: Storage NextDataObjectId (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) /// The range of component `a` is `[1, 20]`. /// The range of component `b` is `[1, 20]`. - /// The range of component `c` is `[3, 13]`. + /// The range of component `c` is `[1, 13]`. /// The range of component `d` is `[2, 20]`. /// The range of component `e` is `[1, 100]`. fn update_video_with_assets_with_nft(a: u32, b: u32, c: u32, d: u32, e: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `5261 + b * (433 ±0) + c * (112 ±0) + d * (217 ±0)` - // Estimated: `36469 + c * (2581 ±0) + d * (2600 ±0) + b * (5233 ±0)` - // Minimum execution time: 636_000 nanoseconds. - Weight::from_ref_time(268_761_137) + // Measured: `5422 + b * (432 ±0) + c * (112 ±0) + d * (210 ±0)` + // Estimated: `36469 + b * (5233 ±0) + c * (2581 ±0) + d * (2600 ±0)` + // Minimum execution time: 970_536 nanoseconds. + Weight::from_ref_time(411_266_383) .saturating_add(Weight::from_proof_size(36469)) - // Standard Error: 316_519 - .saturating_add(Weight::from_ref_time(6_342_105).saturating_mul(a.into())) - // Standard Error: 316_519 - .saturating_add(Weight::from_ref_time(20_894_736).saturating_mul(b.into())) - // Standard Error: 601_387 - .saturating_add(Weight::from_ref_time(7_600_000).saturating_mul(c.into())) - // Standard Error: 334_104 - .saturating_add(Weight::from_ref_time(3_305_555).saturating_mul(d.into())) - // Standard Error: 60_746 - .saturating_add(Weight::from_ref_time(590_909).saturating_mul(e.into())) + // Standard Error: 69_266 + .saturating_add(Weight::from_ref_time(8_878_081).saturating_mul(a.into())) + // Standard Error: 69_266 + .saturating_add(Weight::from_ref_time(31_544_666).saturating_mul(b.into())) + // Standard Error: 107_182 + .saturating_add(Weight::from_ref_time(12_085_063).saturating_mul(c.into())) + // Standard Error: 73_029 + .saturating_add(Weight::from_ref_time(4_600_375).saturating_mul(d.into())) + // Standard Error: 13_698 + .saturating_add(Weight::from_ref_time(1_292_689).saturating_mul(e.into())) .saturating_add(T::DbWeight::get().reads(29_u64)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(b.into()))) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(c.into()))) @@ -1059,9 +1059,9 @@ impl WeightInfo for SubstrateWeight { .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(a.into()))) .saturating_add(T::DbWeight::get().writes((2_u64).saturating_mul(b.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(c.into()))) + .saturating_add(Weight::from_proof_size(5233).saturating_mul(b.into())) .saturating_add(Weight::from_proof_size(2581).saturating_mul(c.into())) .saturating_add(Weight::from_proof_size(2600).saturating_mul(d.into())) - .saturating_add(Weight::from_proof_size(5233).saturating_mul(b.into())) } // Storage: Content VideoById (r:1 w:1) // Proof: Content VideoById (max_values: None, max_size: Some(513), added: 2988, mode: MaxEncodedLen) @@ -1077,8 +1077,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `3371` // Estimated: `17810` - // Minimum execution time: 167_000 nanoseconds. - Weight::from_ref_time(167_000_000) + // Minimum execution time: 220_309 nanoseconds. + Weight::from_ref_time(222_816_000) .saturating_add(Weight::from_proof_size(17810)) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) @@ -1104,18 +1104,18 @@ impl WeightInfo for SubstrateWeight { // Storage: System Account (r:23 w:23) // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) /// The range of component `a` is `[1, 20]`. - /// The range of component `b` is `[3, 13]`. + /// The range of component `b` is `[1, 13]`. fn delete_video_with_assets(a: u32, b: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `5054 + a * (390 ±0) + b * (112 ±0)` + // Measured: `5288 + a * (386 ±0) + b * (112 ±0)` // Estimated: `24874 + b * (2581 ±0) + a * (5233 ±0)` - // Minimum execution time: 328_000 nanoseconds. - Weight::from_ref_time(213_697_368) + // Minimum execution time: 461_287 nanoseconds. + Weight::from_ref_time(279_742_573) .saturating_add(Weight::from_proof_size(24874)) - // Standard Error: 199_259 - .saturating_add(Weight::from_ref_time(20_552_631).saturating_mul(a.into())) - // Standard Error: 378_593 - .saturating_add(Weight::from_ref_time(7_250_000).saturating_mul(b.into())) + // Standard Error: 46_959 + .saturating_add(Weight::from_ref_time(32_323_758).saturating_mul(a.into())) + // Standard Error: 72_720 + .saturating_add(Weight::from_ref_time(11_853_735).saturating_mul(b.into())) .saturating_add(T::DbWeight::get().reads(10_u64)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(a.into()))) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(b.into()))) @@ -1138,13 +1138,13 @@ impl WeightInfo for SubstrateWeight { /// The range of component `a` is `[0, 10]`. fn initialize_channel_transfer(a: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `3629 + a * (196 ±0)` + // Measured: `3667 + a * (200 ±0)` // Estimated: `12719 + a * (2600 ±0)` - // Minimum execution time: 153_000 nanoseconds. - Weight::from_ref_time(153_000_000) + // Minimum execution time: 198_158 nanoseconds. + Weight::from_ref_time(204_112_960) .saturating_add(Weight::from_proof_size(12719)) - // Standard Error: 100_000 - .saturating_add(Weight::from_ref_time(7_400_000).saturating_mul(a.into())) + // Standard Error: 37_710 + .saturating_add(Weight::from_ref_time(7_686_514).saturating_mul(a.into())) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(a.into()))) .saturating_add(T::DbWeight::get().writes(2_u64)) @@ -1160,8 +1160,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `3135` // Estimated: `9616` - // Minimum execution time: 165_000 nanoseconds. - Weight::from_ref_time(166_000_000) + // Minimum execution time: 200_282 nanoseconds. + Weight::from_ref_time(201_979_000) .saturating_add(Weight::from_proof_size(9616)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -1179,11 +1179,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1800 + a * (30 ±0)` // Estimated: `7028` - // Minimum execution time: 60_000 nanoseconds. - Weight::from_ref_time(60_500_000) + // Minimum execution time: 91_978 nanoseconds. + Weight::from_ref_time(96_082_756) .saturating_add(Weight::from_proof_size(7028)) - // Standard Error: 111_803 - .saturating_add(Weight::from_ref_time(6_550_000).saturating_mul(a.into())) + // Standard Error: 17_846 + .saturating_add(Weight::from_ref_time(5_562_789).saturating_mul(a.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -1202,13 +1202,13 @@ impl WeightInfo for SubstrateWeight { /// The range of component `a` is `[0, 10]`. fn accept_channel_transfer_member_to_curator(a: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `2862 + a * (33 ±0)` + // Measured: `2862 + a * (30 ±0)` // Estimated: `12231` - // Minimum execution time: 80_000 nanoseconds. - Weight::from_ref_time(80_500_000) + // Minimum execution time: 128_011 nanoseconds. + Weight::from_ref_time(132_722_747) .saturating_add(Weight::from_proof_size(12231)) - // Standard Error: 70_710 - .saturating_add(Weight::from_ref_time(6_600_000).saturating_mul(a.into())) + // Standard Error: 20_581 + .saturating_add(Weight::from_ref_time(5_704_638).saturating_mul(a.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -1221,13 +1221,13 @@ impl WeightInfo for SubstrateWeight { /// The range of component `a` is `[0, 10]`. fn accept_channel_transfer_member_to_member(a: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `2422 + a * (53 ±0)` + // Measured: `2468 + a * (55 ±0)` // Estimated: `13770` - // Minimum execution time: 81_000 nanoseconds. - Weight::from_ref_time(81_500_000) + // Minimum execution time: 127_236 nanoseconds. + Weight::from_ref_time(133_587_638) .saturating_add(Weight::from_proof_size(13770)) - // Standard Error: 50_000 - .saturating_add(Weight::from_ref_time(6_550_000).saturating_mul(a.into())) + // Standard Error: 25_521 + .saturating_add(Weight::from_ref_time(5_684_947).saturating_mul(a.into())) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -1243,24 +1243,24 @@ impl WeightInfo for SubstrateWeight { // Proof: Token BloatBond (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) // Storage: Token SymbolsUsed (r:1 w:1) // Proof: Token SymbolsUsed (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) - // Storage: Membership MembershipById (r:1024 w:0) + // Storage: Membership MembershipById (r:1023 w:0) // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) // Storage: System Account (r:2 w:2) // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - // Storage: Token AccountInfoByTokenAndMember (r:0 w:1024) + // Storage: Token AccountInfoByTokenAndMember (r:0 w:1023) // Proof: Token AccountInfoByTokenAndMember (max_values: None, max_size: Some(489), added: 2964, mode: MaxEncodedLen) // Storage: Token TokenInfoById (r:0 w:1) // Proof: Token TokenInfoById (max_values: None, max_size: Some(339), added: 2814, mode: MaxEncodedLen) /// The range of component `a` is `[1, 1024]`. fn issue_creator_token(a: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `4114 + a * (166 ±0)` + // Measured: `5183 + a * (165 ±0)` // Estimated: `18359 + a * (2600 ±0)` - // Minimum execution time: 205_000 nanoseconds. - Weight::from_ref_time(197_575_268) + // Minimum execution time: 286_247 nanoseconds. + Weight::from_ref_time(71_853_853) .saturating_add(Weight::from_proof_size(18359)) - // Standard Error: 26_899 - .saturating_add(Weight::from_ref_time(8_424_731).saturating_mul(a.into())) + // Standard Error: 17_963 + .saturating_add(Weight::from_ref_time(12_573_822).saturating_mul(a.into())) .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(a.into()))) .saturating_add(T::DbWeight::get().writes(6_u64)) @@ -1285,17 +1285,15 @@ impl WeightInfo for SubstrateWeight { // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) /// The range of component `a` is `[1, 1024]`. /// The range of component `b` is `[1, 100]`. - fn creator_token_issuer_transfer(a: u32, b: u32, ) -> Weight { + fn creator_token_issuer_transfer(a: u32, _b: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `4858 + a * (166 ±0)` + // Measured: `5931 + a * (165 ±0)` // Estimated: `21111 + a * (5564 ±0)` - // Minimum execution time: 236_000 nanoseconds. - Weight::from_ref_time(155_946_236) + // Minimum execution time: 388_994 nanoseconds. + Weight::from_ref_time(140_850_078) .saturating_add(Weight::from_proof_size(21111)) - // Standard Error: 18_383 - .saturating_add(Weight::from_ref_time(10_250_733).saturating_mul(a.into())) - // Standard Error: 189_959 - .saturating_add(Weight::from_ref_time(803_030).saturating_mul(b.into())) + // Standard Error: 17_137 + .saturating_add(Weight::from_ref_time(15_693_549).saturating_mul(a.into())) .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(a.into()))) .saturating_add(T::DbWeight::get().writes(4_u64)) @@ -1314,8 +1312,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `3245` // Estimated: `12430` - // Minimum execution time: 134_000 nanoseconds. - Weight::from_ref_time(135_000_000) + // Minimum execution time: 176_737 nanoseconds. + Weight::from_ref_time(178_330_000) .saturating_add(Weight::from_proof_size(12430)) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -1334,8 +1332,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `3212` // Estimated: `12430` - // Minimum execution time: 156_000 nanoseconds. - Weight::from_ref_time(157_000_000) + // Minimum execution time: 203_850 nanoseconds. + Weight::from_ref_time(204_917_000) .saturating_add(Weight::from_proof_size(12430)) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -1357,11 +1355,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `3684` // Estimated: `15893` - // Minimum execution time: 150_000 nanoseconds. - Weight::from_ref_time(151_904_040) + // Minimum execution time: 210_154 nanoseconds. + Weight::from_ref_time(209_749_690) .saturating_add(Weight::from_proof_size(15893)) - // Standard Error: 89_495 - .saturating_add(Weight::from_ref_time(595_959).saturating_mul(a.into())) + // Standard Error: 6_061 + .saturating_add(Weight::from_ref_time(1_347_188).saturating_mul(a.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -1379,8 +1377,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `3341` // Estimated: `12929` - // Minimum execution time: 139_000 nanoseconds. - Weight::from_ref_time(143_000_000) + // Minimum execution time: 186_845 nanoseconds. + Weight::from_ref_time(188_523_000) .saturating_add(Weight::from_proof_size(12929)) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -1401,8 +1399,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `4106` // Estimated: `15905` - // Minimum execution time: 149_000 nanoseconds. - Weight::from_ref_time(153_000_000) + // Minimum execution time: 204_981 nanoseconds. + Weight::from_ref_time(206_691_000) .saturating_add(Weight::from_proof_size(15905)) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -1427,8 +1425,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `3996` // Estimated: `19145` - // Minimum execution time: 174_000 nanoseconds. - Weight::from_ref_time(175_000_000) + // Minimum execution time: 244_981 nanoseconds. + Weight::from_ref_time(246_597_000) .saturating_add(Weight::from_proof_size(19145)) .saturating_add(T::DbWeight::get().reads(9_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) @@ -1449,8 +1447,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `3275` // Estimated: `20185` - // Minimum execution time: 94_000 nanoseconds. - Weight::from_ref_time(94_000_000) + // Minimum execution time: 156_536 nanoseconds. + Weight::from_ref_time(157_365_000) .saturating_add(Weight::from_proof_size(20185)) .saturating_add(T::DbWeight::get().reads(9_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) @@ -1469,8 +1467,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `3730` // Estimated: `17636` - // Minimum execution time: 153_000 nanoseconds. - Weight::from_ref_time(153_000_000) + // Minimum execution time: 212_310 nanoseconds. + Weight::from_ref_time(214_971_000) .saturating_add(Weight::from_proof_size(17636)) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -1487,8 +1485,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `3245` // Estimated: `12430` - // Minimum execution time: 156_000 nanoseconds. - Weight::from_ref_time(185_000_000) + // Minimum execution time: 206_107 nanoseconds. + Weight::from_ref_time(212_061_000) .saturating_add(Weight::from_proof_size(12430)) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -1505,8 +1503,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `2829` // Estimated: `11742` - // Minimum execution time: 71_000 nanoseconds. - Weight::from_ref_time(82_000_000) + // Minimum execution time: 130_383 nanoseconds. + Weight::from_ref_time(134_486_000) .saturating_add(Weight::from_proof_size(11742)) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) @@ -1539,8 +1537,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `425` // Estimated: `13204` - // Minimum execution time: 73_000 nanoseconds. - Weight::from_ref_time(75_000_000) + // Minimum execution time: 126_144 nanoseconds. + Weight::from_ref_time(127_435_000) .saturating_add(Weight::from_proof_size(13204)) .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().writes(9_u64)) @@ -1559,8 +1557,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `2208` // Estimated: `9631` - // Minimum execution time: 65_000 nanoseconds. - Weight::from_ref_time(65_000_000) + // Minimum execution time: 106_763 nanoseconds. + Weight::from_ref_time(108_989_000) .saturating_add(Weight::from_proof_size(9631)) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) @@ -1575,8 +1573,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `2257` // Estimated: `11170` - // Minimum execution time: 61_000 nanoseconds. - Weight::from_ref_time(64_000_000) + // Minimum execution time: 102_536 nanoseconds. + Weight::from_ref_time(103_811_000) .saturating_add(Weight::from_proof_size(11170)) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) @@ -1604,11 +1602,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `2331` // Estimated: `11676` - // Minimum execution time: 93_000 nanoseconds. - Weight::from_ref_time(93_500_000) + // Minimum execution time: 143_783 nanoseconds. + Weight::from_ref_time(145_107_230) .saturating_add(Weight::from_proof_size(11676)) - // Standard Error: 124_225 - .saturating_add(Weight::from_ref_time(500_000).saturating_mul(h.into())) + // Standard Error: 11_433 + .saturating_add(Weight::from_ref_time(650_339).saturating_mul(h.into())) .saturating_add(T::DbWeight::get().reads(9_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -1633,11 +1631,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `2685` // Estimated: `13726` - // Minimum execution time: 107_000 nanoseconds. - Weight::from_ref_time(106_833_333) + // Minimum execution time: 167_077 nanoseconds. + Weight::from_ref_time(168_599_352) .saturating_add(Weight::from_proof_size(13726)) - // Standard Error: 175_682 - .saturating_add(Weight::from_ref_time(666_666).saturating_mul(h.into())) + // Standard Error: 9_370 + .saturating_add(Weight::from_ref_time(687_888).saturating_mul(h.into())) .saturating_add(T::DbWeight::get().reads(9_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } @@ -1664,11 +1662,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `2330` // Estimated: `11676` - // Minimum execution time: 105_000 nanoseconds. - Weight::from_ref_time(105_277_777) + // Minimum execution time: 164_298 nanoseconds. + Weight::from_ref_time(166_140_937) .saturating_add(Weight::from_proof_size(11676)) - // Standard Error: 200_308 - .saturating_add(Weight::from_ref_time(722_222).saturating_mul(h.into())) + // Standard Error: 15_465 + .saturating_add(Weight::from_ref_time(809_088).saturating_mul(h.into())) .saturating_add(T::DbWeight::get().reads(9_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -1718,15 +1716,15 @@ impl WeightInfo for SubstrateWeight { /// The range of component `b` is `[1, 100]`. fn issue_nft(w: u32, b: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `4015 + w * (207 ±0)` + // Measured: `4158 + w * (204 ±0)` // Estimated: `20665 + w * (2600 ±0)` - // Minimum execution time: 249_000 nanoseconds. - Weight::from_ref_time(194_262_626) + // Minimum execution time: 361_707 nanoseconds. + Weight::from_ref_time(269_794_005) .saturating_add(Weight::from_proof_size(20665)) - // Standard Error: 409_506 - .saturating_add(Weight::from_ref_time(3_083_333).saturating_mul(w.into())) - // Standard Error: 74_455 - .saturating_add(Weight::from_ref_time(570_707).saturating_mul(b.into())) + // Standard Error: 32_845 + .saturating_add(Weight::from_ref_time(4_426_106).saturating_mul(w.into())) + // Standard Error: 6_150 + .saturating_add(Weight::from_ref_time(1_327_974).saturating_mul(b.into())) .saturating_add(T::DbWeight::get().reads(20_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(w.into()))) .saturating_add(T::DbWeight::get().writes(4_u64)) @@ -1744,8 +1742,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `3112` // Estimated: `12604` - // Minimum execution time: 183_000 nanoseconds. - Weight::from_ref_time(185_000_000) + // Minimum execution time: 236_981 nanoseconds. + Weight::from_ref_time(237_858_000) .saturating_add(Weight::from_proof_size(12604)) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -1760,8 +1758,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `2397` // Estimated: `8952` - // Minimum execution time: 49_000 nanoseconds. - Weight::from_ref_time(49_000_000) + // Minimum execution time: 80_073 nanoseconds. + Weight::from_ref_time(80_896_000) .saturating_add(Weight::from_proof_size(8952)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -1780,8 +1778,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `4034` // Estimated: `15204` - // Minimum execution time: 193_000 nanoseconds. - Weight::from_ref_time(197_000_000) + // Minimum execution time: 246_150 nanoseconds. + Weight::from_ref_time(247_216_000) .saturating_add(Weight::from_proof_size(15204)) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -1798,8 +1796,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `3137` // Estimated: `12604` - // Minimum execution time: 185_000 nanoseconds. - Weight::from_ref_time(188_000_000) + // Minimum execution time: 235_663 nanoseconds. + Weight::from_ref_time(237_825_000) .saturating_add(Weight::from_proof_size(12604)) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -1818,8 +1816,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `3462` // Estimated: `19860` - // Minimum execution time: 95_000 nanoseconds. - Weight::from_ref_time(95_000_000) + // Minimum execution time: 154_891 nanoseconds. + Weight::from_ref_time(156_372_000) .saturating_add(Weight::from_proof_size(19860)) .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) @@ -1836,8 +1834,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `3112` // Estimated: `12604` - // Minimum execution time: 186_000 nanoseconds. - Weight::from_ref_time(187_000_000) + // Minimum execution time: 235_562 nanoseconds. + Weight::from_ref_time(236_669_000) .saturating_add(Weight::from_proof_size(12604)) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -1854,8 +1852,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `3128` // Estimated: `12604` - // Minimum execution time: 188_000 nanoseconds. - Weight::from_ref_time(191_000_000) + // Minimum execution time: 237_003 nanoseconds. + Weight::from_ref_time(238_333_000) .saturating_add(Weight::from_proof_size(12604)) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -1872,8 +1870,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `3128` // Estimated: `12604` - // Minimum execution time: 188_000 nanoseconds. - Weight::from_ref_time(189_000_000) + // Minimum execution time: 237_354 nanoseconds. + Weight::from_ref_time(238_209_000) .saturating_add(Weight::from_proof_size(12604)) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -1892,8 +1890,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `3453` // Estimated: `19860` - // Minimum execution time: 96_000 nanoseconds. - Weight::from_ref_time(97_000_000) + // Minimum execution time: 154_882 nanoseconds. + Weight::from_ref_time(155_868_000) .saturating_add(Weight::from_proof_size(19860)) .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) @@ -1904,8 +1902,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `546` // Estimated: `496` - // Minimum execution time: 13_000 nanoseconds. - Weight::from_ref_time(14_000_000) + // Minimum execution time: 21_081 nanoseconds. + Weight::from_ref_time(21_555_000) .saturating_add(Weight::from_proof_size(496)) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -1916,8 +1914,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `599` // Estimated: `507` - // Minimum execution time: 14_000 nanoseconds. - Weight::from_ref_time(14_000_000) + // Minimum execution time: 21_844 nanoseconds. + Weight::from_ref_time(22_326_000) .saturating_add(Weight::from_proof_size(507)) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -1932,8 +1930,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `2801` // Estimated: `9616` - // Minimum execution time: 139_000 nanoseconds. - Weight::from_ref_time(142_000_000) + // Minimum execution time: 177_994 nanoseconds. + Weight::from_ref_time(179_930_000) .saturating_add(Weight::from_proof_size(9616)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -1969,13 +1967,13 @@ impl WeightInfo for SubstrateWeight { /// The range of component `w` is `[2, 20]`. fn start_english_auction(w: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `4082 + w * (207 ±0)` + // Measured: `4207 + w * (206 ±0)` // Estimated: `17143 + w * (2600 ±0)` - // Minimum execution time: 219_000 nanoseconds. - Weight::from_ref_time(213_444_444) + // Minimum execution time: 289_143 nanoseconds. + Weight::from_ref_time(283_451_444) .saturating_add(Weight::from_proof_size(17143)) - // Standard Error: 78_567 - .saturating_add(Weight::from_ref_time(3_277_777).saturating_mul(w.into())) + // Standard Error: 28_868 + .saturating_add(Weight::from_ref_time(4_845_873).saturating_mul(w.into())) .saturating_add(T::DbWeight::get().reads(13_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(w.into()))) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -1993,8 +1991,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `3335` // Estimated: `12604` - // Minimum execution time: 191_000 nanoseconds. - Weight::from_ref_time(195_000_000) + // Minimum execution time: 240_038 nanoseconds. + Weight::from_ref_time(241_601_000) .saturating_add(Weight::from_proof_size(12604)) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -2013,8 +2011,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `4462` // Estimated: `27666` - // Minimum execution time: 130_000 nanoseconds. - Weight::from_ref_time(132_000_000) + // Minimum execution time: 208_881 nanoseconds. + Weight::from_ref_time(211_080_000) .saturating_add(Weight::from_proof_size(27666)) .saturating_add(T::DbWeight::get().reads(11_u64)) .saturating_add(T::DbWeight::get().writes(6_u64)) @@ -2033,8 +2031,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `3345` // Estimated: `17260` - // Minimum execution time: 93_000 nanoseconds. - Weight::from_ref_time(93_000_000) + // Minimum execution time: 150_992 nanoseconds. + Weight::from_ref_time(152_609_000) .saturating_add(Weight::from_proof_size(17260)) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) @@ -2062,13 +2060,13 @@ impl WeightInfo for SubstrateWeight { /// The range of component `w` is `[2, 20]`. fn start_open_auction(w: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `3987 + w * (202 ±0)` + // Measured: `4088 + w * (201 ±0)` // Estimated: `15123 + w * (2600 ±0)` - // Minimum execution time: 210_000 nanoseconds. - Weight::from_ref_time(206_166_666) + // Minimum execution time: 272_657 nanoseconds. + Weight::from_ref_time(267_794_327) .saturating_add(Weight::from_proof_size(15123)) - // Standard Error: 141_639 - .saturating_add(Weight::from_ref_time(3_166_666).saturating_mul(w.into())) + // Standard Error: 28_186 + .saturating_add(Weight::from_ref_time(4_877_293).saturating_mul(w.into())) .saturating_add(T::DbWeight::get().reads(9_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(w.into()))) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -2086,8 +2084,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `3322` // Estimated: `12604` - // Minimum execution time: 188_000 nanoseconds. - Weight::from_ref_time(189_000_000) + // Minimum execution time: 245_595 nanoseconds. + Weight::from_ref_time(248_223_000) .saturating_add(Weight::from_proof_size(12604)) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -2106,8 +2104,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `3387` // Estimated: `16709` - // Minimum execution time: 80_000 nanoseconds. - Weight::from_ref_time(81_000_000) + // Minimum execution time: 128_473 nanoseconds. + Weight::from_ref_time(129_879_000) .saturating_add(Weight::from_proof_size(16709)) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -2128,8 +2126,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `3678` // Estimated: `22411` - // Minimum execution time: 102_000 nanoseconds. - Weight::from_ref_time(103_000_000) + // Minimum execution time: 168_754 nanoseconds. + Weight::from_ref_time(170_293_000) .saturating_add(Weight::from_proof_size(22411)) .saturating_add(T::DbWeight::get().reads(9_u64)) .saturating_add(T::DbWeight::get().writes(5_u64)) @@ -2150,8 +2148,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `4087` // Estimated: `25014` - // Minimum execution time: 122_000 nanoseconds. - Weight::from_ref_time(123_000_000) + // Minimum execution time: 197_214 nanoseconds. + Weight::from_ref_time(199_192_000) .saturating_add(Weight::from_proof_size(25014)) .saturating_add(T::DbWeight::get().reads(10_u64)) .saturating_add(T::DbWeight::get().writes(5_u64)) @@ -2167,11 +2165,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1730` // Estimated: `6517` - // Minimum execution time: 42_000 nanoseconds. - Weight::from_ref_time(41_393_939) + // Minimum execution time: 70_164 nanoseconds. + Weight::from_ref_time(69_263_730) .saturating_add(Weight::from_proof_size(6517)) - // Standard Error: 40_404 - .saturating_add(Weight::from_ref_time(606_060).saturating_mul(b.into())) + // Standard Error: 2_313 + .saturating_add(Weight::from_ref_time(1_262_314).saturating_mul(b.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) } // Storage: Content ChannelById (r:1 w:0) @@ -2185,11 +2183,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `2801` // Estimated: `9616` - // Minimum execution time: 120_000 nanoseconds. - Weight::from_ref_time(120_969_696) + // Minimum execution time: 160_445 nanoseconds. + Weight::from_ref_time(159_409_005) .saturating_add(Weight::from_proof_size(9616)) - // Standard Error: 82_216 - .saturating_add(Weight::from_ref_time(530_303).saturating_mul(b.into())) + // Standard Error: 5_101 + .saturating_add(Weight::from_ref_time(1_092_041).saturating_mul(b.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) } // Storage: Content VideoById (r:1 w:0) @@ -2205,11 +2203,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `3335` // Estimated: `12604` - // Minimum execution time: 170_000 nanoseconds. - Weight::from_ref_time(170_964_646) + // Minimum execution time: 224_033 nanoseconds. + Weight::from_ref_time(220_159_202) .saturating_add(Weight::from_proof_size(12604)) - // Standard Error: 87_185 - .saturating_add(Weight::from_ref_time(535_353).saturating_mul(b.into())) + // Standard Error: 4_302 + .saturating_add(Weight::from_ref_time(1_076_268).saturating_mul(b.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) } // Storage: Instance3WorkingGroup CurrentLead (r:1 w:0) @@ -2222,8 +2220,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `371` // Estimated: `3153` - // Minimum execution time: 16_000 nanoseconds. - Weight::from_ref_time(17_000_000) + // Minimum execution time: 29_168 nanoseconds. + Weight::from_ref_time(29_840_000) .saturating_add(Weight::from_proof_size(3153)) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -2238,8 +2236,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `371` // Estimated: `3153` - // Minimum execution time: 16_000 nanoseconds. - Weight::from_ref_time(16_000_000) + // Minimum execution time: 29_109 nanoseconds. + Weight::from_ref_time(29_695_000) .saturating_add(Weight::from_proof_size(3153)) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -2344,7 +2342,7 @@ impl WeightInfo for () { fn issue_creator_token(a: u32, ) -> Weight { Weight::from_ref_time(0) } - fn creator_token_issuer_transfer(a: u32, b: u32, ) -> Weight { + fn creator_token_issuer_transfer(a: u32, _b: u32, ) -> Weight { Weight::from_ref_time(0) } fn make_creator_token_permissionless() -> Weight { diff --git a/runtime-modules/council/src/weights.rs b/runtime-modules/council/src/weights.rs index 62fba4a1ea..603e8f8432 100644 --- a/runtime-modules/council/src/weights.rs +++ b/runtime-modules/council/src/weights.rs @@ -18,7 +18,7 @@ //! Autogenerated weights for council //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-03-15, STEPS: `2`, REPEAT: 2, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-04-27, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("prod-test"), DB CACHE: 1024 // Executed Command: @@ -28,8 +28,8 @@ // --pallet=council // --extrinsic=* // --chain=prod-test -// --steps=2 -// --repeat=2 +// --steps=50 +// --repeat=20 // --execution=wasm // --template=./scripts/../devops/joystream-pallet-weight-template.hbs // --output=./scripts/../runtime-modules/council/src/weights.rs @@ -72,8 +72,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 8_000 nanoseconds. - Weight::from_ref_time(8_000_000) + // Minimum execution time: 14_197 nanoseconds. + Weight::from_ref_time(14_745_000) .saturating_add(Weight::from_proof_size(0)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -83,8 +83,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 8_000 nanoseconds. - Weight::from_ref_time(8_000_000) + // Minimum execution time: 13_883 nanoseconds. + Weight::from_ref_time(14_431_000) .saturating_add(Weight::from_proof_size(0)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -95,13 +95,13 @@ impl WeightInfo for SubstrateWeight { /// The range of component `i` is `[1, 100]`. fn funding_request(i: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `319 + i * (5 ±0)` + // Measured: `714 + i * (2 ±0)` // Estimated: `511 + i * (2603 ±0)` - // Minimum execution time: 31_000 nanoseconds. - Weight::from_ref_time(12_757_575) + // Minimum execution time: 53_626 nanoseconds. + Weight::from_ref_time(39_042_363) .saturating_add(Weight::from_proof_size(511)) - // Standard Error: 132_858 - .saturating_add(Weight::from_ref_time(20_242_424).saturating_mul(i.into())) + // Standard Error: 29_821 + .saturating_add(Weight::from_ref_time(30_304_622).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -118,8 +118,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `276` // Estimated: `1022` - // Minimum execution time: 14_000 nanoseconds. - Weight::from_ref_time(16_000_000) + // Minimum execution time: 22_776 nanoseconds. + Weight::from_ref_time(23_449_000) .saturating_add(Weight::from_proof_size(1022)) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) @@ -138,8 +138,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1169` // Estimated: `9651` - // Minimum execution time: 46_000 nanoseconds. - Weight::from_ref_time(47_000_000) + // Minimum execution time: 78_829 nanoseconds. + Weight::from_ref_time(79_478_000) .saturating_add(Weight::from_proof_size(9651)) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(6_u64)) @@ -152,8 +152,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `270` // Estimated: `1011` - // Minimum execution time: 10_000 nanoseconds. - Weight::from_ref_time(11_000_000) + // Minimum execution time: 17_711 nanoseconds. + Weight::from_ref_time(18_080_000) .saturating_add(Weight::from_proof_size(1011)) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) @@ -169,11 +169,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `379` // Estimated: `1600` - // Minimum execution time: 16_000 nanoseconds. - Weight::from_ref_time(15_925_000) + // Minimum execution time: 29_238 nanoseconds. + Weight::from_ref_time(31_249_668) .saturating_add(Weight::from_proof_size(1600)) - // Standard Error: 5_000 - .saturating_add(Weight::from_ref_time(25_000).saturating_mul(i.into())) + // Standard Error: 807 + .saturating_add(Weight::from_ref_time(30_072).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -185,8 +185,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `274` // Estimated: `1011` - // Minimum execution time: 10_000 nanoseconds. - Weight::from_ref_time(10_000_000) + // Minimum execution time: 18_237 nanoseconds. + Weight::from_ref_time(18_726_000) .saturating_add(Weight::from_proof_size(1011)) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) @@ -209,8 +209,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `877` // Estimated: `15156` - // Minimum execution time: 40_000 nanoseconds. - Weight::from_ref_time(41_000_000) + // Minimum execution time: 71_130 nanoseconds. + Weight::from_ref_time(71_757_000) .saturating_add(Weight::from_proof_size(15156)) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) @@ -229,8 +229,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1074` // Estimated: `12116` - // Minimum execution time: 31_000 nanoseconds. - Weight::from_ref_time(31_000_000) + // Minimum execution time: 54_879 nanoseconds. + Weight::from_ref_time(55_765_000) .saturating_add(Weight::from_proof_size(12116)) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -248,11 +248,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `744` // Estimated: `6247` - // Minimum execution time: 22_000 nanoseconds. - Weight::from_ref_time(22_000_000) + // Minimum execution time: 38_473 nanoseconds. + Weight::from_ref_time(40_640_536) .saturating_add(Weight::from_proof_size(6247)) - // Standard Error: 75_000 - .saturating_add(Weight::from_ref_time(1_575_000).saturating_mul(i.into())) + // Standard Error: 2_390 + .saturating_add(Weight::from_ref_time(2_541_999).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -272,8 +272,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1074` // Estimated: `12624` - // Minimum execution time: 33_000 nanoseconds. - Weight::from_ref_time(34_000_000) + // Minimum execution time: 59_635 nanoseconds. + Weight::from_ref_time(60_483_000) .saturating_add(Weight::from_proof_size(12624)) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) @@ -284,8 +284,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 8_000 nanoseconds. - Weight::from_ref_time(8_000_000) + // Minimum execution time: 13_565 nanoseconds. + Weight::from_ref_time(13_784_000) .saturating_add(Weight::from_proof_size(0)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -295,8 +295,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 8_000 nanoseconds. - Weight::from_ref_time(8_000_000) + // Minimum execution time: 12_772 nanoseconds. + Weight::from_ref_time(14_085_000) .saturating_add(Weight::from_proof_size(0)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -310,8 +310,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `730` // Estimated: `5714` - // Minimum execution time: 29_000 nanoseconds. - Weight::from_ref_time(30_000_000) + // Minimum execution time: 51_624 nanoseconds. + Weight::from_ref_time(52_626_000) .saturating_add(Weight::from_proof_size(5714)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) @@ -326,8 +326,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `744` // Estimated: `5739` - // Minimum execution time: 18_000 nanoseconds. - Weight::from_ref_time(19_000_000) + // Minimum execution time: 31_915 nanoseconds. + Weight::from_ref_time(32_539_000) .saturating_add(Weight::from_proof_size(5739)) .saturating_add(T::DbWeight::get().reads(3_u64)) } @@ -339,8 +339,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1006` // Estimated: `3420` - // Minimum execution time: 18_000 nanoseconds. - Weight::from_ref_time(19_000_000) + // Minimum execution time: 33_336 nanoseconds. + Weight::from_ref_time(34_046_000) .saturating_add(Weight::from_proof_size(3420)) .saturating_add(T::DbWeight::get().reads(2_u64)) } diff --git a/runtime-modules/forum/src/weights.rs b/runtime-modules/forum/src/weights.rs index ea024155cf..647f43f0fd 100644 --- a/runtime-modules/forum/src/weights.rs +++ b/runtime-modules/forum/src/weights.rs @@ -18,7 +18,7 @@ //! Autogenerated weights for forum //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-03-15, STEPS: `2`, REPEAT: 2, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-04-27, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("prod-test"), DB CACHE: 1024 // Executed Command: @@ -28,8 +28,8 @@ // --pallet=forum // --extrinsic=* // --chain=prod-test -// --steps=2 -// --repeat=2 +// --steps=50 +// --repeat=20 // --execution=wasm // --template=./scripts/../devops/joystream-pallet-weight-template.hbs // --output=./scripts/../runtime-modules/forum/src/weights.rs @@ -89,17 +89,17 @@ impl WeightInfo for SubstrateWeight { /// The range of component `k` is `[0, 100]`. fn create_category(i: u32, j: u32, k: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `432 + i * (144 ±0)` + // Measured: `396 + i * (150 ±0)` // Estimated: `4159 + i * (2746 ±0)` - // Minimum execution time: 194_000 nanoseconds. - Weight::from_ref_time(37_450_000) + // Minimum execution time: 319_233 nanoseconds. + Weight::from_ref_time(36_579_449) .saturating_add(Weight::from_proof_size(4159)) - // Standard Error: 1_639_740 - .saturating_add(Weight::from_ref_time(4_050_000).saturating_mul(i.into())) - // Standard Error: 81_987 - .saturating_add(Weight::from_ref_time(1_372_500).saturating_mul(j.into())) - // Standard Error: 81_987 - .saturating_add(Weight::from_ref_time(1_407_500).saturating_mul(k.into())) + // Standard Error: 238_032 + .saturating_add(Weight::from_ref_time(10_878_474).saturating_mul(i.into())) + // Standard Error: 13_232 + .saturating_add(Weight::from_ref_time(2_224_668).saturating_mul(j.into())) + // Standard Error: 13_232 + .saturating_add(Weight::from_ref_time(2_433_320).saturating_mul(k.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -117,8 +117,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `665` // Estimated: `5899` - // Minimum execution time: 29_000 nanoseconds. - Weight::from_ref_time(29_000_000) + // Minimum execution time: 51_825 nanoseconds. + Weight::from_ref_time(52_746_000) .saturating_add(Weight::from_proof_size(5899)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) @@ -135,8 +135,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `735` // Estimated: `8422` - // Minimum execution time: 29_000 nanoseconds. - Weight::from_ref_time(30_000_000) + // Minimum execution time: 53_111 nanoseconds. + Weight::from_ref_time(53_678_000) .saturating_add(Weight::from_proof_size(8422)) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) @@ -150,13 +150,13 @@ impl WeightInfo for SubstrateWeight { /// The range of component `i` is `[1, 6]`. fn update_category_archival_status_lead(i: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `507 + i * (151 ±0)` + // Measured: `509 + i * (151 ±0)` // Estimated: `3153 + i * (2746 ±0)` - // Minimum execution time: 26_000 nanoseconds. - Weight::from_ref_time(23_700_000) + // Minimum execution time: 45_120 nanoseconds. + Weight::from_ref_time(41_148_204) .saturating_add(Weight::from_proof_size(3153)) - // Standard Error: 141_421 - .saturating_add(Weight::from_ref_time(2_800_000).saturating_mul(i.into())) + // Standard Error: 23_706 + .saturating_add(Weight::from_ref_time(4_912_266).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -171,13 +171,13 @@ impl WeightInfo for SubstrateWeight { /// The range of component `i` is `[1, 6]`. fn update_category_archival_status_moderator(i: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `577 + i * (151 ±0)` + // Measured: `579 + i * (151 ±0)` // Estimated: `2650 + i * (5269 ±0)` - // Minimum execution time: 26_000 nanoseconds. - Weight::from_ref_time(21_900_000) + // Minimum execution time: 47_721 nanoseconds. + Weight::from_ref_time(41_988_265) .saturating_add(Weight::from_proof_size(2650)) - // Standard Error: 141_421 - .saturating_add(Weight::from_ref_time(4_600_000).saturating_mul(i.into())) + // Standard Error: 18_526 + .saturating_add(Weight::from_ref_time(7_472_402).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -193,15 +193,15 @@ impl WeightInfo for SubstrateWeight { /// The range of component `j` is `[0, 99]`. fn update_category_title_lead(i: u32, j: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `507 + i * (151 ±0)` + // Measured: `509 + i * (151 ±0)` // Estimated: `3153 + i * (2746 ±0)` - // Minimum execution time: 41_000 nanoseconds. - Weight::from_ref_time(23_100_000) + // Minimum execution time: 70_796 nanoseconds. + Weight::from_ref_time(38_388_441) .saturating_add(Weight::from_proof_size(3153)) - // Standard Error: 439_696 - .saturating_add(Weight::from_ref_time(3_400_000).saturating_mul(i.into())) - // Standard Error: 22_206 - .saturating_add(Weight::from_ref_time(1_237_373).saturating_mul(j.into())) + // Standard Error: 48_723 + .saturating_add(Weight::from_ref_time(5_559_509).saturating_mul(i.into())) + // Standard Error: 2_729 + .saturating_add(Weight::from_ref_time(1_856_479).saturating_mul(j.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -217,15 +217,15 @@ impl WeightInfo for SubstrateWeight { /// The range of component `j` is `[0, 99]`. fn update_category_title_moderator(i: u32, j: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `577 + i * (151 ±0)` + // Measured: `579 + i * (151 ±0)` // Estimated: `2650 + i * (5269 ±0)` - // Minimum execution time: 51_000 nanoseconds. - Weight::from_ref_time(16_100_000) + // Minimum execution time: 84_929 nanoseconds. + Weight::from_ref_time(36_751_374) .saturating_add(Weight::from_proof_size(2650)) - // Standard Error: 115_470 - .saturating_add(Weight::from_ref_time(5_900_000).saturating_mul(i.into())) - // Standard Error: 5_831 - .saturating_add(Weight::from_ref_time(1_297_979).saturating_mul(j.into())) + // Standard Error: 40_917 + .saturating_add(Weight::from_ref_time(8_013_089).saturating_mul(i.into())) + // Standard Error: 2_292 + .saturating_add(Weight::from_ref_time(1_881_289).saturating_mul(j.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -241,15 +241,15 @@ impl WeightInfo for SubstrateWeight { /// The range of component `j` is `[0, 99]`. fn update_category_description_lead(i: u32, j: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `507 + i * (151 ±0)` + // Measured: `509 + i * (151 ±0)` // Estimated: `3153 + i * (2746 ±0)` - // Minimum execution time: 41_000 nanoseconds. - Weight::from_ref_time(27_700_000) + // Minimum execution time: 70_213 nanoseconds. + Weight::from_ref_time(38_035_563) .saturating_add(Weight::from_proof_size(3153)) - // Standard Error: 115_470 - .saturating_add(Weight::from_ref_time(2_300_000).saturating_mul(i.into())) - // Standard Error: 5_831 - .saturating_add(Weight::from_ref_time(1_242_424).saturating_mul(j.into())) + // Standard Error: 40_030 + .saturating_add(Weight::from_ref_time(5_478_427).saturating_mul(i.into())) + // Standard Error: 2_242 + .saturating_add(Weight::from_ref_time(1_853_025).saturating_mul(j.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -265,15 +265,15 @@ impl WeightInfo for SubstrateWeight { /// The range of component `j` is `[0, 99]`. fn update_category_description_moderator(i: u32, j: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `577 + i * (151 ±0)` + // Measured: `579 + i * (151 ±0)` // Estimated: `2650 + i * (5269 ±0)` - // Minimum execution time: 50_000 nanoseconds. - Weight::from_ref_time(24_000_000) + // Minimum execution time: 83_991 nanoseconds. + Weight::from_ref_time(39_148_026) .saturating_add(Weight::from_proof_size(2650)) - // Standard Error: 182_574 - .saturating_add(Weight::from_ref_time(4_500_000).saturating_mul(i.into())) - // Standard Error: 9_220 - .saturating_add(Weight::from_ref_time(1_227_272).saturating_mul(j.into())) + // Standard Error: 37_108 + .saturating_add(Weight::from_ref_time(7_672_056).saturating_mul(i.into())) + // Standard Error: 2_078 + .saturating_add(Weight::from_ref_time(1_865_042).saturating_mul(j.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -290,13 +290,13 @@ impl WeightInfo for SubstrateWeight { /// The range of component `i` is `[1, 6]`. fn delete_category_lead(i: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `507 + i * (151 ±0)` + // Measured: `509 + i * (151 ±0)` // Estimated: `3656 + i * (2746 ±0)` - // Minimum execution time: 24_000 nanoseconds. - Weight::from_ref_time(19_900_000) + // Minimum execution time: 43_559 nanoseconds. + Weight::from_ref_time(41_291_243) .saturating_add(Weight::from_proof_size(3656)) - // Standard Error: 100_000 - .saturating_add(Weight::from_ref_time(4_100_000).saturating_mul(i.into())) + // Standard Error: 71_768 + .saturating_add(Weight::from_ref_time(6_627_418).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(2_u64)) @@ -313,17 +313,17 @@ impl WeightInfo for SubstrateWeight { /// The range of component `i` is `[3, 6]`. fn delete_category_moderator(i: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `580 + i * (151 ±0)` - // Estimated: `8199 + i * (3755 ±0)` - // Minimum execution time: 38_000 nanoseconds. - Weight::from_ref_time(24_000_000) + // Measured: `578 + i * (151 ±0)` + // Estimated: `8199 + i * (3469 ±17)` + // Minimum execution time: 66_438 nanoseconds. + Weight::from_ref_time(46_528_303) .saturating_add(Weight::from_proof_size(8199)) - // Standard Error: 333_333 - .saturating_add(Weight::from_ref_time(4_666_666).saturating_mul(i.into())) + // Standard Error: 27_798 + .saturating_add(Weight::from_ref_time(7_370_334).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(3_u64)) - .saturating_add(Weight::from_proof_size(3755).saturating_mul(i.into())) + .saturating_add(Weight::from_proof_size(3469).saturating_mul(i.into())) } // Storage: Membership MembershipById (r:1 w:0) // Proof: Membership MembershipById (max_values: None, max_size: Some(125), added: 2600, mode: MaxEncodedLen) @@ -344,17 +344,17 @@ impl WeightInfo for SubstrateWeight { /// The range of component `k` is `[0, 100]`. fn create_thread(i: u32, j: u32, k: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `684 + i * (151 ±0)` + // Measured: `686 + i * (151 ±0)` // Estimated: `11408 + i * (2746 ±0)` - // Minimum execution time: 145_000 nanoseconds. - Weight::from_ref_time(91_400_000) + // Minimum execution time: 280_680 nanoseconds. + Weight::from_ref_time(121_941_933) .saturating_add(Weight::from_proof_size(11408)) - // Standard Error: 1_636_306 - .saturating_add(Weight::from_ref_time(2_100_000).saturating_mul(i.into())) - // Standard Error: 81_815 - .saturating_add(Weight::from_ref_time(435_000).saturating_mul(j.into())) - // Standard Error: 81_815 - .saturating_add(Weight::from_ref_time(1_465_000).saturating_mul(k.into())) + // Standard Error: 207_368 + .saturating_add(Weight::from_ref_time(8_168_510).saturating_mul(i.into())) + // Standard Error: 11_527 + .saturating_add(Weight::from_ref_time(1_068_628).saturating_mul(j.into())) + // Standard Error: 11_527 + .saturating_add(Weight::from_ref_time(2_584_395).saturating_mul(k.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(7_u64)) @@ -370,15 +370,15 @@ impl WeightInfo for SubstrateWeight { /// The range of component `j` is `[0, 100]`. fn edit_thread_metadata(i: u32, j: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `637 + i * (151 ±0)` + // Measured: `639 + i * (151 ±0)` // Estimated: `5196 + i * (2746 ±0)` - // Minimum execution time: 40_000 nanoseconds. - Weight::from_ref_time(20_200_000) + // Minimum execution time: 69_389 nanoseconds. + Weight::from_ref_time(41_692_281) .saturating_add(Weight::from_proof_size(5196)) - // Standard Error: 1_675_310 - .saturating_add(Weight::from_ref_time(3_300_000).saturating_mul(i.into())) - // Standard Error: 83_765 - .saturating_add(Weight::from_ref_time(555_000).saturating_mul(j.into())) + // Standard Error: 31_896 + .saturating_add(Weight::from_ref_time(4_888_717).saturating_mul(i.into())) + // Standard Error: 1_765 + .saturating_add(Weight::from_ref_time(1_224_077).saturating_mul(j.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) .saturating_add(Weight::from_proof_size(2746).saturating_mul(i.into())) @@ -394,13 +394,13 @@ impl WeightInfo for SubstrateWeight { /// The range of component `i` is `[1, 6]`. fn delete_thread(i: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `948 + i * (151 ±0)` + // Measured: `950 + i * (151 ±0)` // Estimated: `10402 + i * (2746 ±0)` - // Minimum execution time: 48_000 nanoseconds. - Weight::from_ref_time(44_900_000) + // Minimum execution time: 84_820 nanoseconds. + Weight::from_ref_time(82_928_658) .saturating_add(Weight::from_proof_size(10402)) - // Standard Error: 316_227 - .saturating_add(Weight::from_ref_time(3_600_000).saturating_mul(i.into())) + // Standard Error: 43_665 + .saturating_add(Weight::from_ref_time(4_976_700).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(4_u64)) @@ -417,17 +417,17 @@ impl WeightInfo for SubstrateWeight { /// The range of component `i` is `[1, 6]`. fn move_thread_to_category_lead(i: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `859 + i * (122 ±0)` - // Estimated: `9044 + i * (2197 ±0)` - // Minimum execution time: 40_000 nanoseconds. - Weight::from_ref_time(36_100_000) - .saturating_add(Weight::from_proof_size(9044)) - // Standard Error: 100_000 - .saturating_add(Weight::from_ref_time(3_900_000).saturating_mul(i.into())) + // Measured: `690 + i * (150 ±0)` + // Estimated: `7894 + i * (2218 ±24)` + // Minimum execution time: 70_017 nanoseconds. + Weight::from_ref_time(62_459_071) + .saturating_add(Weight::from_proof_size(7894)) + // Standard Error: 70_190 + .saturating_add(Weight::from_ref_time(6_448_848).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(4_u64)) - .saturating_add(Weight::from_proof_size(2197).saturating_mul(i.into())) + .saturating_add(Weight::from_proof_size(2218).saturating_mul(i.into())) } // Storage: Instance1WorkingGroup WorkerById (r:1 w:0) // Proof: Instance1WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) @@ -440,13 +440,13 @@ impl WeightInfo for SubstrateWeight { /// The range of component `i` is `[1, 6]`. fn move_thread_to_category_moderator(i: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `925 + i * (187 ±0)` + // Measured: `913 + i * (185 ±0)` // Estimated: `10515 + i * (5269 ±0)` - // Minimum execution time: 48_000 nanoseconds. - Weight::from_ref_time(41_800_000) + // Minimum execution time: 82_216 nanoseconds. + Weight::from_ref_time(73_954_559) .saturating_add(Weight::from_proof_size(10515)) - // Standard Error: 223_606 - .saturating_add(Weight::from_ref_time(6_700_000).saturating_mul(i.into())) + // Standard Error: 26_321 + .saturating_add(Weight::from_ref_time(9_840_448).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(4_u64)) @@ -466,15 +466,15 @@ impl WeightInfo for SubstrateWeight { /// The range of component `k` is `[0, 100]`. fn moderate_thread_lead(i: u32, k: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `823 + i * (151 ±0)` + // Measured: `825 + i * (151 ±0)` // Estimated: `8352 + i * (2746 ±0)` - // Minimum execution time: 62_000 nanoseconds. - Weight::from_ref_time(45_100_000) + // Minimum execution time: 107_012 nanoseconds. + Weight::from_ref_time(80_968_478) .saturating_add(Weight::from_proof_size(8352)) - // Standard Error: 1_677_299 - .saturating_add(Weight::from_ref_time(2_900_000).saturating_mul(i.into())) - // Standard Error: 83_864 - .saturating_add(Weight::from_ref_time(545_000).saturating_mul(k.into())) + // Standard Error: 51_851 + .saturating_add(Weight::from_ref_time(4_425_114).saturating_mul(i.into())) + // Standard Error: 2_870 + .saturating_add(Weight::from_ref_time(1_254_059).saturating_mul(k.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -494,15 +494,15 @@ impl WeightInfo for SubstrateWeight { /// The range of component `k` is `[0, 100]`. fn moderate_thread_moderator(i: u32, k: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `896 + i * (151 ±0)` + // Measured: `898 + i * (151 ±0)` // Estimated: `7849 + i * (5269 ±0)` - // Minimum execution time: 72_000 nanoseconds. - Weight::from_ref_time(45_000_000) + // Minimum execution time: 120_539 nanoseconds. + Weight::from_ref_time(78_911_391) .saturating_add(Weight::from_proof_size(7849)) - // Standard Error: 1_675_310 - .saturating_add(Weight::from_ref_time(4_500_000).saturating_mul(i.into())) - // Standard Error: 83_765 - .saturating_add(Weight::from_ref_time(545_000).saturating_mul(k.into())) + // Standard Error: 116_623 + .saturating_add(Weight::from_ref_time(7_096_197).saturating_mul(i.into())) + // Standard Error: 6_455 + .saturating_add(Weight::from_ref_time(1_275_965).saturating_mul(k.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -524,15 +524,15 @@ impl WeightInfo for SubstrateWeight { /// The range of component `j` is `[0, 100]`. fn add_post(i: u32, j: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `981 + i * (151 ±0)` + // Measured: `983 + i * (151 ±0)` // Estimated: `10905 + i * (2746 ±0)` - // Minimum execution time: 78_000 nanoseconds. - Weight::from_ref_time(58_200_000) + // Minimum execution time: 132_530 nanoseconds. + Weight::from_ref_time(106_990_265) .saturating_add(Weight::from_proof_size(10905)) - // Standard Error: 752_772 - .saturating_add(Weight::from_ref_time(3_300_000).saturating_mul(i.into())) - // Standard Error: 37_638 - .saturating_add(Weight::from_ref_time(1_560_000).saturating_mul(j.into())) + // Standard Error: 71_954 + .saturating_add(Weight::from_ref_time(4_568_001).saturating_mul(i.into())) + // Standard Error: 3_982 + .saturating_add(Weight::from_ref_time(2_570_237).saturating_mul(j.into())) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(5_u64)) @@ -550,15 +550,15 @@ impl WeightInfo for SubstrateWeight { /// The range of component `j` is `[0, 100]`. fn edit_post_text(i: u32, j: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `816 + i * (151 ±0)` + // Measured: `818 + i * (151 ±0)` // Estimated: `7820 + i * (2746 ±0)` - // Minimum execution time: 49_000 nanoseconds. - Weight::from_ref_time(32_000_000) + // Minimum execution time: 85_074 nanoseconds. + Weight::from_ref_time(54_435_493) .saturating_add(Weight::from_proof_size(7820)) - // Standard Error: 1_754_992 - .saturating_add(Weight::from_ref_time(3_000_000).saturating_mul(i.into())) - // Standard Error: 87_749 - .saturating_add(Weight::from_ref_time(1_575_000).saturating_mul(j.into())) + // Standard Error: 164_020 + .saturating_add(Weight::from_ref_time(5_486_991).saturating_mul(i.into())) + // Standard Error: 9_079 + .saturating_add(Weight::from_ref_time(2_547_456).saturating_mul(j.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -580,15 +580,15 @@ impl WeightInfo for SubstrateWeight { /// The range of component `j` is `[0, 100]`. fn moderate_post_lead(i: u32, j: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1035 + i * (151 ±0)` + // Measured: `1037 + i * (151 ±0)` // Estimated: `10976 + i * (2746 ±0)` - // Minimum execution time: 77_000 nanoseconds. - Weight::from_ref_time(51_700_000) + // Minimum execution time: 129_703 nanoseconds. + Weight::from_ref_time(95_498_625) .saturating_add(Weight::from_proof_size(10976)) - // Standard Error: 1_792_577 - .saturating_add(Weight::from_ref_time(4_300_000).saturating_mul(i.into())) - // Standard Error: 89_628 - .saturating_add(Weight::from_ref_time(565_000).saturating_mul(j.into())) + // Standard Error: 107_838 + .saturating_add(Weight::from_ref_time(5_879_509).saturating_mul(i.into())) + // Standard Error: 5_969 + .saturating_add(Weight::from_ref_time(1_262_526).saturating_mul(j.into())) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -610,15 +610,15 @@ impl WeightInfo for SubstrateWeight { /// The range of component `j` is `[0, 100]`. fn moderate_post_moderator(i: u32, j: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1108 + i * (151 ±0)` + // Measured: `1110 + i * (151 ±0)` // Estimated: `10473 + i * (5269 ±0)` - // Minimum execution time: 87_000 nanoseconds. - Weight::from_ref_time(56_200_000) + // Minimum execution time: 143_970 nanoseconds. + Weight::from_ref_time(99_846_862) .saturating_add(Weight::from_proof_size(10473)) - // Standard Error: 1_870_828 - .saturating_add(Weight::from_ref_time(5_300_000).saturating_mul(i.into())) - // Standard Error: 93_541 - .saturating_add(Weight::from_ref_time(555_000).saturating_mul(j.into())) + // Standard Error: 36_147 + .saturating_add(Weight::from_ref_time(7_579_614).saturating_mul(i.into())) + // Standard Error: 2_000 + .saturating_add(Weight::from_ref_time(1_235_729).saturating_mul(j.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -639,22 +639,22 @@ impl WeightInfo for SubstrateWeight { /// The range of component `k` is `[1, 20]`. fn delete_posts(i: u32, _j: u32, k: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1097 + i * (151 ±0) + k * (132 ±0)` - // Estimated: `10402 + k * (2624 ±0) + i * (2746 ±0)` - // Minimum execution time: 126_000 nanoseconds. - Weight::from_ref_time(126_000_000) + // Measured: `1100 + i * (151 ±0) + k * (132 ±0)` + // Estimated: `10402 + i * (2746 ±0) + k * (2624 ±0)` + // Minimum execution time: 244_506 nanoseconds. + Weight::from_ref_time(245_922_000) .saturating_add(Weight::from_proof_size(10402)) - // Standard Error: 6_233_050 - .saturating_add(Weight::from_ref_time(7_382_472).saturating_mul(i.into())) - // Standard Error: 1_780_788 - .saturating_add(Weight::from_ref_time(31_743_476).saturating_mul(k.into())) + // Standard Error: 523_091 + .saturating_add(Weight::from_ref_time(10_054_088).saturating_mul(i.into())) + // Standard Error: 154_122 + .saturating_add(Weight::from_ref_time(45_013_558).saturating_mul(k.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(k.into()))) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(k.into()))) - .saturating_add(Weight::from_proof_size(2624).saturating_mul(k.into())) .saturating_add(Weight::from_proof_size(2746).saturating_mul(i.into())) + .saturating_add(Weight::from_proof_size(2624).saturating_mul(k.into())) } // Storage: Instance1WorkingGroup CurrentLead (r:1 w:0) // Proof: Instance1WorkingGroup CurrentLead (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) @@ -668,21 +668,21 @@ impl WeightInfo for SubstrateWeight { /// The range of component `j` is `[0, 20]`. fn set_stickied_threads_lead(i: u32, j: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `507 + i * (151 ±0) + j * (107 ±0)` - // Estimated: `3282 + j * (2590 ±0) + i * (2746 ±0)` - // Minimum execution time: 41_000 nanoseconds. - Weight::from_ref_time(20_600_000) - .saturating_add(Weight::from_proof_size(3282)) - // Standard Error: 230_940 - .saturating_add(Weight::from_ref_time(3_400_000).saturating_mul(i.into())) - // Standard Error: 57_735 - .saturating_add(Weight::from_ref_time(4_250_000).saturating_mul(j.into())) + // Measured: `584 + i * (151 ±0) + j * (103 ±0)` + // Estimated: `3153 + i * (2746 ±0) + j * (2596 ±0)` + // Minimum execution time: 69_950 nanoseconds. + Weight::from_ref_time(44_644_267) + .saturating_add(Weight::from_proof_size(3153)) + // Standard Error: 38_233 + .saturating_add(Weight::from_ref_time(4_873_203).saturating_mul(i.into())) + // Standard Error: 10_331 + .saturating_add(Weight::from_ref_time(6_151_155).saturating_mul(j.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(j.into()))) .saturating_add(T::DbWeight::get().writes(1_u64)) - .saturating_add(Weight::from_proof_size(2590).saturating_mul(j.into())) .saturating_add(Weight::from_proof_size(2746).saturating_mul(i.into())) + .saturating_add(Weight::from_proof_size(2596).saturating_mul(j.into())) } // Storage: Instance1WorkingGroup WorkerById (r:1 w:0) // Proof: Instance1WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) @@ -696,21 +696,21 @@ impl WeightInfo for SubstrateWeight { /// The range of component `j` is `[0, 20]`. fn set_stickied_threads_moderator(i: u32, j: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `577 + i * (151 ±0) + j * (107 ±0)` - // Estimated: `2779 + i * (5269 ±0) + j * (2590 ±0)` - // Minimum execution time: 49_000 nanoseconds. - Weight::from_ref_time(24_300_000) - .saturating_add(Weight::from_proof_size(2779)) - // Standard Error: 496_655 - .saturating_add(Weight::from_ref_time(4_200_000).saturating_mul(i.into())) - // Standard Error: 124_163 - .saturating_add(Weight::from_ref_time(4_225_000).saturating_mul(j.into())) + // Measured: `657 + i * (151 ±0) + j * (103 ±0)` + // Estimated: `2650 + i * (5269 ±0) + j * (2596 ±0)` + // Minimum execution time: 83_657 nanoseconds. + Weight::from_ref_time(42_631_378) + .saturating_add(Weight::from_proof_size(2650)) + // Standard Error: 34_822 + .saturating_add(Weight::from_ref_time(7_488_243).saturating_mul(i.into())) + // Standard Error: 9_409 + .saturating_add(Weight::from_ref_time(6_187_498).saturating_mul(j.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(j.into()))) .saturating_add(T::DbWeight::get().writes(1_u64)) .saturating_add(Weight::from_proof_size(5269).saturating_mul(i.into())) - .saturating_add(Weight::from_proof_size(2590).saturating_mul(j.into())) + .saturating_add(Weight::from_proof_size(2596).saturating_mul(j.into())) } } diff --git a/runtime-modules/membership/src/weights.rs b/runtime-modules/membership/src/weights.rs index 6af9770c98..5784af6864 100644 --- a/runtime-modules/membership/src/weights.rs +++ b/runtime-modules/membership/src/weights.rs @@ -18,7 +18,7 @@ //! Autogenerated weights for membership //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-03-15, STEPS: `2`, REPEAT: 2, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-04-27, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("prod-test"), DB CACHE: 1024 // Executed Command: @@ -28,8 +28,8 @@ // --pallet=membership // --extrinsic=* // --chain=prod-test -// --steps=2 -// --repeat=2 +// --steps=50 +// --repeat=20 // --execution=wasm // --template=./scripts/../devops/joystream-pallet-weight-template.hbs // --output=./scripts/../runtime-modules/membership/src/weights.rs @@ -89,13 +89,13 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `212` // Estimated: `6647` - // Minimum execution time: 84_000 nanoseconds. - Weight::from_ref_time(53_000_000) + // Minimum execution time: 172_001 nanoseconds. + Weight::from_ref_time(69_590_815) .saturating_add(Weight::from_proof_size(6647)) - // Standard Error: 90_737 - .saturating_add(Weight::from_ref_time(1_290_000).saturating_mul(i.into())) - // Standard Error: 90_737 - .saturating_add(Weight::from_ref_time(375_000).saturating_mul(j.into())) + // Standard Error: 15_432 + .saturating_add(Weight::from_ref_time(2_283_164).saturating_mul(i.into())) + // Standard Error: 15_432 + .saturating_add(Weight::from_ref_time(1_114_319).saturating_mul(j.into())) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } @@ -119,13 +119,13 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `523` // Estimated: `9743` - // Minimum execution time: 94_000 nanoseconds. - Weight::from_ref_time(61_500_000) + // Minimum execution time: 203_326 nanoseconds. + Weight::from_ref_time(91_732_330) .saturating_add(Weight::from_proof_size(9743)) - // Standard Error: 87_273 - .saturating_add(Weight::from_ref_time(1_360_000).saturating_mul(i.into())) - // Standard Error: 87_273 - .saturating_add(Weight::from_ref_time(385_000).saturating_mul(j.into())) + // Standard Error: 14_290 + .saturating_add(Weight::from_ref_time(2_285_284).saturating_mul(i.into())) + // Standard Error: 14_290 + .saturating_add(Weight::from_ref_time(1_305_164).saturating_mul(j.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } @@ -139,13 +139,13 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `297` // Estimated: `5131` - // Minimum execution time: 65_000 nanoseconds. - Weight::from_ref_time(35_500_000) + // Minimum execution time: 143_971 nanoseconds. + Weight::from_ref_time(45_574_000) .saturating_add(Weight::from_proof_size(5131)) - // Standard Error: 92_826 - .saturating_add(Weight::from_ref_time(1_410_000).saturating_mul(i.into())) - // Standard Error: 92_826 - .saturating_add(Weight::from_ref_time(385_000).saturating_mul(j.into())) + // Standard Error: 13_636 + .saturating_add(Weight::from_ref_time(2_516_779).saturating_mul(i.into())) + // Standard Error: 13_636 + .saturating_add(Weight::from_ref_time(1_135_915).saturating_mul(j.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -153,8 +153,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_000 nanoseconds. - Weight::from_ref_time(3_000_000) + // Minimum execution time: 5_386 nanoseconds. + Weight::from_ref_time(5_600_000) .saturating_add(Weight::from_proof_size(0)) } // Storage: Membership MembershipById (r:1 w:1) @@ -163,8 +163,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `252` // Estimated: `2600` - // Minimum execution time: 13_000 nanoseconds. - Weight::from_ref_time(14_000_000) + // Minimum execution time: 24_126 nanoseconds. + Weight::from_ref_time(24_982_000) .saturating_add(Weight::from_proof_size(2600)) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -175,8 +175,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `252` // Estimated: `2600` - // Minimum execution time: 14_000 nanoseconds. - Weight::from_ref_time(14_000_000) + // Minimum execution time: 24_073 nanoseconds. + Weight::from_ref_time(24_735_000) .saturating_add(Weight::from_proof_size(2600)) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -187,8 +187,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `252` // Estimated: `2600` - // Minimum execution time: 13_000 nanoseconds. - Weight::from_ref_time(14_000_000) + // Minimum execution time: 24_298 nanoseconds. + Weight::from_ref_time(24_720_000) .saturating_add(Weight::from_proof_size(2600)) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -199,8 +199,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 7_000 nanoseconds. - Weight::from_ref_time(8_000_000) + // Minimum execution time: 12_756 nanoseconds. + Weight::from_ref_time(13_215_000) .saturating_add(Weight::from_proof_size(0)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -210,8 +210,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `420` // Estimated: `5200` - // Minimum execution time: 19_000 nanoseconds. - Weight::from_ref_time(19_000_000) + // Minimum execution time: 33_018 nanoseconds. + Weight::from_ref_time(33_583_000) .saturating_add(Weight::from_proof_size(5200)) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) @@ -236,13 +236,13 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `582` // Estimated: `13033` - // Minimum execution time: 91_000 nanoseconds. - Weight::from_ref_time(70_590_909) + // Minimum execution time: 189_550 nanoseconds. + Weight::from_ref_time(97_221_906) .saturating_add(Weight::from_proof_size(13033)) - // Standard Error: 100_503 - .saturating_add(Weight::from_ref_time(1_409_090).saturating_mul(i.into())) - // Standard Error: 99_498 - .saturating_add(Weight::from_ref_time(270_000).saturating_mul(j.into())) + // Standard Error: 15_282 + .saturating_add(Weight::from_ref_time(2_242_387).saturating_mul(i.into())) + // Standard Error: 15_101 + .saturating_add(Weight::from_ref_time(1_116_129).saturating_mul(j.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(7_u64)) } @@ -264,13 +264,13 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `292` // Estimated: `18902` - // Minimum execution time: 139_000 nanoseconds. - Weight::from_ref_time(108_131_313) + // Minimum execution time: 263_823 nanoseconds. + Weight::from_ref_time(157_858_373) .saturating_add(Weight::from_proof_size(18902)) - // Standard Error: 90_815 - .saturating_add(Weight::from_ref_time(1_368_686).saturating_mul(i.into())) - // Standard Error: 89_907 - .saturating_add(Weight::from_ref_time(370_000).saturating_mul(j.into())) + // Standard Error: 24_358 + .saturating_add(Weight::from_ref_time(2_335_509).saturating_mul(i.into())) + // Standard Error: 24_069 + .saturating_add(Weight::from_ref_time(1_196_975).saturating_mul(j.into())) .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().writes(8_u64)) } @@ -280,8 +280,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 7_000 nanoseconds. - Weight::from_ref_time(8_000_000) + // Minimum execution time: 13_388 nanoseconds. + Weight::from_ref_time(13_798_000) .saturating_add(Weight::from_proof_size(0)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -293,8 +293,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `665` // Estimated: `5250` - // Minimum execution time: 19_000 nanoseconds. - Weight::from_ref_time(19_000_000) + // Minimum execution time: 32_578 nanoseconds. + Weight::from_ref_time(33_501_000) .saturating_add(Weight::from_proof_size(5250)) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -309,8 +309,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `665` // Estimated: `5753` - // Minimum execution time: 19_000 nanoseconds. - Weight::from_ref_time(20_000_000) + // Minimum execution time: 33_967 nanoseconds. + Weight::from_ref_time(34_983_000) .saturating_add(Weight::from_proof_size(5753)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -321,8 +321,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 7_000 nanoseconds. - Weight::from_ref_time(8_000_000) + // Minimum execution time: 12_907 nanoseconds. + Weight::from_ref_time(13_532_000) .saturating_add(Weight::from_proof_size(0)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -332,8 +332,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 7_000 nanoseconds. - Weight::from_ref_time(7_000_000) + // Minimum execution time: 12_667 nanoseconds. + Weight::from_ref_time(13_000_000) .saturating_add(Weight::from_proof_size(0)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -349,8 +349,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `520` // Estimated: `11509` - // Minimum execution time: 30_000 nanoseconds. - Weight::from_ref_time(32_000_000) + // Minimum execution time: 53_290 nanoseconds. + Weight::from_ref_time(54_588_000) .saturating_add(Weight::from_proof_size(11509)) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -363,8 +363,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `331` // Estimated: `5132` - // Minimum execution time: 20_000 nanoseconds. - Weight::from_ref_time(21_000_000) + // Minimum execution time: 35_469 nanoseconds. + Weight::from_ref_time(36_290_000) .saturating_add(Weight::from_proof_size(5132)) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -381,8 +381,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `637` // Estimated: `11509` - // Minimum execution time: 30_000 nanoseconds. - Weight::from_ref_time(30_000_000) + // Minimum execution time: 51_153 nanoseconds. + Weight::from_ref_time(52_392_000) .saturating_add(Weight::from_proof_size(11509)) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -393,8 +393,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `252` // Estimated: `2600` - // Minimum execution time: 12_000 nanoseconds. - Weight::from_ref_time(12_000_000) + // Minimum execution time: 21_218 nanoseconds. + Weight::from_ref_time(21_505_000) .saturating_add(Weight::from_proof_size(2600)) .saturating_add(T::DbWeight::get().reads(1_u64)) } @@ -406,8 +406,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `510` // Estimated: `7806` - // Minimum execution time: 38_000 nanoseconds. - Weight::from_ref_time(39_000_000) + // Minimum execution time: 62_776 nanoseconds. + Weight::from_ref_time(63_407_000) .saturating_add(Weight::from_proof_size(7806)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) @@ -426,13 +426,13 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `6` // Estimated: `3533` - // Minimum execution time: 66_000 nanoseconds. - Weight::from_ref_time(20_449_494) + // Minimum execution time: 153_777 nanoseconds. + Weight::from_ref_time(29_798_904) .saturating_add(Weight::from_proof_size(3533)) - // Standard Error: 82_267 - .saturating_add(Weight::from_ref_time(1_550_505).saturating_mul(i.into())) - // Standard Error: 81_445 - .saturating_add(Weight::from_ref_time(475_000).saturating_mul(j.into())) + // Standard Error: 13_431 + .saturating_add(Weight::from_ref_time(2_707_535).saturating_mul(i.into())) + // Standard Error: 13_272 + .saturating_add(Weight::from_ref_time(1_355_694).saturating_mul(j.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } diff --git a/runtime-modules/project-token/src/weights.rs b/runtime-modules/project-token/src/weights.rs index 938697cf08..7e959a268b 100644 --- a/runtime-modules/project-token/src/weights.rs +++ b/runtime-modules/project-token/src/weights.rs @@ -18,7 +18,7 @@ //! Autogenerated weights for project_token //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-03-15, STEPS: `2`, REPEAT: 2, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-04-27, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("prod-test"), DB CACHE: 1024 // Executed Command: @@ -28,8 +28,8 @@ // --pallet=project_token // --extrinsic=* // --chain=prod-test -// --steps=2 -// --repeat=2 +// --steps=50 +// --repeat=20 // --execution=wasm // --template=./scripts/../devops/joystream-pallet-weight-template.hbs // --output=./scripts/../runtime-modules/project-token/src/weights.rs @@ -68,17 +68,15 @@ impl WeightInfo for SubstrateWeight { // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) /// The range of component `o` is `[1, 1024]`. /// The range of component `m` is `[1, 100]`. - fn transfer(o: u32, m: u32, ) -> Weight { + fn transfer(o: u32, _m: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1478 + o * (165 ±0)` + // Measured: `1800 + o * (165 ±0)` // Estimated: `14095 + o * (5564 ±0)` - // Minimum execution time: 123_000 nanoseconds. - Weight::from_ref_time(24_933_854) + // Minimum execution time: 253_999 nanoseconds. + Weight::from_ref_time(255_429_000) .saturating_add(Weight::from_proof_size(14095)) - // Standard Error: 20_068 - .saturating_add(Weight::from_ref_time(9_591_397).saturating_mul(o.into())) - // Standard Error: 207_378 - .saturating_add(Weight::from_ref_time(974_747).saturating_mul(m.into())) + // Standard Error: 10_580 + .saturating_add(Weight::from_ref_time(14_311_797).saturating_mul(o.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(o.into()))) .saturating_add(T::DbWeight::get().writes(4_u64)) @@ -97,8 +95,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1179` // Estimated: `13584` - // Minimum execution time: 45_000 nanoseconds. - Weight::from_ref_time(46_000_000) + // Minimum execution time: 76_987 nanoseconds. + Weight::from_ref_time(77_895_000) .saturating_add(Weight::from_proof_size(13584)) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) @@ -118,11 +116,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1173` // Estimated: `14095` - // Minimum execution time: 59_000 nanoseconds. - Weight::from_ref_time(58_500_000) + // Minimum execution time: 100_817 nanoseconds. + Weight::from_ref_time(104_474_421) .saturating_add(Weight::from_proof_size(14095)) - // Standard Error: 283_278 - .saturating_add(Weight::from_ref_time(1_000_000).saturating_mul(h.into())) + // Standard Error: 94_840 + .saturating_add(Weight::from_ref_time(470_863).saturating_mul(h.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } @@ -142,8 +140,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1441` // Estimated: `17197` - // Minimum execution time: 80_000 nanoseconds. - Weight::from_ref_time(80_000_000) + // Minimum execution time: 133_502 nanoseconds. + Weight::from_ref_time(135_329_000) .saturating_add(Weight::from_proof_size(17197)) .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().writes(5_u64)) @@ -160,8 +158,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1589` // Estimated: `13584` - // Minimum execution time: 55_000 nanoseconds. - Weight::from_ref_time(56_000_000) + // Minimum execution time: 92_423 nanoseconds. + Weight::from_ref_time(94_180_000) .saturating_add(Weight::from_proof_size(13584)) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) @@ -176,8 +174,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1211` // Estimated: `8378` - // Minimum execution time: 31_000 nanoseconds. - Weight::from_ref_time(31_000_000) + // Minimum execution time: 53_350 nanoseconds. + Weight::from_ref_time(54_296_000) .saturating_add(Weight::from_proof_size(8378)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -192,8 +190,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1095` // Estimated: `8378` - // Minimum execution time: 32_000 nanoseconds. - Weight::from_ref_time(33_000_000) + // Minimum execution time: 54_870 nanoseconds. + Weight::from_ref_time(55_701_000) .saturating_add(Weight::from_proof_size(8378)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) @@ -202,7 +200,7 @@ impl WeightInfo for SubstrateWeight { // Default implementation for tests impl WeightInfo for () { - fn transfer(o: u32, m: u32, ) -> Weight { + fn transfer(o: u32, _m: u32, ) -> Weight { Weight::from_ref_time(0) } fn dust_account() -> Weight { diff --git a/runtime-modules/proposals/codex/src/weights.rs b/runtime-modules/proposals/codex/src/weights.rs index dcd19bd91b..f3f6b97435 100644 --- a/runtime-modules/proposals/codex/src/weights.rs +++ b/runtime-modules/proposals/codex/src/weights.rs @@ -18,7 +18,7 @@ //! Autogenerated weights for proposals_codex //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-03-15, STEPS: `2`, REPEAT: 2, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-04-27, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("prod-test"), DB CACHE: 1024 // Executed Command: @@ -28,8 +28,8 @@ // --pallet=proposals_codex // --extrinsic=* // --chain=prod-test -// --steps=2 -// --repeat=2 +// --steps=50 +// --repeat=20 // --execution=wasm // --template=./scripts/../devops/joystream-pallet-weight-template.hbs // --output=./scripts/../runtime-modules/proposals/codex/src/weights.rs @@ -97,15 +97,19 @@ impl WeightInfo for SubstrateWeight { /// The range of component `i` is `[1, 100]`. /// The range of component `t` is `[1, 20]`. /// The range of component `d` is `[1, 20]`. - fn create_proposal_signal(i: u32, _t: u32, _d: u32, ) -> Weight { + fn create_proposal_signal(i: u32, t: u32, d: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `748` // Estimated: `13010` - // Minimum execution time: 86_000 nanoseconds. - Weight::from_ref_time(139_119_085) + // Minimum execution time: 168_279 nanoseconds. + Weight::from_ref_time(121_795_019) .saturating_add(Weight::from_proof_size(13010)) - // Standard Error: 284_547 - .saturating_add(Weight::from_ref_time(828_282).saturating_mul(i.into())) + // Standard Error: 8_302 + .saturating_add(Weight::from_ref_time(2_222_500).saturating_mul(i.into())) + // Standard Error: 42_015 + .saturating_add(Weight::from_ref_time(905_353).saturating_mul(t.into())) + // Standard Error: 42_015 + .saturating_add(Weight::from_ref_time(1_223_391).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(9_u64)) } @@ -138,15 +142,15 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `748` // Estimated: `13010` - // Minimum execution time: 85_000 nanoseconds. - Weight::from_ref_time(76_070_042) + // Minimum execution time: 165_639 nanoseconds. + Weight::from_ref_time(114_603_300) .saturating_add(Weight::from_proof_size(13010)) - // Standard Error: 110_405 - .saturating_add(Weight::from_ref_time(851_010).saturating_mul(i.into())) - // Standard Error: 575_272 - .saturating_add(Weight::from_ref_time(302_631).saturating_mul(t.into())) - // Standard Error: 575_272 - .saturating_add(Weight::from_ref_time(276_315).saturating_mul(d.into())) + // Standard Error: 7_610 + .saturating_add(Weight::from_ref_time(2_247_648).saturating_mul(i.into())) + // Standard Error: 38_512 + .saturating_add(Weight::from_ref_time(995_866).saturating_mul(t.into())) + // Standard Error: 38_512 + .saturating_add(Weight::from_ref_time(1_350_730).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(9_u64)) } @@ -179,15 +183,15 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `748` // Estimated: `13010` - // Minimum execution time: 73_000 nanoseconds. - Weight::from_ref_time(54_710_526) + // Minimum execution time: 136_387 nanoseconds. + Weight::from_ref_time(113_852_680) .saturating_add(Weight::from_proof_size(13010)) - // Standard Error: 176_040 - .saturating_add(Weight::from_ref_time(184_210).saturating_mul(i.into())) - // Standard Error: 176_040 - .saturating_add(Weight::from_ref_time(763_157).saturating_mul(t.into())) - // Standard Error: 176_040 - .saturating_add(Weight::from_ref_time(842_105).saturating_mul(d.into())) + // Standard Error: 51_631 + .saturating_add(Weight::from_ref_time(7_179).saturating_mul(i.into())) + // Standard Error: 51_631 + .saturating_add(Weight::from_ref_time(1_432_417).saturating_mul(t.into())) + // Standard Error: 51_631 + .saturating_add(Weight::from_ref_time(1_322_421).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(9_u64)) } @@ -221,13 +225,13 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1264` // Estimated: `13509` - // Minimum execution time: 72_000 nanoseconds. - Weight::from_ref_time(60_605_263) + // Minimum execution time: 135_990 nanoseconds. + Weight::from_ref_time(106_104_601) .saturating_add(Weight::from_proof_size(13509)) - // Standard Error: 259_625 - .saturating_add(Weight::from_ref_time(631_578).saturating_mul(t.into())) - // Standard Error: 259_625 - .saturating_add(Weight::from_ref_time(763_157).saturating_mul(d.into())) + // Standard Error: 24_695 + .saturating_add(Weight::from_ref_time(1_445_542).saturating_mul(t.into())) + // Standard Error: 24_695 + .saturating_add(Weight::from_ref_time(1_687_940).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().writes(9_u64)) } @@ -259,13 +263,13 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1110` // Estimated: `15625` - // Minimum execution time: 77_000 nanoseconds. - Weight::from_ref_time(68_421_052) + // Minimum execution time: 144_427 nanoseconds. + Weight::from_ref_time(117_565_761) .saturating_add(Weight::from_proof_size(15625)) - // Standard Error: 167_816 - .saturating_add(Weight::from_ref_time(552_631).saturating_mul(t.into())) - // Standard Error: 167_816 - .saturating_add(Weight::from_ref_time(526_315).saturating_mul(d.into())) + // Standard Error: 16_155 + .saturating_add(Weight::from_ref_time(1_300_435).saturating_mul(t.into())) + // Standard Error: 16_155 + .saturating_add(Weight::from_ref_time(1_562_037).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().writes(9_u64)) } @@ -298,15 +302,15 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `748` // Estimated: `13010` - // Minimum execution time: 81_000 nanoseconds. - Weight::from_ref_time(66_677_033) + // Minimum execution time: 168_327 nanoseconds. + Weight::from_ref_time(122_937_332) .saturating_add(Weight::from_proof_size(13010)) - // Standard Error: 112_678 - .saturating_add(Weight::from_ref_time(954_545).saturating_mul(i.into())) - // Standard Error: 587_113 - .saturating_add(Weight::from_ref_time(342_105).saturating_mul(t.into())) - // Standard Error: 587_113 - .saturating_add(Weight::from_ref_time(526_315).saturating_mul(d.into())) + // Standard Error: 8_387 + .saturating_add(Weight::from_ref_time(2_461_409).saturating_mul(i.into())) + // Standard Error: 42_446 + .saturating_add(Weight::from_ref_time(873_092).saturating_mul(t.into())) + // Standard Error: 42_446 + .saturating_add(Weight::from_ref_time(1_094_578).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(9_u64)) } @@ -342,13 +346,13 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1199` // Estimated: `18242` - // Minimum execution time: 79_000 nanoseconds. - Weight::from_ref_time(65_947_368) + // Minimum execution time: 149_667 nanoseconds. + Weight::from_ref_time(120_402_800) .saturating_add(Weight::from_proof_size(18242)) - // Standard Error: 188_545 - .saturating_add(Weight::from_ref_time(736_842).saturating_mul(t.into())) - // Standard Error: 188_545 - .saturating_add(Weight::from_ref_time(815_789).saturating_mul(d.into())) + // Standard Error: 15_250 + .saturating_add(Weight::from_ref_time(1_392_186).saturating_mul(t.into())) + // Standard Error: 15_250 + .saturating_add(Weight::from_ref_time(1_674_345).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(9_u64)) .saturating_add(T::DbWeight::get().writes(9_u64)) } @@ -380,13 +384,13 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `748` // Estimated: `13010` - // Minimum execution time: 67_000 nanoseconds. - Weight::from_ref_time(55_578_947) + // Minimum execution time: 129_980 nanoseconds. + Weight::from_ref_time(104_728_151) .saturating_add(Weight::from_proof_size(13010)) - // Standard Error: 231_419 - .saturating_add(Weight::from_ref_time(631_578).saturating_mul(t.into())) - // Standard Error: 231_419 - .saturating_add(Weight::from_ref_time(789_473).saturating_mul(d.into())) + // Standard Error: 22_786 + .saturating_add(Weight::from_ref_time(1_225_902).saturating_mul(t.into())) + // Standard Error: 22_786 + .saturating_add(Weight::from_ref_time(1_547_157).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(9_u64)) } @@ -420,13 +424,13 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `883` // Estimated: `13513` - // Minimum execution time: 73_000 nanoseconds. - Weight::from_ref_time(61_078_947) + // Minimum execution time: 135_812 nanoseconds. + Weight::from_ref_time(107_722_679) .saturating_add(Weight::from_proof_size(13513)) - // Standard Error: 213_790 - .saturating_add(Weight::from_ref_time(736_842).saturating_mul(t.into())) - // Standard Error: 213_790 - .saturating_add(Weight::from_ref_time(684_210).saturating_mul(d.into())) + // Standard Error: 18_958 + .saturating_add(Weight::from_ref_time(1_348_737).saturating_mul(t.into())) + // Standard Error: 18_958 + .saturating_add(Weight::from_ref_time(1_588_174).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().writes(9_u64)) } @@ -460,13 +464,13 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `883` // Estimated: `13513` - // Minimum execution time: 73_000 nanoseconds. - Weight::from_ref_time(61_131_578) + // Minimum execution time: 136_463 nanoseconds. + Weight::from_ref_time(109_968_760) .saturating_add(Weight::from_proof_size(13513)) - // Standard Error: 215_939 - .saturating_add(Weight::from_ref_time(657_894).saturating_mul(t.into())) - // Standard Error: 215_939 - .saturating_add(Weight::from_ref_time(710_526).saturating_mul(d.into())) + // Standard Error: 18_091 + .saturating_add(Weight::from_ref_time(1_294_254).saturating_mul(t.into())) + // Standard Error: 18_091 + .saturating_add(Weight::from_ref_time(1_503_221).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().writes(9_u64)) } @@ -500,13 +504,13 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `883` // Estimated: `13513` - // Minimum execution time: 72_000 nanoseconds. - Weight::from_ref_time(59_552_631) + // Minimum execution time: 136_331 nanoseconds. + Weight::from_ref_time(109_448_455) .saturating_add(Weight::from_proof_size(13513)) - // Standard Error: 203_841 - .saturating_add(Weight::from_ref_time(684_210).saturating_mul(t.into())) - // Standard Error: 203_841 - .saturating_add(Weight::from_ref_time(763_157).saturating_mul(d.into())) + // Standard Error: 15_765 + .saturating_add(Weight::from_ref_time(1_289_154).saturating_mul(t.into())) + // Standard Error: 15_765 + .saturating_add(Weight::from_ref_time(1_530_278).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().writes(9_u64)) } @@ -540,13 +544,13 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `883` // Estimated: `13513` - // Minimum execution time: 72_000 nanoseconds. - Weight::from_ref_time(60_605_263) + // Minimum execution time: 136_451 nanoseconds. + Weight::from_ref_time(108_047_954) .saturating_add(Weight::from_proof_size(13513)) - // Standard Error: 229_415 - .saturating_add(Weight::from_ref_time(631_578).saturating_mul(t.into())) - // Standard Error: 229_415 - .saturating_add(Weight::from_ref_time(763_157).saturating_mul(d.into())) + // Standard Error: 16_349 + .saturating_add(Weight::from_ref_time(1_353_018).saturating_mul(t.into())) + // Standard Error: 16_349 + .saturating_add(Weight::from_ref_time(1_557_467).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().writes(9_u64)) } @@ -579,15 +583,15 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `748` // Estimated: `13010` - // Minimum execution time: 82_000 nanoseconds. - Weight::from_ref_time(81_414_673) + // Minimum execution time: 166_931 nanoseconds. + Weight::from_ref_time(116_434_686) .saturating_add(Weight::from_proof_size(13010)) - // Standard Error: 131_628 - .saturating_add(Weight::from_ref_time(848_484).saturating_mul(i.into())) - // Standard Error: 685_853 - .saturating_add(Weight::from_ref_time(52_631).saturating_mul(t.into())) - // Standard Error: 685_853 - .saturating_add(Weight::from_ref_time(184_210).saturating_mul(d.into())) + // Standard Error: 7_995 + .saturating_add(Weight::from_ref_time(2_220_836).saturating_mul(i.into())) + // Standard Error: 40_462 + .saturating_add(Weight::from_ref_time(1_025_560).saturating_mul(t.into())) + // Standard Error: 40_462 + .saturating_add(Weight::from_ref_time(1_249_053).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(9_u64)) } @@ -621,13 +625,13 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `932` // Estimated: `15599` - // Minimum execution time: 73_000 nanoseconds. - Weight::from_ref_time(61_657_894) + // Minimum execution time: 138_288 nanoseconds. + Weight::from_ref_time(111_028_404) .saturating_add(Weight::from_proof_size(15599)) - // Standard Error: 203_841 - .saturating_add(Weight::from_ref_time(631_578).saturating_mul(t.into())) - // Standard Error: 203_841 - .saturating_add(Weight::from_ref_time(710_526).saturating_mul(d.into())) + // Standard Error: 49_302 + .saturating_add(Weight::from_ref_time(1_433_172).saturating_mul(t.into())) + // Standard Error: 49_302 + .saturating_add(Weight::from_ref_time(1_506_172).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().writes(9_u64)) } @@ -659,13 +663,13 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `748` // Estimated: `13010` - // Minimum execution time: 68_000 nanoseconds. - Weight::from_ref_time(55_500_000) + // Minimum execution time: 129_663 nanoseconds. + Weight::from_ref_time(103_995_278) .saturating_add(Weight::from_proof_size(13010)) - // Standard Error: 225_354 - .saturating_add(Weight::from_ref_time(763_157).saturating_mul(t.into())) - // Standard Error: 225_354 - .saturating_add(Weight::from_ref_time(736_842).saturating_mul(d.into())) + // Standard Error: 31_797 + .saturating_add(Weight::from_ref_time(1_195_120).saturating_mul(t.into())) + // Standard Error: 31_797 + .saturating_add(Weight::from_ref_time(1_599_111).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(9_u64)) } @@ -697,13 +701,13 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `748` // Estimated: `13010` - // Minimum execution time: 68_000 nanoseconds. - Weight::from_ref_time(53_973_684) + // Minimum execution time: 129_918 nanoseconds. + Weight::from_ref_time(101_877_833) .saturating_add(Weight::from_proof_size(13010)) - // Standard Error: 195_753 - .saturating_add(Weight::from_ref_time(736_842).saturating_mul(t.into())) - // Standard Error: 195_753 - .saturating_add(Weight::from_ref_time(789_473).saturating_mul(d.into())) + // Standard Error: 14_762 + .saturating_add(Weight::from_ref_time(1_311_760).saturating_mul(t.into())) + // Standard Error: 14_762 + .saturating_add(Weight::from_ref_time(1_570_803).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(9_u64)) } @@ -735,13 +739,13 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `748` // Estimated: `13010` - // Minimum execution time: 68_000 nanoseconds. - Weight::from_ref_time(57_131_578) + // Minimum execution time: 129_749 nanoseconds. + Weight::from_ref_time(102_373_145) .saturating_add(Weight::from_proof_size(13010)) - // Standard Error: 244_042 - .saturating_add(Weight::from_ref_time(605_263).saturating_mul(t.into())) - // Standard Error: 244_042 - .saturating_add(Weight::from_ref_time(763_157).saturating_mul(d.into())) + // Standard Error: 38_796 + .saturating_add(Weight::from_ref_time(1_388_467).saturating_mul(t.into())) + // Standard Error: 38_796 + .saturating_add(Weight::from_ref_time(1_520_884).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(9_u64)) } @@ -773,13 +777,13 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `748` // Estimated: `13010` - // Minimum execution time: 68_000 nanoseconds. - Weight::from_ref_time(55_526_315) + // Minimum execution time: 130_699 nanoseconds. + Weight::from_ref_time(102_879_878) .saturating_add(Weight::from_proof_size(13010)) - // Standard Error: 237_328 - .saturating_add(Weight::from_ref_time(657_894).saturating_mul(t.into())) - // Standard Error: 237_328 - .saturating_add(Weight::from_ref_time(815_789).saturating_mul(d.into())) + // Standard Error: 15_942 + .saturating_add(Weight::from_ref_time(1_302_797).saturating_mul(t.into())) + // Standard Error: 15_942 + .saturating_add(Weight::from_ref_time(1_524_297).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(9_u64)) } @@ -811,13 +815,13 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `748` // Estimated: `13010` - // Minimum execution time: 68_000 nanoseconds. - Weight::from_ref_time(55_078_947) + // Minimum execution time: 128_590 nanoseconds. + Weight::from_ref_time(103_411_521) .saturating_add(Weight::from_proof_size(13010)) - // Standard Error: 193_380 - .saturating_add(Weight::from_ref_time(710_526).saturating_mul(t.into())) - // Standard Error: 193_380 - .saturating_add(Weight::from_ref_time(710_526).saturating_mul(d.into())) + // Standard Error: 16_618 + .saturating_add(Weight::from_ref_time(1_263_130).saturating_mul(t.into())) + // Standard Error: 16_618 + .saturating_add(Weight::from_ref_time(1_513_734).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(9_u64)) } @@ -849,13 +853,13 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `748` // Estimated: `13010` - // Minimum execution time: 67_000 nanoseconds. - Weight::from_ref_time(58_263_157) + // Minimum execution time: 129_283 nanoseconds. + Weight::from_ref_time(100_819_015) .saturating_add(Weight::from_proof_size(13010)) - // Standard Error: 236_354 - .saturating_add(Weight::from_ref_time(552_631).saturating_mul(t.into())) - // Standard Error: 236_354 - .saturating_add(Weight::from_ref_time(684_210).saturating_mul(d.into())) + // Standard Error: 15_687 + .saturating_add(Weight::from_ref_time(1_362_001).saturating_mul(t.into())) + // Standard Error: 15_687 + .saturating_add(Weight::from_ref_time(1_607_589).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(9_u64)) } @@ -887,13 +891,13 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `748` // Estimated: `13010` - // Minimum execution time: 68_000 nanoseconds. - Weight::from_ref_time(56_657_894) + // Minimum execution time: 129_372 nanoseconds. + Weight::from_ref_time(101_649_691) .saturating_add(Weight::from_proof_size(13010)) - // Standard Error: 203_841 - .saturating_add(Weight::from_ref_time(631_578).saturating_mul(t.into())) - // Standard Error: 203_841 - .saturating_add(Weight::from_ref_time(710_526).saturating_mul(d.into())) + // Standard Error: 17_429 + .saturating_add(Weight::from_ref_time(1_311_031).saturating_mul(t.into())) + // Standard Error: 17_429 + .saturating_add(Weight::from_ref_time(1_580_951).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(9_u64)) } @@ -925,13 +929,13 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `748` // Estimated: `13010` - // Minimum execution time: 68_000 nanoseconds. - Weight::from_ref_time(55_078_947) + // Minimum execution time: 129_443 nanoseconds. + Weight::from_ref_time(100_755_605) .saturating_add(Weight::from_proof_size(13010)) - // Standard Error: 195_753 - .saturating_add(Weight::from_ref_time(684_210).saturating_mul(t.into())) - // Standard Error: 195_753 - .saturating_add(Weight::from_ref_time(736_842).saturating_mul(d.into())) + // Standard Error: 15_869 + .saturating_add(Weight::from_ref_time(1_373_149).saturating_mul(t.into())) + // Standard Error: 15_869 + .saturating_add(Weight::from_ref_time(1_603_975).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(9_u64)) } @@ -964,15 +968,15 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `748` // Estimated: `13010` - // Minimum execution time: 83_000 nanoseconds. - Weight::from_ref_time(66_500_000) + // Minimum execution time: 164_554 nanoseconds. + Weight::from_ref_time(116_215_664) .saturating_add(Weight::from_proof_size(13010)) - // Standard Error: 697_368 - .saturating_add(Weight::from_ref_time(578_947).saturating_mul(t.into())) - // Standard Error: 697_368 - .saturating_add(Weight::from_ref_time(421_052).saturating_mul(d.into())) - // Standard Error: 132_500 - .saturating_add(Weight::from_ref_time(895_000).saturating_mul(i.into())) + // Standard Error: 62_380 + .saturating_add(Weight::from_ref_time(1_030_472).saturating_mul(t.into())) + // Standard Error: 62_380 + .saturating_add(Weight::from_ref_time(1_320_282).saturating_mul(d.into())) + // Standard Error: 12_181 + .saturating_add(Weight::from_ref_time(2_306_996).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(9_u64)) } @@ -980,7 +984,7 @@ impl WeightInfo for SubstrateWeight { // Default implementation for tests impl WeightInfo for () { - fn create_proposal_signal(i: u32, _t: u32, _d: u32, ) -> Weight { + fn create_proposal_signal(i: u32, t: u32, d: u32, ) -> Weight { Weight::from_ref_time(0) } fn create_proposal_runtime_upgrade(i: u32, t: u32, d: u32, ) -> Weight { diff --git a/runtime-modules/proposals/discussion/src/weights.rs b/runtime-modules/proposals/discussion/src/weights.rs index 54f0ff8692..6104b465b2 100644 --- a/runtime-modules/proposals/discussion/src/weights.rs +++ b/runtime-modules/proposals/discussion/src/weights.rs @@ -18,7 +18,7 @@ //! Autogenerated weights for proposals_discussion //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-03-15, STEPS: `2`, REPEAT: 2, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-04-27, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("prod-test"), DB CACHE: 1024 // Executed Command: @@ -28,8 +28,8 @@ // --pallet=proposals_discussion // --extrinsic=* // --chain=prod-test -// --steps=2 -// --repeat=2 +// --steps=50 +// --repeat=20 // --execution=wasm // --template=./scripts/../devops/joystream-pallet-weight-template.hbs // --output=./scripts/../runtime-modules/proposals/discussion/src/weights.rs @@ -70,11 +70,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `2120` // Estimated: `11802` - // Minimum execution time: 63_000 nanoseconds. - Weight::from_ref_time(63_500_000) + // Minimum execution time: 107_564 nanoseconds. + Weight::from_ref_time(109_669_013) .saturating_add(Weight::from_proof_size(11802)) - // Standard Error: 50_249 - .saturating_add(Weight::from_ref_time(545_000).saturating_mul(j.into())) + // Standard Error: 2_367 + .saturating_add(Weight::from_ref_time(1_287_875).saturating_mul(j.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } @@ -89,11 +89,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `626` // Estimated: `7857` - // Minimum execution time: 24_000 nanoseconds. - Weight::from_ref_time(24_500_000) + // Minimum execution time: 42_043 nanoseconds. + Weight::from_ref_time(42_212_217) .saturating_add(Weight::from_proof_size(7857)) - // Standard Error: 75_166 - .saturating_add(Weight::from_ref_time(560_000).saturating_mul(j.into())) + // Standard Error: 2_775 + .saturating_add(Weight::from_ref_time(1_266_074).saturating_mul(j.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -109,8 +109,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `932` // Estimated: `13063` - // Minimum execution time: 41_000 nanoseconds. - Weight::from_ref_time(42_000_000) + // Minimum execution time: 69_322 nanoseconds. + Weight::from_ref_time(70_333_000) .saturating_add(Weight::from_proof_size(13063)) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -124,13 +124,13 @@ impl WeightInfo for SubstrateWeight { /// The range of component `i` is `[1, 20]`. fn change_thread_mode(i: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1113 + i * (168 ±0)` + // Measured: `1182 + i * (165 ±0)` // Estimated: `3493 + i * (2600 ±0)` - // Minimum execution time: 30_000 nanoseconds. - Weight::from_ref_time(26_973_684) + // Minimum execution time: 50_747 nanoseconds. + Weight::from_ref_time(49_034_143) .saturating_add(Weight::from_proof_size(3493)) - // Standard Error: 26_315 - .saturating_add(Weight::from_ref_time(3_026_315).saturating_mul(i.into())) + // Standard Error: 14_801 + .saturating_add(Weight::from_ref_time(4_542_454).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(1_u64)) diff --git a/runtime-modules/proposals/engine/src/weights.rs b/runtime-modules/proposals/engine/src/weights.rs index 5f375bf63a..b3cdde2d04 100644 --- a/runtime-modules/proposals/engine/src/weights.rs +++ b/runtime-modules/proposals/engine/src/weights.rs @@ -18,7 +18,7 @@ //! Autogenerated weights for proposals_engine //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-03-15, STEPS: `2`, REPEAT: 2, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-04-27, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("prod-test"), DB CACHE: 1024 // Executed Command: @@ -28,8 +28,8 @@ // --pallet=proposals_engine // --extrinsic=* // --chain=prod-test -// --steps=2 -// --repeat=2 +// --steps=50 +// --repeat=20 // --execution=wasm // --template=./scripts/../devops/joystream-pallet-weight-template.hbs // --output=./scripts/../runtime-modules/proposals/engine/src/weights.rs @@ -72,11 +72,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1432` // Estimated: `8555` - // Minimum execution time: 31_000 nanoseconds. - Weight::from_ref_time(32_000_000) + // Minimum execution time: 53_399 nanoseconds. + Weight::from_ref_time(54_184_554) .saturating_add(Weight::from_proof_size(8555)) - // Standard Error: 80_622 - .saturating_add(Weight::from_ref_time(490_000).saturating_mul(i.into())) + // Standard Error: 1_612 + .saturating_add(Weight::from_ref_time(1_093_687).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -100,8 +100,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `976` // Estimated: `12091` - // Minimum execution time: 70_000 nanoseconds. - Weight::from_ref_time(70_000_000) + // Minimum execution time: 114_711 nanoseconds. + Weight::from_ref_time(115_693_000) .saturating_add(Weight::from_proof_size(12091)) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(7_u64)) @@ -124,8 +124,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `691` // Estimated: `9491` - // Minimum execution time: 39_000 nanoseconds. - Weight::from_ref_time(42_000_000) + // Minimum execution time: 64_722 nanoseconds. + Weight::from_ref_time(65_340_000) .saturating_add(Weight::from_proof_size(9491)) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(7_u64)) @@ -138,8 +138,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `612` // Estimated: `5215` - // Minimum execution time: 18_000 nanoseconds. - Weight::from_ref_time(18_000_000) + // Minimum execution time: 31_309 nanoseconds. + Weight::from_ref_time(31_666_000) .saturating_add(Weight::from_proof_size(5215)) .saturating_add(T::DbWeight::get().reads(2_u64)) } @@ -164,13 +164,13 @@ impl WeightInfo for SubstrateWeight { /// The range of component `i` is `[1, 20]`. fn on_initialize_immediate_execution_decode_fails(i: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1036 + i * (553 ±0)` + // Measured: `1011 + i * (556 ±0)` // Estimated: `3934 + i * (3159739 ±0)` - // Minimum execution time: 59_000 nanoseconds. - Weight::from_ref_time(18_605_263) + // Minimum execution time: 98_625 nanoseconds. + Weight::from_ref_time(39_169_918) .saturating_add(Weight::from_proof_size(3934)) - // Standard Error: 78_947 - .saturating_add(Weight::from_ref_time(40_394_736).saturating_mul(i.into())) + // Standard Error: 62_379 + .saturating_add(Weight::from_ref_time(60_858_947).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().reads((5_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(2_u64)) @@ -192,13 +192,13 @@ impl WeightInfo for SubstrateWeight { /// The range of component `i` is `[1, 20]`. fn on_initialize_pending_execution_decode_fails(i: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `156 + i * (252 ±0)` + // Measured: `165 + i * (252 ±0)` // Estimated: `3114 + i * (3153362 ±0)` - // Minimum execution time: 31_000 nanoseconds. - Weight::from_ref_time(9_552_631) + // Minimum execution time: 52_105 nanoseconds. + Weight::from_ref_time(25_363_129) .saturating_add(Weight::from_proof_size(3114)) - // Standard Error: 184_210 - .saturating_add(Weight::from_ref_time(21_447_368).saturating_mul(i.into())) + // Standard Error: 37_086 + .saturating_add(Weight::from_ref_time(31_036_076).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(2_u64)) @@ -212,13 +212,13 @@ impl WeightInfo for SubstrateWeight { /// The range of component `i` is `[1, 20]`. fn on_initialize_approved_pending_constitutionality(i: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `841 + i * (172 ±0)` + // Measured: `844 + i * (172 ±0)` // Estimated: `3435 + i * (2615 ±0)` - // Minimum execution time: 28_000 nanoseconds. - Weight::from_ref_time(13_236_842) + // Minimum execution time: 48_072 nanoseconds. + Weight::from_ref_time(28_775_215) .saturating_add(Weight::from_proof_size(3435)) - // Standard Error: 37_216 - .saturating_add(Weight::from_ref_time(15_263_157).saturating_mul(i.into())) + // Standard Error: 29_537 + .saturating_add(Weight::from_ref_time(21_185_616).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) @@ -245,13 +245,13 @@ impl WeightInfo for SubstrateWeight { /// The range of component `i` is `[1, 20]`. fn on_initialize_rejected(i: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1053 + i * (587 ±0)` + // Measured: `1024 + i * (591 ±0)` // Estimated: `3934 + i * (16552 ±0)` - // Minimum execution time: 74_000 nanoseconds. - Weight::from_ref_time(18_263_157) + // Minimum execution time: 122_622 nanoseconds. + Weight::from_ref_time(35_619_212) .saturating_add(Weight::from_proof_size(3934)) - // Standard Error: 74_432 - .saturating_add(Weight::from_ref_time(56_736_842).saturating_mul(i.into())) + // Standard Error: 83_105 + .saturating_add(Weight::from_ref_time(85_539_483).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().reads((6_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(2_u64)) @@ -279,13 +279,13 @@ impl WeightInfo for SubstrateWeight { /// The range of component `i` is `[1, 20]`. fn on_initialize_slashed(i: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1053 + i * (587 ±0)` + // Measured: `1024 + i * (591 ±0)` // Estimated: `3934 + i * (16552 ±0)` - // Minimum execution time: 68_000 nanoseconds. - Weight::from_ref_time(18_526_315) + // Minimum execution time: 112_313 nanoseconds. + Weight::from_ref_time(35_017_044) .saturating_add(Weight::from_proof_size(3934)) - // Standard Error: 212_164 - .saturating_add(Weight::from_ref_time(49_973_684).saturating_mul(i.into())) + // Standard Error: 80_909 + .saturating_add(Weight::from_ref_time(75_360_488).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().reads((6_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(2_u64)) @@ -311,13 +311,13 @@ impl WeightInfo for SubstrateWeight { /// The range of component `i` is `[1, 20]`. fn cancel_active_and_pending_proposals(i: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `403 + i * (587 ±0)` + // Measured: `374 + i * (591 ±0)` // Estimated: `3114 + i * (16552 ±0)` - // Minimum execution time: 43_000 nanoseconds. - Weight::from_ref_time(13_578_947) + // Minimum execution time: 73_108 nanoseconds. + Weight::from_ref_time(25_512_617) .saturating_add(Weight::from_proof_size(3114)) - // Standard Error: 148_864 - .saturating_add(Weight::from_ref_time(31_421_052).saturating_mul(i.into())) + // Standard Error: 46_668 + .saturating_add(Weight::from_ref_time(49_452_910).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().reads((6_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(2_u64)) diff --git a/runtime-modules/referendum/src/weights.rs b/runtime-modules/referendum/src/weights.rs index a86bb7c5d5..d574ac2ff9 100644 --- a/runtime-modules/referendum/src/weights.rs +++ b/runtime-modules/referendum/src/weights.rs @@ -18,7 +18,7 @@ //! Autogenerated weights for referendum //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-03-15, STEPS: `2`, REPEAT: 2, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-04-27, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("prod-test"), DB CACHE: 1024 // Executed Command: @@ -28,8 +28,8 @@ // --pallet=referendum // --extrinsic=* // --chain=prod-test -// --steps=2 -// --repeat=2 +// --steps=50 +// --repeat=20 // --execution=wasm // --template=./scripts/../devops/joystream-pallet-weight-template.hbs // --output=./scripts/../runtime-modules/referendum/src/weights.rs @@ -67,13 +67,13 @@ impl WeightInfo for SubstrateWeight { /// The range of component `i` is `[0, 2]`. fn on_initialize_revealing(i: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `474 + i * (41 ±0)` + // Measured: `474 + i * (58 ±0)` // Estimated: `1092` - // Minimum execution time: 18_000 nanoseconds. - Weight::from_ref_time(18_000_000) + // Minimum execution time: 30_360 nanoseconds. + Weight::from_ref_time(31_158_714) .saturating_add(Weight::from_proof_size(1092)) - // Standard Error: 0 - .saturating_add(Weight::from_ref_time(500_000).saturating_mul(i.into())) + // Standard Error: 16_421 + .saturating_add(Weight::from_ref_time(643_219).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -83,8 +83,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `128` // Estimated: `589` - // Minimum execution time: 9_000 nanoseconds. - Weight::from_ref_time(10_000_000) + // Minimum execution time: 15_281 nanoseconds. + Weight::from_ref_time(15_658_000) .saturating_add(Weight::from_proof_size(589)) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -103,8 +103,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `323` // Estimated: `12077` - // Minimum execution time: 29_000 nanoseconds. - Weight::from_ref_time(30_000_000) + // Minimum execution time: 49_579 nanoseconds. + Weight::from_ref_time(50_307_000) .saturating_add(Weight::from_proof_size(12077)) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -120,13 +120,13 @@ impl WeightInfo for SubstrateWeight { /// The range of component `i` is `[0, 2]`. fn reveal_vote_space_for_new_winner(i: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `753 + i * (113 ±0)` + // Measured: `753 + i * (133 ±0)` // Estimated: `6316` - // Minimum execution time: 30_000 nanoseconds. - Weight::from_ref_time(30_000_000) + // Minimum execution time: 51_454 nanoseconds. + Weight::from_ref_time(53_232_130) .saturating_add(Weight::from_proof_size(6316)) - // Standard Error: 500_000 - .saturating_add(Weight::from_ref_time(1_500_000).saturating_mul(i.into())) + // Standard Error: 34_348 + .saturating_add(Weight::from_ref_time(1_682_771).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -141,13 +141,13 @@ impl WeightInfo for SubstrateWeight { /// The range of component `i` is `[0, 2]`. fn reveal_vote_space_not_in_winners(i: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `886 + i * (91 ±0)` + // Measured: `886 + i * (93 ±0)` // Estimated: `6316` - // Minimum execution time: 31_000 nanoseconds. - Weight::from_ref_time(31_000_000) + // Minimum execution time: 52_998 nanoseconds. + Weight::from_ref_time(54_295_859) .saturating_add(Weight::from_proof_size(6316)) - // Standard Error: 250_000 - .saturating_add(Weight::from_ref_time(250_000).saturating_mul(i.into())) + // Standard Error: 26_588 + .saturating_add(Weight::from_ref_time(1_037_309).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -160,13 +160,15 @@ impl WeightInfo for SubstrateWeight { // Storage: Council AnnouncementPeriodNr (r:1 w:0) // Proof: Council AnnouncementPeriodNr (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) /// The range of component `i` is `[0, 2]`. - fn reveal_vote_space_replace_last_winner(_i: u32, ) -> Weight { + fn reveal_vote_space_replace_last_winner(i: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `886 + i * (91 ±0)` + // Measured: `886 + i * (93 ±0)` // Estimated: `6316` - // Minimum execution time: 31_000 nanoseconds. - Weight::from_ref_time(31_500_000) + // Minimum execution time: 53_329 nanoseconds. + Weight::from_ref_time(54_740_456) .saturating_add(Weight::from_proof_size(6316)) + // Standard Error: 33_066 + .saturating_add(Weight::from_ref_time(805_829).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -181,13 +183,13 @@ impl WeightInfo for SubstrateWeight { /// The range of component `i` is `[0, 2]`. fn reveal_vote_already_existing(i: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `849 + i * (93 ±0)` + // Measured: `849 + i * (96 ±0)` // Estimated: `6316` - // Minimum execution time: 30_000 nanoseconds. - Weight::from_ref_time(30_000_000) + // Minimum execution time: 51_714 nanoseconds. + Weight::from_ref_time(52_917_166) .saturating_add(Weight::from_proof_size(6316)) - // Standard Error: 0 - .saturating_add(Weight::from_ref_time(1_000_000).saturating_mul(i.into())) + // Standard Error: 29_527 + .saturating_add(Weight::from_ref_time(1_864_048).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -203,8 +205,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `846` // Estimated: `9468` - // Minimum execution time: 30_000 nanoseconds. - Weight::from_ref_time(31_000_000) + // Minimum execution time: 53_358 nanoseconds. + Weight::from_ref_time(53_945_000) .saturating_add(Weight::from_proof_size(9468)) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -215,8 +217,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `72` // Estimated: `2523` - // Minimum execution time: 12_000 nanoseconds. - Weight::from_ref_time(15_000_000) + // Minimum execution time: 18_151 nanoseconds. + Weight::from_ref_time(18_848_000) .saturating_add(Weight::from_proof_size(2523)) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -240,7 +242,7 @@ impl WeightInfo for () { fn reveal_vote_space_not_in_winners(i: u32, ) -> Weight { Weight::from_ref_time(0) } - fn reveal_vote_space_replace_last_winner(_i: u32, ) -> Weight { + fn reveal_vote_space_replace_last_winner(i: u32, ) -> Weight { Weight::from_ref_time(0) } fn reveal_vote_already_existing(i: u32, ) -> Weight { diff --git a/runtime-modules/storage/src/weights.rs b/runtime-modules/storage/src/weights.rs index 5a6fe604b3..2e80954ffc 100644 --- a/runtime-modules/storage/src/weights.rs +++ b/runtime-modules/storage/src/weights.rs @@ -18,7 +18,7 @@ //! Autogenerated weights for storage //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-03-15, STEPS: `2`, REPEAT: 2, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-04-27, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("prod-test"), DB CACHE: 1024 // Executed Command: @@ -28,8 +28,8 @@ // --pallet=storage // --extrinsic=* // --chain=prod-test -// --steps=2 -// --repeat=2 +// --steps=50 +// --repeat=20 // --execution=wasm // --template=./scripts/../devops/joystream-pallet-weight-template.hbs // --output=./scripts/../runtime-modules/storage/src/weights.rs @@ -94,8 +94,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `698` // Estimated: `5734` - // Minimum execution time: 21_000 nanoseconds. - Weight::from_ref_time(22_000_000) + // Minimum execution time: 36_148 nanoseconds. + Weight::from_ref_time(37_145_000) .saturating_add(Weight::from_proof_size(5734)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -110,8 +110,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `437` // Estimated: `3153` - // Minimum execution time: 17_000 nanoseconds. - Weight::from_ref_time(18_000_000) + // Minimum execution time: 27_706 nanoseconds. + Weight::from_ref_time(28_400_000) .saturating_add(Weight::from_proof_size(3153)) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -126,8 +126,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `437` // Estimated: `3153` - // Minimum execution time: 16_000 nanoseconds. - Weight::from_ref_time(17_000_000) + // Minimum execution time: 28_265 nanoseconds. + Weight::from_ref_time(28_647_000) .saturating_add(Weight::from_proof_size(3153)) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -142,8 +142,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `437` // Estimated: `3153` - // Minimum execution time: 16_000 nanoseconds. - Weight::from_ref_time(16_000_000) + // Minimum execution time: 27_905 nanoseconds. + Weight::from_ref_time(28_418_000) .saturating_add(Weight::from_proof_size(3153)) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -160,8 +160,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `437` // Estimated: `3153` - // Minimum execution time: 17_000 nanoseconds. - Weight::from_ref_time(18_000_000) + // Minimum execution time: 29_650 nanoseconds. + Weight::from_ref_time(30_113_000) .saturating_add(Weight::from_proof_size(3153)) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) @@ -176,8 +176,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `437` // Estimated: `3153` - // Minimum execution time: 16_000 nanoseconds. - Weight::from_ref_time(16_000_000) + // Minimum execution time: 28_311 nanoseconds. + Weight::from_ref_time(28_751_000) .saturating_add(Weight::from_proof_size(3153)) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -192,8 +192,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `550` // Estimated: `6262` - // Minimum execution time: 19_000 nanoseconds. - Weight::from_ref_time(20_000_000) + // Minimum execution time: 34_526 nanoseconds. + Weight::from_ref_time(35_285_000) .saturating_add(Weight::from_proof_size(6262)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -212,13 +212,13 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `577` // Estimated: `3656 + i * (2538 ±0) + j * (2538 ±0)` - // Minimum execution time: 1_615_000 nanoseconds. - Weight::from_ref_time(88_000_000) + // Minimum execution time: 2_277_081 nanoseconds. + Weight::from_ref_time(37_100_067) .saturating_add(Weight::from_proof_size(3656)) - // Standard Error: 40_070 - .saturating_add(Weight::from_ref_time(3_336_000).saturating_mul(i.into())) - // Standard Error: 40_070 - .saturating_add(Weight::from_ref_time(1_531_500).saturating_mul(j.into())) + // Standard Error: 8_106 + .saturating_add(Weight::from_ref_time(4_840_366).saturating_mul(i.into())) + // Standard Error: 8_106 + .saturating_add(Weight::from_ref_time(2_238_599).saturating_mul(j.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(j.into()))) @@ -243,8 +243,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `553` // Estimated: `4662` - // Minimum execution time: 23_000 nanoseconds. - Weight::from_ref_time(23_000_000) + // Minimum execution time: 38_956 nanoseconds. + Weight::from_ref_time(39_840_000) .saturating_add(Weight::from_proof_size(4662)) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) @@ -263,15 +263,15 @@ impl WeightInfo for SubstrateWeight { /// The range of component `j` is `[1, 13]`. fn update_storage_buckets_for_bag(i: u32, j: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `667 + i * (105 ±0) + j * (115 ±0)` + // Measured: `698 + i * (105 ±0) + j * (113 ±0)` // Estimated: `7091 + i * (2581 ±0) + j * (2581 ±0)` - // Minimum execution time: 183_000 nanoseconds. - Weight::from_ref_time(25_458_333) + // Minimum execution time: 276_487 nanoseconds. + Weight::from_ref_time(57_000_798) .saturating_add(Weight::from_proof_size(7091)) - // Standard Error: 83_333 - .saturating_add(Weight::from_ref_time(12_333_333).saturating_mul(i.into())) - // Standard Error: 83_333 - .saturating_add(Weight::from_ref_time(11_208_333).saturating_mul(j.into())) + // Standard Error: 28_853 + .saturating_add(Weight::from_ref_time(17_356_577).saturating_mul(i.into())) + // Standard Error: 28_853 + .saturating_add(Weight::from_ref_time(15_858_971).saturating_mul(j.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(j.into()))) @@ -291,8 +291,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `743` // Estimated: `5734` - // Minimum execution time: 22_000 nanoseconds. - Weight::from_ref_time(23_000_000) + // Minimum execution time: 39_376 nanoseconds. + Weight::from_ref_time(40_082_000) .saturating_add(Weight::from_proof_size(5734)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -307,8 +307,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `896` // Estimated: `8384` - // Minimum execution time: 25_000 nanoseconds. - Weight::from_ref_time(26_000_000) + // Minimum execution time: 43_209 nanoseconds. + Weight::from_ref_time(44_193_000) .saturating_add(Weight::from_proof_size(8384)) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -323,8 +323,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `776` // Estimated: `5734` - // Minimum execution time: 22_000 nanoseconds. - Weight::from_ref_time(23_000_000) + // Minimum execution time: 39_169 nanoseconds. + Weight::from_ref_time(40_197_000) .saturating_add(Weight::from_proof_size(5734)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -339,8 +339,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `698` // Estimated: `5734` - // Minimum execution time: 22_000 nanoseconds. - Weight::from_ref_time(22_000_000) + // Minimum execution time: 37_308 nanoseconds. + Weight::from_ref_time(38_210_000) .saturating_add(Weight::from_proof_size(5734)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -359,8 +359,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `756` // Estimated: `6740` - // Minimum execution time: 24_000 nanoseconds. - Weight::from_ref_time(25_000_000) + // Minimum execution time: 42_513 nanoseconds. + Weight::from_ref_time(43_529_000) .saturating_add(Weight::from_proof_size(6740)) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -373,8 +373,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `743` // Estimated: `5231` - // Minimum execution time: 21_000 nanoseconds. - Weight::from_ref_time(22_000_000) + // Minimum execution time: 37_978 nanoseconds. + Weight::from_ref_time(39_368_000) .saturating_add(Weight::from_proof_size(5231)) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -388,11 +388,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `776` // Estimated: `5231` - // Minimum execution time: 21_000 nanoseconds. - Weight::from_ref_time(20_392_392) + // Minimum execution time: 37_127 nanoseconds. + Weight::from_ref_time(27_402_643) .saturating_add(Weight::from_proof_size(5231)) - // Standard Error: 65_065 - .saturating_add(Weight::from_ref_time(607_607).saturating_mul(i.into())) + // Standard Error: 1_443 + .saturating_add(Weight::from_ref_time(1_301_891).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) } // Storage: Storage StorageBucketById (r:1 w:0) @@ -406,11 +406,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `451 + i * (136 ±0)` // Estimated: `6020 + i * (2630 ±0)` - // Minimum execution time: 26_000 nanoseconds. - Weight::from_ref_time(16_290_726) + // Minimum execution time: 46_873 nanoseconds. + Weight::from_ref_time(47_267_000) .saturating_add(Weight::from_proof_size(6020)) - // Standard Error: 35_087 - .saturating_add(Weight::from_ref_time(9_709_273).saturating_mul(i.into())) + // Standard Error: 43_587 + .saturating_add(Weight::from_ref_time(13_671_351).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) @@ -430,8 +430,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `517` // Estimated: `4159` - // Minimum execution time: 21_000 nanoseconds. - Weight::from_ref_time(22_000_000) + // Minimum execution time: 37_172 nanoseconds. + Weight::from_ref_time(37_880_000) .saturating_add(Weight::from_proof_size(4159)) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -452,8 +452,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `628` // Estimated: `15236` - // Minimum execution time: 31_000 nanoseconds. - Weight::from_ref_time(34_000_000) + // Minimum execution time: 51_929 nanoseconds. + Weight::from_ref_time(53_120_000) .saturating_add(Weight::from_proof_size(15236)) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) @@ -470,8 +470,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `609` // Estimated: `5660` - // Minimum execution time: 23_000 nanoseconds. - Weight::from_ref_time(24_000_000) + // Minimum execution time: 41_988 nanoseconds. + Weight::from_ref_time(42_624_000) .saturating_add(Weight::from_proof_size(5660)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) @@ -486,8 +486,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `671` // Estimated: `6008` - // Minimum execution time: 23_000 nanoseconds. - Weight::from_ref_time(24_000_000) + // Minimum execution time: 41_267 nanoseconds. + Weight::from_ref_time(42_117_000) .saturating_add(Weight::from_proof_size(6008)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -502,8 +502,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `671` // Estimated: `6008` - // Minimum execution time: 22_000 nanoseconds. - Weight::from_ref_time(23_000_000) + // Minimum execution time: 40_103 nanoseconds. + Weight::from_ref_time(41_953_000) .saturating_add(Weight::from_proof_size(6008)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -524,15 +524,15 @@ impl WeightInfo for SubstrateWeight { /// The range of component `j` is `[1, 51]`. fn update_distribution_buckets_for_bag(i: u32, j: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `750 + i * (41 ±0) + j * (57 ±0)` + // Measured: `745 + i * (41 ±0) + j * (57 ±0)` // Estimated: `9598 + i * (2855 ±0) + j * (2855 ±0)` - // Minimum execution time: 440_000 nanoseconds. - Weight::from_ref_time(21_150_000) + // Minimum execution time: 638_008 nanoseconds. + Weight::from_ref_time(53_350_370) .saturating_add(Weight::from_proof_size(9598)) - // Standard Error: 75_277 - .saturating_add(Weight::from_ref_time(8_110_000).saturating_mul(i.into())) - // Standard Error: 75_277 - .saturating_add(Weight::from_ref_time(8_240_000).saturating_mul(j.into())) + // Standard Error: 27_112 + .saturating_add(Weight::from_ref_time(11_512_011).saturating_mul(i.into())) + // Standard Error: 27_112 + .saturating_add(Weight::from_ref_time(11_805_404).saturating_mul(j.into())) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(j.into()))) @@ -552,8 +552,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `404` // Estimated: `3153` - // Minimum execution time: 16_000 nanoseconds. - Weight::from_ref_time(16_000_000) + // Minimum execution time: 27_786 nanoseconds. + Weight::from_ref_time(28_324_000) .saturating_add(Weight::from_proof_size(3153)) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -568,8 +568,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `671` // Estimated: `6008` - // Minimum execution time: 23_000 nanoseconds. - Weight::from_ref_time(24_000_000) + // Minimum execution time: 40_952 nanoseconds. + Weight::from_ref_time(41_627_000) .saturating_add(Weight::from_proof_size(6008)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -585,13 +585,13 @@ impl WeightInfo for SubstrateWeight { /// The range of component `i` is `[2, 7]`. fn update_families_in_dynamic_bag_creation_policy(i: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `575 + i * (36 ±0)` + // Measured: `577 + i * (36 ±0)` // Estimated: `6262 + i * (2507 ±0)` - // Minimum execution time: 27_000 nanoseconds. - Weight::from_ref_time(19_800_000) + // Minimum execution time: 47_344 nanoseconds. + Weight::from_ref_time(38_574_738) .saturating_add(Weight::from_proof_size(6262)) - // Standard Error: 0 - .saturating_add(Weight::from_ref_time(3_600_000).saturating_mul(i.into())) + // Standard Error: 16_162 + .saturating_add(Weight::from_ref_time(5_223_673).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -607,8 +607,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `869` // Estimated: `8658` - // Minimum execution time: 27_000 nanoseconds. - Weight::from_ref_time(27_000_000) + // Minimum execution time: 47_617 nanoseconds. + Weight::from_ref_time(48_650_000) .saturating_add(Weight::from_proof_size(8658)) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -623,8 +623,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `716` // Estimated: `6008` - // Minimum execution time: 24_000 nanoseconds. - Weight::from_ref_time(25_000_000) + // Minimum execution time: 43_921 nanoseconds. + Weight::from_ref_time(44_471_000) .saturating_add(Weight::from_proof_size(6008)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -639,8 +639,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `716` // Estimated: `6008` - // Minimum execution time: 25_000 nanoseconds. - Weight::from_ref_time(25_000_000) + // Minimum execution time: 43_723 nanoseconds. + Weight::from_ref_time(44_626_000) .saturating_add(Weight::from_proof_size(6008)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -656,11 +656,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `609` // Estimated: `5660` - // Minimum execution time: 20_000 nanoseconds. - Weight::from_ref_time(19_950_450) + // Minimum execution time: 37_169 nanoseconds. + Weight::from_ref_time(29_571_585) .saturating_add(Weight::from_proof_size(5660)) - // Standard Error: 69_571 - .saturating_add(Weight::from_ref_time(549_549).saturating_mul(i.into())) + // Standard Error: 2_108 + .saturating_add(Weight::from_ref_time(1_304_414).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) } // Storage: Instance9WorkingGroup WorkerById (r:1 w:0) @@ -671,8 +671,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `716` // Estimated: `5505` - // Minimum execution time: 24_000 nanoseconds. - Weight::from_ref_time(25_000_000) + // Minimum execution time: 43_061 nanoseconds. + Weight::from_ref_time(43_643_000) .saturating_add(Weight::from_proof_size(5505)) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -686,11 +686,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `716` // Estimated: `5505` - // Minimum execution time: 22_000 nanoseconds. - Weight::from_ref_time(21_443_443) + // Minimum execution time: 40_447 nanoseconds. + Weight::from_ref_time(30_665_028) .saturating_add(Weight::from_proof_size(5505)) - // Standard Error: 73_073 - .saturating_add(Weight::from_ref_time(556_556).saturating_mul(i.into())) + // Standard Error: 4_420 + .saturating_add(Weight::from_ref_time(1_307_577).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) } // Storage: Instance2WorkingGroup WorkerById (r:1 w:0) @@ -702,11 +702,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `776` // Estimated: `5231` - // Minimum execution time: 21_000 nanoseconds. - Weight::from_ref_time(20_446_946) + // Minimum execution time: 36_997 nanoseconds. + Weight::from_ref_time(27_384_630) .saturating_add(Weight::from_proof_size(5231)) - // Standard Error: 73_573 - .saturating_add(Weight::from_ref_time(553_053).saturating_mul(i.into())) + // Standard Error: 1_163 + .saturating_add(Weight::from_ref_time(1_294_171).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) } // Storage: Instance9WorkingGroup WorkerById (r:1 w:0) @@ -718,11 +718,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `716` // Estimated: `5505` - // Minimum execution time: 23_000 nanoseconds. - Weight::from_ref_time(22_398_398) + // Minimum execution time: 40_420 nanoseconds. + Weight::from_ref_time(33_242_070) .saturating_add(Weight::from_proof_size(5505)) - // Standard Error: 54_054 - .saturating_add(Weight::from_ref_time(601_601).saturating_mul(i.into())) + // Standard Error: 1_473 + .saturating_add(Weight::from_ref_time(1_290_246).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) } } diff --git a/runtime-modules/utility/src/weights.rs b/runtime-modules/utility/src/weights.rs index 9f09c79aaf..9a742993b9 100644 --- a/runtime-modules/utility/src/weights.rs +++ b/runtime-modules/utility/src/weights.rs @@ -18,7 +18,7 @@ //! Autogenerated weights for joystream_utility //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-03-15, STEPS: `2`, REPEAT: 2, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-04-27, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("prod-test"), DB CACHE: 1024 // Executed Command: @@ -28,8 +28,8 @@ // --pallet=joystream_utility // --extrinsic=* // --chain=prod-test -// --steps=2 -// --repeat=2 +// --steps=50 +// --repeat=20 // --execution=wasm // --template=./scripts/../devops/joystream-pallet-weight-template.hbs // --output=./scripts/../runtime-modules/utility/src/weights.rs @@ -58,11 +58,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 8_000 nanoseconds. - Weight::from_ref_time(7_959_595) + // Minimum execution time: 13_973 nanoseconds. + Weight::from_ref_time(12_690_102) .saturating_add(Weight::from_proof_size(0)) - // Standard Error: 70_887 - .saturating_add(Weight::from_ref_time(540_404).saturating_mul(i.into())) + // Standard Error: 1_027 + .saturating_add(Weight::from_ref_time(1_202_086).saturating_mul(i.into())) } // Storage: Instance1WorkingGroup Budget (r:1 w:1) // Proof: Instance1WorkingGroup Budget (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) @@ -72,8 +72,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `291` // Estimated: `1022` - // Minimum execution time: 20_000 nanoseconds. - Weight::from_ref_time(20_000_000) + // Minimum execution time: 33_055 nanoseconds. + Weight::from_ref_time(33_816_000) .saturating_add(Weight::from_proof_size(1022)) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) @@ -86,8 +86,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `291` // Estimated: `1022` - // Minimum execution time: 19_000 nanoseconds. - Weight::from_ref_time(20_000_000) + // Minimum execution time: 32_556 nanoseconds. + Weight::from_ref_time(33_611_000) .saturating_add(Weight::from_proof_size(1022)) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) @@ -98,8 +98,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `133` // Estimated: `2603` - // Minimum execution time: 22_000 nanoseconds. - Weight::from_ref_time(24_000_000) + // Minimum execution time: 38_459 nanoseconds. + Weight::from_ref_time(39_296_000) .saturating_add(Weight::from_proof_size(2603)) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) diff --git a/runtime-modules/working-group/src/weights.rs b/runtime-modules/working-group/src/weights.rs index 9c1516ebdc..bbc1e68fea 100644 --- a/runtime-modules/working-group/src/weights.rs +++ b/runtime-modules/working-group/src/weights.rs @@ -18,7 +18,7 @@ //! Autogenerated weights for working_group //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-03-15, STEPS: `2`, REPEAT: 2, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-04-27, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("prod-test"), DB CACHE: 1024 // Executed Command: @@ -28,8 +28,8 @@ // --pallet=working_group // --extrinsic=* // --chain=prod-test -// --steps=2 -// --repeat=2 +// --steps=50 +// --repeat=20 // --execution=wasm // --template=./scripts/../devops/joystream-pallet-weight-template.hbs // --output=./scripts/../runtime-modules/working-group/src/weights.rs @@ -89,13 +89,13 @@ impl WeightInfo for SubstrateWeight { /// The range of component `i` is `[2, 30]`. fn on_initialize_leaving(i: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `244 + i * (518 ±0)` + // Measured: `260 + i * (517 ±0)` // Estimated: `4163 + i * (9027 ±0)` - // Minimum execution time: 91_000 nanoseconds. - Weight::from_ref_time(20_214_285) + // Minimum execution time: 147_481 nanoseconds. + Weight::from_ref_time(43_530_922) .saturating_add(Weight::from_proof_size(4163)) - // Standard Error: 50_507 - .saturating_add(Weight::from_ref_time(35_892_857).saturating_mul(i.into())) + // Standard Error: 61_804 + .saturating_add(Weight::from_ref_time(54_219_510).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -111,13 +111,13 @@ impl WeightInfo for SubstrateWeight { /// The range of component `i` is `[2, 30]`. fn on_initialize_rewarding_with_missing_reward(i: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `227 + i * (375 ±0)` + // Measured: `246 + i * (374 ±0)` // Estimated: `3161 + i * (5253 ±0)` - // Minimum execution time: 87_000 nanoseconds. - Weight::from_ref_time(16_321_428) + // Minimum execution time: 133_981 nanoseconds. + Weight::from_ref_time(26_619_279) .saturating_add(Weight::from_proof_size(3161)) - // Standard Error: 130_001 - .saturating_add(Weight::from_ref_time(35_839_285).saturating_mul(i.into())) + // Standard Error: 83_368 + .saturating_add(Weight::from_ref_time(52_587_608).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -131,13 +131,13 @@ impl WeightInfo for SubstrateWeight { /// The range of component `i` is `[2, 30]`. fn on_initialize_rewarding_with_missing_reward_cant_pay(i: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `231 + i * (194 ±0)` + // Measured: `230 + i * (194 ±0)` // Estimated: `3161 + i * (2650 ±0)` - // Minimum execution time: 43_000 nanoseconds. - Weight::from_ref_time(12_321_428) + // Minimum execution time: 68_807 nanoseconds. + Weight::from_ref_time(20_846_803) .saturating_add(Weight::from_proof_size(3161)) - // Standard Error: 130_001 - .saturating_add(Weight::from_ref_time(15_839_285).saturating_mul(i.into())) + // Standard Error: 28_444 + .saturating_add(Weight::from_ref_time(22_540_730).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) @@ -152,13 +152,13 @@ impl WeightInfo for SubstrateWeight { /// The range of component `i` is `[2, 30]`. fn on_initialize_rewarding_without_missing_reward(i: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `243 + i * (359 ±0)` + // Measured: `262 + i * (358 ±0)` // Estimated: `3161 + i * (5253 ±0)` - // Minimum execution time: 73_000 nanoseconds. - Weight::from_ref_time(29_000_000) + // Minimum execution time: 115_073 nanoseconds. + Weight::from_ref_time(51_743_831) .saturating_add(Weight::from_proof_size(3161)) - // Standard Error: 446_785 - .saturating_add(Weight::from_ref_time(22_250_000).saturating_mul(i.into())) + // Standard Error: 38_422 + .saturating_add(Weight::from_ref_time(31_311_620).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(2_u64)) @@ -184,11 +184,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `826` // Estimated: `14601` - // Minimum execution time: 44_000 nanoseconds. - Weight::from_ref_time(45_484_848) + // Minimum execution time: 75_245 nanoseconds. + Weight::from_ref_time(73_767_805) .saturating_add(Weight::from_proof_size(14601)) - // Standard Error: 58_898 - .saturating_add(Weight::from_ref_time(1_515_151).saturating_mul(i.into())) + // Standard Error: 5_546 + .saturating_add(Weight::from_ref_time(2_577_451).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } @@ -208,8 +208,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `453` // Estimated: `6737` - // Minimum execution time: 31_000 nanoseconds. - Weight::from_ref_time(32_000_000) + // Minimum execution time: 55_929 nanoseconds. + Weight::from_ref_time(56_615_000) .saturating_add(Weight::from_proof_size(6737)) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(6_u64)) @@ -233,18 +233,18 @@ impl WeightInfo for SubstrateWeight { /// The range of component `i` is `[2, 30]`. fn fill_opening_worker(i: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `772 + i * (219 ±0)` - // Estimated: `15764 + i * (2456 ±94)` - // Minimum execution time: 55_000 nanoseconds. - Weight::from_ref_time(34_892_857) + // Measured: `859 + i * (218 ±0)` + // Estimated: `15764 + i * (2378 ±6)` + // Minimum execution time: 92_040 nanoseconds. + Weight::from_ref_time(64_995_384) .saturating_add(Weight::from_proof_size(15764)) - // Standard Error: 164_634 - .saturating_add(Weight::from_ref_time(10_553_571).saturating_mul(i.into())) + // Standard Error: 23_614 + .saturating_add(Weight::from_ref_time(15_829_151).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(T::DbWeight::get().writes((2_u64).saturating_mul(i.into()))) - .saturating_add(Weight::from_proof_size(2456).saturating_mul(i.into())) + .saturating_add(Weight::from_proof_size(2378).saturating_mul(i.into())) } // Storage: Instance3WorkingGroup WorkerById (r:1 w:1) // Proof: Instance3WorkingGroup WorkerById (max_values: None, max_size: Some(175), added: 2650, mode: MaxEncodedLen) @@ -254,8 +254,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `705` // Estimated: `5250` - // Minimum execution time: 20_000 nanoseconds. - Weight::from_ref_time(22_000_000) + // Minimum execution time: 34_324 nanoseconds. + Weight::from_ref_time(34_683_000) .saturating_add(Weight::from_proof_size(5250)) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -274,8 +274,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `954` // Estimated: `12119` - // Minimum execution time: 40_000 nanoseconds. - Weight::from_ref_time(42_000_000) + // Minimum execution time: 66_439 nanoseconds. + Weight::from_ref_time(67_517_000) .saturating_add(Weight::from_proof_size(12119)) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -290,8 +290,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `647` // Estimated: `9020` - // Minimum execution time: 24_000 nanoseconds. - Weight::from_ref_time(25_000_000) + // Minimum execution time: 44_723 nanoseconds. + Weight::from_ref_time(45_232_000) .saturating_add(Weight::from_proof_size(9020)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -309,11 +309,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `961` // Estimated: `12180` - // Minimum execution time: 51_000 nanoseconds. - Weight::from_ref_time(51_500_000) + // Minimum execution time: 85_533 nanoseconds. + Weight::from_ref_time(87_448_043) .saturating_add(Weight::from_proof_size(12180)) - // Standard Error: 80_156 - .saturating_add(Weight::from_ref_time(505_000).saturating_mul(i.into())) + // Standard Error: 1_830 + .saturating_add(Weight::from_ref_time(1_063_294).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -334,11 +334,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `964` // Estimated: `13190` - // Minimum execution time: 81_000 nanoseconds. - Weight::from_ref_time(81_000_000) + // Minimum execution time: 133_139 nanoseconds. + Weight::from_ref_time(138_731_950) .saturating_add(Weight::from_proof_size(13190)) - // Standard Error: 110_000 - .saturating_add(Weight::from_ref_time(900_000).saturating_mul(i.into())) + // Standard Error: 16_152 + .saturating_add(Weight::from_ref_time(2_072_036).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(5_u64)) } @@ -359,11 +359,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `787` // Estimated: `10540` - // Minimum execution time: 79_000 nanoseconds. - Weight::from_ref_time(79_500_000) + // Minimum execution time: 129_624 nanoseconds. + Weight::from_ref_time(133_352_671) .saturating_add(Weight::from_proof_size(10540)) - // Standard Error: 135_092 - .saturating_add(Weight::from_ref_time(970_000).saturating_mul(i.into())) + // Standard Error: 8_782 + .saturating_add(Weight::from_ref_time(2_133_147).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(6_u64)) } @@ -377,8 +377,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `784` // Estimated: `9027` - // Minimum execution time: 32_000 nanoseconds. - Weight::from_ref_time(32_000_000) + // Minimum execution time: 54_079 nanoseconds. + Weight::from_ref_time(55_275_000) .saturating_add(Weight::from_proof_size(9027)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) @@ -395,8 +395,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `961` // Estimated: `12180` - // Minimum execution time: 38_000 nanoseconds. - Weight::from_ref_time(38_000_000) + // Minimum execution time: 64_560 nanoseconds. + Weight::from_ref_time(65_339_000) .saturating_add(Weight::from_proof_size(12180)) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) @@ -413,8 +413,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `629` // Estimated: `6267` - // Minimum execution time: 25_000 nanoseconds. - Weight::from_ref_time(26_000_000) + // Minimum execution time: 43_898 nanoseconds. + Weight::from_ref_time(44_735_000) .saturating_add(Weight::from_proof_size(6267)) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) @@ -429,8 +429,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `497` // Estimated: `5714` - // Minimum execution time: 26_000 nanoseconds. - Weight::from_ref_time(27_000_000) + // Minimum execution time: 46_418 nanoseconds. + Weight::from_ref_time(47_482_000) .saturating_add(Weight::from_proof_size(5714)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) @@ -443,8 +443,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `634` // Estimated: `5803` - // Minimum execution time: 20_000 nanoseconds. - Weight::from_ref_time(21_000_000) + // Minimum execution time: 36_425 nanoseconds. + Weight::from_ref_time(37_050_000) .saturating_add(Weight::from_proof_size(5803)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -460,11 +460,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `420` // Estimated: `3153` - // Minimum execution time: 16_000 nanoseconds. - Weight::from_ref_time(16_000_000) + // Minimum execution time: 28_858 nanoseconds. + Weight::from_ref_time(30_207_005) .saturating_add(Weight::from_proof_size(3153)) - // Standard Error: 75_000 - .saturating_add(Weight::from_ref_time(1_535_000).saturating_mul(i.into())) + // Standard Error: 2_321 + .saturating_add(Weight::from_ref_time(2_378_923).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -474,8 +474,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `420` // Estimated: `2650` - // Minimum execution time: 15_000 nanoseconds. - Weight::from_ref_time(16_000_000) + // Minimum execution time: 27_803 nanoseconds. + Weight::from_ref_time(28_412_000) .saturating_add(Weight::from_proof_size(2650)) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -486,8 +486,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 7_000 nanoseconds. - Weight::from_ref_time(8_000_000) + // Minimum execution time: 13_294 nanoseconds. + Weight::from_ref_time(13_633_000) .saturating_add(Weight::from_proof_size(0)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -508,11 +508,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `784` // Estimated: `10033` - // Minimum execution time: 44_000 nanoseconds. - Weight::from_ref_time(44_500_000) + // Minimum execution time: 76_253 nanoseconds. + Weight::from_ref_time(74_977_049) .saturating_add(Weight::from_proof_size(10033)) - // Standard Error: 50_249 - .saturating_add(Weight::from_ref_time(1_565_000).saturating_mul(i.into())) + // Standard Error: 28_997 + .saturating_add(Weight::from_ref_time(2_664_875).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } @@ -523,11 +523,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `420` // Estimated: `2650` - // Minimum execution time: 16_000 nanoseconds. - Weight::from_ref_time(16_000_000) + // Minimum execution time: 28_525 nanoseconds. + Weight::from_ref_time(29_219_350) .saturating_add(Weight::from_proof_size(2650)) - // Standard Error: 80_000 - .saturating_add(Weight::from_ref_time(510_000).saturating_mul(i.into())) + // Standard Error: 2_810 + .saturating_add(Weight::from_ref_time(1_067_735).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -540,11 +540,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `420` // Estimated: `3153` - // Minimum execution time: 14_000 nanoseconds. - Weight::from_ref_time(14_500_000) + // Minimum execution time: 26_185 nanoseconds. + Weight::from_ref_time(26_841_469) .saturating_add(Weight::from_proof_size(3153)) - // Standard Error: 90_138 - .saturating_add(Weight::from_ref_time(575_000).saturating_mul(i.into())) + // Standard Error: 1_011 + .saturating_add(Weight::from_ref_time(1_234_944).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) } // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) @@ -554,11 +554,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `457` // Estimated: `2650` - // Minimum execution time: 15_000 nanoseconds. - Weight::from_ref_time(15_000_000) + // Minimum execution time: 26_107 nanoseconds. + Weight::from_ref_time(27_269_995) .saturating_add(Weight::from_proof_size(2650)) - // Standard Error: 65_000 - .saturating_add(Weight::from_ref_time(545_000).saturating_mul(i.into())) + // Standard Error: 1_627 + .saturating_add(Weight::from_ref_time(1_206_341).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) } } diff --git a/runtime/src/weights/block_weights.rs b/runtime/src/weights/block_weights.rs index 9d95a6062c..c5241608ef 100644 --- a/runtime/src/weights/block_weights.rs +++ b/runtime/src/weights/block_weights.rs @@ -1,6 +1,6 @@ //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-03-15 (Y/M/D) -//! HOSTNAME: `Mokhtars-MacBook-Pro.local`, CPU: `` +//! DATE: 2023-04-27 (Y/M/D) +//! HOSTNAME: `ip-172-31-3-111`, CPU: `Intel(R) Xeon(R) Platinum 8124M CPU @ 3.00GHz` //! //! SHORT-NAME: `block`, LONG-NAME: `BlockExecution`, RUNTIME: `Development` //! WARMUPS: `10`, REPEAT: `100` @@ -25,17 +25,17 @@ parameter_types! { /// Calculated by multiplying the *Average* with `1.0` and adding `0`. /// /// Stats nanoseconds: - /// Min, Max: 340_208, 367_791 - /// Average: 344_857 - /// Median: 344_125 - /// Std-Dev: 3238.98 + /// Min, Max: 546_742, 599_177 + /// Average: 558_311 + /// Median: 553_503 + /// Std-Dev: 11462.26 /// /// Percentiles nanoseconds: - /// 99th: 351_916 - /// 95th: 349_625 - /// 75th: 345_583 + /// 99th: 590_212 + /// 95th: 583_232 + /// 75th: 563_450 pub const BlockExecutionWeight: Weight = - Weight::from_ref_time(WEIGHT_REF_TIME_PER_NANOS.saturating_mul(344_857)); + Weight::from_ref_time(WEIGHT_REF_TIME_PER_NANOS.saturating_mul(558_311)); } #[cfg(test)] diff --git a/runtime/src/weights/extrinsic_weights.rs b/runtime/src/weights/extrinsic_weights.rs index 2a5d40fa5f..c96b949c69 100644 --- a/runtime/src/weights/extrinsic_weights.rs +++ b/runtime/src/weights/extrinsic_weights.rs @@ -1,6 +1,6 @@ //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-03-15 (Y/M/D) -//! HOSTNAME: `Mokhtars-MacBook-Pro.local`, CPU: `` +//! DATE: 2023-04-27 (Y/M/D) +//! HOSTNAME: `ip-172-31-3-111`, CPU: `Intel(R) Xeon(R) Platinum 8124M CPU @ 3.00GHz` //! //! SHORT-NAME: `extrinsic`, LONG-NAME: `ExtrinsicBase`, RUNTIME: `Development` //! WARMUPS: `10`, REPEAT: `100` @@ -25,17 +25,17 @@ parameter_types! { /// Calculated by multiplying the *Average* with `1.0` and adding `0`. /// /// Stats nanoseconds: - /// Min, Max: 81_325, 85_065 - /// Average: 81_792 - /// Median: 81_763 - /// Std-Dev: 423.06 + /// Min, Max: 131_166, 134_219 + /// Average: 132_220 + /// Median: 132_065 + /// Std-Dev: 591.09 /// /// Percentiles nanoseconds: - /// 99th: 82_519 - /// 95th: 82_208 - /// 75th: 81_941 + /// 99th: 133_738 + /// 95th: 133_375 + /// 75th: 132_459 pub const ExtrinsicBaseWeight: Weight = - Weight::from_ref_time(WEIGHT_REF_TIME_PER_NANOS.saturating_mul(81_792)); + Weight::from_ref_time(WEIGHT_REF_TIME_PER_NANOS.saturating_mul(132_220)); } #[cfg(test)] diff --git a/runtime/src/weights/frame_system.rs b/runtime/src/weights/frame_system.rs index c71551d7f8..2727c409d0 100644 --- a/runtime/src/weights/frame_system.rs +++ b/runtime/src/weights/frame_system.rs @@ -18,7 +18,7 @@ //! Autogenerated weights for frame_system //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-03-15, STEPS: `2`, REPEAT: 2, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-04-27, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("prod-test"), DB CACHE: 1024 // Executed Command: @@ -28,8 +28,8 @@ // --pallet=frame_system // --extrinsic=* // --chain=prod-test -// --steps=2 -// --repeat=2 +// --steps=50 +// --repeat=20 // --execution=wasm // --template=./scripts/../devops/frame-weight-template.hbs // --output=./scripts/../runtime/src/weights/frame_system.rs @@ -52,22 +52,22 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_000 nanoseconds. - Weight::from_ref_time(2_500_000) + // Minimum execution time: 2_755 nanoseconds. + Weight::from_ref_time(2_895_000) .saturating_add(Weight::from_proof_size(0)) // Standard Error: 0 - .saturating_add(Weight::from_ref_time(209).saturating_mul(b.into())) + .saturating_add(Weight::from_ref_time(478).saturating_mul(b.into())) } /// The range of component `b` is `[0, 3932160]`. fn remark_with_event(b: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 6_000 nanoseconds. - Weight::from_ref_time(6_500_000) + // Minimum execution time: 10_588 nanoseconds. + Weight::from_ref_time(10_935_000) .saturating_add(Weight::from_proof_size(0)) - // Standard Error: 11 - .saturating_add(Weight::from_ref_time(1_255).saturating_mul(b.into())) + // Standard Error: 2 + .saturating_add(Weight::from_ref_time(1_941).saturating_mul(b.into())) } // Storage: System Digest (r:1 w:1) // Proof Skipped: System Digest (max_values: Some(1), max_size: None, mode: Measured) @@ -77,8 +77,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `495` - // Minimum execution time: 3_000 nanoseconds. - Weight::from_ref_time(3_000_000) + // Minimum execution time: 5_901 nanoseconds. + Weight::from_ref_time(6_352_000) .saturating_add(Weight::from_proof_size(495)) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) @@ -90,11 +90,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_000 nanoseconds. - Weight::from_ref_time(2_000_000) + // Minimum execution time: 2_928 nanoseconds. + Weight::from_ref_time(2_976_000) .saturating_add(Weight::from_proof_size(0)) - // Standard Error: 18_000 - .saturating_add(Weight::from_ref_time(725_000).saturating_mul(i.into())) + // Standard Error: 1_151 + .saturating_add(Weight::from_ref_time(1_033_928).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) } // Storage: Skipped Metadata (r:0 w:0) @@ -104,11 +104,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_000 nanoseconds. - Weight::from_ref_time(2_000_000) + // Minimum execution time: 2_793 nanoseconds. + Weight::from_ref_time(2_924_000) .saturating_add(Weight::from_proof_size(0)) - // Standard Error: 0 - .saturating_add(Weight::from_ref_time(542_000).saturating_mul(i.into())) + // Standard Error: 1_104 + .saturating_add(Weight::from_ref_time(765_238).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) } // Storage: Skipped Metadata (r:0 w:0) @@ -116,13 +116,13 @@ impl WeightInfo for SubstrateWeight { /// The range of component `p` is `[0, 1000]`. fn kill_prefix(p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `39 + p * (69 ±0)` - // Estimated: `39 + p * (70 ±0)` - // Minimum execution time: 4_000 nanoseconds. - Weight::from_ref_time(4_000_000) - .saturating_add(Weight::from_proof_size(39)) - // Standard Error: 4_500 - .saturating_add(Weight::from_ref_time(1_027_500).saturating_mul(p.into())) + // Measured: `91 + p * (69 ±0)` + // Estimated: `96 + p * (70 ±0)` + // Minimum execution time: 5_298 nanoseconds. + Weight::from_ref_time(5_354_000) + .saturating_add(Weight::from_proof_size(96)) + // Standard Error: 1_755 + .saturating_add(Weight::from_ref_time(1_563_975).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(p.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(p.into()))) .saturating_add(Weight::from_proof_size(70).saturating_mul(p.into())) diff --git a/runtime/src/weights/pallet_bags_list.rs b/runtime/src/weights/pallet_bags_list.rs index 55e48cd9e3..bc151cb029 100644 --- a/runtime/src/weights/pallet_bags_list.rs +++ b/runtime/src/weights/pallet_bags_list.rs @@ -18,7 +18,7 @@ //! Autogenerated weights for pallet_bags_list //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-03-15, STEPS: `2`, REPEAT: 2, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-04-27, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("prod-test"), DB CACHE: 1024 // Executed Command: @@ -28,8 +28,8 @@ // --pallet=pallet_bags_list // --extrinsic=* // --chain=prod-test -// --steps=2 -// --repeat=2 +// --steps=50 +// --repeat=20 // --execution=wasm // --template=./scripts/../devops/frame-weight-template.hbs // --output=./scripts/../runtime/src/weights/pallet_bags_list.rs @@ -59,8 +59,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1797` // Estimated: `19330` - // Minimum execution time: 51_000 nanoseconds. - Weight::from_ref_time(52_000_000) + // Minimum execution time: 84_957 nanoseconds. + Weight::from_ref_time(86_387_000) .saturating_add(Weight::from_proof_size(19330)) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(5_u64)) @@ -77,8 +77,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1691` // Estimated: `19258` - // Minimum execution time: 50_000 nanoseconds. - Weight::from_ref_time(53_000_000) + // Minimum execution time: 84_062 nanoseconds. + Weight::from_ref_time(85_397_000) .saturating_add(Weight::from_proof_size(19258)) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(5_u64)) @@ -97,8 +97,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `2035` // Estimated: `26086` - // Minimum execution time: 56_000 nanoseconds. - Weight::from_ref_time(59_000_000) + // Minimum execution time: 94_363 nanoseconds. + Weight::from_ref_time(95_505_000) .saturating_add(Weight::from_proof_size(26086)) .saturating_add(T::DbWeight::get().reads(10_u64)) .saturating_add(T::DbWeight::get().writes(6_u64)) diff --git a/runtime/src/weights/pallet_balances.rs b/runtime/src/weights/pallet_balances.rs index edaf688714..899f137306 100644 --- a/runtime/src/weights/pallet_balances.rs +++ b/runtime/src/weights/pallet_balances.rs @@ -18,7 +18,7 @@ //! Autogenerated weights for pallet_balances //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-03-15, STEPS: `2`, REPEAT: 2, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-04-27, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("prod-test"), DB CACHE: 1024 // Executed Command: @@ -28,8 +28,8 @@ // --pallet=pallet_balances // --extrinsic=* // --chain=prod-test -// --steps=2 -// --repeat=2 +// --steps=50 +// --repeat=20 // --execution=wasm // --template=./scripts/../devops/frame-weight-template.hbs // --output=./scripts/../runtime/src/weights/pallet_balances.rs @@ -53,8 +53,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1817` // Estimated: `2603` - // Minimum execution time: 45_000 nanoseconds. - Weight::from_ref_time(47_000_000) + // Minimum execution time: 75_128 nanoseconds. + Weight::from_ref_time(75_911_000) .saturating_add(Weight::from_proof_size(2603)) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -65,8 +65,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1601` // Estimated: `2603` - // Minimum execution time: 33_000 nanoseconds. - Weight::from_ref_time(34_000_000) + // Minimum execution time: 56_367 nanoseconds. + Weight::from_ref_time(57_296_000) .saturating_add(Weight::from_proof_size(2603)) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -77,8 +77,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1884` // Estimated: `2603` - // Minimum execution time: 25_000 nanoseconds. - Weight::from_ref_time(27_000_000) + // Minimum execution time: 40_990 nanoseconds. + Weight::from_ref_time(41_619_000) .saturating_add(Weight::from_proof_size(2603)) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -89,8 +89,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1884` // Estimated: `2603` - // Minimum execution time: 26_000 nanoseconds. - Weight::from_ref_time(27_000_000) + // Minimum execution time: 45_324 nanoseconds. + Weight::from_ref_time(46_020_000) .saturating_add(Weight::from_proof_size(2603)) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -101,8 +101,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1817` // Estimated: `5206` - // Minimum execution time: 44_000 nanoseconds. - Weight::from_ref_time(45_000_000) + // Minimum execution time: 74_895 nanoseconds. + Weight::from_ref_time(76_397_000) .saturating_add(Weight::from_proof_size(5206)) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) @@ -113,8 +113,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1601` // Estimated: `2603` - // Minimum execution time: 39_000 nanoseconds. - Weight::from_ref_time(53_000_000) + // Minimum execution time: 65_402 nanoseconds. + Weight::from_ref_time(66_014_000) .saturating_add(Weight::from_proof_size(2603)) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -125,8 +125,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1668` // Estimated: `2603` - // Minimum execution time: 20_000 nanoseconds. - Weight::from_ref_time(21_000_000) + // Minimum execution time: 35_108 nanoseconds. + Weight::from_ref_time(35_979_000) .saturating_add(Weight::from_proof_size(2603)) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) diff --git a/runtime/src/weights/pallet_election_provider_multi_phase.rs b/runtime/src/weights/pallet_election_provider_multi_phase.rs index 9dff8ab724..26145ee644 100644 --- a/runtime/src/weights/pallet_election_provider_multi_phase.rs +++ b/runtime/src/weights/pallet_election_provider_multi_phase.rs @@ -18,7 +18,7 @@ //! Autogenerated weights for pallet_election_provider_multi_phase //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-03-15, STEPS: `2`, REPEAT: 2, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-04-27, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("prod-test"), DB CACHE: 1024 // Executed Command: @@ -28,8 +28,8 @@ // --pallet=pallet_election_provider_multi_phase // --extrinsic=* // --chain=prod-test -// --steps=2 -// --repeat=2 +// --steps=50 +// --repeat=20 // --execution=wasm // --template=./scripts/../devops/frame-weight-template.hbs // --output=./scripts/../runtime/src/weights/pallet_election_provider_multi_phase.rs @@ -67,8 +67,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `845` // Estimated: `6834` - // Minimum execution time: 18_000 nanoseconds. - Weight::from_ref_time(20_000_000) + // Minimum execution time: 27_108 nanoseconds. + Weight::from_ref_time(28_077_000) .saturating_add(Weight::from_proof_size(6834)) .saturating_add(T::DbWeight::get().reads(8_u64)) } @@ -80,8 +80,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `42` // Estimated: `1074` - // Minimum execution time: 11_000 nanoseconds. - Weight::from_ref_time(12_000_000) + // Minimum execution time: 18_329 nanoseconds. + Weight::from_ref_time(19_064_000) .saturating_add(Weight::from_proof_size(1074)) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -94,8 +94,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `42` // Estimated: `1074` - // Minimum execution time: 12_000 nanoseconds. - Weight::from_ref_time(13_000_000) + // Minimum execution time: 20_072 nanoseconds. + Weight::from_ref_time(20_465_000) .saturating_add(Weight::from_proof_size(1074)) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -108,8 +108,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `206` // Estimated: `2809` - // Minimum execution time: 24_000 nanoseconds. - Weight::from_ref_time(24_000_000) + // Minimum execution time: 39_103 nanoseconds. + Weight::from_ref_time(39_629_000) .saturating_add(Weight::from_proof_size(2809)) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) @@ -120,8 +120,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `206` // Estimated: `2603` - // Minimum execution time: 15_000 nanoseconds. - Weight::from_ref_time(16_000_000) + // Minimum execution time: 27_184 nanoseconds. + Weight::from_ref_time(27_468_000) .saturating_add(Weight::from_proof_size(2603)) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -134,17 +134,15 @@ impl WeightInfo for SubstrateWeight { // Proof Skipped: ElectionProviderMultiPhase Snapshot (max_values: Some(1), max_size: None, mode: Measured) /// The range of component `v` is `[1000, 2000]`. /// The range of component `t` is `[500, 1000]`. - fn create_snapshot_internal(v: u32, t: u32, ) -> Weight { + fn create_snapshot_internal(v: u32, _t: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 222_000 nanoseconds. - Weight::from_ref_time(18_500_000) + // Minimum execution time: 461_868 nanoseconds. + Weight::from_ref_time(506_018_000) .saturating_add(Weight::from_proof_size(0)) - // Standard Error: 28_310 - .saturating_add(Weight::from_ref_time(173_500).saturating_mul(v.into())) - // Standard Error: 56_621 - .saturating_add(Weight::from_ref_time(61_000).saturating_mul(t.into())) + // Standard Error: 4_207 + .saturating_add(Weight::from_ref_time(213_839).saturating_mul(v.into())) .saturating_add(T::DbWeight::get().writes(3_u64)) } // Storage: ElectionProviderMultiPhase SignedSubmissionIndices (r:1 w:1) @@ -169,15 +167,13 @@ impl WeightInfo for SubstrateWeight { /// The range of component `d` is `[200, 400]`. fn elect_queued(a: u32, d: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `448 + a * (768 ±0) + d * (48 ±0)` - // Estimated: `9477 + a * (6912 ±0) + d * (441 ±0)` - // Minimum execution time: 275_000 nanoseconds. - Weight::from_ref_time(76_999_999) - .saturating_add(Weight::from_proof_size(9477)) - // Standard Error: 53_834 - .saturating_add(Weight::from_ref_time(165_000).saturating_mul(a.into())) - // Standard Error: 80_751 - .saturating_add(Weight::from_ref_time(340_000).saturating_mul(d.into())) + // Measured: `296 + a * (768 ±0) + d * (48 ±0)` + // Estimated: `8892 + a * (6912 ±0) + d * (441 ±0)` + // Minimum execution time: 537_472 nanoseconds. + Weight::from_ref_time(555_750_000) + .saturating_add(Weight::from_proof_size(8892)) + // Standard Error: 7_225 + .saturating_add(Weight::from_ref_time(442_283).saturating_mul(a.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(8_u64)) .saturating_add(Weight::from_proof_size(6912).saturating_mul(a.into())) @@ -199,8 +195,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1189` // Estimated: `8436` - // Minimum execution time: 37_000 nanoseconds. - Weight::from_ref_time(37_000_000) + // Minimum execution time: 70_876 nanoseconds. + Weight::from_ref_time(71_855_000) .saturating_add(Weight::from_proof_size(8436)) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -227,11 +223,13 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `179 + v * (553 ±0) + t * (32 ±0)` // Estimated: `4718 + v * (3871 ±0) + t * (224 ±0)` - // Minimum execution time: 4_486_000 nanoseconds. - Weight::from_ref_time(4_486_000_000) + // Minimum execution time: 8_119_269 nanoseconds. + Weight::from_ref_time(8_326_087_000) .saturating_add(Weight::from_proof_size(4718)) - // Standard Error: 705_898 - .saturating_add(Weight::from_ref_time(4_067_187).saturating_mul(a.into())) + // Standard Error: 25_345 + .saturating_add(Weight::from_ref_time(173_567).saturating_mul(v.into())) + // Standard Error: 75_109 + .saturating_add(Weight::from_ref_time(7_035_583).saturating_mul(a.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) .saturating_add(Weight::from_proof_size(3871).saturating_mul(v.into())) @@ -253,13 +251,13 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `154 + v * (553 ±0) + t * (32 ±0)` // Estimated: `2596 + v * (2212 ±0) + t * (128 ±0)` - // Minimum execution time: 3_662_000 nanoseconds. - Weight::from_ref_time(3_662_000_000) + // Minimum execution time: 7_057_908 nanoseconds. + Weight::from_ref_time(7_258_224_000) .saturating_add(Weight::from_proof_size(2596)) - // Standard Error: 202_002 - .saturating_add(Weight::from_ref_time(46_624).saturating_mul(v.into())) - // Standard Error: 597_591 - .saturating_add(Weight::from_ref_time(3_149_558).saturating_mul(a.into())) + // Standard Error: 22_978 + .saturating_add(Weight::from_ref_time(405_949).saturating_mul(v.into())) + // Standard Error: 68_094 + .saturating_add(Weight::from_ref_time(5_622_957).saturating_mul(a.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(Weight::from_proof_size(2212).saturating_mul(v.into())) .saturating_add(Weight::from_proof_size(128).saturating_mul(t.into())) diff --git a/runtime/src/weights/pallet_im_online.rs b/runtime/src/weights/pallet_im_online.rs index e001994d7e..c2c0bca620 100644 --- a/runtime/src/weights/pallet_im_online.rs +++ b/runtime/src/weights/pallet_im_online.rs @@ -18,7 +18,7 @@ //! Autogenerated weights for pallet_im_online //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-03-15, STEPS: `2`, REPEAT: 2, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-04-27, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("prod-test"), DB CACHE: 1024 // Executed Command: @@ -28,8 +28,8 @@ // --pallet=pallet_im_online // --extrinsic=* // --chain=prod-test -// --steps=2 -// --repeat=2 +// --steps=50 +// --repeat=20 // --execution=wasm // --template=./scripts/../devops/frame-weight-template.hbs // --output=./scripts/../runtime/src/weights/pallet_im_online.rs @@ -61,17 +61,18 @@ impl WeightInfo for SubstrateWeight { /// The range of component `e` is `[1, 100]`. fn validate_unsigned_and_then_heartbeat(k: u32, e: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `357 + k * (32 ±0)` - // Estimated: `10348241 + k * (64 ±0)` - // Minimum execution time: 98_000 nanoseconds. - Weight::from_ref_time(57_440_804) - .saturating_add(Weight::from_proof_size(10348241)) - // Standard Error: 5_950 - .saturating_add(Weight::from_ref_time(44_044).saturating_mul(k.into())) - // Standard Error: 60_042 - .saturating_add(Weight::from_ref_time(515_151).saturating_mul(e.into())) - .saturating_add(T::DbWeight::get().reads(5_u64)) + // Measured: `359 + k * (32 ±0)` + // Estimated: `10345712 + e * (25 ±0) + k * (64 ±0)` + // Minimum execution time: 151_479 nanoseconds. + Weight::from_ref_time(106_415_209) + .saturating_add(Weight::from_proof_size(10345712)) + // Standard Error: 408 + .saturating_add(Weight::from_ref_time(51_073).saturating_mul(k.into())) + // Standard Error: 4_112 + .saturating_add(Weight::from_ref_time(582_904).saturating_mul(e.into())) + .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) + .saturating_add(Weight::from_proof_size(25).saturating_mul(e.into())) .saturating_add(Weight::from_proof_size(64).saturating_mul(k.into())) } } diff --git a/runtime/src/weights/pallet_multisig.rs b/runtime/src/weights/pallet_multisig.rs index e231003021..8399bc537d 100644 --- a/runtime/src/weights/pallet_multisig.rs +++ b/runtime/src/weights/pallet_multisig.rs @@ -18,7 +18,7 @@ //! Autogenerated weights for pallet_multisig //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-03-15, STEPS: `2`, REPEAT: 2, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-04-27, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("prod-test"), DB CACHE: 1024 // Executed Command: @@ -28,8 +28,8 @@ // --pallet=pallet_multisig // --extrinsic=* // --chain=prod-test -// --steps=2 -// --repeat=2 +// --steps=50 +// --repeat=20 // --execution=wasm // --template=./scripts/../devops/frame-weight-template.hbs // --output=./scripts/../runtime/src/weights/pallet_multisig.rs @@ -52,11 +52,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 10_000 nanoseconds. - Weight::from_ref_time(10_000_000) + // Minimum execution time: 18_604 nanoseconds. + Weight::from_ref_time(19_689_603) .saturating_add(Weight::from_proof_size(0)) - // Standard Error: 350 - .saturating_add(Weight::from_ref_time(750).saturating_mul(z.into())) + // Standard Error: 4 + .saturating_add(Weight::from_ref_time(733).saturating_mul(z.into())) } // Storage: Multisig Multisigs (r:1 w:1) // Proof: Multisig Multisigs (max_values: None, max_size: Some(3346), added: 5821, mode: MaxEncodedLen) @@ -64,15 +64,15 @@ impl WeightInfo for SubstrateWeight { /// The range of component `z` is `[0, 10000]`. fn as_multi_create(s: u32, z: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `313 + s * (3 ±0)` + // Measured: `382 + s * (2 ±0)` // Estimated: `5821` - // Minimum execution time: 31_000 nanoseconds. - Weight::from_ref_time(25_857_142) + // Minimum execution time: 57_734 nanoseconds. + Weight::from_ref_time(44_212_087) .saturating_add(Weight::from_proof_size(5821)) - // Standard Error: 17_673 - .saturating_add(Weight::from_ref_time(71_428).saturating_mul(s.into())) - // Standard Error: 173 - .saturating_add(Weight::from_ref_time(1_350).saturating_mul(z.into())) + // Standard Error: 4_761 + .saturating_add(Weight::from_ref_time(154_221).saturating_mul(s.into())) + // Standard Error: 46 + .saturating_add(Weight::from_ref_time(2_277).saturating_mul(z.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -84,13 +84,13 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `351` // Estimated: `5821` - // Minimum execution time: 21_000 nanoseconds. - Weight::from_ref_time(18_376_288) + // Minimum execution time: 43_135 nanoseconds. + Weight::from_ref_time(31_001_407) .saturating_add(Weight::from_proof_size(5821)) - // Standard Error: 18_345 - .saturating_add(Weight::from_ref_time(41_237).saturating_mul(s.into())) - // Standard Error: 177 - .saturating_add(Weight::from_ref_time(1_400).saturating_mul(z.into())) + // Standard Error: 871 + .saturating_add(Weight::from_ref_time(136_583).saturating_mul(s.into())) + // Standard Error: 8 + .saturating_add(Weight::from_ref_time(2_104).saturating_mul(z.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -102,15 +102,15 @@ impl WeightInfo for SubstrateWeight { /// The range of component `z` is `[0, 10000]`. fn as_multi_complete(s: u32, z: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `488 + s * (34 ±0)` + // Measured: `519 + s * (33 ±0)` // Estimated: `8424` - // Minimum execution time: 34_000 nanoseconds. - Weight::from_ref_time(28_387_755) + // Minimum execution time: 66_307 nanoseconds. + Weight::from_ref_time(51_060_192) .saturating_add(Weight::from_proof_size(8424)) - // Standard Error: 17_176 - .saturating_add(Weight::from_ref_time(56_122).saturating_mul(s.into())) - // Standard Error: 168 - .saturating_add(Weight::from_ref_time(1_450).saturating_mul(z.into())) + // Standard Error: 1_556 + .saturating_add(Weight::from_ref_time(166_796).saturating_mul(s.into())) + // Standard Error: 15 + .saturating_add(Weight::from_ref_time(2_105).saturating_mul(z.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -119,13 +119,13 @@ impl WeightInfo for SubstrateWeight { /// The range of component `s` is `[2, 100]`. fn approve_as_multi_create(s: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `313 + s * (3 ±0)` + // Measured: `389 + s * (2 ±0)` // Estimated: `5821` - // Minimum execution time: 25_000 nanoseconds. - Weight::from_ref_time(24_867_346) + // Minimum execution time: 43_627 nanoseconds. + Weight::from_ref_time(45_045_985) .saturating_add(Weight::from_proof_size(5821)) - // Standard Error: 15_306 - .saturating_add(Weight::from_ref_time(66_326).saturating_mul(s.into())) + // Standard Error: 2_250 + .saturating_add(Weight::from_ref_time(146_019).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -136,11 +136,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `351` // Estimated: `5821` - // Minimum execution time: 15_000 nanoseconds. - Weight::from_ref_time(14_867_346) + // Minimum execution time: 28_071 nanoseconds. + Weight::from_ref_time(29_595_446) .saturating_add(Weight::from_proof_size(5821)) - // Standard Error: 15_306 - .saturating_add(Weight::from_ref_time(66_326).saturating_mul(s.into())) + // Standard Error: 1_002 + .saturating_add(Weight::from_ref_time(134_532).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -149,13 +149,13 @@ impl WeightInfo for SubstrateWeight { /// The range of component `s` is `[2, 100]`. fn cancel_as_multi(s: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `552 + s * (2 ±0)` + // Measured: `588 + s * (1 ±0)` // Estimated: `5821` - // Minimum execution time: 24_000 nanoseconds. - Weight::from_ref_time(26_377_551) + // Minimum execution time: 42_944 nanoseconds. + Weight::from_ref_time(45_425_149) .saturating_add(Weight::from_proof_size(5821)) - // Standard Error: 36_076 - .saturating_add(Weight::from_ref_time(61_224).saturating_mul(s.into())) + // Standard Error: 1_200 + .saturating_add(Weight::from_ref_time(136_371).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } diff --git a/runtime/src/weights/pallet_session.rs b/runtime/src/weights/pallet_session.rs index d92cbe78c8..5a71677b1c 100644 --- a/runtime/src/weights/pallet_session.rs +++ b/runtime/src/weights/pallet_session.rs @@ -18,7 +18,7 @@ //! Autogenerated weights for pallet_session //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-03-15, STEPS: `2`, REPEAT: 2, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-04-27, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("prod-test"), DB CACHE: 1024 // Executed Command: @@ -28,8 +28,8 @@ // --pallet=pallet_session // --extrinsic=* // --chain=prod-test -// --steps=2 -// --repeat=2 +// --steps=50 +// --repeat=20 // --execution=wasm // --template=./scripts/../devops/frame-weight-template.hbs // --output=./scripts/../runtime/src/weights/pallet_session.rs @@ -57,8 +57,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1868` // Estimated: `19821` - // Minimum execution time: 40_000 nanoseconds. - Weight::from_ref_time(41_000_000) + // Minimum execution time: 70_580 nanoseconds. + Weight::from_ref_time(71_628_000) .saturating_add(Weight::from_proof_size(19821)) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(5_u64)) @@ -73,8 +73,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1767` // Estimated: `9719` - // Minimum execution time: 29_000 nanoseconds. - Weight::from_ref_time(30_000_000) + // Minimum execution time: 52_284 nanoseconds. + Weight::from_ref_time(53_042_000) .saturating_add(Weight::from_proof_size(9719)) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(5_u64)) diff --git a/runtime/src/weights/pallet_staking.rs b/runtime/src/weights/pallet_staking.rs index 804448be37..3cd869e0a9 100644 --- a/runtime/src/weights/pallet_staking.rs +++ b/runtime/src/weights/pallet_staking.rs @@ -18,7 +18,7 @@ //! Autogenerated weights for pallet_staking //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-03-15, STEPS: `2`, REPEAT: 2, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-04-27, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("prod-test"), DB CACHE: 1024 // Executed Command: @@ -28,8 +28,8 @@ // --pallet=pallet_staking // --extrinsic=* // --chain=prod-test -// --steps=2 -// --repeat=2 +// --steps=50 +// --repeat=20 // --execution=wasm // --template=./scripts/../devops/frame-weight-template.hbs // --output=./scripts/../runtime/src/weights/pallet_staking.rs @@ -61,8 +61,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1031` // Estimated: `10530` - // Minimum execution time: 38_000 nanoseconds. - Weight::from_ref_time(40_000_000) + // Minimum execution time: 64_730 nanoseconds. + Weight::from_ref_time(66_893_000) .saturating_add(Weight::from_proof_size(10530)) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) @@ -81,8 +81,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `2164` // Estimated: `23032` - // Minimum execution time: 72_000 nanoseconds. - Weight::from_ref_time(72_000_000) + // Minimum execution time: 121_987 nanoseconds. + Weight::from_ref_time(123_327_000) .saturating_add(Weight::from_proof_size(23032)) .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().writes(7_u64)) @@ -109,8 +109,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `2397` // Estimated: `29678` - // Minimum execution time: 78_000 nanoseconds. - Weight::from_ref_time(80_000_000) + // Minimum execution time: 132_739 nanoseconds. + Weight::from_ref_time(135_138_000) .saturating_add(Weight::from_proof_size(29678)) .saturating_add(T::DbWeight::get().reads(12_u64)) .saturating_add(T::DbWeight::get().writes(8_u64)) @@ -128,11 +128,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `995` // Estimated: `10586` - // Minimum execution time: 28_000 nanoseconds. - Weight::from_ref_time(28_500_000) + // Minimum execution time: 49_141 nanoseconds. + Weight::from_ref_time(51_020_718) .saturating_add(Weight::from_proof_size(10586)) - // Standard Error: 5_000 - .saturating_add(Weight::from_ref_time(5_000).saturating_mul(s.into())) + // Standard Error: 1_114 + .saturating_add(Weight::from_ref_time(53_151).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -167,17 +167,17 @@ impl WeightInfo for SubstrateWeight { /// The range of component `s` is `[0, 100]`. fn withdraw_unbonded_kill(s: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `2307 + s * (5 ±0)` - // Estimated: `32281 + s * (5 ±0)` - // Minimum execution time: 68_000 nanoseconds. - Weight::from_ref_time(68_000_000) - .saturating_add(Weight::from_proof_size(32281)) - // Standard Error: 10_000 - .saturating_add(Weight::from_ref_time(1_360_000).saturating_mul(s.into())) + // Measured: `2410 + s * (4 ±0)` + // Estimated: `32371 + s * (4 ±0)` + // Minimum execution time: 117_106 nanoseconds. + Weight::from_ref_time(127_217_330) + .saturating_add(Weight::from_proof_size(32371)) + // Standard Error: 4_778 + .saturating_add(Weight::from_ref_time(1_861_863).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(13_u64)) - .saturating_add(T::DbWeight::get().writes(11_u64)) + .saturating_add(T::DbWeight::get().writes(12_u64)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(s.into()))) - .saturating_add(Weight::from_proof_size(5).saturating_mul(s.into())) + .saturating_add(Weight::from_proof_size(4).saturating_mul(s.into())) } // Storage: Staking Ledger (r:1 w:0) // Proof: Staking Ledger (max_values: None, max_size: Some(1235), added: 3710, mode: MaxEncodedLen) @@ -205,8 +205,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1414` // Estimated: `22132` - // Minimum execution time: 53_000 nanoseconds. - Weight::from_ref_time(53_000_000) + // Minimum execution time: 91_588 nanoseconds. + Weight::from_ref_time(93_820_000) .saturating_add(Weight::from_proof_size(22132)) .saturating_add(T::DbWeight::get().reads(12_u64)) .saturating_add(T::DbWeight::get().writes(6_u64)) @@ -218,13 +218,13 @@ impl WeightInfo for SubstrateWeight { /// The range of component `k` is `[1, 128]`. fn kick(k: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1126 + k * (601 ±0)` + // Measured: `1227 + k * (601 ±0)` // Estimated: `3710 + k * (3033 ±0)` - // Minimum execution time: 23_000 nanoseconds. - Weight::from_ref_time(15_759_842) + // Minimum execution time: 41_732 nanoseconds. + Weight::from_ref_time(42_440_389) .saturating_add(Weight::from_proof_size(3710)) - // Standard Error: 11_811 - .saturating_add(Weight::from_ref_time(7_240_157).saturating_mul(k.into())) + // Standard Error: 11_765 + .saturating_add(Weight::from_ref_time(11_007_656).saturating_mul(k.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(k.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(k.into()))) @@ -255,13 +255,13 @@ impl WeightInfo for SubstrateWeight { /// The range of component `n` is `[1, 16]`. fn nominate(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1879 + n * (100 ±0)` + // Measured: `1876 + n * (104 ±0)` // Estimated: `22132 + n * (2520 ±0)` - // Minimum execution time: 56_000 nanoseconds. - Weight::from_ref_time(53_200_000) + // Minimum execution time: 96_632 nanoseconds. + Weight::from_ref_time(95_145_932) .saturating_add(Weight::from_proof_size(22132)) - // Standard Error: 0 - .saturating_add(Weight::from_ref_time(2_800_000).saturating_mul(n.into())) + // Standard Error: 18_886 + .saturating_add(Weight::from_ref_time(4_179_861).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(12_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(n.into()))) .saturating_add(T::DbWeight::get().writes(6_u64)) @@ -285,8 +285,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1763` // Estimated: `18076` - // Minimum execution time: 47_000 nanoseconds. - Weight::from_ref_time(48_000_000) + // Minimum execution time: 83_143 nanoseconds. + Weight::from_ref_time(85_167_000) .saturating_add(Weight::from_proof_size(18076)) .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().writes(6_u64)) @@ -299,8 +299,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `753` // Estimated: `3710` - // Minimum execution time: 12_000 nanoseconds. - Weight::from_ref_time(13_000_000) + // Minimum execution time: 21_044 nanoseconds. + Weight::from_ref_time(21_617_000) .saturating_add(Weight::from_proof_size(3710)) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -313,8 +313,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `852` // Estimated: `9967` - // Minimum execution time: 18_000 nanoseconds. - Weight::from_ref_time(18_000_000) + // Minimum execution time: 32_052 nanoseconds. + Weight::from_ref_time(32_597_000) .saturating_add(Weight::from_proof_size(9967)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -325,8 +325,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_000 nanoseconds. - Weight::from_ref_time(3_000_000) + // Minimum execution time: 4_178 nanoseconds. + Weight::from_ref_time(4_390_000) .saturating_add(Weight::from_proof_size(0)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -336,8 +336,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 9_000 nanoseconds. - Weight::from_ref_time(10_000_000) + // Minimum execution time: 15_117 nanoseconds. + Weight::from_ref_time(15_471_000) .saturating_add(Weight::from_proof_size(0)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -347,8 +347,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 9_000 nanoseconds. - Weight::from_ref_time(9_000_000) + // Minimum execution time: 15_595 nanoseconds. + Weight::from_ref_time(15_880_000) .saturating_add(Weight::from_proof_size(0)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -358,8 +358,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 8_000 nanoseconds. - Weight::from_ref_time(9_000_000) + // Minimum execution time: 15_658 nanoseconds. + Weight::from_ref_time(16_034_000) .saturating_add(Weight::from_proof_size(0)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -370,11 +370,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_000 nanoseconds. - Weight::from_ref_time(2_500_000) + // Minimum execution time: 4_520 nanoseconds. + Weight::from_ref_time(5_515_161) .saturating_add(Weight::from_proof_size(0)) - // Standard Error: 1_767 - .saturating_add(Weight::from_ref_time(7_500).saturating_mul(v.into())) + // Standard Error: 85 + .saturating_add(Weight::from_ref_time(12_125).saturating_mul(v.into())) .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Staking Bonded (r:1 w:1) @@ -406,17 +406,17 @@ impl WeightInfo for SubstrateWeight { /// The range of component `s` is `[0, 100]`. fn force_unstake(s: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `2005 + s * (5 ±0)` - // Estimated: `27770 + s * (5 ±0)` - // Minimum execution time: 61_000 nanoseconds. - Weight::from_ref_time(61_000_000) - .saturating_add(Weight::from_proof_size(27770)) - // Standard Error: 25_000 - .saturating_add(Weight::from_ref_time(1_335_000).saturating_mul(s.into())) + // Measured: `2108 + s * (4 ±0)` + // Estimated: `27860 + s * (4 ±0)` + // Minimum execution time: 106_008 nanoseconds. + Weight::from_ref_time(115_275_967) + .saturating_add(Weight::from_proof_size(27860)) + // Standard Error: 8_320 + .saturating_add(Weight::from_ref_time(1_867_725).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(11_u64)) - .saturating_add(T::DbWeight::get().writes(11_u64)) + .saturating_add(T::DbWeight::get().writes(12_u64)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(s.into()))) - .saturating_add(Weight::from_proof_size(5).saturating_mul(s.into())) + .saturating_add(Weight::from_proof_size(4).saturating_mul(s.into())) } // Storage: Staking UnappliedSlashes (r:1 w:1) // Proof Skipped: Staking UnappliedSlashes (max_values: None, max_size: None, mode: Measured) @@ -425,11 +425,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `66590` // Estimated: `69065` - // Minimum execution time: 131_000 nanoseconds. - Weight::from_ref_time(128_993_993) + // Minimum execution time: 140_799 nanoseconds. + Weight::from_ref_time(1_056_177_366) .saturating_add(Weight::from_proof_size(69065)) - // Standard Error: 44_069 - .saturating_add(Weight::from_ref_time(3_506_006).saturating_mul(s.into())) + // Standard Error: 71_856 + .saturating_add(Weight::from_ref_time(6_325_737).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -454,18 +454,18 @@ impl WeightInfo for SubstrateWeight { /// The range of component `n` is `[0, 256]`. fn payout_stakers_dead_controller(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `4238 + n * (196 ±0)` - // Estimated: `30368 + n * (8090 ±0)` - // Minimum execution time: 66_000 nanoseconds. - Weight::from_ref_time(67_500_000) - .saturating_add(Weight::from_proof_size(30368)) - // Standard Error: 51_118 - .saturating_add(Weight::from_ref_time(25_052_734).saturating_mul(n.into())) + // Measured: `20587 + n * (140 ±0)` + // Estimated: `55312 + n * (8020 ±0)` + // Minimum execution time: 115_382 nanoseconds. + Weight::from_ref_time(147_804_619) + .saturating_add(Weight::from_proof_size(55312)) + // Standard Error: 25_747 + .saturating_add(Weight::from_ref_time(38_213_292).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(9_u64)) .saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(n.into()))) .saturating_add(T::DbWeight::get().writes(2_u64)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(n.into()))) - .saturating_add(Weight::from_proof_size(8090).saturating_mul(n.into())) + .saturating_add(Weight::from_proof_size(8020).saturating_mul(n.into())) } // Storage: Staking CurrentEra (r:1 w:0) // Proof: Staking CurrentEra (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) @@ -490,18 +490,18 @@ impl WeightInfo for SubstrateWeight { /// The range of component `n` is `[0, 256]`. fn payout_stakers_alive_staked(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `5341 + n * (555 ±0)` - // Estimated: `36348 + n * (16292 ±0)` - // Minimum execution time: 81_000 nanoseconds. - Weight::from_ref_time(82_000_000) - .saturating_add(Weight::from_proof_size(36348)) - // Standard Error: 87_977 - .saturating_add(Weight::from_ref_time(33_744_140).saturating_mul(n.into())) + // Measured: `35490 + n * (456 ±0)` + // Estimated: `84430 + n * (16152 ±0)` + // Minimum execution time: 140_071 nanoseconds. + Weight::from_ref_time(146_167_931) + .saturating_add(Weight::from_proof_size(84430)) + // Standard Error: 60_804 + .saturating_add(Weight::from_ref_time(53_754_330).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(10_u64)) .saturating_add(T::DbWeight::get().reads((5_u64).saturating_mul(n.into()))) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(T::DbWeight::get().writes((3_u64).saturating_mul(n.into()))) - .saturating_add(Weight::from_proof_size(16292).saturating_mul(n.into())) + .saturating_add(Weight::from_proof_size(16152).saturating_mul(n.into())) } // Storage: Staking Ledger (r:1 w:1) // Proof: Staking Ledger (max_values: None, max_size: Some(1235), added: 3710, mode: MaxEncodedLen) @@ -518,13 +518,13 @@ impl WeightInfo for SubstrateWeight { /// The range of component `l` is `[1, 32]`. fn rebond(l: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `2163 + l * (8 ±0)` + // Measured: `2165 + l * (8 ±0)` // Estimated: `25635` - // Minimum execution time: 70_000 nanoseconds. - Weight::from_ref_time(70_435_483) + // Minimum execution time: 121_756 nanoseconds. + Weight::from_ref_time(124_496_329) .saturating_add(Weight::from_proof_size(25635)) - // Standard Error: 22_809 - .saturating_add(Weight::from_ref_time(64_516).saturating_mul(l.into())) + // Standard Error: 7_581 + .saturating_add(Weight::from_ref_time(72_661).saturating_mul(l.into())) .saturating_add(T::DbWeight::get().reads(9_u64)) .saturating_add(T::DbWeight::get().writes(8_u64)) } @@ -557,13 +557,13 @@ impl WeightInfo for SubstrateWeight { /// The range of component `s` is `[1, 100]`. fn reap_stash(s: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `2376 + s * (4 ±0)` - // Estimated: `31852 + s * (4 ±0)` - // Minimum execution time: 74_000 nanoseconds. - Weight::from_ref_time(73_247_474) - .saturating_add(Weight::from_proof_size(31852)) - // Standard Error: 15_971 - .saturating_add(Weight::from_ref_time(1_252_525).saturating_mul(s.into())) + // Measured: `2410 + s * (4 ±0)` + // Estimated: `31878 + s * (4 ±0)` + // Minimum execution time: 127_389 nanoseconds. + Weight::from_ref_time(132_204_999) + .saturating_add(Weight::from_proof_size(31878)) + // Standard Error: 3_382 + .saturating_add(Weight::from_ref_time(1_822_052).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(12_u64)) .saturating_add(T::DbWeight::get().writes(12_u64)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(s.into()))) @@ -607,22 +607,22 @@ impl WeightInfo for SubstrateWeight { /// The range of component `n` is `[0, 100]`. fn new_era(v: u32, n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `0 + v * (3667 ±0) + n * (810 ±0)` - // Estimated: `527459 + v * (16553 ±0) + n * (13095 ±0)` - // Minimum execution time: 491_000 nanoseconds. - Weight::from_ref_time(491_000_000) + // Measured: `0 + v * (3656 ±0) + n * (810 ±0)` + // Estimated: `527459 + v * (16909 ±39) + n * (13083 ±3)` + // Minimum execution time: 796_754 nanoseconds. + Weight::from_ref_time(799_286_000) .saturating_add(Weight::from_proof_size(527459)) - // Standard Error: 32_475_368 - .saturating_add(Weight::from_ref_time(41_610_320).saturating_mul(v.into())) - // Standard Error: 3_255_645 - .saturating_add(Weight::from_ref_time(15_158_932).saturating_mul(n.into())) + // Standard Error: 2_723_680 + .saturating_add(Weight::from_ref_time(88_552_691).saturating_mul(v.into())) + // Standard Error: 271_399 + .saturating_add(Weight::from_ref_time(22_785_670).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(206_u64)) .saturating_add(T::DbWeight::get().reads((5_u64).saturating_mul(v.into()))) .saturating_add(T::DbWeight::get().reads((4_u64).saturating_mul(n.into()))) .saturating_add(T::DbWeight::get().writes(4_u64)) .saturating_add(T::DbWeight::get().writes((3_u64).saturating_mul(v.into()))) - .saturating_add(Weight::from_proof_size(16553).saturating_mul(v.into())) - .saturating_add(Weight::from_proof_size(13095).saturating_mul(n.into())) + .saturating_add(Weight::from_proof_size(16909).saturating_mul(v.into())) + .saturating_add(Weight::from_proof_size(13083).saturating_mul(n.into())) } // Storage: BagsList CounterForListNodes (r:1 w:0) // Proof: BagsList CounterForListNodes (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) @@ -644,15 +644,13 @@ impl WeightInfo for SubstrateWeight { /// The range of component `n` is `[500, 1000]`. fn get_npos_voters(v: u32, n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `2900 + v * (453 ±0) + n * (1001 ±0)` + // Measured: `2911 + v * (453 ±0) + n * (1001 ±0)` // Estimated: `511899 + v * (14439 ±0) + n * (11919 ±0)` - // Minimum execution time: 15_399_000 nanoseconds. - Weight::from_ref_time(494_500_000) + // Minimum execution time: 24_085_643 nanoseconds. + Weight::from_ref_time(24_220_889_000) .saturating_add(Weight::from_proof_size(511899)) - // Standard Error: 4_910_925 - .saturating_add(Weight::from_ref_time(15_282_499).saturating_mul(v.into())) - // Standard Error: 1_964_370 - .saturating_add(Weight::from_ref_time(18_618_999).saturating_mul(n.into())) + // Standard Error: 258_694 + .saturating_add(Weight::from_ref_time(14_304_026).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(201_u64)) .saturating_add(T::DbWeight::get().reads((5_u64).saturating_mul(v.into()))) .saturating_add(T::DbWeight::get().reads((4_u64).saturating_mul(n.into()))) @@ -667,13 +665,13 @@ impl WeightInfo for SubstrateWeight { /// The range of component `v` is `[200, 400]`. fn get_npos_targets(v: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `552 + v * (50 ±0)` + // Measured: `512 + v * (50 ±0)` // Estimated: `3019 + v * (2520 ±0)` - // Minimum execution time: 1_455_000 nanoseconds. - Weight::from_ref_time(1_455_000_000) + // Minimum execution time: 2_018_940 nanoseconds. + Weight::from_ref_time(2_057_997_000) .saturating_add(Weight::from_proof_size(3019)) - // Standard Error: 877_712 - .saturating_add(Weight::from_ref_time(3_119_000).saturating_mul(v.into())) + // Standard Error: 61_208 + .saturating_add(Weight::from_ref_time(3_720_720).saturating_mul(v.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(v.into()))) .saturating_add(Weight::from_proof_size(2520).saturating_mul(v.into())) @@ -694,8 +692,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 5_000 nanoseconds. - Weight::from_ref_time(6_000_000) + // Minimum execution time: 10_108 nanoseconds. + Weight::from_ref_time(10_493_000) .saturating_add(Weight::from_proof_size(0)) .saturating_add(T::DbWeight::get().writes(6_u64)) } @@ -715,8 +713,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 5_000 nanoseconds. - Weight::from_ref_time(6_000_000) + // Minimum execution time: 9_230 nanoseconds. + Weight::from_ref_time(9_694_000) .saturating_add(Weight::from_proof_size(0)) .saturating_add(T::DbWeight::get().writes(6_u64)) } @@ -744,8 +742,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1873` // Estimated: `19582` - // Minimum execution time: 58_000 nanoseconds. - Weight::from_ref_time(60_000_000) + // Minimum execution time: 103_562 nanoseconds. + Weight::from_ref_time(105_339_000) .saturating_add(Weight::from_proof_size(19582)) .saturating_add(T::DbWeight::get().reads(11_u64)) .saturating_add(T::DbWeight::get().writes(6_u64)) @@ -758,8 +756,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `613` // Estimated: `3019` - // Minimum execution time: 11_000 nanoseconds. - Weight::from_ref_time(11_000_000) + // Minimum execution time: 19_630 nanoseconds. + Weight::from_ref_time(20_129_000) .saturating_add(Weight::from_proof_size(3019)) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -770,8 +768,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_000 nanoseconds. - Weight::from_ref_time(3_000_000) + // Minimum execution time: 4_351 nanoseconds. + Weight::from_ref_time(4_647_000) .saturating_add(Weight::from_proof_size(0)) .saturating_add(T::DbWeight::get().writes(1_u64)) } diff --git a/runtime/src/weights/pallet_timestamp.rs b/runtime/src/weights/pallet_timestamp.rs index 7bc2f6ec20..28e5e6b5e4 100644 --- a/runtime/src/weights/pallet_timestamp.rs +++ b/runtime/src/weights/pallet_timestamp.rs @@ -18,7 +18,7 @@ //! Autogenerated weights for pallet_timestamp //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-03-15, STEPS: `2`, REPEAT: 2, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-04-27, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("prod-test"), DB CACHE: 1024 // Executed Command: @@ -28,8 +28,8 @@ // --pallet=pallet_timestamp // --extrinsic=* // --chain=prod-test -// --steps=2 -// --repeat=2 +// --steps=50 +// --repeat=20 // --execution=wasm // --template=./scripts/../devops/frame-weight-template.hbs // --output=./scripts/../runtime/src/weights/pallet_timestamp.rs @@ -55,8 +55,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `249` // Estimated: `1006` - // Minimum execution time: 9_000 nanoseconds. - Weight::from_ref_time(11_000_000) + // Minimum execution time: 15_292 nanoseconds. + Weight::from_ref_time(15_939_000) .saturating_add(Weight::from_proof_size(1006)) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -65,8 +65,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `94` // Estimated: `0` - // Minimum execution time: 4_000 nanoseconds. - Weight::from_ref_time(5_000_000) + // Minimum execution time: 6_684 nanoseconds. + Weight::from_ref_time(6_942_000) .saturating_add(Weight::from_proof_size(0)) } } diff --git a/runtime/src/weights/pallet_vesting.rs b/runtime/src/weights/pallet_vesting.rs index b76c163947..3e8b58a1de 100644 --- a/runtime/src/weights/pallet_vesting.rs +++ b/runtime/src/weights/pallet_vesting.rs @@ -18,7 +18,7 @@ //! Autogenerated weights for pallet_vesting //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-03-15, STEPS: `2`, REPEAT: 2, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-04-27, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("prod-test"), DB CACHE: 1024 // Executed Command: @@ -28,8 +28,8 @@ // --pallet=pallet_vesting // --extrinsic=* // --chain=prod-test -// --steps=2 -// --repeat=2 +// --steps=50 +// --repeat=20 // --execution=wasm // --template=./scripts/../devops/frame-weight-template.hbs // --output=./scripts/../runtime/src/weights/pallet_vesting.rs @@ -55,15 +55,15 @@ impl WeightInfo for SubstrateWeight { /// The range of component `s` is `[1, 28]`. fn vest_locked(l: u32, s: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `304 + l * (25 ±0) + s * (36 ±0)` + // Measured: `340 + l * (25 ±0) + s * (36 ±0)` // Estimated: `7306` - // Minimum execution time: 24_000 nanoseconds. - Weight::from_ref_time(23_462_962) + // Minimum execution time: 42_483 nanoseconds. + Weight::from_ref_time(41_177_411) .saturating_add(Weight::from_proof_size(7306)) - // Standard Error: 8_331 - .saturating_add(Weight::from_ref_time(51_020).saturating_mul(l.into())) - // Standard Error: 15_120 - .saturating_add(Weight::from_ref_time(37_037).saturating_mul(s.into())) + // Standard Error: 7_207 + .saturating_add(Weight::from_ref_time(92_946).saturating_mul(l.into())) + // Standard Error: 12_822 + .saturating_add(Weight::from_ref_time(127_768).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -75,15 +75,15 @@ impl WeightInfo for SubstrateWeight { /// The range of component `s` is `[1, 28]`. fn vest_unlocked(l: u32, s: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `304 + l * (25 ±0) + s * (36 ±0)` + // Measured: `340 + l * (25 ±0) + s * (36 ±0)` // Estimated: `7306` - // Minimum execution time: 24_000 nanoseconds. - Weight::from_ref_time(23_444_444) + // Minimum execution time: 41_464 nanoseconds. + Weight::from_ref_time(40_804_769) .saturating_add(Weight::from_proof_size(7306)) - // Standard Error: 8_331 - .saturating_add(Weight::from_ref_time(20_408).saturating_mul(l.into())) - // Standard Error: 15_120 - .saturating_add(Weight::from_ref_time(55_555).saturating_mul(s.into())) + // Standard Error: 1_666 + .saturating_add(Weight::from_ref_time(91_264).saturating_mul(l.into())) + // Standard Error: 2_965 + .saturating_add(Weight::from_ref_time(54_498).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -95,15 +95,17 @@ impl WeightInfo for SubstrateWeight { // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) /// The range of component `l` is `[0, 49]`. /// The range of component `s` is `[1, 28]`. - fn vest_other_locked(l: u32, _s: u32, ) -> Weight { + fn vest_other_locked(l: u32, s: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `476 + l * (25 ±0) + s * (36 ±0)` + // Measured: `512 + l * (25 ±0) + s * (36 ±0)` // Estimated: `9909` - // Minimum execution time: 27_000 nanoseconds. - Weight::from_ref_time(28_555_555) + // Minimum execution time: 47_749 nanoseconds. + Weight::from_ref_time(45_566_710) .saturating_add(Weight::from_proof_size(9909)) - // Standard Error: 24_994 - .saturating_add(Weight::from_ref_time(61_224).saturating_mul(l.into())) + // Standard Error: 5_471 + .saturating_add(Weight::from_ref_time(97_286).saturating_mul(l.into())) + // Standard Error: 9_734 + .saturating_add(Weight::from_ref_time(126_445).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -115,15 +117,17 @@ impl WeightInfo for SubstrateWeight { // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) /// The range of component `l` is `[0, 49]`. /// The range of component `s` is `[1, 28]`. - fn vest_other_unlocked(_l: u32, s: u32, ) -> Weight { + fn vest_other_unlocked(l: u32, s: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `476 + l * (25 ±0) + s * (36 ±0)` + // Measured: `512 + l * (25 ±0) + s * (36 ±0)` // Estimated: `9909` - // Minimum execution time: 26_000 nanoseconds. - Weight::from_ref_time(26_962_962) + // Minimum execution time: 45_883 nanoseconds. + Weight::from_ref_time(44_453_967) .saturating_add(Weight::from_proof_size(9909)) - // Standard Error: 30_240 - .saturating_add(Weight::from_ref_time(37_037).saturating_mul(s.into())) + // Standard Error: 6_004 + .saturating_add(Weight::from_ref_time(107_530).saturating_mul(l.into())) + // Standard Error: 10_682 + .saturating_add(Weight::from_ref_time(98_500).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -135,15 +139,17 @@ impl WeightInfo for SubstrateWeight { // Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) /// The range of component `l` is `[0, 49]`. /// The range of component `s` is `[0, 27]`. - fn vested_transfer(l: u32, _s: u32, ) -> Weight { + fn vested_transfer(l: u32, s: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `215 + l * (25 ±0) + s * (47 ±0)` + // Measured: `546 + l * (25 ±0) + s * (36 ±0)` // Estimated: `9909` - // Minimum execution time: 42_000 nanoseconds. - Weight::from_ref_time(45_000_000) + // Minimum execution time: 69_570 nanoseconds. + Weight::from_ref_time(69_991_859) .saturating_add(Weight::from_proof_size(9909)) - // Standard Error: 26_346 - .saturating_add(Weight::from_ref_time(51_020).saturating_mul(l.into())) + // Standard Error: 3_953 + .saturating_add(Weight::from_ref_time(87_229).saturating_mul(l.into())) + // Standard Error: 7_033 + .saturating_add(Weight::from_ref_time(59_975).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -155,15 +161,17 @@ impl WeightInfo for SubstrateWeight { // Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) /// The range of component `l` is `[0, 49]`. /// The range of component `s` is `[0, 27]`. - fn force_vested_transfer(l: u32, _s: u32, ) -> Weight { + fn force_vested_transfer(l: u32, s: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `387 + l * (25 ±0) + s * (47 ±0)` + // Measured: `718 + l * (25 ±0) + s * (36 ±0)` // Estimated: `12512` - // Minimum execution time: 44_000 nanoseconds. - Weight::from_ref_time(45_500_000) + // Minimum execution time: 73_355 nanoseconds. + Weight::from_ref_time(73_756_121) .saturating_add(Weight::from_proof_size(12512)) - // Standard Error: 8_331 - .saturating_add(Weight::from_ref_time(61_224).saturating_mul(l.into())) + // Standard Error: 3_720 + .saturating_add(Weight::from_ref_time(96_445).saturating_mul(l.into())) + // Standard Error: 6_619 + .saturating_add(Weight::from_ref_time(62_475).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } @@ -175,15 +183,17 @@ impl WeightInfo for SubstrateWeight { // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) /// The range of component `l` is `[0, 49]`. /// The range of component `s` is `[2, 28]`. - fn not_unlocking_merge_schedules(_l: u32, s: u32, ) -> Weight { + fn not_unlocking_merge_schedules(l: u32, s: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `439 + l * (25 ±0) + s * (36 ±0)` + // Measured: `473 + l * (25 ±0) + s * (36 ±0)` // Estimated: `9909` - // Minimum execution time: 28_000 nanoseconds. - Weight::from_ref_time(28_384_615) + // Minimum execution time: 48_465 nanoseconds. + Weight::from_ref_time(46_999_690) .saturating_add(Weight::from_proof_size(9909)) - // Standard Error: 64_740 - .saturating_add(Weight::from_ref_time(57_692).saturating_mul(s.into())) + // Standard Error: 2_472 + .saturating_add(Weight::from_ref_time(86_199).saturating_mul(l.into())) + // Standard Error: 4_566 + .saturating_add(Weight::from_ref_time(95_866).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -197,15 +207,15 @@ impl WeightInfo for SubstrateWeight { /// The range of component `s` is `[2, 28]`. fn unlocking_merge_schedules(l: u32, s: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `439 + l * (25 ±0) + s * (36 ±0)` + // Measured: `473 + l * (25 ±0) + s * (36 ±0)` // Estimated: `9909` - // Minimum execution time: 27_000 nanoseconds. - Weight::from_ref_time(25_346_153) + // Minimum execution time: 47_710 nanoseconds. + Weight::from_ref_time(46_127_323) .saturating_add(Weight::from_proof_size(9909)) - // Standard Error: 8_331 - .saturating_add(Weight::from_ref_time(51_020).saturating_mul(l.into())) - // Standard Error: 15_701 - .saturating_add(Weight::from_ref_time(76_923).saturating_mul(s.into())) + // Standard Error: 1_706 + .saturating_add(Weight::from_ref_time(108_392).saturating_mul(l.into())) + // Standard Error: 3_150 + .saturating_add(Weight::from_ref_time(114_361).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } diff --git a/runtime/src/weights/rocksdb_weights.rs b/runtime/src/weights/rocksdb_weights.rs index 61ee7ee5a3..c2db1ddc54 100644 --- a/runtime/src/weights/rocksdb_weights.rs +++ b/runtime/src/weights/rocksdb_weights.rs @@ -1,6 +1,6 @@ //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-03-15 (Y/M/D) -//! HOSTNAME: `Mokhtars-MacBook-Pro.local`, CPU: `` +//! DATE: 2023-04-27 (Y/M/D) +//! HOSTNAME: `ip-172-31-3-111`, CPU: `Intel(R) Xeon(R) Platinum 8124M CPU @ 3.00GHz` //! //! DATABASE: `RocksDb`, RUNTIME: `Development` //! BLOCK-NUM: `BlockId::Number(0)` @@ -33,31 +33,31 @@ pub mod constants { /// Calculated by multiplying the *Average* of all values with `1.0` and adding `0`. /// /// Stats nanoseconds: - /// Min, Max: 1_500, 131_541 - /// Average: 3_669 - /// Median: 2_791 - /// Std-Dev: 10036.9 + /// Min, Max: 2_107, 402_151 + /// Average: 6_130 + /// Median: 3_650 + /// Std-Dev: 31027.98 /// /// Percentiles nanoseconds: - /// 99th: 5_250 - /// 95th: 4_083 - /// 75th: 3_375 - read: 3_669 * constants::WEIGHT_REF_TIME_PER_NANOS, + /// 99th: 6_277 + /// 95th: 5_200 + /// 75th: 4_224 + read: 6_130 * constants::WEIGHT_REF_TIME_PER_NANOS, /// Time to write one storage item. /// Calculated by multiplying the *Average* of all values with `1.0` and adding `0`. /// /// Stats nanoseconds: - /// Min, Max: 8_750, 2_699_750 - /// Average: 33_878 - /// Median: 17_041 - /// Std-Dev: 208867.55 + /// Min, Max: 12_814, 9_382_678 + /// Average: 82_187 + /// Median: 23_537 + /// Std-Dev: 728541.68 /// /// Percentiles nanoseconds: - /// 99th: 48_875 - /// 95th: 25_333 - /// 75th: 20_666 - write: 33_878 * constants::WEIGHT_REF_TIME_PER_NANOS, + /// 99th: 124_856 + /// 95th: 36_498 + /// 75th: 28_349 + write: 82_187 * constants::WEIGHT_REF_TIME_PER_NANOS, }; } diff --git a/runtime/src/weights/substrate_utility.rs b/runtime/src/weights/substrate_utility.rs index e6bb81f20b..2c3e1ba656 100644 --- a/runtime/src/weights/substrate_utility.rs +++ b/runtime/src/weights/substrate_utility.rs @@ -18,7 +18,7 @@ //! Autogenerated weights for substrate_utility //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-03-15, STEPS: `2`, REPEAT: 2, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-04-27, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("prod-test"), DB CACHE: 1024 // Executed Command: @@ -28,8 +28,8 @@ // --pallet=substrate_utility // --extrinsic=* // --chain=prod-test -// --steps=2 -// --repeat=2 +// --steps=50 +// --repeat=20 // --execution=wasm // --template=./scripts/../devops/frame-weight-template.hbs // --output=./scripts/../runtime/src/weights/substrate_utility.rs @@ -52,18 +52,18 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 5_000 nanoseconds. - Weight::from_ref_time(6_000_000) + // Minimum execution time: 9_428 nanoseconds. + Weight::from_ref_time(24_705_350) .saturating_add(Weight::from_proof_size(0)) - // Standard Error: 13_536 - .saturating_add(Weight::from_ref_time(4_182_500).saturating_mul(c.into())) + // Standard Error: 5_709 + .saturating_add(Weight::from_ref_time(5_929_583).saturating_mul(c.into())) } fn as_derivative() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 4_000 nanoseconds. - Weight::from_ref_time(5_000_000) + // Minimum execution time: 6_772 nanoseconds. + Weight::from_ref_time(7_208_000) .saturating_add(Weight::from_proof_size(0)) } /// The range of component `c` is `[0, 1000]`. @@ -71,18 +71,18 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 5_000 nanoseconds. - Weight::from_ref_time(5_500_000) + // Minimum execution time: 9_364 nanoseconds. + Weight::from_ref_time(7_047_135) .saturating_add(Weight::from_proof_size(0)) - // Standard Error: 50_502 - .saturating_add(Weight::from_ref_time(4_343_000).saturating_mul(c.into())) + // Standard Error: 3_568 + .saturating_add(Weight::from_ref_time(6_198_059).saturating_mul(c.into())) } fn dispatch_as() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 6_000 nanoseconds. - Weight::from_ref_time(7_000_000) + // Minimum execution time: 12_028 nanoseconds. + Weight::from_ref_time(12_448_000) .saturating_add(Weight::from_proof_size(0)) } /// The range of component `c` is `[0, 1000]`. @@ -90,10 +90,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 5_000 nanoseconds. - Weight::from_ref_time(5_000_000) + // Minimum execution time: 9_516 nanoseconds. + Weight::from_ref_time(7_204_792) .saturating_add(Weight::from_proof_size(0)) - // Standard Error: 8_000 - .saturating_add(Weight::from_ref_time(4_174_000).saturating_mul(c.into())) + // Standard Error: 3_989 + .saturating_add(Weight::from_ref_time(6_035_872).saturating_mul(c.into())) } } From e3b6dc69649d095c8267208c8811ceeb936c6af7 Mon Sep 17 00:00:00 2001 From: Mokhtar Naamani Date: Mon, 1 May 2023 11:42:02 +0400 Subject: [PATCH 70/87] runtime spec 2002 --- Cargo.lock | 2 +- runtime/Cargo.toml | 2 +- runtime/src/lib.rs | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 55531fe76d..7926e1809d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3408,7 +3408,7 @@ dependencies = [ [[package]] name = "joystream-node-runtime" -version = "12.3000.0" +version = "12.2002.0" dependencies = [ "frame-benchmarking", "frame-election-provider-support", diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index 7f0d966156..74c9e4675c 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -4,7 +4,7 @@ edition = '2018' name = 'joystream-node-runtime' # Follow convention: https://github.com/Joystream/substrate-runtime-joystream/issues/1 # {Authoring}.{Spec}.{Impl} of the RuntimeVersion -version = '12.3000.0' +version = '12.2002.0' [dependencies] # Third-party dependencies diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs index 95419af05e..4475dcadf0 100644 --- a/runtime/src/lib.rs +++ b/runtime/src/lib.rs @@ -144,7 +144,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("joystream-node"), impl_name: create_runtime_str!("joystream-node"), authoring_version: 12, - spec_version: 3000, + spec_version: 2002, impl_version: 0, apis: crate::runtime_api::EXPORTED_RUNTIME_API_VERSIONS, transaction_version: 1, From 3887173ef80499f5763e518edbbb926ab8c4e429 Mon Sep 17 00:00:00 2001 From: Mokhtar Naamani Date: Mon, 1 May 2023 11:57:14 +0400 Subject: [PATCH 71/87] workflow build docker dev images mutli-arch --- .../workflows/joystream-node-docker-dev.yml | 23 +++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/.github/workflows/joystream-node-docker-dev.yml b/.github/workflows/joystream-node-docker-dev.yml index 943c9dccf7..47388d8ad4 100644 --- a/.github/workflows/joystream-node-docker-dev.yml +++ b/.github/workflows/joystream-node-docker-dev.yml @@ -47,15 +47,34 @@ jobs: export IMAGE_EXISTS=$(docker manifest inspect ${{ env.REPOSITORY }}:${{ steps.compute_shasum.outputs.shasum }} > /dev/null ; echo $?) echo "::set-output name=image_exists::${IMAGE_EXISTS}" + - name: Set up QEMU + uses: docker/setup-qemu-action@v2 + + - name: Set up Docker Buildx + # uses: docker/setup-buildx-action@dc7b9719a96d48369863986a06765841d7ea23f6 # v1.7 + uses: docker/setup-buildx-action@v2 + id: builder1 + if: ${{ steps.compute_image_exists.outputs.image_exists == 1 }} + + - name: Cache Docker layers + uses: actions/cache@v3 + with: + path: /tmp/.buildx-cache + key: ${{ runner.os }}-buildx + if: ${{ steps.compute_image_exists.outputs.image_exists == 1 }} + - name: Build and push - uses: docker/build-push-action@v3 + uses: docker/build-push-action@v4 with: context: . file: joystream-node.Dockerfile - platforms: linux/amd64 + platforms: linux/amd64,linux/arm64 build-args: | CARGO_FEATURES=${{ matrix.cargo_features }} CODE_SHASUM=${{ steps.compute_shasum.outputs.shasum }} push: true tags: ${{ env.REPOSITORY }}:${{ steps.compute_shasum.outputs.shasum }} + cache-from: type=local,src=/tmp/.buildx-cache + cache-to: type=local,dest=/tmp/.buildx-cache + builder: ${{ steps.builder1.outputs.name }} if: ${{ steps.compute_image_exists.outputs.image_exists == 1 }} From 5a9daad28331dc5bd95039b66b46298097dfe96a Mon Sep 17 00:00:00 2001 From: Mokhtar Naamani Date: Tue, 2 May 2023 16:19:46 +0400 Subject: [PATCH 72/87] latest cargo-chef --- Cargo.lock | 58 +++++++++++++++--------------- bin/utils/call-sizes/Cargo.toml | 2 +- joystream-node.Dockerfile | 4 +-- runtime-modules/utility/Cargo.toml | 2 +- runtime/Cargo.toml | 4 +-- 5 files changed, 34 insertions(+), 36 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 7926e1809d..9d4112eb8e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -827,6 +827,7 @@ dependencies = [ "pallet-content", "pallet-council", "pallet-forum", + "pallet-joystream-utility", "pallet-membership", "pallet-project-token", "pallet-proposals-codex", @@ -835,7 +836,6 @@ dependencies = [ "pallet-referendum", "pallet-staking-handler", "pallet-storage", - "pallet-utility 2.0.0", "pallet-working-group", ] @@ -3441,6 +3441,7 @@ dependencies = [ "pallet-grandpa", "pallet-im-online", "pallet-insecure-randomness-collective-flip", + "pallet-joystream-utility", "pallet-membership", "pallet-multisig", "pallet-offences", @@ -3460,8 +3461,7 @@ dependencies = [ "pallet-timestamp", "pallet-transaction-payment", "pallet-transaction-payment-rpc-runtime-api", - "pallet-utility 2.0.0", - "pallet-utility 4.0.0-dev", + "pallet-utility", "pallet-vesting", "pallet-working-group", "parity-scale-codec", @@ -5391,6 +5391,32 @@ dependencies = [ "sp-std", ] +[[package]] +name = "pallet-joystream-utility" +version = "2.0.0" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "pallet-balances", + "pallet-common", + "pallet-council", + "pallet-membership", + "pallet-referendum", + "pallet-staking-handler", + "pallet-timestamp", + "pallet-working-group", + "parity-scale-codec", + "scale-info", + "serde", + "sp-arithmetic", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", + "strum 0.19.5", +] + [[package]] name = "pallet-membership" version = "6.0.0" @@ -5821,32 +5847,6 @@ dependencies = [ "sp-transaction-storage-proof", ] -[[package]] -name = "pallet-utility" -version = "2.0.0" -dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", - "pallet-balances", - "pallet-common", - "pallet-council", - "pallet-membership", - "pallet-referendum", - "pallet-staking-handler", - "pallet-timestamp", - "pallet-working-group", - "parity-scale-codec", - "scale-info", - "serde", - "sp-arithmetic", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std", - "strum 0.19.5", -] - [[package]] name = "pallet-utility" version = "4.0.0-dev" diff --git a/bin/utils/call-sizes/Cargo.toml b/bin/utils/call-sizes/Cargo.toml index 0eeb30c8eb..d0940c807f 100644 --- a/bin/utils/call-sizes/Cargo.toml +++ b/bin/utils/call-sizes/Cargo.toml @@ -23,5 +23,5 @@ pallet-constitution = { package = 'pallet-constitution', default-features = fals staking-handler = { package = 'pallet-staking-handler', default-features = false, path = '../../../runtime-modules/staking-handler'} bounty = { package = 'pallet-bounty', default-features = false, path = '../../../runtime-modules/bounty'} content = { package = 'pallet-content', default-features = false, path = '../../../runtime-modules/content'} -joystream-utility = { package = 'pallet-utility', default-features = false, path = '../../../runtime-modules/utility'} +joystream-utility = { package = 'pallet-joystream-utility', default-features = false, path = '../../../runtime-modules/utility'} project-token = { package = 'pallet-project-token', default-features = false, path = '../../../runtime-modules/project-token'} diff --git a/joystream-node.Dockerfile b/joystream-node.Dockerfile index 49608186c0..a1c1ae29cb 100644 --- a/joystream-node.Dockerfile +++ b/joystream-node.Dockerfile @@ -9,9 +9,7 @@ RUN rustup default nightly-2022-11-15 RUN rustup target add wasm32-unknown-unknown --toolchain nightly-2022-11-15 RUN rustup component add --toolchain nightly-2022-11-15 clippy RUN rustup install nightly -# Temporary build fix by using older version of cargo-chef -# https://github.com/Joystream/joystream/issues/4745 -RUN cargo +nightly install cargo-chef@0.1.57 +RUN cargo +nightly install cargo-chef@0.1.59 --locked FROM rust AS planner LABEL description="Cargo chef prepare" diff --git a/runtime-modules/utility/Cargo.toml b/runtime-modules/utility/Cargo.toml index 9a7489cde4..b2948c930b 100644 --- a/runtime-modules/utility/Cargo.toml +++ b/runtime-modules/utility/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = 'pallet-utility' +name = 'pallet-joystream-utility' version = '2.0.0' authors = ['Joystream contributors'] edition = '2018' diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index 74c9e4675c..fbe4fd4618 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -62,7 +62,7 @@ pallet-staking = { package = 'pallet-staking', default-features = false, git = ' pallet-timestamp = { package = 'pallet-timestamp', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} pallet-balances = { package = 'pallet-balances', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} pallet-im-online = { package = 'pallet-im-online', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} -substrate-utility = { package = 'pallet-utility', version = "4.0.0-dev", default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} +substrate-utility = { package = 'pallet-utility', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} pallet-vesting = { package = 'pallet-vesting', default-features = false, git = 'https://github.com/joystream/substrate', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e' } pallet-multisig = { package = 'pallet-multisig', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} pallet-staking-runtime-api = { package = 'pallet-staking-runtime-api', default-features = false, git = 'https://github.com/joystream/substrate.git', rev = '50cf239147a6f569e563bcadec6c7a1c5ad5c67e'} @@ -90,7 +90,7 @@ pallet-constitution = { package = 'pallet-constitution', default-features = fals staking-handler = { package = 'pallet-staking-handler', default-features = false, path = '../runtime-modules/staking-handler'} bounty = { package = 'pallet-bounty', default-features = false, path = '../runtime-modules/bounty'} content = { package = 'pallet-content', default-features = false, path = '../runtime-modules/content'} -joystream-utility = { package = 'pallet-utility', default-features = false, path = '../runtime-modules/utility'} +joystream-utility = { package = 'pallet-joystream-utility', default-features = false, path = '../runtime-modules/utility'} project-token = { package = 'pallet-project-token', default-features = false, path = '../runtime-modules/project-token'} [dev-dependencies] From 36f6031db8431eec0dfc96a236b2f675c9b87399 Mon Sep 17 00:00:00 2001 From: Mokhtar Naamani Date: Tue, 2 May 2023 17:37:38 +0400 Subject: [PATCH 73/87] docker build fetch crates.io with http or git cli better performance durin cross compiling with qemu --- joystream-node.Dockerfile | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/joystream-node.Dockerfile b/joystream-node.Dockerfile index a1c1ae29cb..4a961aeddf 100644 --- a/joystream-node.Dockerfile +++ b/joystream-node.Dockerfile @@ -3,6 +3,8 @@ WORKDIR /joystream RUN apt-get update && \ apt-get install -y curl git gcc xz-utils sudo pkg-config unzip clang llvm libc6-dev cmake RUN apt install -y protobuf-compiler libprotobuf-dev +ARG CARGO_UNSTABLE_SPARSE_REGISTRY=true +ARG CARGO_NET_GIT_FETCH_WITH_CLI=true RUN rustup self update RUN rustup install nightly-2022-11-15 RUN rustup default nightly-2022-11-15 @@ -19,13 +21,17 @@ COPY Cargo.lock . COPY bin ./bin COPY runtime ./runtime COPY runtime-modules ./runtime-modules -RUN cargo chef prepare --recipe-path /joystream/recipe.json +ARG CARGO_UNSTABLE_SPARSE_REGISTRY=true +ARG CARGO_NET_GIT_FETCH_WITH_CLI=true +RUN cargo +nightly chef prepare --recipe-path /joystream/recipe.json FROM rust AS cacher LABEL description="Cargo chef cook dependencies" WORKDIR /joystream COPY --from=planner /joystream/recipe.json /joystream/recipe.json ARG WASM_BUILD_TOOLCHAIN=nightly-2022-11-15 +ARG CARGO_UNSTABLE_SPARSE_REGISTRY=true +ARG CARGO_NET_GIT_FETCH_WITH_CLI=true # Build dependencies - this is the caching Docker layer! RUN cargo chef cook --release --recipe-path /joystream/recipe.json @@ -48,6 +54,8 @@ RUN echo "CARGO_FEATURES=$CARGO_FEATURES" ARG WASM_BUILD_TOOLCHAIN=nightly-2022-11-15 ARG GIT_COMMIT_HASH="unknown" ARG CODE_SHASUM +ARG CARGO_UNSTABLE_SPARSE_REGISTRY=true +ARG CARGO_NET_GIT_FETCH_WITH_CLI=true RUN SUBSTRATE_CLI_GIT_COMMIT_HASH="${GIT_COMMIT_HASH}-docker-build-${CODE_SHASUM}" \ cargo build --release --locked --features "${CARGO_FEATURES}" @@ -68,9 +76,9 @@ RUN /joystream/node --version # https://manpages.debian.org/stretch/coreutils/b2sum.1.en.html # RUN apt-get install coreutils # print the blake2 256 hash of the wasm blob -RUN b2sum -l 256 /joystream/runtime.compact.wasm +RUN b2sum -l 256 /joystream/runtime.compact.compressed.wasm # print the blake2 512 hash of the wasm blob -RUN b2sum -l 512 /joystream/runtime.compact.wasm +RUN b2sum -l 512 /joystream/runtime.compact.compressed.wasm EXPOSE 30333 9933 9944 From 8de82d4eb1ea5fc0435f2476d09982b2a1a28c52 Mon Sep 17 00:00:00 2001 From: Mokhtar Naamani Date: Tue, 2 May 2023 17:38:31 +0400 Subject: [PATCH 74/87] docker build workflows: different cache names to avoid clash --- .github/workflows/joystream-node-docker-dev.yml | 2 +- .github/workflows/run-network-tests.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/joystream-node-docker-dev.yml b/.github/workflows/joystream-node-docker-dev.yml index 47388d8ad4..7cc7f48abb 100644 --- a/.github/workflows/joystream-node-docker-dev.yml +++ b/.github/workflows/joystream-node-docker-dev.yml @@ -60,7 +60,7 @@ jobs: uses: actions/cache@v3 with: path: /tmp/.buildx-cache - key: ${{ runner.os }}-buildx + key: ${{ runner.os }}-buildx-dev if: ${{ steps.compute_image_exists.outputs.image_exists == 1 }} - name: Build and push diff --git a/.github/workflows/run-network-tests.yml b/.github/workflows/run-network-tests.yml index b51c9b5937..6baae7868d 100644 --- a/.github/workflows/run-network-tests.yml +++ b/.github/workflows/run-network-tests.yml @@ -104,7 +104,7 @@ jobs: uses: actions/cache@v3 with: path: /tmp/.buildx-cache - key: ${{ runner.os }}-buildx + key: ${{ runner.os }}-buildx-tests if: steps.check_files.outputs.files_exists == 'false' - name: Build From e1fd7e71e471a766d7158e1179ad7071a189d310 Mon Sep 17 00:00:00 2001 From: Mokhtar Naamani Date: Wed, 3 May 2023 10:36:23 +0400 Subject: [PATCH 75/87] docker build, remove arm64 cross compile takes too long --- .github/workflows/joystream-node-docker-dev.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/joystream-node-docker-dev.yml b/.github/workflows/joystream-node-docker-dev.yml index 7cc7f48abb..f0e2d20728 100644 --- a/.github/workflows/joystream-node-docker-dev.yml +++ b/.github/workflows/joystream-node-docker-dev.yml @@ -68,7 +68,9 @@ jobs: with: context: . file: joystream-node.Dockerfile - platforms: linux/amd64,linux/arm64 + # arm64 cross compiling takes longer than 6h, so we only build for amd64 + # platforms: linux/amd64,linux/arm64 + platforms: linux/amd64 build-args: | CARGO_FEATURES=${{ matrix.cargo_features }} CODE_SHASUM=${{ steps.compute_shasum.outputs.shasum }} From b3fb6d6e0649b74ee3e5b330057d9240c52603f4 Mon Sep 17 00:00:00 2001 From: Mokhtar Naamani Date: Wed, 3 May 2023 12:37:30 +0400 Subject: [PATCH 76/87] warn if host arch and docker image arch differ when using build-node-docker.sh --- build-node-docker.sh | 11 +++++++++-- scripts/compute-runtime-blob-hash.sh | 23 +++++++++++++++++++++-- 2 files changed, 30 insertions(+), 4 deletions(-) diff --git a/build-node-docker.sh b/build-node-docker.sh index 7b58772e52..bc7347439a 100755 --- a/build-node-docker.sh +++ b/build-node-docker.sh @@ -15,9 +15,9 @@ IMAGE=joystream/node:${CODE_SHASUM} # Look for image locally if ! docker inspect ${IMAGE} > /dev/null; then - # Not found, try to fetch from remote repo + # Not found, try to fetch from remote repo with local system architecture echo "Trying to fetch cached ${IMAGE} image" - docker pull ${IMAGE} || : + docker pull ${IMAGE} --platform linux/`uname -m` || : # If we didn't find it, build it if ! docker inspect ${IMAGE} > /dev/null; @@ -31,4 +31,11 @@ then fi else echo "Found ${IMAGE} in local repo" + # Not guaranteed it has the correct architecture so just log image and local system architecures +fi + +IMG_ARCH=$(docker inspect ${IMAGE} --format='{{.Architecture}}') +SYS_ARCH=$(uname -m) +if [ "$IMG_ARCH" != "$SYS_ARCH" ]; then + echo "WARNING: The local image's platform ${IMG_ARCH} does not match the detected host platform ${SYS_ARCH}" fi diff --git a/scripts/compute-runtime-blob-hash.sh b/scripts/compute-runtime-blob-hash.sh index 198424719f..3b205f200b 100755 --- a/scripts/compute-runtime-blob-hash.sh +++ b/scripts/compute-runtime-blob-hash.sh @@ -1,10 +1,29 @@ #!/usr/bin/env bash # The script computes the b2sum of the wasm blob in a pre-built joystream/node image +# Specifically amd64 architecture image, as that is what we use as the "reference" images +# for deterministic builds. # Assumes b2sum is already instally on the host machine. -# Create a non running container from joystream/node -docker create --name temp-container-joystream-node joystream/node +SCRIPT_PATH="$(dirname "${BASH_SOURCE[0]}")" +cd $SCRIPT_PATH + +source ./features.sh + +CODE_SHASUM=`./runtime-code-shasum.sh` +IMAGE=joystream/node:${CODE_SHASUM} + +IMG_ARCH=$(docker inspect ${IMAGE} --format='{{.Architecture}}') + +if [ "$IMG_ARCH" != "amd64" ]; then + echo "You must fetch the amd64 architecture image with following command:" + echo "docker image rm ${IMAGE}" + echo "docker pull ${IMAGE} --platform amd64" + exit 1 +fi + +# Create a non running container from joystream/node using the amd64 +docker create --name temp-container-joystream-node ${IMAGE} --platform amd64 # Copy the compiled wasm blob from the docker container to our host docker cp temp-container-joystream-node:/joystream/runtime.compact.compressed.wasm joystream_runtime.wasm From 914c4d8f24f7bd6da5ce70197af45235d77c5479 Mon Sep 17 00:00:00 2001 From: Mokhtar Naamani Date: Wed, 3 May 2023 14:25:06 +0400 Subject: [PATCH 77/87] update runtime changelog --- runtime/CHANGELOG.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/runtime/CHANGELOG.md b/runtime/CHANGELOG.md index 3a903097ee..d4d7dfa292 100644 --- a/runtime/CHANGELOG.md +++ b/runtime/CHANGELOG.md @@ -1,3 +1,11 @@ +### Version 12.2002.0 - Nara release + - Updated runtime `spec_version` to `2002` + - Update substrate version based on [v0.9.39](https://github.com/paritytech/substrate/tree/polkadot-v0.9.39) release. [#4705](https://github.com/Joystream/joystream/pull/4705) + - Apply substrate pallet runtime migrations from `v0.9.24-1` to `v0.9.39` + - Added `try-runtime` command support and runtime upgrade tests. + - Updated benchmarks and re-generated weights + - Fix [#4745](https://github.com/Joystream/joystream/issues/4745): `cargo-chef` build issue by renaming crate 'pallet-utility' to 'pallet-joystream-utility' + ### Version 12.2001.0 - Ephesus release - Bug fix in update_channel_payouts implementation - proposal creator pays for upload of payload not arbitrary specified account From 354cf7db9cd8cb908056b44022c51da87f1f71b3 Mon Sep 17 00:00:00 2001 From: Mokhtar Naamani Date: Wed, 3 May 2023 16:34:29 +0400 Subject: [PATCH 78/87] run runtime upgrade: use old node before upgrade, and run post upgrade test scenario --- tests/network-tests/run-runtime-upgrade-tests.sh | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/tests/network-tests/run-runtime-upgrade-tests.sh b/tests/network-tests/run-runtime-upgrade-tests.sh index 73bf1aa41d..5538c51028 100755 --- a/tests/network-tests/run-runtime-upgrade-tests.sh +++ b/tests/network-tests/run-runtime-upgrade-tests.sh @@ -164,7 +164,7 @@ function main { echo >&2 "new wasm path set" CONTAINER_ID="" - export JOYSTREAM_NODE_TAG=${TARGET_RUNTIME} + export JOYSTREAM_NODE_TAG=${RUNTIME} # 4. early chain db init init_chain_db echo >&2 "chain db initialized" @@ -189,11 +189,23 @@ function main { # a problem dealing with the runtime upgrade block ./run-test-scenario.sh runtimeUpgrade || : + # stop joystream-node, but don't remove volumes + echo >&2 "stopping joystream-node" + docker stop ${CONTAINER_ID} + docker rm ${CONTAINER_ID} + + # start new joystream-node - ensure that new node is compatible with old database + export JOYSTREAM_NODE_TAG=${TARGET_RUNTIME} + CONTAINER_ID=$(start_joystream_node) + echo >&2 "starting new joystream-node" + # restart indexer docker restart indexer sleep 30 + ./run-test-scenario.sh post-runtime-upgrade + ./run-test-scenario.sh content-directory } From 5d5c9c18bd11dc135b26e35e7f95a168b61510ac Mon Sep 17 00:00:00 2001 From: Mokhtar Naamani Date: Wed, 3 May 2023 17:10:39 +0400 Subject: [PATCH 79/87] fix post runtime upgrade check --- tests/network-tests/run-runtime-upgrade-tests.sh | 6 +++--- ...stRuntimUpdateChecks.ts => postRuntimeUpdateChecks.ts} | 2 +- tests/network-tests/src/scenarios/postRuntimeUpgrade.ts | 8 ++++++++ tests/network-tests/src/scenarios/runtimeUpgrade.ts | 2 +- 4 files changed, 13 insertions(+), 5 deletions(-) rename tests/network-tests/src/misc/{postRuntimUpdateChecks.ts => postRuntimeUpdateChecks.ts} (87%) create mode 100644 tests/network-tests/src/scenarios/postRuntimeUpgrade.ts diff --git a/tests/network-tests/run-runtime-upgrade-tests.sh b/tests/network-tests/run-runtime-upgrade-tests.sh index 5538c51028..272ee3a9db 100755 --- a/tests/network-tests/run-runtime-upgrade-tests.sh +++ b/tests/network-tests/run-runtime-upgrade-tests.sh @@ -176,7 +176,7 @@ function main { ../../query-node/start.sh # Wait for chain and query node to get in sync - sleep 90 + sleep 200 # 6. Bootstrap storage infra because we need to run content-directory tests after runtime upgrade if [ "${NO_STORAGE}" != true ]; then @@ -202,9 +202,9 @@ function main { # restart indexer docker restart indexer - sleep 30 + sleep 90 - ./run-test-scenario.sh post-runtime-upgrade + ./run-test-scenario.sh postRuntimeUpgrade ./run-test-scenario.sh content-directory } diff --git a/tests/network-tests/src/misc/postRuntimUpdateChecks.ts b/tests/network-tests/src/misc/postRuntimeUpdateChecks.ts similarity index 87% rename from tests/network-tests/src/misc/postRuntimUpdateChecks.ts rename to tests/network-tests/src/misc/postRuntimeUpdateChecks.ts index b8356b6810..8e1cc4aa5c 100644 --- a/tests/network-tests/src/misc/postRuntimUpdateChecks.ts +++ b/tests/network-tests/src/misc/postRuntimeUpdateChecks.ts @@ -8,7 +8,7 @@ export default async function assertValues({ api }: FlowProps): Promise { debug('Check runtime spec version') const version = await api.rpc.state.getRuntimeVersion() - assert.equal(version.specVersion.toNumber(), 3000) + assert.equal(version.specVersion.toNumber(), 2002) debug('Done') } diff --git a/tests/network-tests/src/scenarios/postRuntimeUpgrade.ts b/tests/network-tests/src/scenarios/postRuntimeUpgrade.ts new file mode 100644 index 0000000000..320176a36c --- /dev/null +++ b/tests/network-tests/src/scenarios/postRuntimeUpgrade.ts @@ -0,0 +1,8 @@ +import { scenario } from '../Scenario' +import postRuntimeUpdateChecks from '../misc/postRuntimeUpdateChecks' + +// eslint-disable-next-line @typescript-eslint/no-floating-promises +scenario('Full', async ({ job, env, debug }) => { + // Runtime checks + job('Run Post Upgrade Checks', postRuntimeUpdateChecks) +}) diff --git a/tests/network-tests/src/scenarios/runtimeUpgrade.ts b/tests/network-tests/src/scenarios/runtimeUpgrade.ts index dc10c2c5f0..543a1d2011 100644 --- a/tests/network-tests/src/scenarios/runtimeUpgrade.ts +++ b/tests/network-tests/src/scenarios/runtimeUpgrade.ts @@ -1,7 +1,7 @@ import electCouncil from '../flows/council/elect' import runtimeUpgradeProposal from '../flows/proposals/runtimeUpgradeProposal' import { scenario } from '../Scenario' -import postRuntimeUpdateChecks from '../misc/postRuntimUpdateChecks' +import postRuntimeUpdateChecks from '../misc/postRuntimeUpdateChecks' import forkOffChecks from '../misc/forkOffChecks' // eslint-disable-next-line @typescript-eslint/no-floating-promises From 85fd568d683afa7db8e3affd42d11986426354df Mon Sep 17 00:00:00 2001 From: Mokhtar Naamani Date: Wed, 3 May 2023 17:24:41 +0400 Subject: [PATCH 80/87] update types to v2.2.0 - metadata update (joystream-utility-pallet) --- chain-metadata.json | 2 +- query-node/chain-metadata/2002.json | 1 + types/package.json | 2 +- types/src/augment/lookup.ts | 31 +++++++++++++++++++++++-- types/src/augment/registry.ts | 6 +++-- types/src/augment/types-lookup.ts | 35 +++++++++++++++++++++++++++-- 6 files changed, 69 insertions(+), 8 deletions(-) create mode 100644 query-node/chain-metadata/2002.json diff --git a/chain-metadata.json b/chain-metadata.json index 17ba0a54b9..2269ed0b5f 100644 --- a/chain-metadata.json +++ b/chain-metadata.json @@ -1 +1 @@ -{"jsonrpc":"2.0","result":"0x6d6574610e050a000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f0814496e64657801102c4163636f756e74446174610114001401146e6f6e6365100114496e646578000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e7444617461000010000005050014083c70616c6c65745f62616c616e6365732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500012c6d6973635f66726f7a656e18011c42616c616e63650001286665655f66726f7a656e18011c42616c616e636500001800000507001c0c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540120000c01186e6f726d616c2001045400012c6f7065726174696f6e616c200104540001246d616e6461746f7279200104540000200c2873705f77656967687473247765696768745f76321857656967687400000801207265665f74696d6524010c75363400012870726f6f665f73697a6524010c75363400002400000628002800000506002c083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d000030000002080034102873705f72756e74696d651c67656e65726963186469676573741844696765737400000401106c6f677338013c5665633c4469676573744974656d3e0000380000023c003c102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0001142850726552756e74696d650800400144436f6e73656e737573456e67696e654964000030011c5665633c75383e00060024436f6e73656e7375730800400144436f6e73656e737573456e67696e654964000030011c5665633c75383e000400105365616c0800400144436f6e73656e737573456e67696e654964000030011c5665633c75383e000500144f74686572040030011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e745570646174656400080000400000030400000008004400000248004808306672616d655f73797374656d2c4576656e745265636f7264080445014c0454012c000c01147068617365d103011450686173650001146576656e744c010445000118746f70696373d50301185665633c543e00004c08586a6f7973747265616d5f6e6f64655f72756e74696d653052756e74696d654576656e7400018c1853797374656d04005001706672616d655f73797374656d3a3a4576656e743c52756e74696d653e0000001c5574696c69747904007401607375627374726174655f7574696c6974793a3a4576656e740001002042616c616e636573040080017c70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e000500485472616e73616374696f6e5061796d656e7404008801a870616c6c65745f7472616e73616374696f6e5f7061796d656e743a3a4576656e743c52756e74696d653e00060068456c656374696f6e50726f76696465724d756c7469506861736504008c01d070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173653a3a4576656e743c52756e74696d653e0007001c5374616b696e670400a8017870616c6c65745f7374616b696e673a3a4576656e743c52756e74696d653e0008001c53657373696f6e0400bc015470616c6c65745f73657373696f6e3a3a4576656e740009001c4772616e6470610400c0015470616c6c65745f6772616e6470613a3a4576656e74000b0020496d4f6e6c696e650400d4018070616c6c65745f696d5f6f6e6c696e653a3a4576656e743c52756e74696d653e000d00204f6666656e6365730400f8015870616c6c65745f6f6666656e6365733a3a4576656e74000e0020426167734c69737404000101018070616c6c65745f626167735f6c6973743a3a4576656e743c52756e74696d653e0010001c56657374696e6704000501017870616c6c65745f76657374696e673a3a4576656e743c52756e74696d653e001100204d756c746973696704000901017c70616c6c65745f6d756c74697369673a3a4576656e743c52756e74696d653e0012001c436f756e63696c04001101015c636f756e63696c3a3a4576656e743c52756e74696d653e001300285265666572656e64756d0400190101c47265666572656e64756d3a3a4576656e743c52756e74696d652c207265666572656e64756d3a3a496e7374616e6365313e0014001c4d656d626572730400290101686d656d626572736869703a3a4576656e743c52756e74696d653e00150014466f72756d040051010154666f72756d3a3a4576656e743c52756e74696d653e00160030436f6e737469747574696f6e04006d01018c70616c6c65745f636f6e737469747574696f6e3a3a4576656e743c52756e74696d653e00170018426f756e7479040071010158626f756e74793a3a4576656e743c52756e74696d653e001800404a6f7973747265616d5574696c6974790400950101846a6f7973747265616d5f7574696c6974793a3a4576656e743c52756e74696d653e0019001c436f6e74656e740400a101015c636f6e74656e743a3a4576656e743c52756e74696d653e001a001c53746f7261676504008d02015c73746f726167653a3a4576656e743c52756e74696d653e001b003050726f6a656374546f6b656e0400c102017470726f6a6563745f746f6b656e3a3a4576656e743c52756e74696d653e001c003c50726f706f73616c73456e67696e6504002903018070726f706f73616c735f656e67696e653a3a4576656e743c52756e74696d653e001d004c50726f706f73616c7344697363757373696f6e04004103019070726f706f73616c735f64697363757373696f6e3a3a4576656e743c52756e74696d653e001e003850726f706f73616c73436f64657804004903017c70726f706f73616c735f636f6465783a3a4576656e743c52756e74696d653e001f0044466f72756d576f726b696e6747726f757004006d0301dc776f726b696e675f67726f75703a3a4576656e743c52756e74696d652c20776f726b696e675f67726f75703a3a496e7374616e6365313e0020004c53746f72616765576f726b696e6747726f75700400910301dc776f726b696e675f67726f75703a3a4576656e743c52756e74696d652c20776f726b696e675f67726f75703a3a496e7374616e6365323e0021004c436f6e74656e74576f726b696e6747726f75700400990301dc776f726b696e675f67726f75703a3a4576656e743c52756e74696d652c20776f726b696e675f67726f75703a3a496e7374616e6365333e0022006c4f7065726174696f6e73576f726b696e6747726f7570416c7068610400a10301dc776f726b696e675f67726f75703a3a4576656e743c52756e74696d652c20776f726b696e675f67726f75703a3a496e7374616e6365343e0023003c417070576f726b696e6747726f75700400a90301dc776f726b696e675f67726f75703a3a4576656e743c52756e74696d652c20776f726b696e675f67726f75703a3a496e7374616e6365353e002400584d656d62657273686970576f726b696e6747726f75700400b10301dc776f726b696e675f67726f75703a3a4576656e743c52756e74696d652c20776f726b696e675f67726f75703a3a496e7374616e6365363e002500684f7065726174696f6e73576f726b696e6747726f7570426574610400b90301dc776f726b696e675f67726f75703a3a4576656e743c52756e74696d652c20776f726b696e675f67726f75703a3a496e7374616e6365373e0026006c4f7065726174696f6e73576f726b696e6747726f757047616d6d610400c10301dc776f726b696e675f67726f75703a3a4576656e743c52756e74696d652c20776f726b696e675f67726f75703a3a496e7374616e6365383e00270060446973747269627574696f6e576f726b696e6747726f75700400c90301dc776f726b696e675f67726f75703a3a4576656e743c52756e74696d652c20776f726b696e675f67726f75703a3a496e7374616e6365393e00280000500c306672616d655f73797374656d1870616c6c6574144576656e740404540001184045787472696e7369635375636365737304013464697370617463685f696e666f5401304469737061746368496e666f00000490416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656408013864697370617463685f6572726f7260013444697370617463684572726f7200013464697370617463685f696e666f5401304469737061746368496e666f00010450416e2065787472696e736963206661696c65642e2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e7404011c6163636f756e74000130543a3a4163636f756e7449640003046841206e6577206163636f756e742077617320637265617465642e344b696c6c65644163636f756e7404011c6163636f756e74000130543a3a4163636f756e74496400040458416e206163636f756e7420776173207265617065642e2052656d61726b656408011873656e646572000130543a3a4163636f756e744964000110686173682c011c543a3a48617368000504704f6e206f6e2d636861696e2072656d61726b2068617070656e65642e04704576656e7420666f72207468652053797374656d2070616c6c65742e540c346672616d655f737570706f7274206469737061746368304469737061746368496e666f00000c0118776569676874200118576569676874000114636c6173735801344469737061746368436c617373000120706179735f6665655c0110506179730000580c346672616d655f737570706f7274206469737061746368344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f7279000200005c0c346672616d655f737570706f727420646973706174636810506179730001080c596573000000084e6f0001000060082873705f72756e74696d653444697370617463684572726f72000134144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c65040064012c4d6f64756c654572726f7200030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050040546f6f4d616e79436f6e73756d65727300060014546f6b656e0400680128546f6b656e4572726f720007002841726974686d6574696304006c013c41726974686d657469634572726f72000800345472616e73616374696f6e616c04007001485472616e73616374696f6e616c4572726f7200090024457868617573746564000a0028436f7272757074696f6e000b002c556e617661696c61626c65000c000064082873705f72756e74696d652c4d6f64756c654572726f720000080114696e64657808010875380001146572726f7240018c5b75383b204d41585f4d4f44554c455f4552524f525f454e434f4445445f53495a455d000068082873705f72756e74696d6528546f6b656e4572726f7200011c1c4e6f46756e647300000020576f756c644469650001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f72746564000600006c083473705f61726974686d657469633c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f0002000070082873705f72756e74696d65485472616e73616374696f6e616c4572726f72000108304c696d6974526561636865640000001c4e6f4c6179657200010000740c3870616c6c65745f7574696c6974791870616c6c6574144576656e74000118404261746368496e746572727570746564080114696e64657810010c7533320001146572726f7260013444697370617463684572726f7200000855014261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c2061734877656c6c20617320746865206572726f722e384261746368436f6d706c65746564000104c84261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e604261746368436f6d706c65746564576974684572726f7273000204b44261746368206f66206469737061746368657320636f6d706c657465642062757420686173206572726f72732e344974656d436f6d706c657465640003041d01412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206e6f206572726f722e284974656d4661696c65640401146572726f7260013444697370617463684572726f720004041101412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206572726f722e30446973706174636865644173040118726573756c747801384469737061746368526573756c7400050458412063616c6c2077617320646973706174636865642e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a090909780418526573756c74080454017c044501600108084f6b04007c000000000c45727204006000000100007c0000040000800c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001281c456e646f77656408011c6163636f756e74000130543a3a4163636f756e744964000130667265655f62616c616e6365180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f737408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742c78726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e736665720c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2842616c616e63655365740c010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e63650001207265736572766564180128543a3a42616c616e636500030468412062616c616e6365207761732073657420627920726f6f742e20526573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e726573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000504e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656410011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014864657374696e6174696f6e5f7374617475738401185374617475730006084d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652e1c4465706f73697408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000704d8536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e20576974686472617708010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008041d01536f6d6520616d6f756e74207761732077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650009040101536f6d6520616d6f756e74207761732072656d6f7665642066726f6d20746865206163636f756e742028652e672e20666f72206d69736265686176696f72292e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a0909098414346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e6365537461747573000108104672656500000020526573657276656400010000880c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741870616c6c6574144576656e74040454000104485472616e73616374696f6e466565506169640c010c77686f000130543a3a4163636f756e74496400012861637475616c5f66656518013042616c616e63654f663c543e00010c74697018013042616c616e63654f663c543e000008590141207472616e73616374696f6e20666565206061637475616c5f666565602c206f662077686963682060746970602077617320616464656420746f20746865206d696e696d756d20696e636c7573696f6e206665652c5c686173206265656e2070616964206279206077686f602e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a0909098c0c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173651870616c6c6574144576656e7404045400011838536f6c7574696f6e53746f7265640c011c636f6d7075746590013c456c656374696f6e436f6d707574650001186f726967696e9401504f7074696f6e3c543a3a4163636f756e7449643e000130707265765f656a6563746564980110626f6f6c00001cb44120736f6c7574696f6e207761732073746f72656420776974682074686520676976656e20636f6d707574652e00510154686520606f726967696e6020696e6469636174657320746865206f726967696e206f662074686520736f6c7574696f6e2e20496620606f726967696e602069732060536f6d65284163636f756e74496429602c55017468652073746f72656420736f6c7574696f6e20776173207375626d6974656420696e20746865207369676e65642070686173652062792061206d696e657220776974682074686520604163636f756e744964602e25014f74686572776973652c2074686520736f6c7574696f6e207761732073746f7265642065697468657220647572696e672074686520756e7369676e6564207068617365206f722062794d0160543a3a466f7263654f726967696e602e205468652060626f6f6c6020697320607472756560207768656e20612070726576696f757320736f6c7574696f6e2077617320656a656374656420746f206d616b6548726f6f6d20666f722074686973206f6e652e44456c656374696f6e46696e616c697a656408011c636f6d7075746590013c456c656374696f6e436f6d7075746500011473636f72659c0134456c656374696f6e53636f7265000104190154686520656c656374696f6e20686173206265656e2066696e616c697a65642c20776974682074686520676976656e20636f6d7075746174696f6e20616e642073636f72652e38456c656374696f6e4661696c656400020c4c416e20656c656374696f6e206661696c65642e0001014e6f74206d7563682063616e20626520736169642061626f757420776869636820636f6d7075746573206661696c656420696e207468652070726f636573732e20526577617264656408011c6163636f756e740001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e74496400011476616c756518013042616c616e63654f663c543e0003042501416e206163636f756e7420686173206265656e20726577617264656420666f72207468656972207369676e6564207375626d697373696f6e206265696e672066696e616c697a65642e1c536c617368656408011c6163636f756e740001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e74496400011476616c756518013042616c616e63654f663c543e0004042101416e206163636f756e7420686173206265656e20736c617368656420666f72207375626d697474696e6720616e20696e76616c6964207369676e6564207375626d697373696f6e2e4450686173655472616e736974696f6e65640c011066726f6da0015450686173653c543a3a426c6f636b4e756d6265723e000108746fa0015450686173653c543a3a426c6f636b4e756d6265723e000114726f756e6410010c753332000504b85468657265207761732061207068617365207472616e736974696f6e20696e206120676976656e20726f756e642e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a09090990089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173653c456c656374696f6e436f6d707574650001141c4f6e436861696e000000185369676e656400010020556e7369676e65640002002046616c6c6261636b00030024456d657267656e6379000400009404184f7074696f6e04045401000108104e6f6e6500000010536f6d6504000000000100009800000500009c084473705f6e706f735f656c656374696f6e7334456c656374696f6e53636f726500000c01346d696e696d616c5f7374616b6518013c457874656e64656442616c616e636500012473756d5f7374616b6518013c457874656e64656442616c616e636500014473756d5f7374616b655f7371756172656418013c457874656e64656442616c616e63650000a0089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173651450686173650408426e011001100c4f6666000000185369676e656400010020556e7369676e65640400a4012828626f6f6c2c20426e2900020024456d657267656e637900030000a400000408981000a8103870616c6c65745f7374616b696e671870616c6c65741870616c6c6574144576656e7404045400013c1c457261506169640c01246572615f696e646578100120457261496e64657800014076616c696461746f725f7061796f757418013042616c616e63654f663c543e00012472656d61696e64657218013042616c616e63654f663c543e000008550154686520657261207061796f757420686173206265656e207365743b207468652066697273742062616c616e6365206973207468652076616c696461746f722d7061796f75743b20746865207365636f6e64206973c07468652072656d61696e6465722066726f6d20746865206d6178696d756d20616d6f756e74206f66207265776172642e2052657761726465640801147374617368000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000104bc546865206e6f6d696e61746f7220686173206265656e207265776172646564206279207468697320616d6f756e742e1c536c61736865640801187374616b6572000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e0002041d0141207374616b6572202876616c696461746f72206f72206e6f6d696e61746f722920686173206265656e20736c61736865642062792074686520676976656e20616d6f756e742e34536c6173685265706f727465640c012476616c696461746f72000130543a3a4163636f756e7449640001206672616374696f6eac011c50657262696c6c000124736c6173685f657261100120457261496e64657800030859014120736c61736820666f722074686520676976656e2076616c696461746f722c20666f722074686520676976656e2070657263656e74616765206f66207468656972207374616b652c2061742074686520676976656e54657261206173206265656e207265706f727465642e684f6c64536c617368696e675265706f727444697363617264656404013473657373696f6e5f696e64657810013053657373696f6e496e6465780004081901416e206f6c6420736c617368696e67207265706f72742066726f6d2061207072696f72206572612077617320646973636172646564206265636175736520697420636f756c64446e6f742062652070726f6365737365642e385374616b657273456c65637465640005048441206e657720736574206f66207374616b6572732077617320656c65637465642e18426f6e6465640801147374617368000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000610d0416e206163636f756e742068617320626f6e646564207468697320616d6f756e742e205c5b73746173682c20616d6f756e745c5d004d014e4f54453a2054686973206576656e74206973206f6e6c7920656d6974746564207768656e2066756e64732061726520626f6e64656420766961206120646973706174636861626c652e204e6f7461626c792c210169742077696c6c206e6f7420626520656d697474656420666f72207374616b696e672072657761726473207768656e20746865792061726520616464656420746f207374616b652e20556e626f6e6465640801147374617368000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e00070490416e206163636f756e742068617320756e626f6e646564207468697320616d6f756e742e2457697468647261776e0801147374617368000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e0008085901416e206163636f756e74206861732063616c6c6564206077697468647261775f756e626f6e6465646020616e642072656d6f76656420756e626f6e64696e67206368756e6b7320776f727468206042616c616e6365606466726f6d2074686520756e6c6f636b696e672071756575652e184b69636b65640801246e6f6d696e61746f72000130543a3a4163636f756e7449640001147374617368000130543a3a4163636f756e744964000904b441206e6f6d696e61746f7220686173206265656e206b69636b65642066726f6d20612076616c696461746f722e545374616b696e67456c656374696f6e4661696c6564000a04ac54686520656c656374696f6e206661696c65642e204e6f206e65772065726120697320706c616e6e65642e1c4368696c6c65640401147374617368000130543a3a4163636f756e744964000b042101416e206163636f756e74206861732073746f707065642070617274696369706174696e672061732065697468657220612076616c696461746f72206f72206e6f6d696e61746f722e345061796f7574537461727465640801246572615f696e646578100120457261496e64657800013c76616c696461746f725f7374617368000130543a3a4163636f756e744964000c0498546865207374616b657273272072657761726473206172652067657474696e6720706169642e4456616c696461746f7250726566735365740801147374617368000130543a3a4163636f756e7449640001147072656673b0013856616c696461746f725072656673000d0498412076616c696461746f72206861732073657420746865697220707265666572656e6365732e20466f7263654572610401106d6f6465b8011c466f7263696e67000e047441206e657720666f72636520657261206d6f646520776173207365742e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a090909ac0c3473705f61726974686d65746963287065725f7468696e67731c50657262696c6c0000040010010c7533320000b0083870616c6c65745f7374616b696e673856616c696461746f7250726566730000080128636f6d6d697373696f6eb4011c50657262696c6c00011c626c6f636b6564980110626f6f6c0000b4000006ac00b8083870616c6c65745f7374616b696e671c466f7263696e67000110284e6f74466f7263696e6700000020466f7263654e657700010024466f7263654e6f6e650002002c466f726365416c7761797300030000bc0c3870616c6c65745f73657373696f6e1870616c6c6574144576656e74000104284e657753657373696f6e04013473657373696f6e5f696e64657810013053657373696f6e496e64657800000839014e65772073657373696f6e206861732068617070656e65642e204e6f746520746861742074686520617267756d656e74206973207468652073657373696f6e20696e6465782c206e6f74207468659c626c6f636b206e756d626572206173207468652074797065206d6967687420737567676573742e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a090909c00c3870616c6c65745f6772616e6470611870616c6c6574144576656e7400010c384e6577417574686f726974696573040134617574686f726974795f736574c40134417574686f726974794c6973740000048c4e657720617574686f726974792073657420686173206265656e206170706c6965642e185061757365640001049843757272656e7420617574686f726974792073657420686173206265656e207061757365642e1c526573756d65640002049c43757272656e7420617574686f726974792073657420686173206265656e20726573756d65642e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a090909c4000002c800c800000408cc2800cc0c4c73705f66696e616c6974795f6772616e6470610c617070185075626c696300000400d0013c656432353531393a3a5075626c69630000d00c1c73705f636f72651c65643235353139185075626c6963000004000401205b75383b2033325d0000d40c4070616c6c65745f696d5f6f6e6c696e651870616c6c6574144576656e7404045400010c444865617274626561745265636569766564040130617574686f726974795f6964d80138543a3a417574686f726974794964000004c041206e657720686561727462656174207761732072656365697665642066726f6d2060417574686f726974794964602e1c416c6c476f6f64000104d041742074686520656e64206f66207468652073657373696f6e2c206e6f206f6666656e63652077617320636f6d6d69747465642e2c536f6d654f66666c696e6504011c6f66666c696e65e0016c5665633c4964656e74696669636174696f6e5475706c653c543e3e000204290141742074686520656e64206f66207468652073657373696f6e2c206174206c65617374206f6e652076616c696461746f722077617320666f756e6420746f206265206f66666c696e652e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a090909d8104070616c6c65745f696d5f6f6e6c696e651c737232353531392c6170705f73723235353139185075626c696300000400dc013c737232353531393a3a5075626c69630000dc0c1c73705f636f72651c73723235353139185075626c6963000004000401205b75383b2033325d0000e0000002e400e40000040800e800e8083870616c6c65745f7374616b696e67204578706f7375726508244163636f756e74496401001c42616c616e63650118000c0114746f74616cec011c42616c616e636500010c6f776eec011c42616c616e63650001186f7468657273f001ac5665633c496e646976696475616c4578706f737572653c4163636f756e7449642c2042616c616e63653e3e0000ec0000061800f0000002f400f4083870616c6c65745f7374616b696e6748496e646976696475616c4578706f7375726508244163636f756e74496401001c42616c616e636501180008010c77686f0001244163636f756e74496400011476616c7565ec011c42616c616e63650000f80c3c70616c6c65745f6f6666656e6365731870616c6c6574144576656e740001041c4f6666656e63650801106b696e64fc01104b696e6400012074696d65736c6f743001384f706171756554696d65536c6f7400000c5101546865726520697320616e206f6666656e6365207265706f72746564206f662074686520676976656e20606b696e64602068617070656e656420617420746865206073657373696f6e5f696e6465786020616e643501286b696e642d7370656369666963292074696d6520736c6f742e2054686973206576656e74206973206e6f74206465706f736974656420666f72206475706c696361746520736c61736865732e4c5c5b6b696e642c2074696d65736c6f745c5d2e04304576656e747320747970652efc00000310000000080001010c4070616c6c65745f626167735f6c6973741870616c6c6574144576656e740804540004490001082052656261676765640c010c77686f000130543a3a4163636f756e74496400011066726f6d280120543a3a53636f7265000108746f280120543a3a53636f7265000004a44d6f76656420616e206163636f756e742066726f6d206f6e652062616720746f20616e6f746865722e3053636f72655570646174656408010c77686f000130543a3a4163636f756e7449640001246e65775f73636f7265280120543a3a53636f7265000104d855706461746564207468652073636f7265206f6620736f6d65206163636f756e7420746f2074686520676976656e20616d6f756e742e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a09090905010c3870616c6c65745f76657374696e671870616c6c6574144576656e740404540001083856657374696e675570646174656408011c6163636f756e74000130543a3a4163636f756e744964000120756e76657374656418013042616c616e63654f663c543e000008510154686520616d6f756e742076657374656420686173206265656e20757064617465642e205468697320636f756c6420696e6469636174652061206368616e676520696e2066756e647320617661696c61626c652e25015468652062616c616e636520676976656e2069732074686520616d6f756e74207768696368206973206c65667420756e7665737465642028616e642074687573206c6f636b6564292e4056657374696e67436f6d706c6574656404011c6163636f756e74000130543a3a4163636f756e7449640001049c416e205c5b6163636f756e745c5d20686173206265636f6d652066756c6c79207665737465642e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a09090909010c3c70616c6c65745f6d756c74697369671870616c6c6574144576656e740404540001102c4e65774d756c74697369670c0124617070726f76696e67000130543a3a4163636f756e7449640001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c486173680000048c41206e6577206d756c7469736967206f7065726174696f6e2068617320626567756e2e404d756c7469736967417070726f76616c100124617070726f76696e67000130543a3a4163636f756e74496400012474696d65706f696e740d01016454696d65706f696e743c543a3a426c6f636b4e756d6265723e0001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c48617368000104c841206d756c7469736967206f7065726174696f6e20686173206265656e20617070726f76656420627920736f6d656f6e652e404d756c74697369674578656375746564140124617070726f76696e67000130543a3a4163636f756e74496400012474696d65706f696e740d01016454696d65706f696e743c543a3a426c6f636b4e756d6265723e0001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c48617368000118726573756c747801384469737061746368526573756c740002049c41206d756c7469736967206f7065726174696f6e20686173206265656e2065786563757465642e444d756c746973696743616e63656c6c656410012863616e63656c6c696e67000130543a3a4163636f756e74496400012474696d65706f696e740d01016454696d65706f696e743c543a3a426c6f636b4e756d6265723e0001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c48617368000304a041206d756c7469736967206f7065726174696f6e20686173206265656e2063616e63656c6c65642e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a0909090d01083c70616c6c65745f6d756c74697369672454696d65706f696e74042c426c6f636b4e756d62657201100008011868656967687410012c426c6f636b4e756d626572000114696e64657810010c75333200001101083870616c6c65745f636f756e63696c205261774576656e74101c42616c616e636501182c426c6f636b4e756d6265720110204d656d62657249640128244163636f756e7449640100014c5c416e6e6f756e63696e67506572696f6453746172746564040010012c426c6f636b4e756d6265720000045c4e657720636f756e63696c2077617320656c65637465644c4e6f74456e6f75676843616e64696461746573040010012c426c6f636b4e756d6265720001041d01416e6e6f756e63696e6720706572696f642063616e27742066696e6973682062656361757365206f6620696e73756666696369656e742063616e6469647461746520636f756e744c566f74696e67506572696f6453746172746564040010010c753332000204a843616e646964617465732061726520616e6e6f756e63656420616e6420766f74696e6720737461727473304e657743616e64696461746510002801204d656d626572496400000001244163636f756e74496400000001244163636f756e744964000018011c42616c616e63650003045c4e65772063616e64696461746520616e6e6f756e636564444e6577436f756e63696c456c65637465640800150101345665633c4d656d62657249643e000010012c426c6f636b4e756d626572000404944e657720636f756e63696c2077617320656c656374656420616e64206170706f696e746564504e6577436f756e63696c4e6f74456c6563746564040010012c426c6f636b4e756d6265720005046c4e657720636f756e63696c20776173206e6f7420656c65637465645443616e6469646163795374616b6552656c6561736504002801204d656d6265724964000604d843616e646964616379207374616b65207468617420776173206e6f206c6f6e676572206e6565646564207761732072656c65617365644443616e646964616379576974686472617704002801204d656d62657249640007049443616e646964617465206861732077697468647261776e206869732063616e6469646163794043616e6469646163794e6f746553657408002801204d656d6265724964000030011c5665633c75383e000804d05468652063616e64696461746520686173207365742061206e6577206e6f746520666f722074686569722063616e646964616379345265776172645061796d656e7410002801204d656d626572496400000001244163636f756e744964000018011c42616c616e6365000018011c42616c616e6365000904c05468652077686f6c652072657761726420776173207061696420746f2074686520636f756e63696c206d656d6265722e4042756467657442616c616e6365536574040018011c42616c616e6365000a049c4275646765742062616c616e636520776173206368616e6765642062792074686520726f6f742e30427564676574526566696c6c040018011c42616c616e6365000b04c44275646765742062616c616e63652077617320696e63726561736564206279206175746f6d6174696320726566696c6c2e4c427564676574526566696c6c506c616e6e6564040010012c426c6f636b4e756d626572000c048c546865206e6578742062756467657420726566696c6c2077617320706c616e6e65642e58427564676574496e6372656d656e7455706461746564040018011c42616c616e6365000d048842756467657420696e6372656d656e7420686173206265656e20757064617465642e58436f756e63696c6f7252657761726455706461746564040018011c42616c616e6365000e0488436f756e63696c6f722072657761726420686173206265656e20757064617465642e345265717565737446756e64656408000001244163636f756e744964000018011c42616c616e6365000f045c5265717565737420686173206265656e2066756e6465644c436f756e63696c42756467657446756e6465640c002801204d656d6265724964000018011c42616c616e6365000030011c5665633c75383e0010146046756e642074686520636f756e63696c206275646765742e1c506172616d733a2c2d204d656d6265722049444c2d20416d6f756e74206f662062616c616e63652c2d20526174696f6e616c6544436f756e63696c6f7252656d61726b656408002801204d656d6265724964000030011c5665633c75383e00110460436f756e63696c6f722072656d61726b206d6573736167654443616e64696461746552656d61726b656408002801204d656d6265724964000030011c5665633c75383e0012046043616e6469646174652072656d61726b206d657373616765085c4576656e747320666f722074686973206d6f64756c652e00150100000228001901084470616c6c65745f7265666572656e64756d205261774576656e741c2c426c6f636b4e756d62657201101c42616c616e636501181048617368012c244163636f756e744964010024566f7465506f7765720118204d656d626572496401280449011d010120445265666572656e64756d53746172746564080010010c753332000010012c426c6f636b4e756d626572000004485265666572656e64756d20737461727465646c5265666572656e64756d53746172746564466f72636566756c6c79080010010c753332000010012c426c6f636b4e756d626572000104485265666572656e64756d20737461727465645452657665616c696e67537461676553746172746564040010012c426c6f636b4e756d6265720002046452657665616c696e672070686173652068617320626567756e485265666572656e64756d46696e69736865640400210101985665633c4f7074696f6e526573756c743c4d656d62657249642c20566f7465506f7765723e3e000304c05265666572656e64756d20656e64656420616e642077696e6e696e67206f7074696f6e207761732073656c656374656420566f7465436173740c000001244163636f756e74496400002c011048617368000018011c42616c616e636500040478557365722063617374206120766f746520696e207265666572656e64756d30566f746552657665616c65640c000001244163636f756e74496400002801204d656d6265724964000030011c5665633c75383e00050458557365722072657665616c65642068697320766f7465345374616b6552656c656173656404000001244163636f756e7449640006045c557365722072656c656173656420686973207374616b655c4163636f756e744f707465644f75744f66566f74696e6704000001244163636f756e744964000704d84163636f756e74207065726d616e656e746c79206f70746564206f7574206f6620766f74696e6720696e207265666572656e64756d2e085c4576656e747320666f722074686973206d6f64756c652e001d01084470616c6c65745f7265666572656e64756d24496e7374616e6365310000000021010000022501002501084470616c6c65745f7265666572656e64756d304f7074696f6e526573756c7408204d656d6265724964012824566f7465506f7765720118000801246f7074696f6e5f69642801204d656d6265724964000128766f74655f706f776572180124566f7465506f77657200002901084470616c6c65745f6d656d62657273686970205261774576656e7420204d656d626572496401281c42616c616e63650118244163636f756e74496401005c4275794d656d62657273686970506172616d6574657273012d011c4163746f724964012868496e766974654d656d62657273686970506172616d6574657273013901584372656174654d656d626572506172616d6574657273013d0160476966744d656d62657273686970506172616d65746572730141010144344d656d626572496e76697465640c002801204d656d6265724964000039010168496e766974654d656d62657273686970506172616d6574657273000018011c42616c616e6365000000404d656d6265727368697047696674656408002801204d656d6265724964000041010160476966744d656d62657273686970506172616d6574657273000100404d656d62657273686970426f756768740c002801204d656d626572496400002d01015c4275794d656d62657273686970506172616d6574657273000010010c753332000200504d656d62657250726f66696c65557064617465640c002801204d656d626572496400003101013c4f7074696f6e3c5665633c75383e3e00003101013c4f7074696f6e3c5665633c75383e3e000300544d656d6265724163636f756e7473557064617465640c002801204d656d626572496400009401444f7074696f6e3c4163636f756e7449643e00009401444f7074696f6e3c4163636f756e7449643e0004007c4d656d626572566572696669636174696f6e537461747573557064617465640c002801204d656d62657249640000980110626f6f6c000028011c4163746f72496400050048526566657272616c437574557064617465640400080108753800060048496e76697465735472616e736665727265640c002801204d656d626572496400002801204d656d6265724964000010010c753332000700584d656d62657273686970507269636555706461746564040018011c42616c616e63650008007c496e697469616c496e7669746174696f6e42616c616e636555706461746564040018011c42616c616e6365000900704c6561646572496e7669746174696f6e51756f746155706461746564040010010c753332000a0074496e697469616c496e7669746174696f6e436f756e7455706461746564040010010c753332000b004c5374616b696e674163636f756e74416464656408000001244163636f756e74496400002801204d656d6265724964000c00545374616b696e674163636f756e7452656d6f76656408000001244163636f756e74496400002801204d656d6265724964000d005c5374616b696e674163636f756e74436f6e6669726d656408000001244163636f756e74496400002801204d656d6265724964000e00384d656d62657252656d61726b65640c002801204d656d6265724964000030011c5665633c75383e0000490101704f7074696f6e3c284163636f756e7449642c2042616c616e6365293e000f00344d656d626572437265617465640c002801204d656d626572496400003d0101584372656174654d656d626572506172616d6574657273000010010c753332001000085c4576656e747320666f722074686973206d6f64756c652e002d01084470616c6c65745f6d656d626572736869705c4275794d656d62657273686970506172616d657465727308244163636f756e7449640100204d656d6265724964012800140130726f6f745f6163636f756e740001244163636f756e744964000148636f6e74726f6c6c65725f6163636f756e740001244163636f756e74496400011868616e646c653101013c4f7074696f6e3c5665633c75383e3e0001206d6574616461746130011c5665633c75383e00012c72656665727265725f6964350101404f7074696f6e3c4d656d62657249643e0000310104184f7074696f6e04045401300108104e6f6e6500000010536f6d650400300000010000350104184f7074696f6e04045401280108104e6f6e6500000010536f6d6504002800000100003901084470616c6c65745f6d656d6265727368697068496e766974654d656d62657273686970506172616d657465727308244163636f756e7449640100204d656d6265724964012800140148696e766974696e675f6d656d6265725f69642801204d656d6265724964000130726f6f745f6163636f756e740001244163636f756e744964000148636f6e74726f6c6c65725f6163636f756e740001244163636f756e74496400011868616e646c653101013c4f7074696f6e3c5665633c75383e3e0001206d6574616461746130011c5665633c75383e00003d01084470616c6c65745f6d656d62657273686970584372656174654d656d626572506172616d657465727304244163636f756e744964010000140130726f6f745f6163636f756e740001244163636f756e744964000148636f6e74726f6c6c65725f6163636f756e740001244163636f756e74496400011868616e646c6530011c5665633c75383e0001206d6574616461746130011c5665633c75383e00014869735f666f756e64696e675f6d656d626572980110626f6f6c00004101084470616c6c65745f6d656d6265727368697060476966744d656d62657273686970506172616d657465727308244163636f756e74496401001c42616c616e6365011800200130726f6f745f6163636f756e740001244163636f756e744964000148636f6e74726f6c6c65725f6163636f756e740001244163636f756e74496400011868616e646c653101013c4f7074696f6e3c5665633c75383e3e0001206d6574616461746130011c5665633c75383e0001646372656469745f636f6e74726f6c6c65725f6163636f756e7418011c42616c616e63650001a06170706c795f636f6e74726f6c6c65725f6163636f756e745f696e7669746174696f6e5f6c6f636b4501013c4f7074696f6e3c42616c616e63653e00014c6372656469745f726f6f745f6163636f756e7418011c42616c616e63650001886170706c795f726f6f745f6163636f756e745f696e7669746174696f6e5f6c6f636b4501013c4f7074696f6e3c42616c616e63653e0000450104184f7074696f6e04045401180108104e6f6e6500000010536f6d650400180000010000490104184f7074696f6e040454014d010108104e6f6e6500000010536f6d6504004d0100000100004d01000004080018005101083070616c6c65745f666f72756d205261774576656e74202843617465676f7279496401282c4d6f64657261746f7249640128205468726561644964012818506f7374496401281048617368012c2c466f72756d55736572496401283c50726976696c656765644163746f7201550138457874656e646564506f7374496401590101443c43617465676f727943726561746564100028012843617465676f727949640000350101484f7074696f6e3c43617465676f727949643e000030011c5665633c75383e000030011c5665633c75383e00000464412063617465676f72792077617320696e74726f64756365647443617465676f7279417263686976616c537461747573557064617465640c0028012843617465676f727949640000980110626f6f6c00005501013c50726976696c656765644163746f72000108e0416e206172686963616c20737461747573206f662063617465676f7279207769746820676976656e2069642077617320757064617465642e1501546865207365636f6e6420617267756d656e74207265666c6563747320746865206e657720617263686976616c20737461747573206f66207468652063617465676f72792e5043617465676f72795469746c65557064617465640c0028012843617465676f7279496400002c01104861736800005501013c50726976696c656765644163746f72000208b841207469746c65206f662063617465676f7279207769746820676976656e2069642077617320757064617465642e0101546865207365636f6e6420617267756d656e74207265666c6563747320746865206e6577207469746c652068617368206f66207468652063617465676f72792e6843617465676f72794465736372697074696f6e557064617465640c0028012843617465676f7279496400002c01104861736800005501013c50726976696c656765644163746f72000308d041206469736372697074696f6e206f662063617465676f7279207769746820676976656e2069642077617320757064617465642e1901546865207365636f6e6420617267756d656e74207265666c6563747320746865206e6577206465736372697074696f6e2068617368206f66207468652063617465676f72792e3c43617465676f727944656c65746564080028012843617465676f7279496400005501013c50726976696c656765644163746f7200040458412063617465676f7279207761732064656c657465643454687265616443726561746564180028012843617465676f72794964000028012054687265616449640000280118506f73744964000028012c466f72756d557365724964000030011c5665633c75383e000030011c5665633c75383e0005088c4120746872656164207769746820676976656e2069642077617320637265617465642ef04120746869726420617267756d656e74207265666c656374732074686520696e697469616c20706f7374206964206f6620746865207468726561642e3c5468726561644d6f6465726174656410002801205468726561644964000030011c5665633c75383e00005501013c50726976696c656765644163746f72000028012843617465676f72794964000604944120746872656164207769746820676976656e20696420776173206d6f646572617465642e3454687265616455706461746564100028012054687265616449640000980110626f6f6c00005501013c50726976696c656765644163746f72000028012843617465676f727949640007088c4120746872656164207769746820676976656e2069642077617320757064617465642e0d01546865207365636f6e6420617267756d656e74207265666c6563747320746865206e657720617263686976616c20737461747573206f6620746865207468726561642e545468726561644d657461646174615570646174656410002801205468726561644964000028012c466f72756d557365724964000028012843617465676f72794964000030011c5665633c75383e0008049c4120746872656164206d6574616461746120676976656e2069642077617320757064617465642e3454687265616444656c6574656410002801205468726561644964000028012c466f72756d557365724964000028012843617465676f727949640000980110626f6f6c000904544120746872656164207761732064656c657465642e2c5468726561644d6f76656410002801205468726561644964000028012843617465676f7279496400005501013c50726976696c656765644163746f72000028012843617465676f72794964000a0488412074687265616420776173206d6f76656420746f206e65772063617465676f727924506f737441646465641800280118506f73744964000028012c466f72756d557365724964000028012843617465676f7279496400002801205468726561644964000030011c5665633c75383e0000980110626f6f6c000b047c506f7374207769746820676976656e2069642077617320637265617465642e34506f73744d6f646572617465641400280118506f73744964000030011c5665633c75383e00005501013c50726976696c656765644163746f72000028012843617465676f7279496400002801205468726561644964000c0484506f73742077697468206769766e6520696420776173206d6f646572617465642e2c506f737444656c657465640c0030011c5665633c75383e000028012c466f72756d55736572496400005d01017842547265654d61703c457874656e646564506f737449642c20626f6f6c3e000d047c506f73742077697468206769766e65206964207761732064656c657465642e3c506f737454657874557064617465641400280118506f73744964000028012c466f72756d557365724964000028012843617465676f7279496400002801205468726561644964000030011c5665633c75383e000e08a0506f7374207769746820676976656e2069642068616420697473207465787420757064617465642e4d01546865207365636f6e6420617267756d656e74207265666c6563747320746865206e756d626572206f6620746f74616c206564697473207768656e20746865207465787420757064617465206f63637572732e6843617465676f7279537469636b795468726561645570646174650c0028012843617465676f7279496400006901014842547265655365743c54687265616449643e00005501013c50726976696c656765644163746f72000f0488537469636b7920746872656164207570646174656420666f722063617465676f72799043617465676f72794d656d626572736869704f664d6f64657261746f72557064617465640c0028012c4d6f64657261746f724964000028012843617465676f727949640000980110626f6f6c0010042501416e206d6f64657261746f72206162696c69747920746f206d6f64657261746520612063617465676f727920616e64206974732073756263617465676f726965732075706461746564085c4576656e747320666f722074686973206d6f64756c652e005501083070616c6c65745f666f72756d3c50726976696c656765644163746f72040454000108104c656164000000244d6f64657261746f7204002801384d6f64657261746f7249643c543e000100005901083070616c6c65745f666f72756d50457874656e646564506f737449644f626a6563740c2843617465676f727949640128205468726561644964012818506f737449640128000c012c63617465676f72795f696428012843617465676f727949640001247468726561645f6964280120546872656164496400011c706f73745f6964280118506f7374496400005d01042042547265654d617008044b015901045601980004006101000000610100000265010065010000040859019800690104204254726565536574040454012800040015010000006d01084c70616c6c65745f636f6e737469747574696f6e205261774576656e74041048617368012c010444436f6e73747574696f6e416d656e64656408002c011048617368000030011c5665633c75383e00001080456d697473206f6e20636f6e737469747574696f6e20616d656e646d656e742e2c506172616d65746572733a602d20636f6e737469747574696f6e207465787420686173684c2d20636f6e737469747574696f6e2074657874085c4576656e747320666f722074686973206d6f64756c652e007101083470616c6c65745f626f756e7479205261774576656e741c20426f756e7479496401281c456e747279496401281c42616c616e63650118204d656d62657249640128244163636f756e744964010060426f756e74794372656174696f6e506172616d6574657273017501384f7261636c654a7564676d656e74018501015c34426f756e7479437265617465640c00280120426f756e74794964000075010160426f756e74794372656174696f6e506172616d6574657273000030011c5665633c75383e000014544120626f756e74792077617320637265617465642e1c506172616d733a2c2d20626f756e7479204944542d206372656174696f6e20706172616d6574657273442d20626f756e7479206d6574616461746150426f756e74794f7261636c6553776974636865641000280120426f756e74794964000079010154426f756e74794163746f723c4d656d62657249643e000079010154426f756e74794163746f723c4d656d62657249643e000079010154426f756e74794163746f723c4d656d62657249643e000118d0426f756e7479204f7261636c652053776974636865642062792063757272656e74206f7261636c65206f7220636f756e63696c2e1c506172616d733a2c2d20626f756e7479204944282d207377697463686572442d2063757272656e745f6f7261636c652c302d206e6577206f7261636c6540426f756e74795465726d696e617465641000280120426f756e74794964000079010154426f756e74794163746f723c4d656d62657249643e000079010154426f756e74794163746f723c4d656d62657249643e000079010154426f756e74794163746f723c4d656d62657249643e0002188c4120626f756e747920776173207465726d696e6174656420627920636f756e63696c2e1c506172616d733a2c2d20626f756e74792049444c2d20626f756e7479207465726d696e61746f72402d20626f756e74792063726561746f723c2d20626f756e7479206f7261636c6530426f756e747946756e6465640c00280120426f756e74794964000079010154426f756e74794163746f723c4d656d62657249643e000018011c42616c616e6365000314b44120626f756e7479207761732066756e6465642062792061206d656d626572206f72206120636f756e63696c2e1c506172616d733a2c2d20626f756e74792049443c2d20626f756e74792066756e646572402d2066756e64696e6720616d6f756e745c426f756e74794d617846756e64696e67526561636865640400280120426f756e7479496400040cbc4120626f756e747920686173207265616368656420697473207461726765742066756e64696e6720616d6f756e742e1c506172616d733a2c2d20626f756e74792049445c426f756e747946756e64696e675769746864726177616c0800280120426f756e74794964000079010154426f756e74794163746f723c4d656d62657249643e000510c041206d656d626572206f72206120636f756e63696c206861732077697468647261776e207468652066756e64696e672e1c506172616d733a2c2d20626f756e74792049443c2d20626f756e74792066756e64657274426f756e747943726561746f724368657272795769746864726177616c0800280120426f756e74794964000079010154426f756e74794163746f723c4d656d62657249643e000610f84120626f756e74792063726561746f72206861732077697468647261776e207468652063686572727920286d656d626572206f7220636f756e63696c292e1c506172616d733a2c2d20626f756e7479204944402d20626f756e74792063726561746f728c426f756e747943726561746f724f7261636c655265776172645769746864726177616c0800280120426f756e74794964000079010154426f756e74794163746f723c4d656d62657249643e00071015014120626f756e74792063726561746f72206861732077697468647261776e20746865206f7261636c652072657761726420286d656d626572206f7220636f756e63696c292e1c506172616d733a2c2d20626f756e7479204944402d20626f756e74792063726561746f7270426f756e74794f7261636c655265776172645769746864726177616c0c00280120426f756e74794964000079010154426f756e74794163746f723c4d656d62657249643e000018011c42616c616e6365000814f441204f7261636c65206861732077697468647261776e20746865206f7261636c652072657761726420286d656d626572206f7220636f756e63696c292e1c506172616d733a2c2d20626f756e7479204944402d20626f756e74792063726561746f723c2d204f7261636c652052657761726434426f756e747952656d6f7665640400280120426f756e7479496400090c544120626f756e7479207761732072656d6f7665642e1c506172616d733a2c2d20626f756e747920494448576f726b456e747279416e6e6f756e6365641400280120426f756e74794964000028011c456e747279496400002801204d656d626572496400000001244163636f756e744964000030011c5665633c75383e000a1c64576f726b20656e7472792077617320616e6e6f756e6365642e1c506172616d733a2c2d20626f756e7479204944482d206372656174656420656e7472792049444c2d20656e7472616e74206d656d626572204944502d207374616b696e67206163636f756e74204944482d20776f726b206465736372697074696f6e34576f726b5375626d69747465641000280120426f756e74794964000028011c456e747279496400002801204d656d6265724964000030011c5665633c75383e000b18305375626d697420776f726b2e1c506172616d733a2c2d20626f756e7479204944482d206372656174656420656e7472792049444c2d20656e7472616e74206d656d626572204944a82d20776f726b206461746120286465736372697074696f6e2c2055524c2c20424c4f422c206574632e295c4f7261636c654a7564676d656e745375626d69747465641000280120426f756e74794964000079010154426f756e74794163746f723c4d656d62657249643e0000850101384f7261636c654a7564676d656e74000030011c5665633c75383e000c185c5375626d6974206f7261636c65206a7564676d656e742e1c506172616d733a2c2d20626f756e7479204944202d206f7261636c653c2d206a7564676d656e7420646174612c2d20726174696f6e616c6564576f726b456e7472616e7446756e647357697468647261776e0c00280120426f756e74794964000028011c456e747279496400002801204d656d6265724964000d145c576f726b20656e7472792077617320736c61736865642e1c506172616d733a2c2d20626f756e7479204944282d20656e7472792049444c2d20656e7472616e74206d656d62657220494464426f756e7479436f6e7472696275746f7252656d61726b65640c0079010154426f756e74794163746f723c4d656d62657249643e0000280120426f756e74794964000030011c5665633c75383e000e14a0426f756e747920636f6e7472696275746f72206d6164652061206d6573736167652072656d61726b1c506172616d733a342d20636f6e7472696275746f722c2d20626f756e7479206964242d206d65737361676550426f756e74794f7261636c6552656d61726b65640c0079010154426f756e74794163746f723c4d656d62657249643e0000280120426f756e74794964000030011c5665633c75383e000f148c426f756e7479206f7261636c65206d6164652061206d6573736167652072656d61726b1c506172616d733a202d206f7261636c652c2d20626f756e7479206964242d206d65737361676554426f756e7479456e7472616e7452656d61726b656410002801204d656d62657249640000280120426f756e74794964000028011c456e7472794964000030011c5665633c75383e00101890426f756e747920656e7472616e74206d6164652061206d6573736167652072656d61726b1c506172616d733a302d20656e7472616e745f69642c2d20626f756e7479206964282d20656e747279206964242d206d65737361676554426f756e747943726561746f7252656d61726b65640c0079010154426f756e74794163746f723c4d656d62657249643e0000280120426f756e74794964000030011c5665633c75383e00111490426f756e74792063726561746f72206d6164652061206d6573736167652072656d61726b1c506172616d733a242d2063726561746f722c2d20626f756e7479206964242d206d65737361676564576f726b5375626d697373696f6e506572696f64456e6465640800280120426f756e74794964000079010154426f756e74794163746f723c4d656d62657249643e0012105c576f726b20656e7472792077617320736c61736865642e1c506172616d733a2c2d20626f756e7479204944442d206f7261636c65202863616c6c65722960576f726b456e7472616e745374616b65556e6c6f636b65640c00280120426f756e74794964000028011c456e747279496400000001244163636f756e74496400131468576f726b20656e747279207374616b6520756e6c6f636b65642e1c506172616d733a2c2d20626f756e7479204944282d20656e7472792049443c2d207374616b65206163636f756e745c576f726b456e7472616e745374616b65536c61736865641000280120426f756e74794964000028011c456e747279496400000001244163636f756e744964000018011c42616c616e636500141864576f726b20656e747279207374616b6520736c61736865642e1c506172616d733a2c2d20626f756e7479204944282d20656e7472792049443c2d207374616b65206163636f756e74402d20736c617368656420616d6f756e747446756e6465725374617465426c6f6174426f6e6457697468647261776e0c00280120426f756e74794964000079010154426f756e74794163746f723c4d656d62657249643e000018011c42616c616e63650015141d0141206d656d626572206f72206120636f756e63696c2066756e646572206861732077697468647261776e207468652066756e64657220737461746520626c6f617420626f6e642e1c506172616d733a2c2d20626f756e74792049443c2d20626f756e74792066756e646572802d2066756e64657220537461746520626c6f617420626f6e6420616d6f756e747843726561746f725374617465426c6f6174426f6e6457697468647261776e0c00280120426f756e74794964000079010154426f756e74794163746f723c4d656d62657249643e000018011c42616c616e6365001614250141206d656d626572206f72206120636f756e63696c2063726561746f72206861732077697468647261776e207468652063726561746f7220737461746520626c6f617420626f6e642e1c506172616d733a2c2d20626f756e7479204944402d20626f756e74792063726561746f72842d2043726561746f7220537461746520626c6f617420626f6e6420616d6f756e74085c4576656e747320666f722074686973206d6f64756c652e007501083470616c6c65745f626f756e747940426f756e7479506172616d6574657273101c42616c616e636501182c426c6f636b4e756d6265720110204d656d626572496401285c436c6f736564436f6e747261637457686974656c697374016901001c01186f7261636c6579010154426f756e74794163746f723c4d656d62657249643e000134636f6e74726163745f747970657d0101b84173737572616e6365436f6e7472616374547970653c436c6f736564436f6e747261637457686974656c6973743e00011c63726561746f7279010154426f756e74794163746f723c4d656d62657249643e00011863686572727918011c42616c616e63650001346f7261636c655f72657761726418011c42616c616e6365000134656e7472616e745f7374616b6518011c42616c616e636500013066756e64696e675f747970658101018446756e64696e67547970653c426c6f636b4e756d6265722c2042616c616e63653e00007901083470616c6c65745f626f756e74792c426f756e74794163746f7204204d656d6265724964012801081c436f756e63696c000000184d656d62657204002801204d656d6265724964000100007d01083470616c6c65745f626f756e7479544173737572616e6365436f6e747261637454797065045c436c6f736564436f6e747261637457686974656c6973740169010108104f70656e00000018436c6f73656404006901015c436c6f736564436f6e747261637457686974656c697374000100008101083470616c6c65745f626f756e74792c46756e64696e6754797065082c426c6f636b4e756d62657201101c42616c616e6365011801082450657270657475616c04011874617267657418011c42616c616e63650000001c4c696d6974656408011874617267657418011c42616c616e636500013866756e64696e675f706572696f6410012c426c6f636b4e756d626572000100008501042042547265654d617008044b012804560189010004008d010000008901083470616c6c65745f626f756e74795c4f7261636c65576f726b456e7472794a7564676d656e74041c42616c616e6365011801081857696e6e657204011872657761726418011c42616c616e63650000002052656a6563746564080138736c617368696e675f7368617265ac011c50657262696c6c000150616374696f6e5f6a757374696669636174696f6e30011c5665633c75383e000100008d01000002910100910100000408288901009501083870616c6c65745f7574696c697479205261774576656e74081c42616c616e63650118244163636f756e74496401000110205369676e616c6564040030011c5665633c75383e00000c7841207369676e616c2070726f706f73616c207761732065786563757465641c506172616d733adc2d205369676e616c20676976656e207768656e206372656174696e672074686520636f72726573706f6e64696e672070726f706f73616c3c52756e74696d655570677261646564040030011c5665633c75383e00010c78412072756e74696d652075706772616465207761732065786563757465641c506172616d733a6c2d204e657720636f646520656e636f64656420696e2062797465736455706461746564576f726b696e6747726f75704275646765740c0099010130576f726b696e6747726f7570000018011c42616c616e636500009d01012c42616c616e63654b696e64000218d8416e206055706461746520576f726b696e672047726f757020427564676574602070726f706f73616c207761732065786563757465641c506172616d733ab42d20576f726b696e672067726f757020776869636820627564676574206973206265696e6720757064617465647c2d20416d6f756e74206f662062616c616e6365206265696e67206d6f7665645d012d20456e756d2076617269616e74207769746820706f73697469766520696e6469636174696e672066756e6473206d6f76656420746f72776172647320776f726b696e672067726f757020616e64206e65676174697665c0616e64206e656761746976652066756e6473206d6f76696e672066726f6d2074686520776f726b696e672067726f757030546f6b656e734275726e656408000001244163636f756e744964000018011c42616c616e636500031060416e206163636f756e74206275726e656420746f6b656e731c506172616d733a882d204163636f756e74204964206f6620746865206275726e696e6720746f6b656e73882d2042616c616e6365206275726e65642066726f6d2074686174206163636f756e74085c4576656e747320666f722074686973206d6f64756c652e009901103470616c6c65745f636f6d6d6f6e34776f726b696e675f67726f7570386974657261626c655f656e756d7330576f726b696e6747726f757000012414466f72756d0000001c53746f726167650001001c436f6e74656e740002003c4f7065726174696f6e73416c7068610003000c41707000040030446973747269627574696f6e000500384f7065726174696f6e73426574610006003c4f7065726174696f6e7347616d6d61000700284d656d62657273686970000800009d01083470616c6c65745f636f6d6d6f6e2c42616c616e63654b696e6400010820506f736974697665000000204e6567617469766500010000a101083870616c6c65745f636f6e74656e74205261774576656e746430436f6e74656e744163746f7201a501204d656d626572496401283843757261746f7247726f7570496401282443757261746f72496401281c566964656f49640128244368616e6e656c496401281c4368616e6e656c01a90130446174614f626a6563744964012850456e676c69736841756374696f6e506172616d7301fd01444f70656e41756374696f6e506172616d73010502344f70656e41756374696f6e49640128544e667449737375616e6365506172616d65746572730109021c42616c616e63650118644368616e6e656c4372656174696f6e506172616d65746572730115025c4368616e6e656c557064617465506172616d65746572730141025c566964656f4372656174696f6e506172616d657465727301490254566964656f557064617465506172616d6574657273015102544368616e6e656c50726976696c6567654c6576656c0108704d6f6465726174696f6e5065726d697373696f6e7342794c6576656c015502645472616e73666572436f6d6d69746d656e745769746e657373016d023c50656e64696e675472616e7366657201ed01244163636f756e7449640100785570646174654368616e6e656c5061796f757473506172616d65746572730171021c546f6b656e496401285c4368616e6e656c46756e647344657374696e6174696f6e01850201d84c43757261746f7247726f757043726561746564040028013843757261746f7247726f757049640000007843757261746f7247726f75705065726d697373696f6e7355706461746564080028013843757261746f7247726f757049640000550201704d6f6465726174696f6e5065726d697373696f6e7342794c6576656c0001005443757261746f7247726f7570537461747573536574080028013843757261746f7247726f757049640000980110626f6f6c0002003043757261746f7241646465640c0028013843757261746f7247726f75704964000028012443757261746f7249640000bd01015c4368616e6e656c4167656e745065726d697373696f6e730003003843757261746f7252656d6f766564080028013843757261746f7247726f75704964000028012443757261746f724964000400384368616e6e656c4372656174656410002801244368616e6e656c49640000a901011c4368616e6e656c0000150201644368616e6e656c4372656174696f6e506172616d657465727300000001244163636f756e744964000500384368616e6e656c557064617465641000a5010130436f6e74656e744163746f7200002801244368616e6e656c496400004102015c4368616e6e656c557064617465506172616d657465727300006901015842547265655365743c446174614f626a65637449643e000600704368616e6e656c50726976696c6567654c6576656c5570646174656408002801244368616e6e656c496400000801544368616e6e656c50726976696c6567654c6576656c000700844368616e6e656c5374617465426c6f6174426f6e6456616c756555706461746564040018011c42616c616e63650008007c566964656f5374617465426c6f6174426f6e6456616c756555706461746564040018011c42616c616e6365000900504368616e6e656c41737365747352656d6f7665641000a5010130436f6e74656e744163746f7200002801244368616e6e656c496400006901015842547265655365743c446174614f626a65637449643e0000a901011c4368616e6e656c000a00384368616e6e656c44656c657465640800a5010130436f6e74656e744163746f7200002801244368616e6e656c4964000b00644368616e6e656c44656c6574656442794d6f64657261746f720c00a5010130436f6e74656e744163746f7200002801244368616e6e656c4964000030011c5665633c75383e000c007c4368616e6e656c5669736962696c69747953657442794d6f64657261746f721000a5010130436f6e74656e744163746f7200002801244368616e6e656c49640000980110626f6f6c000030011c5665633c75383e000d009c4368616e6e656c50617573656446656174757265735570646174656442794d6f64657261746f721000a5010130436f6e74656e744163746f7200002801244368616e6e656c49640000d901018042547265655365743c5061757361626c654368616e6e656c466561747572653e000030011c5665633c75383e000e007c4368616e6e656c41737365747344656c6574656442794d6f64657261746f721000a5010130436f6e74656e744163746f7200002801244368616e6e656c496400006901015842547265655365743c446174614f626a65637449643e000030011c5665633c75383e000f00544368616e6e656c46756e647357697468647261776e1000a5010130436f6e74656e744163746f7200002801244368616e6e656c4964000018011c42616c616e636500008502015c4368616e6e656c46756e647344657374696e6174696f6e001000804368616e6e656c526577617264436c61696d6564416e6457697468647261776e1000a5010130436f6e74656e744163746f7200002801244368616e6e656c4964000018011c42616c616e636500008502015c4368616e6e656c46756e647344657374696e6174696f6e00110030566964656f437265617465641400a5010130436f6e74656e744163746f7200002801244368616e6e656c4964000028011c566964656f496400004902015c566964656f4372656174696f6e506172616d657465727300006901015842547265655365743c446174614f626a65637449643e00120030566964656f557064617465641000a5010130436f6e74656e744163746f72000028011c566964656f4964000051020154566964656f557064617465506172616d657465727300006901015842547265655365743c446174614f626a65637449643e00130030566964656f44656c657465640800a5010130436f6e74656e744163746f72000028011c566964656f49640014005c566964656f44656c6574656442794d6f64657261746f720c00a5010130436f6e74656e744163746f72000028011c566964656f4964000030011c5665633c75383e00150074566964656f5669736962696c69747953657442794d6f64657261746f721000a5010130436f6e74656e744163746f72000028011c566964656f49640000980110626f6f6c000030011c5665633c75383e00160074566964656f41737365747344656c6574656442794d6f64657261746f721400a5010130436f6e74656e744163746f72000028011c566964656f496400006901015842547265655365743c446174614f626a65637449643e0000980110626f6f6c000030011c5665633c75383e001700544368616e6e656c5061796f757473557064617465640c00710201785570646174654368616e6e656c5061796f757473506172616d65746572730000350101504f7074696f6e3c446174614f626a65637449643e00000001244163636f756e744964001800504368616e6e656c526577617264557064617465640c0018011c42616c616e6365000018011c42616c616e636500002801244368616e6e656c496400190054456e676c69736841756374696f6e537461727465640c00a5010130436f6e74656e744163746f72000028011c566964656f49640000fd010150456e676c69736841756374696f6e506172616d73001a00484f70656e41756374696f6e537461727465641000a5010130436f6e74656e744163746f72000028011c566964656f49640000050201444f70656e41756374696f6e506172616d7300002801344f70656e41756374696f6e4964001b00244e66744973737565640c00a5010130436f6e74656e744163746f72000028011c566964656f49640000090201544e667449737375616e6365506172616d6574657273001c00304e667444657374726f7965640800a5010130436f6e74656e744163746f72000028011c566964656f4964001d003841756374696f6e4269644d61646510002801204d656d6265724964000028011c566964656f4964000018011c42616c616e63650000350101404f7074696f6e3c4d656d62657249643e001e004841756374696f6e42696443616e63656c656408002801204d656d6265724964000028011c566964656f4964001f003c41756374696f6e43616e63656c65640800a5010130436f6e74656e744163746f72000028011c566964656f496400200054456e676c69736841756374696f6e536574746c65640c002801204d656d626572496400000001244163636f756e744964000028011c566964656f4964002100604269644d616465436f6d706c6574696e6741756374696f6e0c002801204d656d6265724964000028011c566964656f49640000350101404f7074696f6e3c4d656d62657249643e002200584f70656e41756374696f6e42696441636365707465641000a5010130436f6e74656e744163746f72000028011c566964656f496400002801204d656d6265724964000018011c42616c616e6365002300304f6666657253746172746564100028011c566964656f49640000a5010130436f6e74656e744163746f7200002801204d656d626572496400004501013c4f7074696f6e3c42616c616e63653e002400344f666665724163636570746564040028011c566964656f4964002500344f6666657243616e63656c6564080028011c566964656f49640000a5010130436f6e74656e744163746f72002600404e667453656c6c4f726465724d6164650c0028011c566964656f49640000a5010130436f6e74656e744163746f72000018011c42616c616e6365002700244e6674426f75676874080028011c566964656f496400002801204d656d6265724964002800384275794e6f7743616e63656c6564080028011c566964656f49640000a5010130436f6e74656e744163746f72002900484275794e6f775072696365557064617465640c0028011c566964656f49640000a5010130436f6e74656e744163746f72000018011c42616c616e6365002a00844e6674536c696e6765644261636b546f5468654f726967696e616c417274697374080028011c566964656f49640000a5010130436f6e74656e744163746f72002b00504368616e6e656c4f776e657252656d61726b656408002801244368616e6e656c4964000030011c5665633c75383e002c046c4d65746170726f746f636f6c732072656c61746564206576656e74504368616e6e656c4167656e7452656d61726b65640c00a5010130436f6e74656e744163746f7200002801244368616e6e656c4964000030011c5665633c75383e002d00404e66744f776e657252656d61726b65640c00a5010130436f6e74656e744163746f72000028011c566964656f4964000030011c5665633c75383e002e0068496e697469616c697a65644368616e6e656c5472616e736665720c002801244368616e6e656c49640000a5010130436f6e74656e744163746f720000ed01013c50656e64696e675472616e73666572002f005443616e63656c4368616e6e656c5472616e7366657208002801244368616e6e656c49640000a5010130436f6e74656e744163746f720030005c4368616e6e656c5472616e73666572416363657074656408002801244368616e6e656c496400006d0201645472616e73666572436f6d6d69746d656e745769746e65737300310054476c6f62616c4e66744c696d6974557064617465640800890201384e66744c696d6974506572696f64000028010c753634003200584368616e6e656c4e66744c696d6974557064617465641000a5010130436f6e74656e744163746f720000890201384e66744c696d6974506572696f6400002801244368616e6e656c4964000028010c75363400330040546f67676c65644e66744c696d6974730400980110626f6f6c0034004843726561746f72546f6b656e4973737565640c00a5010130436f6e74656e744163746f7200002801244368616e6e656c4964000028011c546f6b656e4964003500085c4576656e747320666f722074686973206d6f64756c652e00a5010c3870616c6c65745f636f6e74656e742c7065726d697373696f6e7330436f6e74656e744163746f720c3843757261746f7247726f7570496401282443757261746f7249640128204d656d62657249640128010c1c43757261746f72080028013843757261746f7247726f75704964000028012443757261746f724964000000184d656d62657204002801204d656d6265724964000100104c65616400020000a9010c3870616c6c65745f636f6e74656e74147479706573344368616e6e656c5265636f72642c204d656d626572496401283843757261746f7247726f7570496401281c42616c616e63650118544368616e6e656c50726976696c6567654c6576656c01082c426c6f636b4e756d62657201101c546f6b656e49640128285472616e7366657249640128404368616e6e656c41737365747353657401ad015c4368616e6e656c436f6c6c61626f7261746f72734d617001b10144506175736564466561747572657353657401d10148526570617961626c65426c6f6174426f6e6401e101003801146f776e6572e50101984368616e6e656c4f776e65723c4d656d62657249642c2043757261746f7247726f757049643e0001286e756d5f766964656f7328010c753634000134636f6c6c61626f7261746f7273b101015c4368616e6e656c436f6c6c61626f7261746f72734d617000016463756d756c61746976655f7265776172645f636c61696d656418011c42616c616e636500013c70726976696c6567655f6c6576656c0801544368616e6e656c50726976696c6567654c6576656c00013c7061757365645f6665617475726573d1010144506175736564466561747572657353657400013c7472616e736665725f737461747573e9010179014368616e6e656c5472616e736665725374617475733c4d656d62657249642c2043757261746f7247726f757049642c2042616c616e63652c205472616e7366657249642c0a4368616e6e656c436f6c6c61626f7261746f72734d61702c3e000130646174615f6f626a65637473ad0101404368616e6e656c41737365747353657400013c6461696c795f6e66745f6c696d6974f501016c4c696d6974506572506572696f643c426c6f636b4e756d6265723e0001407765656b6c795f6e66745f6c696d6974f501016c4c696d6974506572506572696f643c426c6f636b4e756d6265723e0001446461696c795f6e66745f636f756e746572f901015c4e6674436f756e7465723c426c6f636b4e756d6265723e0001487765656b6c795f6e66745f636f756e746572f901015c4e6674436f756e7465723c426c6f636b4e756d6265723e00014063726561746f725f746f6b656e5f69643501013c4f7074696f6e3c546f6b656e49643e0001606368616e6e656c5f73746174655f626c6f61745f626f6e64e1010148526570617961626c65426c6f6174426f6e640000ad010c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401280453000004006901012c42547265655365743c543e0000b1010c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b0128045601b501045300000400c501013842547265654d61703c4b2c20563e0000b5010c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401b901045300000400bd01012c42547265655365743c543e0000b901103870616c6c65745f636f6e74656e74147479706573386974657261626c655f656e756d735c4368616e6e656c416374696f6e5065726d697373696f6e000154545570646174654368616e6e656c4d657461646174610000006c4d616e6167654e6f6e566964656f4368616e6e656c417373657473000100684d616e6167654368616e6e656c436f6c6c61626f7261746f72730002004c557064617465566964656f4d6574616461746100030020416464566964656f000400444d616e616765566964656f4173736574730005003444656c6574654368616e6e656c0006002c44656c657465566964656f0007003c4d616e616765566964656f4e6674730008002c4167656e7452656d61726b0009003c5472616e736665724368616e6e656c000a0048436c61696d4368616e6e656c526577617264000b0068576974686472617746726f6d4368616e6e656c42616c616e6365000c0044497373756543726561746f72546f6b656e000d0068436c61696d43726561746f72546f6b656e506174726f6e616765000e0074496e6974416e644d616e61676543726561746f72546f6b656e53616c65000f006843726561746f72546f6b656e4973737565725472616e73666572001000784d616b6543726561746f72546f6b656e5065726d697373696f6e6c6573730011007c52656475636543726561746f72546f6b656e506174726f6e616765526174650012004c4d616e616765526576656e756553706c6974730013004c4465697373756543726561746f72546f6b656e00140000bd010420425472656553657404045401b901000400c101000000c101000002b90100c501042042547265654d617008044b0128045601b501000400c901000000c901000002cd0100cd010000040828b50100d1010c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401d501045300000400d901012c42547265655365743c543e0000d501143870616c6c65745f636f6e74656e742c7065726d697373696f6e733463757261746f725f67726f7570386974657261626c655f656e756d73585061757361626c654368616e6e656c4665617475726500011c504368616e6e656c46756e64735472616e736665720000003843726561746f72436173686f757400010040566964656f4e667449737375616e636500020034566964656f4372656174696f6e0003002c566964656f557064617465000400344368616e6e656c5570646174650005005043726561746f72546f6b656e49737375616e636500060000d9010420425472656553657404045401d501000400dd01000000dd01000002d50100e1010c3470616c6c65745f636f6d6d6f6e28626c6f61745f626f6e6448526570617961626c65426c6f6174426f6e6408244163636f756e74496401001c42616c616e636501180008015c72657061796d656e745f726573747269637465645f746f9401444f7074696f6e3c4163636f756e7449643e000118616d6f756e7418011c42616c616e63650000e5010c3870616c6c65745f636f6e74656e74147479706573304368616e6e656c4f776e657208204d656d626572496401283843757261746f7247726f7570496401280108184d656d62657204002801204d656d62657249640000003043757261746f7247726f7570040028013843757261746f7247726f7570496400010000e9010c3870616c6c65745f636f6e74656e74147479706573544368616e6e656c5472616e7366657253746174757314204d656d626572496401283843757261746f7247726f7570496401281c42616c616e63650118285472616e73666572496401285c4368616e6e656c436f6c6c61626f7261746f72734d617001b1010108404e6f4163746976655472616e736665720000003c50656e64696e675472616e736665720400ed01015d0150656e64696e675472616e736665723c4d656d62657249642c2043757261746f7247726f757049642c2042616c616e63652c205472616e7366657249642c0a4368616e6e656c436f6c6c61626f7261746f72734d61703e00010000ed010c3870616c6c65745f636f6e74656e741474797065733c50656e64696e675472616e7366657214204d656d626572496401283843757261746f7247726f7570496401281c42616c616e63650118285472616e73666572496401285c4368616e6e656c436f6c6c61626f7261746f72734d617001b101000801246e65775f6f776e6572e50101984368616e6e656c4f776e65723c4d656d62657249642c2043757261746f7247726f757049643e00013c7472616e736665725f706172616d73f1010129015472616e73666572436f6d6d69746d656e74506172616d65746572733c4368616e6e656c436f6c6c61626f7261746f72734d61702c2042616c616e63652c205472616e7366657249643e0000f1010c3870616c6c65745f636f6e74656e74147479706573705472616e73666572436f6d6d69746d656e74506172616d65746572730c5c4368616e6e656c436f6c6c61626f7261746f72734d617001b1011c42616c616e63650118285472616e7366657249640128000c01446e65775f636f6c6c61626f7261746f7273b101015c4368616e6e656c436f6c6c61626f7261746f72734d6170000114707269636518011c42616c616e636500012c7472616e736665725f69642801285472616e7366657249640000f5010c3870616c6c65745f636f6e74656e74147479706573384c696d6974506572506572696f64042c426c6f636b4e756d6265720110000801146c696d697428010c75363400014c626c6f636b5f6e756d6265725f706572696f6410012c426c6f636b4e756d6265720000f9010c3870616c6c65745f636f6e74656e74147479706573284e6674436f756e746572042c426c6f636b4e756d62657201100008011c636f756e74657228010c7536340001306c6173745f7570646174656410012c426c6f636b4e756d6265720000fd01103870616c6c65745f636f6e74656e740c6e667414747970657368456e676c69736841756374696f6e506172616d735265636f72640c2c426c6f636b4e756d62657201101c42616c616e63650118204d656d62657249640128001c01387374617274696e675f707269636518011c42616c616e63650001346275795f6e6f775f70726963654501013c4f7074696f6e3c42616c616e63653e00012477686974656c6973746901014842547265655365743c4d656d62657249643e0001247374617274735f61740102014c4f7074696f6e3c426c6f636b4e756d6265723e0001206475726174696f6e10012c426c6f636b4e756d626572000140657874656e73696f6e5f706572696f6410012c426c6f636b4e756d6265720001306d696e5f6269645f7374657018011c42616c616e63650000010204184f7074696f6e04045401100108104e6f6e6500000010536f6d6504001000000100000502103870616c6c65745f636f6e74656e740c6e66741474797065735c4f70656e41756374696f6e506172616d735265636f72640c2c426c6f636b4e756d62657201101c42616c616e63650118204d656d62657249640128001401387374617274696e675f707269636518011c42616c616e63650001346275795f6e6f775f70726963654501013c4f7074696f6e3c42616c616e63653e0001247374617274735f61740102014c4f7074696f6e3c426c6f636b4e756d6265723e00012477686974656c6973746901014842547265655365743c4d656d62657249643e0001446269645f6c6f636b5f6475726174696f6e10012c426c6f636b4e756d62657200000902103870616c6c65745f636f6e74656e740c6e66741474797065736c4e667449737375616e6365506172616d65746572735265636f726408204d656d626572496401285c496e69745472616e73616374696f6e616c537461747573010d020010011c726f79616c74791102013c4f7074696f6e3c526f79616c74793e0001306e66745f6d6574616461746130012c4e66744d657461646174610001446e6f6e5f6368616e6e656c5f6f776e6572350101404f7074696f6e3c4d656d62657249643e000164696e69745f7472616e73616374696f6e616c5f7374617475730d02015c496e69745472616e73616374696f6e616c53746174757300000d02103870616c6c65745f636f6e74656e740c6e667414747970657374496e69745472616e73616374696f6e616c5374617475735265636f72641050456e676c69736841756374696f6e506172616d7301fd01444f70656e41756374696f6e506172616d73010502204d656d626572496401281c42616c616e6365011801141049646c65000000184275794e6f77040018011c42616c616e636500010058496e697469617465644f66666572546f4d656d62657208002801204d656d626572496400004501013c4f7074696f6e3c42616c616e63653e00020038456e676c69736841756374696f6e0400fd010150456e676c69736841756374696f6e506172616d730003002c4f70656e41756374696f6e0400050201444f70656e41756374696f6e506172616d7300040000110204184f7074696f6e04045401ac0108104e6f6e6500000010536f6d650400ac000001000015020c3870616c6c65745f636f6e74656e741474797065737c4368616e6e656c4372656174696f6e506172616d65746572735265636f7264143453746f72616765417373657473011902204d656d626572496401283c53746f726167654275636b65744964012850446973747269627574696f6e4275636b657449640125021c42616c616e63650118001c0118617373657473290201544f7074696f6e3c53746f726167654173736574733e0001106d6574613101013c4f7074696f6e3c5665633c75383e3e000134636f6c6c61626f7261746f72732d0201ac42547265654d61703c4d656d62657249642c204368616e6e656c4167656e745065726d697373696f6e733e00013c73746f726167655f6275636b6574736901016442547265655365743c53746f726167654275636b657449643e000150646973747269627574696f6e5f6275636b6574733902017842547265655365743c446973747269627574696f6e4275636b657449643e00018465787065637465645f6368616e6e656c5f73746174655f626c6f61745f626f6e6418011c42616c616e636500019465787065637465645f646174615f6f626a6563745f73746174655f626c6f61745f626f6e6418011c42616c616e6365000019020c3870616c6c65745f636f6e74656e741474797065734c53746f726167654173736574735265636f7264041c42616c616e63650118000801506f626a6563745f6372656174696f6e5f6c6973741d0201845665633c446174614f626a6563744372656174696f6e506172616d65746572733e00015865787065637465645f646174615f73697a655f66656518011c42616c616e636500001d020000022102002102083870616c6c65745f73746f7261676570446174614f626a6563744372656174696f6e506172616d6574657273000008011073697a6528010c75363400013c697066735f636f6e74656e745f696430011c5665633c75383e00002502083870616c6c65745f73746f7261676568446973747269627574696f6e4275636b657449645265636f72640868446973747269627574696f6e4275636b657446616d696c79496401285c446973747269627574696f6e4275636b6574496e646578012800080174646973747269627574696f6e5f6275636b65745f66616d696c795f6964280168446973747269627574696f6e4275636b657446616d696c794964000164646973747269627574696f6e5f6275636b65745f696e64657828015c446973747269627574696f6e4275636b6574496e6465780000290204184f7074696f6e0404540119020108104e6f6e6500000010536f6d650400190200000100002d02042042547265654d617008044b0128045601bd010004003102000000310200000235020035020000040828bd01003902042042547265655365740404540125020004003d020000003d0200000225020041020c3870616c6c65745f636f6e74656e74147479706573744368616e6e656c557064617465506172616d65746572735265636f7264103453746f7261676541737365747301190230446174614f626a65637449640128204d656d626572496401281c42616c616e63650118001801406173736574735f746f5f75706c6f6164290201544f7074696f6e3c53746f726167654173736574733e0001206e65775f6d6574613101013c4f7074696f6e3c5665633c75383e3e0001406173736574735f746f5f72656d6f76656901015842547265655365743c446174614f626a65637449643e000134636f6c6c61626f7261746f7273450201cc4f7074696f6e3c42547265654d61703c4d656d62657249642c204368616e6e656c4167656e745065726d697373696f6e733e3e00019465787065637465645f646174615f6f626a6563745f73746174655f626c6f61745f626f6e6418011c42616c616e636500016c73746f726167655f6275636b6574735f6e756d5f7769746e6573730102012c4f7074696f6e3c7533323e0000450204184f7074696f6e040454012d020108104e6f6e6500000010536f6d6504002d02000001000049020c3870616c6c65745f636f6e74656e7414747970657374566964656f4372656174696f6e506172616d65746572735265636f72640c3453746f72616765417373657473011902544e667449737375616e6365506172616d65746572730109021c42616c616e6365011800180118617373657473290201544f7074696f6e3c53746f726167654173736574733e0001106d6574613101013c4f7074696f6e3c5665633c75383e3e0001386175746f5f69737375655f6e66744d0201744f7074696f6e3c4e667449737375616e6365506172616d65746572733e00017c65787065637465645f766964656f5f73746174655f626c6f61745f626f6e6418011c42616c616e636500019465787065637465645f646174615f6f626a6563745f73746174655f626c6f61745f626f6e6418011c42616c616e636500016c73746f726167655f6275636b6574735f6e756d5f7769746e65737310010c75333200004d0204184f7074696f6e0404540109020108104e6f6e6500000010536f6d6504000902000001000051020c3870616c6c65745f636f6e74656e741474797065736c566964656f557064617465506172616d65746572735265636f7264103453746f7261676541737365747301190230446174614f626a65637449640128544e667449737375616e6365506172616d65746572730109021c42616c616e63650118001801406173736574735f746f5f75706c6f6164290201544f7074696f6e3c53746f726167654173736574733e0001206e65775f6d6574613101013c4f7074696f6e3c5665633c75383e3e0001406173736574735f746f5f72656d6f76656901015842547265655365743c446174614f626a65637449643e0001386175746f5f69737375655f6e66744d0201744f7074696f6e3c4e667449737375616e6365506172616d65746572733e00019465787065637465645f646174615f6f626a6563745f73746174655f626c6f61745f626f6e6418011c42616c616e636500016c73746f726167655f6275636b6574735f6e756d5f7769746e6573730102012c4f7074696f6e3c7533323e00005502042042547265654d617008044b010804560159020004006502000000590204204254726565536574040454015d0200040061020000005d02143870616c6c65745f636f6e74656e742c7065726d697373696f6e733463757261746f725f67726f7570386974657261626c655f656e756d735c436f6e74656e744d6f6465726174696f6e416374696f6e0001202448696465566964656f0000002c486964654368616e6e656c000100684368616e67654368616e6e656c466561747572655374617475730400d50101585061757361626c654368616e6e656c466561747572650002002c44656c657465566964656f0003003444656c6574654368616e6e656c0004004444656c657465566964656f4173736574730400980110626f6f6c0005006c44656c6574654e6f6e566964656f4368616e6e656c417373657473000600585570646174654368616e6e656c4e66744c696d6974730007000061020000025d02006502000002690200690200000408085902006d020c3870616c6c65745f636f6e74656e74147479706573705472616e73666572436f6d6d69746d656e74506172616d65746572730c5c4368616e6e656c436f6c6c61626f7261746f72734d6170012d021c42616c616e63650118285472616e7366657249640128000c01446e65775f636f6c6c61626f7261746f72732d02015c4368616e6e656c436f6c6c61626f7261746f72734d6170000114707269636518011c42616c616e636500012c7472616e736665725f69642801285472616e736665724964000071020c3870616c6c65745f636f6e74656e74147479706573905570646174654368616e6e656c5061796f757473506172616d65746572735265636f72640c7c4368616e6e656c5061796f7574735061796c6f6164506172616d65746572730175021c42616c616e636501181048617368012c00140128636f6d6d69746d656e74790201304f7074696f6e3c486173683e00011c7061796c6f61647d02019c4f7074696f6e3c4368616e6e656c5061796f7574735061796c6f6164506172616d65746572733e00014c6d696e5f636173686f75745f616c6c6f7765644501013c4f7074696f6e3c42616c616e63653e00014c6d61785f636173686f75745f616c6c6f7765644501013c4f7074696f6e3c42616c616e63653e0001606368616e6e656c5f636173686f7574735f656e61626c6564810201304f7074696f6e3c626f6f6c3e000075020c3870616c6c65745f636f6e74656e74147479706573944368616e6e656c5061796f7574735061796c6f6164506172616d65746572735265636f7264041c42616c616e63650118000c01586f626a6563745f6372656174696f6e5f706172616d7321020170446174614f626a6563744372656174696f6e506172616d657465727300015865787065637465645f646174615f73697a655f66656518011c42616c616e636500019465787065637465645f646174615f6f626a6563745f73746174655f626c6f61745f626f6e6418011c42616c616e63650000790204184f7074696f6e040454012c0108104e6f6e6500000010536f6d6504002c00000100007d0204184f7074696f6e0404540175020108104e6f6e6500000010536f6d65040075020000010000810204184f7074696f6e04045401980108104e6f6e6500000010536f6d65040098000001000085020c3870616c6c65745f636f6e74656e741474797065735c4368616e6e656c46756e647344657374696e6174696f6e04244163636f756e74496401000108244163636f756e74496404000001244163636f756e74496400000034436f756e63696c4275646765740001000089020c3870616c6c65745f636f6e74656e74147479706573384e66744c696d6974506572696f64000108144461696c79000000185765656b6c79000100008d02083870616c6c65745f73746f72616765205261774576656e74303c53746f726167654275636b65744964012820576f726b65724964012830446174614f626a656374496401284055706c6f6164506172616d65746572730191021442616749640195023044796e616d69634261674964019d02244163636f756e74496401001c42616c616e6365011868446973747269627574696f6e4275636b657446616d696c794964012850446973747269627574696f6e4275636b657449640125025c446973747269627574696f6e4275636b6574496e64657801287044796e616d69634261674372656174696f6e506172616d657465727301a10201a85053746f726167654275636b657443726561746564140028013c53746f726167654275636b657449640000350101404f7074696f6e3c576f726b657249643e0000980110626f6f6c000028010c753634000028010c75363400001c94456d697473206f6e206372656174696e67207468652073746f72616765206275636b65742e18506172616d734c2d2073746f72616765206275636b6574204944402d20696e766974656420776f726b65726c2d20666c61672022616363657074696e675f6e65775f6261677322642d2073697a65206c696d697420666f7220766f75636865722c702d206f626a65637473206c696d697420666f7220766f75636865722c7c53746f726167654275636b6574496e7669746174696f6e41636365707465640c0028013c53746f726167654275636b657449640000280120576f726b6572496400000001244163636f756e744964000114c4456d697473206f6e20616363657074696e67207468652073746f72616765206275636b657420696e7669746174696f6e2e18506172616d734c2d2073746f72616765206275636b65742049444c2d20696e766974656420776f726b65722049445c2d207472616e736163746f72206163636f756e742049446c53746f726167654275636b65747355706461746564466f724261670c0095020114426167496400006901016442547265655365743c53746f726167654275636b657449643e00006901016442547265655365743c53746f726167654275636b657449643e000214a8456d697473206f6e207570646174696e672073746f72616765206275636b65747320666f72206261672e18506172616d73202d20626167204944982d2073746f72616765206275636b65747320746f2061646420494420636f6c6c656374696f6ea42d2073746f72616765206275636b65747320746f2072656d6f766520494420636f6c6c656374696f6e4c446174614f626a6563747355706c6f616465640c006901015842547265655365743c446174614f626a65637449643e00009102014055706c6f6164506172616d6574657273000018011c42616c616e636500031480456d697473206f6e2075706c6f6164696e672064617461206f626a656374732e18506172616d73482d2064617461206f626a6563747320494473782d20696e697469616c2075706c6f6164696e6720706172616d6574657273782d20737461746520626c6f617420626f6e6420666f72206f626a656374736853746f726167654f70657261746f724d657461646174615365740c0028013c53746f726167654275636b657449640000280120576f726b65724964000030011c5665633c75383e000414bc456d697473206f6e2073657474696e67207468652073746f72616765206f70657261746f72206d657461646174612e18506172616d734c2d2073746f72616765206275636b65742049444c2d20696e766974656420776f726b6572204944282d206d657461646174617453746f726167654275636b6574566f75636865724c696d6974735365740c0028013c53746f726167654275636b65744964000028010c753634000028010c753634000514cc456d697473206f6e2073657474696e67207468652073746f72616765206275636b657420766f7563686572206c696d6974732e18506172616d734c2d2073746f72616765206275636b6574204944782d206e657720746f74616c206f626a656374732073697a65206c696d6974802d206e657720746f74616c206f626a65637473206e756d626572206c696d69746850656e64696e67446174614f626a656374734163636570746564100028013c53746f726167654275636b657449640000280120576f726b65724964000095020114426167496400006901015842547265655365743c446174614f626a65637449643e000618a0456d697473206f6e20616363657074696e672070656e64696e672064617461206f626a656374732e18506172616d734c2d2073746f72616765206275636b6574204944842d20776f726b6572204944202873746f726167652070726f766964657220494429202d20626167204944582d2070656e64696e672064617461206f626a656374738053746f726167654275636b6574496e7669746174696f6e43616e63656c6c6564040028013c53746f726167654275636b6574496400070cc8456d697473206f6e2063616e63656c6c696e67207468652073746f72616765206275636b657420696e7669746174696f6e2e18506172616d734c2d2073746f72616765206275636b65742049447053746f726167654275636b65744f70657261746f72496e7669746564080028013c53746f726167654275636b657449640000280120576f726b65724964000810c0456d697473206f6e207468652073746f72616765206275636b6574206f70657261746f7220696e7669746174696f6e2e18506172616d734c2d2073746f72616765206275636b6574204944a82d206f70657261746f7220776f726b6572204944202873746f726167652070726f7669646572204944297053746f726167654275636b65744f70657261746f7252656d6f766564040028013c53746f726167654275636b6574496400090cb4456d697473206f6e207468652073746f72616765206275636b6574206f70657261746f722072656d6f76616c2e18506172616d734c2d2073746f72616765206275636b65742049446c55706c6f6164696e67426c6f636b537461747573557064617465640400980110626f6f6c000a0c0501456d697473206f6e206368616e67696e67207468652073697a652d62617365642070726963696e67206f66206e6577206f626a656374732075706c6f616465642e18506172616d73302d206e6577207374617475737c446174614f626a6563745065724d6567616279746546656555706461746564040018011c42616c616e6365000b0c0501456d697473206f6e206368616e67696e67207468652073697a652d62617365642070726963696e67206f66206e6577206f626a656374732075706c6f616465642e18506172616d734c2d206e657720646174612073697a65206665658053746f726167654275636b6574735065724261674c696d697455706461746564040010010c753332000c0cf4456d697473206f6e206368616e67696e6720746865202253746f72616765206275636b657473207065722062616722206e756d626572206c696d69742e18506172616d732c2d206e6577206c696d69749453746f726167654275636b657473566f75636865724d61784c696d69747355706461746564080028010c753634000028010c753634000d10ec456d697473206f6e206368616e67696e6720746865202253746f72616765206275636b65747320766f7563686572206d6178206c696d697473222e18506172616d73602d206e6577206f626a656374732073697a65206c696d6974682d206e6577206f626a65637473206e756d626572206c696d697440446174614f626a656374734d6f7665640c00950201144261674964000095020114426167496400006901015842547265655365743c446174614f626a65637449643e000e14a8456d697473206f6e206d6f76696e672064617461206f626a65637473206265747765656e20626167732e18506172616d733c2d20736f7572636520626167204944502d2064657374696e6174696f6e20626167204944442d2064617461206f626a6563742049447348446174614f626a6563747344656c657465640c000001244163636f756e744964000095020114426167496400006901015842547265655365743c446174614f626a65637449643e000f14a4456d697473206f6e2064617461206f626a656374732064656c6574696f6e2066726f6d20626167732e18506172616d73942d206163636f756e7420494420666f722074686520737461746520626c6f617420626f6e64202d20626167204944442d2064617461206f626a656374204944736853746f726167654275636b657453746174757355706461746564080028013c53746f726167654275636b657449640000980110626f6f6c00101098456d697473206f6e2073746f72616765206275636b657420737461747573207570646174652e18506172616d734c2d2073746f72616765206275636b6574204944302d206e6577207374617475733c557064617465426c61636b6c6973740800a502014442547265655365743c5665633c75383e3e0000a502014442547265655365743c5665633c75383e3e001110c4456d697473206f6e207570646174696e672074686520626c61636b6c69737420776974682064617461206861736865732e18506172616d73942d2068617368657320746f2072656d6f76652066726f6d2074686520626c61636b6c697374802d2068617368657320746f2061646420746f2074686520626c61636b6c6973744444796e616d696342616744656c6574656404009d02013044796e616d6963426167496400120c80456d697473206f6e2064656c6574696e6720612064796e616d6963206261672e18506172616d73402d2064796e616d6963206261672049444444796e616d6963426167437265617465640800a102017044796e616d69634261674372656174696f6e506172616d657465727300006901015842547265655365743c446174614f626a65637449643e00131080456d697473206f6e206372656174696e6720612064796e616d6963206261672e18506172616d73842d2064796e616d696320626167206372656174696f6e20706172616d65746572736c2d2075706c6f616465642064617461206f626a656374732069647338566f75636865724368616e676564080028013c53746f726167654275636b657449640000ad02011c566f7563686572001410cc456d697473206f6e206368616e67696e672074686520766f756368657220666f7220612073746f72616765206275636b65742e18506172616d734c2d2073746f72616765206275636b6574204944342d206e657720766f75636865725053746f726167654275636b657444656c65746564040028013c53746f726167654275636b6574496400150c84456d697473206f6e2073746f72616765206275636b65742064656c6574696e672e18506172616d734c2d2073746f72616765206275636b6574204944dc4e756d6265724f6653746f726167654275636b657473496e44796e616d69634261674372656174696f6e506f6c696379557064617465640800b102013844796e616d696342616754797065000010010c7533320016103d01456d697473206f6e207570646174696e6720746865206e756d626572206f662073746f72616765206275636b65747320696e2064796e616d696320626167206372656174696f6e20706f6c6963792e18506172616d73482d2064796e616d69632062616720747970657c2d206e6577206e756d626572206f662073746f72616765206275636b6574737c446973747269627574696f6e4275636b657446616d696c79437265617465640400280168446973747269627574696f6e4275636b657446616d696c79496400170cb4456d697473206f6e206372656174696e6720646973747269627574696f6e206275636b65742066616d696c792e18506172616d737c2d20646973747269627574696f6e2066616d696c79206275636b65742049447c446973747269627574696f6e4275636b657446616d696c7944656c657465640400280168446973747269627574696f6e4275636b657446616d696c79496400180cb4456d697473206f6e2064656c6574696e6720646973747269627574696f6e206275636b65742066616d696c792e18506172616d737c2d20646973747269627574696f6e2066616d696c79206275636b657420494464446973747269627574696f6e4275636b6574437265617465640c00280168446973747269627574696f6e4275636b657446616d696c7949640000980110626f6f6c000025020150446973747269627574696f6e4275636b6574496400191498456d697473206f6e206372656174696e6720646973747269627574696f6e206275636b65742e18506172616d737c2d20646973747269627574696f6e206275636b65742066616d696c79204944502d20616363657074696e67206e65772062616773602d20646973747269627574696f6e206275636b65742049447c446973747269627574696f6e4275636b657453746174757355706461746564080025020150446973747269627574696f6e4275636b657449640000980110626f6f6c001a10ec456d697473206f6e2073746f72616765206275636b657420737461747573207570646174652028616363657074696e67206e65772062616773292e18506172616d73602d20646973747269627574696f6e206275636b6574204944842d206e6577207374617475732028616363657074696e67206e657720626167732964446973747269627574696f6e4275636b657444656c65746564040025020150446973747269627574696f6e4275636b65744964001b0c98456d697473206f6e2064656c6574696e6720646973747269627574696f6e206275636b65742e18506172616d73602d20646973747269627574696f6e206275636b657420494480446973747269627574696f6e4275636b65747355706461746564466f7242616710009502011442616749640000280168446973747269627574696f6e4275636b657446616d696c79496400006901018442547265655365743c446973747269627574696f6e4275636b6574496e6465783e00006901018442547265655365743c446973747269627574696f6e4275636b6574496e6465783e001c14bc456d697473206f6e207570646174696e6720646973747269627574696f6e206275636b65747320666f72206261672e18506172616d73202d20626167204944982d2073746f72616765206275636b65747320746f2061646420494420636f6c6c656374696f6ea42d2073746f72616765206275636b65747320746f2072656d6f766520494420636f6c6c656374696f6e94446973747269627574696f6e4275636b6574735065724261674c696d697455706461746564040010010c753332001d0c0901456d697473206f6e206368616e67696e67207468652022446973747269627574696f6e206275636b657473207065722062616722206e756d626572206c696d69742e18506172616d732c2d206e6577206c696d697474446973747269627574696f6e4275636b65744d6f646555706461746564080025020150446973747269627574696f6e4275636b657449640000980110626f6f6c001e10e0456d697473206f6e2073746f72616765206275636b6574206d6f6465207570646174652028646973747269627574696e6720666c6167292e18506172616d73602d20646973747269627574696f6e206275636b6574204944382d20646973747269627574696e67a446616d696c696573496e44796e616d69634261674372656174696f6e506f6c696379557064617465640800b102013844796e616d6963426167547970650000b50201a442547265654d61703c446973747269627574696f6e4275636b657446616d696c7949642c207533323e001f102d01456d697473206f6e2064796e616d696320626167206372656174696f6e20706f6c696379207570646174652028646973747269627574696f6e206275636b65742066616d696c696573292e18506172616d73482d2064796e616d6963206261672074797065742d2066616d696c69657320616e64206275636b6574206e756d6265727384446973747269627574696f6e4275636b65744f70657261746f72496e7669746564080025020150446973747269627574696f6e4275636b657449640000280120576f726b657249640020101101456d697473206f6e206372656174696e67206120646973747269627574696f6e206275636b657420696e7669746174696f6e20666f7220746865206f70657261746f722e18506172616d73602d20646973747269627574696f6e206275636b65742049442c2d20776f726b657220494494446973747269627574696f6e4275636b6574496e7669746174696f6e43616e63656c6c6564080025020150446973747269627574696f6e4275636b657449640000280120576f726b657249640021101501456d697473206f6e2063616e63656c696e67206120646973747269627574696f6e206275636b657420696e7669746174696f6e20666f7220746865206f70657261746f722e18506172616d73602d20646973747269627574696f6e206275636b6574204944502d206f70657261746f7220776f726b657220494490446973747269627574696f6e4275636b6574496e7669746174696f6e41636365707465640800280120576f726b65724964000025020150446973747269627574696f6e4275636b657449640022101501456d697473206f6e20616363657074696e67206120646973747269627574696f6e206275636b657420696e7669746174696f6e20666f7220746865206f70657261746f722e18506172616d732c2d20776f726b6572204944602d20646973747269627574696f6e206275636b657420494474446973747269627574696f6e4275636b65744d657461646174615365740c00280120576f726b65724964000025020150446973747269627574696f6e4275636b65744964000030011c5665633c75383e0023140101456d697473206f6e2073657474696e6720746865206d65746164617461206279206120646973747269627574696f6e206275636b6574206f70657261746f722e18506172616d732c2d20776f726b6572204944602d20646973747269627574696f6e206275636b6574204944282d206d6574616461746184446973747269627574696f6e4275636b65744f70657261746f7252656d6f766564080025020150446973747269627574696f6e4275636b657449640000280120576f726b65724964002410c8456d697473206f6e2074686520646973747269627574696f6e206275636b6574206f70657261746f722072656d6f76616c2e18506172616d73602d20646973747269627574696f6e206275636b6574204944842d20646973747269627574696f6e206275636b6574206f70657261746f722049448c446973747269627574696f6e4275636b657446616d696c794d657461646174615365740800280168446973747269627574696f6e4275636b657446616d696c794964000030011c5665633c75383e002510f8456d697473206f6e2073657474696e6720746865206d65746164617461206279206120646973747269627574696f6e206275636b65742066616d696c792e18506172616d737c2d20646973747269627574696f6e206275636b65742066616d696c79204944282d206d6574616461746190446174614f626a6563745374617465426c6f6174426f6e6456616c756555706461746564040018011c42616c616e636500260ccc456d697473206f6e207570646174696e67207468652064617461206f626a65637420737461746520626c6f617420626f6e642e18506172616d73602d20737461746520626c6f617420626f6e642076616c756548446174614f626a65637473557064617465640c009102014055706c6f6164506172616d657465727300006901015842547265655365743c446174614f626a65637449643e00006901015842547265655365743c446174614f626a65637449643e0027140d01456d697473206f6e2073746f7261676520617373657473206265696e672075706c6f6164656420616e642064656c65746564206174207468652073616d652074696d6518506172616d73482d2055706c6f6164506172616d6574657273742d20496473206f66207468652075706c6f61646564206f626a65637473702d20496473206f66207468652072656d6f766564206f626a656374735c53746f726167654f70657261746f7252656d61726b65640c00280120576f726b65724964000028013c53746f726167654275636b65744964000030011c5665633c75383e002814a4456d697473206f6e2053746f72616765204f70657261746f72206d616b696e6720612072656d61726b18506172616d73582d206f70657261746f72277320776f726b65722069644c2d2073746f72616765206275636b6574206964402d2072656d61726b206d65737361676570446973747269627574696f6e4f70657261746f7252656d61726b65640c00280120576f726b65724964000025020150446973747269627574696f6e4275636b65744964000030011c5665633c75383e002914b8456d697473206f6e20446973747269627574696f6e204f70657261746f72206d616b696e6720612072656d61726b18506172616d73582d206f70657261746f72277320776f726b6572206964602d20646973747269627574696f6e206275636b6574206964402d2072656d61726b206d6573736167650c5c4576656e747320666f722074686973206d6f64756c652e003853746f72616765206576656e74739102083870616c6c65745f73746f726167655855706c6f6164506172616d65746572735265636f72640c144261674964019502244163636f756e74496401001c42616c616e63650118001401186261675f69649502011442616749640001506f626a6563745f6372656174696f6e5f6c6973741d0201845665633c446174614f626a6563744372656174696f6e506172616d65746572733e00018873746174655f626c6f61745f626f6e645f736f757263655f6163636f756e745f69640001244163636f756e74496400015865787065637465645f646174615f73697a655f66656518011c42616c616e636500019465787065637465645f646174615f6f626a6563745f73746174655f626c6f61745f626f6e6418011c42616c616e636500009502083870616c6c65745f73746f726167652442616749645479706508204d656d62657249640128244368616e6e656c4964012801081853746174696304009902012c53746174696342616749640000001c44796e616d696304009d02019444796e616d69634261674964547970653c4d656d62657249642c204368616e6e656c49643e000100009902083870616c6c65745f73746f726167652c53746174696342616749640001081c436f756e63696c00000030576f726b696e6747726f7570040099010130576f726b696e6747726f7570000100009d02083870616c6c65745f73746f726167654044796e616d696342616749645479706508204d656d62657249640128244368616e6e656c496401280108184d656d62657204002801204d656d62657249640000001c4368616e6e656c04002801244368616e6e656c496400010000a102083870616c6c65745f73746f726167657844796e4261674372656174696f6e506172616d65746572735265636f726414144261674964019d02244163636f756e74496401001c42616c616e636501183c53746f726167654275636b65744964012850446973747269627574696f6e4275636b65744964012502001c01186261675f69649d02011442616749640001506f626a6563745f6372656174696f6e5f6c6973741d0201845665633c446174614f626a6563744372656174696f6e506172616d65746572733e00018873746174655f626c6f61745f626f6e645f736f757263655f6163636f756e745f69640001244163636f756e74496400015865787065637465645f646174615f73697a655f66656518011c42616c616e636500019465787065637465645f646174615f6f626a6563745f73746174655f626c6f61745f626f6e6418011c42616c616e636500013c73746f726167655f6275636b6574736901016442547265655365743c53746f726167654275636b657449643e000150646973747269627574696f6e5f6275636b6574733902017842547265655365743c446973747269627574696f6e4275636b657449643e0000a502042042547265655365740404540130000400a902000000a9020000023000ad02083870616c6c65745f73746f726167651c566f7563686572000010012873697a655f6c696d697428010c7536340001346f626a656374735f6c696d697428010c75363400012473697a655f7573656428010c7536340001306f626a656374735f7573656428010c7536340000b102083870616c6c65745f73746f726167653844796e616d696342616754797065000108184d656d6265720000001c4368616e6e656c00010000b502042042547265654d617008044b012804560110000400b902000000b902000002bd0200bd0200000408281000c1020c5070616c6c65745f70726f6a6563745f746f6b656e186576656e7473205261774576656e74281c42616c616e63650118284a6f7942616c616e636501181c546f6b656e49640128244163636f756e7449640100204d656d626572496401282c426c6f636b4e756d6265720110385472616e73666572506f6c69637901c5025c546f6b656e49737375616e6365506172616d657465727301c9024856616c6964617465645472616e736665727301fd0224546f6b656e53616c65012103014858546f6b656e416d6f756e745472616e73666572726564100028011c546f6b656e496400002801204d656d62657249640000fd02014856616c6964617465645472616e7366657273000030011c5665633c75383e000018ac546f6b656e20616d6f756e74206973207472616e736665727265642066726f6d2073726320746f206473741c506172616d733a482d20746f6b656e206964656e746966696572482d20736f75726365206d656d62657220696459012d206d617020636f6e7461696e696e672076616c696461746564206f7574707574732028616d6f756e7420696e646578656420627920286d656d6265725f6964202b206163636f756e74206578697374616e63652929542d207472616e736665722773206d6574616461746178546f6b656e416d6f756e745472616e736665727265644279497373756572100028011c546f6b656e496400002801204d656d62657249640000fd02014856616c6964617465645472616e7366657273000030011c5665633c75383e00012088546f6b656e20616d6f756e74207472616e73666572726564206279206973737565721c506172616d733a482d20746f6b656e206964656e7469666965726c2d20736f75726365202869737375657229206d656d626572206964882d206d617020636f6e7461696e696e672076616c696461746564206f7574707574732d01202028616d6f756e742c206f70742e2076657374696e67207363686564756c652c206f70742e2076657374696e6720636c65616e7570206b657929206461746120696e6465786564206279882020286163636f756e745f6964202b206163636f756e74206578697374616e636529542d207472616e736665722773206d6574616461746160506174726f6e61676552617465446563726561736564546f080028011c546f6b656e496400002503012c5065727175696e74696c6c00021060506174726f6e6167652072617465206465637265617365641c506172616d733a482d20746f6b656e206964656e746966696572502d206e657720706174726f6e616765207261746558506174726f6e616765437265646974436c61696d65640c0028011c546f6b656e4964000018011c42616c616e636500002801204d656d62657249640003148c506174726f6e6167652063726564697420636c61696d65642062792063726561746f721c506172616d733a482d20746f6b656e206964656e7469666965723c2d2063726564697420616d6f756e742c2d206d656d62657220696448526576656e756553706c6974497373756564100028011c546f6b656e4964000010012c426c6f636b4e756d626572000010012c426c6f636b4e756d62657200001801284a6f7942616c616e636500041850526576656e75652053706c6974206973737565641c506172616d733a482d20746f6b656e206964656e746966696572782d207374617274696e6720626c6f636b20666f72207468652073706c69745c2d206475726174696f6e206f66207468652073706c6974742d204a4f5920616c6c6f636174656420666f72207468652073706c697454526576656e756553706c697446696e616c697a65640c0028011c546f6b656e496400000001244163636f756e74496400001801284a6f7942616c616e63650005145c526576656e75652053706c69742066696e616c697a65641c506172616d733a482d20746f6b656e206964656e746966696572a42d207265636f76657279206163636f756e7420666f7220746865206c6566746f7665722066756e6473402d206c6566746f7665722066756e64735c55736572506172746963697061746564496e53706c6974140028011c546f6b656e496400002801204d656d6265724964000018011c42616c616e636500001801284a6f7942616c616e63650000100138526576656e756553706c6974496400061c8855736572207061727469706174656420696e206120726576656e75652073706c69741c506172616d733a482d20746f6b656e206964656e746966696572642d207061727469636970616e742773206d656d6265722069647c2d207573657220616c6c6f6361746564207374616b65642062616c616e63657c2d206469766964656e6420616d6f756e7420284a4f5929206772616e746564682d20726576656e75652073706c6974206964656e74696669657240526576656e756553706c69744c6566740c0028011c546f6b656e496400002801204d656d6265724964000018011c42616c616e63650007145c55736572206c65667420726576656e75652073706c69741c506172616d733a482d20746f6b656e206964656e746966696572702d2065782d7061727469636970616e742773206d656d626572206964442d20616d6f756e7420756e7374616b6564544d656d6265724a6f696e656457686974656c6973740c0028011c546f6b656e496400002801204d656d62657249640000c50201385472616e73666572506f6c6963790008145c4d656d626572206a6f696e65642077686974656c6973741c506172616d733a482d20746f6b656e206964656e7469666965722c2d206d656d626572206964642d206f6e676f696e67207472616e7366657220706f6c6963793c4163636f756e744475737465644279100028011c546f6b656e496400002801204d656d626572496400000001244163636f756e7449640000c50201385472616e73666572506f6c696379000918384163636f756e74204475737465641c506172616d733a482d20746f6b656e206964656e7469666965729c2d206964206f662074686520647573746564206163636f756e74206f776e6572206d656d6265728c2d206163636f756e7420746861742063616c6c6564207468652065787472696e736963402d206f6e676f696e6720706f6c69637934546f6b656e4465697373756564040028011c546f6b656e4964000a0c38546f6b656e2044656973737565641c506172616d733a282d20746f6b656e2069642c546f6b656e497373756564080028011c546f6b656e49640000c902015c546f6b656e49737375616e6365506172616d6574657273000b1030546f6b656e204973737565641c506172616d733a282d20746f6b656e2069646c2d20746f6b656e2069737375616e636520706172616d657465727350546f6b656e53616c65496e697469616c697a6564100028011c546f6b656e4964000010012c546f6b656e53616c654964000021030124546f6b656e53616c6500003101013c4f7074696f6e3c5665633c75383e3e000c1864546f6b652053616c652077617320496e697469616c697a65641c506172616d733a282d20746f6b656e2069643c2d20746f6b656e2073616c65206964442d20746f6b656e2073616c652064617461542d20746f6b656e2073616c65206d65746164617461605570636f6d696e67546f6b656e53616c6555706461746564100028011c546f6b656e4964000010012c546f6b656e53616c65496400000102014c4f7074696f6e3c426c6f636b4e756d6265723e00000102014c4f7074696f6e3c426c6f636b4e756d6265723e000d187c5570636f6d696e6720546f6b656e2053616c652077617320557064617465641c506172616d733a282d20746f6b656e2069643c2d20746f6b656e2073616c65206964582d206e65772073616c6520737461727420626c6f636b4c2d206e65772073616c65206475726174696f6e54546f6b656e735075726368617365644f6e53616c65100028011c546f6b656e4964000010012c546f6b656e53616c654964000018011c42616c616e636500002801204d656d6265724964000e1860546f6b656e7320507572636861736564204f6e2053616c651c506172616d733a282d20746f6b656e2069643c2d20746f6b656e2073616c65206964702d20616d6f756e74206f6620746f6b656e73207075726368617365644c2d2062757965722773206d656d62657220696448546f6b656e53616c6546696e616c697a6564100028011c546f6b656e4964000010012c546f6b656e53616c654964000018011c42616c616e636500001801284a6f7942616c616e6365000f1850546f6b656e2053616c652046696e616c697a65641c506172616d733a282d20746f6b656e2069643c2d20746f6b656e2073616c652069648c2d20616d6f756e74206f6620756e736f6c6420746f6b656e73207265636f7665726564642d20616d6f756e74206f66204a4f5920636f6c6c6563746564945472616e73666572506f6c6963794368616e676564546f5065726d697373696f6e6c657373040028011c546f6b656e496400100ca45472616e7366657220506f6c696379204368616e67656420546f205065726d697373696f6e6c6573731c506172616d733a282d20746f6b656e20696430546f6b656e734275726e65640c0028011c546f6b656e496400002801204d656d6265724964000018011c42616c616e636500111434546f6b656e73204275726e65641c506172616d733a282d20746f6b656e2069642c2d206d656d626572206964642d206e756d626572206f6620746f6b656e73206275726e6564085c4576656e747320666f722074686973206d6f64756c652e00c5020c5070616c6c65745f70726f6a6563745f746f6b656e147479706573385472616e73666572506f6c696379041048617368012c0108385065726d697373696f6e6c657373000000305065726d697373696f6e656404002c01104861736800010000c9020c5070616c6c65745f70726f6a6563745f746f6b656e1474797065735c546f6b656e49737375616e6365506172616d6574657273101048617368012c3c546f6b656e416c6c6f636174696f6e01cd02505472616e73666572506f6c696379506172616d7301dd02204d656d6265724964012800140148696e697469616c5f616c6c6f636174696f6eed02018c42547265654d61703c4d656d62657249642c20546f6b656e416c6c6f636174696f6e3e00011873796d626f6c2c01104861736800013c7472616e736665725f706f6c696379dd0201505472616e73666572506f6c696379506172616d73000138706174726f6e6167655f72617465f9020128596561726c7952617465000148726576656e75655f73706c69745f72617465d502011c5065726d696c6c0000cd020c5070616c6c65745f70726f6a6563745f746f6b656e1474797065733c546f6b656e416c6c6f636174696f6e081c42616c616e636501185456657374696e675363686564756c65506172616d7301d10200080118616d6f756e7418011c42616c616e636500015c76657374696e675f7363686564756c655f706172616d73d90201744f7074696f6e3c56657374696e675363686564756c65506172616d733e0000d1020c5070616c6c65745f70726f6a6563745f746f6b656e1474797065735456657374696e675363686564756c65506172616d73042c426c6f636b4e756d6265720110000c015c6c696e6561725f76657374696e675f6475726174696f6e10012c426c6f636b4e756d62657200014c626c6f636b735f6265666f72655f636c69666610012c426c6f636b4e756d62657200015c636c6966665f616d6f756e745f70657263656e74616765d502011c5065726d696c6c0000d5020c3473705f61726974686d65746963287065725f7468696e67731c5065726d696c6c0000040010010c7533320000d90204184f7074696f6e04045401d1020108104e6f6e6500000010536f6d650400d1020000010000dd020c5070616c6c65745f70726f6a6563745f746f6b656e147479706573505472616e73666572506f6c696379506172616d73043c57686974656c697374506172616d7301e1020108385065726d697373696f6e6c657373000000305065726d697373696f6e65640400e102013c57686974656c697374506172616d7300010000e1020c5070616c6c65745f70726f6a6563745f746f6b656e1474797065733c57686974656c697374506172616d73081048617368012c7053696e676c65446174614f626a65637455706c6f6164506172616d7301e50200080128636f6d6d69746d656e742c01104861736800011c7061796c6f6164e90201904f7074696f6e3c53696e676c65446174614f626a65637455706c6f6164506172616d733e0000e5020c5070616c6c65745f70726f6a6563745f746f6b656e1474797065737053696e676c65446174614f626a65637455706c6f6164506172616d7304284a6f7942616c616e63650118000c01586f626a6563745f6372656174696f6e5f706172616d7321020170446174614f626a6563744372656174696f6e506172616d657465727300015865787065637465645f646174615f73697a655f6665651801284a6f7942616c616e636500019465787065637465645f646174615f6f626a6563745f73746174655f626c6f61745f626f6e641801284a6f7942616c616e63650000e90204184f7074696f6e04045401e5020108104e6f6e6500000010536f6d650400e5020000010000ed02042042547265654d617008044b0128045601cd02000400f102000000f102000002f50200f5020000040828cd0200f9020c5070616c6c65745f70726f6a6563745f746f6b656e14747970657328596561726c795261746500000400d502011c5065726d696c6c0000fd020c5070616c6c65745f70726f6a6563745f746f6b656e147479706573245472616e736665727308204d656d62657249640101031c5061796d656e740105030004001503016c42547265654d61703c4d656d62657249642c205061796d656e743e000001030c5070616c6c65745f70726f6a6563745f746f6b656e1474797065732456616c69646174656404204d656d626572496401280108204578697374696e6704002801204d656d62657249640000002c4e6f6e4578697374696e6704002801204d656d62657249640001000005030c5070616c6c65745f70726f6a6563745f746f6b656e1474797065734056616c6964617465645061796d656e7404485061796d656e745769746856657374696e670109030008011c7061796d656e74090301485061796d656e745769746856657374696e6700016476657374696e675f636c65616e75705f63616e6469646174650d0301544f7074696f6e3c56657374696e67536f757263653e000009030c5070616c6c65745f70726f6a6563745f746f6b656e147479706573485061796d656e745769746856657374696e67081c42616c616e636501185456657374696e675363686564756c65506172616d7301d10200080118616d6f756e7418011c42616c616e636500014076657374696e675f7363686564756c65d90201744f7074696f6e3c56657374696e675363686564756c65506172616d733e00000d0304184f7074696f6e0404540111030108104e6f6e6500000010536f6d6504001103000001000011030c5070616c6c65745f70726f6a6563745f746f6b656e1474797065733456657374696e67536f7572636500010c3c496e697469616c49737375616e63650000001053616c65040010012c546f6b656e53616c654964000100384973737565725472616e73666572040028010c753634000200001503042042547265654d617008044b0101030456010503000400190300000019030000021d03001d0300000408010305030021030c5070616c6c65745f70726f6a6563745f746f6b656e14747970657324546f6b656e53616c6518284a6f7942616c616e636501181c42616c616e636501182c426c6f636b4e756d62657201105456657374696e675363686564756c65506172616d7301d102204d656d62657249640128244163636f756e744964010000280128756e69745f70726963651801284a6f7942616c616e63650001347175616e746974795f6c65667418011c42616c616e636500013c66756e64735f636f6c6c65637465641801284a6f7942616c616e6365000134746f6b656e735f736f757263652801204d656d62657249640001506561726e696e67735f64657374696e6174696f6e9401444f7074696f6e3c4163636f756e7449643e00012c73746172745f626c6f636b10012c426c6f636b4e756d6265720001206475726174696f6e10012c426c6f636b4e756d62657200015c76657374696e675f7363686564756c655f706172616d73d90201744f7074696f6e3c56657374696e675363686564756c65506172616d733e0001386361705f7065725f6d656d6265724501013c4f7074696f6e3c42616c616e63653e0001346175746f5f66696e616c697a65980110626f6f6c000025030c3473705f61726974686d65746963287065725f7468696e67732c5065727175696e74696c6c0000040028010c75363400002903085c70616c6c65745f70726f706f73616c735f656e67696e65205261774576656e740c2850726f706f73616c49640110204d656d626572496401282c426c6f636b4e756d626572011001185450726f706f73616c53746174757355706461746564080010012850726f706f73616c496400002d03016c50726f706f73616c5374617475733c426c6f636b4e756d6265723e0000106c456d697473206f6e2070726f706f73616c206372656174696f6e2e1c506172616d733a4c2d204964206f6620612070726f706f73616c2e582d204e65772070726f706f73616c207374617475732e5050726f706f73616c4465636973696f6e4d616465080010012850726f706f73616c496400003103014050726f706f73616c4465636973696f6e000110b0456d697473206f6e2067657474696e6720612070726f706f73616c20737461747573206465636973696f6e2e1c506172616d733a4c2d204964206f6620612070726f706f73616c2e4c2d2050726f706f73616c206465636973696f6e4050726f706f73616c4578656375746564080010012850726f706f73616c496400003903013c457865637574696f6e53746174757300021070456d697473206f6e2070726f706f73616c20657865637574696f6e2e1c506172616d733a6c2d204964206f66206120757064617465642070726f706f73616c2e702d2050726f706f73616c20657865637574696f6e207374617475732e14566f74656410002801204d656d6265724964000010012850726f706f73616c496400003d030120566f74654b696e64000030011c5665633c75383e00031880456d697473206f6e20766f74696e6720666f72207468652070726f706f73616c1c506172616d733a7c2d20566f746572202d206d656d626572206964206f66206120766f7465722e4c2d204964206f6620612070726f706f73616c2e3c2d204b696e64206f6620766f74652e302d20526174696f6e616c652e4450726f706f73616c43616e63656c6c656408002801204d656d6265724964000010012850726f706f73616c49640004108c456d697473206f6e20612070726f706f73616c206265696e672063616e63656c6c65641c506172616d733a6c2d204d656d626572204964206f66207468652070726f706f736572502d204964206f66207468652070726f706f73616c4050726f706f73657252656d61726b65640c002801204d656d6265724964000010012850726f706f73616c4964000030011c5665633c75383e00051084456d697473206f6e2070726f706f736572206d616b696e6720612072656d61726b342d2070726f706f736572206964342d2070726f706f73616c206964242d206d6573736167650c5c4576656e747320666f722074686973206d6f64756c652e005c50726f706f73616c7320656e67696e65206576656e74732d03105c70616c6c65745f70726f706f73616c735f656e67696e651474797065734470726f706f73616c5f73746174757365733850726f706f73616c537461747573042c426c6f636b4e756d6265720110010c184163746976650000004050656e64696e67457865637574696f6e040010012c426c6f636b4e756d6265720001006050656e64696e67436f6e737469747574696f6e616c697479000200003103105c70616c6c65745f70726f706f73616c735f656e67696e651474797065734470726f706f73616c5f73746174757365734050726f706f73616c4465636973696f6e00011c2043616e63656c65640000004443616e63656c6564427952756e74696d65000100185665746f65640002002052656a65637465640003001c536c61736865640004001c4578706972656400050020417070726f766564040035030160417070726f76656450726f706f73616c4465636973696f6e000600003503105c70616c6c65745f70726f706f73616c735f656e67696e651474797065734470726f706f73616c5f737461747573657360417070726f76656450726f706f73616c4465636973696f6e0001084050656e64696e67457865637574696f6e0000006050656e64696e67436f6e737469747574696f6e616c697479000100003903105c70616c6c65745f70726f706f73616c735f656e67696e651474797065734470726f706f73616c5f73746174757365733c457865637574696f6e5374617475730001082045786563757465640000003c457865637574696f6e4661696c65640401146572726f7230011c5665633c75383e000100003d030c5c70616c6c65745f70726f706f73616c735f656e67696e6514747970657320566f74654b696e640001101c417070726f76650000001852656a65637400010014536c6173680002001c4162737461696e000300004103086c70616c6c65745f70726f706f73616c735f64697363757373696f6e205261774576656e740c2054687265616449640128204d656d6265724964012818506f737449640128011434546872656164437265617465640800280120546872656164496400002801204d656d626572496400000464456d697473206f6e20746872656164206372656174696f6e2e2c506f7374437265617465641400280118506f7374496400002801204d656d626572496400002801205468726561644964000030011c5665633c75383e0000980110626f6f6c0001045c456d697473206f6e20706f7374206372656174696f6e2e2c506f7374557064617465641000280118506f7374496400002801204d656d626572496400002801205468726561644964000030011c5665633c75383e00020454456d697473206f6e20706f7374207570646174652e445468726561644d6f64654368616e6765640c0028012054687265616449640000450301785468726561644d6f64653c42547265655365743c4d656d62657249643e3e00002801204d656d626572496400030470456d697473206f6e20746872656164206d6f6465206368616e67652e2c506f737444656c6574656410002801204d656d6265724964000028012054687265616449640000280118506f737449640000980110626f6f6c00040454456d697473206f6e20706f73742064656c657465640c5c4576656e747320666f722074686973206d6f64756c652e005c50726f706f73616c7320656e67696e65206576656e747345030c6c70616c6c65745f70726f706f73616c735f64697363757373696f6e147479706573285468726561644d6f6465043c54687265616457686974656c6973740169010108104f70656e00000018436c6f73656404006901013c54687265616457686974656c697374000100004903085870616c6c65745f70726f706f73616c735f636f646578205261774576656e74106447656e6572616c50726f706f73616c506172616d6574657273014d034450726f706f73616c44657461696c734f660151032850726f706f73616c49640110205468726561644964012801043c50726f706f73616c43726561746564100010012850726f706f73616c496400004d03016447656e6572616c50726f706f73616c506172616d657465727300005103014450726f706f73616c44657461696c734f660000280120546872656164496400001858412070726f706f73616c2077617320637265617465641c506172616d733afc2d204964206f662061206e65776c7920637265617465642070726f706f73616c2061667465722069742077617320736176656420696e2073746f726167652e01012d2047656e6572616c2070726f706f73616c20706172616d657465722e20506172616d65746572732073686172656420627920616c6c2070726f706f73616c7349012d2050726f706f73616c2044657461696c732e20506172616d65746572206f662070726f706f73616c207769746820612076617269616e7420666f722065616368206b696e64206f662070726f706f73616c9c2d204964206f662061206e65776c7920637265617465642070726f706f73616c20746872656164085c4576656e747320666f722074686973206d6f64756c652e004d030c5870616c6c65745f70726f706f73616c735f636f6465781474797065735447656e6572616c50726f706f73616c506172616d730c204d656d62657249640128244163636f756e74496401002c426c6f636b4e756d6265720110001401246d656d6265725f69642801204d656d62657249640001147469746c6530011c5665633c75383e00012c6465736372697074696f6e30011c5665633c75383e0001487374616b696e675f6163636f756e745f69649401444f7074696f6e3c4163636f756e7449643e00015465786163745f657865637574696f6e5f626c6f636b0102014c4f7074696f6e3c426c6f636b4e756d6265723e000051030c5870616c6c65745f70726f706f73616c735f636f6465781474797065733c50726f706f73616c44657461696c731c1c42616c616e636501182c426c6f636b4e756d6265720110244163636f756e744964010020576f726b657249640128244f70656e696e67496401282850726f706f73616c49640110785570646174654368616e6e656c5061796f757473506172616d6574657273017102015c185369676e616c040030011c5665633c75383e0000003852756e74696d6555706772616465040030011c5665633c75383e0001003846756e64696e67526571756573740400550301c45665633c46756e64696e6752657175657374506172616d65746572733c42616c616e63652c204163636f756e7449643e3e000200505365744d617856616c696461746f72436f756e74040010010c75333200030074437265617465576f726b696e6747726f75704c6561644f70656e696e6704005d0301b44372656174654f70656e696e67506172616d65746572733c426c6f636b4e756d6265722c2042616c616e63653e0004006c46696c6c576f726b696e6747726f75704c6561644f70656e696e6704006503015446696c6c4f70656e696e67506172616d657465727300050060557064617465576f726b696e6747726f75704275646765740c0018011c42616c616e6365000099010130576f726b696e6747726f757000009d01012c42616c616e63654b696e64000600744465637265617365576f726b696e6747726f75704c6561645374616b650c00280120576f726b65724964000018011c42616c616e6365000099010130576f726b696e6747726f757000070054536c617368576f726b696e6747726f75704c6561640c00280120576f726b65724964000018011c42616c616e6365000099010130576f726b696e6747726f757000080064536574576f726b696e6747726f75704c6561645265776172640c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e000099010130576f726b696e6747726f7570000900645465726d696e617465576f726b696e6747726f75704c6561640400690301a85465726d696e617465526f6c65506172616d65746572733c576f726b657249642c2042616c616e63653e000a0044416d656e64436f6e737469747574696f6e040030011c5665633c75383e000b007443616e63656c576f726b696e6747726f75704c6561644f70656e696e6708002801244f70656e696e674964000099010130576f726b696e6747726f7570000c00485365744d656d626572736869705072696365040018011c42616c616e6365000d0064536574436f756e63696c427564676574496e6372656d656e74040018011c42616c616e6365000e0048536574436f756e63696c6f72526577617264040018011c42616c616e6365000f006c536574496e697469616c496e7669746174696f6e42616c616e6365040018011c42616c616e636500100064536574496e697469616c496e7669746174696f6e436f756e74040010010c753332001100805365744d656d626572736869704c656164496e7669746174696f6e51756f7461040010010c75333200120038536574526566657272616c43757404000801087538001300305665746f50726f706f73616c040010012850726f706f73616c496400140050557064617465476c6f62616c4e66744c696d69740800890201384e66744c696d6974506572696f64000028010c753634001500505570646174654368616e6e656c5061796f7574730400710201785570646174654368616e6e656c5061796f757473506172616d65746572730016000055030000025903005903083470616c6c65745f636f6d6d6f6e6046756e64696e6752657175657374506172616d6574657273081c42616c616e63650118244163636f756e74496401000008011c6163636f756e740001244163636f756e744964000118616d6f756e7418011c42616c616e636500005d030c5870616c6c65745f70726f706f73616c735f636f6465781474797065735c4372656174654f70656e696e67506172616d6574657273082c426c6f636b4e756d62657201101c42616c616e636501180010012c6465736372697074696f6e30011c5665633c75383e0001307374616b655f706f6c696379610301845374616b65506f6c6963793c426c6f636b4e756d6265722c2042616c616e63653e0001407265776172645f7065725f626c6f636b4501013c4f7074696f6e3c42616c616e63653e00011467726f757099010130576f726b696e6747726f7570000061030c5070616c6c65745f776f726b696e675f67726f75701474797065732c5374616b65506f6c696379082c426c6f636b4e756d62657201101c42616c616e63650118000801307374616b655f616d6f756e7418011c42616c616e63650001606c656176696e675f756e7374616b696e675f706572696f6410012c426c6f636b4e756d626572000065030c5870616c6c65745f70726f706f73616c735f636f6465781474797065735446696c6c4f70656e696e67506172616d657465727300000c01286f70656e696e675f6964280160776f726b696e675f67726f75703a3a4f70656e696e6749640001386170706c69636174696f6e5f6964280170776f726b696e675f67726f75703a3a4170706c69636174696f6e4964000134776f726b696e675f67726f757099010130576f726b696e6747726f7570000069030c5870616c6c65745f70726f706f73616c735f636f6465781474797065735c5465726d696e617465526f6c65506172616d65746572730820576f726b6572496401281c42616c616e63650118000c0124776f726b65725f6964280120576f726b6572496400013c736c617368696e675f616d6f756e744501013c4f7074696f6e3c42616c616e63653e00011467726f757099010130576f726b696e6747726f757000006d03085070616c6c65745f776f726b696e675f67726f7570205261774576656e7430244f70656e696e6749640128344170706c69636174696f6e49640128684170706c69636174696f6e4964546f576f726b657249644d617001710320576f726b657249640128244163636f756e74496401001c42616c616e636501182c4f70656e696e6754797065017d032c5374616b65506f6c696379016103604170706c794f6e4f70656e696e67506172616d6574657273018103204d656d626572496401281048617368012c04490189030164304f70656e696e67416464656414002801244f70656e696e674964000030011c5665633c75383e00007d03012c4f70656e696e675479706500006103012c5374616b65506f6c69637900004501013c4f7074696f6e3c42616c616e63653e00001c80456d697473206f6e20616464696e67206e6577206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e67206964342d204465736372697074696f6e782d204f70656e696e672054797065284c656164206f7220576f726b657229782d205374616b6520506f6c69637920666f7220746865206f70656e696e67482d205265776172642070657220626c6f636b404170706c6965644f6e4f70656e696e670800810301604170706c794f6e4f70656e696e67506172616d657465727300002801344170706c69636174696f6e4964000110dc456d697473206f6e20616464696e6720746865206170706c69636174696f6e20666f722074686520776f726b6572206f70656e696e672e1c506172616d733a542d204f70656e696e6720706172616d657465726573402d204170706c69636174696f6e206964344f70656e696e6746696c6c65640c002801244f70656e696e6749640000710301684170706c69636174696f6e4964546f576f726b657249644d617000006901015c42547265655365743c4170706c69636174696f6e49643e00021484456d697473206f6e2066696c6c696e6720746865206a6f62206f70656e696e672e1c506172616d733a4c2d20576f726b6572206f70656e696e67206964cc2d20576f726b6572206170706c69636174696f6e20696420746f2074686520776f726b65722069642064696374696f6e617279ac2d204170706c69636174696f6e6420696473207573656420746f2066696c6c20746865206f70656e696e67244c65616465725365740400280120576f726b6572496400030c88456d697473206f6e2073657474696e67207468652067726f7570206c65616465722e1c506172616d733a482d2047726f757020776f726b65722069642e60576f726b6572526f6c654163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964000410c4456d697473206f6e207570646174696e672074686520726f6c65206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e802d20526f6c65206163636f756e74206964206f662074686520776f726b65722e2c4c6561646572556e7365740005047c456d697473206f6e20756e2d73657474696e6720746865206c65616465722e30576f726b65724578697465640400280120576f726b6572496400061070456d697473206f6e2065786974696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e302d20526174696f6e616c652e50576f726b6572537461727465644c656176696e670800280120576f726b6572496400003101013c4f7074696f6e3c5665633c75383e3e000710b4456d697473207768656e20776f726b65722073746172746564206c656176696e6720746865697220726f6c652e1c506172616d733a302d20576f726b65722069642e302d20526174696f6e616c652e405465726d696e61746564576f726b65720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00081480456d697473206f6e207465726d696e6174696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e405465726d696e617465644c65616465720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00091480456d697473206f6e207465726d696e6174696e6720746865206c65616465722e1c506172616d733a4c2d206c656164657220776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e305374616b65536c61736865641000280120576f726b65724964000018011c42616c616e6365000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e000a18c0456d697473206f6e20736c617368696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e642d2061637475616c20736c61736865642062616c616e63652e702d2052657175657374656420736c61736865642062616c616e63652e302d20526174696f6e616c652e385374616b654465637265617365640800280120576f726b65724964000018011c42616c616e6365000b10c8456d697473206f6e2064656372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74385374616b65496e637265617365640800280120576f726b65724964000018011c42616c616e6365000c10c8456d697473206f6e20696e6372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74504170706c69636174696f6e57697468647261776e04002801344170706c69636174696f6e4964000d0c2501456d697473206f6e207769746864726177696e6720746865206170706c69636174696f6e20666f722074686520726567756c617220776f726b65722f6c656164206f70656e696e672e1c506172616d733a502d204a6f62206170706c69636174696f6e2069643c4f70656e696e6743616e63656c656404002801244f70656e696e674964000e0c8c456d697473206f6e2063616e63656c696e6720746865206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e6720696424427564676574536574040018011c42616c616e6365000f0cc8456d697473206f6e2073657474696e67207468652062756467657420666f722074686520776f726b696e672067726f75702e1c506172616d733a302d206e65772062756467657468576f726b65725265776172644163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964001010cc456d697473206f6e207570646174696e672074686520726577617264206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e882d20526577617264206163636f756e74206964206f662074686520776f726b65722e64576f726b6572526577617264416d6f756e74557064617465640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e001110c8456d697473206f6e207570646174696e67207468652072657761726420616d6f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e482d205265776172642070657220626c6f636b44537461747573546578744368616e67656408002c01104861736800003101013c4f7074696f6e3c5665633c75383e3e001210dc456d697473206f6e207570646174696e6720746865207374617475732074657874206f662074686520776f726b696e672067726f75702e1c506172616d733a482d2073746174757320746578742068617368342d207374617475732074657874384275646765745370656e64696e670c000001244163636f756e744964000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e001314c8456d697473206f6e206275646765742066726f6d2074686520776f726b696e672067726f7570206265696e67207370656e741c506172616d733a582d205265636569766572204163636f756e742049642e402d2042616c616e6365207370656e742e302d20526174696f6e616c652e28526577617264506169641000280120576f726b6572496400000001244163636f756e744964000018011c42616c616e636500008d0301445265776172645061796d656e74547970650014186c456d697473206f6e20706179696e6720746865207265776172642e1c506172616d733a4c2d204964206f662074686520776f726b65722e582d205265636569766572204163636f756e742049642e202d20526577617264b42d205061796d656e74207479706520286d697373656420726577617264206f7220726567756c6172206f6e65296c4e65774d69737365645265776172644c6576656c526561636865640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00151090456d697473206f6e207265616368696e67206e6577206d6973736564207265776172642e1c506172616d733a302d20576f726b65722049442ee82d204d69737365642072657761726420286f7074696f6e616c292e204e6f6e65206d65616e7320276e6f206d697373656420726577617264272e60576f726b696e6747726f757042756467657446756e6465640c002801204d656d6265724964000018011c42616c616e6365000030011c5665633c75383e0016147846756e642074686520776f726b696e672067726f7570206275646765742e1c506172616d733a2c2d204d656d6265722049444c2d20416d6f756e74206f662062616c616e63652c2d20526174696f6e616c65304c65616452656d61726b6564040030011c5665633c75383e00170c94456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a242d206d65737361676538576f726b657252656d61726b65640800280120576f726b65724964000030011c5665633c75383e00181094456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a202d20776f726b6572242d206d6573736167650c5c4576656e747320666f722074686973206d6f64756c652e00385f47726f75705f206576656e74737103042042547265654d617008044b012804560128000400750300000075030000027903007903000004082828007d030c5070616c6c65745f776f726b696e675f67726f75701474797065732c4f70656e696e6754797065000108184c65616465720000001c526567756c61720001000081030c5070616c6c65745f776f726b696e675f67726f7570147479706573504170706c794f6e4f70656e696e67506172616d7310204d656d62657249640128244f70656e696e6749640128244163636f756e74496401001c42616c616e63650118001801246d656d6265725f69642801204d656d62657249640001286f70656e696e675f69642801244f70656e696e67496400013c726f6c655f6163636f756e745f69640001244163636f756e7449640001447265776172645f6163636f756e745f69640001244163636f756e74496400012c6465736372697074696f6e30011c5665633c75383e0001407374616b655f706172616d65746572738503018c5374616b65506172616d65746572733c4163636f756e7449642c2042616c616e63653e000085030c5070616c6c65745f776f726b696e675f67726f75701474797065733c5374616b65506172616d657465727308244163636f756e74496401001c42616c616e63650118000801147374616b6518011c42616c616e63650001487374616b696e675f6163636f756e745f69640001244163636f756e74496400008903085070616c6c65745f776f726b696e675f67726f757024496e7374616e636531000000008d030c5070616c6c65745f776f726b696e675f67726f7570147479706573445265776172645061796d656e7454797065000108304d697373656452657761726400000034526567756c6172526577617264000100009103085070616c6c65745f776f726b696e675f67726f7570205261774576656e7430244f70656e696e6749640128344170706c69636174696f6e49640128684170706c69636174696f6e4964546f576f726b657249644d617001710320576f726b657249640128244163636f756e74496401001c42616c616e636501182c4f70656e696e6754797065017d032c5374616b65506f6c696379016103604170706c794f6e4f70656e696e67506172616d6574657273018103204d656d626572496401281048617368012c04490195030164304f70656e696e67416464656414002801244f70656e696e674964000030011c5665633c75383e00007d03012c4f70656e696e675479706500006103012c5374616b65506f6c69637900004501013c4f7074696f6e3c42616c616e63653e00001c80456d697473206f6e20616464696e67206e6577206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e67206964342d204465736372697074696f6e782d204f70656e696e672054797065284c656164206f7220576f726b657229782d205374616b6520506f6c69637920666f7220746865206f70656e696e67482d205265776172642070657220626c6f636b404170706c6965644f6e4f70656e696e670800810301604170706c794f6e4f70656e696e67506172616d657465727300002801344170706c69636174696f6e4964000110dc456d697473206f6e20616464696e6720746865206170706c69636174696f6e20666f722074686520776f726b6572206f70656e696e672e1c506172616d733a542d204f70656e696e6720706172616d657465726573402d204170706c69636174696f6e206964344f70656e696e6746696c6c65640c002801244f70656e696e6749640000710301684170706c69636174696f6e4964546f576f726b657249644d617000006901015c42547265655365743c4170706c69636174696f6e49643e00021484456d697473206f6e2066696c6c696e6720746865206a6f62206f70656e696e672e1c506172616d733a4c2d20576f726b6572206f70656e696e67206964cc2d20576f726b6572206170706c69636174696f6e20696420746f2074686520776f726b65722069642064696374696f6e617279ac2d204170706c69636174696f6e6420696473207573656420746f2066696c6c20746865206f70656e696e67244c65616465725365740400280120576f726b6572496400030c88456d697473206f6e2073657474696e67207468652067726f7570206c65616465722e1c506172616d733a482d2047726f757020776f726b65722069642e60576f726b6572526f6c654163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964000410c4456d697473206f6e207570646174696e672074686520726f6c65206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e802d20526f6c65206163636f756e74206964206f662074686520776f726b65722e2c4c6561646572556e7365740005047c456d697473206f6e20756e2d73657474696e6720746865206c65616465722e30576f726b65724578697465640400280120576f726b6572496400061070456d697473206f6e2065786974696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e302d20526174696f6e616c652e50576f726b6572537461727465644c656176696e670800280120576f726b6572496400003101013c4f7074696f6e3c5665633c75383e3e000710b4456d697473207768656e20776f726b65722073746172746564206c656176696e6720746865697220726f6c652e1c506172616d733a302d20576f726b65722069642e302d20526174696f6e616c652e405465726d696e61746564576f726b65720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00081480456d697473206f6e207465726d696e6174696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e405465726d696e617465644c65616465720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00091480456d697473206f6e207465726d696e6174696e6720746865206c65616465722e1c506172616d733a4c2d206c656164657220776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e305374616b65536c61736865641000280120576f726b65724964000018011c42616c616e6365000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e000a18c0456d697473206f6e20736c617368696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e642d2061637475616c20736c61736865642062616c616e63652e702d2052657175657374656420736c61736865642062616c616e63652e302d20526174696f6e616c652e385374616b654465637265617365640800280120576f726b65724964000018011c42616c616e6365000b10c8456d697473206f6e2064656372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74385374616b65496e637265617365640800280120576f726b65724964000018011c42616c616e6365000c10c8456d697473206f6e20696e6372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74504170706c69636174696f6e57697468647261776e04002801344170706c69636174696f6e4964000d0c2501456d697473206f6e207769746864726177696e6720746865206170706c69636174696f6e20666f722074686520726567756c617220776f726b65722f6c656164206f70656e696e672e1c506172616d733a502d204a6f62206170706c69636174696f6e2069643c4f70656e696e6743616e63656c656404002801244f70656e696e674964000e0c8c456d697473206f6e2063616e63656c696e6720746865206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e6720696424427564676574536574040018011c42616c616e6365000f0cc8456d697473206f6e2073657474696e67207468652062756467657420666f722074686520776f726b696e672067726f75702e1c506172616d733a302d206e65772062756467657468576f726b65725265776172644163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964001010cc456d697473206f6e207570646174696e672074686520726577617264206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e882d20526577617264206163636f756e74206964206f662074686520776f726b65722e64576f726b6572526577617264416d6f756e74557064617465640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e001110c8456d697473206f6e207570646174696e67207468652072657761726420616d6f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e482d205265776172642070657220626c6f636b44537461747573546578744368616e67656408002c01104861736800003101013c4f7074696f6e3c5665633c75383e3e001210dc456d697473206f6e207570646174696e6720746865207374617475732074657874206f662074686520776f726b696e672067726f75702e1c506172616d733a482d2073746174757320746578742068617368342d207374617475732074657874384275646765745370656e64696e670c000001244163636f756e744964000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e001314c8456d697473206f6e206275646765742066726f6d2074686520776f726b696e672067726f7570206265696e67207370656e741c506172616d733a582d205265636569766572204163636f756e742049642e402d2042616c616e6365207370656e742e302d20526174696f6e616c652e28526577617264506169641000280120576f726b6572496400000001244163636f756e744964000018011c42616c616e636500008d0301445265776172645061796d656e74547970650014186c456d697473206f6e20706179696e6720746865207265776172642e1c506172616d733a4c2d204964206f662074686520776f726b65722e582d205265636569766572204163636f756e742049642e202d20526577617264b42d205061796d656e74207479706520286d697373656420726577617264206f7220726567756c6172206f6e65296c4e65774d69737365645265776172644c6576656c526561636865640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00151090456d697473206f6e207265616368696e67206e6577206d6973736564207265776172642e1c506172616d733a302d20576f726b65722049442ee82d204d69737365642072657761726420286f7074696f6e616c292e204e6f6e65206d65616e7320276e6f206d697373656420726577617264272e60576f726b696e6747726f757042756467657446756e6465640c002801204d656d6265724964000018011c42616c616e6365000030011c5665633c75383e0016147846756e642074686520776f726b696e672067726f7570206275646765742e1c506172616d733a2c2d204d656d6265722049444c2d20416d6f756e74206f662062616c616e63652c2d20526174696f6e616c65304c65616452656d61726b6564040030011c5665633c75383e00170c94456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a242d206d65737361676538576f726b657252656d61726b65640800280120576f726b65724964000030011c5665633c75383e00181094456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a202d20776f726b6572242d206d6573736167650c5c4576656e747320666f722074686973206d6f64756c652e00385f47726f75705f206576656e74739503085070616c6c65745f776f726b696e675f67726f757024496e7374616e636532000000009903085070616c6c65745f776f726b696e675f67726f7570205261774576656e7430244f70656e696e6749640128344170706c69636174696f6e49640128684170706c69636174696f6e4964546f576f726b657249644d617001710320576f726b657249640128244163636f756e74496401001c42616c616e636501182c4f70656e696e6754797065017d032c5374616b65506f6c696379016103604170706c794f6e4f70656e696e67506172616d6574657273018103204d656d626572496401281048617368012c0449019d030164304f70656e696e67416464656414002801244f70656e696e674964000030011c5665633c75383e00007d03012c4f70656e696e675479706500006103012c5374616b65506f6c69637900004501013c4f7074696f6e3c42616c616e63653e00001c80456d697473206f6e20616464696e67206e6577206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e67206964342d204465736372697074696f6e782d204f70656e696e672054797065284c656164206f7220576f726b657229782d205374616b6520506f6c69637920666f7220746865206f70656e696e67482d205265776172642070657220626c6f636b404170706c6965644f6e4f70656e696e670800810301604170706c794f6e4f70656e696e67506172616d657465727300002801344170706c69636174696f6e4964000110dc456d697473206f6e20616464696e6720746865206170706c69636174696f6e20666f722074686520776f726b6572206f70656e696e672e1c506172616d733a542d204f70656e696e6720706172616d657465726573402d204170706c69636174696f6e206964344f70656e696e6746696c6c65640c002801244f70656e696e6749640000710301684170706c69636174696f6e4964546f576f726b657249644d617000006901015c42547265655365743c4170706c69636174696f6e49643e00021484456d697473206f6e2066696c6c696e6720746865206a6f62206f70656e696e672e1c506172616d733a4c2d20576f726b6572206f70656e696e67206964cc2d20576f726b6572206170706c69636174696f6e20696420746f2074686520776f726b65722069642064696374696f6e617279ac2d204170706c69636174696f6e6420696473207573656420746f2066696c6c20746865206f70656e696e67244c65616465725365740400280120576f726b6572496400030c88456d697473206f6e2073657474696e67207468652067726f7570206c65616465722e1c506172616d733a482d2047726f757020776f726b65722069642e60576f726b6572526f6c654163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964000410c4456d697473206f6e207570646174696e672074686520726f6c65206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e802d20526f6c65206163636f756e74206964206f662074686520776f726b65722e2c4c6561646572556e7365740005047c456d697473206f6e20756e2d73657474696e6720746865206c65616465722e30576f726b65724578697465640400280120576f726b6572496400061070456d697473206f6e2065786974696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e302d20526174696f6e616c652e50576f726b6572537461727465644c656176696e670800280120576f726b6572496400003101013c4f7074696f6e3c5665633c75383e3e000710b4456d697473207768656e20776f726b65722073746172746564206c656176696e6720746865697220726f6c652e1c506172616d733a302d20576f726b65722069642e302d20526174696f6e616c652e405465726d696e61746564576f726b65720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00081480456d697473206f6e207465726d696e6174696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e405465726d696e617465644c65616465720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00091480456d697473206f6e207465726d696e6174696e6720746865206c65616465722e1c506172616d733a4c2d206c656164657220776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e305374616b65536c61736865641000280120576f726b65724964000018011c42616c616e6365000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e000a18c0456d697473206f6e20736c617368696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e642d2061637475616c20736c61736865642062616c616e63652e702d2052657175657374656420736c61736865642062616c616e63652e302d20526174696f6e616c652e385374616b654465637265617365640800280120576f726b65724964000018011c42616c616e6365000b10c8456d697473206f6e2064656372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74385374616b65496e637265617365640800280120576f726b65724964000018011c42616c616e6365000c10c8456d697473206f6e20696e6372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74504170706c69636174696f6e57697468647261776e04002801344170706c69636174696f6e4964000d0c2501456d697473206f6e207769746864726177696e6720746865206170706c69636174696f6e20666f722074686520726567756c617220776f726b65722f6c656164206f70656e696e672e1c506172616d733a502d204a6f62206170706c69636174696f6e2069643c4f70656e696e6743616e63656c656404002801244f70656e696e674964000e0c8c456d697473206f6e2063616e63656c696e6720746865206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e6720696424427564676574536574040018011c42616c616e6365000f0cc8456d697473206f6e2073657474696e67207468652062756467657420666f722074686520776f726b696e672067726f75702e1c506172616d733a302d206e65772062756467657468576f726b65725265776172644163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964001010cc456d697473206f6e207570646174696e672074686520726577617264206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e882d20526577617264206163636f756e74206964206f662074686520776f726b65722e64576f726b6572526577617264416d6f756e74557064617465640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e001110c8456d697473206f6e207570646174696e67207468652072657761726420616d6f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e482d205265776172642070657220626c6f636b44537461747573546578744368616e67656408002c01104861736800003101013c4f7074696f6e3c5665633c75383e3e001210dc456d697473206f6e207570646174696e6720746865207374617475732074657874206f662074686520776f726b696e672067726f75702e1c506172616d733a482d2073746174757320746578742068617368342d207374617475732074657874384275646765745370656e64696e670c000001244163636f756e744964000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e001314c8456d697473206f6e206275646765742066726f6d2074686520776f726b696e672067726f7570206265696e67207370656e741c506172616d733a582d205265636569766572204163636f756e742049642e402d2042616c616e6365207370656e742e302d20526174696f6e616c652e28526577617264506169641000280120576f726b6572496400000001244163636f756e744964000018011c42616c616e636500008d0301445265776172645061796d656e74547970650014186c456d697473206f6e20706179696e6720746865207265776172642e1c506172616d733a4c2d204964206f662074686520776f726b65722e582d205265636569766572204163636f756e742049642e202d20526577617264b42d205061796d656e74207479706520286d697373656420726577617264206f7220726567756c6172206f6e65296c4e65774d69737365645265776172644c6576656c526561636865640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00151090456d697473206f6e207265616368696e67206e6577206d6973736564207265776172642e1c506172616d733a302d20576f726b65722049442ee82d204d69737365642072657761726420286f7074696f6e616c292e204e6f6e65206d65616e7320276e6f206d697373656420726577617264272e60576f726b696e6747726f757042756467657446756e6465640c002801204d656d6265724964000018011c42616c616e6365000030011c5665633c75383e0016147846756e642074686520776f726b696e672067726f7570206275646765742e1c506172616d733a2c2d204d656d6265722049444c2d20416d6f756e74206f662062616c616e63652c2d20526174696f6e616c65304c65616452656d61726b6564040030011c5665633c75383e00170c94456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a242d206d65737361676538576f726b657252656d61726b65640800280120576f726b65724964000030011c5665633c75383e00181094456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a202d20776f726b6572242d206d6573736167650c5c4576656e747320666f722074686973206d6f64756c652e00385f47726f75705f206576656e74739d03085070616c6c65745f776f726b696e675f67726f757024496e7374616e63653300000000a103085070616c6c65745f776f726b696e675f67726f7570205261774576656e7430244f70656e696e6749640128344170706c69636174696f6e49640128684170706c69636174696f6e4964546f576f726b657249644d617001710320576f726b657249640128244163636f756e74496401001c42616c616e636501182c4f70656e696e6754797065017d032c5374616b65506f6c696379016103604170706c794f6e4f70656e696e67506172616d6574657273018103204d656d626572496401281048617368012c044901a5030164304f70656e696e67416464656414002801244f70656e696e674964000030011c5665633c75383e00007d03012c4f70656e696e675479706500006103012c5374616b65506f6c69637900004501013c4f7074696f6e3c42616c616e63653e00001c80456d697473206f6e20616464696e67206e6577206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e67206964342d204465736372697074696f6e782d204f70656e696e672054797065284c656164206f7220576f726b657229782d205374616b6520506f6c69637920666f7220746865206f70656e696e67482d205265776172642070657220626c6f636b404170706c6965644f6e4f70656e696e670800810301604170706c794f6e4f70656e696e67506172616d657465727300002801344170706c69636174696f6e4964000110dc456d697473206f6e20616464696e6720746865206170706c69636174696f6e20666f722074686520776f726b6572206f70656e696e672e1c506172616d733a542d204f70656e696e6720706172616d657465726573402d204170706c69636174696f6e206964344f70656e696e6746696c6c65640c002801244f70656e696e6749640000710301684170706c69636174696f6e4964546f576f726b657249644d617000006901015c42547265655365743c4170706c69636174696f6e49643e00021484456d697473206f6e2066696c6c696e6720746865206a6f62206f70656e696e672e1c506172616d733a4c2d20576f726b6572206f70656e696e67206964cc2d20576f726b6572206170706c69636174696f6e20696420746f2074686520776f726b65722069642064696374696f6e617279ac2d204170706c69636174696f6e6420696473207573656420746f2066696c6c20746865206f70656e696e67244c65616465725365740400280120576f726b6572496400030c88456d697473206f6e2073657474696e67207468652067726f7570206c65616465722e1c506172616d733a482d2047726f757020776f726b65722069642e60576f726b6572526f6c654163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964000410c4456d697473206f6e207570646174696e672074686520726f6c65206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e802d20526f6c65206163636f756e74206964206f662074686520776f726b65722e2c4c6561646572556e7365740005047c456d697473206f6e20756e2d73657474696e6720746865206c65616465722e30576f726b65724578697465640400280120576f726b6572496400061070456d697473206f6e2065786974696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e302d20526174696f6e616c652e50576f726b6572537461727465644c656176696e670800280120576f726b6572496400003101013c4f7074696f6e3c5665633c75383e3e000710b4456d697473207768656e20776f726b65722073746172746564206c656176696e6720746865697220726f6c652e1c506172616d733a302d20576f726b65722069642e302d20526174696f6e616c652e405465726d696e61746564576f726b65720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00081480456d697473206f6e207465726d696e6174696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e405465726d696e617465644c65616465720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00091480456d697473206f6e207465726d696e6174696e6720746865206c65616465722e1c506172616d733a4c2d206c656164657220776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e305374616b65536c61736865641000280120576f726b65724964000018011c42616c616e6365000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e000a18c0456d697473206f6e20736c617368696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e642d2061637475616c20736c61736865642062616c616e63652e702d2052657175657374656420736c61736865642062616c616e63652e302d20526174696f6e616c652e385374616b654465637265617365640800280120576f726b65724964000018011c42616c616e6365000b10c8456d697473206f6e2064656372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74385374616b65496e637265617365640800280120576f726b65724964000018011c42616c616e6365000c10c8456d697473206f6e20696e6372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74504170706c69636174696f6e57697468647261776e04002801344170706c69636174696f6e4964000d0c2501456d697473206f6e207769746864726177696e6720746865206170706c69636174696f6e20666f722074686520726567756c617220776f726b65722f6c656164206f70656e696e672e1c506172616d733a502d204a6f62206170706c69636174696f6e2069643c4f70656e696e6743616e63656c656404002801244f70656e696e674964000e0c8c456d697473206f6e2063616e63656c696e6720746865206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e6720696424427564676574536574040018011c42616c616e6365000f0cc8456d697473206f6e2073657474696e67207468652062756467657420666f722074686520776f726b696e672067726f75702e1c506172616d733a302d206e65772062756467657468576f726b65725265776172644163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964001010cc456d697473206f6e207570646174696e672074686520726577617264206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e882d20526577617264206163636f756e74206964206f662074686520776f726b65722e64576f726b6572526577617264416d6f756e74557064617465640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e001110c8456d697473206f6e207570646174696e67207468652072657761726420616d6f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e482d205265776172642070657220626c6f636b44537461747573546578744368616e67656408002c01104861736800003101013c4f7074696f6e3c5665633c75383e3e001210dc456d697473206f6e207570646174696e6720746865207374617475732074657874206f662074686520776f726b696e672067726f75702e1c506172616d733a482d2073746174757320746578742068617368342d207374617475732074657874384275646765745370656e64696e670c000001244163636f756e744964000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e001314c8456d697473206f6e206275646765742066726f6d2074686520776f726b696e672067726f7570206265696e67207370656e741c506172616d733a582d205265636569766572204163636f756e742049642e402d2042616c616e6365207370656e742e302d20526174696f6e616c652e28526577617264506169641000280120576f726b6572496400000001244163636f756e744964000018011c42616c616e636500008d0301445265776172645061796d656e74547970650014186c456d697473206f6e20706179696e6720746865207265776172642e1c506172616d733a4c2d204964206f662074686520776f726b65722e582d205265636569766572204163636f756e742049642e202d20526577617264b42d205061796d656e74207479706520286d697373656420726577617264206f7220726567756c6172206f6e65296c4e65774d69737365645265776172644c6576656c526561636865640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00151090456d697473206f6e207265616368696e67206e6577206d6973736564207265776172642e1c506172616d733a302d20576f726b65722049442ee82d204d69737365642072657761726420286f7074696f6e616c292e204e6f6e65206d65616e7320276e6f206d697373656420726577617264272e60576f726b696e6747726f757042756467657446756e6465640c002801204d656d6265724964000018011c42616c616e6365000030011c5665633c75383e0016147846756e642074686520776f726b696e672067726f7570206275646765742e1c506172616d733a2c2d204d656d6265722049444c2d20416d6f756e74206f662062616c616e63652c2d20526174696f6e616c65304c65616452656d61726b6564040030011c5665633c75383e00170c94456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a242d206d65737361676538576f726b657252656d61726b65640800280120576f726b65724964000030011c5665633c75383e00181094456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a202d20776f726b6572242d206d6573736167650c5c4576656e747320666f722074686973206d6f64756c652e00385f47726f75705f206576656e7473a503085070616c6c65745f776f726b696e675f67726f757024496e7374616e63653400000000a903085070616c6c65745f776f726b696e675f67726f7570205261774576656e7430244f70656e696e6749640128344170706c69636174696f6e49640128684170706c69636174696f6e4964546f576f726b657249644d617001710320576f726b657249640128244163636f756e74496401001c42616c616e636501182c4f70656e696e6754797065017d032c5374616b65506f6c696379016103604170706c794f6e4f70656e696e67506172616d6574657273018103204d656d626572496401281048617368012c044901ad030164304f70656e696e67416464656414002801244f70656e696e674964000030011c5665633c75383e00007d03012c4f70656e696e675479706500006103012c5374616b65506f6c69637900004501013c4f7074696f6e3c42616c616e63653e00001c80456d697473206f6e20616464696e67206e6577206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e67206964342d204465736372697074696f6e782d204f70656e696e672054797065284c656164206f7220576f726b657229782d205374616b6520506f6c69637920666f7220746865206f70656e696e67482d205265776172642070657220626c6f636b404170706c6965644f6e4f70656e696e670800810301604170706c794f6e4f70656e696e67506172616d657465727300002801344170706c69636174696f6e4964000110dc456d697473206f6e20616464696e6720746865206170706c69636174696f6e20666f722074686520776f726b6572206f70656e696e672e1c506172616d733a542d204f70656e696e6720706172616d657465726573402d204170706c69636174696f6e206964344f70656e696e6746696c6c65640c002801244f70656e696e6749640000710301684170706c69636174696f6e4964546f576f726b657249644d617000006901015c42547265655365743c4170706c69636174696f6e49643e00021484456d697473206f6e2066696c6c696e6720746865206a6f62206f70656e696e672e1c506172616d733a4c2d20576f726b6572206f70656e696e67206964cc2d20576f726b6572206170706c69636174696f6e20696420746f2074686520776f726b65722069642064696374696f6e617279ac2d204170706c69636174696f6e6420696473207573656420746f2066696c6c20746865206f70656e696e67244c65616465725365740400280120576f726b6572496400030c88456d697473206f6e2073657474696e67207468652067726f7570206c65616465722e1c506172616d733a482d2047726f757020776f726b65722069642e60576f726b6572526f6c654163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964000410c4456d697473206f6e207570646174696e672074686520726f6c65206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e802d20526f6c65206163636f756e74206964206f662074686520776f726b65722e2c4c6561646572556e7365740005047c456d697473206f6e20756e2d73657474696e6720746865206c65616465722e30576f726b65724578697465640400280120576f726b6572496400061070456d697473206f6e2065786974696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e302d20526174696f6e616c652e50576f726b6572537461727465644c656176696e670800280120576f726b6572496400003101013c4f7074696f6e3c5665633c75383e3e000710b4456d697473207768656e20776f726b65722073746172746564206c656176696e6720746865697220726f6c652e1c506172616d733a302d20576f726b65722069642e302d20526174696f6e616c652e405465726d696e61746564576f726b65720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00081480456d697473206f6e207465726d696e6174696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e405465726d696e617465644c65616465720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00091480456d697473206f6e207465726d696e6174696e6720746865206c65616465722e1c506172616d733a4c2d206c656164657220776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e305374616b65536c61736865641000280120576f726b65724964000018011c42616c616e6365000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e000a18c0456d697473206f6e20736c617368696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e642d2061637475616c20736c61736865642062616c616e63652e702d2052657175657374656420736c61736865642062616c616e63652e302d20526174696f6e616c652e385374616b654465637265617365640800280120576f726b65724964000018011c42616c616e6365000b10c8456d697473206f6e2064656372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74385374616b65496e637265617365640800280120576f726b65724964000018011c42616c616e6365000c10c8456d697473206f6e20696e6372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74504170706c69636174696f6e57697468647261776e04002801344170706c69636174696f6e4964000d0c2501456d697473206f6e207769746864726177696e6720746865206170706c69636174696f6e20666f722074686520726567756c617220776f726b65722f6c656164206f70656e696e672e1c506172616d733a502d204a6f62206170706c69636174696f6e2069643c4f70656e696e6743616e63656c656404002801244f70656e696e674964000e0c8c456d697473206f6e2063616e63656c696e6720746865206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e6720696424427564676574536574040018011c42616c616e6365000f0cc8456d697473206f6e2073657474696e67207468652062756467657420666f722074686520776f726b696e672067726f75702e1c506172616d733a302d206e65772062756467657468576f726b65725265776172644163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964001010cc456d697473206f6e207570646174696e672074686520726577617264206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e882d20526577617264206163636f756e74206964206f662074686520776f726b65722e64576f726b6572526577617264416d6f756e74557064617465640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e001110c8456d697473206f6e207570646174696e67207468652072657761726420616d6f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e482d205265776172642070657220626c6f636b44537461747573546578744368616e67656408002c01104861736800003101013c4f7074696f6e3c5665633c75383e3e001210dc456d697473206f6e207570646174696e6720746865207374617475732074657874206f662074686520776f726b696e672067726f75702e1c506172616d733a482d2073746174757320746578742068617368342d207374617475732074657874384275646765745370656e64696e670c000001244163636f756e744964000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e001314c8456d697473206f6e206275646765742066726f6d2074686520776f726b696e672067726f7570206265696e67207370656e741c506172616d733a582d205265636569766572204163636f756e742049642e402d2042616c616e6365207370656e742e302d20526174696f6e616c652e28526577617264506169641000280120576f726b6572496400000001244163636f756e744964000018011c42616c616e636500008d0301445265776172645061796d656e74547970650014186c456d697473206f6e20706179696e6720746865207265776172642e1c506172616d733a4c2d204964206f662074686520776f726b65722e582d205265636569766572204163636f756e742049642e202d20526577617264b42d205061796d656e74207479706520286d697373656420726577617264206f7220726567756c6172206f6e65296c4e65774d69737365645265776172644c6576656c526561636865640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00151090456d697473206f6e207265616368696e67206e6577206d6973736564207265776172642e1c506172616d733a302d20576f726b65722049442ee82d204d69737365642072657761726420286f7074696f6e616c292e204e6f6e65206d65616e7320276e6f206d697373656420726577617264272e60576f726b696e6747726f757042756467657446756e6465640c002801204d656d6265724964000018011c42616c616e6365000030011c5665633c75383e0016147846756e642074686520776f726b696e672067726f7570206275646765742e1c506172616d733a2c2d204d656d6265722049444c2d20416d6f756e74206f662062616c616e63652c2d20526174696f6e616c65304c65616452656d61726b6564040030011c5665633c75383e00170c94456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a242d206d65737361676538576f726b657252656d61726b65640800280120576f726b65724964000030011c5665633c75383e00181094456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a202d20776f726b6572242d206d6573736167650c5c4576656e747320666f722074686973206d6f64756c652e00385f47726f75705f206576656e7473ad03085070616c6c65745f776f726b696e675f67726f757024496e7374616e63653500000000b103085070616c6c65745f776f726b696e675f67726f7570205261774576656e7430244f70656e696e6749640128344170706c69636174696f6e49640128684170706c69636174696f6e4964546f576f726b657249644d617001710320576f726b657249640128244163636f756e74496401001c42616c616e636501182c4f70656e696e6754797065017d032c5374616b65506f6c696379016103604170706c794f6e4f70656e696e67506172616d6574657273018103204d656d626572496401281048617368012c044901b5030164304f70656e696e67416464656414002801244f70656e696e674964000030011c5665633c75383e00007d03012c4f70656e696e675479706500006103012c5374616b65506f6c69637900004501013c4f7074696f6e3c42616c616e63653e00001c80456d697473206f6e20616464696e67206e6577206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e67206964342d204465736372697074696f6e782d204f70656e696e672054797065284c656164206f7220576f726b657229782d205374616b6520506f6c69637920666f7220746865206f70656e696e67482d205265776172642070657220626c6f636b404170706c6965644f6e4f70656e696e670800810301604170706c794f6e4f70656e696e67506172616d657465727300002801344170706c69636174696f6e4964000110dc456d697473206f6e20616464696e6720746865206170706c69636174696f6e20666f722074686520776f726b6572206f70656e696e672e1c506172616d733a542d204f70656e696e6720706172616d657465726573402d204170706c69636174696f6e206964344f70656e696e6746696c6c65640c002801244f70656e696e6749640000710301684170706c69636174696f6e4964546f576f726b657249644d617000006901015c42547265655365743c4170706c69636174696f6e49643e00021484456d697473206f6e2066696c6c696e6720746865206a6f62206f70656e696e672e1c506172616d733a4c2d20576f726b6572206f70656e696e67206964cc2d20576f726b6572206170706c69636174696f6e20696420746f2074686520776f726b65722069642064696374696f6e617279ac2d204170706c69636174696f6e6420696473207573656420746f2066696c6c20746865206f70656e696e67244c65616465725365740400280120576f726b6572496400030c88456d697473206f6e2073657474696e67207468652067726f7570206c65616465722e1c506172616d733a482d2047726f757020776f726b65722069642e60576f726b6572526f6c654163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964000410c4456d697473206f6e207570646174696e672074686520726f6c65206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e802d20526f6c65206163636f756e74206964206f662074686520776f726b65722e2c4c6561646572556e7365740005047c456d697473206f6e20756e2d73657474696e6720746865206c65616465722e30576f726b65724578697465640400280120576f726b6572496400061070456d697473206f6e2065786974696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e302d20526174696f6e616c652e50576f726b6572537461727465644c656176696e670800280120576f726b6572496400003101013c4f7074696f6e3c5665633c75383e3e000710b4456d697473207768656e20776f726b65722073746172746564206c656176696e6720746865697220726f6c652e1c506172616d733a302d20576f726b65722069642e302d20526174696f6e616c652e405465726d696e61746564576f726b65720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00081480456d697473206f6e207465726d696e6174696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e405465726d696e617465644c65616465720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00091480456d697473206f6e207465726d696e6174696e6720746865206c65616465722e1c506172616d733a4c2d206c656164657220776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e305374616b65536c61736865641000280120576f726b65724964000018011c42616c616e6365000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e000a18c0456d697473206f6e20736c617368696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e642d2061637475616c20736c61736865642062616c616e63652e702d2052657175657374656420736c61736865642062616c616e63652e302d20526174696f6e616c652e385374616b654465637265617365640800280120576f726b65724964000018011c42616c616e6365000b10c8456d697473206f6e2064656372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74385374616b65496e637265617365640800280120576f726b65724964000018011c42616c616e6365000c10c8456d697473206f6e20696e6372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74504170706c69636174696f6e57697468647261776e04002801344170706c69636174696f6e4964000d0c2501456d697473206f6e207769746864726177696e6720746865206170706c69636174696f6e20666f722074686520726567756c617220776f726b65722f6c656164206f70656e696e672e1c506172616d733a502d204a6f62206170706c69636174696f6e2069643c4f70656e696e6743616e63656c656404002801244f70656e696e674964000e0c8c456d697473206f6e2063616e63656c696e6720746865206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e6720696424427564676574536574040018011c42616c616e6365000f0cc8456d697473206f6e2073657474696e67207468652062756467657420666f722074686520776f726b696e672067726f75702e1c506172616d733a302d206e65772062756467657468576f726b65725265776172644163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964001010cc456d697473206f6e207570646174696e672074686520726577617264206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e882d20526577617264206163636f756e74206964206f662074686520776f726b65722e64576f726b6572526577617264416d6f756e74557064617465640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e001110c8456d697473206f6e207570646174696e67207468652072657761726420616d6f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e482d205265776172642070657220626c6f636b44537461747573546578744368616e67656408002c01104861736800003101013c4f7074696f6e3c5665633c75383e3e001210dc456d697473206f6e207570646174696e6720746865207374617475732074657874206f662074686520776f726b696e672067726f75702e1c506172616d733a482d2073746174757320746578742068617368342d207374617475732074657874384275646765745370656e64696e670c000001244163636f756e744964000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e001314c8456d697473206f6e206275646765742066726f6d2074686520776f726b696e672067726f7570206265696e67207370656e741c506172616d733a582d205265636569766572204163636f756e742049642e402d2042616c616e6365207370656e742e302d20526174696f6e616c652e28526577617264506169641000280120576f726b6572496400000001244163636f756e744964000018011c42616c616e636500008d0301445265776172645061796d656e74547970650014186c456d697473206f6e20706179696e6720746865207265776172642e1c506172616d733a4c2d204964206f662074686520776f726b65722e582d205265636569766572204163636f756e742049642e202d20526577617264b42d205061796d656e74207479706520286d697373656420726577617264206f7220726567756c6172206f6e65296c4e65774d69737365645265776172644c6576656c526561636865640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00151090456d697473206f6e207265616368696e67206e6577206d6973736564207265776172642e1c506172616d733a302d20576f726b65722049442ee82d204d69737365642072657761726420286f7074696f6e616c292e204e6f6e65206d65616e7320276e6f206d697373656420726577617264272e60576f726b696e6747726f757042756467657446756e6465640c002801204d656d6265724964000018011c42616c616e6365000030011c5665633c75383e0016147846756e642074686520776f726b696e672067726f7570206275646765742e1c506172616d733a2c2d204d656d6265722049444c2d20416d6f756e74206f662062616c616e63652c2d20526174696f6e616c65304c65616452656d61726b6564040030011c5665633c75383e00170c94456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a242d206d65737361676538576f726b657252656d61726b65640800280120576f726b65724964000030011c5665633c75383e00181094456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a202d20776f726b6572242d206d6573736167650c5c4576656e747320666f722074686973206d6f64756c652e00385f47726f75705f206576656e7473b503085070616c6c65745f776f726b696e675f67726f757024496e7374616e63653600000000b903085070616c6c65745f776f726b696e675f67726f7570205261774576656e7430244f70656e696e6749640128344170706c69636174696f6e49640128684170706c69636174696f6e4964546f576f726b657249644d617001710320576f726b657249640128244163636f756e74496401001c42616c616e636501182c4f70656e696e6754797065017d032c5374616b65506f6c696379016103604170706c794f6e4f70656e696e67506172616d6574657273018103204d656d626572496401281048617368012c044901bd030164304f70656e696e67416464656414002801244f70656e696e674964000030011c5665633c75383e00007d03012c4f70656e696e675479706500006103012c5374616b65506f6c69637900004501013c4f7074696f6e3c42616c616e63653e00001c80456d697473206f6e20616464696e67206e6577206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e67206964342d204465736372697074696f6e782d204f70656e696e672054797065284c656164206f7220576f726b657229782d205374616b6520506f6c69637920666f7220746865206f70656e696e67482d205265776172642070657220626c6f636b404170706c6965644f6e4f70656e696e670800810301604170706c794f6e4f70656e696e67506172616d657465727300002801344170706c69636174696f6e4964000110dc456d697473206f6e20616464696e6720746865206170706c69636174696f6e20666f722074686520776f726b6572206f70656e696e672e1c506172616d733a542d204f70656e696e6720706172616d657465726573402d204170706c69636174696f6e206964344f70656e696e6746696c6c65640c002801244f70656e696e6749640000710301684170706c69636174696f6e4964546f576f726b657249644d617000006901015c42547265655365743c4170706c69636174696f6e49643e00021484456d697473206f6e2066696c6c696e6720746865206a6f62206f70656e696e672e1c506172616d733a4c2d20576f726b6572206f70656e696e67206964cc2d20576f726b6572206170706c69636174696f6e20696420746f2074686520776f726b65722069642064696374696f6e617279ac2d204170706c69636174696f6e6420696473207573656420746f2066696c6c20746865206f70656e696e67244c65616465725365740400280120576f726b6572496400030c88456d697473206f6e2073657474696e67207468652067726f7570206c65616465722e1c506172616d733a482d2047726f757020776f726b65722069642e60576f726b6572526f6c654163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964000410c4456d697473206f6e207570646174696e672074686520726f6c65206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e802d20526f6c65206163636f756e74206964206f662074686520776f726b65722e2c4c6561646572556e7365740005047c456d697473206f6e20756e2d73657474696e6720746865206c65616465722e30576f726b65724578697465640400280120576f726b6572496400061070456d697473206f6e2065786974696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e302d20526174696f6e616c652e50576f726b6572537461727465644c656176696e670800280120576f726b6572496400003101013c4f7074696f6e3c5665633c75383e3e000710b4456d697473207768656e20776f726b65722073746172746564206c656176696e6720746865697220726f6c652e1c506172616d733a302d20576f726b65722069642e302d20526174696f6e616c652e405465726d696e61746564576f726b65720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00081480456d697473206f6e207465726d696e6174696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e405465726d696e617465644c65616465720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00091480456d697473206f6e207465726d696e6174696e6720746865206c65616465722e1c506172616d733a4c2d206c656164657220776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e305374616b65536c61736865641000280120576f726b65724964000018011c42616c616e6365000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e000a18c0456d697473206f6e20736c617368696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e642d2061637475616c20736c61736865642062616c616e63652e702d2052657175657374656420736c61736865642062616c616e63652e302d20526174696f6e616c652e385374616b654465637265617365640800280120576f726b65724964000018011c42616c616e6365000b10c8456d697473206f6e2064656372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74385374616b65496e637265617365640800280120576f726b65724964000018011c42616c616e6365000c10c8456d697473206f6e20696e6372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74504170706c69636174696f6e57697468647261776e04002801344170706c69636174696f6e4964000d0c2501456d697473206f6e207769746864726177696e6720746865206170706c69636174696f6e20666f722074686520726567756c617220776f726b65722f6c656164206f70656e696e672e1c506172616d733a502d204a6f62206170706c69636174696f6e2069643c4f70656e696e6743616e63656c656404002801244f70656e696e674964000e0c8c456d697473206f6e2063616e63656c696e6720746865206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e6720696424427564676574536574040018011c42616c616e6365000f0cc8456d697473206f6e2073657474696e67207468652062756467657420666f722074686520776f726b696e672067726f75702e1c506172616d733a302d206e65772062756467657468576f726b65725265776172644163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964001010cc456d697473206f6e207570646174696e672074686520726577617264206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e882d20526577617264206163636f756e74206964206f662074686520776f726b65722e64576f726b6572526577617264416d6f756e74557064617465640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e001110c8456d697473206f6e207570646174696e67207468652072657761726420616d6f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e482d205265776172642070657220626c6f636b44537461747573546578744368616e67656408002c01104861736800003101013c4f7074696f6e3c5665633c75383e3e001210dc456d697473206f6e207570646174696e6720746865207374617475732074657874206f662074686520776f726b696e672067726f75702e1c506172616d733a482d2073746174757320746578742068617368342d207374617475732074657874384275646765745370656e64696e670c000001244163636f756e744964000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e001314c8456d697473206f6e206275646765742066726f6d2074686520776f726b696e672067726f7570206265696e67207370656e741c506172616d733a582d205265636569766572204163636f756e742049642e402d2042616c616e6365207370656e742e302d20526174696f6e616c652e28526577617264506169641000280120576f726b6572496400000001244163636f756e744964000018011c42616c616e636500008d0301445265776172645061796d656e74547970650014186c456d697473206f6e20706179696e6720746865207265776172642e1c506172616d733a4c2d204964206f662074686520776f726b65722e582d205265636569766572204163636f756e742049642e202d20526577617264b42d205061796d656e74207479706520286d697373656420726577617264206f7220726567756c6172206f6e65296c4e65774d69737365645265776172644c6576656c526561636865640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00151090456d697473206f6e207265616368696e67206e6577206d6973736564207265776172642e1c506172616d733a302d20576f726b65722049442ee82d204d69737365642072657761726420286f7074696f6e616c292e204e6f6e65206d65616e7320276e6f206d697373656420726577617264272e60576f726b696e6747726f757042756467657446756e6465640c002801204d656d6265724964000018011c42616c616e6365000030011c5665633c75383e0016147846756e642074686520776f726b696e672067726f7570206275646765742e1c506172616d733a2c2d204d656d6265722049444c2d20416d6f756e74206f662062616c616e63652c2d20526174696f6e616c65304c65616452656d61726b6564040030011c5665633c75383e00170c94456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a242d206d65737361676538576f726b657252656d61726b65640800280120576f726b65724964000030011c5665633c75383e00181094456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a202d20776f726b6572242d206d6573736167650c5c4576656e747320666f722074686973206d6f64756c652e00385f47726f75705f206576656e7473bd03085070616c6c65745f776f726b696e675f67726f757024496e7374616e63653700000000c103085070616c6c65745f776f726b696e675f67726f7570205261774576656e7430244f70656e696e6749640128344170706c69636174696f6e49640128684170706c69636174696f6e4964546f576f726b657249644d617001710320576f726b657249640128244163636f756e74496401001c42616c616e636501182c4f70656e696e6754797065017d032c5374616b65506f6c696379016103604170706c794f6e4f70656e696e67506172616d6574657273018103204d656d626572496401281048617368012c044901c5030164304f70656e696e67416464656414002801244f70656e696e674964000030011c5665633c75383e00007d03012c4f70656e696e675479706500006103012c5374616b65506f6c69637900004501013c4f7074696f6e3c42616c616e63653e00001c80456d697473206f6e20616464696e67206e6577206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e67206964342d204465736372697074696f6e782d204f70656e696e672054797065284c656164206f7220576f726b657229782d205374616b6520506f6c69637920666f7220746865206f70656e696e67482d205265776172642070657220626c6f636b404170706c6965644f6e4f70656e696e670800810301604170706c794f6e4f70656e696e67506172616d657465727300002801344170706c69636174696f6e4964000110dc456d697473206f6e20616464696e6720746865206170706c69636174696f6e20666f722074686520776f726b6572206f70656e696e672e1c506172616d733a542d204f70656e696e6720706172616d657465726573402d204170706c69636174696f6e206964344f70656e696e6746696c6c65640c002801244f70656e696e6749640000710301684170706c69636174696f6e4964546f576f726b657249644d617000006901015c42547265655365743c4170706c69636174696f6e49643e00021484456d697473206f6e2066696c6c696e6720746865206a6f62206f70656e696e672e1c506172616d733a4c2d20576f726b6572206f70656e696e67206964cc2d20576f726b6572206170706c69636174696f6e20696420746f2074686520776f726b65722069642064696374696f6e617279ac2d204170706c69636174696f6e6420696473207573656420746f2066696c6c20746865206f70656e696e67244c65616465725365740400280120576f726b6572496400030c88456d697473206f6e2073657474696e67207468652067726f7570206c65616465722e1c506172616d733a482d2047726f757020776f726b65722069642e60576f726b6572526f6c654163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964000410c4456d697473206f6e207570646174696e672074686520726f6c65206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e802d20526f6c65206163636f756e74206964206f662074686520776f726b65722e2c4c6561646572556e7365740005047c456d697473206f6e20756e2d73657474696e6720746865206c65616465722e30576f726b65724578697465640400280120576f726b6572496400061070456d697473206f6e2065786974696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e302d20526174696f6e616c652e50576f726b6572537461727465644c656176696e670800280120576f726b6572496400003101013c4f7074696f6e3c5665633c75383e3e000710b4456d697473207768656e20776f726b65722073746172746564206c656176696e6720746865697220726f6c652e1c506172616d733a302d20576f726b65722069642e302d20526174696f6e616c652e405465726d696e61746564576f726b65720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00081480456d697473206f6e207465726d696e6174696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e405465726d696e617465644c65616465720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00091480456d697473206f6e207465726d696e6174696e6720746865206c65616465722e1c506172616d733a4c2d206c656164657220776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e305374616b65536c61736865641000280120576f726b65724964000018011c42616c616e6365000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e000a18c0456d697473206f6e20736c617368696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e642d2061637475616c20736c61736865642062616c616e63652e702d2052657175657374656420736c61736865642062616c616e63652e302d20526174696f6e616c652e385374616b654465637265617365640800280120576f726b65724964000018011c42616c616e6365000b10c8456d697473206f6e2064656372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74385374616b65496e637265617365640800280120576f726b65724964000018011c42616c616e6365000c10c8456d697473206f6e20696e6372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74504170706c69636174696f6e57697468647261776e04002801344170706c69636174696f6e4964000d0c2501456d697473206f6e207769746864726177696e6720746865206170706c69636174696f6e20666f722074686520726567756c617220776f726b65722f6c656164206f70656e696e672e1c506172616d733a502d204a6f62206170706c69636174696f6e2069643c4f70656e696e6743616e63656c656404002801244f70656e696e674964000e0c8c456d697473206f6e2063616e63656c696e6720746865206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e6720696424427564676574536574040018011c42616c616e6365000f0cc8456d697473206f6e2073657474696e67207468652062756467657420666f722074686520776f726b696e672067726f75702e1c506172616d733a302d206e65772062756467657468576f726b65725265776172644163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964001010cc456d697473206f6e207570646174696e672074686520726577617264206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e882d20526577617264206163636f756e74206964206f662074686520776f726b65722e64576f726b6572526577617264416d6f756e74557064617465640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e001110c8456d697473206f6e207570646174696e67207468652072657761726420616d6f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e482d205265776172642070657220626c6f636b44537461747573546578744368616e67656408002c01104861736800003101013c4f7074696f6e3c5665633c75383e3e001210dc456d697473206f6e207570646174696e6720746865207374617475732074657874206f662074686520776f726b696e672067726f75702e1c506172616d733a482d2073746174757320746578742068617368342d207374617475732074657874384275646765745370656e64696e670c000001244163636f756e744964000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e001314c8456d697473206f6e206275646765742066726f6d2074686520776f726b696e672067726f7570206265696e67207370656e741c506172616d733a582d205265636569766572204163636f756e742049642e402d2042616c616e6365207370656e742e302d20526174696f6e616c652e28526577617264506169641000280120576f726b6572496400000001244163636f756e744964000018011c42616c616e636500008d0301445265776172645061796d656e74547970650014186c456d697473206f6e20706179696e6720746865207265776172642e1c506172616d733a4c2d204964206f662074686520776f726b65722e582d205265636569766572204163636f756e742049642e202d20526577617264b42d205061796d656e74207479706520286d697373656420726577617264206f7220726567756c6172206f6e65296c4e65774d69737365645265776172644c6576656c526561636865640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00151090456d697473206f6e207265616368696e67206e6577206d6973736564207265776172642e1c506172616d733a302d20576f726b65722049442ee82d204d69737365642072657761726420286f7074696f6e616c292e204e6f6e65206d65616e7320276e6f206d697373656420726577617264272e60576f726b696e6747726f757042756467657446756e6465640c002801204d656d6265724964000018011c42616c616e6365000030011c5665633c75383e0016147846756e642074686520776f726b696e672067726f7570206275646765742e1c506172616d733a2c2d204d656d6265722049444c2d20416d6f756e74206f662062616c616e63652c2d20526174696f6e616c65304c65616452656d61726b6564040030011c5665633c75383e00170c94456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a242d206d65737361676538576f726b657252656d61726b65640800280120576f726b65724964000030011c5665633c75383e00181094456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a202d20776f726b6572242d206d6573736167650c5c4576656e747320666f722074686973206d6f64756c652e00385f47726f75705f206576656e7473c503085070616c6c65745f776f726b696e675f67726f757024496e7374616e63653800000000c903085070616c6c65745f776f726b696e675f67726f7570205261774576656e7430244f70656e696e6749640128344170706c69636174696f6e49640128684170706c69636174696f6e4964546f576f726b657249644d617001710320576f726b657249640128244163636f756e74496401001c42616c616e636501182c4f70656e696e6754797065017d032c5374616b65506f6c696379016103604170706c794f6e4f70656e696e67506172616d6574657273018103204d656d626572496401281048617368012c044901cd030164304f70656e696e67416464656414002801244f70656e696e674964000030011c5665633c75383e00007d03012c4f70656e696e675479706500006103012c5374616b65506f6c69637900004501013c4f7074696f6e3c42616c616e63653e00001c80456d697473206f6e20616464696e67206e6577206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e67206964342d204465736372697074696f6e782d204f70656e696e672054797065284c656164206f7220576f726b657229782d205374616b6520506f6c69637920666f7220746865206f70656e696e67482d205265776172642070657220626c6f636b404170706c6965644f6e4f70656e696e670800810301604170706c794f6e4f70656e696e67506172616d657465727300002801344170706c69636174696f6e4964000110dc456d697473206f6e20616464696e6720746865206170706c69636174696f6e20666f722074686520776f726b6572206f70656e696e672e1c506172616d733a542d204f70656e696e6720706172616d657465726573402d204170706c69636174696f6e206964344f70656e696e6746696c6c65640c002801244f70656e696e6749640000710301684170706c69636174696f6e4964546f576f726b657249644d617000006901015c42547265655365743c4170706c69636174696f6e49643e00021484456d697473206f6e2066696c6c696e6720746865206a6f62206f70656e696e672e1c506172616d733a4c2d20576f726b6572206f70656e696e67206964cc2d20576f726b6572206170706c69636174696f6e20696420746f2074686520776f726b65722069642064696374696f6e617279ac2d204170706c69636174696f6e6420696473207573656420746f2066696c6c20746865206f70656e696e67244c65616465725365740400280120576f726b6572496400030c88456d697473206f6e2073657474696e67207468652067726f7570206c65616465722e1c506172616d733a482d2047726f757020776f726b65722069642e60576f726b6572526f6c654163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964000410c4456d697473206f6e207570646174696e672074686520726f6c65206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e802d20526f6c65206163636f756e74206964206f662074686520776f726b65722e2c4c6561646572556e7365740005047c456d697473206f6e20756e2d73657474696e6720746865206c65616465722e30576f726b65724578697465640400280120576f726b6572496400061070456d697473206f6e2065786974696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e302d20526174696f6e616c652e50576f726b6572537461727465644c656176696e670800280120576f726b6572496400003101013c4f7074696f6e3c5665633c75383e3e000710b4456d697473207768656e20776f726b65722073746172746564206c656176696e6720746865697220726f6c652e1c506172616d733a302d20576f726b65722069642e302d20526174696f6e616c652e405465726d696e61746564576f726b65720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00081480456d697473206f6e207465726d696e6174696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e405465726d696e617465644c65616465720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00091480456d697473206f6e207465726d696e6174696e6720746865206c65616465722e1c506172616d733a4c2d206c656164657220776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e305374616b65536c61736865641000280120576f726b65724964000018011c42616c616e6365000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e000a18c0456d697473206f6e20736c617368696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e642d2061637475616c20736c61736865642062616c616e63652e702d2052657175657374656420736c61736865642062616c616e63652e302d20526174696f6e616c652e385374616b654465637265617365640800280120576f726b65724964000018011c42616c616e6365000b10c8456d697473206f6e2064656372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74385374616b65496e637265617365640800280120576f726b65724964000018011c42616c616e6365000c10c8456d697473206f6e20696e6372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74504170706c69636174696f6e57697468647261776e04002801344170706c69636174696f6e4964000d0c2501456d697473206f6e207769746864726177696e6720746865206170706c69636174696f6e20666f722074686520726567756c617220776f726b65722f6c656164206f70656e696e672e1c506172616d733a502d204a6f62206170706c69636174696f6e2069643c4f70656e696e6743616e63656c656404002801244f70656e696e674964000e0c8c456d697473206f6e2063616e63656c696e6720746865206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e6720696424427564676574536574040018011c42616c616e6365000f0cc8456d697473206f6e2073657474696e67207468652062756467657420666f722074686520776f726b696e672067726f75702e1c506172616d733a302d206e65772062756467657468576f726b65725265776172644163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964001010cc456d697473206f6e207570646174696e672074686520726577617264206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e882d20526577617264206163636f756e74206964206f662074686520776f726b65722e64576f726b6572526577617264416d6f756e74557064617465640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e001110c8456d697473206f6e207570646174696e67207468652072657761726420616d6f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e482d205265776172642070657220626c6f636b44537461747573546578744368616e67656408002c01104861736800003101013c4f7074696f6e3c5665633c75383e3e001210dc456d697473206f6e207570646174696e6720746865207374617475732074657874206f662074686520776f726b696e672067726f75702e1c506172616d733a482d2073746174757320746578742068617368342d207374617475732074657874384275646765745370656e64696e670c000001244163636f756e744964000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e001314c8456d697473206f6e206275646765742066726f6d2074686520776f726b696e672067726f7570206265696e67207370656e741c506172616d733a582d205265636569766572204163636f756e742049642e402d2042616c616e6365207370656e742e302d20526174696f6e616c652e28526577617264506169641000280120576f726b6572496400000001244163636f756e744964000018011c42616c616e636500008d0301445265776172645061796d656e74547970650014186c456d697473206f6e20706179696e6720746865207265776172642e1c506172616d733a4c2d204964206f662074686520776f726b65722e582d205265636569766572204163636f756e742049642e202d20526577617264b42d205061796d656e74207479706520286d697373656420726577617264206f7220726567756c6172206f6e65296c4e65774d69737365645265776172644c6576656c526561636865640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00151090456d697473206f6e207265616368696e67206e6577206d6973736564207265776172642e1c506172616d733a302d20576f726b65722049442ee82d204d69737365642072657761726420286f7074696f6e616c292e204e6f6e65206d65616e7320276e6f206d697373656420726577617264272e60576f726b696e6747726f757042756467657446756e6465640c002801204d656d6265724964000018011c42616c616e6365000030011c5665633c75383e0016147846756e642074686520776f726b696e672067726f7570206275646765742e1c506172616d733a2c2d204d656d6265722049444c2d20416d6f756e74206f662062616c616e63652c2d20526174696f6e616c65304c65616452656d61726b6564040030011c5665633c75383e00170c94456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a242d206d65737361676538576f726b657252656d61726b65640800280120576f726b65724964000030011c5665633c75383e00181094456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a202d20776f726b6572242d206d6573736167650c5c4576656e747320666f722074686973206d6f64756c652e00385f47726f75705f206576656e7473cd03085070616c6c65745f776f726b696e675f67726f757024496e7374616e63653900000000d10308306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e00020000d5030000022c00d903000002dd0300dd0300000408101000e10308306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6ee503014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d65e903016473705f72756e74696d653a3a52756e74696d65537472696e670000e5030000061000e9030000050200ed030c306672616d655f73797374656d1870616c6c65741043616c6c0404540001201872656d61726b04011872656d61726b30011c5665633c75383e000010684d616b6520736f6d65206f6e2d636861696e2072656d61726b2e0034232320436f6d706c6578697479202d20604f28312960387365745f686561705f7061676573040114706167657328010c753634000104f853657420746865206e756d626572206f6620706167657320696e2074686520576562417373656d626c7920656e7669726f6e6d656e74277320686561702e207365745f636f6465040110636f646530011c5665633c75383e0002106453657420746865206e65772072756e74696d6520636f64652e0034232320436f6d706c657869747931012d20604f2843202b2053296020776865726520604360206c656e677468206f662060636f64656020616e642060536020636f6d706c6578697479206f66206063616e5f7365745f636f6465605c7365745f636f64655f776974686f75745f636865636b73040110636f646530011c5665633c75383e000310190153657420746865206e65772072756e74696d6520636f646520776974686f757420646f696e6720616e7920636865636b73206f662074686520676976656e2060636f6465602e0034232320436f6d706c65786974798c2d20604f2843296020776865726520604360206c656e677468206f662060636f6465602c7365745f73746f726167650401146974656d73f10301345665633c4b657956616c75653e0004046853657420736f6d65206974656d73206f662073746f726167652e306b696c6c5f73746f726167650401106b657973a90201205665633c4b65793e000504744b696c6c20736f6d65206974656d732066726f6d2073746f726167652e2c6b696c6c5f70726566697808011870726566697830010c4b657900011c7375626b65797310010c75333200061011014b696c6c20616c6c2073746f72616765206974656d7320776974682061206b657920746861742073746172747320776974682074686520676976656e207072656669782e0039012a2a4e4f54453a2a2a2057652072656c79206f6e2074686520526f6f74206f726967696e20746f2070726f7669646520757320746865206e756d626572206f66207375626b65797320756e6465723d0174686520707265666978207765206172652072656d6f76696e6720746f2061636375726174656c792063616c63756c6174652074686520776569676874206f6620746869732066756e6374696f6e2e4472656d61726b5f776974685f6576656e7404011872656d61726b30011c5665633c75383e000704a44d616b6520736f6d65206f6e2d636861696e2072656d61726b20616e6420656d6974206576656e742e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ef103000002f50300f50300000408303000f9030c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2001185765696768740001246d61785f626c6f636b2001185765696768740001247065725f636c617373fd0301845065724469737061746368436c6173733c57656967687473506572436c6173733e0000fd030c346672616d655f737570706f7274206469737061746368405065724469737061746368436c617373040454010104000c01186e6f726d616c010401045400012c6f7065726174696f6e616c01040104540001246d616e6461746f72790104010454000001040c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632001185765696768740001346d61785f65787472696e736963050401384f7074696f6e3c5765696768743e0001246d61785f746f74616c050401384f7074696f6e3c5765696768743e0001207265736572766564050401384f7074696f6e3c5765696768743e0000050404184f7074696f6e04045401200108104e6f6e6500000010536f6d65040020000001000009040c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d61780d0401545065724469737061746368436c6173733c7533323e00000d040c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f72791001045400001104082873705f776569676874733c52756e74696d65446257656967687400000801107265616428010c753634000114777269746528010c75363400001504082873705f76657273696f6e3852756e74696d6556657273696f6e0000200124737065635f6e616d65e903013452756e74696d65537472696e67000124696d706c5f6e616d65e903013452756e74696d65537472696e67000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c753332000110617069731904011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c75333200013473746174655f76657273696f6e080108753800001904040c436f77040454011d040004001d040000001d04000002210400210400000408250410002504000003080000000800290400000504002d040c306672616d655f73797374656d1870616c6c6574144572726f720404540001183c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e3043616c6c46696c7465726564000504d0546865206f726967696e2066696c7465722070726576656e74207468652063616c6c20746f20626520646973706174636865642e046c4572726f7220666f72207468652053797374656d2070616c6c657431040c3870616c6c65745f7574696c6974791870616c6c65741043616c6c04045400011814626174636804011463616c6c733504017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0000487c53656e642061206261746368206f662064697370617463682063616c6c732e00b04d61792062652063616c6c65642066726f6d20616e79206f726967696e2065786365707420604e6f6e65602e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e0055014966206f726967696e20697320726f6f74207468656e207468652063616c6c7320617265206469737061746368656420776974686f757420636865636b696e67206f726967696e2066696c7465722e202854686973ec696e636c7564657320627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e0034232320436f6d706c6578697479d02d204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e005501546869732077696c6c2072657475726e20604f6b6020696e20616c6c2063697263756d7374616e6365732e20546f2064657465726d696e65207468652073756363657373206f66207468652062617463682c20616e31016576656e74206973206465706f73697465642e20496620612063616c6c206661696c656420616e64207468652062617463682077617320696e7465727275707465642c207468656e207468655501604261746368496e74657272757074656460206576656e74206973206465706f73697465642c20616c6f6e67207769746820746865206e756d626572206f66207375636365737366756c2063616c6c73206d6164654d01616e6420746865206572726f72206f6620746865206661696c65642063616c6c2e20496620616c6c2077657265207375636365737366756c2c207468656e2074686520604261746368436f6d706c65746564604c6576656e74206973206465706f73697465642e3461735f64657269766174697665080114696e6465782904010c75313600011063616c6c3904017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000134dc53656e6420612063616c6c207468726f75676820616e20696e64657865642070736575646f6e796d206f66207468652073656e6465722e00550146696c7465722066726f6d206f726967696e206172652070617373656420616c6f6e672e205468652063616c6c2077696c6c2062652064697370617463686564207769746820616e206f726967696e207768696368bc757365207468652073616d652066696c74657220617320746865206f726967696e206f6620746869732063616c6c2e0045014e4f54453a20496620796f75206e65656420746f20656e73757265207468617420616e79206163636f756e742d62617365642066696c746572696e67206973206e6f7420686f6e6f7265642028692e652e61016265636175736520796f7520657870656374206070726f78796020746f2068617665206265656e2075736564207072696f7220696e207468652063616c6c20737461636b20616e6420796f7520646f206e6f742077616e7451017468652063616c6c207265737472696374696f6e7320746f206170706c7920746f20616e79207375622d6163636f756e7473292c207468656e20757365206061735f6d756c74695f7468726573686f6c645f31607c696e20746865204d756c74697369672070616c6c657420696e73746561642e00f44e4f54453a205072696f7220746f2076657273696f6e202a31322c2074686973207761732063616c6c6564206061735f6c696d697465645f737562602e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e2462617463685f616c6c04011463616c6c733504017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000234ec53656e642061206261746368206f662064697370617463682063616c6c7320616e642061746f6d6963616c6c792065786563757465207468656d2e21015468652077686f6c65207472616e73616374696f6e2077696c6c20726f6c6c6261636b20616e64206661696c20696620616e79206f66207468652063616c6c73206661696c65642e00b04d61792062652063616c6c65642066726f6d20616e79206f726967696e2065786365707420604e6f6e65602e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e0055014966206f726967696e20697320726f6f74207468656e207468652063616c6c7320617265206469737061746368656420776974686f757420636865636b696e67206f726967696e2066696c7465722e202854686973ec696e636c7564657320627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e0034232320436f6d706c6578697479d02d204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e2c64697370617463685f617308012461735f6f726967696e91060154426f783c543a3a50616c6c6574734f726967696e3e00011063616c6c3904017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000318c84469737061746368657320612066756e6374696f6e2063616c6c207769746820612070726f7669646564206f726967696e2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e0034232320436f6d706c65786974791c2d204f2831292e2c666f7263655f626174636804011463616c6c733504017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0004347c53656e642061206261746368206f662064697370617463682063616c6c732ed4556e6c696b6520606261746368602c20697420616c6c6f7773206572726f727320616e6420776f6e277420696e746572727570742e00b04d61792062652063616c6c65642066726f6d20616e79206f726967696e2065786365707420604e6f6e65602e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e004d014966206f726967696e20697320726f6f74207468656e207468652063616c6c732061726520646973706174636820776974686f757420636865636b696e67206f726967696e2066696c7465722e202854686973ec696e636c7564657320627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e0034232320436f6d706c6578697479d02d204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e2c776974685f77656967687408011063616c6c3904017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000118776569676874200118576569676874000518c4446973706174636820612066756e6374696f6e2063616c6c2077697468206120737065636966696564207765696768742e002d01546869732066756e6374696f6e20646f6573206e6f7420636865636b2074686520776569676874206f66207468652063616c6c2c20616e6420696e737465616420616c6c6f777320746865b8526f6f74206f726967696e20746f20737065636966792074686520776569676874206f66207468652063616c6c2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e3504000002390400390408586a6f7973747265616d5f6e6f64655f72756e74696d652c52756e74696d6543616c6c00018c1853797374656d0400ed0301ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e0000001c5574696c6974790400310401b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5574696c6974792c2052756e74696d653e000100104261626504003d0401a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c426162652c2052756e74696d653e0002002454696d657374616d700400610401b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e0003002042616c616e6365730400650401b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e00050068456c656374696f6e50726f76696465724d756c746950686173650400690401fd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c456c656374696f6e50726f76696465724d756c746950686173652c2052756e74696d653e0007001c5374616b696e670400550501b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5374616b696e672c2052756e74696d653e0008001c53657373696f6e0400790501b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53657373696f6e2c2052756e74696d653e0009001c4772616e6470610400850501b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4772616e6470612c2052756e74696d653e000b0020496d4f6e6c696e650400b50501b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c496d4f6e6c696e652c2052756e74696d653e000d0020426167734c6973740400d50501b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c426167734c6973742c2052756e74696d653e0010001c56657374696e670400d90501b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c56657374696e672c2052756e74696d653e001100204d756c74697369670400e10501b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d756c74697369672c2052756e74696d653e0012001c436f756e63696c0400e90501b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f756e63696c2c2052756e74696d653e001300285265666572656e64756d0400ed0501bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5265666572656e64756d2c2052756e74696d653e0014001c4d656d626572730400f10501b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d656d626572732c2052756e74696d653e00150014466f72756d0400f50501a90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c466f72756d2c2052756e74696d653e00160030436f6e737469747574696f6e0400f90501c50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f6e737469747574696f6e2c2052756e74696d653e00170018426f756e74790400fd0501ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c426f756e74792c2052756e74696d653e001800404a6f7973747265616d5574696c6974790400010601d50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4a6f7973747265616d5574696c6974792c2052756e74696d653e0019001c436f6e74656e740400050601b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f6e74656e742c2052756e74696d653e001a001c53746f726167650400350601b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53746f726167652c2052756e74696d653e001b003050726f6a656374546f6b656e0400390601c50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50726f6a656374546f6b656e2c2052756e74696d653e001c003c50726f706f73616c73456e67696e650400610601d10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50726f706f73616c73456e67696e652c2052756e74696d653e001d004c50726f706f73616c7344697363757373696f6e0400650601e10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50726f706f73616c7344697363757373696f6e2c2052756e74696d653e001e003850726f706f73616c73436f6465780400690601cd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50726f706f73616c73436f6465782c2052756e74696d653e001f0044466f72756d576f726b696e6747726f757004006d0601d90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c466f72756d576f726b696e6747726f75702c2052756e74696d653e0020004c53746f72616765576f726b696e6747726f75700400710601e10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53746f72616765576f726b696e6747726f75702c2052756e74696d653e0021004c436f6e74656e74576f726b696e6747726f75700400750601e10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f6e74656e74576f726b696e6747726f75702c2052756e74696d653e0022006c4f7065726174696f6e73576f726b696e6747726f7570416c7068610400790601010273656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4f7065726174696f6e73576f726b696e6747726f7570416c7068612c2052756e74696d653e0023003c417070576f726b696e6747726f757004007d0601d10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c417070576f726b696e6747726f75702c2052756e74696d653e002400584d656d62657273686970576f726b696e6747726f75700400810601ed0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d656d62657273686970576f726b696e6747726f75702c2052756e74696d653e002500684f7065726174696f6e73576f726b696e6747726f7570426574610400850601fd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4f7065726174696f6e73576f726b696e6747726f7570426574612c2052756e74696d653e0026006c4f7065726174696f6e73576f726b696e6747726f757047616d6d610400890601010273656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4f7065726174696f6e73576f726b696e6747726f757047616d6d612c2052756e74696d653e00270060446973747269627574696f6e576f726b696e6747726f757004008d0601f50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c446973747269627574696f6e576f726b696e6747726f75702c2052756e74696d653e002800003d040c2c70616c6c65745f626162651870616c6c65741043616c6c04045400010c4c7265706f72745f65717569766f636174696f6e08014865717569766f636174696f6e5f70726f6f6641040184426f783c45717569766f636174696f6e50726f6f663c543a3a4865616465723e3e00013c6b65795f6f776e65725f70726f6f6655040140543a3a4b65794f776e657250726f6f6600001009015265706f727420617574686f726974792065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667905017468652065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f660d01616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c306265207265706f727465642e707265706f72745f65717569766f636174696f6e5f756e7369676e656408014865717569766f636174696f6e5f70726f6f6641040184426f783c45717569766f636174696f6e50726f6f663c543a3a4865616465723e3e00013c6b65795f6f776e65725f70726f6f6655040140543a3a4b65794f776e657250726f6f6600012009015265706f727420617574686f726974792065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667905017468652065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f660d01616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c306265207265706f727465642e0d01546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c791501626c6f636b20617574686f72732077696c6c2063616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c2061732073756368150169662074686520626c6f636b20617574686f7220697320646566696e65642069742077696c6c20626520646566696e6564206173207468652065717569766f636174696f6e247265706f727465722e48706c616e5f636f6e6669675f6368616e6765040118636f6e666967590401504e657874436f6e66696744657363726970746f720002105d01506c616e20616e2065706f636820636f6e666967206368616e67652e205468652065706f636820636f6e666967206368616e6765206973207265636f7264656420616e642077696c6c20626520656e6163746564206f6e5101746865206e6578742063616c6c20746f2060656e6163745f65706f63685f6368616e6765602e2054686520636f6e6669672077696c6c20626520616374697661746564206f6e652065706f63682061667465722e59014d756c7469706c652063616c6c7320746f2074686973206d6574686f642077696c6c207265706c61636520616e79206578697374696e6720706c616e6e656420636f6e666967206368616e6765207468617420686164546e6f74206265656e20656e6163746564207965742e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e4104084873705f636f6e73656e7375735f736c6f74734445717569766f636174696f6e50726f6f660818486561646572014504084964014d04001001206f6666656e6465724d0401084964000110736c6f7451040110536c6f7400013066697273745f686561646572450401184865616465720001347365636f6e645f6865616465724504011848656164657200004504102873705f72756e74696d651c67656e65726963186865616465721848656164657208184e756d626572011010486173680149040014012c706172656e745f686173682c0130486173683a3a4f75747075740001186e756d626572e50301184e756d62657200012873746174655f726f6f742c0130486173683a3a4f757470757400013c65787472696e736963735f726f6f742c0130486173683a3a4f7574707574000118646967657374340118446967657374000049040c2873705f72756e74696d65187472616974732c426c616b6554776f323536000000004d040c4473705f636f6e73656e7375735f626162650c617070185075626c696300000400dc013c737232353531393a3a5075626c696300005104084873705f636f6e73656e7375735f736c6f747310536c6f740000040028010c75363400005504082873705f73657373696f6e3c4d656d6265727368697050726f6f6600000c011c73657373696f6e10013053657373696f6e496e646578000128747269655f6e6f646573a90201305665633c5665633c75383e3e00013c76616c696461746f725f636f756e7410013856616c696461746f72436f756e74000059040c4473705f636f6e73656e7375735f626162651c64696765737473504e657874436f6e66696744657363726970746f720001040856310801046379030128287536342c2075363429000134616c6c6f7765645f736c6f74735d040130416c6c6f776564536c6f7473000100005d04084473705f636f6e73656e7375735f6261626530416c6c6f776564536c6f747300010c305072696d617279536c6f7473000000745072696d617279416e645365636f6e64617279506c61696e536c6f74730001006c5072696d617279416e645365636f6e64617279565246536c6f74730002000061040c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f77240124543a3a4d6f6d656e7400003c54536574207468652063757272656e742074696d652e005501546869732063616c6c2073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6ed470686173652c20696620746869732063616c6c206861736e2774206265656e20696e766f6b656420627920746861742074696d652e0041015468652074696d657374616d702073686f756c642062652067726561746572207468616e207468652070726576696f7573206f6e652062792074686520616d6f756e742073706563696669656420627940604d696e696d756d506572696f64602e00d4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060496e686572656e74602e0034232320436f6d706c657869747931012d20604f2831296020284e6f7465207468617420696d706c656d656e746174696f6e73206f6620604f6e54696d657374616d7053657460206d75737420616c736f20626520604f283129602961012d20312073746f72616765207265616420616e6420312073746f72616765206d75746174696f6e2028636f64656320604f28312960292e202862656361757365206f6620604469645570646174653a3a74616b656020696e402020606f6e5f66696e616c697a656029d42d2031206576656e742068616e646c657220606f6e5f74696d657374616d705f736574602e204d75737420626520604f283129602e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e65040c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c080454000449000118207472616e73666572080110646573740001504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565ec0128543a3a42616c616e6365000058d45472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572206163636f756e742e000501607472616e73666572602077696c6c207365742074686520604672656542616c616e636560206f66207468652073656e64657220616e642072656365697665722e11014966207468652073656e6465722773206163636f756e742069732062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c74b06f6620746865207472616e736665722c20746865206163636f756e742077696c6c206265207265617065642e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520605369676e65646020627920746865207472616e736163746f722e0034232320436f6d706c657869747961012d20446570656e64656e74206f6e20617267756d656e747320627574206e6f7420637269746963616c2c20676976656e2070726f70657220696d706c656d656e746174696f6e7320666f7220696e70757420636f6e66696794202074797065732e205365652072656c617465642066756e6374696f6e732062656c6f772e31012d20497420636f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e642077726974657320696e7465726e616c6c7920616e64206e6f20636f6d706c6578382020636f6d7075746174696f6e2e004852656c617465642066756e6374696f6e733a004d0120202d2060656e737572655f63616e5f77697468647261776020697320616c776179732063616c6c656420696e7465726e616c6c792062757420686173206120626f756e64656420636f6d706c65786974792e290120202d205472616e7366657272696e672062616c616e63657320746f206163636f756e7473207468617420646964206e6f74206578697374206265666f72652077696c6c206361757365cc2020202060543a3a4f6e4e65774163636f756e743a3a6f6e5f6e65775f6163636f756e746020746f2062652063616c6c65642e5d0120202d2052656d6f76696e6720656e6f7567682066756e64732066726f6d20616e206163636f756e742077696c6c20747269676765722060543a3a4475737452656d6f76616c3a3a6f6e5f756e62616c616e636564602e5d0120202d20607472616e736665725f6b6565705f616c6976656020776f726b73207468652073616d652077617920617320607472616e73666572602c206275742068617320616e206164646974696f6e616c20636865636bdc202020207468617420746865207472616e736665722077696c6c206e6f74206b696c6c20746865206f726967696e206163636f756e742e2c7365745f62616c616e63650c010c77686f0001504163636f756e7449644c6f6f6b75704f663c543e0001206e65775f66726565ec0128543a3a42616c616e63650001306e65775f7265736572766564ec0128543a3a42616c616e636500012090536574207468652062616c616e636573206f66206120676976656e206163636f756e742e001d01546869732077696c6c20616c74657220604672656542616c616e63656020616e642060526573657276656442616c616e63656020696e2073746f726167652e2069742077696c6c3101616c736f20616c7465722074686520746f74616c2069737375616e6365206f66207468652073797374656d202860546f74616c49737375616e6365602920617070726f7072696174656c792e1501496620746865206e65772066726565206f722072657365727665642062616c616e63652069732062656c6f7720746865206578697374656e7469616c206465706f7369742cfc69742077696c6c20726573657420746865206163636f756e74206e6f6e63652028606672616d655f73797374656d3a3a4163636f756e744e6f6e636560292e00b0546865206469737061746368206f726967696e20666f7220746869732063616c6c2069732060726f6f74602e38666f7263655f7472616e736665720c0118736f757263650001504163636f756e7449644c6f6f6b75704f663c543e000110646573740001504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565ec0128543a3a42616c616e63650002144d0145786163746c7920617320607472616e73666572602c2065786365707420746865206f726967696e206d75737420626520726f6f7420616e642074686520736f75726365206163636f756e74206d6179206265287370656369666965642e34232320436f6d706c65786974794d012d2053616d65206173207472616e736665722c20627574206164646974696f6e616c207265616420616e6420777269746520626563617573652074686520736f75726365206163636f756e74206973206e6f747c2020617373756d656420746f20626520696e20746865206f7665726c61792e4c7472616e736665725f6b6565705f616c697665080110646573740001504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565ec0128543a3a42616c616e63650003184d0153616d6520617320746865205b607472616e73666572605d2063616c6c2c206275742077697468206120636865636b207468617420746865207472616e736665722077696c6c206e6f74206b696c6c207468653c6f726967696e206163636f756e742e00b8393925206f66207468652074696d6520796f752077616e74205b607472616e73666572605d20696e73746561642e00c05b607472616e73666572605d3a207374727563742e50616c6c65742e68746d6c236d6574686f642e7472616e73666572307472616e736665725f616c6c080110646573740001504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c697665980110626f6f6c00044005015472616e736665722074686520656e74697265207472616e7366657261626c652062616c616e63652066726f6d207468652063616c6c6572206163636f756e742e0059014e4f54453a20546869732066756e6374696f6e206f6e6c7920617474656d70747320746f207472616e73666572205f7472616e7366657261626c655f2062616c616e6365732e2054686973206d65616e7320746861746101616e79206c6f636b65642c2072657365727665642c206f72206578697374656e7469616c206465706f7369747320287768656e20606b6565705f616c6976656020697320607472756560292c2077696c6c206e6f742062655d017472616e7366657272656420627920746869732066756e6374696f6e2e20546f20656e73757265207468617420746869732066756e6374696f6e20726573756c747320696e2061206b696c6c6564206163636f756e742c4501796f75206d69676874206e65656420746f207072657061726520746865206163636f756e742062792072656d6f76696e6720616e79207265666572656e636520636f756e746572732c2073746f72616765406465706f736974732c206574632e2e2e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205369676e65642e00a02d206064657374603a2054686520726563697069656e74206f6620746865207472616e736665722e59012d20606b6565705f616c697665603a204120626f6f6c65616e20746f2064657465726d696e652069662074686520607472616e736665725f616c6c60206f7065726174696f6e2073686f756c642073656e6420616c6c4d0120206f66207468652066756e647320746865206163636f756e74206861732c2063617573696e67207468652073656e646572206163636f756e7420746f206265206b696c6c6564202866616c7365292c206f72590120207472616e736665722065766572797468696e6720657863657074206174206c6561737420746865206578697374656e7469616c206465706f7369742c2077686963682077696c6c2067756172616e74656520746fd420206b656570207468652073656e646572206163636f756e7420616c697665202874727565292e20232320436f6d706c657869747939012d204f2831292e204a757374206c696b65207472616e736665722c206275742072656164696e672074686520757365722773207472616e7366657261626c652062616c616e63652066697273742e3c666f7263655f756e7265736572766508010c77686f0001504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74180128543a3a42616c616e636500050cb0556e7265736572766520736f6d652062616c616e63652066726f6d2061207573657220627920666f7263652e006c43616e206f6e6c792062652063616c6c656420627920524f4f542e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e69040c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173651870616c6c65741043616c6c0404540001143c7375626d69745f756e7369676e65640801307261775f736f6c7574696f6e6d0401b0426f783c526177536f6c7574696f6e3c536f6c7574696f6e4f663c543a3a4d696e6572436f6e6669673e3e3e00011c7769746e6573733d050158536f6c7574696f6e4f72536e617073686f7453697a65000038a45375626d6974206120736f6c7574696f6e20666f722074686520756e7369676e65642070686173652e00c8546865206469737061746368206f726967696e20666f20746869732063616c6c206d757374206265205f5f6e6f6e655f5f2e003d0154686973207375626d697373696f6e20697320636865636b6564206f6e2074686520666c792e204d6f72656f7665722c207468697320756e7369676e656420736f6c7574696f6e206973206f6e6c79550176616c696461746564207768656e207375626d697474656420746f2074686520706f6f6c2066726f6d20746865202a2a6c6f63616c2a2a206e6f64652e204566666563746976656c792c2074686973206d65616e735d0174686174206f6e6c79206163746976652076616c696461746f72732063616e207375626d69742074686973207472616e73616374696f6e207768656e20617574686f72696e67206120626c6f636b202873696d696c617240746f20616e20696e686572656e74292e005901546f2070726576656e7420616e7920696e636f727265637420736f6c7574696f6e2028616e642074687573207761737465642074696d652f776569676874292c2074686973207472616e73616374696f6e2077696c6c4d0170616e69632069662074686520736f6c7574696f6e207375626d6974746564206279207468652076616c696461746f7220697320696e76616c696420696e20616e79207761792c206566666563746976656c799c70757474696e6720746865697220617574686f72696e6720726577617264206174207269736b2e00e04e6f206465706f736974206f7220726577617264206973206173736f63696174656420776974682074686973207375626d697373696f6e2e6c7365745f6d696e696d756d5f756e747275737465645f73636f72650401406d617962655f6e6578745f73636f7265410501544f7074696f6e3c456c656374696f6e53636f72653e000114b05365742061206e65772076616c756520666f7220604d696e696d756d556e7472757374656453636f7265602e00d84469737061746368206f726967696e206d75737420626520616c69676e656420776974682060543a3a466f7263654f726967696e602e00f05468697320636865636b2063616e206265207475726e6564206f66662062792073657474696e67207468652076616c756520746f20604e6f6e65602e747365745f656d657267656e63795f656c656374696f6e5f726573756c74040120737570706f72747345050158537570706f7274733c543a3a4163636f756e7449643e0002205901536574206120736f6c7574696f6e20696e207468652071756575652c20746f2062652068616e646564206f757420746f2074686520636c69656e74206f6620746869732070616c6c657420696e20746865206e6578748863616c6c20746f2060456c656374696f6e50726f76696465723a3a656c656374602e004501546869732063616e206f6e6c79206265207365742062792060543a3a466f7263654f726967696e602c20616e64206f6e6c79207768656e207468652070686173652069732060456d657267656e6379602e00610154686520736f6c7574696f6e206973206e6f7420636865636b656420666f7220616e7920666561736962696c69747920616e6420697320617373756d656420746f206265207472757374776f727468792c20617320616e795101666561736962696c69747920636865636b20697473656c662063616e20696e207072696e6369706c652063617573652074686520656c656374696f6e2070726f6365737320746f206661696c202864756520746f686d656d6f72792f77656967687420636f6e73747261696e73292e187375626d69740401307261775f736f6c7574696f6e6d0401b0426f783c526177536f6c7574696f6e3c536f6c7574696f6e4f663c543a3a4d696e6572436f6e6669673e3e3e0003249c5375626d6974206120736f6c7574696f6e20666f7220746865207369676e65642070686173652e00d0546865206469737061746368206f726967696e20666f20746869732063616c6c206d757374206265205f5f7369676e65645f5f2e005d0154686520736f6c7574696f6e20697320706f74656e7469616c6c79207175657565642c206261736564206f6e2074686520636c61696d65642073636f726520616e642070726f6365737365642061742074686520656e64506f6620746865207369676e65642070686173652e005d0141206465706f73697420697320726573657276656420616e64207265636f7264656420666f722074686520736f6c7574696f6e2e204261736564206f6e20746865206f7574636f6d652c2074686520736f6c7574696f6e15016d696768742062652072657761726465642c20736c61736865642c206f722067657420616c6c206f7220612070617274206f6620746865206465706f736974206261636b2e4c676f7665726e616e63655f66616c6c6261636b0801406d617962655f6d61785f766f746572730102012c4f7074696f6e3c7533323e0001446d617962655f6d61785f746172676574730102012c4f7074696f6e3c7533323e00041080547269676765722074686520676f7665726e616e63652066616c6c6261636b2e004901546869732063616e206f6e6c792062652063616c6c6564207768656e205b6050686173653a3a456d657267656e6379605d20697320656e61626c65642c20617320616e20616c7465726e617469766520746fc063616c6c696e67205b6043616c6c3a3a7365745f656d657267656e63795f656c656374696f6e5f726573756c74605d2e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e6d04089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173652c526177536f6c7574696f6e040453017104000c0120736f6c7574696f6e710401045300011473636f72659c0134456c656374696f6e53636f7265000114726f756e6410010c7533320000710408586a6f7973747265616d5f6e6f64655f72756e74696d65384e706f73536f6c7574696f6e31360000400118766f74657331750400000118766f74657332810400000118766f74657333950400000118766f74657334a10400000118766f74657335ad0400000118766f74657336b90400000118766f74657337c50400000118766f74657338d10400000118766f74657339dd040000011c766f7465733130e9040000011c766f7465733131f5040000011c766f746573313201050000011c766f74657331330d050000011c766f746573313419050000011c766f746573313525050000011c766f746573313631050000007504000002790400790400000408e5037d04007d04000006290400810400000285040085040000040ce50389047d04008904000004087d048d04008d0400000691040091040c3473705f61726974686d65746963287065725f7468696e677318506572553136000004002904010c7531360000950400000299040099040000040ce5039d047d04009d0400000302000000890400a104000002a50400a5040000040ce503a9047d0400a90400000303000000890400ad04000002b10400b1040000040ce503b5047d0400b50400000304000000890400b904000002bd0400bd040000040ce503c1047d0400c10400000305000000890400c504000002c90400c9040000040ce503cd047d0400cd0400000306000000890400d104000002d50400d5040000040ce503d9047d0400d90400000307000000890400dd04000002e10400e1040000040ce503e5047d0400e50400000308000000890400e904000002ed0400ed040000040ce503f1047d0400f10400000309000000890400f504000002f90400f9040000040ce503fd047d0400fd040000030a000000890400010500000205050005050000040ce50309057d040009050000030b0000008904000d0500000211050011050000040ce50315057d040015050000030c00000089040019050000021d05001d050000040ce50321057d040021050000030d000000890400250500000229050029050000040ce5032d057d04002d050000030e000000890400310500000235050035050000040ce50339057d040039050000030f0000008904003d05089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f706861736558536f6c7574696f6e4f72536e617073686f7453697a650000080118766f74657273e503010c75333200011c74617267657473e503010c7533320000410504184f7074696f6e040454019c0108104e6f6e6500000010536f6d6504009c00000100004505000002490500490500000408004d05004d05084473705f6e706f735f656c656374696f6e731c537570706f727404244163636f756e744964010000080114746f74616c18013c457874656e64656442616c616e6365000118766f74657273510501845665633c284163636f756e7449642c20457874656e64656442616c616e6365293e000051050000024d01005505103870616c6c65745f7374616b696e671870616c6c65741870616c6c65741043616c6c04045400016810626f6e640c0128636f6e74726f6c6c65720001504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565ec013042616c616e63654f663c543e00011470617965655905017c52657761726444657374696e6174696f6e3c543a3a4163636f756e7449643e00003c610154616b6520746865206f726967696e206163636f756e74206173206120737461736820616e64206c6f636b207570206076616c756560206f66206974732062616c616e63652e2060636f6e74726f6c6c6572602077696c6c80626520746865206163636f756e74207468617420636f6e74726f6c732069742e002d016076616c756560206d757374206265206d6f7265207468616e2074686520606d696e696d756d5f62616c616e636560207370656369666965642062792060543a3a43757272656e6379602e002101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20627920746865207374617368206163636f756e742e003c456d6974732060426f6e646564602e34232320436f6d706c6578697479d02d20496e646570656e64656e74206f662074686520617267756d656e74732e204d6f64657261746520636f6d706c65786974792e1c2d204f2831292e642d20546872656520657874726120444220656e74726965732e004d014e4f54453a2054776f206f66207468652073746f726167652077726974657320286053656c663a3a626f6e646564602c206053656c663a3a7061796565602920617265205f6e657665725f20636c65616e65643d01756e6c6573732074686520606f726967696e602066616c6c732062656c6f77205f6578697374656e7469616c206465706f7369745f20616e6420676574732072656d6f76656420617320647573742e28626f6e645f65787472610401386d61785f6164646974696f6e616cec013042616c616e63654f663c543e000138610141646420736f6d6520657874726120616d6f756e742074686174206861766520617070656172656420696e207468652073746173682060667265655f62616c616e63656020696e746f207468652062616c616e636520757030666f72207374616b696e672e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c65722e004d01557365207468697320696620746865726520617265206164646974696f6e616c2066756e647320696e20796f7572207374617368206163636f756e74207468617420796f75207769736820746f20626f6e642e5501556e6c696b65205b60626f6e64605d2853656c663a3a626f6e6429206f72205b60756e626f6e64605d2853656c663a3a756e626f6e642920746869732066756e6374696f6e20646f6573206e6f7420696d706f7365bc616e79206c696d69746174696f6e206f6e2074686520616d6f756e7420746861742063616e2062652061646465642e003c456d6974732060426f6e646564602e0034232320436f6d706c6578697479e42d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e1c2d204f2831292e18756e626f6e6404011476616c7565ec013042616c616e63654f663c543e00024c51015363686564756c65206120706f7274696f6e206f662074686520737461736820746f20626520756e6c6f636b656420726561647920666f72207472616e73666572206f75742061667465722074686520626f6e64fc706572696f6420656e64732e2049662074686973206c656176657320616e20616d6f756e74206163746976656c7920626f6e646564206c657373207468616e2101543a3a43757272656e63793a3a6d696e696d756d5f62616c616e636528292c207468656e20697420697320696e6372656173656420746f207468652066756c6c20616d6f756e742e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0045014f6e63652074686520756e6c6f636b20706572696f6420697320646f6e652c20796f752063616e2063616c6c206077697468647261775f756e626f6e6465646020746f2061637475616c6c79206d6f7665bc7468652066756e6473206f7574206f66206d616e6167656d656e7420726561647920666f72207472616e736665722e0031014e6f206d6f7265207468616e2061206c696d69746564206e756d626572206f6620756e6c6f636b696e67206368756e6b73202873656520604d6178556e6c6f636b696e674368756e6b736029410163616e20636f2d657869737473206174207468652073616d652074696d652e20496620746865726520617265206e6f20756e6c6f636b696e67206368756e6b7320736c6f747320617661696c61626c6545015b6043616c6c3a3a77697468647261775f756e626f6e646564605d2069732063616c6c656420746f2072656d6f766520736f6d65206f6620746865206368756e6b732028696620706f737369626c65292e00390149662061207573657220656e636f756e74657273207468652060496e73756666696369656e74426f6e6460206572726f72207768656e2063616c6c696e6720746869732065787472696e7369632c1901746865792073686f756c642063616c6c20606368696c6c6020666972737420696e206f7264657220746f206672656520757020746865697220626f6e6465642066756e64732e0044456d6974732060556e626f6e646564602e009453656520616c736f205b6043616c6c3a3a77697468647261775f756e626f6e646564605d2e4477697468647261775f756e626f6e6465640401486e756d5f736c617368696e675f7370616e7310010c753332000338290152656d6f766520616e7920756e6c6f636b6564206368756e6b732066726f6d207468652060756e6c6f636b696e67602071756575652066726f6d206f7572206d616e6167656d656e742e0031015468697320657373656e7469616c6c7920667265657320757020746861742062616c616e636520746f206265207573656420627920746865207374617368206163636f756e7420746f20646f4877686174657665722069742077616e74732e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722e0048456d697473206057697468647261776e602e006853656520616c736f205b6043616c6c3a3a756e626f6e64605d2e0034232320436f6d706c6578697479d84f285329207768657265205320697320746865206e756d626572206f6620736c617368696e67207370616e7320746f2072656d6f766509014e4f54453a2057656967687420616e6e6f746174696f6e20697320746865206b696c6c207363656e6172696f2c20776520726566756e64206f74686572776973652e2076616c69646174650401147072656673b0013856616c696461746f725072656673000414e44465636c617265207468652064657369726520746f2076616c696461746520666f7220746865206f726967696e20636f6e74726f6c6c65722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e206e6f6d696e61746504011c746172676574735d0501645665633c4163636f756e7449644c6f6f6b75704f663c543e3e0005280d014465636c617265207468652064657369726520746f206e6f6d696e6174652060746172676574736020666f7220746865206f726967696e20636f6e74726f6c6c65722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0034232320436f6d706c65786974792d012d20546865207472616e73616374696f6e277320636f6d706c65786974792069732070726f706f7274696f6e616c20746f207468652073697a65206f662060746172676574736020284e29050177686963682069732063617070656420617420436f6d7061637441737369676e6d656e74733a3a4c494d49542028543a3a4d61784e6f6d696e6174696f6e73292ed42d20426f74682074686520726561647320616e642077726974657320666f6c6c6f7720612073696d696c6172207061747465726e2e146368696c6c000628c44465636c617265206e6f2064657369726520746f206569746865722076616c6964617465206f72206e6f6d696e6174652e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0034232320436f6d706c6578697479e42d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e502d20436f6e7461696e73206f6e6520726561642ec42d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e247365745f706179656504011470617965655905017c52657761726444657374696e6174696f6e3c543a3a4163636f756e7449643e000730b42852652d2973657420746865207061796d656e742074617267657420666f72206120636f6e74726f6c6c65722e005101456666656374732077696c6c2062652066656c7420696e7374616e746c792028617320736f6f6e20617320746869732066756e6374696f6e20697320636f6d706c65746564207375636365737366756c6c79292e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0034232320436f6d706c6578697479182d204f283129e42d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e942d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec42d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e242d2d2d2d2d2d2d2d2d387365745f636f6e74726f6c6c6572040128636f6e74726f6c6c65720001504163636f756e7449644c6f6f6b75704f663c543e00082c8c2852652d297365742074686520636f6e74726f6c6c6572206f6620612073746173682e005101456666656374732077696c6c2062652066656c7420696e7374616e746c792028617320736f6f6e20617320746869732066756e6374696f6e20697320636f6d706c65746564207375636365737366756c6c79292e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c65722e0034232320436f6d706c6578697479104f283129e42d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e942d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec42d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e4c7365745f76616c696461746f725f636f756e7404010c6e6577e503010c75333200091890536574732074686520696465616c206e756d626572206f662076616c696461746f72732e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e0034232320436f6d706c6578697479104f28312960696e6372656173655f76616c696461746f725f636f756e740401286164646974696f6e616ce503010c753332000a1ce4496e6372656d656e74732074686520696465616c206e756d626572206f662076616c696461746f7273207570746f206d6178696d756d206f668c60456c656374696f6e50726f7669646572426173653a3a4d617857696e6e657273602e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e0034232320436f6d706c65786974799853616d65206173205b6053656c663a3a7365745f76616c696461746f725f636f756e74605d2e547363616c655f76616c696461746f725f636f756e74040118666163746f726105011c50657263656e74000b1c0d015363616c652075702074686520696465616c206e756d626572206f662076616c696461746f7273206279206120666163746f72207570746f206d6178696d756d206f668c60456c656374696f6e50726f7669646572426173653a3a4d617857696e6e657273602e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e0034232320436f6d706c65786974799853616d65206173205b6053656c663a3a7365745f76616c696461746f725f636f756e74605d2e34666f7263655f6e6f5f65726173000c34ac466f72636520746865726520746f206265206e6f206e6577206572617320696e646566696e6974656c792e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002423205761726e696e6700190154686520656c656374696f6e2070726f6365737320737461727473206d756c7469706c6520626c6f636b73206265666f72652074686520656e64206f6620746865206572612e3901546875732074686520656c656374696f6e2070726f63657373206d6179206265206f6e676f696e67207768656e20746869732069732063616c6c65642e20496e2074686973206361736520746865dc656c656374696f6e2077696c6c20636f6e74696e756520756e74696c20746865206e65787420657261206973207472696767657265642e0034232320436f6d706c65786974793c2d204e6f20617267756d656e74732e382d205765696768743a204f28312934666f7263655f6e65775f657261000d384901466f72636520746865726520746f2062652061206e6577206572612061742074686520656e64206f6620746865206e6578742073657373696f6e2e20416674657220746869732c2069742077696c6c2062659c726573657420746f206e6f726d616c20286e6f6e2d666f7263656429206265686176696f75722e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002423205761726e696e6700190154686520656c656374696f6e2070726f6365737320737461727473206d756c7469706c6520626c6f636b73206265666f72652074686520656e64206f6620746865206572612e4901496620746869732069732063616c6c6564206a757374206265666f72652061206e657720657261206973207472696767657265642c2074686520656c656374696f6e2070726f63657373206d6179206e6f748c6861766520656e6f75676820626c6f636b7320746f20676574206120726573756c742e0034232320436f6d706c65786974793c2d204e6f20617267756d656e74732e382d205765696768743a204f283129447365745f696e76756c6e657261626c6573040134696e76756c6e657261626c65735d0501445665633c543a3a4163636f756e7449643e000e0cc8536574207468652076616c696461746f72732077686f2063616e6e6f7420626520736c61736865642028696620616e79292e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e34666f7263655f756e7374616b650801147374617368000130543a3a4163636f756e7449640001486e756d5f736c617368696e675f7370616e7310010c753332000f0c0901466f72636520612063757272656e74207374616b657220746f206265636f6d6520636f6d706c6574656c7920756e7374616b65642c20696d6d6564696174656c792e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e50666f7263655f6e65775f6572615f616c776179730010240101466f72636520746865726520746f2062652061206e6577206572612061742074686520656e64206f662073657373696f6e7320696e646566696e6974656c792e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002423205761726e696e6700190154686520656c656374696f6e2070726f6365737320737461727473206d756c7469706c6520626c6f636b73206265666f72652074686520656e64206f6620746865206572612e4901496620746869732069732063616c6c6564206a757374206265666f72652061206e657720657261206973207472696767657265642c2074686520656c656374696f6e2070726f63657373206d6179206e6f748c6861766520656e6f75676820626c6f636b7320746f20676574206120726573756c742e5463616e63656c5f64656665727265645f736c61736808010c657261100120457261496e646578000134736c6173685f696e6469636573650501205665633c7533323e0011149443616e63656c20656e6163746d656e74206f66206120646566657272656420736c6173682e009843616e2062652063616c6c6564206279207468652060543a3a41646d696e4f726967696e602e000101506172616d65746572733a2065726120616e6420696e6469636573206f662074686520736c617368657320666f7220746861742065726120746f206b696c6c2e387061796f75745f7374616b65727308013c76616c696461746f725f7374617368000130543a3a4163636f756e74496400010c657261100120457261496e64657800122c0d01506179206f757420616c6c20746865207374616b65727320626568696e6420612073696e676c652076616c696461746f7220666f7220612073696e676c65206572612e0049012d206076616c696461746f725f73746173686020697320746865207374617368206163636f756e74206f66207468652076616c696461746f722e205468656972206e6f6d696e61746f72732c20757020746f2501202060543a3a4d61784e6f6d696e61746f72526577617264656450657256616c696461746f72602c2077696c6c20616c736f207265636569766520746865697220726577617264732e31012d206065726160206d617920626520616e7920657261206265747765656e20605b63757272656e745f657261202d20686973746f72795f64657074683b2063757272656e745f6572615d602e005501546865206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e20416e79206163636f756e742063616e2063616c6c20746869732066756e6374696f6e2c206576656e206966746974206973206e6f74206f6e65206f6620746865207374616b6572732e0034232320436f6d706c6578697479b82d204174206d6f7374204f284d61784e6f6d696e61746f72526577617264656450657256616c696461746f72292e187265626f6e6404011476616c7565ec013042616c616e63654f663c543e00131cdc5265626f6e64206120706f7274696f6e206f6620746865207374617368207363686564756c656420746f20626520756e6c6f636b65642e00d4546865206469737061746368206f726967696e206d757374206265207369676e65642062792074686520636f6e74726f6c6c65722e0034232320436f6d706c6578697479d02d2054696d6520636f6d706c65786974793a204f284c292c207768657265204c20697320756e6c6f636b696e67206368756e6b73882d20426f756e64656420627920604d6178556e6c6f636b696e674368756e6b73602e28726561705f73746173680801147374617368000130543a3a4163636f756e7449640001486e756d5f736c617368696e675f7370616e7310010c7533320014305d0152656d6f766520616c6c2064617461207374727563747572657320636f6e6365726e696e672061207374616b65722f7374617368206f6e636520697420697320617420612073746174652077686572652069742063616e0501626520636f6e736964657265642060647573746020696e20746865207374616b696e672073797374656d2e2054686520726571756972656d656e7473206172653a000501312e207468652060746f74616c5f62616c616e636560206f66207468652073746173682069732062656c6f77206578697374656e7469616c206465706f7369742e1101322e206f722c2074686520606c65646765722e746f74616c60206f66207468652073746173682069732062656c6f77206578697374656e7469616c206465706f7369742e00550154686520666f726d65722063616e2068617070656e20696e206361736573206c696b65206120736c6173683b20746865206c6174746572207768656e20612066756c6c7920756e626f6e646564206163636f756e7409016973207374696c6c20726563656976696e67207374616b696e67207265776172647320696e206052657761726444657374696e6174696f6e3a3a5374616b6564602e00310149742063616e2062652063616c6c656420627920616e796f6e652c206173206c6f6e672061732060737461736860206d65657473207468652061626f766520726571756972656d656e74732e00dc526566756e647320746865207472616e73616374696f6e20666565732075706f6e207375636365737366756c20657865637574696f6e2e106b69636b04010c77686f5d0501645665633c4163636f756e7449644c6f6f6b75704f663c543e3e00152ce052656d6f76652074686520676976656e206e6f6d696e6174696f6e732066726f6d207468652063616c6c696e672076616c696461746f722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e004d012d206077686f603a2041206c697374206f66206e6f6d696e61746f72207374617368206163636f756e74732077686f20617265206e6f6d696e6174696e6720746869732076616c696461746f72207768696368c0202073686f756c64206e6f206c6f6e676572206265206e6f6d696e6174696e6720746869732076616c696461746f722e0055014e6f74653a204d616b696e6720746869732063616c6c206f6e6c79206d616b65732073656e736520696620796f7520666972737420736574207468652076616c696461746f7220707265666572656e63657320746f78626c6f636b20616e792066757274686572206e6f6d696e6174696f6e732e4c7365745f7374616b696e675f636f6e666967731801486d696e5f6e6f6d696e61746f725f626f6e6469050158436f6e6669674f703c42616c616e63654f663c543e3e0001486d696e5f76616c696461746f725f626f6e6469050158436f6e6669674f703c42616c616e63654f663c543e3e00014c6d61785f6e6f6d696e61746f725f636f756e746d050134436f6e6669674f703c7533323e00014c6d61785f76616c696461746f725f636f756e746d050134436f6e6669674f703c7533323e00013c6368696c6c5f7468726573686f6c6471050144436f6e6669674f703c50657263656e743e0001386d696e5f636f6d6d697373696f6e75050144436f6e6669674f703c50657262696c6c3e001644ac5570646174652074686520766172696f7573207374616b696e6720636f6e66696775726174696f6e73202e0025012a20606d696e5f6e6f6d696e61746f725f626f6e64603a20546865206d696e696d756d2061637469766520626f6e64206e656564656420746f2062652061206e6f6d696e61746f722e25012a20606d696e5f76616c696461746f725f626f6e64603a20546865206d696e696d756d2061637469766520626f6e64206e656564656420746f20626520612076616c696461746f722e55012a20606d61785f6e6f6d696e61746f725f636f756e74603a20546865206d6178206e756d626572206f662075736572732077686f2063616e2062652061206e6f6d696e61746f72206174206f6e63652e205768656e98202073657420746f20604e6f6e65602c206e6f206c696d697420697320656e666f726365642e55012a20606d61785f76616c696461746f725f636f756e74603a20546865206d6178206e756d626572206f662075736572732077686f2063616e20626520612076616c696461746f72206174206f6e63652e205768656e98202073657420746f20604e6f6e65602c206e6f206c696d697420697320656e666f726365642e59012a20606368696c6c5f7468726573686f6c64603a2054686520726174696f206f6620606d61785f6e6f6d696e61746f725f636f756e7460206f7220606d61785f76616c696461746f725f636f756e74602077686963681901202073686f756c642062652066696c6c656420696e206f7264657220666f722074686520606368696c6c5f6f7468657260207472616e73616374696f6e20746f20776f726b2e61012a20606d696e5f636f6d6d697373696f6e603a20546865206d696e696d756d20616d6f756e74206f6620636f6d6d697373696f6e207468617420656163682076616c696461746f7273206d757374206d61696e7461696e2e550120205468697320697320636865636b6564206f6e6c792075706f6e2063616c6c696e67206076616c6964617465602e204578697374696e672076616c696461746f727320617265206e6f742061666665637465642e00c452756e74696d654f726967696e206d75737420626520526f6f7420746f2063616c6c20746869732066756e6374696f6e2e0035014e4f54453a204578697374696e67206e6f6d696e61746f727320616e642076616c696461746f72732077696c6c206e6f742062652061666665637465642062792074686973207570646174652e1101746f206b69636b2070656f706c6520756e64657220746865206e6577206c696d6974732c20606368696c6c5f6f74686572602073686f756c642062652063616c6c65642e2c6368696c6c5f6f74686572040128636f6e74726f6c6c6572000130543a3a4163636f756e74496400176841014465636c61726520612060636f6e74726f6c6c65726020746f2073746f702070617274696369706174696e672061732065697468657220612076616c696461746f72206f72206e6f6d696e61746f722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e004101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2c206275742063616e2062652063616c6c656420627920616e796f6e652e0059014966207468652063616c6c6572206973207468652073616d652061732074686520636f6e74726f6c6c6572206265696e672074617267657465642c207468656e206e6f206675727468657220636865636b7320617265d8656e666f726365642c20616e6420746869732066756e6374696f6e2062656861766573206a757374206c696b6520606368696c6c602e005d014966207468652063616c6c657220697320646966666572656e74207468616e2074686520636f6e74726f6c6c6572206265696e672074617267657465642c2074686520666f6c6c6f77696e6720636f6e646974696f6e73306d757374206265206d65743a001d012a2060636f6e74726f6c6c657260206d7573742062656c6f6e6720746f2061206e6f6d696e61746f722077686f20686173206265636f6d65206e6f6e2d6465636f6461626c652c000c4f723a003d012a204120604368696c6c5468726573686f6c6460206d7573742062652073657420616e6420636865636b656420776869636820646566696e657320686f7720636c6f736520746f20746865206d6178550120206e6f6d696e61746f7273206f722076616c696461746f7273207765206d757374207265616368206265666f72652075736572732063616e207374617274206368696c6c696e67206f6e652d616e6f746865722e59012a204120604d61784e6f6d696e61746f72436f756e746020616e6420604d617856616c696461746f72436f756e7460206d75737420626520736574207768696368206973207573656420746f2064657465726d696e65902020686f7720636c6f73652077652061726520746f20746865207468726573686f6c642e5d012a204120604d696e4e6f6d696e61746f72426f6e646020616e6420604d696e56616c696461746f72426f6e6460206d7573742062652073657420616e6420636865636b65642c2077686963682064657465726d696e65735101202069662074686973206973206120706572736f6e20746861742073686f756c64206265206368696c6c6564206265636175736520746865792068617665206e6f74206d657420746865207468726573686f6c64402020626f6e642072657175697265642e005501546869732063616e2062652068656c7066756c20696620626f6e6420726571756972656d656e74732061726520757064617465642c20616e64207765206e65656420746f2072656d6f7665206f6c642075736572739877686f20646f206e6f74207361746973667920746865736520726571756972656d656e74732e68666f7263655f6170706c795f6d696e5f636f6d6d697373696f6e04013c76616c696461746f725f7374617368000130543a3a4163636f756e74496400180c4501466f72636520612076616c696461746f7220746f2068617665206174206c6561737420746865206d696e696d756d20636f6d6d697373696f6e2e20546869732077696c6c206e6f74206166666563742061610176616c696461746f722077686f20616c726561647920686173206120636f6d6d697373696f6e2067726561746572207468616e206f7220657175616c20746f20746865206d696e696d756d2e20416e79206163636f756e743863616e2063616c6c20746869732e487365745f6d696e5f636f6d6d697373696f6e04010c6e6577ac011c50657262696c6c00191025015365747320746865206d696e696d756d20616d6f756e74206f6620636f6d6d697373696f6e207468617420656163682076616c696461746f7273206d757374206d61696e7461696e2e005901546869732063616c6c20686173206c6f7765722070726976696c65676520726571756972656d656e7473207468616e20607365745f7374616b696e675f636f6e6669676020616e642063616e2062652063616c6c6564cc6279207468652060543a3a41646d696e4f726967696e602e20526f6f742063616e20616c776179732063616c6c20746869732e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e5905083870616c6c65745f7374616b696e674452657761726444657374696e6174696f6e04244163636f756e74496401000114185374616b656400000014537461736800010028436f6e74726f6c6c65720002001c4163636f756e7404000001244163636f756e744964000300104e6f6e65000400005d05000002000061050c3473705f61726974686d65746963287065725f7468696e67731c50657263656e740000040008010875380000650500000210006905103870616c6c65745f7374616b696e671870616c6c65741870616c6c657420436f6e6669674f700404540118010c104e6f6f700000000c5365740400180104540001001852656d6f7665000200006d05103870616c6c65745f7374616b696e671870616c6c65741870616c6c657420436f6e6669674f700404540110010c104e6f6f700000000c5365740400100104540001001852656d6f7665000200007105103870616c6c65745f7374616b696e671870616c6c65741870616c6c657420436f6e6669674f70040454016105010c104e6f6f700000000c536574040061050104540001001852656d6f7665000200007505103870616c6c65745f7374616b696e671870616c6c65741870616c6c657420436f6e6669674f7004045401ac010c104e6f6f700000000c5365740400ac0104540001001852656d6f76650002000079050c3870616c6c65745f73657373696f6e1870616c6c65741043616c6c040454000108207365745f6b6579730801106b6579737d05011c543a3a4b65797300011470726f6f6630011c5665633c75383e000024e453657473207468652073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c657220746f20606b657973602e1d01416c6c6f777320616e206163636f756e7420746f20736574206974732073657373696f6e206b6579207072696f7220746f206265636f6d696e6720612076616c696461746f722ec05468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e00d0546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265207369676e65642e0034232320436f6d706c657869747959012d20604f283129602e2041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f662060543a3a4b6579733a3a6b65795f69647328296020776869636820697320202066697865642e2870757267655f6b657973000130c852656d6f76657320616e792073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c65722e00c05468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e005501546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265205369676e656420616e6420746865206163636f756e74206d757374206265206569746865722062655d01636f6e7665727469626c6520746f20612076616c696461746f72204944207573696e672074686520636861696e2773207479706963616c2061646472657373696e672073797374656d20287468697320757375616c6c7951016d65616e73206265696e67206120636f6e74726f6c6c6572206163636f756e7429206f72206469726563746c7920636f6e7665727469626c6520696e746f20612076616c696461746f722049442028776869636894757375616c6c79206d65616e73206265696e672061207374617368206163636f756e74292e0034232320436f6d706c65786974793d012d20604f2831296020696e206e756d626572206f66206b65792074797065732e2041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f6698202060543a3a4b6579733a3a6b65795f6964732829602077686963682069732066697865642e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e7d0508586a6f7973747265616d5f6e6f64655f72756e74696d652c53657373696f6e4b657973000010011c6772616e647061cc01d03c4772616e647061206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c6963000110626162654d0401c43c42616265206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c6963000124696d5f6f6e6c696e65d801d43c496d4f6e6c696e65206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c696300014c617574686f726974795f646973636f76657279810501fc3c417574686f72697479446973636f76657279206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c6963000081050c5873705f617574686f726974795f646973636f766572790c617070185075626c696300000400dc013c737232353531393a3a5075626c6963000085050c3870616c6c65745f6772616e6470611870616c6c65741043616c6c04045400010c4c7265706f72745f65717569766f636174696f6e08014865717569766f636174696f6e5f70726f6f66890501bc426f783c45717569766f636174696f6e50726f6f663c543a3a486173682c20543a3a426c6f636b4e756d6265723e3e00013c6b65795f6f776e65725f70726f6f6655040140543a3a4b65794f776e657250726f6f6600001009015265706f727420766f7465722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667920746865f465717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66f8616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63654477696c6c206265207265706f727465642e707265706f72745f65717569766f636174696f6e5f756e7369676e656408014865717569766f636174696f6e5f70726f6f66890501bc426f783c45717569766f636174696f6e50726f6f663c543a3a486173682c20543a3a426c6f636b4e756d6265723e3e00013c6b65795f6f776e65725f70726f6f6655040140543a3a4b65794f776e657250726f6f6600012409015265706f727420766f7465722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667920746865f465717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66f8616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63654477696c6c206265207265706f727465642e000d01546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c791501626c6f636b20617574686f72732077696c6c2063616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c2061732073756368150169662074686520626c6f636b20617574686f7220697320646566696e65642069742077696c6c20626520646566696e6564206173207468652065717569766f636174696f6e247265706f727465722e306e6f74655f7374616c6c656408011464656c6179100138543a3a426c6f636b4e756d62657200016c626573745f66696e616c697a65645f626c6f636b5f6e756d626572100138543a3a426c6f636b4e756d6265720002303d014e6f74652074686174207468652063757272656e7420617574686f7269747920736574206f6620746865204752414e4450412066696e616c6974792067616467657420686173207374616c6c65642e006101546869732077696c6c2074726967676572206120666f7263656420617574686f7269747920736574206368616e67652061742074686520626567696e6e696e67206f6620746865206e6578742073657373696f6e2c20746f6101626520656e6163746564206064656c61796020626c6f636b7320616674657220746861742e20546865206064656c6179602073686f756c64206265206869676820656e6f75676820746f20736166656c7920617373756d654901746861742074686520626c6f636b207369676e616c6c696e672074686520666f72636564206368616e67652077696c6c206e6f742062652072652d6f7267656420652e672e203130303020626c6f636b732e5d0154686520626c6f636b2070726f64756374696f6e207261746520287768696368206d617920626520736c6f77656420646f776e2062656361757365206f662066696e616c697479206c616767696e67292073686f756c64510162652074616b656e20696e746f206163636f756e74207768656e2063686f6f73696e6720746865206064656c6179602e20546865204752414e44504120766f74657273206261736564206f6e20746865206e65775501617574686f726974792077696c6c20737461727420766f74696e67206f6e20746f70206f662060626573745f66696e616c697a65645f626c6f636b5f6e756d6265726020666f72206e65772066696e616c697a65644d01626c6f636b732e2060626573745f66696e616c697a65645f626c6f636b5f6e756d626572602073686f756c64206265207468652068696768657374206f6620746865206c61746573742066696e616c697a6564c4626c6f636b206f6620616c6c2076616c696461746f7273206f6620746865206e657720617574686f72697479207365742e00584f6e6c792063616c6c61626c6520627920726f6f742e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e8905084c73705f66696e616c6974795f6772616e6470614445717569766f636174696f6e50726f6f66080448012c044e0110000801187365745f6964280114536574496400013065717569766f636174696f6e8d05014845717569766f636174696f6e3c482c204e3e00008d05084c73705f66696e616c6974795f6772616e6470613045717569766f636174696f6e080448012c044e011001081c507265766f7465040091050139016772616e6470613a3a45717569766f636174696f6e3c417574686f7269747949642c206772616e6470613a3a507265766f74653c482c204e3e2c0a417574686f726974795369676e61747572653e00000024507265636f6d6d69740400a9050141016772616e6470613a3a45717569766f636174696f6e3c417574686f7269747949642c206772616e6470613a3a507265636f6d6d69743c482c204e3e2c0a417574686f726974795369676e61747572653e000100009105084066696e616c6974795f6772616e6470613045717569766f636174696f6e0c08496401cc0456019505045301990500100130726f756e645f6e756d62657228010c7536340001206964656e74697479cc010849640001146669727374a505011828562c2053290001187365636f6e64a505011828562c20532900009505084066696e616c6974795f6772616e6470611c507265766f7465080448012c044e01100008012c7461726765745f686173682c0104480001347461726765745f6e756d6265721001044e000099050c4c73705f66696e616c6974795f6772616e6470610c617070245369676e6174757265000004009d050148656432353531393a3a5369676e617475726500009d050c1c73705f636f72651c65643235353139245369676e617475726500000400a10501205b75383b2036345d0000a105000003400000000800a505000004089505990500a905084066696e616c6974795f6772616e6470613045717569766f636174696f6e0c08496401cc045601ad05045301990500100130726f756e645f6e756d62657228010c7536340001206964656e74697479cc010849640001146669727374b105011828562c2053290001187365636f6e64b105011828562c2053290000ad05084066696e616c6974795f6772616e64706124507265636f6d6d6974080448012c044e01100008012c7461726765745f686173682c0104480001347461726765745f6e756d6265721001044e0000b10500000408ad05990500b5050c4070616c6c65745f696d5f6f6e6c696e651870616c6c65741043616c6c04045400010424686561727462656174080124686561727462656174b90501644865617274626561743c543a3a426c6f636b4e756d6265723e0001247369676e6174757265cd0501bc3c543a3a417574686f7269747949642061732052756e74696d654170705075626c69633e3a3a5369676e617475726500001438232320436f6d706c65786974793a59012d20604f284b202b20452960207768657265204b206973206c656e677468206f6620604b6579736020286865617274626561742e76616c696461746f72735f6c656e2920616e642045206973206c656e677468206f66b02020606865617274626561742e6e6574776f726b5f73746174652e65787465726e616c5f61646472657373608820202d20604f284b29603a206465636f64696e67206f66206c656e67746820604b60ac20202d20604f284529603a206465636f64696e672f656e636f64696e67206f66206c656e67746820604560042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632eb905084070616c6c65745f696d5f6f6e6c696e6524486561727462656174042c426c6f636b4e756d626572011000140130626c6f636b5f6e756d62657210012c426c6f636b4e756d6265720001346e6574776f726b5f7374617465bd0501484f70617175654e6574776f726b537461746500013473657373696f6e5f696e64657810013053657373696f6e496e64657800013c617574686f726974795f696e64657810012441757468496e64657800013876616c696461746f72735f6c656e10010c7533320000bd050c1c73705f636f7265206f6666636861696e484f70617175654e6574776f726b5374617465000008011c706565725f6964c10501304f706171756550656572496400014865787465726e616c5f616464726573736573c50501505665633c4f70617175654d756c7469616464723e0000c105081c73705f636f7265304f70617175655065657249640000040030011c5665633c75383e0000c505000002c90500c9050c1c73705f636f7265206f6666636861696e3c4f70617175654d756c7469616464720000040030011c5665633c75383e0000cd05104070616c6c65745f696d5f6f6e6c696e651c737232353531392c6170705f73723235353139245369676e617475726500000400d1050148737232353531393a3a5369676e61747572650000d1050c1c73705f636f72651c73723235353139245369676e617475726500000400a10501205b75383b2036345d0000d5050c4070616c6c65745f626167735f6c6973741870616c6c65741043616c6c0804540004490001081472656261670401286469736c6f63617465640001504163636f756e7449644c6f6f6b75704f663c543e00002859014465636c617265207468617420736f6d6520606469736c6f636174656460206163636f756e74206861732c207468726f7567682072657761726473206f722070656e616c746965732c2073756666696369656e746c7951016368616e676564206974732073636f726520746861742069742073686f756c642070726f7065726c792066616c6c20696e746f206120646966666572656e7420626167207468616e206974732063757272656e74106f6e652e001d01416e796f6e652063616e2063616c6c20746869732066756e6374696f6e2061626f757420616e7920706f74656e7469616c6c79206469736c6f6361746564206163636f756e742e00490157696c6c20616c7761797320757064617465207468652073746f7265642073636f7265206f6620606469736c6f63617465646020746f2074686520636f72726563742073636f72652c206261736564206f6e406053636f726550726f7669646572602e00d4496620606469736c6f63617465646020646f6573206e6f74206578697374732c2069742072657475726e7320616e206572726f722e3c7075745f696e5f66726f6e745f6f6604011c6c6967687465720001504163636f756e7449644c6f6f6b75704f663c543e000120d04d6f7665207468652063616c6c65722773204964206469726563746c7920696e2066726f6e74206f6620606c696768746572602e005901546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642063616e206f6e6c792062652063616c6c656420627920746865204964206f66a0746865206163636f756e7420676f696e6720696e2066726f6e74206f6620606c696768746572602e00344f6e6c7920776f726b73206966942d20626f7468206e6f646573206172652077697468696e207468652073616d65206261672cd02d20616e6420606f726967696e602068617320612067726561746572206053636f726560207468616e20606c696768746572602e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ed9050c3870616c6c65745f76657374696e671870616c6c65741043616c6c0404540001141076657374000024b8556e6c6f636b20616e79207665737465642066756e6473206f66207468652073656e646572206163636f756e742e005d01546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652066756e6473207374696c6c646c6f636b656420756e64657220746869732070616c6c65742e00d0456d69747320656974686572206056657374696e67436f6d706c6574656460206f72206056657374696e6755706461746564602e0034232320436f6d706c6578697479242d20604f283129602e28766573745f6f746865720401187461726765740001504163636f756e7449644c6f6f6b75704f663c543e00012cb8556e6c6f636b20616e79207665737465642066756e6473206f662061206074617267657460206163636f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0051012d2060746172676574603a20546865206163636f756e742077686f7365207665737465642066756e64732073686f756c6420626520756e6c6f636b65642e204d75737420686176652066756e6473207374696c6c646c6f636b656420756e64657220746869732070616c6c65742e00d0456d69747320656974686572206056657374696e67436f6d706c6574656460206f72206056657374696e6755706461746564602e0034232320436f6d706c6578697479242d20604f283129602e3c7665737465645f7472616e736665720801187461726765740001504163636f756e7449644c6f6f6b75704f663c543e0001207363686564756c65dd0501a456657374696e67496e666f3c42616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e00023464437265617465206120766573746564207472616e736665722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00cc2d2060746172676574603a20546865206163636f756e7420726563656976696e6720746865207665737465642066756e64732ef02d20607363686564756c65603a205468652076657374696e67207363686564756c6520617474616368656420746f20746865207472616e736665722e005c456d697473206056657374696e6743726561746564602e00fc4e4f54453a20546869732077696c6c20756e6c6f636b20616c6c207363686564756c6573207468726f756768207468652063757272656e7420626c6f636b2e0034232320436f6d706c6578697479242d20604f283129602e54666f7263655f7665737465645f7472616e736665720c0118736f757263650001504163636f756e7449644c6f6f6b75704f663c543e0001187461726765740001504163636f756e7449644c6f6f6b75704f663c543e0001207363686564756c65dd0501a456657374696e67496e666f3c42616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e00033860466f726365206120766573746564207472616e736665722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e00e82d2060736f75726365603a20546865206163636f756e742077686f73652066756e64732073686f756c64206265207472616e736665727265642e11012d2060746172676574603a20546865206163636f756e7420746861742073686f756c64206265207472616e7366657272656420746865207665737465642066756e64732ef02d20607363686564756c65603a205468652076657374696e67207363686564756c6520617474616368656420746f20746865207472616e736665722e005c456d697473206056657374696e6743726561746564602e00fc4e4f54453a20546869732077696c6c20756e6c6f636b20616c6c207363686564756c6573207468726f756768207468652063757272656e7420626c6f636b2e0034232320436f6d706c6578697479242d20604f283129602e3c6d657267655f7363686564756c657308013c7363686564756c65315f696e64657810010c75333200013c7363686564756c65325f696e64657810010c7533320004545d014d657267652074776f2076657374696e67207363686564756c657320746f6765746865722c206372656174696e672061206e65772076657374696e67207363686564756c65207468617420756e6c6f636b73206f7665725501746865206869676865737420706f737369626c6520737461727420616e6420656e6420626c6f636b732e20496620626f7468207363686564756c6573206861766520616c7265616479207374617274656420746865590163757272656e7420626c6f636b2077696c6c206265207573656420617320746865207363686564756c652073746172743b207769746820746865206361766561742074686174206966206f6e65207363686564756c655d0169732066696e6973686564206279207468652063757272656e7420626c6f636b2c20746865206f746865722077696c6c206265207472656174656420617320746865206e6577206d6572676564207363686564756c652c2c756e6d6f6469666965642e00f84e4f54453a20496620607363686564756c65315f696e646578203d3d207363686564756c65325f696e6465786020746869732069732061206e6f2d6f702e41014e4f54453a20546869732077696c6c20756e6c6f636b20616c6c207363686564756c6573207468726f756768207468652063757272656e7420626c6f636b207072696f7220746f206d657267696e672e61014e4f54453a20496620626f7468207363686564756c6573206861766520656e646564206279207468652063757272656e7420626c6f636b2c206e6f206e6577207363686564756c652077696c6c206265206372656174656464616e6420626f74682077696c6c2062652072656d6f7665642e006c4d6572676564207363686564756c6520617474726962757465733a35012d20607374617274696e675f626c6f636b603a20604d4158287363686564756c65312e7374617274696e675f626c6f636b2c207363686564756c6564322e7374617274696e675f626c6f636b2c48202063757272656e745f626c6f636b29602e21012d2060656e64696e675f626c6f636b603a20604d4158287363686564756c65312e656e64696e675f626c6f636b2c207363686564756c65322e656e64696e675f626c6f636b29602e59012d20606c6f636b6564603a20607363686564756c65312e6c6f636b65645f61742863757272656e745f626c6f636b29202b207363686564756c65322e6c6f636b65645f61742863757272656e745f626c6f636b29602e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00e82d20607363686564756c65315f696e646578603a20696e646578206f6620746865206669727374207363686564756c6520746f206d657267652eec2d20607363686564756c65325f696e646578603a20696e646578206f6620746865207365636f6e64207363686564756c6520746f206d657267652e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632edd050c3870616c6c65745f76657374696e673076657374696e675f696e666f2c56657374696e67496e666f081c42616c616e636501182c426c6f636b4e756d6265720110000c01186c6f636b656418011c42616c616e63650001247065725f626c6f636b18011c42616c616e63650001387374617274696e675f626c6f636b10012c426c6f636b4e756d6265720000e1050c3c70616c6c65745f6d756c74697369671870616c6c65741043616c6c0404540001105061735f6d756c74695f7468726573686f6c645f310801446f746865725f7369676e61746f726965735d0501445665633c543a3a4163636f756e7449643e00011063616c6c3904017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0000305101496d6d6564696174656c792064697370617463682061206d756c74692d7369676e61747572652063616c6c207573696e6720612073696e676c6520617070726f76616c2066726f6d207468652063616c6c65722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003d012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f206172652070617274206f662074686501016d756c74692d7369676e61747572652c2062757420646f206e6f7420706172746963697061746520696e2074686520617070726f76616c2070726f636573732e882d206063616c6c603a205468652063616c6c20746f2062652065786563757465642e00b8526573756c74206973206571756976616c656e7420746f20746865206469737061746368656420726573756c742e0034232320436f6d706c657869747919014f285a202b204329207768657265205a20697320746865206c656e677468206f66207468652063616c6c20616e6420432069747320657865637574696f6e207765696768742e2061735f6d756c74691401247468726573686f6c642904010c7531360001446f746865725f7369676e61746f726965735d0501445665633c543a3a4163636f756e7449643e00013c6d617962655f74696d65706f696e74e50501844f7074696f6e3c54696d65706f696e743c543a3a426c6f636b4e756d6265723e3e00011063616c6c3904017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0001286d61785f77656967687420011857656967687400019c5501526567697374657220617070726f76616c20666f72206120646973706174636820746f206265206d6164652066726f6d20612064657465726d696e697374696320636f6d706f73697465206163636f756e74206966f8617070726f766564206279206120746f74616c206f6620607468726573686f6c64202d203160206f6620606f746865725f7369676e61746f72696573602e00b049662074686572652061726520656e6f7567682c207468656e206469737061746368207468652063616c6c2e002d015061796d656e743a20604465706f73697442617365602077696c6c20626520726573657276656420696620746869732069732074686520666972737420617070726f76616c2c20706c75733d01607468726573686f6c64602074696d657320604465706f736974466163746f72602e2049742069732072657475726e6564206f6e636520746869732064697370617463682068617070656e73206f723469732063616e63656c6c65642e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0055012d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e41012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f766520746869736c64697370617463682e204d6179206e6f7420626520656d7074792e59012d20606d617962655f74696d65706f696e74603a20496620746869732069732074686520666972737420617070726f76616c2c207468656e2074686973206d75737420626520604e6f6e65602e20496620697420697351016e6f742074686520666972737420617070726f76616c2c207468656e206974206d7573742062652060536f6d65602c2077697468207468652074696d65706f696e742028626c6f636b206e756d62657220616e64d47472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c207472616e73616374696f6e2e882d206063616c6c603a205468652063616c6c20746f2062652065786563757465642e001d014e4f54453a20556e6c6573732074686973206973207468652066696e616c20617070726f76616c2c20796f752077696c6c2067656e6572616c6c792077616e7420746f20757365190160617070726f76655f61735f6d756c74696020696e73746561642c2073696e6365206974206f6e6c7920726571756972657320612068617368206f66207468652063616c6c2e005901526573756c74206973206571756976616c656e7420746f20746865206469737061746368656420726573756c7420696620607468726573686f6c64602069732065786163746c79206031602e204f746865727769736555016f6e20737563636573732c20726573756c7420697320604f6b6020616e642074686520726573756c742066726f6d2074686520696e746572696f722063616c6c2c206966206974207761732065786563757465642cdc6d617920626520666f756e6420696e20746865206465706f736974656420604d756c7469736967457865637574656460206576656e742e0034232320436f6d706c6578697479502d20604f2853202b205a202b2043616c6c29602ecc2d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e3d012d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f66450120207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2e21012d204f6e652063616c6c20656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285a296020776865726520605a602069732074782d6c656e2ebc2d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602ed42d20557020746f206f6e652062696e6172792073656172636820616e6420696e736572742028604f286c6f6753202b20532960292ef82d20492f4f3a2031207265616420604f285329602c20757020746f2031206d757461746520604f285329602e20557020746f206f6e652072656d6f76652e302d204f6e65206576656e742e6c2d2054686520776569676874206f6620746865206063616c6c602e4d012d2053746f726167653a20696e7365727473206f6e65206974656d2c2076616c75652073697a6520626f756e64656420627920604d61785369676e61746f72696573602c20776974682061206465706f7369741901202074616b656e20666f7220697473206c69666574696d65206f6620604465706f73697442617365202b207468726573686f6c64202a204465706f736974466163746f72602e40617070726f76655f61735f6d756c74691401247468726573686f6c642904010c7531360001446f746865725f7369676e61746f726965735d0501445665633c543a3a4163636f756e7449643e00013c6d617962655f74696d65706f696e74e50501844f7074696f6e3c54696d65706f696e743c543a3a426c6f636b4e756d6265723e3e00012463616c6c5f686173680401205b75383b2033325d0001286d61785f7765696768742001185765696768740002785501526567697374657220617070726f76616c20666f72206120646973706174636820746f206265206d6164652066726f6d20612064657465726d696e697374696320636f6d706f73697465206163636f756e74206966f8617070726f766564206279206120746f74616c206f6620607468726573686f6c64202d203160206f6620606f746865725f7369676e61746f72696573602e002d015061796d656e743a20604465706f73697442617365602077696c6c20626520726573657276656420696620746869732069732074686520666972737420617070726f76616c2c20706c75733d01607468726573686f6c64602074696d657320604465706f736974466163746f72602e2049742069732072657475726e6564206f6e636520746869732064697370617463682068617070656e73206f723469732063616e63656c6c65642e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0055012d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e41012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f766520746869736c64697370617463682e204d6179206e6f7420626520656d7074792e59012d20606d617962655f74696d65706f696e74603a20496620746869732069732074686520666972737420617070726f76616c2c207468656e2074686973206d75737420626520604e6f6e65602e20496620697420697351016e6f742074686520666972737420617070726f76616c2c207468656e206974206d7573742062652060536f6d65602c2077697468207468652074696d65706f696e742028626c6f636b206e756d62657220616e64d47472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c207472616e73616374696f6e2ecc2d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f2062652065786563757465642e0035014e4f54453a2049662074686973206973207468652066696e616c20617070726f76616c2c20796f752077696c6c2077616e7420746f20757365206061735f6d756c74696020696e73746561642e0034232320436f6d706c6578697479242d20604f285329602ecc2d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e3d012d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f66450120207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2ebc2d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602ed42d20557020746f206f6e652062696e6172792073656172636820616e6420696e736572742028604f286c6f6753202b20532960292ef82d20492f4f3a2031207265616420604f285329602c20757020746f2031206d757461746520604f285329602e20557020746f206f6e652072656d6f76652e302d204f6e65206576656e742e4d012d2053746f726167653a20696e7365727473206f6e65206974656d2c2076616c75652073697a6520626f756e64656420627920604d61785369676e61746f72696573602c20776974682061206465706f7369741901202074616b656e20666f7220697473206c69666574696d65206f6620604465706f73697442617365202b207468726573686f6c64202a204465706f736974466163746f72602e3c63616e63656c5f61735f6d756c74691001247468726573686f6c642904010c7531360001446f746865725f7369676e61746f726965735d0501445665633c543a3a4163636f756e7449643e00012474696d65706f696e740d01016454696d65706f696e743c543a3a426c6f636b4e756d6265723e00012463616c6c5f686173680401205b75383b2033325d000354550143616e63656c2061207072652d6578697374696e672c206f6e2d676f696e67206d756c7469736967207472616e73616374696f6e2e20416e79206465706f7369742072657365727665642070726576696f75736c79c4666f722074686973206f7065726174696f6e2077696c6c20626520756e7265736572766564206f6e20737563636573732e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0055012d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e41012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f766520746869736c64697370617463682e204d6179206e6f7420626520656d7074792e5d012d206074696d65706f696e74603a205468652074696d65706f696e742028626c6f636b206e756d62657220616e64207472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c787472616e73616374696f6e20666f7220746869732064697370617463682ecc2d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f2062652065786563757465642e0034232320436f6d706c6578697479242d20604f285329602ecc2d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e3d012d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f66450120207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2ebc2d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602e302d204f6e65206576656e742e842d20492f4f3a2031207265616420604f285329602c206f6e652072656d6f76652e702d2053746f726167653a2072656d6f766573206f6e65206974656d2e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ee50504184f7074696f6e040454010d010108104e6f6e6500000010536f6d6504000d010000010000e905083870616c6c65745f636f756e63696c1043616c6c04045400013048616e6e6f756e63655f63616e6469646163791001346d656d626572736869705f696428012c543a3a4d656d62657249640001487374616b696e675f6163636f756e745f6964000130543a3a4163636f756e7449640001447265776172645f6163636f756e745f6964000130543a3a4163636f756e7449640001147374616b6518012842616c616e63653c543e0000244c5375627363726962652063616e646964617465002823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5c72656c656173655f63616e6469646163795f7374616b650401346d656d626572736869705f696428012c543a3a4d656d6265724964000124c452656c656173652063616e646964616379207374616b652074686174206973206e6f206c6f6e676572206e65656465642e002823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e4877697468647261775f63616e6469646163790401346d656d626572736869705f696428012c543a3a4d656d6265724964000224bc57697468647261772063616e64696461637920616e642072656c656173652063616e646964616379207374616b652e002823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e487365745f63616e6469646163795f6e6f74650801346d656d626572736869705f696428012c543a3a4d656d62657249640001106e6f746530011c5665633c75383e00032879015365742073686f7274206465736372697074696f6e20666f7220746865207573657227732063616e6469646163792e2043616e2062652063616c6c656420616e7974696d6520647572696e67207573657227732063616e6469646163792e002823203c7765696768743e002423232077656967687438604f20284e29602077686572653a98604e60206973207468652073697a65206f6620606e6f74656020696e206b696c6f6279746573142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e287365745f62756467657404011c62616c616e636518012842616c616e63653c543e000424605365747320746865206275646765742062616c616e63652e002823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e48706c616e5f6275646765745f726566696c6c04012c6e6578745f726566696c6c100138543a3a426c6f636b4e756d62657200052470506c616e20746865206e6578742062756467657420726566696c6c2e002823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e507365745f6275646765745f696e6372656d656e740401406275646765745f696e6372656d656e7418012842616c616e63653c543e0006247453657473207468652062756467657420726566696c6c20616d6f756e74002823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e507365745f636f756e63696c6f725f726577617264040140636f756e63696c6f725f72657761726418012842616c616e63653c543e0007248c536574732074686520636f756e63696c6f72207265776172642070657220626c6f636b002823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3c66756e64696e675f7265717565737404014066756e64696e675f7265717565737473550301dc5665633c46756e64696e6752657175657374506172616d65746572733c42616c616e63653c543e2c20543a3a4163636f756e7449643e3e000828b85472616e73666572732066756e64732066726f6d20636f756e63696c2062756467657420746f206163636f756e74002823203c7765696768743e002423232077656967687438604f20284629602077686572653a9c60466020697320746865206c656e677468206f66206066756e64696e675f726571756573747360142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e4c66756e645f636f756e63696c5f6275646765740c01246d656d6265725f696428012c4d656d62657249643c543e000118616d6f756e7418012842616c616e63653c543e000124726174696f6e616c6530011c5665633c75383e0009209046756e642074686520636f756e63696c206275646765742062792061206d656d6265722e203c7765696768743e0024232320576569676874c4604f202831296020446f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e40636f756e63696c6f725f72656d61726b080130636f756e63696c6f725f696428012c543a3a4d656d626572496400010c6d736730011c5665633c75383e000a2480436f756e63696c6f72206d616b657320612072656d61726b206d657373616765002823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e4063616e6469646174655f72656d61726b08013063616e6469646174655f696428012c543a3a4d656d626572496400010c6d736730011c5665633c75383e000b248043616e646964617465206d616b657320612072656d61726b206d657373616765002823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652eed05084470616c6c65745f7265666572656e64756d1043616c6c08045400044900011010766f7465080128636f6d6d69746d656e742c011c543a3a486173680001147374616b6518013042616c616e63654f663c543e00002494436173742061207365616c656420766f746520696e20746865207265666572656e64756d2e002823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c72657665616c5f766f746508011073616c7430011c5665633c75383e000138766f74655f6f7074696f6e5f69642801d03c5420617320636f6d6d6f6e3a3a6d656d626572736869703a3a4d656d6265727368697054797065733e3a3a4d656d626572496400012c9c52657665616c2061207365616c656420766f746520696e20746865207265666572656e64756d2e002823203c7765696768743e002423232057656967687438604f20285729602077686572653a0d012d2060576020697320746865206e756d626572206f662060696e7465726d6564696174655f77696e6e657273602073746f72656420696e207468652063757272656e7468202020206053746167653a3a3c542c20493e3a3a676574282960142d2044423ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e4872656c656173655f766f74655f7374616b650002205c52656c656173652061206c6f636b6564207374616b652e2823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e446f70745f6f75745f6f665f766f74696e67000324cc5065726d616e656e746c79206f7074206f7574206f6620766f74696e672066726f6d206120676976656e206163636f756e742e002823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652ef105084470616c6c65745f6d656d626572736869701043616c6c040454000144386275795f6d656d62657273686970040118706172616d732d0101c84275794d656d62657273686970506172616d65746572733c543a3a4163636f756e7449642c20543a3a4d656d62657249643e00002c7c4e6f6e2d6d656d626572732063616e20627579206d656d626572736869702e00203c7765696768743e002423232057656967687448604f202857202b204d29602077686572653a942d20605760206973207468652068616e646c652073697a6520696e206b696c6f62797465739c2d20604d6020697320746865206d657461646174612073697a6520696e206b696c6f6279746573142d2044423a242020202d204f2831292c23203c2f7765696768743e387570646174655f70726f66696c650c01246d656d6265725f696428012c543a3a4d656d626572496400011868616e646c653101013c4f7074696f6e3c5665633c75383e3e0001206d657461646174613101013c4f7074696f6e3c5665633c75383e3e0001300d01557064617465206d656d626572277320616c6c206f7220736f6d65206f66206e616d652c2068616e646c652c2061766174617220616e642061626f757420746578742e7c4e6f20656666656374206966206e6f206368616e676564206669656c64732e00203c7765696768743e002423232057656967687448604f202857202b204d29602077686572653a942d20605760206973207468652068616e646c652073697a6520696e206b696c6f62797465739c2d20604d6020697320746865206d657461646174612073697a6520696e206b696c6f6279746573142d2044423a242020202d204f2831292c23203c2f7765696768743e3c7570646174655f6163636f756e74730c01246d656d6265725f696428012c543a3a4d656d62657249640001406e65775f726f6f745f6163636f756e749401504f7074696f6e3c543a3a4163636f756e7449643e0001586e65775f636f6e74726f6c6c65725f6163636f756e749401504f7074696f6e3c543a3a4163636f756e7449643e00022c550155706461746573206d656d62657220726f6f74206f7220636f6e74726f6c6c6572206163636f756e74732e204e6f2065666665637420696620626f7468206e6577206163636f756e74732061726520656d7074792e00203c7765696768743e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6c7570646174655f70726f66696c655f766572696669636174696f6e0c0124776f726b65725f6964280128543a3a4163746f7249640001407461726765745f6d656d6265725f696428012c543a3a4d656d626572496400012c69735f7665726966696564980110626f6f6c000324450155706461746573206d656d6265722070726f66696c6520766572696669636174696f6e207374617475732e20526571756972657320776f726b696e672067726f7570206d656d626572206f726967696e2e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e407365745f726566657272616c5f63757404013470657263656e745f76616c75650801087538000424110155706461746573206d656d6265727368697020726566657272616c206375742070657263656e742076616c75652e20526571756972657320726f6f74206f726967696e2e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e407472616e736665725f696e76697465730c0140736f757263655f6d656d6265725f696428012c543a3a4d656d62657249640001407461726765745f6d656d6265725f696428012c543a3a4d656d62657249640001446e756d6265725f6f665f696e766974657310010c753332000524b45472616e736665727320696e76697465732066726f6d206f6e65206d656d62657220746f20616e6f746865722e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e34696e766974655f6d656d626572040118706172616d73390101d4496e766974654d656d62657273686970506172616d65746572733c543a3a4163636f756e7449642c20543a3a4d656d62657249643e00062c50496e766974652061206e6577206d656d6265722e00203c7765696768743e002423232057656967687448604f202857202b204d29602077686572653a942d20605760206973207468652068616e646c652073697a6520696e206b696c6f62797465739c2d20604d6020697320746865206d657461646174612073697a6520696e206b696c6f6279746573142d2044423a242020202d204f2831292c23203c2f7765696768743e3c676966745f6d656d62657273686970040118706172616d73410101d0476966744d656d62657273686970506172616d65746572733c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e00070c1d01476966742061206d656d62657273686970207573696e67206f776e2066756e64732e2047696674657220646f6573206e6f74206e65656420746f2062652061206d656d6265722e5d0143616e206f7074696e616c6c79206170706c792061206c6f636b206f6e206120706f7274696f6e206f66207468652066756e6473207472616e7366657272656420746f20726f6f7420616e6420636f6e74726f6c6c6572b86163636f756e74732e2047696674657220616c736f207061797320746865206d656d62657273686970206665652e507365745f6d656d626572736869705f70726963650401246e65775f707269636518013042616c616e63654f663c543e000824bc55706461746573206d656d626572736869702070726963652e20526571756972657320726f6f74206f726967696e2e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6c7365745f6c65616465725f696e7669746174696f6e5f71756f7461040140696e7669746174696f6e5f71756f746110010c753332000924d855706461746573206c656164657220696e7669746174696f6e2071756f74612e20526571756972657320726f6f74206f726967696e2e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e787365745f696e697469616c5f696e7669746174696f6e5f62616c616e636504014c6e65775f696e697469616c5f62616c616e636518013042616c616e63654f663c543e000a2439015570646174657320696e697469616c20696e7669746174696f6e2062616c616e636520666f72206120696e7669746564206d656d6265722e20526571756972657320726f6f74206f726967696e2e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e707365745f696e697469616c5f696e7669746174696f6e5f636f756e740401506e65775f696e7669746174696f6e5f636f756e7410010c753332000b2411015570646174657320696e697469616c20696e7669746174696f6e20636f756e7420666f722061206d656d6265722e20526571756972657320726f6f74206f726967696e2e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e746164645f7374616b696e675f6163636f756e745f63616e6469646174650401246d656d6265725f696428012c543a3a4d656d6265724964000c28ac416464207374616b696e67206163636f756e742063616e64696461746520666f722061206d656d6265722eb8546865206d656d62657273686970206d75737420626520636f6e6669726d6564206265666f72652075736167652e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5872656d6f76655f7374616b696e675f6163636f756e740401246d656d6265725f696428012c543a3a4d656d6265724964000d249052656d6f7665207374616b696e67206163636f756e7420666f722061206d656d6265722e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5c636f6e6669726d5f7374616b696e675f6163636f756e740801246d656d6265725f696428012c543a3a4d656d62657249640001487374616b696e675f6163636f756e745f6964000130543a3a4163636f756e744964000e24bc436f6e6669726d207374616b696e67206163636f756e742063616e64696461746520666f722061206d656d6265722e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e346d656d6265725f72656d61726b0c01246d656d6265725f696428012c543a3a4d656d626572496400010c6d736730011c5665633c75383e00011c7061796d656e74490101884f7074696f6e3c28543a3a4163636f756e7449642c20543a3a42616c616e6365293e000f24544d656d626572206d616b657320612072656d61726b00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e346372656174655f6d656d626572040118706172616d733d0101904372656174654d656d626572506172616d65746572733c543a3a4163636f756e7449643e00102c804372656174652061206d656d6265722070726f66696c6520617320726f6f742e00203c7765696768743e002423232057656967687448604f202849202b204a29602077686572653a942d20604960206973207468652068616e646c652073697a6520696e206b696c6f62797465739c2d20604a6020697320746865206d657461646174612073697a6520696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652ef505083070616c6c65745f666f72756d1043616c6c0404540001409c7570646174655f63617465676f72795f6d656d626572736869705f6f665f6d6f64657261746f720c01306d6f64657261746f725f69642801384d6f64657261746f7249643c543e00012c63617465676f72795f6964280134543a3a43617465676f727949640001246e65775f76616c7565980110626f6f6c0000240901456e61626c652061206d6f64657261746f722063616e206d6f64657261746520612063617465676f727920616e6420697473207375622063617465676f726965732e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3c6372656174655f63617465676f72790c0148706172656e745f63617465676f72795f6964350101544f7074696f6e3c543a3a43617465676f727949643e0001147469746c6530011c5665633c75383e00012c6465736372697074696f6e30011c5665633c75383e0001304c4164642061206e65772063617465676f72792e00203c7765696768743e002423232057656967687458604f202857202b2056202b205829602077686572653a6c2d20605760206973207468652063617465676f7279206465707468d42d20605660206973207468652073697a65206f66207468652063617465676f7279207469746c6520696e206b696c6f62797465732eec2d20605860206973207468652073697a65206f66207468652063617465676f7279206465736372697074696f6e20696e206b696c6f62797465732e142d2044423a242020202d204f2857292c23203c2f7765696768743e7c7570646174655f63617465676f72795f617263686976616c5f7374617475730c01146163746f725501014850726976696c656765644163746f723c543e00012c63617465676f72795f6964280134543a3a43617465676f7279496400014c6e65775f617263686976616c5f737461747573980110626f6f6c0002285855706461746520617263686976616c2073746174757300203c7765696768743e002423232057656967687438604f20285729602077686572653a6c2d20605760206973207468652063617465676f7279206465707468142d2044423a242020202d204f2857292c23203c2f7765696768743e547570646174655f63617465676f72795f7469746c650c01146163746f725501014850726976696c656765644163746f723c543e00012c63617465676f72795f6964280134543a3a43617465676f727949640001147469746c6530011c5665633c75383e00032c545570646174652063617465676f7279207469746c6500203c7765696768743e002423232057656967687448604f202857202b205629602077686572653a6c2d20605760206973207468652063617465676f7279206465707468d42d20605660206973207468652073697a65206f66207468652063617465676f7279207469746c6520696e206b696c6f62797465732e142d2044423a242020202d204f2857292c23203c2f7765696768743e6c7570646174655f63617465676f72795f6465736372697074696f6e0c01146163746f725501014850726976696c656765644163746f723c543e00012c63617465676f72795f6964280134543a3a43617465676f7279496400012c6465736372697074696f6e30011c5665633c75383e00042c6c5570646174652063617465676f7279206465736372697074696f6e00203c7765696768743e002423232057656967687438604f20285729602077686572653a6c2d20605760206973207468652063617465676f7279206465707468ec2d20605660206973207468652073697a65206f66207468652063617465676f7279206465736372697074696f6e20696e206b696c6f62797465732e142d2044423a242020202d204f2857292c23203c2f7765696768743e3c64656c6574655f63617465676f72790801146163746f725501014850726976696c656765644163746f723c543e00012c63617465676f72795f6964280134543a3a43617465676f727949640005283c44656c6574652063617465676f727900203c7765696768743e002423232057656967687438604f20285729602077686572653a6c2d20605760206973207468652063617465676f7279206465707468142d2044423a242020202d204f2857292c23203c2f7765696768743e346372656174655f746872656164100134666f72756d5f757365725f6964280138466f72756d5573657249643c543e00012c63617465676f72795f6964280134543a3a43617465676f727949640001206d6574616461746130011c5665633c75383e0001107465787430011c5665633c75383e00063074437265617465206e65772074687265616420696e2063617465676f727900203c7765696768743e002423232057656967687458604f202857202b2056202b205829602077686572653a6c2d20605760206973207468652063617465676f7279206465707468cc2d20605660206973207468652073697a65206f662074686520746872656164207469746c6520696e206b696c6f62797465732ec82d20605860206973207468652073697a65206f662074686520746872656164207465787420696e206b696c6f62797465732e142d2044423a242020202d204f2857292c23203c2f7765696768743e50656469745f7468726561645f6d65746164617461100134666f72756d5f757365725f6964280138466f72756d5573657249643c543e00012c63617465676f72795f6964280134543a3a43617465676f727949640001247468726561645f696428012c543a3a54687265616449640001306e65775f6d6574616461746130011c5665633c75383e00072c504564697420746872656164206d6574616461746100203c7765696768743e002423232057656967687448604f202857202b205629602077686572653a6c2d20605760206973207468652063617465676f7279206465707468d82d20605660206973207468652073697a65206f662074686520746872656164206d6574616461746120696e206b696c6f62797465732e142d2044423a242020202d204f2857292c23203c2f7765696768743e3464656c6574655f746872656164100134666f72756d5f757365725f6964280138466f72756d5573657249643c543e00012c63617465676f72795f6964280134543a3a43617465676f727949640001247468726561645f696428012c543a3a546872656164496400011068696465980110626f6f6c0008283444656c6574652074687265616400203c7765696768743e002423232057656967687438604f20285729602077686572653a6c2d20605760206973207468652063617465676f7279206465707468142d2044423a242020202d204f2857292c23203c2f7765696768743e5c6d6f76655f7468726561645f746f5f63617465676f72791001146163746f725501014850726976696c656765644163746f723c543e00012c63617465676f72795f6964280134543a3a43617465676f727949640001247468726561645f696428012c543a3a546872656164496400013c6e65775f63617465676f72795f6964280134543a3a43617465676f727949640009287c4d6f76652074687265616420746f20616e6f746865722063617465676f727900203c7765696768743e002423232057656967687438604f20285729602077686572653a6c2d20605760206973207468652063617465676f7279206465707468142d2044423a242020202d204f2857292c23203c2f7765696768743e3c6d6f6465726174655f7468726561641001146163746f725501014850726976696c656765644163746f723c543e00012c63617465676f72795f6964280134543a3a43617465676f727949640001247468726561645f696428012c543a3a5468726561644964000124726174696f6e616c6530011c5665633c75383e000a303c4d6f6465726174652074687265616400203c7765696768743e002423232057656967687458604f202857202b2056202b205829602077686572653a702d20605760206973207468652063617465676f72792064657074682c902d2060566020697320746865206e756d626572206f662074687265616420706f7374732cbc2d20605860206973207468652073697a65206f662074686520726174696f6e616c6520696e206b696c6f6279746573142d2044423a342020202d204f2857202b2056292c23203c2f7765696768743e206164645f706f7374140134666f72756d5f757365725f6964280138466f72756d5573657249643c543e00012c63617465676f72795f6964280134543a3a43617465676f727949640001247468726561645f696428012c543a3a54687265616449640001107465787430011c5665633c75383e0001206564697461626c65980110626f6f6c000b2c2041646420706f737400203c7765696768743e002423232057656967687448604f202857202b205629602077686572653a702d20605760206973207468652063617465676f72792064657074682ca82d20605660206973207468652073697a65206f6620746865207465787420696e206b696c6f6279746573142d2044423a242020202d204f2857292c23203c2f7765696768743e38656469745f706f73745f74657874140134666f72756d5f757365725f6964280138466f72756d5573657249643c543e00012c63617465676f72795f6964280134543a3a43617465676f727949640001247468726561645f696428012c543a3a546872656164496400011c706f73745f6964280124543a3a506f737449640001206e65775f7465787430011c5665633c75383e000c2c384564697420706f7374207465787400203c7765696768743e002423232057656967687448604f202857202b205629602077686572653a702d20605760206973207468652063617465676f72792064657074682cb82d20605660206973207468652073697a65206f6620746865206e6577207465787420696e206b696c6f6279746573142d2044423a242020202d204f2857292c23203c2f7765696768743e346d6f6465726174655f706f73741401146163746f725501014850726976696c656765644163746f723c543e00012c63617465676f72795f6964280134543a3a43617465676f727949640001247468726561645f696428012c543a3a546872656164496400011c706f73745f6964280124543a3a506f73744964000124726174696f6e616c6530011c5665633c75383e000d2c344d6f64657261746520706f737400203c7765696768743e002423232057656967687448604f202857202b205629602077686572653a702d20605760206973207468652063617465676f72792064657074682cbc2d20605660206973207468652073697a65206f662074686520726174696f6e616c6520696e206b696c6f6279746573142d2044423a242020202d204f2857292c23203c2f7765696768743e3064656c6574655f706f7374730c0134666f72756d5f757365725f6964280138466f72756d5573657249643c543e000114706f7374735d01018442547265654d61703c457874656e646564506f737449643c543e2c20626f6f6c3e000124726174696f6e616c6530011c5665633c75383e000e346444656c65746520706f73742066726f6d2073746f726167652eec596f75206e65656420746f2070726f76696465206120766563746f72206f6620706f73747320746f2064656c65746520696e2074686520666f726db428543a3a43617465676f727949642c20543a3a54687265616449642c20543a3a506f737449642c20626f6f6c292501776865726520746865206c61737420626f6f6c206973207768657468657220796f752077616e7420746f20686964652069742061706172742066726f6d2064656c6574696e67206974002423232057656967687458604f202857202b2056202b205029602077686572653a702d20605760206973207468652063617465676f72792064657074682cbc2d20605660206973207468652073697a65206f662074686520726174696f6e616c6520696e206b696c6f6279746573982d2060506020697320746865206e756d626572206f6620706f73747320746f2064656c657465142d2044423a342020202d204f2857202b2050292c23203c2f7765696768743e507365745f737469636b6965645f746872656164730c01146163746f725501014850726976696c656765644163746f723c543e00012c63617465676f72795f6964280134543a3a43617465676f72794964000130737469636b6965645f6964736901015442547265655365743c543a3a54687265616449643e000f2c8453657420737469636b696564207468726561647320666f722063617465676f727900203c7765696768743e002423232057656967687448604f202857202b205629602077686572653a702d20605760206973207468652063617465676f72792064657074682c9c2d2060566020697320746865206c656e677468206f662074686520737469636b6965645f696473142d2044423a342020202d204f2857202b2056292c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652ef905084c70616c6c65745f636f6e737469747574696f6e1043616c6c04045400010448616d656e645f636f6e737469747574696f6e040144636f6e737469747574696f6e5f7465787430011c5665633c75383e000018e453657473207468652063757272656e7420636f6e737469747574696f6e20686173682e20526571756972657320726f6f74206f726967696e2e2823203c7765696768743e11012d20436f6d706c65786974793a20604f28432960207768657265204320697320746865206c656e677468206f662074686520636f6e737469747574696f6e20746578742e342d2044622072656164733a20307c2d204462207772697465733a20312028636f6e7374616e742076616c7565292c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652efd05083470616c6c65745f626f756e74791043616c6c04045400013c346372656174655f626f756e7479080118706172616d737501016c426f756e74794372656174696f6e506172616d65746572733c543e0001206d6574616461746130011c5665633c75383e000028490143726561746573206120626f756e74792e204d657461646174612073746f72656420696e20746865207472616e73616374696f6e206c6f67206275742064697363617264656420616674657220746861742e203c7765696768743e002423232057656967687438604f20285729602077686572653aa42d2060576020697320746865205f6d657461646174612073697a6520696e206b696c6f62797465732eb02d20604d6020697320636c6f73656420636f6e7472616374206d656d626572206c697374206c656e6774682e142d2044423a842020202d204f284d2920284f283129206f6e206f70656e20636f6e7472616374292c23203c2f7765696768743e2c66756e645f626f756e74790c011866756e64657279010160426f756e74794163746f723c4d656d62657249643c543e3e000124626f756e74795f696428012c543a3a426f756e74794964000118616d6f756e7418013042616c616e63654f663c543e0001206050726f766964657320626f756e74792066756e64696e672e2823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e407465726d696e6174655f626f756e7479040124626f756e74795f696428012c543a3a426f756e74794964000224c05465726d696e61746573206120626f756e747920696e2066756e64696e672c2066756e64696e6720657870697265642c7c776f726b7375626d697373696f6e2c206a756467696e6720706572696f642e2823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e347377697463685f6f7261636c650801286e65775f6f7261636c6579010160426f756e74794163746f723c4d656d62657249643c543e3e000124626f756e74795f696428012c543a3a426f756e74794964000324904f7261636c652073776974636865732068696d73656c6620746f2061206e6577206f6e652823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e004077697468647261775f66756e64696e6708011866756e64657279010160426f756e74794163746f723c4d656d62657249643c543e3e000124626f756e74795f696428012c543a3a426f756e74794964000420c4576974686472617720626f756e74792066756e64696e672062792061206d656d626572206f72206120636f756e63696c2e2823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e4c616e6e6f756e63655f776f726b5f656e7472791001246d656d6265725f696428012c4d656d62657249643c543e000124626f756e74795f696428012c543a3a426f756e747949640001487374616b696e675f6163636f756e745f6964000130543a3a4163636f756e744964000140776f726b5f6465736372697074696f6e30011c5665633c75383e000528b0416e6e6f756e636520776f726b20656e74727920666f722061207375636365737366756c20626f756e74792e2823203c7765696768743e002423232077656967687448604f202857202b204d29602077686572653ac02d206057602069732074686520776f726b5f6465736372697074696f6e2073697a6520696e206b696c6f62797465732eb02d20604d6020697320636c6f73656420636f6e7472616374206d656d626572206c697374206c656e6774682e142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c7375626d69745f776f726b1001246d656d6265725f696428012c4d656d62657249643c543e000124626f756e74795f696428012c543a3a426f756e74794964000120656e7472795f6964280128543a3a456e7472794964000124776f726b5f6461746130011c5665633c75383e000624645375626d697420776f726b20666f72206120626f756e74792e2823203c7765696768743e00242323207765696768741c604f20284e2960a42d20604e602069732074686520776f726b5f646174612073697a6520696e206b696c6f62797465732c142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e48656e645f776f726b696e675f706572696f64040124626f756e74795f696428012c543a3a426f756e7479496400072068656e6420626f756e747920776f726b696e6720706572696f642e2823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e587375626d69745f6f7261636c655f6a7564676d656e740c0124626f756e74795f696428012c543a3a426f756e747949640001206a7564676d656e74850101a04f7261636c654a7564676d656e743c543a3a456e74727949642c2042616c616e63654f663c543e3e000124726174696f6e616c6530011c5665633c75383e00083819015375626d69747320616e206f7261636c65206a7564676d656e7420666f72206120626f756e74792c20736c617368696e672074686520656e74726965732072656a65637465642d01627920616e206172626974726172792070657263656e7461676520616e6420726577617264696e67207468652077696e6e65727320627920616e2061726269747261727920616d6f756e7498286e6f742073757270617373696e672074686520746f74616c2066756e6420616d6f756e74292823203c7765696768743e00242323207765696768744c604f20284a202b204b202b2057202b20522960942d20604a6020697320726174696f6e616c652073697a6520696e206b696c6f62797465732c61012d20604b60206973207468652073756d206f6620616c6c20616374696f6e5f6a757374696669636174696f6e2073697a65732028696e206b696c6f62797465732920696e73696465204f7261636c654a7564676d656e742cac2d20605760206973206e756d626572206f662077696e6e6572206a7564676d656e7420656e74726965732cb42d20605260206973206e756d626572206f662072656a6563746564206a7564676d656e7420656e74726965732c142d2064623a3c2020202d20604f2857202b205229602c23203c2f7765696768743e5877697468647261775f656e7472616e745f7374616b650c01246d656d6265725f696428012c4d656d62657249643c543e000124626f756e74795f696428012c543a3a426f756e74794964000120656e7472795f6964280128543a3a456e7472794964000928a4556e6c6f636b7320746865207374616b652072656c6174656420746f206120776f726b20656e747279a901416674657220746865206f7261636c65206d616b657320746865206a7564676d656e74206f722074686520636f756e63696c207465726d696e617465732074686520626f756e74792062792063616c6c696e67207465726d696e6174655f626f756e7479282e2e2e292c51016561636820776f726b65722077686f736520656e74727920686173206e6f74206265656e206a75646765642c2063616e20756e6c6f636b2074686520746f74616c697479206f66207468656972207374616b652e2823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5877697468647261775f6f7261636c655f726577617264040124626f756e74795f696428012c543a3a426f756e74794964000a2890576974687261777320746865206f7261636c652072657761726420746f206f7261636c651101496620626f756e7479206973207375636365737366756c6c792c204661696c6564206f722043616e63656c6c6564206f7261636c65206d7573742063616c6c2074686973a065787472696e73696320746f20776974686472617720746865206f7261636c65207265776172642c2823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e48636f6e7472696275746f725f72656d61726b0c012c636f6e7472696275746f7279010160426f756e74794163746f723c4d656d62657249643c543e3e000124626f756e74795f696428012c543a3a426f756e7479496400010c6d736730011c5665633c75383e000b2880426f756e747920436f6e7472696275746f72206d61646520612072656d61726b002823203c7765696768743e00242323207765696768741c604f20284e2960782d20604e60206973206d73672073697a6520696e206b696c6f6279746573142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e346f7261636c655f72656d61726b0c01186f7261636c6579010160426f756e74794163746f723c4d656d62657249643c543e3e000124626f756e74795f696428012c543a3a426f756e7479496400010c6d736730011c5665633c75383e000c286c426f756e7479204f7261636c65206d61646520612072656d61726b002823203c7765696768743e00242323207765696768741c604f20284e2960782d20604e60206973206d73672073697a6520696e206b696c6f6279746573142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e38656e7472616e745f72656d61726b100128656e7472616e745f696428012c4d656d62657249643c543e000124626f756e74795f696428012c543a3a426f756e74794964000120656e7472795f6964280128543a3a456e747279496400010c6d736730011c5665633c75383e000d288c426f756e747920456e7472616e7420576f726b6572206d61646520612072656d61726b002823203c7765696768743e00242323207765696768741c604f20284e2960782d20604e60206973206d73672073697a6520696e206b696c6f6279746573142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3863726561746f725f72656d61726b0c011c63726561746f7279010160426f756e74794163746f723c4d656d62657249643c543e3e000124626f756e74795f696428012c543a3a426f756e7479496400010c6d736730011c5665633c75383e000e286c426f756e7479204f7261636c65206d61646520612072656d61726b002823203c7765696768743e00242323207765696768741c604f20284e2960782d20604e60206973206d73672073697a6520696e206b696c6f6279746573142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e0106083870616c6c65745f7574696c6974791043616c6c0404540001105c657865637574655f7369676e616c5f70726f706f73616c0401187369676e616c30011c5665633c75383e00002871015369676e616c2070726f706f73616c2065787472696e7369632e2053686f756c6420626520757365642061732063616c6c61626c65206f626a65637420746f207061737320746f207468652060656e67696e6560206d6f64756c652e00203c7765696768743e002423232057656967687438604f20285329602077686572653ab02d20605360206973207468652073697a65206f6620746865207369676e616c20696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e80657865637574655f72756e74696d655f757067726164655f70726f706f73616c0401107761736d30011c5665633c75383e0001288c52756e74696d6520757067726164652070726f706f73616c2065787472696e7369632e050153686f756c6420626520757365642061732063616c6c61626c65206f626a65637420746f207061737320746f207468652060656e67696e6560206d6f64756c652e203c7765696768743e002423232057656967687438604f20284329602077686572653a742d2060436020697320746865206c656e677468206f6620607761736d603d01486f77657665722c207765207472656174207468697320617320612066756c6c20626c6f636b20617320606672616d655f73797374656d3a3a4d6f64756c653a3a7365745f636f64656020646f65732c23203c2f7765696768743ebd01235b776569676874203d2028543a3a426c6f636b576569676874733a3a67657428292e676574284469737061746368436c6173733a3a4f7065726174696f6e616c292e626173655f65787472696e7369632c204469737061746368436c6173733a3a4f7065726174696f6e616c295d6c7570646174655f776f726b696e675f67726f75705f6275646765740c0134776f726b696e675f67726f757099010130576f726b696e6747726f7570000118616d6f756e7418013042616c616e63654f663c543e00013062616c616e63655f6b696e649d01012c42616c616e63654b696e640002206c55706461746520776f726b696e672067726f757020627564676574203c7765696768743e0024232320576569676874c4604f202831296020446f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e4c6275726e5f6163636f756e745f746f6b656e73040118616d6f756e7418013042616c616e63654f663c543e000320784275726e7320746f6b656e20666f722063616c6c6572206163636f756e74203c7765696768743e0024232320576569676874c4604f202831296020446f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e0506083870616c6c65745f636f6e74656e741043616c6c04045400010101506372656174655f63757261746f725f67726f757008012469735f616374697665980110626f6f6c0001507065726d697373696f6e735f62795f6c6576656c5502017c4d6f6465726174696f6e5065726d697373696f6e7342794c6576656c3c543e000028a0416464206e65772063757261746f722067726f757020746f2072756e74696d652073746f7261676500203c7765696768743e002423232057656967687438604f20284129602077686572653af02d2060416020697320746865206e756d626572206f6620656e747269657320696e20607065726d697373696f6e735f62795f6c6576656c60206d6170142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e807570646174655f63757261746f725f67726f75705f7065726d697373696f6e7308014063757261746f725f67726f75705f6964280144543a3a43757261746f7247726f757049640001507065726d697373696f6e735f62795f6c6576656c5502017c4d6f6465726174696f6e5065726d697373696f6e7342794c6576656c3c543e000128ac557064617465206578697374696e672063757261746f722067726f75702773207065726d697373696f6e7300203c7765696768743e002423232057656967687438604f20284129602077686572653af02d2060416020697320746865206e756d626572206f6620656e747269657320696e20607065726d697373696f6e735f62795f6c6576656c60206d6170142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e607365745f63757261746f725f67726f75705f73746174757308014063757261746f725f67726f75705f6964280144543a3a43757261746f7247726f7570496400012469735f616374697665980110626f6f6c0002241d01536574206069735f616374697665602073746174757320666f722063757261746f722067726f757020756e64657220676976656e206063757261746f725f67726f75705f69646000203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e506164645f63757261746f725f746f5f67726f75700c014063757261746f725f67726f75705f6964280144543a3a43757261746f7247726f7570496400012863757261746f725f6964280130543a3a43757261746f72496400012c7065726d697373696f6e73bd01015c4368616e6e656c4167656e745065726d697373696f6e73000324ec4164642063757261746f7220746f2063757261746f722067726f757020756e64657220676976656e206063757261746f725f67726f75705f69646000203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6472656d6f76655f63757261746f725f66726f6d5f67726f757008014063757261746f725f67726f75705f6964280144543a3a43757261746f7247726f7570496400012863757261746f725f6964280130543a3a43757261746f724964000424a452656d6f76652063757261746f722066726f6d206120676976656e2063757261746f722067726f757000203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e386372656174655f6368616e6e656c0801346368616e6e656c5f6f776e6572e50101b04368616e6e656c4f776e65723c543a3a4d656d62657249642c20543a3a43757261746f7247726f757049643e000118706172616d73150201704368616e6e656c4372656174696f6e506172616d65746572733c543e000530203c7765696768743e002423232057656967687478604f202841202b2042202b2043202b2044202b204529602077686572653ae02d2060416020697320746865206e756d626572206f6620656e747269657320696e2060706172616d732e636f6c6c61626f7261746f727360e02d2060426020697320746865206e756d626572206f66206974656d7320696e2060706172616d732e73746f726167655f6275636b65747360f42d2060436020697320746865206e756d626572206f66206974656d7320696e2060706172616d732e646973747269627574696f6e5f6275636b6574736011012d2060446020697320746865206e756d626572206f66206974656d7320696e2060706172616d732e6173736574732e6f626a6563745f6372656174696f6e5f6c69737460c02d20604560206973207468652073697a65206f66202060706172616d732e6d6574616020696e206b696c6f6279746573142d2044423ae02020202d20604f2841202b2042202b2043202b20442960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e387570646174655f6368616e6e656c0c01146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c4964000118706172616d73410201684368616e6e656c557064617465506172616d65746572733c543e000630203c7765696768743e002423232057656967687478604f202841202b2042202b2043202b2044202b204529602077686572653ae02d2060416020697320746865206e756d626572206f6620656e747269657320696e2060706172616d732e636f6c6c61626f7261746f72736071012d2060426020697320746865206e756d626572206f66206974656d7320696e2060706172616d732e6173736574735f746f5f75706c6f61642e6f626a6563745f6372656174696f6e5f6c69737460202869662070726f766964656429e42d2060436020697320746865206e756d626572206f66206974656d7320696e2060706172616d732e6173736574735f746f5f72656d6f766560cc2d20604460206973207468652073697a65206f662060706172616d732e6e65775f6d6574616020696e206b696c6f6279746573ec2d206045602069732060706172616d732e73746f726167655f6275636b6574735f6e756d5f7769746e65737360202869662070726f766964656429142d2044423ae02020202d20604f2841202b2042202b2043202b20452960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e787570646174655f6368616e6e656c5f70726976696c6567655f6c6576656c0801286368616e6e656c5f6964280130543a3a4368616e6e656c496400014c6e65775f70726976696c6567655f6c6576656c080160543a3a4368616e6e656c50726976696c6567654c6576656c000724150145787472696e73696320666f72207570646174696e67206368616e6e656c2070726976696c656765206c6576656c20287265717569726573206c656164206163636573732900203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743ea07365745f6368616e6e656c5f7061757365645f66656174757265735f61735f6d6f64657261746f721001146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c496400014c6e65775f7061757365645f6665617475726573d901018042547265655365743c5061757361626c654368616e6e656c466561747572653e000124726174696f6e616c6530011c5665633c75383e000828c845787472696e73696320666f722070617573696e672f72652d656e61626c696e67206368616e6e656c20666561747572657300203c7765696768743e002423232057656967687438604f20284129602077686572653ab42d20604160206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3864656c6574655f6368616e6e656c1001146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c496400014c6368616e6e656c5f6261675f7769746e657373090601444368616e6e656c4261675769746e6573730001546e756d5f6f626a656374735f746f5f64656c65746528010c753634000928203c7765696768743e002423232057656967687458604f202841202b2042202b204329602077686572653a802d2060416020697320606e756d5f6f626a656374735f746f5f64656c65746560c82d2060426020697320606368616e6e656c5f6261675f7769746e6573732e73746f726167655f6275636b6574735f6e756d60dc2d2060436020697320606368616e6e656c5f6261675f7769746e6573732e646973747269627574696f6e5f6275636b6574735f6e756d60142d2044423ad02020202d20604f2841202b2042202b20432960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e8864656c6574655f6368616e6e656c5f6173736574735f61735f6d6f64657261746f721401146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c49640001406173736574735f746f5f72656d6f76656901016442547265655365743c446174614f626a65637449643c543e3e00016c73746f726167655f6275636b6574735f6e756d5f7769746e65737310010c753332000124726174696f6e616c6530011c5665633c75383e000a28203c7765696768743e002423232057656967687458604f202841202b2042202b204329602077686572653aa42d2060416020697320746865206c656e677468206f6620606173736574735f746f5f72656d6f766560cc2d20604260206973207468652076616c7565206f66206073746f726167655f6275636b6574735f6e756d5f7769746e65737360b42d20604360206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423ac02020202d20604f2841202b20422960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e6c64656c6574655f6368616e6e656c5f61735f6d6f64657261746f721401146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c496400014c6368616e6e656c5f6261675f7769746e657373090601444368616e6e656c4261675769746e6573730001546e756d5f6f626a656374735f746f5f64656c65746528010c753634000124726174696f6e616c6530011c5665633c75383e000b008c7365745f6368616e6e656c5f7669736962696c6974795f61735f6d6f64657261746f721001146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c496400012469735f68696464656e980110626f6f6c000124726174696f6e616c6530011c5665633c75383e000c28350145787472696e73696320666f722073657474696e67206368616e6e656c207669736962696c69747920737461747573202868696464656e2f76697369626c6529206279206d6f64657261746f7200203c7765696768743e002423232057656967687438604f20284129602077686572653ab42d20604160206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e306372656174655f766964656f0c01146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c4964000118706172616d7349020168566964656f4372656174696f6e506172616d65746572733c543e000d2c203c7765696768743e002423232057656967687468604f202841202b2042202b2043202b204429602077686572653a11012d2060416020697320746865206e756d626572206f66206974656d7320696e2060706172616d732e6173736574732e6f626a6563745f6372656174696f6e5f6c69737460b42d206042602069732060706172616d732e73746f726167655f6275636b6574735f6e756d5f7769746e6573736035012d2060436020697320746865206c656e677468206f66206f70656e2061756374696f6e202f20656e676c6973682061756374696f6e2077686974656c697374202869662070726f766964656429f42d20604460206973207468652073697a65206f662060706172616d732e6d6574616020696e206b696c6f6279746573202869662070726f766964656429142d2044423ad02020202d20604f2841202b2042202b20432960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e307570646174655f766964656f0c01146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f4964000118706172616d7351020160566964656f557064617465506172616d65746572733c543e000e30203c7765696768743e002423232057656967687478604f202841202b2042202b2043202b2044202b204529602077686572653a25012d2060416020697320706172616d732e6173736574735f746f5f75706c6f61642e6f626a6563745f6372656174696f6e5f6c6973742e6c656e2829202869662070726f766964656429982d2060426020697320706172616d732e6173736574735f746f5f72656d6f76652e6c656e2829ec2d206043602069732060706172616d732e73746f726167655f6275636b6574735f6e756d5f7769746e65737360202869662070726f76696465642935012d2060446020697320746865206c656e677468206f66206f70656e2061756374696f6e202f20656e676c6973682061756374696f6e2077686974656c697374202869662070726f76696465642905012d20604560206973207468652073697a65206f662060706172616d732e6e65775f6d6574616020696e206b696c6f6279746573202869662070726f766964656429142d2044423ae02020202d20604f2841202b2042202b2043202b20442960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e3064656c6574655f766964656f1001146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f49640001546e756d5f6f626a656374735f746f5f64656c65746528010c75363400016c73746f726167655f6275636b6574735f6e756d5f7769746e6573730102012c4f7074696f6e3c7533323e000f24203c7765696768743e002423232057656967687448604f202841202b204229602077686572653a782d20604160206973206e756d5f6f626a656374735f746f5f64656c657465ec2d206042602069732060706172616d732e73746f726167655f6275636b6574735f6e756d5f7769746e65737360202869662070726f766964656429142d2044423ac02020202d20604f2841202b20422960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e8064656c6574655f766964656f5f6173736574735f61735f6d6f64657261746f721401146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f496400016c73746f726167655f6275636b6574735f6e756d5f7769746e65737310010c7533320001406173736574735f746f5f72656d6f76656901016442547265655365743c446174614f626a65637449643c543e3e000124726174696f6e616c6530011c5665633c75383e001028203c7765696768743e002423232057656967687458604f202841202b2042202b204329602077686572653aa42d2060416020697320746865206c656e677468206f6620606173736574735f746f5f72656d6f766560cc2d20604260206973207468652076616c7565206f66206073746f726167655f6275636b6574735f6e756d5f7769746e65737360b42d20604360206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423ac02020202d20604f2841202b20422960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e6464656c6574655f766964656f5f61735f6d6f64657261746f721401146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f496400016c73746f726167655f6275636b6574735f6e756d5f7769746e6573730102012c4f7074696f6e3c7533323e0001546e756d5f6f626a656374735f746f5f64656c65746528010c753634000124726174696f6e616c6530011c5665633c75383e001128203c7765696768743e002423232057656967687458604f202841202b2042202b204329602077686572653ab42d20604160206973207468652076616c7565206f6620606e756d5f6f626a656374735f746f5f64656c65746560cc2d20604260206973207468652076616c7565206f66206073746f726167655f6275636b6574735f6e756d5f7769746e65737360b42d20604360206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423ac02020202d20604f2841202b20422960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e847365745f766964656f5f7669736962696c6974795f61735f6d6f64657261746f721001146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f496400012469735f68696464656e980110626f6f6c000124726174696f6e616c6530011c5665633c75383e0012282d0145787472696e73696320666f7220766964656f207669736962696c69747920737461747573202868696464656e2f76697369626c65292073657474696e67206279206d6f64657261746f7200203c7765696768743e002423232057656967687438604f20284129602077686572653ab42d20604160206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e587570646174655f6368616e6e656c5f7061796f757473080118706172616d73710201845570646174654368616e6e656c5061796f757473506172616d65746572733c543e00014075706c6f616465725f6163636f756e74000130543a3a4163636f756e74496400132458557064617465206368616e6e656c207061796f75747300203c7765696768743e002423232057656967687438604f20283129602077686572653a142d2044423a182d204f2831292c23203c2f7765696768743e50636c61696d5f6368616e6e656c5f7265776172640c01146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e00011470726f6f660d0601505665633c50726f6f66456c656d656e743c543e3e0001106974656d1906013850756c6c5061796d656e743c543e001428a0436c61696d2072657761726420696e204a4f592066726f6d206368616e6e656c206163636f756e7400203c7765696768743e002423232057656967687438604f20284829602077686572653ac82d2060486020697320746865206c656e676874206f66207468652070726f7669646564206d65726b6c65206070726f6f6660142d2044423a242020202d204f2831292c23203c2f7765696768743e7477697468647261775f66726f6d5f6368616e6e656c5f62616c616e63650c01146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c4964000118616d6f756e7418013042616c616e63654f663c543e001524845769746864726177204a4f592066726f6d206368616e6e656c206163636f756e7400203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e7c7570646174655f6368616e6e656c5f73746174655f626c6f61745f626f6e640401706e65775f6368616e6e656c5f73746174655f626c6f61745f626f6e6418013042616c616e63654f663c543e0016289c55706461746573206368616e6e656c20737461746520626c6f617420626f6e642076616c75652e7c4f6e6c79206c6561642063616e2075706c6f616420746869732076616c756500203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e747570646174655f766964656f5f73746174655f626c6f61745f626f6e640401686e65775f766964656f5f73746174655f626c6f61745f626f6e6418013042616c616e63654f663c543e001728945570646174657320766964656f20737461746520626c6f617420626f6e642076616c75652e7c4f6e6c79206c6561642063616e2075706c6f616420746869732076616c756500203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e84636c61696d5f616e645f77697468647261775f6368616e6e656c5f7265776172640c01146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e00011470726f6f660d0601505665633c50726f6f66456c656d656e743c543e3e0001106974656d1906013850756c6c5061796d656e743c543e001828d4436c61696d20616e642077697468647261772072657761726420696e204a4f592066726f6d206368616e6e656c206163636f756e7400203c7765696768743e002423232057656967687438604f20284829602077686572653ac82d2060486020697320746865206c656e676874206f66207468652070726f7669646564206d65726b6c65206070726f6f6660142d2044423a242020202d204f2831292c23203c2f7765696768743e2469737375655f6e66740c01146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f4964000118706172616d73090201604e667449737375616e6365506172616d65746572733c543e001930244973737565204e465400203c7765696768743e00242323205765696768742c604f202857202b20422960142d2044423a242020202d204f2857291877686572653a19012020202d2057203a206d656d6265722077686974656c697374206c656e67746820696e2063617365206e667420696e697469616c207374617475732069732061756374696f6ec02020202d2042203a2073697a65206f66206d6574616461746120706172616d6574657220696e206b696c6f62797465732c23203c2f7765696768743e2c64657374726f795f6e66740801146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f4964001a242c44657374726f79204e465400203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e4873746172745f6f70656e5f61756374696f6e0c01206f776e65725f6964a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f496400013861756374696f6e5f706172616d73050201504f70656e41756374696f6e506172616d733c543e001b2470537461727420766964656f206e6674206f70656e2061756374696f6e203c7765696768743e002423232057656967687438604f20285729602077686572653a742d2057203a206d656d6265722077686974656c697374206c656e677468142d2044423a242020202d204f2857292c23203c2f7765696768743e5473746172745f656e676c6973685f61756374696f6e0c01206f776e65725f6964a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f496400013861756374696f6e5f706172616d73fd01015c456e676c69736841756374696f6e506172616d733c543e001c247c537461727420766964656f206e667420656e676c6973682061756374696f6e203c7765696768743e002423232057656967687438604f20285729602077686572653a882d2057203a2077686974656c697374206d656d626572206c697374206c656e677468142d2044423a242020202d204f2857292c23203c2f7765696768743e5863616e63656c5f656e676c6973685f61756374696f6e0801206f776e65725f6964a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f4964001d208043616e63656c20766964656f206e667420656e676c6973682061756374696f6e203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e4c63616e63656c5f6f70656e5f61756374696f6e0801206f776e65725f6964a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f4964001e207443616e63656c20766964656f206e6674206f70656e2061756374696f6e203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e3063616e63656c5f6f666665720801206f776e65725f6964a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f4964001f244043616e63656c204e6674206f6666657200203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e3863616e63656c5f6275795f6e6f770801206f776e65725f6964a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f49640020245443616e63656c204e66742073656c6c206f7264657200203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f283129243c2f7765696768743e507570646174655f6275795f6e6f775f70726963650c01206f776e65725f6964a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f49640001246e65775f707269636518013042616c616e63654f663c543e0021246055706461746520427579206e6f77206e667420707269636500203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e546d616b655f6f70656e5f61756374696f6e5f6269640c01387061727469636970616e745f696428012c543a3a4d656d6265724964000120766964656f5f6964280128543a3a566964656f49640001286269645f616d6f756e7418013042616c616e63654f663c543e002220404d616b652061756374696f6e20626964203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e606d616b655f656e676c6973685f61756374696f6e5f6269640c01387061727469636970616e745f696428012c543a3a4d656d6265724964000120766964656f5f6964280128543a3a566964656f49640001286269645f616d6f756e7418013042616c616e63654f663c543e002320604d616b6520656e676c6973682061756374696f6e20626964203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e5c63616e63656c5f6f70656e5f61756374696f6e5f6269640801387061727469636970616e745f696428012c543a3a4d656d6265724964000120766964656f5f6964280128543a3a566964656f49640024205c43616e63656c206f70656e2061756374696f6e20626964203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e58736574746c655f656e676c6973685f61756374696f6e040120766964656f5f6964280128543a3a566964656f496400252464436c61696d20776f6e20656e676c6973682061756374696f6e5c43616e2062652063616c6c656420627920616e796f6e65203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e607069636b5f6f70656e5f61756374696f6e5f77696e6e65721001206f776e65725f6964a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f496400012477696e6e65725f696428012c543a3a4d656d6265724964000118636f6d6d697418013042616c616e63654f663c543e0026245c416363657074206f70656e2061756374696f6e206269648c53686f756c64206f6e6c792062652063616c6c65642062792061756374696f6e656572203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e246f666665725f6e6674100120766964656f5f6964280128543a3a566964656f49640001206f776e65725f6964a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000108746f28012c543a3a4d656d62657249640001147072696365450101504f7074696f6e3c42616c616e63654f663c543e3e002724244f66666572204e667400203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e38736c696e675f6e66745f6261636b080120766964656f5f6964280128543a3a566964656f49640001206f776e65725f6964a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e002824c452657475726e204e6674206261636b20746f20746865206f726967696e616c20617274697374206174206e6f20636f737400203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e546163636570745f696e636f6d696e675f6f66666572080120766964656f5f6964280128543a3a566964656f49640001347769746e6573735f7072696365450101a04f7074696f6e3c3c542061732062616c616e6365733a3a436f6e6669673e3a3a42616c616e63653e0029246441636365707420696e636f6d696e67204e6674206f6666657200203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e2073656c6c5f6e66740c0120766964656f5f6964280128543a3a566964656f49640001206f776e65725f6964a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000114707269636518013042616c616e63654f663c543e002a202053656c6c204e6674203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e1c6275795f6e66740c0120766964656f5f6964280128543a3a566964656f49640001387061727469636970616e745f696428012c543a3a4d656d62657249640001347769746e6573735f707269636518013042616c616e63654f663c543e002b241c427579204e667400203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e44746f67676c655f6e66745f6c696d69747304011c656e61626c6564980110626f6f6c002c20dc4f6e6c7920436f756e63696c2063616e20746f67676c65206e66742069737375616e6365206c696d69747320636f6e73747261696e7473203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e506368616e6e656c5f6f776e65725f72656d61726b0801286368616e6e656c5f6964280130543a3a4368616e6e656c496400010c6d736730011c5665633c75383e002d28504368616e6e656c206f776e65722072656d61726b203c7765696768743e00242323205765696768741c604f2028422960142d2044423a242020202d204f2831291877686572653a8c2d204220697320746865206b696c6f62797465206c656e676874206f6620606d7367602c23203c2f7765696768743e506368616e6e656c5f6167656e745f72656d61726b0c01146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c496400010c6d736730011c5665633c75383e002e286c4368616e6e656c20636f6c6c61626f7261746f722072656d61726b203c7765696768743e00242323205765696768741c604f2028422960142d2044423a242020202d204f2831291877686572653a8420202d2042206973207468652062797465206c656e676874206f6620606d7367602c23203c2f7765696768743e406e66745f6f776e65725f72656d61726b0c01146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f496400010c6d736730011c5665633c75383e002f28404e4654206f776e65722072656d61726b203c7765696768743e00242323205765696768741c604f2028422960142d2044423a2020202d204f2831291877686572653a8420202d2042206973207468652062797465206c656e676874206f6620606d7367602c23203c2f7765696768743e6c696e697469616c697a655f6368616e6e656c5f7472616e736665720c01286368616e6e656c5f6964280130543a3a4368616e6e656c49640001146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e00013c7472616e736665725f706172616d731d06016c496e69745472616e73666572506172616d65746572734f663c543e003028dc53746172742061206368616e6e656c207472616e736665722077697468207370656369666965642063686172616374657269737469637300203c7765696768743e002423232057656967687438604f20284129602077686572653a25012d2060416020697320746865206e756d626572206f6620656e747269657320696e20607472616e736665725f706172616d732e6e65775f636f6c6c61626f7261746f727360206d6170142d2044423aa82020202d204f284129202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e5c63616e63656c5f6368616e6e656c5f7472616e736665720801286368616e6e656c5f6964280130543a3a4368616e6e656c49640001146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0031245c63616e63656c206368616e6e656c207472616e7366657200203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5c6163636570745f6368616e6e656c5f7472616e736665720801286368616e6e656c5f6964280130543a3a4368616e6e656c4964000144636f6d6d69746d656e745f706172616d736d0201785472616e73666572436f6d6d69746d656e745769746e6573734f663c543e00322c6441636365707473206368616e6e656c207472616e736665722e310160636f6d6d69746d656e745f706172616d736020697320726571756972656420746f2070726576656e74206368616e67696e6720746865207472616e7366657220636f6e646974696f6e732e00203c7765696768743e002423232057656967687438604f20284129602077686572653a2d012d2060416020697320746865206e756d626572206f6620656e747269657320696e2060636f6d6d69746d656e745f706172616d732e6e65775f636f6c6c61626f7261746f727360206d6170142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5c7570646174655f676c6f62616c5f6e66745f6c696d69740801406e66745f6c696d69745f706572696f64890201384e66744c696d6974506572696f640001146c696d697428010c753634003320605570646174657320676c6f62616c204e4654206c696d6974203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e607570646174655f6368616e6e656c5f6e66745f6c696d69741001146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001406e66745f6c696d69745f706572696f64890201384e66744c696d6974506572696f640001286368616e6e656c5f6964280130543a3a4368616e6e656c49640001146c696d697428010c7536340034207055706461746573206368616e6e656c2773204e4654206c696d69742e203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e4c69737375655f63726561746f725f746f6b656e0c01146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c4964000118706172616d73c9020170546f6b656e49737375616e6365506172616d65746572734f663c543e0035284c49737375652063726561746f7220746f6b656e00203c7765696768743e002423232057656967687438604f20284129602077686572653a05012d2060416020697320746865206e756d626572206f6620656e747269657320696e2060706172616d732e696e697469616c5f616c6c6f636174696f6e60206d6170142d2044423ab02020202d20604f28412960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e5c696e69745f63726561746f725f746f6b656e5f73616c650c01146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c4964000118706172616d7321060150546f6b656e53616c65506172616d734f663c543e00362874496e697469616c697a652063726561746f7220746f6b656e2073616c6500203c7765696768743e002423232057656967687438604f20284129602077686572653a29012d20604160206973207468652073697a65206f662060706172616d732e6d657461646174616020696e206b696c6f627974657320286f722030206966206e6f742070726f766964656429142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e887570646174655f7570636f6d696e675f63726561746f725f746f6b656e5f73616c651001146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c496400013c6e65775f73746172745f626c6f636b010201584f7074696f6e3c543a3a426c6f636b4e756d6265723e0001306e65775f6475726174696f6e010201584f7074696f6e3c543a3a426c6f636b4e756d6265723e00372488557064617465207570636f6d696e672063726561746f7220746f6b656e2073616c6500203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e7463726561746f725f746f6b656e5f6973737565725f7472616e736665721001146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c496400011c6f757470757473250601645472616e73666572735769746856657374696e674f663c543e0001206d6574616461746130011c5665633c75383e00382cc8506572666f726d207472616e73666572206f6620746f6b656e732061732063726561746f7220746f6b656e2069737375657200203c7765696768743e002423232057656967687448604f202841202b204229602077686572653aac2d2060416020697320746865206e756d626572206f6620656e747269657320696e20606f75747075747360c02d20604260206973207468652073697a65206f662074686520606d657461646174616020696e206b696c6f6279746573142d2044423ab02020202d20604f28412960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e846d616b655f63726561746f725f746f6b656e5f7065726d697373696f6e6c6573730801146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c4964003924ac4d616b65206368616e6e656c27732063726561746f7220746f6b656e207065726d697373696f6e6c65737300203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e987265647563655f63726561746f725f746f6b656e5f706174726f6e6167655f726174655f746f0c01146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c496400012c7461726765745f72617465f9020128596561726c7952617465003a24f0526564756365206368616e6e656c27732063726561746f7220746f6b656e20706174726f6e616765207261746520746f20676976656e2076616c756500203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e90636c61696d5f63726561746f725f746f6b656e5f706174726f6e6167655f6372656469740801146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c4964003b24b8436c61696d206368616e6e656c27732063726561746f7220746f6b656e20706174726f6e6167652063726564697400203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e4c69737375655f726576656e75655f73706c69741001146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c49640001147374617274010201584f7074696f6e3c543a3a426c6f636b4e756d6265723e0001206475726174696f6e100138543a3a426c6f636b4e756d626572003c2484497373756520726576656e75652073706c697420666f722061206368616e6e656c00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5866696e616c697a655f726576656e75655f73706c69740801146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c4964003d247c46696e616c697a6520616e20656e64656420726576656e75652073706c697400203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6c66696e616c697a655f63726561746f725f746f6b656e5f73616c650801146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c4964003e249046696e616c697a6520616e20656e6465642063726561746f7220746f6b656e2073616c6500203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e54646569737375655f63726561746f725f746f6b656e0801146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c4964003f247c44656973737565206368616e6e656c27732063726561746f7220746f6b656e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e09060c3870616c6c65745f636f6e74656e74147479706573444368616e6e656c4261675769746e657373000008014c73746f726167655f6275636b6574735f6e756d10010c753332000160646973747269627574696f6e5f6275636b6574735f6e756d10010c75333200000d0600000211060011060c3470616c6c65745f636f6d6d6f6e2c6d65726b6c655f747265654850726f6f66456c656d656e745265636f7264081048617368012c105369646501150600080110686173682c011048617368000110736964651506011053696465000015060c3470616c6c65745f636f6d6d6f6e2c6d65726b6c655f747265651053696465000108104c6566740000001452696768740001000019060c3870616c6c65745f636f6e74656e741474797065734850756c6c5061796d656e74456c656d656e740c244368616e6e656c496401281c42616c616e636501181048617368012c000c01286368616e6e656c5f69642801244368616e6e656c496400016063756d756c61746976655f7265776172645f6561726e656418011c42616c616e6365000118726561736f6e2c01104861736800001d060c3870616c6c65745f636f6e74656e7414747970657358496e69745472616e73666572506172616d65746572730c204d656d626572496401283843757261746f7247726f7570496401281c42616c616e63650118000c01446e65775f636f6c6c61626f7261746f72732d0201ac42547265654d61703c4d656d62657249642c204368616e6e656c4167656e745065726d697373696f6e733e000114707269636518011c42616c616e63650001246e65775f6f776e6572e50101984368616e6e656c4f776e65723c4d656d62657249642c2043757261746f7247726f757049643e000021060c5070616c6c65745f70726f6a6563745f746f6b656e1474797065733c546f6b656e53616c65506172616d7310284a6f7942616c616e636501181c42616c616e636501182c426c6f636b4e756d62657201105456657374696e675363686564756c65506172616d7301d102001c0128756e69745f70726963651801284a6f7942616c616e636500015075707065725f626f756e645f7175616e7469747918011c42616c616e63650001247374617274735f61740102014c4f7074696f6e3c426c6f636b4e756d6265723e0001206475726174696f6e10012c426c6f636b4e756d62657200015c76657374696e675f7363686564756c655f706172616d73d90201744f7074696f6e3c56657374696e675363686564756c65506172616d733e0001386361705f7065725f6d656d6265724501013c4f7074696f6e3c42616c616e63653e0001206d657461646174613101013c4f7074696f6e3c5665633c75383e3e000025060c5070616c6c65745f70726f6a6563745f746f6b656e147479706573245472616e736665727308204d656d626572496401281c5061796d656e740109030004002906016c42547265654d61703c4d656d62657249642c205061796d656e743e00002906042042547265654d617008044b012804560109030004002d060000002d06000002310600310600000408280903003506083870616c6c65745f73746f726167651043616c6c04045400018c5464656c6574655f73746f726167655f6275636b657404014473746f726167655f6275636b65745f6964280148543a3a53746f726167654275636b657449640000201d0144656c6574652073746f72616765206275636b65742e204d75737420626520656d7074792e2053746f72616765206f70657261746f72206d757374206265206d697373696e672e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e7c7570646174655f75706c6f6164696e675f626c6f636b65645f7374617475730401286e65775f737461747573980110626f6f6c000120785570646174657320676c6f62616c2075706c6f6164696e6720666c61672e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e507570646174655f646174615f73697a655f6665650401446e65775f646174615f73697a655f66656518013042616c616e63654f663c543e000220cc557064617465732073697a652d62617365642070726963696e67206f66206e6577206f626a656374732075706c6f616465642e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e907570646174655f73746f726167655f6275636b6574735f7065725f6261675f6c696d69740401246e65775f6c696d697410010c753332000320bc55706461746573202253746f72616765206275636b657473207065722062616722206e756d626572206c696d69742e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743ea47570646174655f73746f726167655f6275636b6574735f766f75636865725f6d61785f6c696d6974730801406e65775f6f626a656374735f73697a6528010c7536340001486e65775f6f626a656374735f6e756d62657228010c753634000420b455706461746573202253746f72616765206275636b65747320766f7563686572206d6178206c696d697473222e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e8c7570646174655f646174615f6f626a6563745f73746174655f626c6f61745f626f6e6404014073746174655f626c6f61745f626f6e6418013042616c616e63654f663c543e000520ac557064617465732064617461206f626a65637420737461746520626c6f617420626f6e642076616c75652e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743efc7570646174655f6e756d6265725f6f665f73746f726167655f6275636b6574735f696e5f64796e616d69635f6261675f6372656174696f6e5f706f6c69637908014064796e616d69635f6261675f74797065b102013844796e616d6963426167547970650001646e756d6265725f6f665f73746f726167655f6275636b65747310010c7533320006202d01557064617465206e756d626572206f662073746f72616765206275636b657473207573656420696e20676976656e2064796e616d696320626167206372656174696f6e20706f6c6963792e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e407570646174655f626c61636b6c69737408013472656d6f76655f686173686573a502014442547265655365743c5665633c75383e3e0001286164645f686173686573a502014442547265655365743c5665633c75383e3e000728bc41646420616e642072656d6f76652068617368657320746f207468652063757272656e7420626c61636b6c6973742e203c7765696768743e002423232057656967687448604f202857202b205629602077686572653abc2d2060576020697320746865206e756d626572206f66206974656d7320696e206072656d6f76655f68617368657360b02d2060566020697320746865206e756d626572206f66206974656d7320696e20606164645f68617368657360142d2044423ab02020202d20604f28572960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e546372656174655f73746f726167655f6275636b6574100134696e766974655f776f726b65723501014c4f7074696f6e3c576f726b657249643c543e3e000148616363657074696e675f6e65775f62616773980110626f6f6c00012873697a655f6c696d697428010c7536340001346f626a656374735f6c696d697428010c753634000820584372656174652073746f72616765206275636b65742e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e787570646174655f73746f726167655f6275636b6574735f666f725f6261670c01186261675f69649502012042616749643c543e00012c6164645f6275636b6574736901017042547265655365743c543a3a53746f726167654275636b657449643e00013872656d6f76655f6275636b6574736901017042547265655365743c543a3a53746f726167654275636b657449643e00092888557064617465732073746f72616765206275636b65747320666f722061206261672e203c7765696768743e002423232057656967687448604f202857202b205629602077686572653ab42d2060576020697320746865206e756d626572206f66206974656d7320696e20606164645f6275636b65747360c02d2060566020697320746865206e756d626572206f66206974656d7320696e206072656d6f76655f6275636b65747360142d2044423ac02020202d20604f2856202b20572960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e9463616e63656c5f73746f726167655f6275636b65745f6f70657261746f725f696e7669746504014473746f726167655f6275636b65745f6964280148543a3a53746f726167654275636b65744964000a20110143616e63656c2070656e64696e672073746f72616765206275636b657420696e766974652e20416e20696e7669746174696f6e206d7573742062652070656e64696e672e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e78696e766974655f73746f726167655f6275636b65745f6f70657261746f7208014473746f726167655f6275636b65745f6964280148543a3a53746f726167654275636b6574496400012c6f70657261746f725f696428012c576f726b657249643c543e000b20c0496e766974652073746f72616765206275636b6574206f70657261746f722e204d757374206265206d697373696e672e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e7872656d6f76655f73746f726167655f6275636b65745f6f70657261746f7204014473746f726167655f6275636b65745f6964280148543a3a53746f726167654275636b65744964000c208052656d6f7665732073746f72616765206275636b6574206f70657261746f722e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e707570646174655f73746f726167655f6275636b65745f73746174757308014473746f726167655f6275636b65745f6964280148543a3a53746f726167654275636b65744964000148616363657074696e675f6e65775f62616773980110626f6f6c000d20dc5570646174652077686574686572206e6577206261677320617265206265696e6720616363657074656420666f722073746f726167652e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e847365745f73746f726167655f6275636b65745f766f75636865725f6c696d6974730c014473746f726167655f6275636b65745f6964280148543a3a53746f726167654275636b657449640001586e65775f6f626a656374735f73697a655f6c696d697428010c7536340001606e65775f6f626a656374735f6e756d6265725f6c696d697428010c753634000e208c536574732073746f72616765206275636b657420766f7563686572206c696d6974732e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e806163636570745f73746f726167655f6275636b65745f696e7669746174696f6e0c0124776f726b65725f696428012c576f726b657249643c543e00014473746f726167655f6275636b65745f6964280148543a3a53746f726167654275636b657449640001547472616e736163746f725f6163636f756e745f6964000130543a3a4163636f756e744964000f285d01416363657074207468652073746f72616765206275636b657420696e7669746174696f6e2e20416e20696e7669746174696f6e206d757374206d617463682074686520776f726b65725f696420706172616d657465722e59014974206163636570747320616e206164646974696f6e616c206163636f756e7420494420287472616e736163746f722920666f7220616363657074696e672064617461206f626a6563747320746f2070726576656e74747472616e73616374696f6e206e6f6e636520636f6c6c6973696f6e732e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e747365745f73746f726167655f6f70657261746f725f6d657461646174610c0124776f726b65725f696428012c576f726b657249643c543e00014473746f726167655f6275636b65745f6964280148543a3a53746f726167654275636b657449640001206d6574616461746130011c5665633c75383e001024dc536574732073746f72616765206f70657261746f72206d65746164617461202865672e3a2073746f72616765206e6f64652055524c292e203c7765696768743e002423232057656967687438604f20285729602077686572653aa02d206057602069732073697a65206f6620606d657461646174616020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6c6163636570745f70656e64696e675f646174615f6f626a65637473100124776f726b65725f696428012c576f726b657249643c543e00014473746f726167655f6275636b65745f6964280148543a3a53746f726167654275636b657449640001186261675f69649502012042616749643c543e000130646174615f6f626a656374736901016442547265655365743c543a3a446174614f626a65637449643e0011246501412073746f726167652070726f7669646572207369676e616c732074686174207468652064617461206f626a65637420776173207375636365737366756c6c792075706c6f6164656420746f206974732073746f726167652e203c7765696768743e00242323205765696768743c604f2028572029602077686572653ab82d2060576020697320746865206e756d626572206f66206974656d7320696e2060646174615f6f626a6563747360142d2044423ab02020202d20604f28572960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e846372656174655f646973747269627574696f6e5f6275636b65745f66616d696c7900122090437265617465206120646973747269627574696f6e206275636b65742066616d696c792e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e8464656c6574655f646973747269627574696f6e5f6275636b65745f66616d696c7904012466616d696c795f6964280174543a3a446973747269627574696f6e4275636b657446616d696c7949640013209444656c65746573206120646973747269627574696f6e206275636b65742066616d696c792e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e686372656174655f646973747269627574696f6e5f6275636b657408012466616d696c795f6964280174543a3a446973747269627574696f6e4275636b657446616d696c794964000148616363657074696e675f6e65775f62616773980110626f6f6c00142074437265617465206120646973747269627574696f6e206275636b65742e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e847570646174655f646973747269627574696f6e5f6275636b65745f7374617475730801246275636b65745f69642502015c446973747269627574696f6e4275636b657449643c543e000148616363657074696e675f6e65775f62616773980110626f6f6c001520d855706461746573206120646973747269627574696f6e206275636b6574202761636365707473206e657720626167732720666c61672e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6864656c6574655f646973747269627574696f6e5f6275636b65740401246275636b65745f69642502015c446973747269627574696f6e4275636b657449643c543e001620a844656c65746520646973747269627574696f6e206275636b65742e204d75737420626520656d7074792e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e8c7570646174655f646973747269627574696f6e5f6275636b6574735f666f725f6261671001186261675f69649502012042616749643c543e00012466616d696c795f6964280174543a3a446973747269627574696f6e4275636b657446616d696c79496400014c6164645f6275636b6574735f696e64696365736901019042547265655365743c543a3a446973747269627574696f6e4275636b6574496e6465783e00015872656d6f76655f6275636b6574735f696e64696365736901019042547265655365743c543a3a446973747269627574696f6e4275636b6574496e6465783e0017289c5570646174657320646973747269627574696f6e206275636b65747320666f722061206261672e203c7765696768743e002423232057656967687448604f202857202b205629602077686572653ad42d2060576020697320746865206e756d626572206f66206974656d7320696e20606164645f6275636b6574735f696e646963657360e02d2060566020697320746865206e756d626572206f66206974656d7320696e206072656d6f76655f6275636b6574735f696e646963657360142d2044423ac02020202d20604f2856202b20572960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743ea47570646174655f646973747269627574696f6e5f6275636b6574735f7065725f6261675f6c696d69740401246e65775f6c696d697410010c753332001820d0557064617465732022446973747269627574696f6e206275636b657473207065722062616722206e756d626572206c696d69742e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e7c7570646174655f646973747269627574696f6e5f6275636b65745f6d6f64650801246275636b65745f69642502015c446973747269627574696f6e4275636b657449643c543e000130646973747269627574696e67980110626f6f6c001920d8557064617465732027646973747269627574696e672720666c616720666f722074686520646973747269627574696e6720666c61672e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743eb87570646174655f66616d696c6965735f696e5f64796e616d69635f6261675f6372656174696f6e5f706f6c69637908014064796e616d69635f6261675f74797065b102013844796e616d69634261675479706500012066616d696c696573b50201b042547265654d61703c543a3a446973747269627574696f6e4275636b657446616d696c7949642c207533323e001a283d01557064617465206e756d626572206f66206469737472696275746564206275636b657473207573656420696e20676976656e2064796e616d696320626167206372656174696f6e20706f6c6963792e9c5570646174657320646973747269627574696f6e206275636b65747320666f722061206261672e203c7765696768743e002423232057656967687438604f20285729602077686572653aa82d2060576020697320746865206e756d626572206f66206974656d7320696e206066616d696c69657360142d2044423ab02020202d20604f28572960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e8c696e766974655f646973747269627574696f6e5f6275636b65745f6f70657261746f720801246275636b65745f69642502015c446973747269627574696f6e4275636b657449643c543e0001486f70657261746f725f776f726b65725f696428012c576f726b657249643c543e001b2090496e7669746520616e206f70657261746f722e204d757374206265206d697373696e672e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743ea863616e63656c5f646973747269627574696f6e5f6275636b65745f6f70657261746f725f696e766974650801246275636b65745f69642502015c446973747269627574696f6e4275636b657449643c543e0001486f70657261746f725f776f726b65725f696428012c576f726b657249643c543e001c209c43616e63656c2070656e64696e6720696e766974652e204d7573742062652070656e64696e672e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e8c72656d6f76655f646973747269627574696f6e5f6275636b65745f6f70657261746f720801246275636b65745f69642502015c446973747269627574696f6e4275636b657449643c543e0001486f70657261746f725f776f726b65725f696428012c576f726b657249643c543e001d209452656d6f76657320646973747269627574696f6e206275636b6574206f70657261746f722e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e9c7365745f646973747269627574696f6e5f6275636b65745f66616d696c795f6d6574616461746108012466616d696c795f6964280174543a3a446973747269627574696f6e4275636b657446616d696c7949640001206d6574616461746130011c5665633c75383e001e24a053657420646973747269627574696f6e206275636b65742066616d696c79206d657461646174612e203c7765696768743e002423232057656967687438604f20285729602077686572653aa02d206057602069732073697a65206f6620606d657461646174616020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e946163636570745f646973747269627574696f6e5f6275636b65745f696e7669746174696f6e080124776f726b65725f696428012c576f726b657249643c543e0001246275636b65745f69642502015c446973747269627574696f6e4275636b657449643c543e001f20584163636570742070656e64696e6720696e766974652e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e887365745f646973747269627574696f6e5f6f70657261746f725f6d657461646174610c0124776f726b65725f696428012c576f726b657249643c543e0001246275636b65745f69642502015c446973747269627574696f6e4275636b657449643c543e0001206d6574616461746130011c5665633c75383e002024fc53657420646973747269627574696f6e206f70657261746f72206d6574616461746120666f722074686520646973747269627574696f6e206275636b65742e203c7765696768743e002423232057656967687438604f20285729602077686572653aa02d206057602069732073697a65206f6620606d657461646174616020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5c73746f726167655f6f70657261746f725f72656d61726b0c0124776f726b65725f696428012c576f726b657249643c543e00014473746f726167655f6275636b65745f6964280148543a3a53746f726167654275636b6574496400010c6d736730011c5665633c75383e0021289c4465706f73697420612053746f726167654f70657261746f7252656d61726b6564206576656e7474636f6e7461696e696e6720612067656e65726963206d6573736167652e203c7765696768743e002423232057656967687438604f20285729602077686572653a9c2d206057602069732073697a65206f6620606d6573736167656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e70646973747269627574696f6e5f6f70657261746f725f72656d61726b0c0124776f726b65725f696428012c576f726b657249643c543e000158646973747269627574696f6e5f6275636b65745f69642502015c446973747269627574696f6e4275636b657449643c543e00010c6d736730011c5665633c75383e0022249c43726561746520612064796e616d6963206261672e20446576656c6f706d656e74206d6f64652e203c7765696768743e002423232057656967687438604f20285729602077686572653a9c2d206057602069732073697a65206f6620606d6573736167656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e3906085070616c6c65745f70726f6a6563745f746f6b656e1043616c6c04045400011c207472616e736665721001347372635f6d656d6265725f696428012c543a3a4d656d6265724964000120746f6b656e5f6964280128543a3a546f6b656e496400011c6f7574707574733d0601385472616e73666572734f663c543e0001206d6574616461746130011c5665633c75383e0000685501416c6c6f7720746f207472616e736665722066726f6d20607372635f6d656d6265725f696460206163636f756e7420746f2074686520766172696f757320606f757470757473602062656e6566696369617269657364696e207468652073706563696669656420616d6f756e74732e0038507265636f6e646974696f6e733ae82d206f726967696e207369676e6572206d75737420626520607372635f6d656d6265725f69646020636f6e74726f6c6c6572206163636f756e74842d20746f6b656e2062792060746f6b656e5f696460206d75737420657869737473d82d206163636f756e74206f6620607372635f6d656d6265725f696460206d75737420657869737420666f722060746f6b656e5f69646041012d2073656e646572206d757374206861766520656e6f756768204a4f597320746f20636f7665722074686520746f74616c20626c6f617420626f6e6420726571756972656420696e2063617365206f6678202064657374696e6174696f6e287329206e6f74206578697374696e672e29012d20736f75726365206163636f756e74206d757374206861766520656e6f75676820746f6b656e2066756e647320746f20636f76657220616c6c20746865207472616e7366657228732941012d20606f75747075747360206d7573742064657369676e617465206578697374696e672064657374696e6174696f6e28732920666f7220225065726d697373696f6e656422207472616e73666572732e3c506f7374636f6e646974696f6e733ae82d20736f75726365206163636f756e74277320746f6b656e7320616d6f756e74206973206465637265617365642062792060616d6f756e74602e49012d20746f74616c20626c6f617420626f6e64207472616e736665727265642066726f6d2073656e6465722773204a4f592062616c616e636520696e746f20746865207472656173757279206163636f756e74cc2020696e20636173652064657374696e6174696f6e2873292068617665206265656e20616464656420746f2073746f72616765ec2d20606f7574707574732e62656e65666963696172796020746f6b656e7320616d6f756e7420696e637265617365642062792060616d6f756e746000203c7765696768743e002423232057656967687448604f202854202b204d29602077686572653a802d2060546020697320746865206c656e677468206f6620606f75747075747360b02d20604d60206973207468652073697a65206f6620606d657461646174616020696e206b696c6f6279746573142d2044423aac20202d20604f28542960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e106275726e0c0120746f6b656e5f6964280128543a3a546f6b656e49640001246d656d6265725f696428012c543a3a4d656d6265724964000118616d6f756e74180144546f6b656e42616c616e63654f663c543e000178884275726e20746f6b656e732066726f6d20737065636966696564206163636f756e740038507265636f6e646974696f6e733a442d2060616d6f756e7460206973203e2030f42d206f726967696e207369676e6572206973206120636f6e74726f6c6c6572206163636f756e74206f6620606d656d6265725f696460206d656d626572702d20746f6b656e2062792060746f6b656e5f69646020657869737473c02d20616e206163636f756e742065786973747320666f722060746f6b656e5f696460207820606d656d6265725f696460a02d206163636f756e74277320746f6b656e7320616d6f756e74206973203e3d2060616d6f756e746005012d20746f6b656e20737570706c792063616e206265206d6f64696669656420287468657265206973206e6f2061637469766520726576656e75652073706c697429003c506f7374636f6e646974696f6e733a4d012d207374617274696e6720776974682060756e70726f6365737365646020626565696e6720657175616c20746f2060616d6f756e74602c206163636f756e7427732076657374696e67207363686564756c6573602020617265206974657261746564206f76657220616e643a5d0120202d2075706461746564207769746820606275726e65645f616d6f756e74202b3d207570726f636573736564602069662076657374696e67207363686564756c65277320756e76657374656420616d6f756e74206973742020202067726561746572207468616e20607570726f636573736564605420202d2072656d6f766564206f746865727769736545012020286166746572206561636820697465726174696f6e2060756e70726f6365737365646020697320726564756365642062792074686520616d6f756e74206f6620756e76657374656420746f6b656e737c20206275726e656420647572696e67207468617420697465726174696f6e2949012d20696620746865206163636f756e742068617320616e79206073706c69745f7374616b696e675f737461747573602c20746865206073706c69745f7374616b696e675f7374617475732e616d6f756e7460e820206973207265647563656420627920606d696e28616d6f756e742c2073706c69745f7374616b696e675f7374617475732e616d6f756e742960a42d20606163636f756e742e616d6f756e746020697320726564756365642062792060616d6f756e7460942d20746f6b656e20737570706c7920697320726564756365642062792060616d6f756e746000203c7765696768743e00242323205765696768741c604f2028312960142d2044423ad820202d20604f28312960202d20646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e30647573745f6163636f756e74080120746f6b656e5f6964280128543a3a546f6b656e49640001246d656d6265725f696428012c543a3a4d656d62657249640002508c416c6c6f7720616e79207573657220746f2072656d6f766520616e206163636f756e740038507265636f6e646974696f6e733a802d20746f6b656e2062792060746f6b656e5f696460206d757374206578697374d02d20616e206163636f756e74206d75737420657869737420666f722060746f6b656e5f696460207820606d656d6265725f69646015012d206966205065726d697373696f6e656420746f6b656e3a20606f726967696e60207369676e6572206d75737420626520606d656d6265725f696460206d656d6265722773502020636f6e74726f6c6c6572206163636f756e74ec2d2060746f6b656e5f696460207820606d656d6265725f696460206163636f756e74206d75737420626520616e20656d707479206163636f756e7478202028606163636f756e745f646174612e616d6f756e7460203d3d2030293c506f7374636f6e646974696f6e733a1d012d204163636f756e7420696e666f726d6174696f6e20666f722060746f6b656e5f696460207820606d656d6265725f6964602072656d6f7665642066726f6d2073746f72616765dc2d20626c6f617420626f6e6420726566756e64656420746f20606d656d6265725f69646020636f6e74726f6c6c6572206163636f756e74cc2020286f722060626c6f61745f626f6e642e72657061796d656e745f726573747269637465645f746f60206163636f756e742900203c7765696768743e001c604f2028312960142d2044423ad820202d20604f28312960202d20646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e386a6f696e5f77686974656c6973740c01246d656d6265725f696428012c543a3a4d656d6265724964000120746f6b656e5f6964280128543a3a546f6b656e496400011470726f6f66510601404d65726b6c6550726f6f664f663c543e00034c11014a6f696e2077686974656c69737420666f72207065726d697373696f6e656420636173653a207573656420746f20616464206163636f756e747320666f7220746f6b656e38507265636f6e646974696f6e733a682d2027746f6b656e5f696427206d7573742062652076616c6964f42d20606f726967696e60207369676e6572206d757374206265206120636f6e74726f6c6c6572206163636f756e74206f6620606d656d6265725f696460c02d206163636f756e7420666f7220606d656d6265725f696460206d757374206e6f7420616c726561647920657869737409012d207472616e7366657220706f6c69637920697320605065726d697373696f6e65646020616e64206d65726b6c652070726f6f66206d7573742062652076616c6964003c506f7374636f6e646974696f6e733af42d206163636f756e7420666f7220606d656d6265725f696460206372656174656420616e6420616464656420746f2070616c6c65742073746f72616765e82d2060626c6f61745f626f6e6460207472616e736665727265642066726f6d2073656e64657220746f207472656173757279206163636f756e7400203c7765696768743e002423232057656967687438604f20284829602077686572653a802d2060486020697320746865206c656e677468206f66206070726f6f662e3060142d2044423ad820202d20604f28312960202d20646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5c70757263686173655f746f6b656e735f6f6e5f73616c650c0120746f6b656e5f6964280128543a3a546f6b656e49640001246d656d6265725f696428012c543a3a4d656d6265724964000118616d6f756e74180144546f6b656e42616c616e63654f663c543e0004ec94507572636861736520746f6b656e73206f6e2061637469766520746f6b656e2073616c652e0038507265636f6e646974696f6e733a802d20746f6b656e2062792060746f6b656e5f696460206d757374206578697374d02d20746f6b656e2062792060746f6b656e5f696460206d75737420626520696e204f66666572696e6753746174653a3a53616c65ec2d2060616d6f756e74602063616e6e6f7420657863656564206e756d626572206f6620746f6b656e732072656d61696e696e67206f6e2073616c6509012d20606f726967696e60207369676e6572206d75737420626520636f6e74726f6c6c6572206163636f756e74206f6620606d656d6265725f696460206d656d626572a42d2073656e646572277320617661696c61626c65204a4f592062616c616e6365206d7573742062653aec20202d203e3d20606a6f795f6578697374656e7469616c5f6465706f736974202b20616d6f756e74202a2073616c652e756e69745f70726963656080202020206966204163636f756e744461746120616c7265616479206578697374210120202d203e3d20606a6f795f6578697374656e7469616c5f6465706f736974202b20616d6f756e74202a2073616c652e756e69745f7072696365202b20626c6f61745f626f6e646084202020206966204163636f756e744461746120646f6573206e6f7420657869737435012d206c657420606665655f616d6f756e7460206265206073616c655f706c6174666f726d5f6665652e6d756c5f666c6f6f7228616d6f756e74202a2073616c652e756e69745f7072696365296059012d206966206073616c652e6561726e696e67735f64657374696e6174696f6e2e69735f736f6d6528296020616e64206073616c652e6561726e696e67735f64657374696e6174696f6e60206163636f756e74206861733c20207a65726f2062616c616e63653a390120202d2074686520616d6f756e7420746f206265207472616e736665727265642066726f6d206073656e6465726020746f206073616c652e6561726e696e67735f64657374696e6174696f6e602c4d0120202020776869636820697320657175616c20746f2060616d6f756e74202a2073616c652e756e69745f7072696365202d206665655f616d6f756e74602c206d7573742062652067726561746572207468616e7420202020606a6f795f6578697374656e7469616c5f6465706f7369746031012d20746f74616c206e756d626572206f6620746f6b656e7320616c72656164792070757263686173656420627920746865206d656d626572206f6e207468652063757272656e742073616c65f82020504c55532060616d6f756e7460206d757374206e6f74206578636565642073616c6527732070757263686173652063617020706572206d656d626572602d206966205065726d697373696f6e656420746f6b656e3a010120202d204163636f756e74496e666f4279546f6b656e416e644d656d62657228746f6b656e5f69642c20266d656d6265725f696429206d7573742065786973749c2d206966206073616c652e76657374696e675f7363686564756c652e69735f736f6d652829603ae020202d206e756d626572206f662073656e646572206163636f756e742773206f6e676f696e672076657374696e67207363686564756c6573cc202020206d757374206265203c204d617856657374696e675363686564756c65735065724163636f756e74506572546f6b656e003c506f7374636f6e646974696f6e733aac2d206966206073616c652e6561726e696e67735f64657374696e6174696f6e2e69735f736f6d652829603a4d0120202d2060616d6f756e74202a2073616c652e756e69745f7072696365202d206665655f616d6f756e7460204a4f5920746f6b656e7320617265207472616e7366657265642066726f6d206073656e646572608820202020746f206073616c652e6561726e696e67735f64657374696e6174696f6e60d420202d20606665655f616d6f756e7460204a4f5920697320736c61736865642066726f6d206073656e646572602062616c616e6365ac2d206966206073616c652e6561726e696e67735f64657374696e6174696f6e2e69735f6e6f6e652829603a0d0120202d2060616d6f756e74202a2073616c652e756e69745f707269636560204a4f5920697320736c61736865642066726f6d206073656e646572602062616c616e636549012d206966206e657720746f6b656e206163636f756e7420637265617465643a2060626c6f61745f626f6e6460207472616e736665727265642066726f6d206073656e6465726020746f2074726561737572799c2d206966206073616c652e76657374696e675f7363686564756c652e69735f736f6d652829603a0d0120202d20696620627579657220686173206e6f206076657374696e675f7363686564756c65602072656c6174656420746f207468652063757272656e742073616c653a5d01202020202d2061206e65772076657374696e67207363686564756c6520286073616c652e6765745f76657374696e675f7363686564756c652870757263686173655f616d6f756e7429602920697320616464656420746f80202020202020627579657227732060766573696e675f7363686564756c6573605501202020202d20736f6d652066696e69736865642076657374696e67207363686564756c652069732072656d6f7665642066726f6d2062757965722773206163636f756e745f6461746120696e20636173652074686559012020202020206e756d626572206f6620627579657227732076657374696e675f7363686564756c657320776173203d3d204d617856657374696e675363686564756c65735065724163636f756e74506572546f6b656e290120202d20696620627579657220616c7265616479206861732061206076657374696e675f7363686564756c65602072656c6174656420746f207468652063757272656e742073616c653afc202020202d2063757272656e742076657374696e67207363686564756c6527732060636c6966665f616d6f756e746020697320696e63726561736564206279fc2020202020206073616c652e6765745f76657374696e675f7363686564756c652870757263686173655f616d6f756e74292e636c6966665f616d6f756e74602901202020202d2063757272656e742076657374696e67207363686564756c6527732060706f73745f636c6966665f746f74616c5f616d6f756e746020697320696e6372656173656420627929012020202020206073616c652e6765745f76657374696e675f7363686564756c652870757263686173655f616d6f756e74292e706f73745f636c6966665f746f74616c5f616d6f756e74609c2d206966206073616c652e76657374696e675f7363686564756c652e69735f6e6f6e652829603ad820202d2062757965722773206163636f756e7420746f6b656e20616d6f756e7420696e637265617365642062792060616d6f756e746055012d2069662060746f6b656e5f646174612e73616c652e7175616e746974795f6c656674202d20616d6f756e74203d3d20306020616e64206073616c652e6175746f5f66696e616c697a6560206973206074727565604101202060746f6b656e5f646174612e73616c65602069732073657420746f204e6f6e652c206f74686572776973652060746f6b656e5f646174612e73616c652e7175616e746974795f6c65667460206973350120206465637265617365642062792060616d6f756e746020616e642060746f6b656e5f646174612e73616c652e66756e64735f636f6c6c65637465646020696e20696e6372656173656420627970202060616d6f756e74202a2073616c652e756e69745f70726963656000203c7765696768743e00242323205765696768741c604f2028312960142d2044423ad820202d20604f28312960202d20646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5070617274696369706174655f696e5f73706c69740c0120746f6b656e5f6964280128543a3a546f6b656e49640001246d656d6265725f696428012c543a3a4d656d6265724964000118616d6f756e74180144546f6b656e42616c616e63654f663c543e000568f0506172746963697061746520696e20746865202a6c61746573742a20746f6b656e20726576656e75652073706c697420286966206f6e676f696e672938507265636f6e646974696f6e733a8c2d2060746f6b656e60206d75737420657869737420666f722060746f6b656e5f696460fc2d20606f726967696e60207369676e6572206d75737420626520606d656d6265725f696460206d656d62657220636f6e74726f6c6c6572206163636f756e74582d2060616d6f756e7460206d757374206265203e2030cc2d20606163636f756e7460206d7573742065786973742020666f72206028746f6b656e5f69642c206d656d6265725f69642960fc2d2060746f6b656e2e73706c69745f73746174757360206d7573742062652061637469766520414e44205448454e2063757272656e745f626c6f636b20696eb82020205b73706c69742e73746172742c2073706c69742e7374617274202b2073706c69745f6475726174696f6e2981012d20606163636f756e742e7374616b696e675f7374617475732e69735f6e6f6e65282960204f5220606163636f756e742e7374616b696e675f7374617475732e73706c69745f6964602072656665727320746f206120706173742073706c6974782d20606163636f756e742e616d6f756e7460203e3d2060616d6f756e74602d012d206c657420606469766964656e64203d2073706c69745f616c6c6f636174696f6e202a206163636f756e742e7374616b65645f616d6f756e74202f20746f6b656e2e737570706c79606015012020207468656e2060747265617375727960206d7573742062652061626c6520746f207472616e7366657220606469766964656e646020616d6f756e74206f66204a4f592eec202020285468697320636f6e646974696f6e20746563686e6963616c6c792c2073686f756c6420616c7761797320626520736174697366696564290038506f7374636f6e646974696f6e732d012d20606469766964656e646020616d6f756e74206f66204a4f5973207472616e736665727265642066726f6d206074726561737572795f6163636f756e746020746f206073656e6465726045012d2060746f6b656e6020726576656e75652073706c6974206469766964656e647320706179656420747261636b696e67207661726961626c6520696e6372656173656420627920606469766964656e646045012d20606163636f756e742e7374616b696e675f737461747573602073657420746f20536f6d65282e2e2920776974682060616d6f756e746020616e642060746f6b656e2e6c61746573745f73706c69746000203c7765696768743e00242323205765696768741c604f2028312960142d2044423ad820202d20604f28312960202d20646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e48657869745f726576656e75655f73706c6974080120746f6b656e5f6964280128543a3a546f6b656e49640001246d656d6265725f696428012c543a3a4d656d626572496400064cb453706c69742d70617274696369706174696e672075736572206c656176657320726576656e75652073706c697434507265636f6e646974696f6e738c2d2060746f6b656e60206d75737420657869737420666f722060746f6b656e5f696460fc2d20606f726967696e60207369676e6572206d75737420626520606d656d6265725f696460206d656d62657220636f6e74726f6c6c6572206163636f756e74c82d20606163636f756e7460206d75737420657869737420666f72206028746f6b656e5f69642c206d656d6265725f69642960902d20606163636f756e742e7374616b696e67207374617475732e69735f736f6d6528292729012d2069662060286163636f756e742e7374616b696e675f7374617475732e73706c69745f6964203d3d20746f6b656e2e6e6578745f726576656e75655f73706c69745f6964202d2031604101202020414e442060746f6b656e2e726576656e75655f73706c6974602069732061637469766529205448454e2073706c6974207374616b696e6720706572696f6420206d75737420626520656e6465640038506f7374636f6e646974696f6e73982d20606163636f756e742e7374616b696e675f737461747573602073657420746f204e6f6e6500203c7765696768743e00242323205765696768741c604f2028312960142d2044423ad820202d20604f28312960202d20646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e3d060c5070616c6c65745f70726f6a6563745f746f6b656e147479706573245472616e736665727308204d656d626572496401281c5061796d656e740141060004004506016c42547265654d61703c4d656d62657249642c205061796d656e743e000041060c5070616c6c65745f70726f6a6563745f746f6b656e1474797065731c5061796d656e74041c42616c616e6365011800040118616d6f756e7418011c42616c616e636500004506042042547265654d617008044b01280456014106000400490600000049060000024d06004d06000004082841060051060c5070616c6c65745f70726f6a6563745f746f6b656e1474797065732c4d65726b6c6550726f6f660418486173686572014904000400550601845665633c284861736865723a3a4f75747075742c204d65726b6c6553696465293e000055060000025906005906000004082c5d06005d060c5070616c6c65745f70726f6a6563745f746f6b656e147479706573284d65726b6c6553696465000108145269676874000000104c656674000100006106085c70616c6c65745f70726f706f73616c735f656e67696e651043616c6c04045400011010766f7465100120766f7465725f696428012c4d656d62657249643c543e00012c70726f706f73616c5f6964100134543a3a50726f706f73616c4964000110766f74653d030120566f74654b696e64000124726174696f6e616c6530011c5665633c75383e000028d4566f74652065787472696e7369632e20436f6e646974696f6e733a20206f726967696e206d75737420616c6c6f7720766f7465732e00203c7765696768743e002423232057656967687438604f20285229602077686572653ab42d20605260206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f722070617261656d746572732c23203c2f7765696768743e3c63616e63656c5f70726f706f73616c08012c70726f706f7365725f696428012c4d656d62657249643c543e00012c70726f706f73616c5f6964100134543a3a50726f706f73616c4964000128ac43616e63656c20612070726f706f73616c20627920697473206f726967696e616c2070726f706f7365722e00203c7765696768743e002423232057656967687438604f20284c29602077686572653ac02d20604c602069732074686520746f74616c206e756d626572206f66206c6f636b7320696e206042616c616e63657360142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e347665746f5f70726f706f73616c04012c70726f706f73616c5f6964100134543a3a50726f706f73616c4964000224785665746f20612070726f706f73616c2e204d75737420626520726f6f742e00203c7765696768743e0024232320576569676874c4604f202831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3c70726f706f7365725f72656d61726b0c012c70726f706f73616c5f6964100134543a3a50726f706f73616c496400012c70726f706f7365725f696428012c4d656d62657249643c543e00010c6d736730011c5665633c75383e0003243c50726f706f7365722052656d61726b00203c7765696768743e0024232320576569676874c4604f202831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e6506086c70616c6c65745f70726f706f73616c735f64697363757373696f6e1043616c6c040454000110206164645f706f7374100138706f73745f617574686f725f696428012c4d656d62657249643c543e0001247468726561645f696428012c543a3a54687265616449640001107465787430011c5665633c75383e0001206564697461626c65980110626f6f6c0000289441646473206120706f7374207769746820617574686f72206f726967696e20636865636b2e00203c7765696768743e002423232057656967687438604f20284c29602077686572653aa02d20604c60206973207468652073697a65206f662060746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c64656c6574655f706f737410012864656c657465725f696428012c4d656d62657249643c543e00011c706f73745f6964280124543a3a506f737449640001247468726561645f696428012c543a3a546872656164496400011068696465980110626f6f6c000128510152656d6f766520706f73742066726f6d2073746f726167652c207769746820746865206c61737420706172616d6574657220696e6469636174696e67207768657468657220746f20616c736f206869646520697428696e207468652055492e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c7570646174655f706f73740c01247468726561645f696428012c543a3a546872656164496400011c706f73745f6964280124543a3a506f737449640001107465787430011c5665633c75383e0002282d0155706461746573206120706f7374207769746820617574686f72206f726967696e20636865636b2e2055706461746520617474656d707473206e756d626572206973206c696d697465642e00203c7765696768743e002423232057656967687438604f20284c29602077686572653aa02d20604c60206973207468652073697a65206f662060746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e486368616e67655f7468726561645f6d6f64650c01246d656d6265725f696428012c4d656d62657249643c543e0001247468726561645f696428012c543a3a54687265616449640001106d6f6465450301d85468726561644d6f64653c42547265655365743c3c54206173204d656d6265727368697054797065733e3a3a4d656d62657249643e3e0003287c4368616e67657320746872656164207065726d697373696f6e206d6f64652e00203c7765696768743e0024232320576569676874dc604f2028572960206966205468726561644d6f646520697320636c6f7365206f72204f283129206f74686572776973652077686572653ad02d2060576020697320746865206e756d626572206f662077686974656c6973746564206d656d6265727320696e20606d6f646560142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e6906085870616c6c65745f70726f706f73616c735f636f6465781043616c6c0404540001043c6372656174655f70726f706f73616c08016c67656e6572616c5f70726f706f73616c5f706172616d65746572734d03017047656e6572616c50726f706f73616c506172616d65746572733c543e00014070726f706f73616c5f64657461696c735103015050726f706f73616c44657461696c734f663c543e000034450143726561746520612070726f706f73616c2c207468652074797065206f662070726f706f73616c20646570656e6473206f6e20746865206070726f706f73616c5f64657461696c73602076617269616e7400203c7765696768743e002423232057656967687458604f202854202b2044202b204929602077686572653a902d2060546020697320746865207469746c652073697a6520696e206b696c6f6279746573a82d2060446020697320746865206465736372697074696f6e2073697a6520696e206b696c6f6279746573e02d20604960206973207468652073697a65206f6620616e7920706172616d6574657220696e206070726f706f73616c5f64657461696c736084202028696e206b696c6f62797465732069662069742773206d6574616461746129142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e6d06085070616c6c65745f776f726b696e675f67726f75701043616c6c08045400044900014c2c6164645f6f70656e696e6710012c6465736372697074696f6e30011c5665633c75383e0001306f70656e696e675f747970657d03012c4f70656e696e67547970650001307374616b655f706f6c696379610301a45374616b65506f6c6963793c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e3e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e00002cc44164642061206a6f62206f70656e696e6720666f72206120726567756c617220776f726b65722f6c65616420726f6c652e490152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20616464206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e002423232057656967687438604f20284429602077686572653abc2d20604460206973207468652073697a65206f6620606465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e406170706c795f6f6e5f6f70656e696e67040104708103016c4170706c794f6e4f70656e696e67506172616d65746572733c543e000128684170706c79206f6e206120776f726b6572206f70656e696e672e002823203c7765696768743e002423232057656967687438604f20284429602077686572653ac42d20604460206973207468652073697a65206f662060702e6465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3066696c6c5f6f70656e696e670801286f70656e696e675f69642801244f70656e696e6749640001687375636365737366756c5f6170706c69636174696f6e5f6964736901015c42547265655365743c4170706c69636174696f6e49643e000228ac46696c6c206f70656e696e6720666f722074686520726567756c61722f6c65616420706f736974696f6e2e4d0152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2066696c6c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e2823203c7765696768743e002423232057656967687438604f20284129602077686572653acc2d2060416020697320746865206c656e677468206f6620607375636365737366756c5f6170706c69636174696f6e5f69647360142d2044423a242020202d204f2841292c23203c2f7765696768743e4c7570646174655f726f6c655f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e00014c6e65775f726f6c655f6163636f756e745f6964000130543a3a4163636f756e744964000324150155706461746520746865206173736f63696174656420726f6c65206163636f756e74206f66207468652061637469766520726567756c617220776f726b65722f6c6561642e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e286c656176655f726f6c65080124776f726b65725f696428012c576f726b657249643c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000424904c656176652074686520726f6c65206279207468652061637469766520776f726b65722e2823203c7765696768743e002423232057656967687438604f20285229602077686572653ab42d20605260206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e387465726d696e6174655f726f6c650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c7479450101504f7074696f6e3c42616c616e63654f663c543e3e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000528a05465726d696e617465207468652061637469766520776f726b657220627920746865206c6561642e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f207465726d696e61746520746865206c656164657220726f6c65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ad82d20605060206973207468652073697a65206070656e616c74792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c736c6173685f7374616b650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c747918013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e00062c7d01536c61736865732074686520726567756c617220776f726b6572207374616b652c2064656d616e64732061206c6561646572206f726967696e2e204e6f206c696d6974732c206e6f20616374696f6e73206f6e207a65726f207374616b652e3d01496620736c617368696e672062616c616e63652067726561746572207468616e20746865206578697374696e67207374616b65202d207374616b6520697320736c617368656420746f207a65726f2e19015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20736c61736820746865206c6561646572207374616b65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ae82d20605060206973207468652073697a65206f66206070656e616c6974792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3864656372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e00073021014465637265617365732074686520726567756c617220776f726b65722f6c656164207374616b6520616e642072657475726e73207468652072656d61696e64657220746f207468653901776f726b6572207374616b696e675f6163636f756e745f69642e2043616e2062652064656372656173656420746f207a65726f2c206e6f20616374696f6e73206f6e207a65726f207374616b652e944163636570747320746865207374616b6520616d6f756e7420746f2064656372656173652e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20646563726561736520746865206c6561646572207374616b65292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e38696e6372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e0008280501496e637265617365732074686520726567756c617220776f726b65722f6c656164207374616b652c2064656d616e6473206120776f726b6572206f726967696e2e6d014c6f636b7320746f6b656e732066726f6d2074686520776f726b6572207374616b696e675f6163636f756e745f696420657175616c20746f206e6577207374616b652e204e6f206c696d697473206f6e20746865207374616b652e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5077697468647261775f6170706c69636174696f6e0401386170706c69636174696f6e5f69642801344170706c69636174696f6e4964000924010157697468647261772074686520776f726b6572206170706c69636174696f6e2e2043616e20626520646f6e652062792074686520776f726b6572206f6e6c792e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3863616e63656c5f6f70656e696e670401286f70656e696e675f69642801244f70656e696e674964000a28dc43616e63656c20616e206f70656e696e6720666f722074686520726567756c617220776f726b65722f6c65616420706f736974696f6e2e550152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2063616e63656c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e287365745f6275646765740401286e65775f62756467657418013042616c616e63654f663c543e000b28a0536574732061206e65772062756467657420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e547570646174655f7265776172645f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e0001546e65775f7265776172645f6163636f756e745f6964000130543a3a4163636f756e744964000c2469015570646174652074686520726577617264206163636f756e74206173736f6369617465642077697468206120736574207265776172642072656c6174696f6e7368697020666f72207468652061637469766520776f726b65722e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e507570646174655f7265776172645f616d6f756e74080124776f726b65725f696428012c576f726b657249643c543e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e000d28c855706461746520746865207265776172642070657220626c6f636b20666f72207468652061637469766520776f726b65722e310152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20757064617465206c656164657227732072657761726420616d6f756e74292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3c7365745f7374617475735f7465787404012c7374617475735f746578743101013c4f7074696f6e3c5665633c75383e3e000e30b4536574732061206e657720737461747573207465787420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e002423232057656967687438604f20285329602077686572653a4d012d20605360206973207468652073697a65206f662074686520636f6e74656e7473206f6620607374617475735f746578746020696e206b696c6f6279746573207768656e206974206973206e6f74206e6f6e6500142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e447370656e645f66726f6d5f6275646765740c01286163636f756e745f6964000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000f28a85472616e73666572732073706563696669656420616d6f756e7420746f20616e79206163636f756e742e5c5265717569726573206c6561646572206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6466756e645f776f726b696e675f67726f75705f6275646765740c01246d656d6265725f696428012c4d656d62657249643c543e000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c6530011c5665633c75383e0010209846756e6420776f726b696e672067726f7570206275646765742062792061206d656d6265722e203c7765696768743e0024232320576569676874c4604f202831296020446f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c6c6561645f72656d61726b04010c6d736730011c5665633c75383e0011284c4c6561642072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e34776f726b65725f72656d61726b080124776f726b65725f696428012c576f726b657249643c543e00010c6d736730011c5665633c75383e00122854576f726b65722072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e7106085070616c6c65745f776f726b696e675f67726f75701043616c6c08045400044900014c2c6164645f6f70656e696e6710012c6465736372697074696f6e30011c5665633c75383e0001306f70656e696e675f747970657d03012c4f70656e696e67547970650001307374616b655f706f6c696379610301a45374616b65506f6c6963793c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e3e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e00002cc44164642061206a6f62206f70656e696e6720666f72206120726567756c617220776f726b65722f6c65616420726f6c652e490152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20616464206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e002423232057656967687438604f20284429602077686572653abc2d20604460206973207468652073697a65206f6620606465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e406170706c795f6f6e5f6f70656e696e67040104708103016c4170706c794f6e4f70656e696e67506172616d65746572733c543e000128684170706c79206f6e206120776f726b6572206f70656e696e672e002823203c7765696768743e002423232057656967687438604f20284429602077686572653ac42d20604460206973207468652073697a65206f662060702e6465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3066696c6c5f6f70656e696e670801286f70656e696e675f69642801244f70656e696e6749640001687375636365737366756c5f6170706c69636174696f6e5f6964736901015c42547265655365743c4170706c69636174696f6e49643e000228ac46696c6c206f70656e696e6720666f722074686520726567756c61722f6c65616420706f736974696f6e2e4d0152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2066696c6c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e2823203c7765696768743e002423232057656967687438604f20284129602077686572653acc2d2060416020697320746865206c656e677468206f6620607375636365737366756c5f6170706c69636174696f6e5f69647360142d2044423a242020202d204f2841292c23203c2f7765696768743e4c7570646174655f726f6c655f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e00014c6e65775f726f6c655f6163636f756e745f6964000130543a3a4163636f756e744964000324150155706461746520746865206173736f63696174656420726f6c65206163636f756e74206f66207468652061637469766520726567756c617220776f726b65722f6c6561642e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e286c656176655f726f6c65080124776f726b65725f696428012c576f726b657249643c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000424904c656176652074686520726f6c65206279207468652061637469766520776f726b65722e2823203c7765696768743e002423232057656967687438604f20285229602077686572653ab42d20605260206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e387465726d696e6174655f726f6c650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c7479450101504f7074696f6e3c42616c616e63654f663c543e3e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000528a05465726d696e617465207468652061637469766520776f726b657220627920746865206c6561642e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f207465726d696e61746520746865206c656164657220726f6c65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ad82d20605060206973207468652073697a65206070656e616c74792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c736c6173685f7374616b650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c747918013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e00062c7d01536c61736865732074686520726567756c617220776f726b6572207374616b652c2064656d616e64732061206c6561646572206f726967696e2e204e6f206c696d6974732c206e6f20616374696f6e73206f6e207a65726f207374616b652e3d01496620736c617368696e672062616c616e63652067726561746572207468616e20746865206578697374696e67207374616b65202d207374616b6520697320736c617368656420746f207a65726f2e19015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20736c61736820746865206c6561646572207374616b65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ae82d20605060206973207468652073697a65206f66206070656e616c6974792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3864656372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e00073021014465637265617365732074686520726567756c617220776f726b65722f6c656164207374616b6520616e642072657475726e73207468652072656d61696e64657220746f207468653901776f726b6572207374616b696e675f6163636f756e745f69642e2043616e2062652064656372656173656420746f207a65726f2c206e6f20616374696f6e73206f6e207a65726f207374616b652e944163636570747320746865207374616b6520616d6f756e7420746f2064656372656173652e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20646563726561736520746865206c6561646572207374616b65292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e38696e6372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e0008280501496e637265617365732074686520726567756c617220776f726b65722f6c656164207374616b652c2064656d616e6473206120776f726b6572206f726967696e2e6d014c6f636b7320746f6b656e732066726f6d2074686520776f726b6572207374616b696e675f6163636f756e745f696420657175616c20746f206e6577207374616b652e204e6f206c696d697473206f6e20746865207374616b652e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5077697468647261775f6170706c69636174696f6e0401386170706c69636174696f6e5f69642801344170706c69636174696f6e4964000924010157697468647261772074686520776f726b6572206170706c69636174696f6e2e2043616e20626520646f6e652062792074686520776f726b6572206f6e6c792e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3863616e63656c5f6f70656e696e670401286f70656e696e675f69642801244f70656e696e674964000a28dc43616e63656c20616e206f70656e696e6720666f722074686520726567756c617220776f726b65722f6c65616420706f736974696f6e2e550152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2063616e63656c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e287365745f6275646765740401286e65775f62756467657418013042616c616e63654f663c543e000b28a0536574732061206e65772062756467657420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e547570646174655f7265776172645f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e0001546e65775f7265776172645f6163636f756e745f6964000130543a3a4163636f756e744964000c2469015570646174652074686520726577617264206163636f756e74206173736f6369617465642077697468206120736574207265776172642072656c6174696f6e7368697020666f72207468652061637469766520776f726b65722e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e507570646174655f7265776172645f616d6f756e74080124776f726b65725f696428012c576f726b657249643c543e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e000d28c855706461746520746865207265776172642070657220626c6f636b20666f72207468652061637469766520776f726b65722e310152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20757064617465206c656164657227732072657761726420616d6f756e74292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3c7365745f7374617475735f7465787404012c7374617475735f746578743101013c4f7074696f6e3c5665633c75383e3e000e30b4536574732061206e657720737461747573207465787420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e002423232057656967687438604f20285329602077686572653a4d012d20605360206973207468652073697a65206f662074686520636f6e74656e7473206f6620607374617475735f746578746020696e206b696c6f6279746573207768656e206974206973206e6f74206e6f6e6500142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e447370656e645f66726f6d5f6275646765740c01286163636f756e745f6964000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000f28a85472616e73666572732073706563696669656420616d6f756e7420746f20616e79206163636f756e742e5c5265717569726573206c6561646572206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6466756e645f776f726b696e675f67726f75705f6275646765740c01246d656d6265725f696428012c4d656d62657249643c543e000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c6530011c5665633c75383e0010209846756e6420776f726b696e672067726f7570206275646765742062792061206d656d6265722e203c7765696768743e0024232320576569676874c4604f202831296020446f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c6c6561645f72656d61726b04010c6d736730011c5665633c75383e0011284c4c6561642072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e34776f726b65725f72656d61726b080124776f726b65725f696428012c576f726b657249643c543e00010c6d736730011c5665633c75383e00122854576f726b65722072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e7506085070616c6c65745f776f726b696e675f67726f75701043616c6c08045400044900014c2c6164645f6f70656e696e6710012c6465736372697074696f6e30011c5665633c75383e0001306f70656e696e675f747970657d03012c4f70656e696e67547970650001307374616b655f706f6c696379610301a45374616b65506f6c6963793c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e3e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e00002cc44164642061206a6f62206f70656e696e6720666f72206120726567756c617220776f726b65722f6c65616420726f6c652e490152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20616464206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e002423232057656967687438604f20284429602077686572653abc2d20604460206973207468652073697a65206f6620606465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e406170706c795f6f6e5f6f70656e696e67040104708103016c4170706c794f6e4f70656e696e67506172616d65746572733c543e000128684170706c79206f6e206120776f726b6572206f70656e696e672e002823203c7765696768743e002423232057656967687438604f20284429602077686572653ac42d20604460206973207468652073697a65206f662060702e6465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3066696c6c5f6f70656e696e670801286f70656e696e675f69642801244f70656e696e6749640001687375636365737366756c5f6170706c69636174696f6e5f6964736901015c42547265655365743c4170706c69636174696f6e49643e000228ac46696c6c206f70656e696e6720666f722074686520726567756c61722f6c65616420706f736974696f6e2e4d0152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2066696c6c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e2823203c7765696768743e002423232057656967687438604f20284129602077686572653acc2d2060416020697320746865206c656e677468206f6620607375636365737366756c5f6170706c69636174696f6e5f69647360142d2044423a242020202d204f2841292c23203c2f7765696768743e4c7570646174655f726f6c655f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e00014c6e65775f726f6c655f6163636f756e745f6964000130543a3a4163636f756e744964000324150155706461746520746865206173736f63696174656420726f6c65206163636f756e74206f66207468652061637469766520726567756c617220776f726b65722f6c6561642e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e286c656176655f726f6c65080124776f726b65725f696428012c576f726b657249643c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000424904c656176652074686520726f6c65206279207468652061637469766520776f726b65722e2823203c7765696768743e002423232057656967687438604f20285229602077686572653ab42d20605260206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e387465726d696e6174655f726f6c650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c7479450101504f7074696f6e3c42616c616e63654f663c543e3e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000528a05465726d696e617465207468652061637469766520776f726b657220627920746865206c6561642e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f207465726d696e61746520746865206c656164657220726f6c65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ad82d20605060206973207468652073697a65206070656e616c74792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c736c6173685f7374616b650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c747918013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e00062c7d01536c61736865732074686520726567756c617220776f726b6572207374616b652c2064656d616e64732061206c6561646572206f726967696e2e204e6f206c696d6974732c206e6f20616374696f6e73206f6e207a65726f207374616b652e3d01496620736c617368696e672062616c616e63652067726561746572207468616e20746865206578697374696e67207374616b65202d207374616b6520697320736c617368656420746f207a65726f2e19015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20736c61736820746865206c6561646572207374616b65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ae82d20605060206973207468652073697a65206f66206070656e616c6974792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3864656372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e00073021014465637265617365732074686520726567756c617220776f726b65722f6c656164207374616b6520616e642072657475726e73207468652072656d61696e64657220746f207468653901776f726b6572207374616b696e675f6163636f756e745f69642e2043616e2062652064656372656173656420746f207a65726f2c206e6f20616374696f6e73206f6e207a65726f207374616b652e944163636570747320746865207374616b6520616d6f756e7420746f2064656372656173652e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20646563726561736520746865206c6561646572207374616b65292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e38696e6372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e0008280501496e637265617365732074686520726567756c617220776f726b65722f6c656164207374616b652c2064656d616e6473206120776f726b6572206f726967696e2e6d014c6f636b7320746f6b656e732066726f6d2074686520776f726b6572207374616b696e675f6163636f756e745f696420657175616c20746f206e6577207374616b652e204e6f206c696d697473206f6e20746865207374616b652e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5077697468647261775f6170706c69636174696f6e0401386170706c69636174696f6e5f69642801344170706c69636174696f6e4964000924010157697468647261772074686520776f726b6572206170706c69636174696f6e2e2043616e20626520646f6e652062792074686520776f726b6572206f6e6c792e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3863616e63656c5f6f70656e696e670401286f70656e696e675f69642801244f70656e696e674964000a28dc43616e63656c20616e206f70656e696e6720666f722074686520726567756c617220776f726b65722f6c65616420706f736974696f6e2e550152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2063616e63656c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e287365745f6275646765740401286e65775f62756467657418013042616c616e63654f663c543e000b28a0536574732061206e65772062756467657420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e547570646174655f7265776172645f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e0001546e65775f7265776172645f6163636f756e745f6964000130543a3a4163636f756e744964000c2469015570646174652074686520726577617264206163636f756e74206173736f6369617465642077697468206120736574207265776172642072656c6174696f6e7368697020666f72207468652061637469766520776f726b65722e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e507570646174655f7265776172645f616d6f756e74080124776f726b65725f696428012c576f726b657249643c543e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e000d28c855706461746520746865207265776172642070657220626c6f636b20666f72207468652061637469766520776f726b65722e310152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20757064617465206c656164657227732072657761726420616d6f756e74292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3c7365745f7374617475735f7465787404012c7374617475735f746578743101013c4f7074696f6e3c5665633c75383e3e000e30b4536574732061206e657720737461747573207465787420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e002423232057656967687438604f20285329602077686572653a4d012d20605360206973207468652073697a65206f662074686520636f6e74656e7473206f6620607374617475735f746578746020696e206b696c6f6279746573207768656e206974206973206e6f74206e6f6e6500142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e447370656e645f66726f6d5f6275646765740c01286163636f756e745f6964000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000f28a85472616e73666572732073706563696669656420616d6f756e7420746f20616e79206163636f756e742e5c5265717569726573206c6561646572206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6466756e645f776f726b696e675f67726f75705f6275646765740c01246d656d6265725f696428012c4d656d62657249643c543e000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c6530011c5665633c75383e0010209846756e6420776f726b696e672067726f7570206275646765742062792061206d656d6265722e203c7765696768743e0024232320576569676874c4604f202831296020446f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c6c6561645f72656d61726b04010c6d736730011c5665633c75383e0011284c4c6561642072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e34776f726b65725f72656d61726b080124776f726b65725f696428012c576f726b657249643c543e00010c6d736730011c5665633c75383e00122854576f726b65722072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e7906085070616c6c65745f776f726b696e675f67726f75701043616c6c08045400044900014c2c6164645f6f70656e696e6710012c6465736372697074696f6e30011c5665633c75383e0001306f70656e696e675f747970657d03012c4f70656e696e67547970650001307374616b655f706f6c696379610301a45374616b65506f6c6963793c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e3e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e00002cc44164642061206a6f62206f70656e696e6720666f72206120726567756c617220776f726b65722f6c65616420726f6c652e490152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20616464206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e002423232057656967687438604f20284429602077686572653abc2d20604460206973207468652073697a65206f6620606465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e406170706c795f6f6e5f6f70656e696e67040104708103016c4170706c794f6e4f70656e696e67506172616d65746572733c543e000128684170706c79206f6e206120776f726b6572206f70656e696e672e002823203c7765696768743e002423232057656967687438604f20284429602077686572653ac42d20604460206973207468652073697a65206f662060702e6465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3066696c6c5f6f70656e696e670801286f70656e696e675f69642801244f70656e696e6749640001687375636365737366756c5f6170706c69636174696f6e5f6964736901015c42547265655365743c4170706c69636174696f6e49643e000228ac46696c6c206f70656e696e6720666f722074686520726567756c61722f6c65616420706f736974696f6e2e4d0152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2066696c6c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e2823203c7765696768743e002423232057656967687438604f20284129602077686572653acc2d2060416020697320746865206c656e677468206f6620607375636365737366756c5f6170706c69636174696f6e5f69647360142d2044423a242020202d204f2841292c23203c2f7765696768743e4c7570646174655f726f6c655f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e00014c6e65775f726f6c655f6163636f756e745f6964000130543a3a4163636f756e744964000324150155706461746520746865206173736f63696174656420726f6c65206163636f756e74206f66207468652061637469766520726567756c617220776f726b65722f6c6561642e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e286c656176655f726f6c65080124776f726b65725f696428012c576f726b657249643c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000424904c656176652074686520726f6c65206279207468652061637469766520776f726b65722e2823203c7765696768743e002423232057656967687438604f20285229602077686572653ab42d20605260206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e387465726d696e6174655f726f6c650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c7479450101504f7074696f6e3c42616c616e63654f663c543e3e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000528a05465726d696e617465207468652061637469766520776f726b657220627920746865206c6561642e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f207465726d696e61746520746865206c656164657220726f6c65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ad82d20605060206973207468652073697a65206070656e616c74792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c736c6173685f7374616b650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c747918013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e00062c7d01536c61736865732074686520726567756c617220776f726b6572207374616b652c2064656d616e64732061206c6561646572206f726967696e2e204e6f206c696d6974732c206e6f20616374696f6e73206f6e207a65726f207374616b652e3d01496620736c617368696e672062616c616e63652067726561746572207468616e20746865206578697374696e67207374616b65202d207374616b6520697320736c617368656420746f207a65726f2e19015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20736c61736820746865206c6561646572207374616b65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ae82d20605060206973207468652073697a65206f66206070656e616c6974792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3864656372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e00073021014465637265617365732074686520726567756c617220776f726b65722f6c656164207374616b6520616e642072657475726e73207468652072656d61696e64657220746f207468653901776f726b6572207374616b696e675f6163636f756e745f69642e2043616e2062652064656372656173656420746f207a65726f2c206e6f20616374696f6e73206f6e207a65726f207374616b652e944163636570747320746865207374616b6520616d6f756e7420746f2064656372656173652e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20646563726561736520746865206c6561646572207374616b65292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e38696e6372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e0008280501496e637265617365732074686520726567756c617220776f726b65722f6c656164207374616b652c2064656d616e6473206120776f726b6572206f726967696e2e6d014c6f636b7320746f6b656e732066726f6d2074686520776f726b6572207374616b696e675f6163636f756e745f696420657175616c20746f206e6577207374616b652e204e6f206c696d697473206f6e20746865207374616b652e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5077697468647261775f6170706c69636174696f6e0401386170706c69636174696f6e5f69642801344170706c69636174696f6e4964000924010157697468647261772074686520776f726b6572206170706c69636174696f6e2e2043616e20626520646f6e652062792074686520776f726b6572206f6e6c792e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3863616e63656c5f6f70656e696e670401286f70656e696e675f69642801244f70656e696e674964000a28dc43616e63656c20616e206f70656e696e6720666f722074686520726567756c617220776f726b65722f6c65616420706f736974696f6e2e550152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2063616e63656c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e287365745f6275646765740401286e65775f62756467657418013042616c616e63654f663c543e000b28a0536574732061206e65772062756467657420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e547570646174655f7265776172645f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e0001546e65775f7265776172645f6163636f756e745f6964000130543a3a4163636f756e744964000c2469015570646174652074686520726577617264206163636f756e74206173736f6369617465642077697468206120736574207265776172642072656c6174696f6e7368697020666f72207468652061637469766520776f726b65722e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e507570646174655f7265776172645f616d6f756e74080124776f726b65725f696428012c576f726b657249643c543e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e000d28c855706461746520746865207265776172642070657220626c6f636b20666f72207468652061637469766520776f726b65722e310152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20757064617465206c656164657227732072657761726420616d6f756e74292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3c7365745f7374617475735f7465787404012c7374617475735f746578743101013c4f7074696f6e3c5665633c75383e3e000e30b4536574732061206e657720737461747573207465787420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e002423232057656967687438604f20285329602077686572653a4d012d20605360206973207468652073697a65206f662074686520636f6e74656e7473206f6620607374617475735f746578746020696e206b696c6f6279746573207768656e206974206973206e6f74206e6f6e6500142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e447370656e645f66726f6d5f6275646765740c01286163636f756e745f6964000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000f28a85472616e73666572732073706563696669656420616d6f756e7420746f20616e79206163636f756e742e5c5265717569726573206c6561646572206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6466756e645f776f726b696e675f67726f75705f6275646765740c01246d656d6265725f696428012c4d656d62657249643c543e000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c6530011c5665633c75383e0010209846756e6420776f726b696e672067726f7570206275646765742062792061206d656d6265722e203c7765696768743e0024232320576569676874c4604f202831296020446f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c6c6561645f72656d61726b04010c6d736730011c5665633c75383e0011284c4c6561642072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e34776f726b65725f72656d61726b080124776f726b65725f696428012c576f726b657249643c543e00010c6d736730011c5665633c75383e00122854576f726b65722072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e7d06085070616c6c65745f776f726b696e675f67726f75701043616c6c08045400044900014c2c6164645f6f70656e696e6710012c6465736372697074696f6e30011c5665633c75383e0001306f70656e696e675f747970657d03012c4f70656e696e67547970650001307374616b655f706f6c696379610301a45374616b65506f6c6963793c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e3e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e00002cc44164642061206a6f62206f70656e696e6720666f72206120726567756c617220776f726b65722f6c65616420726f6c652e490152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20616464206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e002423232057656967687438604f20284429602077686572653abc2d20604460206973207468652073697a65206f6620606465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e406170706c795f6f6e5f6f70656e696e67040104708103016c4170706c794f6e4f70656e696e67506172616d65746572733c543e000128684170706c79206f6e206120776f726b6572206f70656e696e672e002823203c7765696768743e002423232057656967687438604f20284429602077686572653ac42d20604460206973207468652073697a65206f662060702e6465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3066696c6c5f6f70656e696e670801286f70656e696e675f69642801244f70656e696e6749640001687375636365737366756c5f6170706c69636174696f6e5f6964736901015c42547265655365743c4170706c69636174696f6e49643e000228ac46696c6c206f70656e696e6720666f722074686520726567756c61722f6c65616420706f736974696f6e2e4d0152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2066696c6c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e2823203c7765696768743e002423232057656967687438604f20284129602077686572653acc2d2060416020697320746865206c656e677468206f6620607375636365737366756c5f6170706c69636174696f6e5f69647360142d2044423a242020202d204f2841292c23203c2f7765696768743e4c7570646174655f726f6c655f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e00014c6e65775f726f6c655f6163636f756e745f6964000130543a3a4163636f756e744964000324150155706461746520746865206173736f63696174656420726f6c65206163636f756e74206f66207468652061637469766520726567756c617220776f726b65722f6c6561642e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e286c656176655f726f6c65080124776f726b65725f696428012c576f726b657249643c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000424904c656176652074686520726f6c65206279207468652061637469766520776f726b65722e2823203c7765696768743e002423232057656967687438604f20285229602077686572653ab42d20605260206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e387465726d696e6174655f726f6c650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c7479450101504f7074696f6e3c42616c616e63654f663c543e3e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000528a05465726d696e617465207468652061637469766520776f726b657220627920746865206c6561642e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f207465726d696e61746520746865206c656164657220726f6c65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ad82d20605060206973207468652073697a65206070656e616c74792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c736c6173685f7374616b650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c747918013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e00062c7d01536c61736865732074686520726567756c617220776f726b6572207374616b652c2064656d616e64732061206c6561646572206f726967696e2e204e6f206c696d6974732c206e6f20616374696f6e73206f6e207a65726f207374616b652e3d01496620736c617368696e672062616c616e63652067726561746572207468616e20746865206578697374696e67207374616b65202d207374616b6520697320736c617368656420746f207a65726f2e19015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20736c61736820746865206c6561646572207374616b65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ae82d20605060206973207468652073697a65206f66206070656e616c6974792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3864656372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e00073021014465637265617365732074686520726567756c617220776f726b65722f6c656164207374616b6520616e642072657475726e73207468652072656d61696e64657220746f207468653901776f726b6572207374616b696e675f6163636f756e745f69642e2043616e2062652064656372656173656420746f207a65726f2c206e6f20616374696f6e73206f6e207a65726f207374616b652e944163636570747320746865207374616b6520616d6f756e7420746f2064656372656173652e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20646563726561736520746865206c6561646572207374616b65292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e38696e6372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e0008280501496e637265617365732074686520726567756c617220776f726b65722f6c656164207374616b652c2064656d616e6473206120776f726b6572206f726967696e2e6d014c6f636b7320746f6b656e732066726f6d2074686520776f726b6572207374616b696e675f6163636f756e745f696420657175616c20746f206e6577207374616b652e204e6f206c696d697473206f6e20746865207374616b652e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5077697468647261775f6170706c69636174696f6e0401386170706c69636174696f6e5f69642801344170706c69636174696f6e4964000924010157697468647261772074686520776f726b6572206170706c69636174696f6e2e2043616e20626520646f6e652062792074686520776f726b6572206f6e6c792e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3863616e63656c5f6f70656e696e670401286f70656e696e675f69642801244f70656e696e674964000a28dc43616e63656c20616e206f70656e696e6720666f722074686520726567756c617220776f726b65722f6c65616420706f736974696f6e2e550152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2063616e63656c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e287365745f6275646765740401286e65775f62756467657418013042616c616e63654f663c543e000b28a0536574732061206e65772062756467657420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e547570646174655f7265776172645f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e0001546e65775f7265776172645f6163636f756e745f6964000130543a3a4163636f756e744964000c2469015570646174652074686520726577617264206163636f756e74206173736f6369617465642077697468206120736574207265776172642072656c6174696f6e7368697020666f72207468652061637469766520776f726b65722e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e507570646174655f7265776172645f616d6f756e74080124776f726b65725f696428012c576f726b657249643c543e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e000d28c855706461746520746865207265776172642070657220626c6f636b20666f72207468652061637469766520776f726b65722e310152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20757064617465206c656164657227732072657761726420616d6f756e74292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3c7365745f7374617475735f7465787404012c7374617475735f746578743101013c4f7074696f6e3c5665633c75383e3e000e30b4536574732061206e657720737461747573207465787420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e002423232057656967687438604f20285329602077686572653a4d012d20605360206973207468652073697a65206f662074686520636f6e74656e7473206f6620607374617475735f746578746020696e206b696c6f6279746573207768656e206974206973206e6f74206e6f6e6500142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e447370656e645f66726f6d5f6275646765740c01286163636f756e745f6964000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000f28a85472616e73666572732073706563696669656420616d6f756e7420746f20616e79206163636f756e742e5c5265717569726573206c6561646572206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6466756e645f776f726b696e675f67726f75705f6275646765740c01246d656d6265725f696428012c4d656d62657249643c543e000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c6530011c5665633c75383e0010209846756e6420776f726b696e672067726f7570206275646765742062792061206d656d6265722e203c7765696768743e0024232320576569676874c4604f202831296020446f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c6c6561645f72656d61726b04010c6d736730011c5665633c75383e0011284c4c6561642072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e34776f726b65725f72656d61726b080124776f726b65725f696428012c576f726b657249643c543e00010c6d736730011c5665633c75383e00122854576f726b65722072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e8106085070616c6c65745f776f726b696e675f67726f75701043616c6c08045400044900014c2c6164645f6f70656e696e6710012c6465736372697074696f6e30011c5665633c75383e0001306f70656e696e675f747970657d03012c4f70656e696e67547970650001307374616b655f706f6c696379610301a45374616b65506f6c6963793c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e3e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e00002cc44164642061206a6f62206f70656e696e6720666f72206120726567756c617220776f726b65722f6c65616420726f6c652e490152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20616464206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e002423232057656967687438604f20284429602077686572653abc2d20604460206973207468652073697a65206f6620606465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e406170706c795f6f6e5f6f70656e696e67040104708103016c4170706c794f6e4f70656e696e67506172616d65746572733c543e000128684170706c79206f6e206120776f726b6572206f70656e696e672e002823203c7765696768743e002423232057656967687438604f20284429602077686572653ac42d20604460206973207468652073697a65206f662060702e6465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3066696c6c5f6f70656e696e670801286f70656e696e675f69642801244f70656e696e6749640001687375636365737366756c5f6170706c69636174696f6e5f6964736901015c42547265655365743c4170706c69636174696f6e49643e000228ac46696c6c206f70656e696e6720666f722074686520726567756c61722f6c65616420706f736974696f6e2e4d0152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2066696c6c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e2823203c7765696768743e002423232057656967687438604f20284129602077686572653acc2d2060416020697320746865206c656e677468206f6620607375636365737366756c5f6170706c69636174696f6e5f69647360142d2044423a242020202d204f2841292c23203c2f7765696768743e4c7570646174655f726f6c655f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e00014c6e65775f726f6c655f6163636f756e745f6964000130543a3a4163636f756e744964000324150155706461746520746865206173736f63696174656420726f6c65206163636f756e74206f66207468652061637469766520726567756c617220776f726b65722f6c6561642e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e286c656176655f726f6c65080124776f726b65725f696428012c576f726b657249643c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000424904c656176652074686520726f6c65206279207468652061637469766520776f726b65722e2823203c7765696768743e002423232057656967687438604f20285229602077686572653ab42d20605260206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e387465726d696e6174655f726f6c650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c7479450101504f7074696f6e3c42616c616e63654f663c543e3e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000528a05465726d696e617465207468652061637469766520776f726b657220627920746865206c6561642e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f207465726d696e61746520746865206c656164657220726f6c65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ad82d20605060206973207468652073697a65206070656e616c74792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c736c6173685f7374616b650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c747918013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e00062c7d01536c61736865732074686520726567756c617220776f726b6572207374616b652c2064656d616e64732061206c6561646572206f726967696e2e204e6f206c696d6974732c206e6f20616374696f6e73206f6e207a65726f207374616b652e3d01496620736c617368696e672062616c616e63652067726561746572207468616e20746865206578697374696e67207374616b65202d207374616b6520697320736c617368656420746f207a65726f2e19015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20736c61736820746865206c6561646572207374616b65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ae82d20605060206973207468652073697a65206f66206070656e616c6974792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3864656372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e00073021014465637265617365732074686520726567756c617220776f726b65722f6c656164207374616b6520616e642072657475726e73207468652072656d61696e64657220746f207468653901776f726b6572207374616b696e675f6163636f756e745f69642e2043616e2062652064656372656173656420746f207a65726f2c206e6f20616374696f6e73206f6e207a65726f207374616b652e944163636570747320746865207374616b6520616d6f756e7420746f2064656372656173652e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20646563726561736520746865206c6561646572207374616b65292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e38696e6372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e0008280501496e637265617365732074686520726567756c617220776f726b65722f6c656164207374616b652c2064656d616e6473206120776f726b6572206f726967696e2e6d014c6f636b7320746f6b656e732066726f6d2074686520776f726b6572207374616b696e675f6163636f756e745f696420657175616c20746f206e6577207374616b652e204e6f206c696d697473206f6e20746865207374616b652e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5077697468647261775f6170706c69636174696f6e0401386170706c69636174696f6e5f69642801344170706c69636174696f6e4964000924010157697468647261772074686520776f726b6572206170706c69636174696f6e2e2043616e20626520646f6e652062792074686520776f726b6572206f6e6c792e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3863616e63656c5f6f70656e696e670401286f70656e696e675f69642801244f70656e696e674964000a28dc43616e63656c20616e206f70656e696e6720666f722074686520726567756c617220776f726b65722f6c65616420706f736974696f6e2e550152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2063616e63656c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e287365745f6275646765740401286e65775f62756467657418013042616c616e63654f663c543e000b28a0536574732061206e65772062756467657420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e547570646174655f7265776172645f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e0001546e65775f7265776172645f6163636f756e745f6964000130543a3a4163636f756e744964000c2469015570646174652074686520726577617264206163636f756e74206173736f6369617465642077697468206120736574207265776172642072656c6174696f6e7368697020666f72207468652061637469766520776f726b65722e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e507570646174655f7265776172645f616d6f756e74080124776f726b65725f696428012c576f726b657249643c543e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e000d28c855706461746520746865207265776172642070657220626c6f636b20666f72207468652061637469766520776f726b65722e310152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20757064617465206c656164657227732072657761726420616d6f756e74292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3c7365745f7374617475735f7465787404012c7374617475735f746578743101013c4f7074696f6e3c5665633c75383e3e000e30b4536574732061206e657720737461747573207465787420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e002423232057656967687438604f20285329602077686572653a4d012d20605360206973207468652073697a65206f662074686520636f6e74656e7473206f6620607374617475735f746578746020696e206b696c6f6279746573207768656e206974206973206e6f74206e6f6e6500142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e447370656e645f66726f6d5f6275646765740c01286163636f756e745f6964000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000f28a85472616e73666572732073706563696669656420616d6f756e7420746f20616e79206163636f756e742e5c5265717569726573206c6561646572206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6466756e645f776f726b696e675f67726f75705f6275646765740c01246d656d6265725f696428012c4d656d62657249643c543e000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c6530011c5665633c75383e0010209846756e6420776f726b696e672067726f7570206275646765742062792061206d656d6265722e203c7765696768743e0024232320576569676874c4604f202831296020446f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c6c6561645f72656d61726b04010c6d736730011c5665633c75383e0011284c4c6561642072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e34776f726b65725f72656d61726b080124776f726b65725f696428012c576f726b657249643c543e00010c6d736730011c5665633c75383e00122854576f726b65722072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e8506085070616c6c65745f776f726b696e675f67726f75701043616c6c08045400044900014c2c6164645f6f70656e696e6710012c6465736372697074696f6e30011c5665633c75383e0001306f70656e696e675f747970657d03012c4f70656e696e67547970650001307374616b655f706f6c696379610301a45374616b65506f6c6963793c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e3e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e00002cc44164642061206a6f62206f70656e696e6720666f72206120726567756c617220776f726b65722f6c65616420726f6c652e490152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20616464206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e002423232057656967687438604f20284429602077686572653abc2d20604460206973207468652073697a65206f6620606465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e406170706c795f6f6e5f6f70656e696e67040104708103016c4170706c794f6e4f70656e696e67506172616d65746572733c543e000128684170706c79206f6e206120776f726b6572206f70656e696e672e002823203c7765696768743e002423232057656967687438604f20284429602077686572653ac42d20604460206973207468652073697a65206f662060702e6465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3066696c6c5f6f70656e696e670801286f70656e696e675f69642801244f70656e696e6749640001687375636365737366756c5f6170706c69636174696f6e5f6964736901015c42547265655365743c4170706c69636174696f6e49643e000228ac46696c6c206f70656e696e6720666f722074686520726567756c61722f6c65616420706f736974696f6e2e4d0152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2066696c6c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e2823203c7765696768743e002423232057656967687438604f20284129602077686572653acc2d2060416020697320746865206c656e677468206f6620607375636365737366756c5f6170706c69636174696f6e5f69647360142d2044423a242020202d204f2841292c23203c2f7765696768743e4c7570646174655f726f6c655f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e00014c6e65775f726f6c655f6163636f756e745f6964000130543a3a4163636f756e744964000324150155706461746520746865206173736f63696174656420726f6c65206163636f756e74206f66207468652061637469766520726567756c617220776f726b65722f6c6561642e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e286c656176655f726f6c65080124776f726b65725f696428012c576f726b657249643c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000424904c656176652074686520726f6c65206279207468652061637469766520776f726b65722e2823203c7765696768743e002423232057656967687438604f20285229602077686572653ab42d20605260206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e387465726d696e6174655f726f6c650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c7479450101504f7074696f6e3c42616c616e63654f663c543e3e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000528a05465726d696e617465207468652061637469766520776f726b657220627920746865206c6561642e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f207465726d696e61746520746865206c656164657220726f6c65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ad82d20605060206973207468652073697a65206070656e616c74792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c736c6173685f7374616b650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c747918013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e00062c7d01536c61736865732074686520726567756c617220776f726b6572207374616b652c2064656d616e64732061206c6561646572206f726967696e2e204e6f206c696d6974732c206e6f20616374696f6e73206f6e207a65726f207374616b652e3d01496620736c617368696e672062616c616e63652067726561746572207468616e20746865206578697374696e67207374616b65202d207374616b6520697320736c617368656420746f207a65726f2e19015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20736c61736820746865206c6561646572207374616b65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ae82d20605060206973207468652073697a65206f66206070656e616c6974792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3864656372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e00073021014465637265617365732074686520726567756c617220776f726b65722f6c656164207374616b6520616e642072657475726e73207468652072656d61696e64657220746f207468653901776f726b6572207374616b696e675f6163636f756e745f69642e2043616e2062652064656372656173656420746f207a65726f2c206e6f20616374696f6e73206f6e207a65726f207374616b652e944163636570747320746865207374616b6520616d6f756e7420746f2064656372656173652e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20646563726561736520746865206c6561646572207374616b65292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e38696e6372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e0008280501496e637265617365732074686520726567756c617220776f726b65722f6c656164207374616b652c2064656d616e6473206120776f726b6572206f726967696e2e6d014c6f636b7320746f6b656e732066726f6d2074686520776f726b6572207374616b696e675f6163636f756e745f696420657175616c20746f206e6577207374616b652e204e6f206c696d697473206f6e20746865207374616b652e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5077697468647261775f6170706c69636174696f6e0401386170706c69636174696f6e5f69642801344170706c69636174696f6e4964000924010157697468647261772074686520776f726b6572206170706c69636174696f6e2e2043616e20626520646f6e652062792074686520776f726b6572206f6e6c792e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3863616e63656c5f6f70656e696e670401286f70656e696e675f69642801244f70656e696e674964000a28dc43616e63656c20616e206f70656e696e6720666f722074686520726567756c617220776f726b65722f6c65616420706f736974696f6e2e550152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2063616e63656c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e287365745f6275646765740401286e65775f62756467657418013042616c616e63654f663c543e000b28a0536574732061206e65772062756467657420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e547570646174655f7265776172645f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e0001546e65775f7265776172645f6163636f756e745f6964000130543a3a4163636f756e744964000c2469015570646174652074686520726577617264206163636f756e74206173736f6369617465642077697468206120736574207265776172642072656c6174696f6e7368697020666f72207468652061637469766520776f726b65722e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e507570646174655f7265776172645f616d6f756e74080124776f726b65725f696428012c576f726b657249643c543e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e000d28c855706461746520746865207265776172642070657220626c6f636b20666f72207468652061637469766520776f726b65722e310152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20757064617465206c656164657227732072657761726420616d6f756e74292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3c7365745f7374617475735f7465787404012c7374617475735f746578743101013c4f7074696f6e3c5665633c75383e3e000e30b4536574732061206e657720737461747573207465787420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e002423232057656967687438604f20285329602077686572653a4d012d20605360206973207468652073697a65206f662074686520636f6e74656e7473206f6620607374617475735f746578746020696e206b696c6f6279746573207768656e206974206973206e6f74206e6f6e6500142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e447370656e645f66726f6d5f6275646765740c01286163636f756e745f6964000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000f28a85472616e73666572732073706563696669656420616d6f756e7420746f20616e79206163636f756e742e5c5265717569726573206c6561646572206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6466756e645f776f726b696e675f67726f75705f6275646765740c01246d656d6265725f696428012c4d656d62657249643c543e000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c6530011c5665633c75383e0010209846756e6420776f726b696e672067726f7570206275646765742062792061206d656d6265722e203c7765696768743e0024232320576569676874c4604f202831296020446f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c6c6561645f72656d61726b04010c6d736730011c5665633c75383e0011284c4c6561642072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e34776f726b65725f72656d61726b080124776f726b65725f696428012c576f726b657249643c543e00010c6d736730011c5665633c75383e00122854576f726b65722072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e8906085070616c6c65745f776f726b696e675f67726f75701043616c6c08045400044900014c2c6164645f6f70656e696e6710012c6465736372697074696f6e30011c5665633c75383e0001306f70656e696e675f747970657d03012c4f70656e696e67547970650001307374616b655f706f6c696379610301a45374616b65506f6c6963793c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e3e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e00002cc44164642061206a6f62206f70656e696e6720666f72206120726567756c617220776f726b65722f6c65616420726f6c652e490152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20616464206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e002423232057656967687438604f20284429602077686572653abc2d20604460206973207468652073697a65206f6620606465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e406170706c795f6f6e5f6f70656e696e67040104708103016c4170706c794f6e4f70656e696e67506172616d65746572733c543e000128684170706c79206f6e206120776f726b6572206f70656e696e672e002823203c7765696768743e002423232057656967687438604f20284429602077686572653ac42d20604460206973207468652073697a65206f662060702e6465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3066696c6c5f6f70656e696e670801286f70656e696e675f69642801244f70656e696e6749640001687375636365737366756c5f6170706c69636174696f6e5f6964736901015c42547265655365743c4170706c69636174696f6e49643e000228ac46696c6c206f70656e696e6720666f722074686520726567756c61722f6c65616420706f736974696f6e2e4d0152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2066696c6c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e2823203c7765696768743e002423232057656967687438604f20284129602077686572653acc2d2060416020697320746865206c656e677468206f6620607375636365737366756c5f6170706c69636174696f6e5f69647360142d2044423a242020202d204f2841292c23203c2f7765696768743e4c7570646174655f726f6c655f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e00014c6e65775f726f6c655f6163636f756e745f6964000130543a3a4163636f756e744964000324150155706461746520746865206173736f63696174656420726f6c65206163636f756e74206f66207468652061637469766520726567756c617220776f726b65722f6c6561642e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e286c656176655f726f6c65080124776f726b65725f696428012c576f726b657249643c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000424904c656176652074686520726f6c65206279207468652061637469766520776f726b65722e2823203c7765696768743e002423232057656967687438604f20285229602077686572653ab42d20605260206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e387465726d696e6174655f726f6c650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c7479450101504f7074696f6e3c42616c616e63654f663c543e3e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000528a05465726d696e617465207468652061637469766520776f726b657220627920746865206c6561642e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f207465726d696e61746520746865206c656164657220726f6c65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ad82d20605060206973207468652073697a65206070656e616c74792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c736c6173685f7374616b650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c747918013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e00062c7d01536c61736865732074686520726567756c617220776f726b6572207374616b652c2064656d616e64732061206c6561646572206f726967696e2e204e6f206c696d6974732c206e6f20616374696f6e73206f6e207a65726f207374616b652e3d01496620736c617368696e672062616c616e63652067726561746572207468616e20746865206578697374696e67207374616b65202d207374616b6520697320736c617368656420746f207a65726f2e19015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20736c61736820746865206c6561646572207374616b65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ae82d20605060206973207468652073697a65206f66206070656e616c6974792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3864656372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e00073021014465637265617365732074686520726567756c617220776f726b65722f6c656164207374616b6520616e642072657475726e73207468652072656d61696e64657220746f207468653901776f726b6572207374616b696e675f6163636f756e745f69642e2043616e2062652064656372656173656420746f207a65726f2c206e6f20616374696f6e73206f6e207a65726f207374616b652e944163636570747320746865207374616b6520616d6f756e7420746f2064656372656173652e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20646563726561736520746865206c6561646572207374616b65292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e38696e6372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e0008280501496e637265617365732074686520726567756c617220776f726b65722f6c656164207374616b652c2064656d616e6473206120776f726b6572206f726967696e2e6d014c6f636b7320746f6b656e732066726f6d2074686520776f726b6572207374616b696e675f6163636f756e745f696420657175616c20746f206e6577207374616b652e204e6f206c696d697473206f6e20746865207374616b652e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5077697468647261775f6170706c69636174696f6e0401386170706c69636174696f6e5f69642801344170706c69636174696f6e4964000924010157697468647261772074686520776f726b6572206170706c69636174696f6e2e2043616e20626520646f6e652062792074686520776f726b6572206f6e6c792e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3863616e63656c5f6f70656e696e670401286f70656e696e675f69642801244f70656e696e674964000a28dc43616e63656c20616e206f70656e696e6720666f722074686520726567756c617220776f726b65722f6c65616420706f736974696f6e2e550152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2063616e63656c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e287365745f6275646765740401286e65775f62756467657418013042616c616e63654f663c543e000b28a0536574732061206e65772062756467657420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e547570646174655f7265776172645f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e0001546e65775f7265776172645f6163636f756e745f6964000130543a3a4163636f756e744964000c2469015570646174652074686520726577617264206163636f756e74206173736f6369617465642077697468206120736574207265776172642072656c6174696f6e7368697020666f72207468652061637469766520776f726b65722e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e507570646174655f7265776172645f616d6f756e74080124776f726b65725f696428012c576f726b657249643c543e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e000d28c855706461746520746865207265776172642070657220626c6f636b20666f72207468652061637469766520776f726b65722e310152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20757064617465206c656164657227732072657761726420616d6f756e74292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3c7365745f7374617475735f7465787404012c7374617475735f746578743101013c4f7074696f6e3c5665633c75383e3e000e30b4536574732061206e657720737461747573207465787420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e002423232057656967687438604f20285329602077686572653a4d012d20605360206973207468652073697a65206f662074686520636f6e74656e7473206f6620607374617475735f746578746020696e206b696c6f6279746573207768656e206974206973206e6f74206e6f6e6500142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e447370656e645f66726f6d5f6275646765740c01286163636f756e745f6964000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000f28a85472616e73666572732073706563696669656420616d6f756e7420746f20616e79206163636f756e742e5c5265717569726573206c6561646572206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6466756e645f776f726b696e675f67726f75705f6275646765740c01246d656d6265725f696428012c4d656d62657249643c543e000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c6530011c5665633c75383e0010209846756e6420776f726b696e672067726f7570206275646765742062792061206d656d6265722e203c7765696768743e0024232320576569676874c4604f202831296020446f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c6c6561645f72656d61726b04010c6d736730011c5665633c75383e0011284c4c6561642072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e34776f726b65725f72656d61726b080124776f726b65725f696428012c576f726b657249643c543e00010c6d736730011c5665633c75383e00122854576f726b65722072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e8d06085070616c6c65745f776f726b696e675f67726f75701043616c6c08045400044900014c2c6164645f6f70656e696e6710012c6465736372697074696f6e30011c5665633c75383e0001306f70656e696e675f747970657d03012c4f70656e696e67547970650001307374616b655f706f6c696379610301a45374616b65506f6c6963793c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e3e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e00002cc44164642061206a6f62206f70656e696e6720666f72206120726567756c617220776f726b65722f6c65616420726f6c652e490152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20616464206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e002423232057656967687438604f20284429602077686572653abc2d20604460206973207468652073697a65206f6620606465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e406170706c795f6f6e5f6f70656e696e67040104708103016c4170706c794f6e4f70656e696e67506172616d65746572733c543e000128684170706c79206f6e206120776f726b6572206f70656e696e672e002823203c7765696768743e002423232057656967687438604f20284429602077686572653ac42d20604460206973207468652073697a65206f662060702e6465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3066696c6c5f6f70656e696e670801286f70656e696e675f69642801244f70656e696e6749640001687375636365737366756c5f6170706c69636174696f6e5f6964736901015c42547265655365743c4170706c69636174696f6e49643e000228ac46696c6c206f70656e696e6720666f722074686520726567756c61722f6c65616420706f736974696f6e2e4d0152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2066696c6c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e2823203c7765696768743e002423232057656967687438604f20284129602077686572653acc2d2060416020697320746865206c656e677468206f6620607375636365737366756c5f6170706c69636174696f6e5f69647360142d2044423a242020202d204f2841292c23203c2f7765696768743e4c7570646174655f726f6c655f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e00014c6e65775f726f6c655f6163636f756e745f6964000130543a3a4163636f756e744964000324150155706461746520746865206173736f63696174656420726f6c65206163636f756e74206f66207468652061637469766520726567756c617220776f726b65722f6c6561642e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e286c656176655f726f6c65080124776f726b65725f696428012c576f726b657249643c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000424904c656176652074686520726f6c65206279207468652061637469766520776f726b65722e2823203c7765696768743e002423232057656967687438604f20285229602077686572653ab42d20605260206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e387465726d696e6174655f726f6c650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c7479450101504f7074696f6e3c42616c616e63654f663c543e3e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000528a05465726d696e617465207468652061637469766520776f726b657220627920746865206c6561642e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f207465726d696e61746520746865206c656164657220726f6c65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ad82d20605060206973207468652073697a65206070656e616c74792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c736c6173685f7374616b650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c747918013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e00062c7d01536c61736865732074686520726567756c617220776f726b6572207374616b652c2064656d616e64732061206c6561646572206f726967696e2e204e6f206c696d6974732c206e6f20616374696f6e73206f6e207a65726f207374616b652e3d01496620736c617368696e672062616c616e63652067726561746572207468616e20746865206578697374696e67207374616b65202d207374616b6520697320736c617368656420746f207a65726f2e19015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20736c61736820746865206c6561646572207374616b65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ae82d20605060206973207468652073697a65206f66206070656e616c6974792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3864656372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e00073021014465637265617365732074686520726567756c617220776f726b65722f6c656164207374616b6520616e642072657475726e73207468652072656d61696e64657220746f207468653901776f726b6572207374616b696e675f6163636f756e745f69642e2043616e2062652064656372656173656420746f207a65726f2c206e6f20616374696f6e73206f6e207a65726f207374616b652e944163636570747320746865207374616b6520616d6f756e7420746f2064656372656173652e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20646563726561736520746865206c6561646572207374616b65292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e38696e6372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e0008280501496e637265617365732074686520726567756c617220776f726b65722f6c656164207374616b652c2064656d616e6473206120776f726b6572206f726967696e2e6d014c6f636b7320746f6b656e732066726f6d2074686520776f726b6572207374616b696e675f6163636f756e745f696420657175616c20746f206e6577207374616b652e204e6f206c696d697473206f6e20746865207374616b652e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5077697468647261775f6170706c69636174696f6e0401386170706c69636174696f6e5f69642801344170706c69636174696f6e4964000924010157697468647261772074686520776f726b6572206170706c69636174696f6e2e2043616e20626520646f6e652062792074686520776f726b6572206f6e6c792e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3863616e63656c5f6f70656e696e670401286f70656e696e675f69642801244f70656e696e674964000a28dc43616e63656c20616e206f70656e696e6720666f722074686520726567756c617220776f726b65722f6c65616420706f736974696f6e2e550152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2063616e63656c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e287365745f6275646765740401286e65775f62756467657418013042616c616e63654f663c543e000b28a0536574732061206e65772062756467657420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e547570646174655f7265776172645f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e0001546e65775f7265776172645f6163636f756e745f6964000130543a3a4163636f756e744964000c2469015570646174652074686520726577617264206163636f756e74206173736f6369617465642077697468206120736574207265776172642072656c6174696f6e7368697020666f72207468652061637469766520776f726b65722e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e507570646174655f7265776172645f616d6f756e74080124776f726b65725f696428012c576f726b657249643c543e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e000d28c855706461746520746865207265776172642070657220626c6f636b20666f72207468652061637469766520776f726b65722e310152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20757064617465206c656164657227732072657761726420616d6f756e74292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3c7365745f7374617475735f7465787404012c7374617475735f746578743101013c4f7074696f6e3c5665633c75383e3e000e30b4536574732061206e657720737461747573207465787420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e002423232057656967687438604f20285329602077686572653a4d012d20605360206973207468652073697a65206f662074686520636f6e74656e7473206f6620607374617475735f746578746020696e206b696c6f6279746573207768656e206974206973206e6f74206e6f6e6500142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e447370656e645f66726f6d5f6275646765740c01286163636f756e745f6964000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000f28a85472616e73666572732073706563696669656420616d6f756e7420746f20616e79206163636f756e742e5c5265717569726573206c6561646572206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6466756e645f776f726b696e675f67726f75705f6275646765740c01246d656d6265725f696428012c4d656d62657249643c543e000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c6530011c5665633c75383e0010209846756e6420776f726b696e672067726f7570206275646765742062792061206d656d6265722e203c7765696768743e0024232320576569676874c4604f202831296020446f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c6c6561645f72656d61726b04010c6d736730011c5665633c75383e0011284c4c6561642072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e34776f726b65725f72656d61726b080124776f726b65725f696428012c576f726b657249643c543e00010c6d736730011c5665633c75383e00122854576f726b65722072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e910608586a6f7973747265616d5f6e6f64655f72756e74696d65304f726967696e43616c6c65720001081873797374656d0400950601746672616d655f73797374656d3a3a4f726967696e3c52756e74696d653e00000010566f69640400990601110173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a566f69640001000095060c346672616d655f737570706f7274206469737061746368245261774f726967696e04244163636f756e7449640100010c10526f6f74000000185369676e656404000001244163636f756e744964000100104e6f6e65000200009906081c73705f636f726510566f6964000100009d060c3870616c6c65745f7574696c6974791870616c6c6574144572726f7204045400010430546f6f4d616e7943616c6c730000045c546f6f206d616e792063616c6c7320626174636865642e04b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a090909a1060c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401a506045300000400a90601185665633c543e0000a506000004084d042800a906000002a50600ad060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540104045300000400b10601185665633c543e0000b1060000020400b50604184f7074696f6e04045401b9060108104e6f6e6500000010536f6d650400b9060000010000b9060c4473705f636f6e73656e7375735f626162651c646967657374732450726544696765737400010c1c5072696d6172790400bd0601405072696d617279507265446967657374000100385365636f6e64617279506c61696e0400c106015c5365636f6e64617279506c61696e507265446967657374000200305365636f6e646172795652460400c50601545365636f6e6461727956524650726544696765737400030000bd060c4473705f636f6e73656e7375735f626162651c64696765737473405072696d617279507265446967657374000010013c617574686f726974795f696e64657810015473757065723a3a417574686f72697479496e646578000110736c6f7451040110536c6f740001287672665f6f75747075740401245652464f75747075740001247672665f70726f6f66a105012056524650726f6f660000c1060c4473705f636f6e73656e7375735f626162651c646967657374735c5365636f6e64617279506c61696e507265446967657374000008013c617574686f726974795f696e64657810015473757065723a3a417574686f72697479496e646578000110736c6f7451040110536c6f740000c5060c4473705f636f6e73656e7375735f626162651c64696765737473545365636f6e64617279565246507265446967657374000010013c617574686f726974795f696e64657810015473757065723a3a417574686f72697479496e646578000110736c6f7451040110536c6f740001287672665f6f75747075740401245652464f75747075740001247672665f70726f6f66a105012056524650726f6f660000c90604184f7074696f6e04045401040108104e6f6e6500000010536f6d650400040000010000cd06084473705f636f6e73656e7375735f62616265584261626545706f6368436f6e66696775726174696f6e00000801046379030128287536342c2075363429000134616c6c6f7765645f736c6f74735d040130416c6c6f776564536c6f74730000d1060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401bd02045300000400b90201185665633c543e0000d5060c2c70616c6c65745f626162651870616c6c6574144572726f7204045400011060496e76616c696445717569766f636174696f6e50726f6f660000043101416e2065717569766f636174696f6e2070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e60496e76616c69644b65794f776e65727368697050726f6f66000104310141206b6579206f776e6572736869702070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e584475706c69636174654f6666656e63655265706f727400020415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e50496e76616c6964436f6e66696775726174696f6e0003048c5375626d697474656420636f6e66696775726174696f6e20697320696e76616c69642e04b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a090909d9060c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401dd06045300000400e50601185665633c543e0000dd06083c70616c6c65745f62616c616e6365732c42616c616e63654c6f636b041c42616c616e63650118000c01086964250401384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e73e106011c526561736f6e730000e106083c70616c6c65745f62616c616e6365731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c00020000e506000002dd0600e9060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401ed06045300000400f10601185665633c543e0000ed06083c70616c6c65745f62616c616e6365732c52657365727665446174610844526573657276654964656e7469666965720125041c42616c616e6365011800080108696425040144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e63650000f106000002ed0600f5060c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001203856657374696e6742616c616e63650000049856657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c7565544c69717569646974795265737472696374696f6e73000104c44163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c4c496e73756666696369656e7442616c616e63650002047842616c616e636520746f6f206c6f7720746f2073656e642076616c75652e484578697374656e7469616c4465706f736974000304e856616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f736974244b656570416c6976650004048c5472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e745c4578697374696e6756657374696e675363686564756c65000504c8412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742c446561644163636f756e740006048842656e6566696369617279206163636f756e74206d757374207072652d65786973743c546f6f4d616e795265736572766573000704ac4e756d626572206f66206e616d656420726573657276657320657863656564204d6178526573657276657304b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a090909f9060c3473705f61726974686d657469632c66697865645f706f696e742446697865645531323800000400180110753132380000fd06086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e74000000085632000100000107089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f7068617365345265616479536f6c7574696f6e04045400000c0120737570706f727473050701b0426f756e646564537570706f7274733c543a3a4163636f756e7449642c20543a3a4d617857696e6e6572733e00011473636f72659c0134456c656374696f6e53636f726500011c636f6d7075746590013c456c656374696f6e436f6d70757465000005070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014905045300000400450501185665633c543e00000907089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f706861736534526f756e64536e617073686f740404540000080118766f746572730d07013c5665633c566f7465724f663c543e3e00011c746172676574735d0501445665633c543a3a4163636f756e7449643e00000d0700000211070011070000040c002815070015070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401000453000004005d0501185665633c543e000019070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454011d07045300000400210701185665633c543e00001d070000040c9c10100021070000021d070025070c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f7068617365187369676e6564405369676e65645375626d697373696f6e0c244163636f756e74496401001c42616c616e6365011820536f6c7574696f6e0171040010010c77686f0001244163636f756e74496400011c6465706f73697418011c42616c616e63650001307261775f736f6c7574696f6e6d040154526177536f6c7574696f6e3c536f6c7574696f6e3e00012063616c6c5f66656518011c42616c616e6365000029070c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173651870616c6c6574144572726f720404540001386850726544697370617463684561726c795375626d697373696f6e000004645375626d697373696f6e2077617320746f6f206561726c792e6c507265446973706174636857726f6e6757696e6e6572436f756e740001048857726f6e67206e756d626572206f662077696e6e6572732070726573656e7465642e6450726544697370617463685765616b5375626d697373696f6e000204905375626d697373696f6e2077617320746f6f207765616b2c2073636f72652d776973652e3c5369676e6564517565756546756c6c0003044901546865207175657565207761732066756c6c2c20616e642074686520736f6c7574696f6e20776173206e6f7420626574746572207468616e20616e79206f6620746865206578697374696e67206f6e65732e585369676e656443616e6e6f745061794465706f73697400040494546865206f726967696e206661696c656420746f2070617920746865206465706f7369742e505369676e6564496e76616c69645769746e657373000504a05769746e657373206461746120746f20646973706174636861626c6520697320696e76616c69642e4c5369676e6564546f6f4d756368576569676874000604b8546865207369676e6564207375626d697373696f6e20636f6e73756d657320746f6f206d756368207765696768743c4f637743616c6c57726f6e67457261000704984f4357207375626d697474656420736f6c7574696f6e20666f722077726f6e6720726f756e645c4d697373696e67536e617073686f744d65746164617461000804a8536e617073686f74206d657461646174612073686f756c6420657869737420627574206469646e27742e58496e76616c69645375626d697373696f6e496e646578000904d06053656c663a3a696e736572745f7375626d697373696f6e602072657475726e656420616e20696e76616c696420696e6465782e3843616c6c4e6f74416c6c6f776564000a04985468652063616c6c206973206e6f7420616c6c6f776564206174207468697320706f696e742e3846616c6c6261636b4661696c6564000b044c5468652066616c6c6261636b206661696c65642c426f756e644e6f744d6574000c0448536f6d6520626f756e64206e6f74206d657438546f6f4d616e7957696e6e657273000d049c5375626d697474656420736f6c7574696f6e2068617320746f6f206d616e792077696e6e657273040d014572726f72206f66207468652070616c6c657420746861742063616e2062652072657475726e656420696e20726573706f6e736520746f20646973706174636865732e2d07083870616c6c65745f7374616b696e67345374616b696e674c656467657204045400001401147374617368000130543a3a4163636f756e744964000114746f74616cec013042616c616e63654f663c543e000118616374697665ec013042616c616e63654f663c543e000124756e6c6f636b696e67310701f0426f756e6465645665633c556e6c6f636b4368756e6b3c42616c616e63654f663c543e3e2c20543a3a4d6178556e6c6f636b696e674368756e6b733e00013c636c61696d65645f726577617264733d070194426f756e6465645665633c457261496e6465782c20543a3a486973746f727944657074683e000031070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454013507045300000400390701185665633c543e00003507083870616c6c65745f7374616b696e672c556e6c6f636b4368756e6b041c42616c616e636501180008011476616c7565ec011c42616c616e636500010c657261e5030120457261496e646578000039070000023507003d070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540110045300000400650501185665633c543e00004107083870616c6c65745f7374616b696e672c4e6f6d696e6174696f6e7304045400000c011c74617267657473150701ac426f756e6465645665633c543a3a4163636f756e7449642c20543a3a4d61784e6f6d696e6174696f6e733e0001307375626d69747465645f696e100120457261496e64657800012873757070726573736564980110626f6f6c00004507083870616c6c65745f7374616b696e6734416374697665457261496e666f0000080114696e646578100120457261496e64657800011473746172743501012c4f7074696f6e3c7536343e00004907000004081000004d07083870616c6c65745f7374616b696e673c457261526577617264506f696e747304244163636f756e744964010000080114746f74616c10012c526577617264506f696e74000128696e646976696475616c5107018042547265654d61703c4163636f756e7449642c20526577617264506f696e743e00005107042042547265654d617008044b010004560110000400550700000055070000025907005907000004080010005d070000026107006107083870616c6c65745f7374616b696e6738556e6170706c696564536c61736808244163636f756e74496401001c42616c616e636501180014012476616c696461746f720001244163636f756e74496400010c6f776e18011c42616c616e63650001186f7468657273510501645665633c284163636f756e7449642c2042616c616e6365293e0001247265706f72746572735d0501385665633c4163636f756e7449643e0001187061796f757418011c42616c616e63650000650700000408ac180069070c3870616c6c65745f7374616b696e6720736c617368696e6734536c617368696e675370616e7300001001287370616e5f696e6465781001245370616e496e6465780001286c6173745f7374617274100120457261496e6465780001486c6173745f6e6f6e7a65726f5f736c617368100120457261496e6465780001147072696f72650501345665633c457261496e6465783e00006d070c3870616c6c65745f7374616b696e6720736c617368696e67285370616e5265636f7264041c42616c616e636501180008011c736c617368656418011c42616c616e6365000120706169645f6f757418011c42616c616e6365000071070000027507007507000004081098007907103870616c6c65745f7374616b696e671870616c6c65741870616c6c6574144572726f72040454000168344e6f74436f6e74726f6c6c6572000004644e6f74206120636f6e74726f6c6c6572206163636f756e742e204e6f745374617368000104504e6f742061207374617368206163636f756e742e34416c7265616479426f6e64656400020460537461736820697320616c726561647920626f6e6465642e34416c726561647950616972656400030474436f6e74726f6c6c657220697320616c7265616479207061697265642e30456d7074795461726765747300040460546172676574732063616e6e6f7420626520656d7074792e384475706c6963617465496e646578000504404475706c696361746520696e6465782e44496e76616c6964536c617368496e64657800060484536c617368207265636f726420696e646578206f7574206f6620626f756e64732e40496e73756666696369656e74426f6e6400070c590143616e6e6f74206861766520612076616c696461746f72206f72206e6f6d696e61746f7220726f6c652c20776974682076616c7565206c657373207468616e20746865206d696e696d756d20646566696e65642062793d01676f7665726e616e6365202873656520604d696e56616c696461746f72426f6e646020616e6420604d696e4e6f6d696e61746f72426f6e6460292e20496620756e626f6e64696e67206973207468651501696e74656e74696f6e2c20606368696c6c6020666972737420746f2072656d6f7665206f6e65277320726f6c652061732076616c696461746f722f6e6f6d696e61746f722e304e6f4d6f72654368756e6b730008049043616e206e6f74207363686564756c65206d6f726520756e6c6f636b206368756e6b732e344e6f556e6c6f636b4368756e6b000904a043616e206e6f74207265626f6e6420776974686f757420756e6c6f636b696e67206368756e6b732e3046756e646564546172676574000a04c8417474656d7074696e6720746f2074617267657420612073746173682074686174207374696c6c206861732066756e64732e48496e76616c6964457261546f526577617264000b0458496e76616c69642065726120746f207265776172642e68496e76616c69644e756d6265724f664e6f6d696e6174696f6e73000c0478496e76616c6964206e756d626572206f66206e6f6d696e6174696f6e732e484e6f74536f72746564416e64556e69717565000d04804974656d7320617265206e6f7420736f7274656420616e6420756e697175652e38416c7265616479436c61696d6564000e0409015265776172647320666f72207468697320657261206861766520616c7265616479206265656e20636c61696d656420666f7220746869732076616c696461746f722e54496e636f7272656374486973746f72794465707468000f04c0496e636f72726563742070726576696f757320686973746f727920646570746820696e7075742070726f76696465642e58496e636f7272656374536c617368696e675370616e73001004b0496e636f7272656374206e756d626572206f6620736c617368696e67207370616e732070726f76696465642e2042616453746174650011043901496e7465726e616c20737461746520686173206265636f6d6520736f6d65686f7720636f7272757074656420616e6420746865206f7065726174696f6e2063616e6e6f7420636f6e74696e75652e38546f6f4d616e795461726765747300120494546f6f206d616e79206e6f6d696e6174696f6e207461726765747320737570706c6965642e244261645461726765740013043d0141206e6f6d696e6174696f6e207461726765742077617320737570706c69656420746861742077617320626c6f636b6564206f72206f7468657277697365206e6f7420612076616c696461746f722e4043616e6e6f744368696c6c4f74686572001404550154686520757365722068617320656e6f75676820626f6e6420616e6420746875732063616e6e6f74206265206368696c6c656420666f72636566756c6c7920627920616e2065787465726e616c20706572736f6e2e44546f6f4d616e794e6f6d696e61746f72730015084d0154686572652061726520746f6f206d616e79206e6f6d696e61746f727320696e207468652073797374656d2e20476f7665726e616e6365206e6565647320746f2061646a75737420746865207374616b696e67b473657474696e677320746f206b656570207468696e6773207361666520666f72207468652072756e74696d652e44546f6f4d616e7956616c696461746f7273001608550154686572652061726520746f6f206d616e792076616c696461746f722063616e6469646174657320696e207468652073797374656d2e20476f7665726e616e6365206e6565647320746f2061646a75737420746865d47374616b696e672073657474696e677320746f206b656570207468696e6773207361666520666f72207468652072756e74696d652e40436f6d6d697373696f6e546f6f4c6f77001704e0436f6d6d697373696f6e20697320746f6f206c6f772e204d757374206265206174206c6561737420604d696e436f6d6d697373696f6e602e2c426f756e644e6f744d657400180458536f6d6520626f756e64206973206e6f74206d65742e44426f6e64696e6752657374726963746564001904e045787465726e616c207265737472696374696f6e2070726576656e747320626f6e64696e67207769746820676976656e206163636f756e7404b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a0909097d07000002810700810700000408007d05008507000004088907300089070c1c73705f636f72651863727970746f244b65795479706549640000040040011c5b75383b20345d00008d070c3870616c6c65745f73657373696f6e1870616c6c6574144572726f7204045400011430496e76616c696450726f6f6600000460496e76616c6964206f776e6572736869702070726f6f662e5c4e6f4173736f63696174656456616c696461746f7249640001049c4e6f206173736f6369617465642076616c696461746f7220494420666f72206163636f756e742e344475706c6963617465644b65790002046452656769737465726564206475706c6963617465206b65792e184e6f4b657973000304a44e6f206b65797320617265206173736f63696174656420776974682074686973206163636f756e742e244e6f4163636f756e7400040419014b65792073657474696e67206163636f756e74206973206e6f74206c6976652c20736f206974277320696d706f737369626c6520746f206173736f6369617465206b6579732e04744572726f7220666f72207468652073657373696f6e2070616c6c65742e9107000004082c10009507083870616c6c65745f6772616e6470612c53746f726564537461746504044e01100110104c6976650000003050656e64696e6750617573650801307363686564756c65645f61741001044e00011464656c61791001044e000100185061757365640002003450656e64696e67526573756d650801307363686564756c65645f61741001044e00011464656c61791001044e000300009907083870616c6c65745f6772616e6470614c53746f72656450656e64696e674368616e676508044e0110144c696d697400001001307363686564756c65645f61741001044e00011464656c61791001044e0001406e6578745f617574686f7269746965739d07016c426f756e646564417574686f726974794c6973743c4c696d69743e000118666f72636564010201244f7074696f6e3c4e3e00009d070c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401c8045300000400c401185665633c543e0000a1070c3870616c6c65745f6772616e6470611870616c6c6574144572726f7204045400011c2c50617573654661696c65640000080501417474656d707420746f207369676e616c204752414e445041207061757365207768656e2074686520617574686f72697479207365742069736e2774206c697665a42865697468657220706175736564206f7220616c72656164792070656e64696e67207061757365292e30526573756d654661696c65640001081101417474656d707420746f207369676e616c204752414e44504120726573756d65207768656e2074686520617574686f72697479207365742069736e277420706175736564a028656974686572206c697665206f7220616c72656164792070656e64696e6720726573756d65292e344368616e676550656e64696e67000204e8417474656d707420746f207369676e616c204752414e445041206368616e67652077697468206f6e6520616c72656164792070656e64696e672e1c546f6f536f6f6e000304bc43616e6e6f74207369676e616c20666f72636564206368616e676520736f20736f6f6e206166746572206c6173742e60496e76616c69644b65794f776e65727368697050726f6f66000404310141206b6579206f776e6572736869702070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e60496e76616c696445717569766f636174696f6e50726f6f660005043101416e2065717569766f636174696f6e2070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e584475706c69636174654f6666656e63655265706f727400060415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e04b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a090909a5070c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e646564566563080454018105045300000400a90701185665633c543e0000a907000002810500ad070c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401d8045300000400b10701185665633c543e0000b107000002d800b50710346672616d655f737570706f727418747261697473106d69736334577261707065724f706171756504045401b907000800e503000000b9070104540000b907084070616c6c65745f696d5f6f6e6c696e6564426f756e6465644f70617175654e6574776f726b53746174650c4c506565724964456e636f64696e674c696d697400584d756c746941646472456e636f64696e674c696d697400384164647265737365734c696d6974000008011c706565725f6964bd07019c5765616b426f756e6465645665633c75382c20506565724964456e636f64696e674c696d69743e00014865787465726e616c5f616464726573736573c107012d015765616b426f756e6465645665633c5765616b426f756e6465645665633c75382c204d756c746941646472456e636f64696e674c696d69743e2c204164647265737365734c696d69740a3e0000bd070c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401080453000004003001185665633c543e0000c1070c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401bd07045300000400c50701185665633c543e0000c507000002bd0700c9070c4070616c6c65745f696d5f6f6e6c696e651870616c6c6574144572726f7204045400010828496e76616c69644b6579000004604e6f6e206578697374656e74207075626c6963206b65792e4c4475706c696361746564486561727462656174000104544475706c696361746564206865617274626561742e04b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a090909cd070c2873705f7374616b696e671c6f6666656e6365384f6666656e636544657461696c7308205265706f727465720100204f6666656e64657201e4000801206f6666656e646572e401204f6666656e6465720001247265706f72746572735d0501345665633c5265706f727465723e0000d10700000408fc3000d5070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454012c045300000400d50301185665633c543e0000d9070c4070616c6c65745f626167735f6c697374106c697374104e6f646508045400044900001401086964000130543a3a4163636f756e744964000110707265769401504f7074696f6e3c543a3a4163636f756e7449643e0001106e6578749401504f7074696f6e3c543a3a4163636f756e7449643e0001246261675f7570706572280120543a3a53636f726500011473636f7265280120543a3a53636f72650000dd070c4070616c6c65745f626167735f6c697374106c6973740c4261670804540004490000080110686561649401504f7074696f6e3c543a3a4163636f756e7449643e0001107461696c9401504f7074696f6e3c543a3a4163636f756e7449643e0000e1070c4070616c6c65745f626167735f6c6973741870616c6c6574144572726f72080454000449000104104c6973740400e50701244c6973744572726f72000004b441206572726f7220696e20746865206c69737420696e7465726661636520696d706c656d656e746174696f6e2e04b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a090909e5070c4070616c6c65745f626167735f6c697374106c697374244c6973744572726f72000110244475706c6963617465000000284e6f7448656176696572000100304e6f74496e53616d65426167000200304e6f64654e6f74466f756e6400030000e9070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401dd05045300000400ed0701185665633c543e0000ed07000002dd0500f107083870616c6c65745f76657374696e672052656c656173657300010808563000000008563100010000f5070c3870616c6c65745f76657374696e671870616c6c6574144572726f72040454000114284e6f7456657374696e6700000484546865206163636f756e7420676976656e206973206e6f742076657374696e672e5441744d617856657374696e675363686564756c65730001082501546865206163636f756e7420616c72656164792068617320604d617856657374696e675363686564756c65736020636f756e74206f66207363686564756c657320616e642074687573510163616e6e6f742061646420616e6f74686572206f6e652e20436f6e7369646572206d657267696e67206578697374696e67207363686564756c657320696e206f7264657220746f2061646420616e6f746865722e24416d6f756e744c6f770002040501416d6f756e74206265696e67207472616e7366657272656420697320746f6f206c6f7720746f2063726561746520612076657374696e67207363686564756c652e605363686564756c65496e6465784f75744f66426f756e6473000304d0416e20696e64657820776173206f7574206f6620626f756e6473206f66207468652076657374696e67207363686564756c65732e54496e76616c69645363686564756c65506172616d730004040d014661696c656420746f206372656174652061206e6577207363686564756c65206265636175736520736f6d6520706172616d657465722077617320696e76616c69642e04744572726f7220666f72207468652076657374696e672070616c6c65742ef90700000408000400fd07083c70616c6c65745f6d756c7469736967204d756c7469736967102c426c6f636b4e756d62657201101c42616c616e63650118244163636f756e7449640100304d6178417070726f76616c7300001001107768656e0d01015854696d65706f696e743c426c6f636b4e756d6265723e00011c6465706f73697418011c42616c616e63650001246465706f7369746f720001244163636f756e744964000124617070726f76616c730108018c426f756e6465645665633c4163636f756e7449642c204d6178417070726f76616c733e000001080c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401000453000004005d0501185665633c543e000005080c3c70616c6c65745f6d756c74697369671870616c6c6574144572726f72040454000138404d696e696d756d5468726573686f6c640000047c5468726573686f6c64206d7573742062652032206f7220677265617465722e3c416c7265616479417070726f766564000104ac43616c6c20697320616c726561647920617070726f7665642062792074686973207369676e61746f72792e444e6f417070726f76616c734e65656465640002049c43616c6c20646f65736e2774206e65656420616e7920286d6f72652920617070726f76616c732e44546f6f4665775369676e61746f72696573000304a854686572652061726520746f6f20666577207369676e61746f7269657320696e20746865206c6973742e48546f6f4d616e795369676e61746f72696573000404ac54686572652061726520746f6f206d616e79207369676e61746f7269657320696e20746865206c6973742e545369676e61746f726965734f75744f664f726465720005040d01546865207369676e61746f7269657320776572652070726f7669646564206f7574206f66206f726465723b20746865792073686f756c64206265206f7264657265642e4c53656e646572496e5369676e61746f726965730006040d015468652073656e6465722077617320636f6e7461696e656420696e20746865206f74686572207369676e61746f726965733b2069742073686f756c646e27742062652e204e6f74466f756e64000704dc4d756c7469736967206f7065726174696f6e206e6f7420666f756e64207768656e20617474656d7074696e6720746f2063616e63656c2e204e6f744f776e65720008042d014f6e6c7920746865206163636f756e742074686174206f726967696e616c6c79206372656174656420746865206d756c74697369672069732061626c6520746f2063616e63656c2069742e2c4e6f54696d65706f696e740009041d014e6f2074696d65706f696e742077617320676976656e2c2079657420746865206d756c7469736967206f7065726174696f6e20697320616c726561647920756e6465727761792e3857726f6e6754696d65706f696e74000a042d014120646966666572656e742074696d65706f696e742077617320676976656e20746f20746865206d756c7469736967206f7065726174696f6e207468617420697320756e6465727761792e4c556e657870656374656454696d65706f696e74000b04f4412074696d65706f696e742077617320676976656e2c20796574206e6f206d756c7469736967206f7065726174696f6e20697320756e6465727761792e3c4d6178576569676874546f6f4c6f77000c04d0546865206d6178696d756d2077656967687420696e666f726d6174696f6e2070726f76696465642077617320746f6f206c6f772e34416c726561647953746f726564000d04a0546865206461746120746f2062652073746f72656420697320616c72656164792073746f7265642e04b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a0909090908083870616c6c65745f636f756e63696c48436f756e63696c5374616765557064617465042c426c6f636b4e756d62657201100008011473746167650d080164436f756e63696c53746167653c426c6f636b4e756d6265723e0001286368616e6765645f617410012c426c6f636b4e756d62657200000d08083870616c6c65745f636f756e63696c30436f756e63696c5374616765042c426c6f636b4e756d6265720110010c28416e6e6f756e63696e6704001108018c436f756e63696c5374616765416e6e6f756e63696e673c426c6f636b4e756d6265723e00000020456c656374696f6e040015080150436f756e63696c5374616765456c656374696f6e0001001049646c65040019080174436f756e63696c537461676549646c653c426c6f636b4e756d6265723e000200001108083870616c6c65745f636f756e63696c58436f756e63696c5374616765416e6e6f756e63696e67042c426c6f636b4e756d62657201100008014063616e646964617465735f636f756e7410010c75333200011c656e64735f617410012c426c6f636b4e756d62657200001508083870616c6c65745f636f756e63696c50436f756e63696c5374616765456c656374696f6e000004014063616e646964617465735f636f756e7410010c75333200001908083870616c6c65745f636f756e63696c40436f756e63696c537461676549646c65042c426c6f636b4e756d62657201100004011c656e64735f617410012c426c6f636b4e756d62657200001d080c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e646564566563080454012108045300000400250801185665633c543e00002108083870616c6c65745f636f756e63696c34436f756e63696c4d656d62657210244163636f756e7449640100204d656d626572496401281c42616c616e636501182c426c6f636b4e756d6265720110001801487374616b696e675f6163636f756e745f69640001244163636f756e7449640001447265776172645f6163636f756e745f69640001244163636f756e7449640001346d656d626572736869705f69642801204d656d62657249640001147374616b6518011c42616c616e63650001486c6173745f7061796d656e745f626c6f636b10012c426c6f636b4e756d626572000134756e706169645f72657761726418011c42616c616e6365000025080000022108002908083870616c6c65745f636f756e63696c2443616e64696461746510244163636f756e74496401001c42616c616e636501181048617368012c24566f7465506f7765720118001801487374616b696e675f6163636f756e745f69640001244163636f756e7449640001447265776172645f6163636f756e745f69640001244163636f756e7449640001206379636c655f696428010c7536340001147374616b6518011c42616c616e6365000128766f74655f706f776572180124566f7465506f7765720001246e6f74655f68617368790201304f7074696f6e3c486173683e00002d08083870616c6c65745f636f756e63696c144572726f720404540001603c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f7729244261644f726967696e000104484f726967696e20697320696e76616c69642e4043616e7443616e6469646174654e6f7700020439015573657220747269656420746f20616e6e6f756e63652063616e646964616379206f757473696465206f66207468652063616e64696461637920616e6e6f756e63656d656e7420706572696f642e4c43616e7452656c656173655374616b654e6f77000304f05573657220747269656420746f2072656c65617365207374616b65206f757473696465206f66207468652072657665616c696e6720706572696f642e5043616e6469646163795374616b65546f6f4c6f77000404b043616e64696461746520686176656e27742070726f76696465642073756666696369656e74207374616b652e4843616e7443616e6469646174655477696365000504f45573657220747269656420746f20616e6e6f756e63652063616e64696461637920747769636520696e207468652073616d6520656c656374696f6e732e40436f6e666c696374696e675374616b650006085d015573657220747269656420746f20616e6e6f756e63652063616e646964616379207769746820616e206163636f756e742074686174206861732074686520636f6e666c696374696e672074797065206f66207374616b653901776974682063616e646964616379207374616b6520616e6420686173206e6f7420656e6f7567682062616c616e636520666f72207374616b696e6720666f7220626f746820707572706f7365732e405374616b655374696c6c4e6565646564000704dc436f756e63696c206d656d62657220616e642063616e646964617465732063616e2774207769746864726177207374616b65207965742e1c4e6f5374616b65000804c45573657220747269656420746f2072656c65617365207374616b65207768656e206e6f207374616b65206578697374732e74496e73756666696369656e7442616c616e6365466f725374616b696e67000904ac496e73756666696369656e742062616c616e636520666f722063616e646964616379207374616b696e672e4c43616e74566f7465466f72596f757273656c66000a048443616e6469646174652063616e277420766f746520666f722068696d73656c662e5c4d656d62657249644e6f744d617463684163636f756e74000b044c496e76616c6964206d656d626572736869702e68496e76616c69644163636f756e74546f5374616b655265757365000c08510154686520636f6d62696e6174696f6e206f66206d656d6265727368697020696420616e64206163636f756e7420696420697320696e76616c696420666f7220756e7374616b696e6720616e206578697374696e674063616e646964616379207374616b652e444e6f7443616e6469646174696e674e6f77000d04d85573657220747269656420746f2077697468647261772063616e646964616379207768656e206e6f742063616e6469646174696e672e6043616e74576974686472617743616e6469646163794e6f77000e04190143616e27742077697468647261772063616e646964616379206f757473696465206f66207468652063616e64696461637920616e6e6f756e63656d656e7420706572696f642e304e6f74436f756e63696c6f72000f0478546865206d656d626572206973206e6f74206120636f756e63696c6f722e88496e73756666696369656e7446756e6473466f7246756e64696e6752657175657374001004f0496e737566666963656e742066756e647320696e20636f756e63696c20666f7220657865637574696e67202746756e64696e67205265717565737427585a65726f42616c616e636546756e64526571756573740011045c46756e642072657175657374206e6f2062616c616e636568526570656174656446756e64526571756573744163636f756e74001204fc5468652073616d65206163636f756e7420697320726563696576696e672066756e64732066726f6d207468652073616d65207265717565737420747769636550456d70747946756e64696e675265717565737473001304ac46756e64696e6720726571756573747320776974686f757420726563696576696e67206163636f756e747370496e73756666696369656e74546f6b656e73466f7246756e64696e67001404f8496e73756666696369656e7420746f6b656e7320666f722066756e64696e6720286f6e206d656d62657220636f6e74726f6c6c6572206163636f756e7429445a65726f546f6b656e7346756e64696e670015047c547279696e6720746f2066756e642077697468207a65726f20746f6b656e735443616e646964617465446f65734e6f7445786973740016045843616e646964617465206964206e6f7420666f756e6478496e73756666696369656e7442616c616e6365466f725472616e73666572001704b443616e6e6f742077697468647261773a20696e73756666696369656e74206275646765742062616c616e63652e0438436f756e63696c206572726f72733108084470616c6c65745f7265666572656e64756d3c5265666572656e64756d5374616765082c426c6f636b4e756d62657201104c496e7465726d65646961746557696e6e657273013508010c20496e61637469766500000018566f74696e670400390801885265666572656e64756d5374616765566f74696e673c426c6f636b4e756d6265723e0001002452657665616c696e6704003d0801e85265666572656e64756d537461676552657665616c696e673c426c6f636b4e756d6265722c20496e7465726d65646961746557696e6e6572733e0002000035080c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e646564566563080454012501045300000400210101185665633c543e00003908084470616c6c65745f7265666572656e64756d545265666572656e64756d5374616765566f74696e67042c426c6f636b4e756d62657201100010011c7374617274656410012c426c6f636b4e756d62657200015077696e6e696e675f7461726765745f636f756e7410010c75333200014063757272656e745f6379636c655f696428010c75363400011c656e64735f617410012c426c6f636b4e756d62657200003d08084470616c6c65745f7265666572656e64756d605265666572656e64756d537461676552657665616c696e67082c426c6f636b4e756d62657201104c496e7465726d65646961746557696e6e6572730135080014011c7374617274656410012c426c6f636b4e756d62657200015077696e6e696e675f7461726765745f636f756e7410010c753332000150696e7465726d6564696174655f77696e6e6572733508014c496e7465726d65646961746557696e6e65727300014063757272656e745f6379636c655f696428010c75363400011c656e64735f617410012c426c6f636b4e756d62657200004108084470616c6c65745f7265666572656e64756d2043617374566f74650c1048617368012c2043757272656e63790118204d656d6265724964012800100128636f6d6d69746d656e742c0110486173680001206379636c655f696428010c7536340001147374616b6518012043757272656e6379000120766f74655f666f72350101404f7074696f6e3c4d656d62657249643e00004508084470616c6c65745f7265666572656e64756d144572726f72080454000449000138244261644f726967696e000004444f726967696e20697320696e76616c6964505265666572656e64756d4e6f7452756e6e696e67000104a85265666572656e64756d206973206e6f742072756e6e696e67207768656e20657870656374656420746f5852657665616c696e674e6f74496e50726f6772657373000204b052657665616c696e67207374616765206973206e6f7420696e2070726f6772657373207269676874206e6f775c436f6e666c6963745374616b65734f6e4163636f756e74000304b05374616b696e67206163636f756e7420636f6e7461696e7320636f6e666c696374696e67207374616b65732e68496e73756666696369656e7442616c616e6365546f5374616b650004049c4163636f756e7420496e73756666696369656e7420467265652042616c616e636520286e6f772944496e73756666696369656e745374616b65000504a8496e73756666696369656e74207374616b652070726f766964656420746f2063617374206120766f746534496e76616c696452657665616c000604190153616c7420616e64207265666572656e64756d206f7074696f6e2070726f766964656420646f6e277420636f72726573706f6e6420746f2074686520636f6d6d69746d656e742c496e76616c6964566f7465000704a4566f746520666f72206e6f74206578697374696e67206f7074696f6e207761732072657665616c65643c566f74654e6f744578697374696e670008049c547279696e6720746f2072657665616c20766f7465207468617420776173206e6f74206361737454416c7265616479566f746564546869734379636c65000904b8547279696e6720746f20766f7465206d756c7469706c652074696d6520696e207468652073616d65206379636c6560556e7374616b696e67566f7465496e53616d654379636c65000a04a0496e76616c69642074696d6520746f2072656c6561736520746865206c6f636b6564207374616b652c53616c74546f6f4c6f6e67000b044053616c7420697320746f6f206c6f6e6748556e7374616b696e67466f7262696464656e000c04f0556e7374616b696e6720686173206265656e20666f7262696464656e20666f7220746865207573657220286174206c6561737420666f72206e6f7729784163636f756e74416c72656164794f707465644f75744f66566f74696e67000d041d014120766f74652063616e6e6f7420626520636173742066726f6d20616e206163636f756e74207468617420616c7265616479206f70746564206f7574206f6620766f74696e672e04445265666572656e64756d206572726f72734908084470616c6c65745f6d656d62657273686970404d656d626572736869704f626a65637408244163636f756e74496401001048617368012c0014012c68616e646c655f686173682c011048617368000130726f6f745f6163636f756e740001244163636f756e744964000148636f6e74726f6c6c65725f6163636f756e740001244163636f756e7449640001207665726966696564980110626f6f6c00011c696e766974657310010c75333200004d08084470616c6c65745f6d656d626572736869706c5374616b696e674163636f756e744d656d62657242696e64696e6704204d656d62657249640128000801246d656d6265725f69642801204d656d6265724964000124636f6e6669726d6564980110626f6f6c00005108084470616c6c65745f6d656d62657273686970144572726f720404540001587c4e6f74456e6f75676842616c616e6365546f4275794d656d62657273686970000004944e6f7420656e6f7567682062616c616e636520746f20627579206d656d626572736869702e64436f6e74726f6c6c65724163636f756e74526571756972656400010470436f6e74726f6c6c6572206163636f756e742072657175697265642e4c526f6f744163636f756e74526571756972656400020458526f6f74206163636f756e742072657175697265642e38556e7369676e65644f726967696e00030440556e7369676e6564206f726967696e2e544d656d62657250726f66696c654e6f74466f756e64000404b44d656d6265722070726f66696c65206e6f7420666f756e642028696e76616c6964206d656d626572206964292e5c48616e646c65416c7265616479526567697374657265640005046848616e646c6520616c726561647920726567697374657265642e9848616e646c654d757374426550726f7669646564447572696e67526567697374726174696f6e000604b048616e646c65206d7573742062652070726f766964656420647572696e6720726567697374726174696f6e2e4c526566657272657249734e6f744d656d626572000704d043616e6e6f742066696e642061206d656d6265727368697020666f7220612070726f76696465642072656665727265722069642e8443616e6e6f745472616e73666572496e7669746573466f724e6f744d656d6265720008049853686f756c642062652061206d656d62657220746f207265636569766520696e76697465732e404e6f74456e6f756768496e7669746573000904ac4e6f7420656e6f75676820696e766974657320746f20706572666f726d20616e206f7065726174696f6e2e60576f726b696e6747726f75704c65616465724e6f74536574000a04ac4d656d6265727368697020776f726b696e672067726f7570206c6561646572206973206e6f74207365742e845374616b696e674163636f756e744973416c726561647952656769737465726564000b04b85374616b696e67206163636f756e74206973207265676973746572656420666f7220736f6d65206d656d6265722e645374616b696e674163636f756e74446f65736e744578697374000c04b45374616b696e67206163636f756e7420666f72206d656d6265727368697020646f65736e27742065786973742e785374616b696e674163636f756e74416c7265616479436f6e6669726d6564000d04ac5374616b696e67206163636f756e742068617320616c7265616479206265656e20636f6e6669726d65642eb0576f726b696e6747726f757042756467657449734e6f7453756666696369656e74466f72496e766974696e67000e08490143616e6e6f7420696e766974652061206d656d6265722e20576f726b696e672067726f75702062616c616e6365206973206e6f742073756666696369656e7420746f20736574207468652064656661756c742062616c616e63652e3c436f6e666c696374696e674c6f636b000f04410143616e6e6f7420696e766974652061206d656d6265722e2054686520636f6e74726f6c6c6572206163636f756e742068617320616e206578697374696e6720636f6e666c696374696e67206c6f636b2e8c43616e6e6f74457863656564526566657272616c43757450657263656e744c696d6974001004010143616e6e6f7420736574206120726566657272616c206375742070657263656e742076616c75652e20546865206c696d6974207761732065786365656465642e5c436f6e666c6963745374616b65734f6e4163636f756e74001104b05374616b696e67206163636f756e7420636f6e7461696e7320636f6e666c696374696e67207374616b65732e7c496e73756666696369656e7442616c616e6365546f436f7665725374616b6500120490496e73756666696369656e742062616c616e636520746f20636f766572207374616b652e504769664c6f636b45786365656473437265646974001304ac4c6f636b656420616d6f756e742069732067726561746572207468616e2063726564697420616d6f756e7464496e73756666696369656e7442616c616e6365546f47696674001404c047696674657220646f65736e277420686176652073756666696369656e742062616c616e636520746f2063726564697484496e73756666696369656e7442616c616e6365546f436f7665725061796d656e7400150498496e73756666696369656e742062616c616e636520746f20636f766572207061796d656e742e048c4d656d62657273686970206d6f64756c6520707265646566696e6564206572726f72735508083070616c6c65745f666f72756d2043617465676f72790c2843617465676f7279496401281048617368012c44537469636b696564546872656164496473015908002001287469746c655f686173682c0110486173680001406465736372697074696f6e5f686173682c0110486173680001206172636869766564980110626f6f6c0001606e756d5f6469726563745f73756263617465676f7269657310010c7533320001486e756d5f6469726563745f7468726561647310010c7533320001546e756d5f6469726563745f6d6f64657261746f727310010c753332000148706172656e745f63617465676f72795f6964350101484f7074696f6e3c43617465676f727949643e000144737469636b795f7468726561645f69647359080144537469636b696564546872656164496473000059080c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401280453000004006901012c42547265655365743c543e00005d08083070616c6c65745f666f72756d185468726561640c2c466f72756d55736572496401282843617465676f72794964012848526570617961626c65426c6f6174426f6e6401e1010010012c63617465676f72795f696428012843617465676f72794964000124617574686f725f696428012c466f72756d55736572496400013c636c65616e75705f7061795f6f6666e1010148526570617961626c65426c6f6174426f6e640001606e756d6265725f6f665f6564697461626c655f706f7374732801344e756d6265724f66506f73747300006108083070616c6c65745f666f72756d10506f7374142c466f72756d557365724964012820546872656164496401281048617368012c2c426c6f636b4e756d626572011048526570617961626c65426c6f6174426f6e6401e101001401247468726561645f69642801205468726561644964000124746578745f686173682c011048617368000124617574686f725f696428012c466f72756d55736572496400013c636c65616e75705f7061795f6f6666e1010148526570617961626c65426c6f6174426f6e6400012c6c6173745f65646974656410012c426c6f636b4e756d62657200006508083070616c6c65745f666f72756d144572726f7204045400016c3c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f7729484f726967696e4e6f74466f72756d4c656164000104b44f726967696e20646f65736e277420636f72726573706f6e6420746f20616e79206c656164206163636f756e7468466f72756d5573657249644e6f744d617463684163636f756e7400020490466f72756d2075736572206964206e6f74206d6174636820697473206163636f756e742e684d6f64657261746f7249644e6f744d617463684163636f756e740003048c4d6f64657261746f72206964206e6f74206d6174636820697473206163636f756e742e7c4163636f756e74446f65734e6f744d61746368546872656164417574686f7200040498546872656164206e6f7420617574686f7265642062792074686520676976656e20757365722e48546872656164446f65734e6f7445786973740005045454687265616420646f6573206e6f742065786973747c4d6f64657261746f724d6f6465726174654f726967696e43617465676f7279000604d04d6f64657261746f722063616e2774206d6f6465726174652063617465676f727920636f6e7461696e696e67207468726561642e904d6f64657261746f724d6f64657261746544657374696e6174696f6e43617465676f7279000704b84d6f64657261746f722063616e2774206d6f6465726174652064657374696e6174696f6e2063617465676f72792e445468726561644d6f7665496e76616c6964000804984f726967696e206973207468652073616d65206173207468652064657374696e6174696f6e2e545468726561644e6f744265696e675570646174656400090464546872656164206e6f74206265696e6720757064617465642e90496e73756666696369656e7442616c616e6365466f725468726561644372656174696f6e000a048c4e6f7420656e6f7567682062616c616e636520746f20637265617465207468726561649843616e6e6f7444656c657465546872656164576974684f75747374616e64696e67506f737473000b04c441207468726561642077697468206f75747374616e64696e6720706f7374732063616e6e6f742062652072656d6f76656440506f7374446f65734e6f744578697374000c0450506f737420646f6573206e6f742065786973742e744163636f756e74446f65734e6f744d61746368506f7374417574686f72000d048c4163636f756e7420646f6573206e6f74206d6174636820706f737420617574686f722e68496e73756666696369656e7442616c616e6365466f72506f7374000e04684e6f7420656e6f7567682062616c616e636520746f20706f73745c43617465676f72794e6f744265696e6755706461746564000f046c43617465676f7279206e6f74206265696e6720757064617465642e64416e636573746f7243617465676f7279496d6d757461626c65001004d4416e636573746f722063617465676f727920696d6d757461626c652c20692e652e2064656c65746564206f72206172636869766564744d617856616c696443617465676f727944657074684578636565646564001104984d6178696d756d2076616c69642063617465676f72792064657074682065786365656465642e5043617465676f7279446f65734e6f7445786973740012046043617465676f727920646f6573206e6f742065786973742e7443617465676f72794d6f64657261746f72446f65734e6f744578697374001304c850726f7669646564206d6f64657261746f72206973206e6f7420676976656e2063617465676f7279206d6f64657261746f725c43617465676f72794e6f74456d707479546872656164730014049443617465676f7279207374696c6c20636f6e7461696e7320736f6d6520746872656164732e6843617465676f72794e6f74456d70747943617465676f72696573001504ac43617465676f7279207374696c6c20636f6e7461696e7320736f6d652073756263617465676f726965732e6c4d6f64657261746f7243616e7444656c65746543617465676f7279001604884e6f207065726d697373696f6e7320746f2064656c6574652063617465676f72792e6c4d6f64657261746f7243616e7455706461746543617465676f7279001704884e6f207065726d697373696f6e7320746f207570646174652063617465676f72792e304d617053697a654c696d6974001804904d6178696d756d2073697a65206f662073746f72616765206d617020657863656564656484506174684c656e67746853686f756c644265477265617465725468616e5a65726f001904b443617465676f72792070617468206c656e2073686f756c642062652067726561746572207468616e207a65726f884d61784e756d6265724f66537469636b696564546872656164734578636565646564001a04e04d6178696d756d206e756d626572206f6620737469636b6965642074687265616473207065722063617465676f7279206578636565646564045c466f72756d20707265646566696e6564206572726f72736908084c70616c6c65745f636f6e737469747574696f6e40436f6e737469747574696f6e496e666f041048617368012c00040124746578745f686173682c01104861736800006d08083470616c6c65745f626f756e747930426f756e74795265636f7264101c42616c616e636501182c426c6f636b4e756d6265720110204d656d626572496401285c436c6f736564436f6e747261637457686974656c6973740171080014013c6372656174696f6e5f706172616d737508012501426f756e7479506172616d65746572733c42616c616e63652c20426c6f636b4e756d6265722c204d656d62657249642c20436c6f736564436f6e747261637457686974656c6973743e000134746f74616c5f66756e64696e6718011c42616c616e63650001246d696c6573746f6e657d080170426f756e74794d696c6573746f6e653c426c6f636b4e756d6265723e00015c6163746976655f776f726b5f656e7472795f636f756e7410010c7533320001606861735f756e706169645f6f7261636c655f726577617264980110626f6f6c000071080c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401280453000004006901012c42547265655365743c543e00007508083470616c6c65745f626f756e747940426f756e7479506172616d6574657273101c42616c616e636501182c426c6f636b4e756d6265720110204d656d626572496401285c436c6f736564436f6e747261637457686974656c697374017108001c01186f7261636c6579010154426f756e74794163746f723c4d656d62657249643e000134636f6e74726163745f74797065790801b84173737572616e6365436f6e7472616374547970653c436c6f736564436f6e747261637457686974656c6973743e00011c63726561746f7279010154426f756e74794163746f723c4d656d62657249643e00011863686572727918011c42616c616e63650001346f7261636c655f72657761726418011c42616c616e6365000134656e7472616e745f7374616b6518011c42616c616e636500013066756e64696e675f747970658101018446756e64696e67547970653c426c6f636b4e756d6265722c2042616c616e63653e00007908083470616c6c65745f626f756e7479544173737572616e6365436f6e747261637454797065045c436c6f736564436f6e747261637457686974656c6973740171080108104f70656e00000018436c6f73656404007108015c436c6f736564436f6e747261637457686974656c697374000100007d08083470616c6c65745f626f756e74793c426f756e74794d696c6573746f6e65042c426c6f636b4e756d626572011001141c43726561746564080128637265617465645f617410012c426c6f636b4e756d6265720001446861735f636f6e747269627574696f6e73980110626f6f6c0000005c426f756e74794d617846756e64696e675265616368656400010034576f726b5375626d6974746564000200285465726d696e61746564000300444a7564676d656e745375626d69747465640401447375636365737366756c5f626f756e7479980110626f6f6c00040000810800000408287901008508083470616c6c65745f626f756e747930436f6e747269627574696f6e0404540000080118616d6f756e7418013042616c616e63654f663c543e00017866756e6465725f73746174655f626c6f61745f626f6e645f616d6f756e7418013042616c616e63654f663c543e00008908083470616c6c65745f626f756e74792c456e7472795265636f72640c244163636f756e7449640100204d656d626572496401282c426c6f636b4e756d6265720110001001246d656d6265725f69642801204d656d62657249640001487374616b696e675f6163636f756e745f69640001244163636f756e7449640001307375626d69747465645f617410012c426c6f636b4e756d626572000138776f726b5f7375626d6974746564980110626f6f6c00008d08083470616c6c65745f626f756e7479144572726f7204045400018c3c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f7729b04d696e46756e64696e67416d6f756e7443616e6e6f744265477265617465725468616e4d6178416d6f756e74000104d44d696e2066756e64696e6720616d6f756e742063616e6e6f742062652067726561746572207468616e206d617820616d6f756e742e44426f756e7479446f65736e74457869737400020450426f756e747920646f65736e742065786973742e605377697463684f7261636c654f726967696e4973526f6f7400030489014f726967696e20697320726f6f742c20736f20737769746368696e67206f7261636c65206973206e6f7420616c6c6f77656420696e20746869732065787472696e7369632e202863616c6c207377697463685f6f7261636c655f61735f726f6f742974496e76616c69645374616765556e657870656374656446756e64696e67000404c8556e657870656374656420626f756e747920737461676520666f7220616e206f7065726174696f6e3a2046756e64696e672ea8496e76616c69645374616765556e65787065637465644e6f46756e64696e67436f6e7472696275746564000504fc556e657870656374656420626f756e747920737461676520666f7220616e206f7065726174696f6e3a204e6f46756e64696e67436f6e74726962757465642e7c496e76616c69645374616765556e657870656374656443616e63656c6c6564000604d0556e657870656374656420626f756e747920737461676520666f7220616e206f7065726174696f6e3a2043616e63656c6c65642e90496e76616c69645374616765556e6578706563746564576f726b5375626d697373696f6e000704e4556e657870656374656420626f756e747920737461676520666f7220616e206f7065726174696f6e3a20576f726b5375626d697373696f6e2e78496e76616c69645374616765556e65787065637465644a7564676d656e74000804cc556e657870656374656420626f756e747920737461676520666f7220616e206f7065726174696f6e3a204a7564676d656e742ec0496e76616c69645374616765556e65787065637465645375636365737366756c426f756e74795769746864726177616c0009041501556e657870656374656420626f756e747920737461676520666f7220616e206f7065726174696f6e3a205375636365737366756c426f756e74795769746864726177616c2eb0496e76616c69645374616765556e65787065637465644661696c6564426f756e74795769746864726177616c000a040501556e657870656374656420626f756e747920737461676520666f7220616e206f7065726174696f6e3a204661696c6564426f756e74795769746864726177616c2e70496e73756666696369656e7442616c616e6365466f72426f756e7479000b04a4496e73756666696369656e742062616c616e636520666f72206120626f756e7479206368657272792e644e6f426f756e7479436f6e747269627574696f6e466f756e64000c048443616e6e6f7420666f756e6420626f756e747920636f6e747269627574696f6e2e6c496e73756666696369656e7442616c616e6365466f725374616b65000d04a05468657265206973206e6f7420656e6f7567682062616c616e636520666f722061207374616b652e44436f6e666c696374696e675374616b6573000e04bc54686520636f6e666c696374696e67207374616b6520646973636f76657265642e2043616e6e6f74207374616b652e50576f726b456e747279446f65736e744578697374000f0460576f726b20656e74727920646f65736e742065786973742e704368657272794c6573735468656e4d696e696d756d416c6c6f77656400100484436865727279206c657373207468616e206d696e696d756d20616c6c6f7765642e9843616e6e6f745375626d6974576f726b546f436c6f736564436f6e7472616374426f756e74790011085101496e636f6d70617469626c65206173737572616e636520636f6e7472616374207479706520666f722061206d656d6265723a2063616e6e6f74207375626d697420776f726b20746f207468652027636c6f7365646c6173737572616e63652720626f756e747920636f6e74726163742e7c436c6f736564436f6e74726163744d656d6265724c6973744973456d707479001204290143616e6e6f742063726561746520612027636c6f736564206173737572616e636520636f6e74726163742720626f756e7479207769746820656d707479206d656d626572206c6973742e88436c6f736564436f6e74726163744d656d6265724c6973744973546f6f4c61726765001308290143616e6e6f742063726561746520612027636c6f736564206173737572616e636520636f6e74726163742720626f756e74792077697468206d656d626572206c697374206c6172676572887468616e20616c6c6f776564206d617820776f726b20656e747279206c696d69742e70436c6f736564436f6e74726163744d656d6265724e6f74466f756e64001404410127636c6f736564206173737572616e636520636f6e74726163742720626f756e7479206d656d626572206c6973742063616e206f6e6c7920696e636c756465206578697374696e67206d656d6265727354496e76616c69644f7261636c654d656d6265724964001504fc50726f7669646564206f7261636c65206d656d62657220696420646f6573206e6f742062656c6f6e6720746f20616e206578697374696e67206d656d62657278496e76616c69645374616b696e674163636f756e74466f724d656d626572001604ac5374616b696e67206163636f756e7420646f65736e27742062656c6f6e6720746f2061206d656d6265722e405a65726f57696e6e65725265776172640017048c43616e6e6f7420736574207a65726f2072657761726420666f722077696e6e6572732e98546f74616c52657761726453686f756c644265457175616c546f546f74616c46756e64696e67001804150154686520746f74616c2072657761726420666f722077696e6e6572732073686f756c6420626520657175616c20746f20746f74616c20626f756e74792066756e64696e672e74456e7472616e745374616b6549734c6573735468616e4d696e696e756d0019042d0143616e6e6f7420637265617465206120626f756e7479207769746820616e20656e7472616e74207374616b65206973206c657373207468616e207265717569726564206d696e696d756d2e6446756e64696e67416d6f756e7443616e6e6f7442655a65726f001a04e843616e6e6f7420637265617465206120626f756e74792077697468207a65726f2066756e64696e6720616d6f756e7420706172616d657465722e6446756e64696e67506572696f6443616e6e6f7442655a65726f001b04e843616e6e6f7420637265617465206120626f756e74792077697468207a65726f2066756e64696e6720706572696f6420706172616d657465722e7457696e6e657253686f756c64486173576f726b5375626d697373696f6e001c04f0496e76616c6964206a7564676d656e74202d20616c6c2077696e6e6572732073686f756c64206861766520776f726b207375626d697373696f6e732e80496e76616c6964436f6e7472696275746f724163746f72537065636966696564001d0470426f756e747920636f6e7472696275746f72206e6f7420666f756e646c496e76616c69644f7261636c654163746f72537065636966696564001e045c426f756e7479206f7261636c65206e6f7420666f756e6474496e76616c6964456e7472616e74576f726b6572537065636966696564001f04a44d656d62657220737065636966696564206973206e6f7420616e20656e7472616e7420776f726b657270496e76616c696443726561746f724163746f72537065636966696564002004a8496e76616c69642043726561746f72204163746f7220666f7220426f756e74792073706563696669656474576f726b456e747279446f65736e7442656c6f6e67546f576f726b6572002104f8576f726b657220747269656420746f20616363657373206120776f726b20656e747279207468617420646f65736e27742062656c6f6e6720746f2068696d704f7261636c65526577617264416c726561647957697468647261776e002204884f7261636c65206861766520616c7265616479206265656e2077697468647261776e047c426f756e74792070616c6c657420707265646566696e6564206572726f72739108083870616c6c65745f7574696c697479144572726f7204045400010c80496e73756666696369656e7446756e6473466f724275646765745570646174650000041d01496e73756666696369656e742066756e647320666f72202755706461746520576f726b696e672047726f757020427564676574272070726f706f73616c20657865637574696f6e385a65726f546f6b656e734275726e00010468547279696e6720746f206275726e207a65726f20746f6b656e7360496e73756666696369656e7446756e6473466f724275726e00020478496e73756666696369656e742066756e647320666f72206275726e696e670478436f646578206d6f64756c6520707265646566696e6564206572726f727395080c3870616c6c65745f636f6e74656e741474797065732c566964656f5265636f726410244368616e6e656c49640128204f776e65644e667401990838566964656f41737365747353657401b90848526570617961626c65426c6f6174426f6e6401e10100100128696e5f6368616e6e656c2801244368616e6e656c49640001286e66745f737461747573bd0801404f7074696f6e3c4f776e65644e66743e000130646174615f6f626a65637473b9080138566964656f417373657473536574000158766964656f5f73746174655f626c6f61745f626f6e64e1010148526570617961626c65426c6f6174426f6e6400009908103870616c6c65745f636f6e74656e740c6e6674147479706573204f776e65644e66740c4c5472616e73616374696f6e616c537461747573019d08204d656d626572496401282441756374696f6e49640128001001146f776e6572b50801484e66744f776e65723c4d656d62657249643e0001507472616e73616374696f6e616c5f7374617475739d08014c5472616e73616374696f6e616c53746174757300013c63726561746f725f726f79616c74791102013c4f7074696f6e3c526f79616c74793e00014c6f70656e5f61756374696f6e735f6e6f6e636528012441756374696f6e496400009d08103870616c6c65745f636f6e74656e740c6e6674147479706573645472616e73616374696f6e616c5374617475735265636f726410204d656d626572496401281c42616c616e6365011848456e676c69736841756374696f6e5479706501a1083c4f70656e41756374696f6e5479706501b10801141049646c6500000058496e697469617465644f66666572546f4d656d62657208002801204d656d626572496400004501013c4f7074696f6e3c42616c616e63653e00010038456e676c69736841756374696f6e0400a1080148456e676c69736841756374696f6e547970650002002c4f70656e41756374696f6e0400b108013c4f70656e41756374696f6e54797065000300184275794e6f77040018011c42616c616e636500040000a108103870616c6c65745f636f6e74656e740c6e667414747970657350456e676c69736841756374696f6e5265636f7264102c426c6f636b4e756d62657201101c42616c616e63650118204d656d626572496401284c4e667441756374696f6e57686974656c69737401a508002001387374617274696e675f707269636518011c42616c616e63650001346275795f6e6f775f70726963654501013c4f7074696f6e3c42616c616e63653e00012477686974656c697374a508014c4e667441756374696f6e57686974656c69737400010c656e6410012c426c6f636b4e756d626572000114737461727410012c426c6f636b4e756d626572000140657874656e73696f6e5f706572696f6410012c426c6f636b4e756d6265720001306d696e5f6269645f7374657018011c42616c616e636500011c746f705f626964a90801b04f7074696f6e3c456e676c69736841756374696f6e4269643c42616c616e63652c204d656d62657249643e3e0000a5080c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401280453000004006901012c42547265655365743c543e0000a90804184f7074696f6e04045401ad080108104e6f6e6500000010536f6d650400ad080000010000ad08103870616c6c65745f636f6e74656e740c6e667414747970657344456e676c69736841756374696f6e426964081c42616c616e63650118204d656d6265724964012800080118616d6f756e7418011c42616c616e63650001246269646465725f69642801204d656d62657249640000b108103870616c6c65745f636f6e74656e740c6e6674147479706573444f70656e41756374696f6e5265636f7264102c426c6f636b4e756d62657201102441756374696f6e496401281c42616c616e636501184c4e667441756374696f6e57686974656c69737401a508001801387374617274696e675f707269636518011c42616c616e63650001346275795f6e6f775f70726963654501013c4f7074696f6e3c42616c616e63653e00012477686974656c697374a508014c4e667441756374696f6e57686974656c6973740001446269645f6c6f636b5f6475726174696f6e10012c426c6f636b4e756d62657200012861756374696f6e5f696428012441756374696f6e4964000114737461727410012c426c6f636b4e756d6265720000b508103870616c6c65745f636f6e74656e740c6e6674147479706573204e66744f776e657204204d656d626572496401280108304368616e6e656c4f776e6572000000184d656d62657204002801204d656d626572496400010000b9080c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401280453000004006901012c42547265655365743c543e0000bd0804184f7074696f6e0404540199080108104e6f6e6500000010536f6d65040099080000010000c108103870616c6c65745f636f6e74656e742c7065726d697373696f6e733463757261746f725f67726f75704843757261746f7247726f75705265636f7264085c43757261746f7247726f757043757261746f72734d617001c508704d6f6465726174696f6e5065726d697373696f6e7342794c6576656c01c908000c012063757261746f7273c508015c43757261746f7247726f757043757261746f72734d6170000118616374697665980110626f6f6c0001507065726d697373696f6e735f62795f6c6576656cc90801704d6f6465726174696f6e5065726d697373696f6e7342794c6576656c0000c5080c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b0128045601b501045300000400c501013842547265654d61703c4b2c20563e0000c9080c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b0108045601cd08045300000400d108013842547265654d61703c4b2c20563e0000cd080c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e6465644254726565536574080454015d020453000004005902012c42547265655365743c543e0000d108042042547265654d617008044b0108045601cd08000400d508000000d508000002d90800d9080000040808cd0800dd08103870616c6c65745f636f6e74656e740c6e6674147479706573504f70656e41756374696f6e4269645265636f72640c1c42616c616e636501182c426c6f636b4e756d62657201102441756374696f6e49640128000c0118616d6f756e7418011c42616c616e63650001346d6164655f61745f626c6f636b10012c426c6f636b4e756d62657200012861756374696f6e5f696428012441756374696f6e49640000e1080c3870616c6c65745f636f6e74656e74186572726f7273144572726f7204045400010102704368616e6e656c5374617465426c6f6174426f6e644368616e676564000004e4496e76616c69642065787472696e7369632063616c6c3a204368616e6e656c20737461746520626c6f617420626f6e64206368616e6765642e68566964656f5374617465426c6f6174426f6e644368616e676564000104dc496e76616c69642065787472696e7369632063616c6c3a20766964656f20737461746520626c6f617420626f6e64206368616e6765642e544d696e436173686f757456616c7565546f6f4c6f77000204d8417474656d707420746f20736574206d696e696d756d20636173686f757420616c6c6f7765642062656c6f7720746865206c696d6974584d6178436173686f757456616c7565546f6f48696768000304d8417474656d707420746f20736574206d696e696d756d20636173686f757420616c6c6f7765642061626f766520746865206c696d69749c4d61784e756d6265724f664368616e6e656c436f6c6c61626f7261746f7273457863656564656400040429014e756d626572206f66206368616e6e656c20636f6c6c61626f7261746f72732065786365656473204d61784e756d6265724f66436f6c6c61626f7261746f72735065724368616e6e656c804d61784e756d6265724f664368616e6e656c4173736574734578636565646564000504f04e756d626572206f66206368616e6e656c206173736574732065786365656473204d61784e756d6265724f664173736574735065724368616e6e656c784d61784e756d6265724f66566964656f4173736574734578636565646564000604ec4e756d626572206f6620766964656f206173736574732065786365656473204d61784d61784e756d6265724f66417373657473506572566964656fa84d61784e756d6265724f664368616e6e656c4167656e745065726d697373696f6e73457863656564656400070419014d6178696d756d206e756d626572206f66206368616e6e656c206167656e74207065726d697373696f6e7320666f72206368616e6e656c206167656e74206578636565646564ac4d61784e756d6265724f6650617573656446656174757265735065724368616e6e656c4578636565646564000804d84d6178696d756d206e756d626572206f662070617573656420666561747572657320706572206368616e6e656c20657863656564656480496e76616c69644368616e6e656c4261675769746e65737350726f766964656400090411014368616e6e656c20626167207769746e65737320706172616d657465727320646f6e2774206d61746368207468652063757272656e742072756e74696d652073746174659c496e76616c696453746f726167654275636b6574734e756d5769746e65737350726f7669646564000a04450153746f72616765206275636b657473206e756d626572207769746e65737320706172616d6574657220646f6573206e6f74206d61746368207468652063757272656e742072756e74696d652073746174657c4d697373696e6753746f726167654275636b6574734e756d5769746e657373000b084d0153746f72616765206275636b657473206e756d626572207769746e65737320706172616d65746572206d7573742062652070726f7669646564207768656e206368616e6e656c2f766964656f2061737365747348617265206265696e6720757064617465642e784368616e6e656c4f776e65724d656d626572446f65734e6f744578697374000c04b850726f7669646564206368616e6e656c206f776e657220286d656d6265722920646f6573206e6f74206578697374904368616e6e656c4f776e657243757261746f7247726f7570446f65734e6f744578697374000d04d450726f7669646564206368616e6e656c206f776e6572202863757261746f722067726f75702920646f6573206e6f74206578697374b04368616e6e656c5374617465426c6f6174426f6e6442656c6f774578697374656e7469616c4465706f736974000e0809014368616e6e656c20737461746520626c6f617420626f6e642063616e6e6f74206265206c6f776572207468616e206578697374656e7469616c206465706f7369742c050162656361757365206974206d7573742073656375726520746865206368616e6e656c206d6f64756c65206163636f756e7420616761696e73742064757374696e67704e756d6265724f66417373657473546f52656d6f766549735a65726f000f04a90144656c657465206368616e6e656c20616e642061737365747320616e642064656c65746520766964656f20617373657473206d75737420686176652061206e756d626572206f662061737365747320746f2072656d6f76652067726561746572207468616e207a65726f9843757261746f7249734e6f74414d656d6265724f66476976656e43757261746f7247726f7570001004450143757261746f7220756e6465722070726f76696465642063757261746f72206964206973206e6f742061206d656d626572206f662063757261726f722067726f757020756e64657220676976656e206964a843757261746f724973416c7265616479414d656d6265724f66476976656e43757261746f7247726f7570001104550143757261746f7220756e6465722070726f76696465642063757261746f7220696420697320616c72656164792061206d656d626572206f662063757261726f722067726f757020756e64657220676976656e2069646043757261746f7247726f7570446f65734e6f74457869737400120488476976656e2063757261746f722067726f757020646f6573206e6f742065786973747043757261746f727350657247726f75704c696d697452656163686564001304b84d6178206e756d626572206f662063757261746f7273207065722067726f7570206c696d697420726561636865645c43757261746f7247726f757049734e6f744163746976650014046c43757261746f722067726f7570206973206e6f74206163746976654043757261746f724964496e76616c6964001504d843757261746f72206964206973206e6f74206120776f726b657220696420696e20636f6e74656e7420776f726b696e672067726f7570384c656164417574684661696c6564001604684c6561642061757468656e7469636174696f6e206661696c6564404d656d626572417574684661696c6564001704704d656d6265722061757468656e7469636174696f6e206661696c65644443757261746f72417574684661696c65640018047443757261746f722061757468656e7469636174696f6e206661696c6564244261644f726967696e00190478457870656374656420726f6f74206f72207369676e6564206f726967696e484163746f724e6f74417574686f72697a6564001a04b04f7065726174696f6e2063616e6e6f7420626520706572666f6d656420776974682074686973204163746f725043617465676f7279446f65734e6f744578697374001b04ac41204368616e6e656c206f7220566964656f2043617465676f727920646f6573206e6f742065786973742e4c4368616e6e656c446f65734e6f744578697374001c04584368616e6e656c20646f6573206e6f7420657869737444566964656f446f65734e6f744578697374001d0450566964656f20646f6573206e6f7420657869737434566964656f496e536561736f6e001e04f4566664656f20696e20736561736f6e2063616e60742062652072656d6f766564202862656361757365206f7264657220697320696d706f7274616e7429444163746f7243616e6e6f7442654c656164001f04c84163746f722063616e6e6f7420617574686f72697a65206173206c65616420666f7220676976656e2065787472696e736963544163746f7243616e6e6f744f776e4368616e6e656c002004604163746f722063616e6e6f74204f776e206368616e6e656c604e6674416c72656164794f776e656442794368616e6e656c002104a4417474656d707420746f20736c696e67206261636b2061206368616e6e656c206f776e6564206e6674404e6674416c7265616479457869737473002204944e667420666f7220676976656e20766964656f20696420616c7265616479206578697374733c4e6674446f65734e6f744578697374002304944e667420666f7220676976656e20766964656f20696420646f6573206e6f742065786973746c4f766572666c6f774f72556e646572666c6f7748617070656e6564002404904f766572666c6f77206f7220756e646572666c6f77206572726f722068617070656e656434446f65734e6f744f776e4e667400250474476976656e206f726967696e20646f6573206e6f74206f776e206e667464526f79616c74795570706572426f756e64457863656564656400260470526f79616c747920557070657220426f756e6420457863656564656464526f79616c74794c6f776572426f756e64457863656564656400270470526f79616c7479204c6f77657220426f756e642045786365656465648441756374696f6e4475726174696f6e5570706572426f756e6445786365656465640028049441756374696f6e206475726174696f6e20757070657220626f756e642065786365656465648441756374696f6e4475726174696f6e4c6f776572426f756e6445786365656465640029049441756374696f6e206475726174696f6e206c6f77657220626f756e6420657863656564656484457874656e73696f6e506572696f645570706572426f756e644578636565646564002a04b441756374696f6e20657874656e73696f6e20706572696f6420757070657220626f756e6420657863656564656484457874656e73696f6e506572696f644c6f776572426f756e644578636565646564002b04b441756374696f6e20657874656e73696f6e20706572696f64206c6f77657220626f756e64206578636565646564844269644c6f636b4475726174696f6e5570706572426f756e644578636565646564002c0498426964206c6f636b206475726174696f6e20757070657220626f756e64206578636565646564844269644c6f636b4475726174696f6e4c6f776572426f756e644578636565646564002d0498426964206c6f636b206475726174696f6e206c6f77657220626f756e642065786365656465647c5374617274696e6750726963655570706572426f756e644578636565646564002e048c5374617274696e6720707269636520757070657220626f756e642065786365656465647c5374617274696e6750726963654c6f776572426f756e644578636565646564002f048c5374617274696e67207072696365206c6f77657220626f756e642065786365656465648041756374696f6e426964537465705570706572426f756e6445786365656465640030049441756374696f6e20626964207374657020757070657220626f756e642065786365656465648041756374696f6e426964537465704c6f776572426f756e6445786365656465640031049441756374696f6e206269642073746570206c6f77657220626f756e642065786365656465644c496e73756666696369656e7442616c616e636500320450496e73756666696369656e742062616c616e63656442696453746570436f6e73747261696e7456696f6c61746564003304b44d696e696d616c2061756374696f6e20626964207374657020636f6e73747261696e742076696f6c617465642e64496e76616c6964426964416d6f756e7453706563696669656400340488436f6d6d697420766572696669636174696f6e20666f722062696420616d6f756e747c5374617274696e675072696365436f6e73747261696e7456696f6c61746564003504ac41756374696f6e207374617274696e6720707269636520636f6e73747261696e742076696f6c617465642e50416374696f6e48617342696473416c7265616479003604a8416c7265616479206163746976652061756374696f6e2063616e6e6f742062652063616e63656c6c6564304e667449734e6f7449646c65003704990143616e206e6f74206372656174652061756374696f6e20666f72204e66742c2069662061756374696f6e2068617665206265656e20616c72656164792073746172746564206f72206e6674206973206c6f636b656420666f7220746865207472616e736665726050656e64696e674f66666572446f65734e6f7445786973740038047c4e6f2070656e64696e67206f666665727320666f7220676976656e204e6674545265776172644163636f756e7449734e6f74536574003904c843726561746f7220726f79616c747920726571756972657320726577617264206163636f756e7420746f206265207365742e404163746f7249734e6f74426964646572003a04684163746f72206973206e6f742061206c617374206269646465726041756374696f6e43616e6e6f744265436f6d706c65746564003b046c41756374696f6e2063616e6e6f7420626520636f6d706c657465643c426964446f65734e6f744578697374003c046841756374696f6e20646f6573206e6f74206861766520626964734c4269644973466f725061737441756374696f6e003d049453656c65637465642042696420697320666f722070617374206f70656e2061756374696f6e6853746172747341744c6f776572426f756e644578636565646564003e049841756374696f6e20737461727473206174206c6f77657220626f756e642065786365656465646853746172747341745570706572426f756e644578636565646564003f049841756374696f6e2073746172747320617420757070657220626f756e642065786365656465644841756374696f6e4469644e6f7453746172740040045c41756374696f6e20646964206e6f742073746172746564444e6f74496e41756374696f6e53746174650041046c4e6674206973206e6f7420696e2061756374696f6e2073746174657c4d656d62657249734e6f74416c6c6f776564546f5061727469636970617465004204bc4d656d626572206973206e6f7420616c6c6f77656420746f20706172746963697061746520696e2061756374696f6e544d656d62657250726f66696c654e6f74466f756e64004304604d656d6265722070726f66696c65206e6f7420666f756e644c4e66744e6f74496e4275794e6f7753746174650044049c476976656e20766964656f206e6674206973206e6f7420696e20627579206e6f7720737461746584496e76616c69644275794e6f775769746e657373507269636550726f76696465640045045501607769746e6573735f7072696365602070726f766964656420746f20606275795f6e6f77602065787472696e73696320646f6573206e6f74206d61746368207468652063757272656e742073656c6c2070726963655049734e6f744f70656e41756374696f6e547970650046046841756374696f6e2074797065206973206e6f7420604f70656e605c49734e6f74456e676c69736841756374696f6e547970650047047441756374696f6e2074797065206973206e6f742060456e676c697368606c4269644c6f636b4475726174696f6e49734e6f744578706972656400480480426964206c6f636b206475726174696f6e206973206e6f742065787069726564684e667441756374696f6e4973416c726561647945787069726564004904784e66742061756374696f6e20697320616c72656164792065787069726564904275794e6f774d7573744265477265617465725468616e5374617274696e675072696365004a04ac41756374696f6e20627579206e6f77206973206c657373207468656e207374617274696e67207072696365605461726765744d656d626572446f65734e6f744578697374004b04984e6674206f6666657220746172676574206d656d62657220646f6573206e6f742065786973748c496e76616c69644e66744f666665725769746e657373507269636550726f7669646564004c040d0143757272656e74206e6674206f6666657220707269636520646f6573206e6f74206d61746368207468652070726f766964656420607769746e6573735f707269636560ac4d617841756374696f6e57686974654c6973744c656e6774685570706572426f756e644578636565646564004d04c44d61782061756374696f6e2077686974656c697374206c656e67746820757070657220626f756e642065786365656465646457686974656c6973744861734f6e6c794f6e654d656d626572004e049441756374696f6e2077686974656c69737420686173206f6e6c79206f6e65206d656d6265727457686974656c69737465644d656d626572446f65734e6f744578697374004f04d84174206c65617374206f6e65206f66207468652077686974656c6973746564206d656d6265727320646f6573206e6f74206578697374784e66744e6f6e4368616e6e656c4f776e6572446f65734e6f744578697374005004f84e6f6e2d6368616e6e656c206f776e65722073706563696669656420647572696e67206e66742069737375616e636520646f6573206e6f74206578697374ac457874656e73696f6e506572696f644973477265617465725468656e41756374696f6e4475726174696f6e005104c4457874656e73696f6e20706572696f642069732067726561746572207468656e2061756374696f6e206475726174696f6e444e6f417373657473537065636966696564005204ac4e6f2061737365747320746f2062652072656d6f7665642068617665206265656e2073706563696669656454496e76616c696441737365747350726f7669646564005304684368616e6e656c2061737365747320666561736962696c697479544368616e6e656c436f6e7461696e73566964656f73005404584368616e6e656c20436f6e7461696e7320566964656f544368616e6e656c436f6e7461696e734173736574730055045c4368616e6e656c20436f6e7461696e73204173736574735c496e76616c696442616753697a655370656369666965640056047c4261672053697a6520737065636966696564206973206e6f742076616c6964504d6967726174696f6e4e6f7446696e6973686564005704584d6967726174696f6e206e6f7420646f6e6520796574445265706c79446f65734e6f7445786973740058046c5061727465636970616e74206973206e6f742061206d656d6265724c556e73756666696369656e7442616c616e636500590450496e73756666696369656e742062616c616e63656c496e73756666696369656e74547265617375727942616c616e6365005a0474496e73756666696369656e742074726561737572792062616c616e636554496e76616c69644d656d62657250726f7669646564005b0470496e76616c6964206d656d62657220696420207370656369666965643c4163746f724e6f74414d656d626572005c04544163746f72206973206e6f742041204d656d626572785061796d656e7450726f6f66566572696669636174696f6e4661696c6564005d04845061796d656e742050726f6f6620766572696669636174696f6e206661696c656484436173686f7574416d6f756e74457863656564734d6178696d756d416d6f756e74005e04c04368616e6e656c20636173686f757420616d6f756e7420697320746f6f206869676820746f20626520636c61696d65647c436173686f7574416d6f756e7442656c6f774d696e696d756d416d6f756e74005f04bc4368616e6e656c20636173686f757420616d6f756e7420697320746f6f206c6f7720746f20626520636c61696d6564e05769746864726177616c416d6f756e74457863656564734368616e6e656c4163636f756e74576974686472617761626c6542616c616e63650060085901416e20617474656d707420746f2077697468647261772066756e64732066726f6d206368616e6e656c206163636f756e74206661696c65642c2062656361757365207468652073706563696669656420616d6f756e744901657863656564732074686520776974686472617761626c6520616d6f756e7420286368616e6e656c206163636f756e742062616c616e6365206d696e7573206368616e6e656c20626c6f617420626f6e64297c576974686472617746726f6d4368616e6e656c416d6f756e7449735a65726f0061085901416e20617474656d707420746f2077697468647261772066756e64732066726f6d206368616e6e656c206163636f756e74206661696c65642c2062656361757365207468652073706563696669656420616d6f756e741c6973207a65726f5c4368616e6e656c436173686f75747344697361626c65640062049c4368616e6e656c20636173686f757473206172652063757272656e746c792064697361626c6564a44d696e436173686f7574416c6c6f776564457863656564734d6178436173686f7574416c6c6f77656400630809014e65772076616c75657320666f72206d696e5f636173686f75745f616c6c6f7765642f6d61785f636173686f75745f616c6c6f7765642061726520696e76616c6964d46d696e5f636173686f75745f616c6c6f7765642063616e6e6f7420657863656564206d61785f636173686f75745f616c6c6f7765648443757261746f724d6f6465726174696f6e416374696f6e4e6f74416c6c6f776564006404110143757261746f7220646f6573206e6f742068617665207065726d697373696f6e7320746f20706572666f726d20676976656e206d6f6465726174696f6e20616374696f6e944d617843757261746f725065726d697373696f6e735065724c6576656c457863656564656400650441014d6178696d756d206e756d626572206f662063757261746f72207065726d697373696f6e732070657220676976656e206368616e6e656c2070726976696c656765206c6576656c206578636565646564c043757261746f7247726f75704d61785065726d697373696f6e7342794c6576656c4d617053697a654578636565646564006604290143757261746f722067726f75702773207065726d697373696f6e73206279206c6576656c206d617020657863656564656420746865206d6178696d756d20616c6c6f7765642073697a65504368616e6e656c466561747572655061757365640067045d014f7065726174696f6e2063616e6e6f742062652065786563757465642c20626563617573652074686973206368616e6e656c206665617475726520686173206265656e2070617573656420627920612063757261746f72444368616e6e656c4261674d697373696e670068042d01556e65787065637465642072756e74696d652073746174653a206d697373696e67206368616e6e656c2062616720647572696e672064656c6574655f6368616e6e656c20617474656d70748c417373657473546f52656d6f76654265796f6e64456e74697479417373657473536574006904f5014c697374206f662061737365747320746f2072656d6f76652070726f766964656420666f72207570646174655f6368616e6e656c202f207570646174655f766964656f20636f6e7461696e7320617373657473207468617420646f6e27742062656c6f6e6720746f207468652073706563696669656420656e7469747990496e76616c6964566964656f446174614f626a65637473436f756e7450726f7669646564006a04f4496e76616c6964206e756d626572206f66206f626a6563747320746f2064656c6574652070726f766964656420666f722064656c6574655f766964656f70496e76616c69644368616e6e656c5472616e73666572537461747573006b04bc496e76616c6964206368616e6e656c207472616e736665722073746174757320666f72206f7065726174696f6e732e78496e76616c69644368616e6e656c5472616e736665724163636570746f72006c04d4496e636f7272656374206163746f7220747269657320746f2061636365707420746865206368616e6e656c207472616e736665722e98496e76616c69644368616e6e656c5472616e73666572436f6d6d69746d656e74506172616d73006d08550143616e6e6f742061636365707420746865206368616e6e656c207472616e736665723a2070726f766964656420636f6d6d69746d656e7420706172616d657465727320646f65736e2774206d617463682077697468906368616e6e656c2070656e64696e67207472616e7366657220706172616d65746572732e8c4368616e6e656c4167656e74496e73756666696369656e745065726d697373696f6e73006e004c496e76616c69644368616e6e656c4f776e6572006f04a4496e636f7272656374206368616e6e656c206f776e657220666f7220616e206f7065726174696f6e2e285a65726f5265776172640070046443616e6e6f7420636c61696d207a65726f207265776172642e78496e73756666696369656e7442616c616e6365466f725472616e73666572007104510143616e6e6f74207472616e7366657220746865206368616e6e656c3a206368616e6e656c206f776e65722068617320696e73756666696369656e742062616c616e6365202862756467657420666f72205747732994496e73756666696369656e7442616c616e6365466f724368616e6e656c4372656174696f6e0072080d0143616e6e6f742063726561746520746865206368616e6e656c3a206368616e6e656c2063726561746f722068617320696e73756666696369656e742062616c616e6365e9012862756467657420666f72206368616e6e656c20737461746520626c6f617420626f6e64202b206368616e6e656c2064617461206f626a7320737461746520626c6f617420626f6e6473202b2064617461206f626a732073746f726167652066656573202b206578697374656e7469616c206465706f736974298c496e73756666696369656e7442616c616e6365466f72566964656f4372656174696f6e007308fc43616e6e6f74206372656174652074686520766964656f3a20766964656f2063726561746f722068617320696e73756666696369656e742062616c616e6365d9012862756467657420666f7220766964656f20737461746520626c6f617420626f6e64202b20766964656f2064617461206f626a7320737461746520626c6f617420626f6e6473202b2064617461206f626a732073746f726167652066656573202b206578697374656e7469616c206465706f7369742964496e73756666696369656e74436f756e63696c4275646765740074006c476c6f62616c4e66744461696c794c696d6974457863656564656400750070476c6f62616c4e66745765656b6c794c696d69744578636565646564007600704368616e6e656c4e66744461696c794c696d69744578636565646564007700744368616e6e656c4e66745765656b6c794c696d697445786365656465640078006443726561746f72546f6b656e416c7265616479497373756564007904c443726561746f7220746f6b656e2077617320616c72656164792069737375656420666f722074686973206368616e6e656c5443726561746f72546f6b656e4e6f74497373756564007a04b043726561746f7220746f6b656e207761736e27742069737375656420666f722074686973206368616e6e656c884d656d6265724964436f756c644e6f7442654465726976656446726f6d4163746f72007b0415014d656d62657220696420636f756c64206e6f7420626520646572697665642066726f6d207468652070726f766964656420436f6e74656e744163746f7220636f6e74657874bc43616e6e6f74576974686472617746726f6d4368616e6e656c5769746843726561746f72546f6b656e497373756564007c08290143616e6e6f74206469726563746c792077697468647261772066756e64732066726f6d2061206368616e6e656c206163636f756e74207768656e20746865206368616e6e656c2068617358612063726561746f7220746f6b656e20697373756564bc506174726f6e61676543616e4f6e6c794265436c61696d6564466f724d656d6265724f776e65644368616e6e656c73007d04f4506174726f6e6167652063616e206f6e6c7920626520636c61696d6564206966206368616e6e656c206973206f776e65642062792061206d656d626572a84368616e6e656c5472616e7366657273426c6f636b6564447572696e67526576656e756553706c697473007e04cc4368616e6e656c205472616e73666572732061726520626c6f636b656420647572696e6720726576656e75652073706c6974739c4368616e6e656c5472616e7366657273426c6f636b6564447572696e67546f6b656e53616c6573007f04c04368616e6e656c205472616e73666572732061726520626c6f636b656420647572696e6720746f6b656e2073616c65730460436f6e74656e74206469726563746f7279206572726f7273e508083870616c6c65745f73746f72616765244261675265636f7264084c53746f726167654275636b657449647353657401e90860446973747269627574696f6e4275636b657449647353657401ed080010012473746f7265645f6279e908014c53746f726167654275636b657449647353657400013864697374726962757465645f6279ed080160446973747269627574696f6e4275636b65744964735365740001486f626a656374735f746f74616c5f73697a6528010c7536340001386f626a656374735f6e756d62657228010c7536340000e9080c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401280453000004006901012c42547265655365743c543e0000ed080c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e64656442547265655365740804540125020453000004003902012c42547265655365743c543e0000f108083870616c6c65745f73746f726167654c53746f726167654275636b65745265636f72640820576f726b657249640128244163636f756e74496401000010013c6f70657261746f725f737461747573f50801c053746f726167654275636b65744f70657261746f725374617475733c576f726b657249642c204163636f756e7449643e000148616363657074696e675f6e65775f62616773980110626f6f6c00011c766f7563686572ad02011c566f756368657200013461737369676e65645f6261677328010c7536340000f508083870616c6c65745f73746f726167656c53746f726167654275636b65744f70657261746f725374617475730820576f726b657249640128244163636f756e7449640100010c1c4d697373696e6700000050496e766974656453746f72616765576f726b65720400280120576f726b657249640001003453746f72616765576f726b65720800280120576f726b6572496400000001244163636f756e74496400020000f9080c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003001185665633c543e0000fd08083870616c6c65745f73746f726167656044796e616d69634261674372656174696f6e506f6c69637904b0446973747269627574696f6e4275636b657446616d696c79546f4e756d6265724f664275636b6574734d6170010109000801646e756d6265725f6f665f73746f726167655f6275636b65747310010c75333200012066616d696c696573010901b0446973747269627574696f6e4275636b657446616d696c79546f4e756d6265724f664275636b6574734d6170000001090c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b012804560110045300000400b502013842547265654d61703c4b2c20563e0000050900000408950228000909083870616c6c65745f73746f7261676528446174614f626a6563740448526570617961626c65426c6f6174426f6e6401e101001001206163636570746564980110626f6f6c00014073746174655f626c6f61745f626f6e64e1010148526570617961626c65426c6f6174426f6e6400011073697a6528010c75363400013c697066735f636f6e74656e745f6964f908013c4261736535384d756c74696861736800000d09083870616c6c65745f73746f7261676578446973747269627574696f6e4275636b657446616d696c795265636f7264045c446973747269627574696f6e4275636b6574496e6465780128000401786e6578745f646973747269627574696f6e5f6275636b65745f696e64657828015c446973747269627574696f6e4275636b6574496e64657800001109083870616c6c65745f73746f7261676560446973747269627574696f6e4275636b65745265636f72640888446973747269627574696f6e4275636b6574496e76697465644f70657261746f72730115096c446973747269627574696f6e4275636b65744f70657261746f727301190900140148616363657074696e675f6e65775f62616773980110626f6f6c000130646973747269627574696e67980110626f6f6c00014c70656e64696e675f696e7669746174696f6e7315090188446973747269627574696f6e4275636b6574496e76697465644f70657261746f72730001246f70657261746f72731909016c446973747269627574696f6e4275636b65744f70657261746f727300013461737369676e65645f6261677328010c753634000015090c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401280453000004006901012c42547265655365743c543e000019090c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401280453000004006901012c42547265655365743c543e00001d09083870616c6c65745f73746f72616765144572726f72040454000105013c41726974686d657469634572726f72000004f447656e657269632041726974686d65746963204572726f722064756520746f20696e7465726e616c206163636f756e74696e67206f7065726174696f6e40496e76616c69644369644c656e67746800010494496e76616c696420434944206c656e67746820286d75737420626520343620627974657329444e6f4f626a656374734f6e55706c6f6164000204a0456d707479202264617461206f626a656374206372656174696f6e2220636f6c6c656374696f6e2e6053746f726167654275636b6574446f65736e744578697374000304ac546865207265717565737465642073746f72616765206275636b657420646f65736e27742065786973742e7053746f726167654275636b657449734e6f74426f756e64546f426167000404cc546865207265717565737465642073746f72616765206275636b6574206973206e6f7420626f756e6420746f2061206261672e6453746f726167654275636b65744973426f756e64546f426167000504dc546865207265717565737465642073746f72616765206275636b657420697320616c726561647920626f756e6420746f2061206261672e644e6f53746f726167654275636b6574496e7669746174696f6e0006041901496e76616c6964206f7065726174696f6e207769746820696e76697465733a207468657265206973206e6f2073746f72616765206275636b657420696e7669746174696f6e2e6453746f7261676550726f7669646572416c72656164795365740007040501496e76616c6964206f7065726174696f6e207769746820696e76697465733a2073746f726167652070726f76696465722077617320616c7265616479207365742e6053746f7261676550726f76696465724d75737442655365740008047453746f726167652070726f7669646572206d757374206265207365742e7c446966666572656e7453746f7261676550726f7669646572496e76697465640009041501496e76616c6964206f7065726174696f6e207769746820696e76697465733a20616e6f746865722073746f726167652070726f76696465722077617320696e76697465642e58496e766974656453746f7261676550726f7669646572000a041501496e76616c6964206f7065726174696f6e207769746820696e76697465733a2073746f726167652070726f76696465722077617320616c726561647920696e76697465642e8853746f726167654275636b65744964436f6c6c656374696f6e73417265456d707479000b04a053746f72616765206275636b657420696420636f6c6c656374696f6e732061726520656d7074792ed053746f726167654275636b6574734e756d62657256696f6c6174657344796e616d69634261674372656174696f6e506f6c696379000c08290153746f72616765206275636b657420696420636f6c6c656374696f6e2070726f766964656420636f6e747261646963747320746865206578697374696e672064796e616d696320626167406372656174696f6e20706f6c6963792ecc446973747269627574696f6e4275636b65747356696f6c6174657344796e616d69634261674372656174696f6e506f6c696379000d083d01446973747269627574696f6e206275636b657420696420636f6c6c656374696f6e2070726f766964656420636f6e747261646963747320746865206578697374696e672064796e616d696320626167406372656174696f6e20706f6c6963792e38456d707479436f6e74656e744964000e04b455706c6f61642064617461206572726f723a20656d70747920636f6e74656e742049442070726f76696465642e385a65726f4f626a65637453697a65000f049055706c6f61642064617461206572726f723a207a65726f206f626a6563742073697a652e88496e76616c69645374617465426c6f6174426f6e64536f757263654163636f756e74001004ec55706c6f61642064617461206572726f723a20696e76616c696420737461746520626c6f617420626f6e6420736f75726365206163636f756e742e58496e76616c696453746f7261676550726f766964657200110490496e76616c69642073746f726167652070726f766964657220666f72206275636b65742e4c496e73756666696369656e7442616c616e636500120498496e73756666696369656e742062616c616e636520666f7220616e206f7065726174696f6e2e54446174614f626a656374446f65736e7445786973740013046844617461206f626a65637420646f65736e27742065786973742e4055706c6f6164696e67426c6f636b65640014049c55706c6f6164696e67206f6620746865206e6577206f626a65637420697320626c6f636b65642e74446174614f626a6563744964436f6c6c656374696f6e4973456d7074790015048c44617461206f626a65637420696420636f6c6c656374696f6e20697320656d7074792e80536f75726365416e6444657374696e6174696f6e42616773417265457175616c001604a043616e6e6f74206d6f7665206f626a656374732077697468696e207468652073616d65206261672e54446174614f626a656374426c61636b6c6973746564001704a844617461206f626a65637420686173682069732070617274206f662074686520626c61636b6c6973742e68426c61636b6c69737453697a654c696d6974457863656564656400180478426c61636b6c6973742073697a65206c696d69742065786365656465642e84566f75636865724d61784f626a65637453697a654c696d69744578636565646564001904ac4d6178206f626a6563742073697a65206c696d697420657863656564656420666f7220766f75636865722e8c566f75636865724d61784f626a6563744e756d6265724c696d69744578636565646564001a04b44d6178206f626a656374206e756d626572206c696d697420657863656564656420666f7220766f75636865722e9453746f726167654275636b65744f626a6563744e756d6265724c696d697452656163686564001b04cc4f626a656374206e756d626572206c696d697420666f72207468652073746f72616765206275636b657420726561636865642e8c53746f726167654275636b65744f626a65637453697a654c696d697452656163686564001c04e04f626a6563747320746f74616c2073697a65206c696d697420666f72207468652073746f72616765206275636b657420726561636865642e6c496e73756666696369656e74547265617375727942616c616e6365001d04d8496e73756666696369656e74206d6f64756c652074726561737572792062616c616e636520666f7220616e206f7065726174696f6e2e8443616e6e6f7444656c6574654e6f6e456d70747953746f726167654275636b6574001e04a443616e6e6f742064656c6574652061206e6f6e2d656d7074792073746f72616765206275636b65742e68446174614f626a6563744964506172616d73417265456d707479001f04f85468652060646174615f6f626a6563745f696473602065787472696e73696320706172616d6574657220636f6c6c656374696f6e20697320656d7074792e7c53746f726167654275636b6574735065724261674c696d6974546f6f4c6f77002004d8546865206e6577206053746f726167654275636b6574735065724261674c696d697460206e756d62657220697320746f6f206c6f772e8053746f726167654275636b6574735065724261674c696d6974546f6f48696768002104dc546865206e6577206053746f726167654275636b6574735065724261674c696d697460206e756d62657220697320746f6f20686967682e8053746f726167654275636b65745065724261674c696d69744578636565646564002204cc6053746f726167654275636b6574735065724261674c696d6974602077617320657863656564656420666f722061206261672e8053746f726167654275636b6574446f65736e744163636570744e657742616773002304ac5468652073746f72616765206275636b657420646f65736e277420616363657074206e657720626167732e4044796e616d6963426167457869737473002404c843616e6e6f7420637265617465207468652064796e616d6963206261673a2064796e616d696320626167206578697374732e5444796e616d6963426167446f65736e7445786973740025046844796e616d69632062616720646f65736e27742065786973742e8853746f7261676550726f76696465724f70657261746f72446f65736e744578697374002604a053746f726167652070726f7669646572206f70657261746f7220646f65736e27742065786973742e484461746153697a654665654368616e676564002704b8496e76616c69642065787472696e7369632063616c6c3a20646174612073697a6520666565206368616e6765642e7c446174614f626a6563745374617465426c6f6174426f6e644368616e676564002804f4496e76616c69642065787472696e7369632063616c6c3a2064617461206f626a65637420737461746520626c6f617420626f6e64206368616e6765642e7843616e6e6f7444656c6574654e6f6e456d70747944796e616d69634261670029049043616e6e6f742064656c657465206e6f6e20656d7074792064796e616d6963206261672eb84d6178446973747269627574696f6e4275636b657446616d696c794e756d6265724c696d69744578636565646564002a04d44d617820646973747269627574696f6e206275636b65742066616d696c79206e756d626572206c696d69742065786365656465642e8c446973747269627574696f6e4275636b657446616d696c79446f65736e744578697374002b04a4446973747269627574696f6e206275636b65742066616d696c7920646f65736e27742065786973742e74446973747269627574696f6e4275636b6574446f65736e744578697374002c0488446973747269627574696f6e206275636b657420646f65736e27742065786973742e9c446973747269627574696f6e4275636b65744964436f6c6c656374696f6e73417265456d707479002d04b4446973747269627574696f6e206275636b657420696420636f6c6c656374696f6e732061726520656d7074792e94446973747269627574696f6e4275636b6574446f65736e744163636570744e657742616773002e04b0446973747269627574696f6e206275636b657420646f65736e277420616363657074206e657720626167732eb84d6178446973747269627574696f6e4275636b65744e756d6265725065724261674c696d69744578636565646564002f04d84d617820646973747269627574696f6e206275636b6574206e756d6265722070657220626167206c696d69742065786365656465642e84446973747269627574696f6e4275636b657449734e6f74426f756e64546f426167003004a8446973747269627574696f6e206275636b6574206973206e6f7420626f756e6420746f2061206261672e78446973747269627574696f6e4275636b65744973426f756e64546f42616700310498446973747269627574696f6e206275636b657420697320626f756e6420746f2061206261672e90446973747269627574696f6e4275636b6574735065724261674c696d6974546f6f4c6f77003204ec546865206e65772060446973747269627574696f6e4275636b6574735065724261674c696d697460206e756d62657220697320746f6f206c6f772e94446973747269627574696f6e4275636b6574735065724261674c696d6974546f6f48696768003304f0546865206e65772060446973747269627574696f6e4275636b6574735065724261674c696d697460206e756d62657220697320746f6f20686967682e9c446973747269627574696f6e50726f76696465724f70657261746f72446f65736e744578697374003404b4446973747269627574696f6e2070726f7669646572206f70657261746f7220646f65736e27742065786973742ea8446973747269627574696f6e50726f76696465724f70657261746f72416c7265616479496e7669746564003504bc446973747269627574696f6e2070726f7669646572206f70657261746f7220616c726561647920696e76697465642e7c446973747269627574696f6e50726f76696465724f70657261746f72536574003604ac446973747269627574696f6e2070726f7669646572206f70657261746f7220616c7265616479207365742e784e6f446973747269627574696f6e4275636b6574496e7669746174696f6e003704884e6f20646973747269627574696f6e206275636b657420696e7669746174696f6e2eac4d7573744265446973747269627574696f6e50726f76696465724f70657261746f72466f724275636b65740038042901496e76616c6964206f7065726174696f6e733a206d757374206265206120646973747269627574696f6e2070726f7669646572206f70657261746f7220666f722061206275636b65742ef84d61784e756d6265724f6650656e64696e67496e7669746174696f6e734c696d6974466f72446973747269627574696f6e4275636b65745265616368656400390429014d6178206e756d626572206f662070656e64696e6720696e7669746174696f6e73206c696d697420666f72206120646973747269627574696f6e206275636b657420726561636865642ec04d61784e756d6265724f664f70657261746f7273506572446973747269627574696f6e4275636b657452656163686564003a04e84d6178206e756d626572206f66206f70657261746f727320666f72206120646973747269627574696f6e206275636b657420726561636865642ea8446973747269627574696f6e46616d696c79426f756e64546f4261674372656174696f6e506f6c696379003b04cc446973747269627574696f6e2066616d696c7920626f756e6420746f206120626167206372656174696f6e20706f6c6963792e644d6178446174614f626a65637453697a654578636565646564003c04784d61782064617461206f626a6563742073697a652065786365656465642e60496e76616c69645472616e736163746f724163636f756e74003d04b8496e76616c6964207472616e736163746f72206163636f756e7420494420666f722074686973206275636b65742ec04e756d6265724f6653746f726167654275636b6574734f7574736964654f66416c6c6f776564436f6e747261696e7473003e049c4e6f7420616c6c6f77656420276e756d626572206f662073746f72616765206275636b65747327d44e756d6265724f66446973747269627574696f6e4275636b6574734f7574736964654f66416c6c6f776564436f6e747261696e7473003f04b04e6f7420616c6c6f77656420276e756d626572206f6620646973747269627574696f6e206275636b657473273043616c6c44697361626c65640040043443616c6c2044697361626c6564048053746f72616765206d6f64756c6520707265646566696e6564206572726f727321090c5070616c6c65745f70726f6a6563745f746f6b656e1474797065732c4163636f756e7444617461101c42616c616e63650118345374616b696e6753746174757301250948526570617961626c65426c6f6174426f6e6401e1014056657374696e675363686564756c65730129090018014476657374696e675f7363686564756c65732909014056657374696e675363686564756c6573000118616d6f756e7418011c42616c616e636500015073706c69745f7374616b696e675f7374617475733d0901544f7074696f6e3c5374616b696e675374617475733e000128626c6f61745f626f6e64e1010148526570617961626c65426c6f6174426f6e640001606e6578745f76657374696e675f7472616e736665725f696428010c7536340001806c6173745f73616c655f746f74616c5f7075726368617365645f616d6f756e74410901784f7074696f6e3c28546f6b656e53616c6549642c2042616c616e6365293e000025090c5070616c6c65745f70726f6a6563745f746f6b656e147479706573345374616b696e67537461747573041c42616c616e636501180008012073706c69745f6964100138526576656e756553706c69744964000118616d6f756e7418011c42616c616e6365000029090c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b0111030456012d090453000004003109013842547265654d61703c4b2c20563e00002d090c5070616c6c65745f70726f6a6563745f746f6b656e1474797065733c56657374696e675363686564756c65082c426c6f636b4e756d62657201101c42616c616e63650118001401686c696e6561725f76657374696e675f73746172745f626c6f636b10012c426c6f636b4e756d62657200015c6c696e6561725f76657374696e675f6475726174696f6e10012c426c6f636b4e756d626572000130636c6966665f616d6f756e7418011c42616c616e636500015c706f73745f636c6966665f746f74616c5f616d6f756e7418011c42616c616e63650001346275726e65645f616d6f756e7418011c42616c616e636500003109042042547265654d617008044b0111030456012d090004003509000000350900000239090039090000040811032d09003d0904184f7074696f6e0404540125090108104e6f6e6500000010536f6d65040025090000010000410904184f7074696f6e0404540145090108104e6f6e6500000010536f6d6504004509000001000045090000040810180049090c5070616c6c65745f70726f6a6563745f746f6b656e14747970657324546f6b656e44617461141c42616c616e636501181048617368012c2c426c6f636b4e756d626572011024546f6b656e53616c6501210344526576656e756553706c69745374617465014d09002c0130746f74616c5f737570706c7918011c42616c616e6365000134746f6b656e735f69737375656418011c42616c616e63650001306e6578745f73616c655f696410012c546f6b656e53616c65496400011073616c65590901444f7074696f6e3c546f6b656e53616c653e00013c7472616e736665725f706f6c696379c50201505472616e73666572506f6c6963793c486173683e00011873796d626f6c2c011048617368000138706174726f6e6167655f696e666f5d09018c506174726f6e616765446174613c42616c616e63652c20426c6f636b4e756d6265723e00013c6163636f756e74735f6e756d62657228010c753634000148726576656e75655f73706c69745f72617465d502011c5065726d696c6c000134726576656e75655f73706c69744d090144526576656e756553706c697453746174650001546e6578745f726576656e75655f73706c69745f6964100138526576656e756553706c6974496400004d090c5070616c6c65745f70726f6a6563745f746f6b656e14747970657344526576656e756553706c6974537461746508284a6f7942616c616e636501182c426c6f636b4e756d6265720110010820496e616374697665000000184163746976650400510901a4526576656e756553706c6974496e666f3c4a6f7942616c616e63652c20426c6f636b4e756d6265723e0001000051090c5070616c6c65745f70726f6a6563745f746f6b656e14747970657340526576656e756553706c6974496e666f08284a6f7942616c616e636501182c426c6f636b4e756d6265720110000c0128616c6c6f636174696f6e1801284a6f7942616c616e636500012074696d656c696e655509015454696d656c696e653c426c6f636b4e756d6265723e0001446469766964656e64735f636c61696d65641801284a6f7942616c616e6365000055090c5070616c6c65745f70726f6a6563745f746f6b656e1474797065732054696d656c696e65042c426c6f636b4e756d626572011000080114737461727410012c426c6f636b4e756d6265720001206475726174696f6e10012c426c6f636b4e756d6265720000590904184f7074696f6e0404540121030108104e6f6e6500000010536f6d650400210300000100005d090c5070616c6c65745f70726f6a6563745f746f6b656e14747970657334506174726f6e61676544617461081c42616c616e636501182c426c6f636b4e756d6265720110000c01107261746561090124426c6f636b52617465000180756e636c61696d65645f706174726f6e6167655f74616c6c795f616d6f756e7418011c42616c616e63650001906c6173745f756e636c61696d65645f706174726f6e6167655f74616c6c795f626c6f636b10012c426c6f636b4e756d626572000061090c5070616c6c65745f70726f6a6563745f746f6b656e14747970657324426c6f636b52617465000004002503012c5065727175696e74696c6c000065090c5070616c6c65745f70726f6a6563745f746f6b656e186572726f7273144572726f720404540001c43c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f772980496e73756666696369656e745472616e736665727261626c6542616c616e636500010481014163636f756e742773207472616e736665727261626c652062616c616e636520697320696e73756666696369656e7420746f20706572666f726d20746865207472616e73666572206f7220696e697469616c697a6520746f6b656e2073616c6544546f6b656e446f65734e6f7445786973740002047852657175657374656420746f6b656e20646f6573206e6f74206578697374784163636f756e74496e666f726d6174696f6e446f65734e6f74457869737400030494526571756573746564206163636f756e74206461746120646f6573206e6f74206578697374945472616e7366657244657374696e6174696f6e4d656d626572446f65734e6f74457869737400040419014174206c65617374206f6e65206f6620746865207472616e736665722064657374696e6174696f6e73206973206e6f7420616e206578697374696e67206d656d626572206964784d65726b6c6550726f6f66566572696669636174696f6e4661696c757265000504804d65726b6c652070726f6f6620766572696669636174696f6e206661696c6564a8546172676574506174726f6e6167655261746549734869676865725468616e43757272656e7452617465000604c4546172676574205261746520697320686967686572207468616e2063757272656e7420706174726f6e61676520726174655c546f6b656e53796d626f6c416c7265616479496e5573650007045453796d626f6c20616c726561647920696e2075736590496e697469616c416c6c6f636174696f6e546f4e6f6e4578697374696e674d656d62657200080441014174206c65617374206f6e65206f6620746865206d656d626572732070726f76696465642061732070617274206f6620496e697469616c416c6c6f636174696f6e20646f6573206e6f74206578697374504163636f756e74416c7265616479457869737473000904584163636f756e7420416c7265616479206578697374736c546f6b656e49737375616e63654e6f74496e49646c655374617465000a04a8546f6b656e27732063757272656e74206f66666572696e67207374617465206973206e6f742049646c6558496e73756666696369656e744a6f7942616c616e6365000b04dc496e73756666696369656e74204a4f592042616c616e636520746f20636f76657220746865207472616e73616374696f6e20636f7374736c4a6f795472616e736665725375626a656374546f44757374696e67000c045d0154686520616d6f756e74206f66204a4f5920746f206265207472616e73666572726564206973206e6f7420656e6f75676820746f206b656570207468652064657374696e6174696f6e206163636f756e7420616c697665cc417474656d7074546f52656d6f76654e6f6e4f776e65644163636f756e74556e6465725065726d697373696f6e65644d6f6465000d04ec417474656d707420746f2072656d6f7665206e6f6e206f776e6564206163636f756e7420756e646572207065726d697373696f6e6564206d6f646578417474656d7074546f52656d6f76654e6f6e456d7074794163636f756e74000e04e4417474656d707420746f2072656d6f766520616e206163636f756e74207769746820736f6d65206f75747374616e64696e6720746f6b656e739c43616e6e6f744a6f696e57686974656c697374496e5065726d697373696f6e6c6573734d6f6465000f04b043616e6e6f74206a6f696e2077686974656c69737420696e207065726d697373696f6e6c657373206d6f6465a443616e6e6f7444656973737565546f6b656e576974684f75747374616e64696e674163636f756e7473001004b843616e6e6f74204465697373756520546f6b656e2077697468206f75747374616e64696e67206163636f756e7473384e6f5570636f6d696e6753616c650011047854686520746f6b656e20686173206e6f207570636f6d696e672073616c65304e6f41637469766553616c65001204a854686520746f6b656e20686173206e6f206163746976652073616c6520617420746865206d6f6d656e748c496e73756666696369656e7442616c616e6365466f72546f6b656e507572636861736500130401014163636f756e742773204a4f592062616c616e636520697320696e73756666696369656e7420746f206d616b652074686520746f6b656e207075726368617365544e6f74456e6f756768546f6b656e734f6e53616c650014047d01416d6f756e74206f6620746f6b656e7320746f207075726368617365206f6e2073616c65206578636565647320746865207175616e74697479206f6620746f6b656e73207374696c6c20617661696c61626c65206f6e207468652073616c656853616c655374617274696e67426c6f636b496e54686550617374001504b05370656369666965642073616c65207374617274696e6720626c6f636b20697320696e2074686520706173745c53616c6541636365737350726f6f66526571756972656400160481014f6e6c792077686974656c6973746564207061727469636970616e74732061726520616c6c6f77656420746f20616363657373207468652073616c652c207468657265666f7265206163636573732070726f6f662069732072657175697265649453616c6541636365737350726f6f665061727469636970616e7449734e6f7453656e64657200170829015061727469636970616e7420696e2073616c65206163636573732070726f6f662070726f766964656420647572696e67206070757263686173655f746f6b656e735f6f6e5f73616c656084646f6573206e6f74206d61746368207468652073656e646572206163636f756e745c53616c6550757263686173654361704578636565646564001808610153616c65207061727469636970616e742773206361702028656974686572206361705f7065725f6d656d626572206f722077686974656c6973746564207061727469636970616e742773207370656369666963206361702978776173206578636565646564207769746820746865207075726368617365b04d617856657374696e675363686564756c65735065724163636f756e74506572546f6b656e52656163686564001908c843616e6e6f742061646420616e6f746865722076657374696e67207363686564756c6520746f20616e206163636f756e742e31014d6178696d756d206e756d626572206f662076657374696e67207363686564756c657320666f722074686973206163636f756e742d746f6b656e20706169722077617320726561636865642e6050726576696f757353616c654e6f7446696e616c697a6564001a04e450726576696f75732073616c6520776173207374696c6c206e6f742066696e616c697a65642c2066696e616c697a652069742066697273742e444e6f546f6b656e73546f5265636f766572001b041501546865726520617265206e6f2072656d61696e696e6720746f6b657320746f207265636f7665722066726f6d207468652070726576696f757320746f6b656e2073616c652e5053616c654475726174696f6e546f6f53686f7274001c04dc5370656369666965642073616c65206475726174696f6e2069732073686f72746572207468616e204d696e53616c654475726174696f6e4853616c654475726174696f6e49735a65726f001d047053616c65206475726174696f6e2063616e6e6f74206265207a65726f7053616c655570706572426f756e645175616e7469747949735a65726f001e048c557070657220626f756e64207175616e746974792063616e6e6f74206265207a65726f5853616c654361705065724d656d62657249735a65726f001f049850757263686173652063617020706572206d656d6265722063616e6e6f74206265207a65726f4c53616c65556e6974507269636549735a65726f00200484546f6b656e277320756e69742070726963652063616e6e6f74206265207a65726f6053616c655075726368617365416d6f756e7449735a65726f002104cc416d6f756e74206f6620746f6b656e7320746f207075726368617365206f6e2073616c652063616e6e6f74206265207a65726f7c526576656e756553706c697454696d65546f5374617274546f6f53686f7274002204d453706563696669656420726576656e75652073706c6974207374617274696e6720626c6f636b20697320696e20746865207061737470526576656e756553706c69744475726174696f6e546f6f53686f72740023048c526576656e75652053706c6974206475726174696f6e20697320746f6f2073686f727484526576656e756553706c6974416c7265616479416374697665466f72546f6b656e002404a8417474656d707420746f2061637469766174652073706c69742077697468206f6e65206f6e676f696e6774526576656e756553706c69744e6f74416374697665466f72546f6b656e0025043501417474656d707420746f206d616b6520726576656e75652073706c6974206f7065726174696f6e73207769746820746f6b656e206e6f7420696e206163746976652073706c697420737461746554526576656e756553706c69744469644e6f74456e640026047c526576656e75652053706c697420686173206e6f7420656e6465642079657458526576656e756553706c69744e6f744f6e676f696e67002704bc526576656e75652053706c697420666f7220746f6b656e206163746976652c20627574206e6f74206f6e676f696e676055736572416c726561647950617274696369706174696e67002804bc5573657220616c72656164792070617274696369706174696e6720696e2074686520726576656e75652073706c6974a0496e73756666696369656e7442616c616e6365466f7253706c697450617274696369706174696f6e0029041d015573657220646f6573206e6f7420706f7373657320656e6f7567682062616c616e636520746f20706172746963697061746520696e2074686520726576656e75652073706c69747c557365724e6f745061727469636970616e74696e67496e416e7953706c6974002a049855736572206973206e6f742070617274696369706174696e6720696e20616e792073706c69749843616e6e6f745061727469636970617465496e53706c6974576974685a65726f416d6f756e74002b04e8417474656d707420746f20706172746963697061746520696e20612073706c69742077697468207a65726f20746f6b656e20746f207374616b65a043616e6e6f74497373756553706c6974576974685a65726f416c6c6f636174696f6e416d6f756e74002c04dc417474656d707420746f20697373756520696e20612073706c69742077697468207a65726f20616c6c6f636174696f6e20616d6f756e74b043616e6e6f744d6f64696679537570706c795768656e526576656e756553706c697473417265416374697665002d04d4417474656d707420746f206d6f6469667920737570706c79207768656e20726576656e75652073706c69742069732061637469766558526576656e756553706c69745261746549735a65726f002e0478526576656e75652073706c697420726174652063616e6e6f742062652030404275726e416d6f756e7449735a65726f002f047c50726f766964656420616d6f756e7420746f206275726e206973203d3d2030a04275726e416d6f756e74477265617465725468616e4163636f756e74546f6b656e73416d6f756e740030043101416d6f756e74206f6620746f6b656e7320746f206275726e206578636565647320746f74616c20616d6f756e74206f6620746f6b656e73206f776e656420627920746865206163636f756e740069090c5c70616c6c65745f70726f706f73616c735f656e67696e651474797065732050726f706f73616c102c426c6f636b4e756d62657201102850726f706f736572496401281c42616c616e63650118244163636f756e744964010000200128706172616d65746572736d0901a050726f706f73616c506172616d65746572733c426c6f636b4e756d6265722c2042616c616e63653e00012c70726f706f7365725f696428012850726f706f73657249640001306163746976617465645f617410012c426c6f636b4e756d6265720001187374617475732d03016c50726f706f73616c5374617475733c426c6f636b4e756d6265723e000138766f74696e675f726573756c747371090134566f74696e67526573756c747300015465786163745f657865637574696f6e5f626c6f636b0102014c4f7074696f6e3c426c6f636b4e756d6265723e00016c6e725f6f665f636f756e63696c5f636f6e6669726d6174696f6e7310010c7533320001487374616b696e675f6163636f756e745f69649401444f7074696f6e3c4163636f756e7449643e00006d090c5c70616c6c65745f70726f706f73616c735f656e67696e651474797065734850726f706f73616c506172616d6574657273082c426c6f636b4e756d62657201101c42616c616e6365011800200134766f74696e675f706572696f6410012c426c6f636b4e756d62657200013067726163655f706572696f6410012c426c6f636b4e756d626572000168617070726f76616c5f71756f72756d5f70657263656e7461676510010c753332000174617070726f76616c5f7468726573686f6c645f70657263656e7461676510010c753332000168736c617368696e675f71756f72756d5f70657263656e7461676510010c753332000174736c617368696e675f7468726573686f6c645f70657263656e7461676510010c75333200013872657175697265645f7374616b654501013c4f7074696f6e3c42616c616e63653e000144636f6e737469747574696f6e616c69747910010c753332000071090c5c70616c6c65745f70726f706f73616c735f656e67696e6514747970657334566f74696e67526573756c7473000010012c61627374656e74696f6e7310010c753332000124617070726f76616c7310010c75333200012872656a656374696f6e7310010c75333200011c736c617368657310010c753332000075090c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003001185665633c543e00007909000004081028007d09085c70616c6c65745f70726f706f73616c735f656e67696e65144572726f7204045400015c3c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f772948456d7074795469746c6550726f76696465640001049050726f706f73616c2063616e6e6f74206861766520616e20656d707479207469746c652260456d7074794465736372697074696f6e50726f76696465640002048850726f706f73616c2063616e6e6f74206861766520616e20656d70747920626f6479385469746c654973546f6f4c6f6e67000304445469746c6520697320746f6f206c6f6e67504465736372697074696f6e4973546f6f4c6f6e670004045c4465736372697074696f6e20697320746f6f206c6f6e674050726f706f73616c4e6f74466f756e640005046c5468652070726f706f73616c20646f6573206e6f742065786973744450726f706f73616c46696e616c697a65640006047450726f706f73616c2069732066696e616c697a656420616c726561647930416c7265616479566f7465640007049c5468652070726f706f73616c2068617665206265656e20616c726561647920766f746564206f6e244e6f74417574686f72000804344e6f7420616e20617574686f727c4d617841637469766550726f706f73616c4e756d6265724578636565646564000904904d6178206163746976652070726f706f73616c73206e756d62657220657863656564656428456d7074795374616b65000a04a05374616b652063616e6e6f7420626520656d707479207769746820746869732070726f706f73616c485374616b6553686f756c644265456d707479000b049c5374616b652073686f756c6420626520656d70747920666f7220746869732070726f706f73616c605374616b654469666665727346726f6d5265717569726564000c04b05374616b6520646966666572732066726f6d207468652070726f706f73616c20726571756972656d656e747384496e76616c6964506172616d65746572417070726f76616c5468726573686f6c64000d0484417070726f76616c207468726573686f6c642063616e6e6f74206265207a65726f84496e76616c6964506172616d65746572536c617368696e675468726573686f6c64000e0484536c617368696e67207468726573686f6c642063616e6e6f74206265207a65726f4452657175697265526f6f744f726967696e000f04845265717569726520726f6f74206f726967696e20696e2065787472696e736963734050726f706f73616c486173566f746573001004f4446973616c6c6f7720746f2063616e63656c207468652070726f706f73616c2069662074686572652061726520616e7920766f746573206f6e2069742e5c5a65726f4578616374457865637574696f6e426c6f636b00110494457861637420657865637574696f6e20626c6f636b2063616e6e6f74206265207a65726f2e68496e76616c69644578616374457865637574696f6e426c6f636b001204e0457861637420657865637574696f6e20626c6f636b2063616e6e6f74206265206c657373207468616e2063757272656e745f626c6f636b2e6c496e73756666696369656e7442616c616e6365466f725374616b65001304a05468657265206973206e6f7420656e6f7567682062616c616e636520666f722061207374616b652e44436f6e666c696374696e675374616b6573001404bc54686520636f6e666c696374696e67207374616b6520646973636f76657265642e2043616e6e6f74207374616b652e78496e76616c69645374616b696e674163636f756e74466f724d656d626572001504ac5374616b696e67206163636f756e7420646f65736e27742062656c6f6e6720746f2061206d656d6265722e8c4d6178446973706174636861626c6543616c6c436f646553697a6545786365656465640016043d015468652073697a65206f6620656e636f64656420646973706174636861626c652063616c6c20746f206265206578656375746564206279207468652070726f706f73616c20697320746f6f20626967047c456e67696e65206d6f64756c6520707265646566696e6564206572726f727381090c6c70616c6c65745f70726f706f73616c735f64697363757373696f6e1474797065734044697363757373696f6e5468726561640c204d656d626572496401282c426c6f636b4e756d62657201103c54687265616457686974656c697374018509000c01306163746976617465645f617410012c426c6f636b4e756d626572000124617574686f725f69642801204d656d62657249640001106d6f64658909016c5468726561644d6f64653c54687265616457686974656c6973743e000085090c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401280453000004006901012c42547265655365743c543e000089090c6c70616c6c65745f70726f706f73616c735f64697363757373696f6e147479706573285468726561644d6f6465043c54687265616457686974656c6973740185090108104f70656e00000018436c6f73656404008509013c54687265616457686974656c697374000100008d090c6c70616c6c65745f70726f706f73616c735f64697363757373696f6e1474797065733844697363757373696f6e506f73740c204d656d626572496401282c426c6f636b4e756d626572011048526570617961626c65426c6f6174426f6e6401e101000c0124617574686f725f69642801204d656d626572496400013c636c65616e75705f7061795f6f6666e1010148526570617961626c65426c6f6174426f6e6400012c6c6173745f65646974656410012c426c6f636b4e756d62657200009109086c70616c6c65745f70726f706f73616c735f64697363757373696f6e144572726f720404540001283c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f772944546872656164446f65736e7445786973740001045054687265616420646f65736e27742065786973743c506f7374446f65736e74457869737400020448506f737420646f65736e27742065786973744452657175697265526f6f744f726967696e000304845265717569726520726f6f74206f726967696e20696e2065787472696e736963736043616e6e6f74506f73744f6e436c6f7365645468726561640004046501546865207468726561642068617320436c6f736564206d6f64652e20416e6420706f737420617574686f7220646f65736e27742062656c6f6e6720746f20636f756e63696c206f7220616c6c6f776564206d656d626572732e504e6f74417574686f724f72436f756e63696c6f720005049453686f756c642062652074687265616420617574686f72206f7220636f756e63696c6f722e604d617857686974654c69737453697a654578636565646564000604a04d617820616c6c6f77656420617574686f7273206c697374206c696d69742065786365656465642e7457686974656c69737465644d656d626572446f65734e6f74457869737400070849014174206c65617374206f6e65206f6620746865206d656d626572206964732070726f76696465642061732070617274206f6620636c6f736564207468726561642077686974656c6973742062656c6f6e677364746f2061206e6f6e2d6578697374696e67206d656d6265722e68496e73756666696369656e7442616c616e6365466f72506f7374000804c44163636f756e742068617320696e73756666696369656e742062616c616e636520746f20637265617465206120706f73744043616e6e6f7444656c657465506f73740009049c4163636f756e742063616e27742064656c65746520706f737420617420746865206d6f6d656e74048c44697363757373696f6e206d6f64756c6520707265646566696e6564206572726f72739509085870616c6c65745f70726f706f73616c735f636f646578144572726f72040454000168545369676e616c50726f706f73616c4973456d707479000004a050726f7669646564207465787420666f7220746578742070726f706f73616c20697320656d7074795852756e74696d6550726f706f73616c4973456d707479000104f050726f7669646564205741534d20636f646520666f72207468652072756e74696d6520757067726164652070726f706f73616c20697320656d70747990496e76616c696446756e64696e675265717565737450726f706f73616c42616c616e6365000204bc496e76616c69642062616c616e63652076616c756520666f7220746865207370656e64696e672070726f706f73616c54496e76616c696456616c696461746f72436f756e74000304f8496e76616c69642076616c696461746f7220636f756e7420666f722074686520277365742076616c696461746f7220636f756e74272070726f706f73616c4452657175697265526f6f744f726967696e000404845265717569726520726f6f74206f726967696e20696e2065787472696e73696373a8496e76616c6964436f756e63696c456c656374696f6e506172616d65746572436f756e63696c53697a65000504c4496e76616c696420636f756e63696c20656c656374696f6e20706172616d65746572202d20636f756e63696c5f73697a65b4496e76616c6964436f756e63696c456c656374696f6e506172616d6574657243616e6469646163794c696d6974000604d0496e76616c696420636f756e63696c20656c656374696f6e20706172616d65746572202d2063616e6469646163792d6c696d6974b4496e76616c6964436f756e63696c456c656374696f6e506172616d657465724d696e566f74696e675374616b65000704d4496e76616c696420636f756e63696c20656c656374696f6e20706172616d65746572202d206d696e2d766f74696e675f7374616b65b8496e76616c6964436f756e63696c456c656374696f6e506172616d657465724e65775465726d4475726174696f6e000804d8496e76616c696420636f756e63696c20656c656374696f6e20706172616d65746572202d206e65775f7465726d5f6475726174696f6eb8496e76616c6964436f756e63696c456c656374696f6e506172616d657465724d696e436f756e63696c5374616b65000904d8496e76616c696420636f756e63696c20656c656374696f6e20706172616d65746572202d206d696e5f636f756e63696c5f7374616b65b8496e76616c6964436f756e63696c456c656374696f6e506172616d6574657252657665616c696e67506572696f64000a04d4496e76616c696420636f756e63696c20656c656374696f6e20706172616d65746572202d2072657665616c696e675f706572696f64ac496e76616c6964436f756e63696c456c656374696f6e506172616d65746572566f74696e67506572696f64000b04c8496e76616c696420636f756e63696c20656c656374696f6e20706172616d65746572202d20766f74696e675f706572696f64bc496e76616c6964436f756e63696c456c656374696f6e506172616d65746572416e6e6f756e63696e67506572696f64000c04d8496e76616c696420636f756e63696c20656c656374696f6e20706172616d65746572202d20616e6e6f756e63696e675f706572696f6484496e76616c6964576f726b696e6747726f75704275646765744361706163697479000d04bc496e76616c696420776f726b696e672067726f75702062756467657420636170616369747920706172616d65746572a0496e76616c69645365744c656164506172616d6574657243616e6e6f744265436f756e63696c6f72000e042d01496e76616c69642027736574206c6561642070726f706f73616c2720706172616d65746572202d2070726f706f736564206c6561642063616e6e6f74206265206120636f756e63696c6f724c536c617368696e675374616b6549735a65726f000f042101496e76616c69642027736c617368207374616b652070726f706f73616c2720706172616d65746572202d2063616e6e6f7420736c617368206279207a65726f2062616c616e63652e5444656372656173696e675374616b6549735a65726f0010043901496e76616c696420276465637265617365207374616b652070726f706f73616c2720706172616d65746572202d2063616e6e6f74206465637265617365206279207a65726f2062616c616e63652e80496e73756666696369656e7446756e6473466f724275646765745570646174650011041d01496e73756666696369656e742066756e647320666f72202755706461746520576f726b696e672047726f757020427564676574272070726f706f73616c20657865637574696f6eb0496e76616c696446756e64696e675265717565737450726f706f73616c4e756d6265724f664163636f756e740012045101496e76616c6964206e756d626572206f66206163636f756e747320726563696576696e672066756e64696e67207265717565737420666f72202746756e64696e672052657175657374272070726f706f73616c2eb0496e76616c696446756e64696e675265717565737450726f706f73616c52657065617465644163636f756e74001304bc5265706561746564206163636f756e7420696e202746756e64696e672052657175657374272070726f706f73616c2ee0496e76616c69644368616e6e656c5061796f75747350726f706f73616c4d696e436173686f7574457863656564734d6178436173686f7574001404e50154686520737065636966696564206d696e206368616e6e656c20636173686f75742069732067726561746572207468616e2074686520737065636966696564206d6178206368616e6e656c20636173686f757420696e2060557064617465204368616e6e656c205061796f757473602070726f706f73616c2e4c496e76616c69644c656164576f726b657249640015049050726f7669646564206c65616420776f726b6572206964206973206e6f742076616c696450496e76616c69644c6561644f70656e696e6749640016049450726f7669646564206c656164206f70656e696e67206964206973206e6f742076616c696460496e76616c69644c6561644170706c69636174696f6e4964001704a450726f7669646564206c656164206170706c69636174696f6e206964206973206e6f742076616c696444496e76616c696450726f706f73616c49640018048450726f76696465642070726f706f73616c206964206973206e6f742076616c69643c41726974686d657469634572726f720019043c41726974686d656963204572726f720478436f646578206d6f64756c6520707265646566696e6564206572726f727399090c5070616c6c65745f776f726b696e675f67726f75701474797065731c4f70656e696e670c2c426c6f636b4e756d62657201101c42616c616e636501181048617368012c001801306f70656e696e675f747970657d03012c4f70656e696e675479706500011c6372656174656410012c426c6f636b4e756d6265720001406465736372697074696f6e5f686173682c0110486173680001307374616b655f706f6c696379610301845374616b65506f6c6963793c426c6f636b4e756d6265722c2042616c616e63653e0001407265776172645f7065725f626c6f636b4501013c4f7074696f6e3c42616c616e63653e0001386372656174696f6e5f7374616b6518011c42616c616e636500009d090c5070616c6c65745f776f726b696e675f67726f7570147479706573384a6f624170706c69636174696f6e0c244163636f756e7449640100204d656d626572496401281048617368012c0018013c726f6c655f6163636f756e745f69640001244163636f756e7449640001447265776172645f6163636f756e745f69640001244163636f756e7449640001487374616b696e675f6163636f756e745f69640001244163636f756e7449640001246d656d6265725f69642801204d656d62657249640001406465736372697074696f6e5f686173682c0110486173680001286f70656e696e675f69642801244f70656e696e6749640000a1090c5070616c6c65745f776f726b696e675f67726f75701474797065732c47726f7570576f726b657210244163636f756e7449640100204d656d626572496401282c426c6f636b4e756d62657201101c42616c616e63650118002401246d656d6265725f69642801204d656d626572496400013c726f6c655f6163636f756e745f69640001244163636f756e7449640001487374616b696e675f6163636f756e745f69640001244163636f756e7449640001447265776172645f6163636f756e745f69640001244163636f756e744964000148737461727465645f6c656176696e675f61740102014c4f7074696f6e3c426c6f636b4e756d6265723e0001506a6f625f756e7374616b696e675f706572696f6410012c426c6f636b4e756d6265720001407265776172645f7065725f626c6f636b4501013c4f7074696f6e3c42616c616e63653e0001346d69737365645f7265776172644501013c4f7074696f6e3c42616c616e63653e000128637265617465645f617410012c426c6f636b4e756d6265720000a5090c5070616c6c65745f776f726b696e675f67726f7570186572726f7273144572726f720804540004490001803c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f7729605374616b6542616c616e636543616e6e6f7442655a65726f0001049850726f7669646564207374616b652062616c616e63652063616e6e6f74206265207a65726f2e4c4f70656e696e67446f65734e6f7445786973740002045c4f70656e696e6720646f6573206e6f742065786973742e6443616e6e6f74486972654d756c7469706c654c656164657273000304bc43616e6e6f742066696c6c206f70656e696e672077697468206d756c7469706c65206170706c69636174696f6e732e74576f726b65724170706c69636174696f6e446f65734e6f74457869737400040488576f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e744d6178416374697665576f726b65724e756d626572457863656564656400050488576f726b696e672067726f75702073697a65206c696d69742065786365656465642e9c5375636365737366756c576f726b65724170706c69636174696f6e446f65734e6f744578697374000604b45375636365737366756c20776f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e8043616e6e6f74486972654c65616465725768656e4c6561646572457869737473000704c45468657265206973206c656164657220616c72656164792c2063616e6e6f74206869726520616e6f74686572206f6e652e4049734e6f744c6561644163636f756e740008044c4e6f742061206c656164206163636f756e742e4443757272656e744c6561644e6f745365740009046043757272656e74206c656164206973206e6f74207365742e48576f726b6572446f65734e6f744578697374000a0458576f726b657220646f6573206e6f742065786973742e4c496e76616c69644d656d6265724f726967696e000b0470496e76616c6964206f726967696e20666f722061206d656d6265722e705369676e657249734e6f74576f726b6572526f6c654163636f756e74000c04885369676e6572206973206e6f7420776f726b657220726f6c65206163636f756e742e4842656c6f774d696e696d756d5374616b6573000d04885374616b696e67206c657373207468616e20746865206c6f77657220626f756e642e7c496e73756666696369656e7442616c616e6365546f436f7665725374616b65000e0490496e73756666696369656e742062616c616e636520746f20636f766572207374616b652e884170706c69636174696f6e5374616b65446f65736e744d617463684f70656e696e67000f04d84170706c69636174696f6e207374616b65206973206c657373207468616e207265717569726564206f70656e696e67207374616b652e504f726967696e49734e6f744170706c6963616e74001004604f726967696e206973206e6f74206170706c6963616e742e3c576f726b657249734c656176696e6700110498496e76616c6964206f7065726174696f6e202d20776f726b6572206973206c656176696e672e5043616e6e6f74526577617264576974685a65726f0012046452657761726420636f756c64206e6f74206265207a65726f2e78496e76616c69645374616b696e674163636f756e74466f724d656d626572001304ac5374616b696e67206163636f756e7420646f65736e27742062656c6f6e6720746f2061206d656d6265722e5c436f6e666c6963745374616b65734f6e4163636f756e74001404b05374616b696e67206163636f756e7420636f6e7461696e7320636f6e666c696374696e67207374616b65732e44576f726b65724861734e6f5265776172640015047c576f726b657220686173206e6f20726563757272696e67207265776172642e78556e7374616b696e67506572696f644c6573735468616e4d696e696d756d001604090153706563696669656420756e7374616b696e6720706572696f64206973206c657373207468656e206d696e696d756d2073657420666f72207468652067726f75702e3c43616e6e6f745370656e645a65726f00170460496e76616c6964207370656e64696e6720616d6f756e742e74496e73756666696369656e74427564676574466f725370656e64696e67001804a449742773206e6f7420656e6f7567682062756467657420666f722074686973207370656e64696e672e584e6f4170706c69636174696f6e7350726f7669646564001904bc43616e6e6f742066696c6c206f70656e696e67202d206e6f206170706c69636174696f6e732070726f76696465642ea043616e6e6f7444656372656173655374616b6544656c7461477265617465725468616e5374616b65001a04fc43616e6e6f74206465637265617365207374616b65202d207374616b652064656c74612067726561746572207468616e20696e697469616c207374616b652e644170706c69636174696f6e734e6f74466f724f70656e696e67001b04f0547279696e6720746f2066696c6c206f70656e696e67207769746820616e206170706c69636174696f6e20666f72206f74686572206f70656e696e6764576f726b657253746f7261676556616c7565546f6f4c6f6e67001c0480576f726b65722073746f72616765207465787420697320746f6f206c6f6e672e70496e73756666696369656e74546f6b656e73466f7246756e64696e67001d04f8496e73756666696369656e7420746f6b656e7320666f722066756e64696e6720286f6e206d656d62657220636f6e74726f6c6c6572206163636f756e7429445a65726f546f6b656e7346756e64696e67001e047c547279696e6720746f2066756e642077697468207a65726f20746f6b656e7378496e73756666696369656e7442616c616e6365466f725472616e73666572001f04b443616e6e6f742077697468647261773a20696e73756666696369656e74206275646765742062616c616e63652e048c44697363757373696f6e206d6f64756c6520707265646566696e6564206572726f7273a9090c5070616c6c65745f776f726b696e675f67726f7570186572726f7273144572726f720804540004490001803c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f7729605374616b6542616c616e636543616e6e6f7442655a65726f0001049850726f7669646564207374616b652062616c616e63652063616e6e6f74206265207a65726f2e4c4f70656e696e67446f65734e6f7445786973740002045c4f70656e696e6720646f6573206e6f742065786973742e6443616e6e6f74486972654d756c7469706c654c656164657273000304bc43616e6e6f742066696c6c206f70656e696e672077697468206d756c7469706c65206170706c69636174696f6e732e74576f726b65724170706c69636174696f6e446f65734e6f74457869737400040488576f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e744d6178416374697665576f726b65724e756d626572457863656564656400050488576f726b696e672067726f75702073697a65206c696d69742065786365656465642e9c5375636365737366756c576f726b65724170706c69636174696f6e446f65734e6f744578697374000604b45375636365737366756c20776f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e8043616e6e6f74486972654c65616465725768656e4c6561646572457869737473000704c45468657265206973206c656164657220616c72656164792c2063616e6e6f74206869726520616e6f74686572206f6e652e4049734e6f744c6561644163636f756e740008044c4e6f742061206c656164206163636f756e742e4443757272656e744c6561644e6f745365740009046043757272656e74206c656164206973206e6f74207365742e48576f726b6572446f65734e6f744578697374000a0458576f726b657220646f6573206e6f742065786973742e4c496e76616c69644d656d6265724f726967696e000b0470496e76616c6964206f726967696e20666f722061206d656d6265722e705369676e657249734e6f74576f726b6572526f6c654163636f756e74000c04885369676e6572206973206e6f7420776f726b657220726f6c65206163636f756e742e4842656c6f774d696e696d756d5374616b6573000d04885374616b696e67206c657373207468616e20746865206c6f77657220626f756e642e7c496e73756666696369656e7442616c616e6365546f436f7665725374616b65000e0490496e73756666696369656e742062616c616e636520746f20636f766572207374616b652e884170706c69636174696f6e5374616b65446f65736e744d617463684f70656e696e67000f04d84170706c69636174696f6e207374616b65206973206c657373207468616e207265717569726564206f70656e696e67207374616b652e504f726967696e49734e6f744170706c6963616e74001004604f726967696e206973206e6f74206170706c6963616e742e3c576f726b657249734c656176696e6700110498496e76616c6964206f7065726174696f6e202d20776f726b6572206973206c656176696e672e5043616e6e6f74526577617264576974685a65726f0012046452657761726420636f756c64206e6f74206265207a65726f2e78496e76616c69645374616b696e674163636f756e74466f724d656d626572001304ac5374616b696e67206163636f756e7420646f65736e27742062656c6f6e6720746f2061206d656d6265722e5c436f6e666c6963745374616b65734f6e4163636f756e74001404b05374616b696e67206163636f756e7420636f6e7461696e7320636f6e666c696374696e67207374616b65732e44576f726b65724861734e6f5265776172640015047c576f726b657220686173206e6f20726563757272696e67207265776172642e78556e7374616b696e67506572696f644c6573735468616e4d696e696d756d001604090153706563696669656420756e7374616b696e6720706572696f64206973206c657373207468656e206d696e696d756d2073657420666f72207468652067726f75702e3c43616e6e6f745370656e645a65726f00170460496e76616c6964207370656e64696e6720616d6f756e742e74496e73756666696369656e74427564676574466f725370656e64696e67001804a449742773206e6f7420656e6f7567682062756467657420666f722074686973207370656e64696e672e584e6f4170706c69636174696f6e7350726f7669646564001904bc43616e6e6f742066696c6c206f70656e696e67202d206e6f206170706c69636174696f6e732070726f76696465642ea043616e6e6f7444656372656173655374616b6544656c7461477265617465725468616e5374616b65001a04fc43616e6e6f74206465637265617365207374616b65202d207374616b652064656c74612067726561746572207468616e20696e697469616c207374616b652e644170706c69636174696f6e734e6f74466f724f70656e696e67001b04f0547279696e6720746f2066696c6c206f70656e696e67207769746820616e206170706c69636174696f6e20666f72206f74686572206f70656e696e6764576f726b657253746f7261676556616c7565546f6f4c6f6e67001c0480576f726b65722073746f72616765207465787420697320746f6f206c6f6e672e70496e73756666696369656e74546f6b656e73466f7246756e64696e67001d04f8496e73756666696369656e7420746f6b656e7320666f722066756e64696e6720286f6e206d656d62657220636f6e74726f6c6c6572206163636f756e7429445a65726f546f6b656e7346756e64696e67001e047c547279696e6720746f2066756e642077697468207a65726f20746f6b656e7378496e73756666696369656e7442616c616e6365466f725472616e73666572001f04b443616e6e6f742077697468647261773a20696e73756666696369656e74206275646765742062616c616e63652e048c44697363757373696f6e206d6f64756c6520707265646566696e6564206572726f7273ad090c5070616c6c65745f776f726b696e675f67726f7570186572726f7273144572726f720804540004490001803c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f7729605374616b6542616c616e636543616e6e6f7442655a65726f0001049850726f7669646564207374616b652062616c616e63652063616e6e6f74206265207a65726f2e4c4f70656e696e67446f65734e6f7445786973740002045c4f70656e696e6720646f6573206e6f742065786973742e6443616e6e6f74486972654d756c7469706c654c656164657273000304bc43616e6e6f742066696c6c206f70656e696e672077697468206d756c7469706c65206170706c69636174696f6e732e74576f726b65724170706c69636174696f6e446f65734e6f74457869737400040488576f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e744d6178416374697665576f726b65724e756d626572457863656564656400050488576f726b696e672067726f75702073697a65206c696d69742065786365656465642e9c5375636365737366756c576f726b65724170706c69636174696f6e446f65734e6f744578697374000604b45375636365737366756c20776f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e8043616e6e6f74486972654c65616465725768656e4c6561646572457869737473000704c45468657265206973206c656164657220616c72656164792c2063616e6e6f74206869726520616e6f74686572206f6e652e4049734e6f744c6561644163636f756e740008044c4e6f742061206c656164206163636f756e742e4443757272656e744c6561644e6f745365740009046043757272656e74206c656164206973206e6f74207365742e48576f726b6572446f65734e6f744578697374000a0458576f726b657220646f6573206e6f742065786973742e4c496e76616c69644d656d6265724f726967696e000b0470496e76616c6964206f726967696e20666f722061206d656d6265722e705369676e657249734e6f74576f726b6572526f6c654163636f756e74000c04885369676e6572206973206e6f7420776f726b657220726f6c65206163636f756e742e4842656c6f774d696e696d756d5374616b6573000d04885374616b696e67206c657373207468616e20746865206c6f77657220626f756e642e7c496e73756666696369656e7442616c616e6365546f436f7665725374616b65000e0490496e73756666696369656e742062616c616e636520746f20636f766572207374616b652e884170706c69636174696f6e5374616b65446f65736e744d617463684f70656e696e67000f04d84170706c69636174696f6e207374616b65206973206c657373207468616e207265717569726564206f70656e696e67207374616b652e504f726967696e49734e6f744170706c6963616e74001004604f726967696e206973206e6f74206170706c6963616e742e3c576f726b657249734c656176696e6700110498496e76616c6964206f7065726174696f6e202d20776f726b6572206973206c656176696e672e5043616e6e6f74526577617264576974685a65726f0012046452657761726420636f756c64206e6f74206265207a65726f2e78496e76616c69645374616b696e674163636f756e74466f724d656d626572001304ac5374616b696e67206163636f756e7420646f65736e27742062656c6f6e6720746f2061206d656d6265722e5c436f6e666c6963745374616b65734f6e4163636f756e74001404b05374616b696e67206163636f756e7420636f6e7461696e7320636f6e666c696374696e67207374616b65732e44576f726b65724861734e6f5265776172640015047c576f726b657220686173206e6f20726563757272696e67207265776172642e78556e7374616b696e67506572696f644c6573735468616e4d696e696d756d001604090153706563696669656420756e7374616b696e6720706572696f64206973206c657373207468656e206d696e696d756d2073657420666f72207468652067726f75702e3c43616e6e6f745370656e645a65726f00170460496e76616c6964207370656e64696e6720616d6f756e742e74496e73756666696369656e74427564676574466f725370656e64696e67001804a449742773206e6f7420656e6f7567682062756467657420666f722074686973207370656e64696e672e584e6f4170706c69636174696f6e7350726f7669646564001904bc43616e6e6f742066696c6c206f70656e696e67202d206e6f206170706c69636174696f6e732070726f76696465642ea043616e6e6f7444656372656173655374616b6544656c7461477265617465725468616e5374616b65001a04fc43616e6e6f74206465637265617365207374616b65202d207374616b652064656c74612067726561746572207468616e20696e697469616c207374616b652e644170706c69636174696f6e734e6f74466f724f70656e696e67001b04f0547279696e6720746f2066696c6c206f70656e696e67207769746820616e206170706c69636174696f6e20666f72206f74686572206f70656e696e6764576f726b657253746f7261676556616c7565546f6f4c6f6e67001c0480576f726b65722073746f72616765207465787420697320746f6f206c6f6e672e70496e73756666696369656e74546f6b656e73466f7246756e64696e67001d04f8496e73756666696369656e7420746f6b656e7320666f722066756e64696e6720286f6e206d656d62657220636f6e74726f6c6c6572206163636f756e7429445a65726f546f6b656e7346756e64696e67001e047c547279696e6720746f2066756e642077697468207a65726f20746f6b656e7378496e73756666696369656e7442616c616e6365466f725472616e73666572001f04b443616e6e6f742077697468647261773a20696e73756666696369656e74206275646765742062616c616e63652e048c44697363757373696f6e206d6f64756c6520707265646566696e6564206572726f7273b1090c5070616c6c65745f776f726b696e675f67726f7570186572726f7273144572726f720804540004490001803c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f7729605374616b6542616c616e636543616e6e6f7442655a65726f0001049850726f7669646564207374616b652062616c616e63652063616e6e6f74206265207a65726f2e4c4f70656e696e67446f65734e6f7445786973740002045c4f70656e696e6720646f6573206e6f742065786973742e6443616e6e6f74486972654d756c7469706c654c656164657273000304bc43616e6e6f742066696c6c206f70656e696e672077697468206d756c7469706c65206170706c69636174696f6e732e74576f726b65724170706c69636174696f6e446f65734e6f74457869737400040488576f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e744d6178416374697665576f726b65724e756d626572457863656564656400050488576f726b696e672067726f75702073697a65206c696d69742065786365656465642e9c5375636365737366756c576f726b65724170706c69636174696f6e446f65734e6f744578697374000604b45375636365737366756c20776f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e8043616e6e6f74486972654c65616465725768656e4c6561646572457869737473000704c45468657265206973206c656164657220616c72656164792c2063616e6e6f74206869726520616e6f74686572206f6e652e4049734e6f744c6561644163636f756e740008044c4e6f742061206c656164206163636f756e742e4443757272656e744c6561644e6f745365740009046043757272656e74206c656164206973206e6f74207365742e48576f726b6572446f65734e6f744578697374000a0458576f726b657220646f6573206e6f742065786973742e4c496e76616c69644d656d6265724f726967696e000b0470496e76616c6964206f726967696e20666f722061206d656d6265722e705369676e657249734e6f74576f726b6572526f6c654163636f756e74000c04885369676e6572206973206e6f7420776f726b657220726f6c65206163636f756e742e4842656c6f774d696e696d756d5374616b6573000d04885374616b696e67206c657373207468616e20746865206c6f77657220626f756e642e7c496e73756666696369656e7442616c616e6365546f436f7665725374616b65000e0490496e73756666696369656e742062616c616e636520746f20636f766572207374616b652e884170706c69636174696f6e5374616b65446f65736e744d617463684f70656e696e67000f04d84170706c69636174696f6e207374616b65206973206c657373207468616e207265717569726564206f70656e696e67207374616b652e504f726967696e49734e6f744170706c6963616e74001004604f726967696e206973206e6f74206170706c6963616e742e3c576f726b657249734c656176696e6700110498496e76616c6964206f7065726174696f6e202d20776f726b6572206973206c656176696e672e5043616e6e6f74526577617264576974685a65726f0012046452657761726420636f756c64206e6f74206265207a65726f2e78496e76616c69645374616b696e674163636f756e74466f724d656d626572001304ac5374616b696e67206163636f756e7420646f65736e27742062656c6f6e6720746f2061206d656d6265722e5c436f6e666c6963745374616b65734f6e4163636f756e74001404b05374616b696e67206163636f756e7420636f6e7461696e7320636f6e666c696374696e67207374616b65732e44576f726b65724861734e6f5265776172640015047c576f726b657220686173206e6f20726563757272696e67207265776172642e78556e7374616b696e67506572696f644c6573735468616e4d696e696d756d001604090153706563696669656420756e7374616b696e6720706572696f64206973206c657373207468656e206d696e696d756d2073657420666f72207468652067726f75702e3c43616e6e6f745370656e645a65726f00170460496e76616c6964207370656e64696e6720616d6f756e742e74496e73756666696369656e74427564676574466f725370656e64696e67001804a449742773206e6f7420656e6f7567682062756467657420666f722074686973207370656e64696e672e584e6f4170706c69636174696f6e7350726f7669646564001904bc43616e6e6f742066696c6c206f70656e696e67202d206e6f206170706c69636174696f6e732070726f76696465642ea043616e6e6f7444656372656173655374616b6544656c7461477265617465725468616e5374616b65001a04fc43616e6e6f74206465637265617365207374616b65202d207374616b652064656c74612067726561746572207468616e20696e697469616c207374616b652e644170706c69636174696f6e734e6f74466f724f70656e696e67001b04f0547279696e6720746f2066696c6c206f70656e696e67207769746820616e206170706c69636174696f6e20666f72206f74686572206f70656e696e6764576f726b657253746f7261676556616c7565546f6f4c6f6e67001c0480576f726b65722073746f72616765207465787420697320746f6f206c6f6e672e70496e73756666696369656e74546f6b656e73466f7246756e64696e67001d04f8496e73756666696369656e7420746f6b656e7320666f722066756e64696e6720286f6e206d656d62657220636f6e74726f6c6c6572206163636f756e7429445a65726f546f6b656e7346756e64696e67001e047c547279696e6720746f2066756e642077697468207a65726f20746f6b656e7378496e73756666696369656e7442616c616e6365466f725472616e73666572001f04b443616e6e6f742077697468647261773a20696e73756666696369656e74206275646765742062616c616e63652e048c44697363757373696f6e206d6f64756c6520707265646566696e6564206572726f7273b5090c5070616c6c65745f776f726b696e675f67726f7570186572726f7273144572726f720804540004490001803c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f7729605374616b6542616c616e636543616e6e6f7442655a65726f0001049850726f7669646564207374616b652062616c616e63652063616e6e6f74206265207a65726f2e4c4f70656e696e67446f65734e6f7445786973740002045c4f70656e696e6720646f6573206e6f742065786973742e6443616e6e6f74486972654d756c7469706c654c656164657273000304bc43616e6e6f742066696c6c206f70656e696e672077697468206d756c7469706c65206170706c69636174696f6e732e74576f726b65724170706c69636174696f6e446f65734e6f74457869737400040488576f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e744d6178416374697665576f726b65724e756d626572457863656564656400050488576f726b696e672067726f75702073697a65206c696d69742065786365656465642e9c5375636365737366756c576f726b65724170706c69636174696f6e446f65734e6f744578697374000604b45375636365737366756c20776f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e8043616e6e6f74486972654c65616465725768656e4c6561646572457869737473000704c45468657265206973206c656164657220616c72656164792c2063616e6e6f74206869726520616e6f74686572206f6e652e4049734e6f744c6561644163636f756e740008044c4e6f742061206c656164206163636f756e742e4443757272656e744c6561644e6f745365740009046043757272656e74206c656164206973206e6f74207365742e48576f726b6572446f65734e6f744578697374000a0458576f726b657220646f6573206e6f742065786973742e4c496e76616c69644d656d6265724f726967696e000b0470496e76616c6964206f726967696e20666f722061206d656d6265722e705369676e657249734e6f74576f726b6572526f6c654163636f756e74000c04885369676e6572206973206e6f7420776f726b657220726f6c65206163636f756e742e4842656c6f774d696e696d756d5374616b6573000d04885374616b696e67206c657373207468616e20746865206c6f77657220626f756e642e7c496e73756666696369656e7442616c616e6365546f436f7665725374616b65000e0490496e73756666696369656e742062616c616e636520746f20636f766572207374616b652e884170706c69636174696f6e5374616b65446f65736e744d617463684f70656e696e67000f04d84170706c69636174696f6e207374616b65206973206c657373207468616e207265717569726564206f70656e696e67207374616b652e504f726967696e49734e6f744170706c6963616e74001004604f726967696e206973206e6f74206170706c6963616e742e3c576f726b657249734c656176696e6700110498496e76616c6964206f7065726174696f6e202d20776f726b6572206973206c656176696e672e5043616e6e6f74526577617264576974685a65726f0012046452657761726420636f756c64206e6f74206265207a65726f2e78496e76616c69645374616b696e674163636f756e74466f724d656d626572001304ac5374616b696e67206163636f756e7420646f65736e27742062656c6f6e6720746f2061206d656d6265722e5c436f6e666c6963745374616b65734f6e4163636f756e74001404b05374616b696e67206163636f756e7420636f6e7461696e7320636f6e666c696374696e67207374616b65732e44576f726b65724861734e6f5265776172640015047c576f726b657220686173206e6f20726563757272696e67207265776172642e78556e7374616b696e67506572696f644c6573735468616e4d696e696d756d001604090153706563696669656420756e7374616b696e6720706572696f64206973206c657373207468656e206d696e696d756d2073657420666f72207468652067726f75702e3c43616e6e6f745370656e645a65726f00170460496e76616c6964207370656e64696e6720616d6f756e742e74496e73756666696369656e74427564676574466f725370656e64696e67001804a449742773206e6f7420656e6f7567682062756467657420666f722074686973207370656e64696e672e584e6f4170706c69636174696f6e7350726f7669646564001904bc43616e6e6f742066696c6c206f70656e696e67202d206e6f206170706c69636174696f6e732070726f76696465642ea043616e6e6f7444656372656173655374616b6544656c7461477265617465725468616e5374616b65001a04fc43616e6e6f74206465637265617365207374616b65202d207374616b652064656c74612067726561746572207468616e20696e697469616c207374616b652e644170706c69636174696f6e734e6f74466f724f70656e696e67001b04f0547279696e6720746f2066696c6c206f70656e696e67207769746820616e206170706c69636174696f6e20666f72206f74686572206f70656e696e6764576f726b657253746f7261676556616c7565546f6f4c6f6e67001c0480576f726b65722073746f72616765207465787420697320746f6f206c6f6e672e70496e73756666696369656e74546f6b656e73466f7246756e64696e67001d04f8496e73756666696369656e7420746f6b656e7320666f722066756e64696e6720286f6e206d656d62657220636f6e74726f6c6c6572206163636f756e7429445a65726f546f6b656e7346756e64696e67001e047c547279696e6720746f2066756e642077697468207a65726f20746f6b656e7378496e73756666696369656e7442616c616e6365466f725472616e73666572001f04b443616e6e6f742077697468647261773a20696e73756666696369656e74206275646765742062616c616e63652e048c44697363757373696f6e206d6f64756c6520707265646566696e6564206572726f7273b9090c5070616c6c65745f776f726b696e675f67726f7570186572726f7273144572726f720804540004490001803c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f7729605374616b6542616c616e636543616e6e6f7442655a65726f0001049850726f7669646564207374616b652062616c616e63652063616e6e6f74206265207a65726f2e4c4f70656e696e67446f65734e6f7445786973740002045c4f70656e696e6720646f6573206e6f742065786973742e6443616e6e6f74486972654d756c7469706c654c656164657273000304bc43616e6e6f742066696c6c206f70656e696e672077697468206d756c7469706c65206170706c69636174696f6e732e74576f726b65724170706c69636174696f6e446f65734e6f74457869737400040488576f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e744d6178416374697665576f726b65724e756d626572457863656564656400050488576f726b696e672067726f75702073697a65206c696d69742065786365656465642e9c5375636365737366756c576f726b65724170706c69636174696f6e446f65734e6f744578697374000604b45375636365737366756c20776f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e8043616e6e6f74486972654c65616465725768656e4c6561646572457869737473000704c45468657265206973206c656164657220616c72656164792c2063616e6e6f74206869726520616e6f74686572206f6e652e4049734e6f744c6561644163636f756e740008044c4e6f742061206c656164206163636f756e742e4443757272656e744c6561644e6f745365740009046043757272656e74206c656164206973206e6f74207365742e48576f726b6572446f65734e6f744578697374000a0458576f726b657220646f6573206e6f742065786973742e4c496e76616c69644d656d6265724f726967696e000b0470496e76616c6964206f726967696e20666f722061206d656d6265722e705369676e657249734e6f74576f726b6572526f6c654163636f756e74000c04885369676e6572206973206e6f7420776f726b657220726f6c65206163636f756e742e4842656c6f774d696e696d756d5374616b6573000d04885374616b696e67206c657373207468616e20746865206c6f77657220626f756e642e7c496e73756666696369656e7442616c616e6365546f436f7665725374616b65000e0490496e73756666696369656e742062616c616e636520746f20636f766572207374616b652e884170706c69636174696f6e5374616b65446f65736e744d617463684f70656e696e67000f04d84170706c69636174696f6e207374616b65206973206c657373207468616e207265717569726564206f70656e696e67207374616b652e504f726967696e49734e6f744170706c6963616e74001004604f726967696e206973206e6f74206170706c6963616e742e3c576f726b657249734c656176696e6700110498496e76616c6964206f7065726174696f6e202d20776f726b6572206973206c656176696e672e5043616e6e6f74526577617264576974685a65726f0012046452657761726420636f756c64206e6f74206265207a65726f2e78496e76616c69645374616b696e674163636f756e74466f724d656d626572001304ac5374616b696e67206163636f756e7420646f65736e27742062656c6f6e6720746f2061206d656d6265722e5c436f6e666c6963745374616b65734f6e4163636f756e74001404b05374616b696e67206163636f756e7420636f6e7461696e7320636f6e666c696374696e67207374616b65732e44576f726b65724861734e6f5265776172640015047c576f726b657220686173206e6f20726563757272696e67207265776172642e78556e7374616b696e67506572696f644c6573735468616e4d696e696d756d001604090153706563696669656420756e7374616b696e6720706572696f64206973206c657373207468656e206d696e696d756d2073657420666f72207468652067726f75702e3c43616e6e6f745370656e645a65726f00170460496e76616c6964207370656e64696e6720616d6f756e742e74496e73756666696369656e74427564676574466f725370656e64696e67001804a449742773206e6f7420656e6f7567682062756467657420666f722074686973207370656e64696e672e584e6f4170706c69636174696f6e7350726f7669646564001904bc43616e6e6f742066696c6c206f70656e696e67202d206e6f206170706c69636174696f6e732070726f76696465642ea043616e6e6f7444656372656173655374616b6544656c7461477265617465725468616e5374616b65001a04fc43616e6e6f74206465637265617365207374616b65202d207374616b652064656c74612067726561746572207468616e20696e697469616c207374616b652e644170706c69636174696f6e734e6f74466f724f70656e696e67001b04f0547279696e6720746f2066696c6c206f70656e696e67207769746820616e206170706c69636174696f6e20666f72206f74686572206f70656e696e6764576f726b657253746f7261676556616c7565546f6f4c6f6e67001c0480576f726b65722073746f72616765207465787420697320746f6f206c6f6e672e70496e73756666696369656e74546f6b656e73466f7246756e64696e67001d04f8496e73756666696369656e7420746f6b656e7320666f722066756e64696e6720286f6e206d656d62657220636f6e74726f6c6c6572206163636f756e7429445a65726f546f6b656e7346756e64696e67001e047c547279696e6720746f2066756e642077697468207a65726f20746f6b656e7378496e73756666696369656e7442616c616e6365466f725472616e73666572001f04b443616e6e6f742077697468647261773a20696e73756666696369656e74206275646765742062616c616e63652e048c44697363757373696f6e206d6f64756c6520707265646566696e6564206572726f7273bd090c5070616c6c65745f776f726b696e675f67726f7570186572726f7273144572726f720804540004490001803c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f7729605374616b6542616c616e636543616e6e6f7442655a65726f0001049850726f7669646564207374616b652062616c616e63652063616e6e6f74206265207a65726f2e4c4f70656e696e67446f65734e6f7445786973740002045c4f70656e696e6720646f6573206e6f742065786973742e6443616e6e6f74486972654d756c7469706c654c656164657273000304bc43616e6e6f742066696c6c206f70656e696e672077697468206d756c7469706c65206170706c69636174696f6e732e74576f726b65724170706c69636174696f6e446f65734e6f74457869737400040488576f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e744d6178416374697665576f726b65724e756d626572457863656564656400050488576f726b696e672067726f75702073697a65206c696d69742065786365656465642e9c5375636365737366756c576f726b65724170706c69636174696f6e446f65734e6f744578697374000604b45375636365737366756c20776f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e8043616e6e6f74486972654c65616465725768656e4c6561646572457869737473000704c45468657265206973206c656164657220616c72656164792c2063616e6e6f74206869726520616e6f74686572206f6e652e4049734e6f744c6561644163636f756e740008044c4e6f742061206c656164206163636f756e742e4443757272656e744c6561644e6f745365740009046043757272656e74206c656164206973206e6f74207365742e48576f726b6572446f65734e6f744578697374000a0458576f726b657220646f6573206e6f742065786973742e4c496e76616c69644d656d6265724f726967696e000b0470496e76616c6964206f726967696e20666f722061206d656d6265722e705369676e657249734e6f74576f726b6572526f6c654163636f756e74000c04885369676e6572206973206e6f7420776f726b657220726f6c65206163636f756e742e4842656c6f774d696e696d756d5374616b6573000d04885374616b696e67206c657373207468616e20746865206c6f77657220626f756e642e7c496e73756666696369656e7442616c616e6365546f436f7665725374616b65000e0490496e73756666696369656e742062616c616e636520746f20636f766572207374616b652e884170706c69636174696f6e5374616b65446f65736e744d617463684f70656e696e67000f04d84170706c69636174696f6e207374616b65206973206c657373207468616e207265717569726564206f70656e696e67207374616b652e504f726967696e49734e6f744170706c6963616e74001004604f726967696e206973206e6f74206170706c6963616e742e3c576f726b657249734c656176696e6700110498496e76616c6964206f7065726174696f6e202d20776f726b6572206973206c656176696e672e5043616e6e6f74526577617264576974685a65726f0012046452657761726420636f756c64206e6f74206265207a65726f2e78496e76616c69645374616b696e674163636f756e74466f724d656d626572001304ac5374616b696e67206163636f756e7420646f65736e27742062656c6f6e6720746f2061206d656d6265722e5c436f6e666c6963745374616b65734f6e4163636f756e74001404b05374616b696e67206163636f756e7420636f6e7461696e7320636f6e666c696374696e67207374616b65732e44576f726b65724861734e6f5265776172640015047c576f726b657220686173206e6f20726563757272696e67207265776172642e78556e7374616b696e67506572696f644c6573735468616e4d696e696d756d001604090153706563696669656420756e7374616b696e6720706572696f64206973206c657373207468656e206d696e696d756d2073657420666f72207468652067726f75702e3c43616e6e6f745370656e645a65726f00170460496e76616c6964207370656e64696e6720616d6f756e742e74496e73756666696369656e74427564676574466f725370656e64696e67001804a449742773206e6f7420656e6f7567682062756467657420666f722074686973207370656e64696e672e584e6f4170706c69636174696f6e7350726f7669646564001904bc43616e6e6f742066696c6c206f70656e696e67202d206e6f206170706c69636174696f6e732070726f76696465642ea043616e6e6f7444656372656173655374616b6544656c7461477265617465725468616e5374616b65001a04fc43616e6e6f74206465637265617365207374616b65202d207374616b652064656c74612067726561746572207468616e20696e697469616c207374616b652e644170706c69636174696f6e734e6f74466f724f70656e696e67001b04f0547279696e6720746f2066696c6c206f70656e696e67207769746820616e206170706c69636174696f6e20666f72206f74686572206f70656e696e6764576f726b657253746f7261676556616c7565546f6f4c6f6e67001c0480576f726b65722073746f72616765207465787420697320746f6f206c6f6e672e70496e73756666696369656e74546f6b656e73466f7246756e64696e67001d04f8496e73756666696369656e7420746f6b656e7320666f722066756e64696e6720286f6e206d656d62657220636f6e74726f6c6c6572206163636f756e7429445a65726f546f6b656e7346756e64696e67001e047c547279696e6720746f2066756e642077697468207a65726f20746f6b656e7378496e73756666696369656e7442616c616e6365466f725472616e73666572001f04b443616e6e6f742077697468647261773a20696e73756666696369656e74206275646765742062616c616e63652e048c44697363757373696f6e206d6f64756c6520707265646566696e6564206572726f7273c1090c5070616c6c65745f776f726b696e675f67726f7570186572726f7273144572726f720804540004490001803c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f7729605374616b6542616c616e636543616e6e6f7442655a65726f0001049850726f7669646564207374616b652062616c616e63652063616e6e6f74206265207a65726f2e4c4f70656e696e67446f65734e6f7445786973740002045c4f70656e696e6720646f6573206e6f742065786973742e6443616e6e6f74486972654d756c7469706c654c656164657273000304bc43616e6e6f742066696c6c206f70656e696e672077697468206d756c7469706c65206170706c69636174696f6e732e74576f726b65724170706c69636174696f6e446f65734e6f74457869737400040488576f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e744d6178416374697665576f726b65724e756d626572457863656564656400050488576f726b696e672067726f75702073697a65206c696d69742065786365656465642e9c5375636365737366756c576f726b65724170706c69636174696f6e446f65734e6f744578697374000604b45375636365737366756c20776f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e8043616e6e6f74486972654c65616465725768656e4c6561646572457869737473000704c45468657265206973206c656164657220616c72656164792c2063616e6e6f74206869726520616e6f74686572206f6e652e4049734e6f744c6561644163636f756e740008044c4e6f742061206c656164206163636f756e742e4443757272656e744c6561644e6f745365740009046043757272656e74206c656164206973206e6f74207365742e48576f726b6572446f65734e6f744578697374000a0458576f726b657220646f6573206e6f742065786973742e4c496e76616c69644d656d6265724f726967696e000b0470496e76616c6964206f726967696e20666f722061206d656d6265722e705369676e657249734e6f74576f726b6572526f6c654163636f756e74000c04885369676e6572206973206e6f7420776f726b657220726f6c65206163636f756e742e4842656c6f774d696e696d756d5374616b6573000d04885374616b696e67206c657373207468616e20746865206c6f77657220626f756e642e7c496e73756666696369656e7442616c616e6365546f436f7665725374616b65000e0490496e73756666696369656e742062616c616e636520746f20636f766572207374616b652e884170706c69636174696f6e5374616b65446f65736e744d617463684f70656e696e67000f04d84170706c69636174696f6e207374616b65206973206c657373207468616e207265717569726564206f70656e696e67207374616b652e504f726967696e49734e6f744170706c6963616e74001004604f726967696e206973206e6f74206170706c6963616e742e3c576f726b657249734c656176696e6700110498496e76616c6964206f7065726174696f6e202d20776f726b6572206973206c656176696e672e5043616e6e6f74526577617264576974685a65726f0012046452657761726420636f756c64206e6f74206265207a65726f2e78496e76616c69645374616b696e674163636f756e74466f724d656d626572001304ac5374616b696e67206163636f756e7420646f65736e27742062656c6f6e6720746f2061206d656d6265722e5c436f6e666c6963745374616b65734f6e4163636f756e74001404b05374616b696e67206163636f756e7420636f6e7461696e7320636f6e666c696374696e67207374616b65732e44576f726b65724861734e6f5265776172640015047c576f726b657220686173206e6f20726563757272696e67207265776172642e78556e7374616b696e67506572696f644c6573735468616e4d696e696d756d001604090153706563696669656420756e7374616b696e6720706572696f64206973206c657373207468656e206d696e696d756d2073657420666f72207468652067726f75702e3c43616e6e6f745370656e645a65726f00170460496e76616c6964207370656e64696e6720616d6f756e742e74496e73756666696369656e74427564676574466f725370656e64696e67001804a449742773206e6f7420656e6f7567682062756467657420666f722074686973207370656e64696e672e584e6f4170706c69636174696f6e7350726f7669646564001904bc43616e6e6f742066696c6c206f70656e696e67202d206e6f206170706c69636174696f6e732070726f76696465642ea043616e6e6f7444656372656173655374616b6544656c7461477265617465725468616e5374616b65001a04fc43616e6e6f74206465637265617365207374616b65202d207374616b652064656c74612067726561746572207468616e20696e697469616c207374616b652e644170706c69636174696f6e734e6f74466f724f70656e696e67001b04f0547279696e6720746f2066696c6c206f70656e696e67207769746820616e206170706c69636174696f6e20666f72206f74686572206f70656e696e6764576f726b657253746f7261676556616c7565546f6f4c6f6e67001c0480576f726b65722073746f72616765207465787420697320746f6f206c6f6e672e70496e73756666696369656e74546f6b656e73466f7246756e64696e67001d04f8496e73756666696369656e7420746f6b656e7320666f722066756e64696e6720286f6e206d656d62657220636f6e74726f6c6c6572206163636f756e7429445a65726f546f6b656e7346756e64696e67001e047c547279696e6720746f2066756e642077697468207a65726f20746f6b656e7378496e73756666696369656e7442616c616e6365466f725472616e73666572001f04b443616e6e6f742077697468647261773a20696e73756666696369656e74206275646765742062616c616e63652e048c44697363757373696f6e206d6f64756c6520707265646566696e6564206572726f7273c5090c5070616c6c65745f776f726b696e675f67726f7570186572726f7273144572726f720804540004490001803c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f7729605374616b6542616c616e636543616e6e6f7442655a65726f0001049850726f7669646564207374616b652062616c616e63652063616e6e6f74206265207a65726f2e4c4f70656e696e67446f65734e6f7445786973740002045c4f70656e696e6720646f6573206e6f742065786973742e6443616e6e6f74486972654d756c7469706c654c656164657273000304bc43616e6e6f742066696c6c206f70656e696e672077697468206d756c7469706c65206170706c69636174696f6e732e74576f726b65724170706c69636174696f6e446f65734e6f74457869737400040488576f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e744d6178416374697665576f726b65724e756d626572457863656564656400050488576f726b696e672067726f75702073697a65206c696d69742065786365656465642e9c5375636365737366756c576f726b65724170706c69636174696f6e446f65734e6f744578697374000604b45375636365737366756c20776f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e8043616e6e6f74486972654c65616465725768656e4c6561646572457869737473000704c45468657265206973206c656164657220616c72656164792c2063616e6e6f74206869726520616e6f74686572206f6e652e4049734e6f744c6561644163636f756e740008044c4e6f742061206c656164206163636f756e742e4443757272656e744c6561644e6f745365740009046043757272656e74206c656164206973206e6f74207365742e48576f726b6572446f65734e6f744578697374000a0458576f726b657220646f6573206e6f742065786973742e4c496e76616c69644d656d6265724f726967696e000b0470496e76616c6964206f726967696e20666f722061206d656d6265722e705369676e657249734e6f74576f726b6572526f6c654163636f756e74000c04885369676e6572206973206e6f7420776f726b657220726f6c65206163636f756e742e4842656c6f774d696e696d756d5374616b6573000d04885374616b696e67206c657373207468616e20746865206c6f77657220626f756e642e7c496e73756666696369656e7442616c616e6365546f436f7665725374616b65000e0490496e73756666696369656e742062616c616e636520746f20636f766572207374616b652e884170706c69636174696f6e5374616b65446f65736e744d617463684f70656e696e67000f04d84170706c69636174696f6e207374616b65206973206c657373207468616e207265717569726564206f70656e696e67207374616b652e504f726967696e49734e6f744170706c6963616e74001004604f726967696e206973206e6f74206170706c6963616e742e3c576f726b657249734c656176696e6700110498496e76616c6964206f7065726174696f6e202d20776f726b6572206973206c656176696e672e5043616e6e6f74526577617264576974685a65726f0012046452657761726420636f756c64206e6f74206265207a65726f2e78496e76616c69645374616b696e674163636f756e74466f724d656d626572001304ac5374616b696e67206163636f756e7420646f65736e27742062656c6f6e6720746f2061206d656d6265722e5c436f6e666c6963745374616b65734f6e4163636f756e74001404b05374616b696e67206163636f756e7420636f6e7461696e7320636f6e666c696374696e67207374616b65732e44576f726b65724861734e6f5265776172640015047c576f726b657220686173206e6f20726563757272696e67207265776172642e78556e7374616b696e67506572696f644c6573735468616e4d696e696d756d001604090153706563696669656420756e7374616b696e6720706572696f64206973206c657373207468656e206d696e696d756d2073657420666f72207468652067726f75702e3c43616e6e6f745370656e645a65726f00170460496e76616c6964207370656e64696e6720616d6f756e742e74496e73756666696369656e74427564676574466f725370656e64696e67001804a449742773206e6f7420656e6f7567682062756467657420666f722074686973207370656e64696e672e584e6f4170706c69636174696f6e7350726f7669646564001904bc43616e6e6f742066696c6c206f70656e696e67202d206e6f206170706c69636174696f6e732070726f76696465642ea043616e6e6f7444656372656173655374616b6544656c7461477265617465725468616e5374616b65001a04fc43616e6e6f74206465637265617365207374616b65202d207374616b652064656c74612067726561746572207468616e20696e697469616c207374616b652e644170706c69636174696f6e734e6f74466f724f70656e696e67001b04f0547279696e6720746f2066696c6c206f70656e696e67207769746820616e206170706c69636174696f6e20666f72206f74686572206f70656e696e6764576f726b657253746f7261676556616c7565546f6f4c6f6e67001c0480576f726b65722073746f72616765207465787420697320746f6f206c6f6e672e70496e73756666696369656e74546f6b656e73466f7246756e64696e67001d04f8496e73756666696369656e7420746f6b656e7320666f722066756e64696e6720286f6e206d656d62657220636f6e74726f6c6c6572206163636f756e7429445a65726f546f6b656e7346756e64696e67001e047c547279696e6720746f2066756e642077697468207a65726f20746f6b656e7378496e73756666696369656e7442616c616e6365466f725472616e73666572001f04b443616e6e6f742077697468647261773a20696e73756666696369656e74206275646765742062616c616e63652e048c44697363757373696f6e206d6f64756c6520707265646566696e6564206572726f7273c909102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c4164647265737301001043616c6c013904245369676e617475726501cd0914457874726101d90900040030000000cd09082873705f72756e74696d65384d756c74695369676e617475726500010c1c4564323535313904009d050148656432353531393a3a5369676e61747572650000001c537232353531390400d1050148737232353531393a3a5369676e61747572650001001445636473610400d109014065636473613a3a5369676e617475726500020000d1090c1c73705f636f7265146563647361245369676e617475726500000400d50901205b75383b2036355d0000d509000003410000000800d90900000420dd09e109e509e909ed09f509f909fd0900dd0910306672616d655f73797374656d28657874656e73696f6e7354636865636b5f6e6f6e5f7a65726f5f73656e64657248436865636b4e6f6e5a65726f53656e64657204045400000000e10910306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e04045400000000e50910306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e04045400000000e90910306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e6573697304045400000000ed0910306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c69747904045400000400f109010c4572610000f109102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff0000f50910306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e636504045400000400e5030120543a3a496e6465780000f90910306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b57656967687404045400000000fd09086870616c6c65745f7472616e73616374696f6e5f7061796d656e74604368617267655472616e73616374696f6e5061796d656e7404045400000400ec013042616c616e63654f663c543e0000010a08586a6f7973747265616d5f6e6f64655f72756e74696d651c52756e74696d6500000000a41853797374656d011853797374656d401c4163636f756e7401010402000c4101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e2c426c6f636b57656967687401001c180000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b4861736801010405102c8000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510300400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801002c80000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e18446967657374010034040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301004404001ca0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e001d01204e4f54453a20546865206974656d20697320756e626f756e6420616e642073686f756c64207468657265666f7265206e657665722062652072656164206f6e20636861696e2ed020497420636f756c64206f746865727769736520696e666c6174652074686520506f562073697a65206f66206120626c6f636b2e002d01204576656e747320686176652061206c6172676520696e2d6d656d6f72792073697a652e20426f7820746865206576656e747320746f206e6f7420676f206f75742d6f662d6d656d6f7279fc206a75737420696e206361736520736f6d656f6e65207374696c6c207265616473207468656d2066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f70696373010104022cd9030400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e004d01205468652076616c756520686173207468652074797065206028543a3a426c6f636b4e756d6265722c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000e10304000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e740100980400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e740100980400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e50686173650000d103040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e01ed0301501830426c6f636b57656967687473f903f901a2663852000b00204aa9d10113ffffffffffffffff0230801300010b00bc29a92e011366666666666666a6010b0098f73e5d0113ffffffffffffffbf0100000230801300010b00447c13a3011366666666666666e6010b00204aa9d10113ffffffffffffffff01070088526a74130000000000000040023080130000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e67746809043000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e74101060090000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e20446257656967687411044008fc370000000000f0ef0402000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6e1504d102386a6f7973747265616d2d6e6f6465386a6f7973747265616d2d6e6f64650c000000b80b0000000000002cdf6acb689907609b0400000037e397fc7c91f5e40100000040fe3ad401f8959a06000000d2bc9897eed08f1503000000f78b278be53f454c02000000ed99c5acb25eedf503000000cbca25e39f14238702000000687ad44ad37f03c201000000bc9d89904f5b923f0100000037c8bb1350a9a2a803000000ab3c0572291feb8b0100000001000000010484204765742074686520636861696e27732063757272656e742076657273696f6e2e28535335385072656669782904087e0014a8205468652064657369676e61746564205353353820707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e012d04001c5574696c697479000131040174044c626174636865645f63616c6c735f6c696d69741010aa2a000004a820546865206c696d6974206f6e20746865206e756d626572206f6620626174636865642063616c6c732e019d06011042616265011042616265442845706f6368496e64657801002820000000000000000004542043757272656e742065706f636820696e6465782e2c417574686f7269746965730100a1060400046c2043757272656e742065706f636820617574686f7269746965732e2c47656e65736973536c6f740100510420000000000000000008f82054686520736c6f74206174207768696368207468652066697273742065706f63682061637475616c6c7920737461727465642e205468697320697320309020756e74696c2074686520666972737420626c6f636b206f662074686520636861696e2e2c43757272656e74536c6f740100510420000000000000000004542043757272656e7420736c6f74206e756d6265722e2852616e646f6d6e65737301000480000000000000000000000000000000000000000000000000000000000000000028b8205468652065706f63682072616e646f6d6e65737320666f7220746865202a63757272656e742a2065706f63682e002c20232053656375726974790005012054686973204d555354204e4f54206265207573656420666f722067616d626c696e672c2061732069742063616e20626520696e666c75656e6365642062792061f8206d616c6963696f75732076616c696461746f7220696e207468652073686f7274207465726d2e204974204d4159206265207573656420696e206d616e7915012063727970746f677261706869632070726f746f636f6c732c20686f77657665722c20736f206c6f6e67206173206f6e652072656d656d6265727320746861742074686973150120286c696b652065766572797468696e6720656c7365206f6e2d636861696e29206974206973207075626c69632e20466f72206578616d706c652c2069742063616e206265050120757365642077686572652061206e756d626572206973206e656564656420746861742063616e6e6f742068617665206265656e2063686f73656e20627920616e0d01206164766572736172792c20666f7220707572706f7365732073756368206173207075626c69632d636f696e207a65726f2d6b6e6f776c656467652070726f6f66732e6050656e64696e6745706f6368436f6e6669674368616e67650000590404000461012050656e64696e672065706f636820636f6e66696775726174696f6e206368616e676520746861742077696c6c206265206170706c696564207768656e20746865206e6578742065706f636820697320656e61637465642e384e65787452616e646f6d6e657373010004800000000000000000000000000000000000000000000000000000000000000000045c204e6578742065706f63682072616e646f6d6e6573732e3c4e657874417574686f7269746965730100a10604000460204e6578742065706f636820617574686f7269746965732e305365676d656e74496e6465780100101000000000247c2052616e646f6d6e65737320756e64657220636f6e737472756374696f6e2e00f8205765206d616b6520612074726164652d6f6666206265747765656e2073746f7261676520616363657373657320616e64206c697374206c656e6774682e01012057652073746f72652074686520756e6465722d636f6e737472756374696f6e2072616e646f6d6e65737320696e207365676d656e7473206f6620757020746f942060554e4445525f434f4e535452554354494f4e5f5345474d454e545f4c454e475448602e00ec204f6e63652061207365676d656e7420726561636865732074686973206c656e6774682c20776520626567696e20746865206e657874206f6e652e090120576520726573657420616c6c207365676d656e747320616e642072657475726e20746f206030602061742074686520626567696e6e696e67206f662065766572791c2065706f63682e44556e646572436f6e737472756374696f6e0101040510ad0604000415012054574f582d4e4f54453a20605365676d656e74496e6465786020697320616e20696e6372656173696e6720696e74656765722c20736f2074686973206973206f6b61792e2c496e697469616c697a65640000b50604000801012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e292077686963682069732060536f6d65601d01206966207065722d626c6f636b20696e697469616c697a6174696f6e2068617320616c7265616479206265656e2063616c6c656420666f722063757272656e7420626c6f636b2e4c417574686f7256726652616e646f6d6e6573730100c90604001015012054686973206669656c642073686f756c6420616c7761797320626520706f70756c6174656420647572696e6720626c6f636b2070726f63657373696e6720756e6c6573731901207365636f6e6461727920706c61696e20736c6f74732061726520656e61626c65642028776869636820646f6e277420636f6e7461696e206120565246206f7574707574292e0049012049742069732073657420696e20606f6e5f66696e616c697a65602c206265666f72652069742077696c6c20636f6e7461696e207468652076616c75652066726f6d20746865206c61737420626c6f636b2e2845706f636853746172740100dd03200000000000000000145d012054686520626c6f636b206e756d62657273207768656e20746865206c61737420616e642063757272656e742065706f6368206861766520737461727465642c20726573706563746976656c7920604e2d316020616e641420604e602e4901204e4f54453a20576520747261636b207468697320697320696e206f7264657220746f20616e6e6f746174652074686520626c6f636b206e756d626572207768656e206120676976656e20706f6f6c206f66590120656e74726f7079207761732066697865642028692e652e20697420776173206b6e6f776e20746f20636861696e206f6273657276657273292e2053696e63652065706f6368732061726520646566696e656420696e590120736c6f74732c207768696368206d617920626520736b69707065642c2074686520626c6f636b206e756d62657273206d6179206e6f74206c696e6520757020776974682074686520736c6f74206e756d626572732e204c6174656e657373010010100000000014d820486f77206c617465207468652063757272656e7420626c6f636b20697320636f6d706172656420746f2069747320706172656e742e001501205468697320656e74727920697320706f70756c617465642061732070617274206f6620626c6f636b20657865637574696f6e20616e6420697320636c65616e65642075701101206f6e20626c6f636b2066696e616c697a6174696f6e2e205175657279696e6720746869732073746f7261676520656e747279206f757473696465206f6620626c6f636bb020657865637574696f6e20636f6e746578742073686f756c6420616c77617973207969656c64207a65726f2e2c45706f6368436f6e6669670000cd0604000861012054686520636f6e66696775726174696f6e20666f72207468652063757272656e742065706f63682e2053686f756c64206e6576657220626520604e6f6e656020617320697420697320696e697469616c697a656420696e242067656e657369732e3c4e65787445706f6368436f6e6669670000cd060400082d012054686520636f6e66696775726174696f6e20666f7220746865206e6578742065706f63682c20604e6f6e65602069662074686520636f6e6669672077696c6c206e6f74206368616e6765e82028796f752063616e2066616c6c6261636b20746f206045706f6368436f6e6669676020696e737465616420696e20746861742063617365292e34536b697070656445706f6368730100d10604002029012041206c697374206f6620746865206c6173742031303020736b69707065642065706f63687320616e642074686520636f72726573706f6e64696e672073657373696f6e20696e64657870207768656e207468652065706f63682077617320736b69707065642e0031012054686973206973206f6e6c79207573656420666f722076616c69646174696e672065717569766f636174696f6e2070726f6f66732e20416e2065717569766f636174696f6e2070726f6f663501206d75737420636f6e7461696e732061206b65792d6f776e6572736869702070726f6f6620666f72206120676976656e2073657373696f6e2c207468657265666f7265207765206e656564206139012077617920746f2074696520746f6765746865722073657373696f6e7320616e642065706f636820696e64696365732c20692e652e207765206e65656420746f2076616c69646174652074686174290120612076616c696461746f722077617320746865206f776e6572206f66206120676976656e206b6579206f6e206120676976656e2073657373696f6e2c20616e64207768617420746865b0206163746976652065706f636820696e6465782077617320647572696e6720746861742073657373696f6e2e013d04000c3445706f63684475726174696f6e282058020000000000000cec2054686520616d6f756e74206f662074696d652c20696e20736c6f74732c207468617420656163682065706f63682073686f756c64206c6173742e1901204e4f54453a2043757272656e746c79206974206973206e6f7420706f737369626c6520746f206368616e6765207468652065706f6368206475726174696f6e20616674657221012074686520636861696e2068617320737461727465642e20417474656d7074696e6720746f20646f20736f2077696c6c20627269636b20626c6f636b2070726f64756374696f6e2e444578706563746564426c6f636b54696d652820701700000000000014050120546865206578706563746564206176657261676520626c6f636b2074696d6520617420776869636820424142452073686f756c64206265206372656174696e67110120626c6f636b732e2053696e636520424142452069732070726f626162696c6973746963206974206973206e6f74207472697669616c20746f20666967757265206f75740501207768617420746865206578706563746564206176657261676520626c6f636b2074696d652073686f756c64206265206261736564206f6e2074686520736c6f740901206475726174696f6e20616e642074686520736563757269747920706172616d657465722060636020287768657265206031202d20636020726570726573656e7473a0207468652070726f626162696c697479206f66206120736c6f74206265696e6720656d707479292e384d6178417574686f7269746965731010a08601000488204d6178206e756d626572206f6620617574686f72697469657320616c6c6f77656401d506022454696d657374616d70012454696d657374616d70080c4e6f7701002820000000000000000004902043757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010098040004b420446964207468652074696d657374616d7020676574207570646174656420696e207468697320626c6f636b3f0161040004344d696e696d756d506572696f642820b80b000000000000104d0120546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e204265776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a5d0120706572696f6420746861742074686520626c6f636b2070726f64756374696f6e206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c5d012067656e6572616c6c7920776f726b2077697468207468697320746f2064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20652e672e20466f7220417572612c2069742077696c6c206265a020646f75626c65207468697320706572696f64206f6e2064656661756c742073657474696e67732e000328417574686f72736869700128417574686f72736869700418417574686f720000000400046420417574686f72206f662063757272656e7420626c6f636b2e00000000042042616c616e636573012042616c616e6365731434546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e40496e61637469766549737375616e636501001840000000000000000000000000000000000409012054686520746f74616c20756e697473206f66206f75747374616e64696e672064656163746976617465642062616c616e636520696e207468652073797374656d2e1c4163636f756e74010104020014010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600901205468652042616c616e6365732070616c6c6574206578616d706c65206f662073746f72696e67207468652062616c616e6365206f6620616e206163636f756e742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b19022020202074797065204163636f756e7453746f7265203d2053746f726167654d61705368696d3c53656c663a3a4163636f756e743c52756e74696d653e2c206672616d655f73797374656d3a3a50726f76696465723c52756e74696d653e2c204163636f756e7449642c2053656c663a3a4163636f756e74446174613c42616c616e63653e3e0c20207d102060606000150120596f752063616e20616c736f2073746f7265207468652062616c616e6365206f6620616e206163636f756e7420696e20746865206053797374656d602070616c6c65742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b7420202074797065204163636f756e7453746f7265203d2053797374656d0c20207d102060606000510120427574207468697320636f6d657320776974682074726164656f6666732c2073746f72696e67206163636f756e742062616c616e63657320696e207468652073797374656d2070616c6c65742073746f7265736d0120606672616d655f73797374656d60206461746120616c6f6e677369646520746865206163636f756e74206461746120636f6e747261727920746f2073746f72696e67206163636f756e742062616c616e63657320696e207468652901206042616c616e636573602070616c6c65742c20776869636820757365732061206053746f726167654d61706020746f2073746f72652062616c616e6365732064617461206f6e6c792e4101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b730101040200d906040008b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e2052657365727665730101040200e906040004a4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e01650401800c484578697374656e7469616c4465706f73697418404002e50f00000000000000000000000004d420546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d61784c6f636b7310103200000008f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e2c4d61785265736572766573101032000000040d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e01f50605485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100f90640000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e0100fd0604000000018804604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c6974706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f7269747960004d0120546869732076616c7565206973206d756c7469706c656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e000668456c656374696f6e50726f76696465724d756c746950686173650168456c656374696f6e50726f76696465724d756c746950686173652814526f756e64010010100100000018ac20496e7465726e616c20636f756e74657220666f7220746865206e756d626572206f6620726f756e64732e00550120546869732069732075736566756c20666f722064652d6475706c69636174696f6e206f66207472616e73616374696f6e73207375626d697474656420746f2074686520706f6f6c2c20616e642067656e6572616c6c20646961676e6f7374696373206f66207468652070616c6c65742e004d012054686973206973206d6572656c7920696e6372656d656e746564206f6e6365207065722065766572792074696d65207468617420616e20757073747265616d2060656c656374602069732063616c6c65642e3043757272656e7450686173650100a00400043c2043757272656e742070686173652e38517565756564536f6c7574696f6e000001070400043d012043757272656e74206265737420736f6c7574696f6e2c207369676e6564206f7220756e7369676e65642c2071756575656420746f2062652072657475726e65642075706f6e2060656c656374602e20536e617073686f740000090704000c7020536e617073686f742064617461206f662074686520726f756e642e005d01205468697320697320637265617465642061742074686520626567696e6e696e67206f6620746865207369676e656420706861736520616e6420636c65617265642075706f6e2063616c6c696e672060656c656374602e38446573697265645461726765747300001004000ccc2044657369726564206e756d626572206f66207461726765747320746f20656c65637420666f72207468697320726f756e642e00a8204f6e6c7920657869737473207768656e205b60536e617073686f74605d2069732070726573656e742e40536e617073686f744d6574616461746100003d0504000c9820546865206d65746164617461206f6620746865205b60526f756e64536e617073686f74605d00a8204f6e6c7920657869737473207768656e205b60536e617073686f74605d2069732070726573656e742e645369676e65645375626d697373696f6e4e657874496e646578010010100000000024010120546865206e65787420696e64657820746f2062652061737369676e656420746f20616e20696e636f6d696e67207369676e6564207375626d697373696f6e2e007501204576657279206163636570746564207375626d697373696f6e2069732061737369676e6564206120756e6971756520696e6465783b207468617420696e64657820697320626f756e6420746f207468617420706172746963756c61726501207375626d697373696f6e20666f7220746865206475726174696f6e206f662074686520656c656374696f6e2e204f6e20656c656374696f6e2066696e616c697a6174696f6e2c20746865206e65787420696e6465782069733020726573657420746f20302e0069012057652063616e2774206a7573742075736520605369676e65645375626d697373696f6e496e64696365732e6c656e2829602c206265636175736520746861742773206120626f756e646564207365743b20706173742069747359012063617061636974792c2069742077696c6c2073696d706c792073617475726174652e2057652063616e2774206a7573742069746572617465206f76657220605369676e65645375626d697373696f6e734d6170602cf4206265636175736520697465726174696f6e20697320736c6f772e20496e73746561642c2077652073746f7265207468652076616c756520686572652e5c5369676e65645375626d697373696f6e496e6469636573010019070400186d01204120736f727465642c20626f756e64656420766563746f72206f6620602873636f72652c20626c6f636b5f6e756d6265722c20696e64657829602c20776865726520656163682060696e6465786020706f696e747320746f2061782076616c756520696e20605369676e65645375626d697373696f6e73602e007101205765206e65766572206e65656420746f2070726f63657373206d6f7265207468616e20612073696e676c65207369676e6564207375626d697373696f6e20617420612074696d652e205369676e6564207375626d697373696f6e7375012063616e206265207175697465206c617267652c20736f2077652772652077696c6c696e6720746f207061792074686520636f7374206f66206d756c7469706c6520646174616261736520616363657373657320746f206163636573732101207468656d206f6e6520617420612074696d6520696e7374656164206f662072656164696e6720616e64206465636f64696e6720616c6c206f66207468656d206174206f6e63652e505369676e65645375626d697373696f6e734d61700001040510250704001c7420556e636865636b65642c207369676e656420736f6c7574696f6e732e00690120546f676574686572207769746820605375626d697373696f6e496e6469636573602c20746869732073746f726573206120626f756e64656420736574206f6620605369676e65645375626d697373696f6e7360207768696c65ec20616c6c6f77696e6720757320746f206b656570206f6e6c7920612073696e676c65206f6e6520696e206d656d6f727920617420612074696d652e0069012054776f78206e6f74653a20746865206b6579206f6620746865206d617020697320616e206175746f2d696e6372656d656e74696e6720696e6465782077686963682075736572732063616e6e6f7420696e7370656374206f72f4206166666563743b2077652073686f756c646e2774206e65656420612063727970746f67726170686963616c6c7920736563757265206861736865722e544d696e696d756d556e7472757374656453636f726500009c0400105d0120546865206d696e696d756d2073636f7265207468617420656163682027756e747275737465642720736f6c7574696f6e206d7573742061747461696e20696e206f7264657220746f20626520636f6e7369646572656428206665617369626c652e00b82043616e206265207365742076696120607365745f6d696e696d756d5f756e747275737465645f73636f7265602e016904018c4c34556e7369676e656450686173651010960000000480204475726174696f6e206f662074686520756e7369676e65642070686173652e2c5369676e656450686173651010960000000478204475726174696f6e206f6620746865207369676e65642070686173652e544265747465725369676e65645468726573686f6c64ac1000000000084d0120546865206d696e696d756d20616d6f756e74206f6620696d70726f76656d656e7420746f2074686520736f6c7574696f6e2073636f7265207468617420646566696e6573206120736f6c7574696f6e2061737820226265747465722220696e20746865205369676e65642070686173652e5c426574746572556e7369676e65645468726573686f6c64ac1020a10700084d0120546865206d696e696d756d20616d6f756e74206f6620696d70726f76656d656e7420746f2074686520736f6c7574696f6e2073636f7265207468617420646566696e6573206120736f6c7574696f6e2061738020226265747465722220696e2074686520556e7369676e65642070686173652e384f6666636861696e52657065617410101200000010b42054686520726570656174207468726573686f6c64206f6620746865206f6666636861696e20776f726b65722e00610120466f72206578616d706c652c20696620697420697320352c2074686174206d65616e732074686174206174206c65617374203520626c6f636b732077696c6c20656c61707365206265747765656e20617474656d7074738420746f207375626d69742074686520776f726b6572277320736f6c7574696f6e2e3c4d696e657254785072696f726974792820feffffffffffff7f04250120546865207072696f72697479206f662074686520756e7369676e6564207472616e73616374696f6e207375626d697474656420696e2074686520756e7369676e65642d7068617365505369676e65644d61785375626d697373696f6e731010100000001ce4204d6178696d756d206e756d626572206f66207369676e6564207375626d697373696f6e7320746861742063616e206265207175657565642e005501204974206973206265737420746f2061766f69642061646a757374696e67207468697320647572696e6720616e20656c656374696f6e2c20617320697420696d706163747320646f776e73747265616d2064617461650120737472756374757265732e20496e20706172746963756c61722c20605369676e65645375626d697373696f6e496e64696365733c543e6020697320626f756e646564206f6e20746869732076616c75652e20496620796f75f42075706461746520746869732076616c756520647572696e6720616e20656c656374696f6e2c20796f75205f6d7573745f20656e7375726520746861744d0120605369676e65645375626d697373696f6e496e64696365732e6c656e282960206973206c657373207468616e206f7220657175616c20746f20746865206e65772076616c75652e204f74686572776973652cf020617474656d70747320746f207375626d6974206e657720736f6c7574696f6e73206d617920636175736520612072756e74696d652070616e69632e3c5369676e65644d617857656967687420400b58a29b942e011366666666666666a61494204d6178696d756d20776569676874206f662061207369676e656420736f6c7574696f6e2e005d01204966205b60436f6e6669673a3a4d696e6572436f6e666967605d206973206265696e6720696d706c656d656e74656420746f207375626d6974207369676e656420736f6c7574696f6e7320286f757473696465206f663d0120746869732070616c6c6574292c207468656e205b604d696e6572436f6e6669673a3a736f6c7574696f6e5f776569676874605d206973207573656420746f20636f6d7061726520616761696e73743020746869732076616c75652e405369676e65644d6178526566756e647310100400000004190120546865206d6178696d756d20616d6f756e74206f6620756e636865636b656420736f6c7574696f6e7320746f20726566756e64207468652063616c6c2066656520666f722e405369676e6564526577617264426173651840aa821bce260000000000000000000000048820426173652072657761726420666f722061207369676e656420736f6c7574696f6e445369676e65644465706f736974426173651840a41a130d84010000000000000000000004902042617365206465706f73697420666f722061207369676e656420736f6c7574696f6e2e445369676e65644465706f7369744279746518406a6e190000000000000000000000000004a0205065722d62797465206465706f73697420666f722061207369676e656420736f6c7574696f6e2e4c5369676e65644465706f73697457656967687418400000000000000000000000000000000004a8205065722d776569676874206465706f73697420666f722061207369676e656420736f6c7574696f6e2e444d6178456c656374696e67566f746572731010d43000000c5d0120546865206d6178696d756d206e756d626572206f6620656c656374696e6720766f7465727320746f2070757420696e2074686520736e617073686f742e20417420746865206d6f6d656e742c20736e617073686f7473590120617265206f6e6c79206f76657220612073696e676c6520626c6f636b2c20627574206f6e6365206d756c74692d626c6f636b20656c656374696f6e732061726520696e74726f647563656420746865792077696c6c842074616b6520706c616365206f766572206d756c7469706c6520626c6f636b732e4c4d6178456c65637461626c6554617267657473290408ffff04010120546865206d6178696d756d206e756d626572206f6620656c65637461626c65207461726765747320746f2070757420696e2074686520736e617073686f742e284d617857696e6e65727310109001000010350120546865206d6178696d756d206e756d626572206f662077696e6e65727320746861742063616e20626520656c656374656420627920746869732060456c656374696f6e50726f7669646572604020696d706c656d656e746174696f6e2e005101204e6f74653a2054686973206d75737420616c776179732062652067726561746572206f7220657175616c20746f2060543a3a4461746150726f76696465723a3a646573697265645f746172676574732829602e384d696e65724d61784c656e67746810100000360000384d696e65724d617857656967687420400b58a29b942e011366666666666666a600544d696e65724d6178566f746573506572566f74657210101000000000012907071c5374616b696e67011c5374616b696e67943856616c696461746f72436f756e740100101000000000049c2054686520696465616c206e756d626572206f66206163746976652076616c696461746f72732e544d696e696d756d56616c696461746f72436f756e740100101000000000044101204d696e696d756d206e756d626572206f66207374616b696e67207061727469636970616e7473206265666f726520656d657267656e637920636f6e646974696f6e732061726520696d706f7365642e34496e76756c6e657261626c657301005d0504000c590120416e792076616c696461746f72732074686174206d6179206e6576657220626520736c6173686564206f7220666f726369626c79206b69636b65642e20497427732061205665632073696e636520746865792772654d01206561737920746f20696e697469616c697a6520616e642074686520706572666f726d616e636520686974206973206d696e696d616c2028776520657870656374206e6f206d6f7265207468616e20666f7572ac20696e76756c6e657261626c65732920616e64207265737472696374656420746f20746573746e6574732e18426f6e64656400010405000004000c0101204d61702066726f6d20616c6c206c6f636b65642022737461736822206163636f756e747320746f2074686520636f6e74726f6c6c6572206163636f756e742e00d02054574f582d4e4f54453a20534146452073696e636520604163636f756e7449646020697320612073656375726520686173682e404d696e4e6f6d696e61746f72426f6e64010018400000000000000000000000000000000004210120546865206d696e696d756d2061637469766520626f6e6420746f206265636f6d6520616e64206d61696e7461696e2074686520726f6c65206f662061206e6f6d696e61746f722e404d696e56616c696461746f72426f6e64010018400000000000000000000000000000000004210120546865206d696e696d756d2061637469766520626f6e6420746f206265636f6d6520616e64206d61696e7461696e2074686520726f6c65206f6620612076616c696461746f722e484d696e696d756d4163746976655374616b65010018400000000000000000000000000000000004110120546865206d696e696d756d20616374697665206e6f6d696e61746f72207374616b65206f6620746865206c617374207375636365737366756c20656c656374696f6e2e344d696e436f6d6d697373696f6e0100ac10000000000ce820546865206d696e696d756d20616d6f756e74206f6620636f6d6d697373696f6e20746861742076616c696461746f72732063616e207365742e00802049662073657420746f206030602c206e6f206c696d6974206578697374732e184c656467657200010402002d070400044501204d61702066726f6d20616c6c2028756e6c6f636b6564292022636f6e74726f6c6c657222206163636f756e747320746f2074686520696e666f20726567617264696e6720746865207374616b696e672e1450617965650101040500590504000ce42057686572652074686520726577617264207061796d656e742073686f756c64206265206d6164652e204b657965642062792073746173682e00d02054574f582d4e4f54453a20534146452073696e636520604163636f756e7449646020697320612073656375726520686173682e2856616c696461746f72730101040500b00800000c450120546865206d61702066726f6d202877616e6e616265292076616c696461746f72207374617368206b657920746f2074686520707265666572656e636573206f6620746861742076616c696461746f722e00d02054574f582d4e4f54453a20534146452073696e636520604163636f756e7449646020697320612073656375726520686173682e50436f756e746572466f7256616c696461746f7273010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170484d617856616c696461746f7273436f756e7400001004000c310120546865206d6178696d756d2076616c696461746f7220636f756e74206265666f72652077652073746f7020616c6c6f77696e67206e65772076616c696461746f727320746f206a6f696e2e00d0205768656e20746869732076616c7565206973206e6f74207365742c206e6f206c696d6974732061726520656e666f726365642e284e6f6d696e61746f727300010405004107040048750120546865206d61702066726f6d206e6f6d696e61746f72207374617368206b657920746f207468656972206e6f6d696e6174696f6e20707265666572656e6365732c206e616d656c79207468652076616c696461746f72732074686174582074686579207769736820746f20737570706f72742e003901204e6f7465207468617420746865206b657973206f6620746869732073746f72616765206d6170206d69676874206265636f6d65206e6f6e2d6465636f6461626c6520696e2063617365207468656d01205b60436f6e6669673a3a4d61784e6f6d696e6174696f6e73605d20636f6e66696775726174696f6e206973206465637265617365642e20496e2074686973207261726520636173652c207468657365206e6f6d696e61746f7273650120617265207374696c6c206578697374656e7420696e2073746f726167652c207468656972206b657920697320636f727265637420616e64207265747269657661626c652028692e652e2060636f6e7461696e735f6b657960710120696e6469636174657320746861742074686579206578697374292c206275742074686569722076616c75652063616e6e6f74206265206465636f6465642e205468657265666f72652c20746865206e6f6e2d6465636f6461626c656d01206e6f6d696e61746f72732077696c6c206566666563746976656c79206e6f742d65786973742c20756e74696c20746865792072652d7375626d697420746865697220707265666572656e6365732073756368207468617420697401012069732077697468696e2074686520626f756e6473206f6620746865206e65776c79207365742060436f6e6669673a3a4d61784e6f6d696e6174696f6e73602e006101205468697320696d706c696573207468617420603a3a697465725f6b65797328292e636f756e7428296020616e6420603a3a6974657228292e636f756e74282960206d696768742072657475726e20646966666572656e746d012076616c75657320666f722074686973206d61702e204d6f72656f7665722c20746865206d61696e20603a3a636f756e7428296020697320616c69676e656420776974682074686520666f726d65722c206e616d656c79207468656c206e756d626572206f66206b65797320746861742065786973742e006d01204c6173746c792c20696620616e79206f6620746865206e6f6d696e61746f7273206265636f6d65206e6f6e2d6465636f6461626c652c20746865792063616e206265206368696c6c656420696d6d6564696174656c7920766961b8205b6043616c6c3a3a6368696c6c5f6f74686572605d20646973706174636861626c6520627920616e796f6e652e00d02054574f582d4e4f54453a20534146452073696e636520604163636f756e7449646020697320612073656375726520686173682e50436f756e746572466f724e6f6d696e61746f7273010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170484d61784e6f6d696e61746f7273436f756e7400001004000c310120546865206d6178696d756d206e6f6d696e61746f7220636f756e74206265666f72652077652073746f7020616c6c6f77696e67206e65772076616c696461746f727320746f206a6f696e2e00d0205768656e20746869732076616c7565206973206e6f74207365742c206e6f206c696d6974732061726520656e666f726365642e2843757272656e744572610000100400105c205468652063757272656e742065726120696e6465782e006501205468697320697320746865206c617465737420706c616e6e6564206572612c20646570656e64696e67206f6e20686f77207468652053657373696f6e2070616c6c657420717565756573207468652076616c696461746f7280207365742c206974206d6967687420626520616374697665206f72206e6f742e2441637469766545726100004507040010d820546865206163746976652065726120696e666f726d6174696f6e2c20697420686f6c647320696e64657820616e642073746172742e0059012054686520616374697665206572612069732074686520657261206265696e672063757272656e746c792072657761726465642e2056616c696461746f7220736574206f66207468697320657261206d757374206265ac20657175616c20746f205b6053657373696f6e496e746572666163653a3a76616c696461746f7273605d2e5445726173537461727453657373696f6e496e6465780001040510100400103101205468652073657373696f6e20696e646578206174207768696368207468652065726120737461727420666f7220746865206c6173742060484953544f52595f44455054486020657261732e006101204e6f74653a205468697320747261636b7320746865207374617274696e672073657373696f6e2028692e652e2073657373696f6e20696e646578207768656e20657261207374617274206265696e672061637469766529f020666f7220746865206572617320696e20605b43757272656e74457261202d20484953544f52595f44455054482c2043757272656e744572615d602e2c457261735374616b65727301010805054907e80c0000001878204578706f73757265206f662076616c696461746f72206174206572612e0061012054686973206973206b65796564206669727374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00a82049732069742072656d6f7665642061667465722060484953544f52595f44455054486020657261732e4101204966207374616b657273206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e20656d707479206578706f737572652069732072657475726e65642e48457261735374616b657273436c697070656401010805054907e80c0000002c9820436c6970706564204578706f73757265206f662076616c696461746f72206174206572612e00590120546869732069732073696d696c617220746f205b60457261735374616b657273605d20627574206e756d626572206f66206e6f6d696e61746f7273206578706f736564206973207265647563656420746f20746865dc2060543a3a4d61784e6f6d696e61746f72526577617264656450657256616c696461746f72602062696767657374207374616b6572732e1d0120284e6f74653a20746865206669656c642060746f74616c6020616e6420606f776e60206f6620746865206578706f737572652072656d61696e7320756e6368616e676564292ef42054686973206973207573656420746f206c696d69742074686520692f6f20636f737420666f7220746865206e6f6d696e61746f72207061796f75742e005d012054686973206973206b657965642066697374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00a82049732069742072656d6f7665642061667465722060484953544f52595f44455054486020657261732e4101204966207374616b657273206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e20656d707479206578706f737572652069732072657475726e65642e484572617356616c696461746f72507265667301010805054907b00800001411012053696d696c617220746f2060457261735374616b657273602c207468697320686f6c64732074686520707265666572656e636573206f662076616c696461746f72732e0061012054686973206973206b65796564206669727374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00a82049732069742072656d6f7665642061667465722060484953544f52595f44455054486020657261732e4c4572617356616c696461746f7252657761726400010405101804000c09012054686520746f74616c2076616c696461746f7220657261207061796f757420666f7220746865206c6173742060484953544f52595f44455054486020657261732e0021012045726173207468617420686176656e27742066696e697368656420796574206f7220686173206265656e2072656d6f76656420646f65736e27742068617665207265776172642e4045726173526577617264506f696e747301010405104d0714000000000008ac205265776172647320666f7220746865206c6173742060484953544f52595f44455054486020657261732e250120496620726577617264206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e2030207265776172642069732072657475726e65642e3845726173546f74616c5374616b65010104051018400000000000000000000000000000000008ec2054686520746f74616c20616d6f756e74207374616b656420666f7220746865206c6173742060484953544f52595f44455054486020657261732e1d0120496620746f74616c206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e2030207374616b652069732072657475726e65642e20466f7263654572610100b804000454204d6f6465206f662065726120666f7263696e672e4c536c6173685265776172644672616374696f6e0100ac10000000000cf8205468652070657263656e74616765206f662074686520736c617368207468617420697320646973747269627574656420746f207265706f72746572732e00e4205468652072657374206f662074686520736c61736865642076616c75652069732068616e646c6564206279207468652060536c617368602e4c43616e63656c6564536c6173685061796f757401001840000000000000000000000000000000000815012054686520616d6f756e74206f662063757272656e637920676976656e20746f207265706f7274657273206f66206120736c617368206576656e7420776869636820776173ec2063616e63656c65642062792065787472616f7264696e6172792063697263756d7374616e6365732028652e672e20676f7665726e616e6365292e40556e6170706c696564536c617368657301010405105d07040004c420416c6c20756e6170706c69656420736c61736865732074686174206172652071756575656420666f72206c617465722e28426f6e646564457261730100d90304001025012041206d617070696e672066726f6d207374696c6c2d626f6e646564206572617320746f207468652066697273742073657373696f6e20696e646578206f662074686174206572612e00c8204d75737420636f6e7461696e7320696e666f726d6174696f6e20666f72206572617320666f72207468652072616e67653abc20605b6163746976655f657261202d20626f756e64696e675f6475726174696f6e3b206163746976655f6572615d604c56616c696461746f72536c617368496e457261000108050549076507040008450120416c6c20736c617368696e67206576656e7473206f6e2076616c696461746f72732c206d61707065642062792065726120746f20746865206869676865737420736c6173682070726f706f7274696f6e7020616e6420736c6173682076616c7565206f6620746865206572612e4c4e6f6d696e61746f72536c617368496e4572610001080505490718040004610120416c6c20736c617368696e67206576656e7473206f6e206e6f6d696e61746f72732c206d61707065642062792065726120746f20746865206869676865737420736c6173682076616c7565206f6620746865206572612e34536c617368696e675370616e73000104050069070400048c20536c617368696e67207370616e7320666f72207374617368206163636f756e74732e245370616e536c6173680101040559076d07800000000000000000000000000000000000000000000000000000000000000000083d01205265636f72647320696e666f726d6174696f6e2061626f757420746865206d6178696d756d20736c617368206f6620612073746173682077697468696e206120736c617368696e67207370616e2cb82061732077656c6c20617320686f77206d7563682072657761726420686173206265656e2070616964206f75742e5443757272656e74506c616e6e656453657373696f6e01001010000000000ce820546865206c61737420706c616e6e65642073657373696f6e207363686564756c6564206279207468652073657373696f6e2070616c6c65742e0071012054686973206973206261736963616c6c7920696e2073796e632077697468207468652063616c6c20746f205b6070616c6c65745f73657373696f6e3a3a53657373696f6e4d616e616765723a3a6e65775f73657373696f6e605d2e4c4f6666656e64696e6756616c696461746f727301007107040024690120496e6469636573206f662076616c696461746f727320746861742068617665206f6666656e64656420696e20746865206163746976652065726120616e6420776865746865722074686579206172652063757272656e746c79282064697361626c65642e00690120546869732076616c75652073686f756c642062652061207375706572736574206f662064697361626c65642076616c696461746f72732073696e6365206e6f7420616c6c206f6666656e636573206c65616420746f2074686571012076616c696461746f72206265696e672064697361626c65642028696620746865726520776173206e6f20736c617368292e2054686973206973206e656564656420746f20747261636b207468652070657263656e74616765206f6649012076616c696461746f727320746861742068617665206f6666656e64656420696e207468652063757272656e74206572612c20656e737572696e672061206e65772065726120697320666f72636564206966750120604f6666656e64696e6756616c696461746f72735468726573686f6c646020697320726561636865642e205468652076656320697320616c77617973206b65707420736f7274656420736f20746861742077652063616e2066696e6471012077686574686572206120676976656e2076616c696461746f72206861732070726576696f75736c79206f6666656e646564207573696e672062696e617279207365617263682e204974206765747320636c6561726564207768656e38207468652065726120656e64732e384368696c6c5468726573686f6c640000610504000c510120546865207468726573686f6c6420666f72207768656e2075736572732063616e2073746172742063616c6c696e6720606368696c6c5f6f746865726020666f72206f746865722076616c696461746f7273202f5901206e6f6d696e61746f72732e20546865207468726573686f6c6420697320636f6d706172656420746f207468652061637475616c206e756d626572206f662076616c696461746f7273202f206e6f6d696e61746f72732901202860436f756e74466f722a602920696e207468652073797374656d20636f6d706172656420746f2074686520636f6e66696775726564206d61782028604d61782a436f756e7460292e01550501a81c384d61784e6f6d696e6174696f6e7310101000000004b4204d6178696d756d206e756d626572206f66206e6f6d696e6174696f6e7320706572206e6f6d696e61746f722e30486973746f72794465707468101078000000508c204e756d626572206f66206572617320746f206b65657020696e20686973746f72792e00e820466f6c6c6f77696e6720696e666f726d6174696f6e206973206b65707420666f72206572617320696e20605b63757272656e745f657261202d090120486973746f727944657074682c2063757272656e745f6572615d603a2060457261735374616b657273602c2060457261735374616b657273436c6970706564602c050120604572617356616c696461746f725072656673602c20604572617356616c696461746f72526577617264602c206045726173526577617264506f696e7473602cac206045726173546f74616c5374616b65602c206045726173537461727453657373696f6e496e646578602c8420605374616b696e674c65646765722e636c61696d65645f72657761726473602e00e4204d757374206265206d6f7265207468616e20746865206e756d626572206f6620657261732064656c617965642062792073657373696f6e2ef820492e652e2061637469766520657261206d75737420616c7761797320626520696e20686973746f72792e20492e652e20606163746976655f657261203ec42063757272656e745f657261202d20686973746f72795f646570746860206d7573742062652067756172616e746565642e001101204966206d6967726174696e6720616e206578697374696e672070616c6c65742066726f6d2073746f726167652076616c756520746f20636f6e6669672076616c75652cec20746869732073686f756c642062652073657420746f2073616d652076616c7565206f72206772656174657220617320696e2073746f726167652e001501204e6f74653a2060486973746f727944657074686020697320757365642061732074686520757070657220626f756e6420666f72207468652060426f756e646564566563601101206974656d20605374616b696e674c65646765722e636c61696d65645f72657761726473602e2053657474696e6720746869732076616c7565206c6f776572207468616ed820746865206578697374696e672076616c75652063616e206c65616420746f20696e636f6e73697374656e6369657320696e20746865150120605374616b696e674c65646765726020616e642077696c6c206e65656420746f2062652068616e646c65642070726f7065726c7920696e2061206d6967726174696f6e2ef020546865207465737420607265647563696e675f686973746f72795f64657074685f616272757074602073686f77732074686973206566666563742e3853657373696f6e735065724572611010060000000470204e756d626572206f662073657373696f6e7320706572206572612e3c426f6e64696e674475726174696f6e10107000000004e4204e756d626572206f6620657261732074686174207374616b65642066756e6473206d7573742072656d61696e20626f6e64656420666f722e48536c61736844656665724475726174696f6e10106f000000100101204e756d626572206f662065726173207468617420736c6173686573206172652064656665727265642062792c20616674657220636f6d7075746174696f6e2e000d0120546869732073686f756c64206265206c657373207468616e2074686520626f6e64696e67206475726174696f6e2e2053657420746f203020696620736c617368657315012073686f756c64206265206170706c69656420696d6d6564696174656c792c20776974686f7574206f70706f7274756e69747920666f7220696e74657276656e74696f6e2e804d61784e6f6d696e61746f72526577617264656450657256616c696461746f7210100001000010f820546865206d6178696d756d206e756d626572206f66206e6f6d696e61746f727320726577617264656420666f7220656163682076616c696461746f722e00510120466f7220656163682076616c696461746f72206f6e6c79207468652060244d61784e6f6d696e61746f72526577617264656450657256616c696461746f72602062696767657374207374616b6572732063616e390120636c61696d207468656972207265776172642e2054686973207573656420746f206c696d69742074686520692f6f20636f737420666f7220746865206e6f6d696e61746f72207061796f75742e484d6178556e6c6f636b696e674368756e6b7310102000000028050120546865206d6178696d756d206e756d626572206f662060756e6c6f636b696e6760206368756e6b732061205b605374616b696e674c6564676572605d2063616e090120686176652e204566666563746976656c792064657465726d696e657320686f77206d616e7920756e6971756520657261732061207374616b6572206d61792062653820756e626f6e64696e6720696e2e00f8204e6f74653a20604d6178556e6c6f636b696e674368756e6b736020697320757365642061732074686520757070657220626f756e6420666f722074686501012060426f756e64656456656360206974656d20605374616b696e674c65646765722e756e6c6f636b696e67602e2053657474696e6720746869732076616c75650501206c6f776572207468616e20746865206578697374696e672076616c75652063616e206c65616420746f20696e636f6e73697374656e6369657320696e20746865090120605374616b696e674c65646765726020616e642077696c6c206e65656420746f2062652068616e646c65642070726f7065726c7920696e20612072756e74696d650501206d6967726174696f6e2e20546865207465737420607265647563696e675f6d61785f756e6c6f636b696e675f6368756e6b735f616272757074602073686f7773342074686973206566666563742e017907081c53657373696f6e011c53657373696f6e1c2856616c696461746f727301005d050400047c205468652063757272656e7420736574206f662076616c696461746f72732e3043757272656e74496e646578010010100000000004782043757272656e7420696e646578206f66207468652073657373696f6e2e345175657565644368616e676564010098040008390120547275652069662074686520756e6465726c79696e672065636f6e6f6d6963206964656e746974696573206f7220776569676874696e6720626568696e64207468652076616c696461746f7273a420686173206368616e67656420696e20746865207175657565642076616c696461746f72207365742e285175657565644b65797301007d070400083d012054686520717565756564206b65797320666f7220746865206e6578742073657373696f6e2e205768656e20746865206e6578742073657373696f6e20626567696e732c207468657365206b657973e02077696c6c206265207573656420746f2064657465726d696e65207468652076616c696461746f7227732073657373696f6e206b6579732e4844697361626c656456616c696461746f7273010065050400148020496e6469636573206f662064697361626c65642076616c696461746f72732e003d01205468652076656320697320616c77617973206b65707420736f7274656420736f20746861742077652063616e2066696e642077686574686572206120676976656e2076616c696461746f722069733d012064697361626c6564207573696e672062696e617279207365617263682e204974206765747320636c6561726564207768656e20606f6e5f73657373696f6e5f656e64696e67602072657475726e73642061206e657720736574206f66206964656e7469746965732e204e6578744b65797300010405007d050400049c20546865206e6578742073657373696f6e206b65797320666f7220612076616c696461746f722e204b65794f776e657200010405850700040004090120546865206f776e6572206f662061206b65792e20546865206b65792069732074686520604b657954797065496460202b2074686520656e636f646564206b65792e01790501bc00018d070928486973746f726963616c0128486973746f726963616c0848486973746f726963616c53657373696f6e73000104051091070400045d01204d617070696e672066726f6d20686973746f726963616c2073657373696f6e20696e646963657320746f2073657373696f6e2d6461746120726f6f74206861736820616e642076616c696461746f7220636f756e742e2c53746f72656452616e67650000dd03040004e4205468652072616e6765206f6620686973746f726963616c2073657373696f6e732077652073746f72652e205b66697273742c206c61737429000000000a1c4772616e647061011c4772616e647061181453746174650100950704000490205374617465206f66207468652063757272656e7420617574686f72697479207365742e3450656e64696e674368616e676500009907040004c42050656e64696e67206368616e67653a20287369676e616c65642061742c207363686564756c6564206368616e6765292e284e657874466f72636564000010040004bc206e65787420626c6f636b206e756d6265722077686572652077652063616e20666f7263652061206368616e67652e1c5374616c6c65640000dd030400049020607472756560206966207765206172652063757272656e746c79207374616c6c65642e3043757272656e745365744964010028200000000000000000085d0120546865206e756d626572206f66206368616e6765732028626f746820696e207465726d73206f66206b65797320616e6420756e6465726c79696e672065636f6e6f6d696320726573706f6e736962696c697469657329c420696e20746865202273657422206f66204772616e6470612076616c696461746f72732066726f6d2067656e657369732e30536574496453657373696f6e00010405281004002859012041206d617070696e672066726f6d206772616e6470612073657420494420746f2074686520696e646578206f6620746865202a6d6f737420726563656e742a2073657373696f6e20666f722077686963682069747368206d656d62657273207765726520726573706f6e7369626c652e0045012054686973206973206f6e6c79207573656420666f722076616c69646174696e672065717569766f636174696f6e2070726f6f66732e20416e2065717569766f636174696f6e2070726f6f66206d7573744d0120636f6e7461696e732061206b65792d6f776e6572736869702070726f6f6620666f72206120676976656e2073657373696f6e2c207468657265666f7265207765206e65656420612077617920746f20746965450120746f6765746865722073657373696f6e7320616e64204752414e44504120736574206964732c20692e652e207765206e65656420746f2076616c6964617465207468617420612076616c696461746f7241012077617320746865206f776e6572206f66206120676976656e206b6579206f6e206120676976656e2073657373696f6e2c20616e642077686174207468652061637469766520736574204944207761735420647572696e6720746861742073657373696f6e2e00b82054574f582d4e4f54453a2060536574496460206973206e6f7420756e646572207573657220636f6e74726f6c2e01850501c008384d6178417574686f7269746965731010a0860100045c204d617820417574686f72697469657320696e20757365584d6178536574496453657373696f6e456e74726965732820a00200000000000018390120546865206d6178696d756d206e756d626572206f6620656e747269657320746f206b65657020696e207468652073657420696420746f2073657373696f6e20696e646578206d617070696e672e0031012053696e6365207468652060536574496453657373696f6e60206d6170206973206f6e6c79207573656420666f722076616c69646174696e672065717569766f636174696f6e73207468697329012076616c75652073686f756c642072656c61746520746f2074686520626f6e64696e67206475726174696f6e206f66207768617465766572207374616b696e672073797374656d2069733501206265696e6720757365642028696620616e79292e2049662065717569766f636174696f6e2068616e646c696e67206973206e6f7420656e61626c6564207468656e20746869732076616c7565342063616e206265207a65726f2e01a1070b48417574686f72697479446973636f766572790148417574686f72697479446973636f7665727908104b6579730100a5070400048c204b657973206f66207468652063757272656e7420617574686f72697479207365742e204e6578744b6579730100a50704000480204b657973206f6620746865206e65787420617574686f72697479207365742e000000000c20496d4f6e6c696e650120496d4f6e6c696e651038486561727462656174416674657201001010000000002c1d012054686520626c6f636b206e756d6265722061667465722077686963682069742773206f6b20746f2073656e64206865617274626561747320696e207468652063757272656e74242073657373696f6e2e0025012041742074686520626567696e6e696e67206f6620656163682073657373696f6e20776520736574207468697320746f20612076616c756520746861742073686f756c642066616c6c350120726f7567686c7920696e20746865206d6964646c65206f66207468652073657373696f6e206475726174696f6e2e20546865206964656120697320746f206669727374207761697420666f721901207468652076616c696461746f727320746f2070726f64756365206120626c6f636b20696e207468652063757272656e742073657373696f6e2c20736f207468617420746865a820686561727462656174206c61746572206f6e2077696c6c206e6f74206265206e65636573736172792e00390120546869732076616c75652077696c6c206f6e6c79206265207573656420617320612066616c6c6261636b206966207765206661696c20746f2067657420612070726f7065722073657373696f6e2d012070726f677265737320657374696d6174652066726f6d20604e65787453657373696f6e526f746174696f6e602c2061732074686f736520657374696d617465732073686f756c642062650101206d6f7265206163637572617465207468656e207468652076616c75652077652063616c63756c61746520666f7220604865617274626561744166746572602e104b6579730100ad07040004d0205468652063757272656e7420736574206f66206b6579732074686174206d61792069737375652061206865617274626561742e485265636569766564486561727462656174730001080505dd03b5070400083d0120466f7220656163682073657373696f6e20696e6465782c207765206b6565702061206d617070696e67206f66206053657373696f6e496e6465786020616e64206041757468496e6465786020746fb02060577261707065724f70617175653c426f756e6465644f70617175654e6574776f726b53746174653e602e38417574686f726564426c6f636b730101080505490710100000000008150120466f7220656163682073657373696f6e20696e6465782c207765206b6565702061206d617070696e67206f66206056616c696461746f7249643c543e6020746f20746865c8206e756d626572206f6620626c6f636b7320617574686f7265642062792074686520676976656e20617574686f726974792e01b50501d40440556e7369676e65645072696f726974792820ffffffffffffffff10f0204120636f6e66696775726174696f6e20666f722062617365207072696f72697479206f6620756e7369676e6564207472616e73616374696f6e732e0015012054686973206973206578706f73656420736f20746861742069742063616e2062652074756e656420666f7220706172746963756c61722072756e74696d652c207768656eb4206d756c7469706c652070616c6c6574732073656e6420756e7369676e6564207472616e73616374696f6e732e01c9070d204f6666656e63657301204f6666656e6365730c1c5265706f727473000104052ccd07040004490120546865207072696d61727920737472756374757265207468617420686f6c647320616c6c206f6666656e6365207265636f726473206b65796564206279207265706f7274206964656e746966696572732e58436f6e63757272656e745265706f727473496e6465780101080505d107d5030400042901204120766563746f72206f66207265706f727473206f66207468652073616d65206b696e6420746861742068617070656e6564206174207468652073616d652074696d6520736c6f742e485265706f72747342794b696e64496e64657801010405fc30040018110120456e756d65726174657320616c6c207265706f727473206f662061206b696e6420616c6f6e672077697468207468652074696d6520746865792068617070656e65642e00bc20416c6c207265706f7274732061726520736f72746564206279207468652074696d65206f66206f6666656e63652e004901204e6f74652074686174207468652061637475616c2074797065206f662074686973206d617070696e6720697320605665633c75383e602c207468697320697320626563617573652076616c756573206f66690120646966666572656e7420747970657320617265206e6f7420737570706f7274656420617420746865206d6f6d656e7420736f2077652061726520646f696e6720746865206d616e75616c2073657269616c697a6174696f6e2e0001f800000e6052616e646f6d6e657373436f6c6c656374697665466c6970016052616e646f6d6e657373436f6c6c656374697665466c6970043852616e646f6d4d6174657269616c0100d50704000c610120536572696573206f6620626c6f636b20686561646572732066726f6d20746865206c61737420383120626c6f636b73207468617420616374732061732072616e646f6d2073656564206d6174657269616c2e2054686973610120697320617272616e67656420617320612072696e672062756666657220776974682060626c6f636b5f6e756d626572202520383160206265696e672074686520696e64657820696e746f20746865206056656360206f664420746865206f6c6465737420686173682e000000000f20426167734c6973740120426167734c6973740c244c6973744e6f6465730001040500d90704000c8020412073696e676c65206e6f64652c2077697468696e20736f6d65206261672e000501204e6f6465732073746f7265206c696e6b7320666f727761726420616e64206261636b2077697468696e207468656972207265737065637469766520626167732e4c436f756e746572466f724c6973744e6f646573010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170204c697374426167730001040528dd0704000c642041206261672073746f72656420696e2073746f726167652e0019012053746f7265732061206042616760207374727563742c2077686963682073746f726573206865616420616e64207461696c20706f696e7465727320746f20697473656c662e01d50501010104344261675468726573686f6c647315010919210300407a10f35a00006a70ccd4a96000009ef3397fbc660000a907ccd5306d00003d9a67fb0c740000a9bfa275577b0000a6fdf73217830000034f5d91538b0000132445651494000078081001629d00000302f63c45a70000392e6f7fc7b10000f59c23c6f2bc00004ae76aafd1c80000598a64846fd50000129fb243d8e200003f22e1ac18f1000033a4844c3e000100e2e51b895710010076a2c0b0732101006789b407a3330100793ed8d7f646010078131b81815b01000c1cf38a567101004437eeb68a8801009eb56d1434a10100335e9f156abb010067c3c7a545d701003218f340e1f40100de0b230d59140200699c11f5ca350200ad50a2c4565902009ae41c471e7f0200d0244e6745a70200f984ad51f2d10200ace7a7984dff0200a118325b822f0300ffa4c76dbe620300580bfd8532990300a9afce6812d30300109ad81b95100400d9caa519f551040038df488970970400bee1727949e10400cc73401fc62f0500b304f91831830500828bffb4d9db05001235383d143a0600a5b42a473a9e060036662d09ab080700f73aeab4cb790700b87e93d707f20700ffec23c0d1710800b84b0beca2f90800c9dcae7afc89090091752ba867230a0064f1cd4f76c60a003609be76c3730b0078655fdff32b0c00a407f5a5b6ef0c0052f61be7c5bf0d00da71bb70e79c0e000de9127eed870f001477987fb7811000ebee65ef328b11001269fe325ca5120033f8428b3fd113008ba57a13fa0f15001b2b60d0ba6216000d1d37d0c3ca17006c64fa5c6b4919002622c7411de01a00045bb9245c901c00233d83f6c25b1e00c8771c79064420003013fddef64a2200aa8b6e848172240082c096c4b2bc260016a3faebb72b29008296524ae1c12b00a636a865a4812e00d0e2d4509e6d31009c0a9a2796883400e4faafb27fd53700e6e64d367e573b000e4bd66de7113f0088b17db746084300b07def72603e470034de249635b84b00d48bd57b077a5000d0bd20ef5b885500b8f0467801e85a0010f88aee139e60003892925301b066009c95e4fc8e236d00b4126d10dffe730028b43e5976487b00a08a1c7a42078300b09ab083a0428b002846b2f463029400c861a42ade4e9d0050d23d4ae630a700805101a7e1b1b10038e501b2ccdbbc002016527844b9c800388924ba9055d50070ca35a4aebce200805fb1355cfbf0008035685d241f0001a0c3dcd96b361001d07862e87e50210160e852d09f7d330190662c5816cf460110274c3340575b01804be277a22971013082b92dfc5a880180d276075a01a101b0f511592b34bb014031745f580cd701802f6cee59a4f40140ff799b521814026075607d2986350260fde999a60d590200e5e71c91d07e02c0df2575cff2a602a07fd975899ad102a067009d4cf0fe0220dc29a1321f2f0320ff526b0a5562038088caa383c29803e05683fb5c9bd203401dd75d9516100400317e39a06e5104c0b071129de1960480b48c9192b1e00480e8124aad242f05c007ca7082858205007c13c45623db0540836fe869523906c0700f81466c9d0640f09c5017d00707c0e624b301e37807c0332ac78510f10780074ca1e4ca700800d5a9eb8c8bf80800a849588ed3880900804254142c220a80a25170e826c50a00e8d5fafc5e720b801df64e00792a0c80d4fe64f923ee0c006dd038ee19be0d001e90a494209b0e0010bf570e0a860f00da6a9db0b57f1000bf64afd810891100bb5b60cd17a31200f963f3aed6ce1300d5f004766a0d1500e099770202601600103d663bdfc71700de3e2d4158461900ecdbadb2d8dc1a0045c70007e38c1c00b8bde0fc11581e00ba5c2a211a402000407de46dcb462200dea55b03136e2400aaf1f3fcfcb7260014226f63b62629006492803e8fbc2b008486a6c7fc7b2e002cf05fc09b673100da63f7ed32823400f0b13fbdb5ce3700f291c41047503b00422a1a3c3c0a3f002c24212f20004300ac9342d4b6354700cc6ed7a400af4b00c4d022773e70500020017d89f57d5500f86387cef3dc5a008c4c7f7e54926000206207f284a36600cc1e05cb49166d00b42a7a70c4f07300d43a90e278397b0038f461ec53f78200a07264b9b1318b0048c9b3d464f09300007fe998bd3b9d0010058f17921ca70000dfaf7f469cb100e80c880bd6c4bc0058bdcb7ddca0c80038d18d37a03bd50030d55bf01ca1e200704ac01a0fdef0ffffffffffffffffacd020546865206c697374206f66207468726573686f6c64732073657061726174696e672074686520766172696f757320626167732e00490120496473206172652073657061726174656420696e746f20756e736f727465642062616773206163636f7264696e6720746f2074686569722073636f72652e205468697320737065636966696573207468656101207468726573686f6c64732073657061726174696e672074686520626167732e20416e20696427732062616720697320746865206c6172676573742062616720666f722077686963682074686520696427732073636f7265b8206973206c657373207468616e206f7220657175616c20746f20697473207570706572207468726573686f6c642e006501205768656e20696473206172652069746572617465642c2068696768657220626167732061726520697465726174656420636f6d706c6574656c79206265666f7265206c6f77657220626167732e2054686973206d65616e735901207468617420697465726174696f6e206973205f73656d692d736f727465645f3a20696473206f66206869676865722073636f72652074656e6420746f20636f6d65206265666f726520696473206f66206c6f7765722d012073636f72652c206275742070656572206964732077697468696e206120706172746963756c6172206261672061726520736f7274656420696e20696e73657274696f6e206f726465722e006820232045787072657373696e672074686520636f6e7374616e74004d01205468697320636f6e7374616e74206d75737420626520736f7274656420696e207374726963746c7920696e6372656173696e67206f726465722e204475706c6963617465206974656d7320617265206e6f742c207065726d69747465642e00410120546865726520697320616e20696d706c696564207570706572206c696d6974206f66206053636f72653a3a4d4158603b20746861742076616c756520646f6573206e6f74206e65656420746f2062652101207370656369666965642077697468696e20746865206261672e20466f7220616e792074776f207468726573686f6c64206c697374732c206966206f6e6520656e647320776974683101206053636f72653a3a4d4158602c20746865206f74686572206f6e6520646f6573206e6f742c20616e64207468657920617265206f746865727769736520657175616c2c207468652074776f7c206c697374732077696c6c20626568617665206964656e746963616c6c792e003820232043616c63756c6174696f6e005501204974206973207265636f6d6d656e64656420746f2067656e65726174652074686520736574206f66207468726573686f6c647320696e20612067656f6d6574726963207365726965732c2073756368207468617441012074686572652065786973747320736f6d6520636f6e7374616e7420726174696f2073756368207468617420607468726573686f6c645b6b202b20315d203d3d20287468726573686f6c645b6b5d202ad020636f6e7374616e745f726174696f292e6d6178287468726573686f6c645b6b5d202b2031296020666f7220616c6c20606b602e005901205468652068656c7065727320696e2074686520602f7574696c732f6672616d652f67656e65726174652d6261677360206d6f64756c652063616e2073696d706c69667920746869732063616c63756c6174696f6e2e002c2023204578616d706c6573005101202d20496620604261675468726573686f6c64733a3a67657428292e69735f656d7074792829602c207468656e20616c6c20696473206172652070757420696e746f207468652073616d65206261672c20616e64b0202020697465726174696f6e206973207374726963746c7920696e20696e73657274696f6e206f726465722e6101202d20496620604261675468726573686f6c64733a3a67657428292e6c656e2829203d3d203634602c20616e6420746865207468726573686f6c6473206172652064657465726d696e6564206163636f7264696e6720746f11012020207468652070726f63656475726520676976656e2061626f76652c207468656e2074686520636f6e7374616e7420726174696f20697320657175616c20746f20322e6501202d20496620604261675468726573686f6c64733a3a67657428292e6c656e2829203d3d20323030602c20616e6420746865207468726573686f6c6473206172652064657465726d696e6564206163636f7264696e6720746f59012020207468652070726f63656475726520676976656e2061626f76652c207468656e2074686520636f6e7374616e7420726174696f20697320617070726f78696d6174656c7920657175616c20746f20312e3234382e6101202d20496620746865207468726573686f6c64206c69737420626567696e7320605b312c20322c20332c202e2e2e5d602c207468656e20616e20696420776974682073636f72652030206f7220312077696c6c2066616c6cf0202020696e746f2062616720302c20616e20696420776974682073636f726520322077696c6c2066616c6c20696e746f2062616720312c206574632e00302023204d6967726174696f6e00610120496e20746865206576656e7420746861742074686973206c6973742065766572206368616e6765732c206120636f7079206f6620746865206f6c642062616773206c697374206d7573742062652072657461696e65642e5d012057697468207468617420604c6973743a3a6d696772617465602063616e2062652063616c6c65642c2077686963682077696c6c20706572666f726d2074686520617070726f707269617465206d6967726174696f6e2e01e107101c56657374696e67011c56657374696e67081c56657374696e670001040200e907040004d820496e666f726d6174696f6e20726567617264696e67207468652076657374696e67206f66206120676976656e206163636f756e742e3853746f7261676556657273696f6e0100f10704000c7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e003101204e6577206e6574776f726b732073746172742077697468206c61746573742076657273696f6e2c2061732064657465726d696e6564206279207468652067656e65736973206275696c642e01d90501050108444d696e5665737465645472616e736665721840aa821bce26000000000000000000000004e820546865206d696e696d756d20616d6f756e74207472616e7366657272656420746f2063616c6c20607665737465645f7472616e73666572602e4c4d617856657374696e675363686564756c657310101c0000000001f50711204d756c746973696701204d756c746973696704244d756c7469736967730001080502f907fd07040004942054686520736574206f66206f70656e206d756c7469736967206f7065726174696f6e732e01e1050109010c2c4465706f736974426173651840d042de1300000000000000000000000018590120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e672061206d756c746973696720657865637574696f6e206f7220746f842073746f726520612064697370617463682063616c6c20666f72206c617465722e00010120546869732069732068656c6420666f7220616e206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a652069733101206034202b2073697a656f662828426c6f636b4e756d6265722c2042616c616e63652c204163636f756e74496429296020627974657320616e642077686f7365206b65792073697a652069738020603332202b2073697a656f66284163636f756e74496429602062797465732e344465706f736974466163746f72184040cd2d030000000000000000000000000c55012054686520616d6f756e74206f662063757272656e6379206e65656465642070657220756e6974207468726573686f6c64207768656e206372656174696e672061206d756c746973696720657865637574696f6e2e00250120546869732069732068656c6420666f7220616464696e67203332206279746573206d6f726520696e746f2061207072652d6578697374696e672073746f726167652076616c75652e384d61785369676e61746f7269657310106400000004ec20546865206d6178696d756d20616d6f756e74206f66207369676e61746f7269657320616c6c6f77656420696e20746865206d756c74697369672e010508121c436f756e63696c011c436f756e63696c24145374616765010009082402010000000000000004742043757272656e7420636f756e63696c20766f74696e6720737461676538436f756e63696c4d656d6265727301001d08040004602043757272656e7420636f756e63696c206d656d626572732843616e64696461746573000104022829080400041101204d6170206f6620616c6c2063616e64696461746573207468617420657665722063616e6469646174656420616e6420686176656e277420756e7374616b65207965742e50416e6e6f756e63656d656e74506572696f644e72010028200000000000000000085d0120496e646578206f66207468652063757272656e742063616e64696461637920706572696f642e20497420697320696e6372656d656e74656420657665727974696d6520616e6e6f756e63656d656e7420706572696f6420207374617274732e18427564676574010018400000000000000000000000000000000004c82042756467657420666f722074686520636f756e63696c277320656c6563746564206d656d6265727320726577617264732e484e6578745265776172645061796d656e7473010010100000000004290120546865206e65787420626c6f636b20696e2077686963682074686520656c656374656420636f756e63696c206d656d62657220726577617264732077696c6c2062652070617965642e404e657874427564676574526566696c6c010010100000000004d820546865206e65787420626c6f636b20696e20776869636820746865206275646765742077696c6c20626520696e637265617365642e3c427564676574496e6372656d656e74010018400000000000000000000000000000000004d420416d6f756e74206f662062616c616e636520746f20626520726566696c6c65642065766572792062756467657420706572696f643c436f756e63696c6f725265776172640100184000000000000000000000000000000000046c20436f756e63696c6f72207265776172642070657220626c6f636b01e90501110124684d696e4e756d6265724f66457874726143616e64696461746573101000000000080901204d696e696d756d206e756d626572206f662065787472612063616e64696461746573206e656564656420666f72207468652076616c696420656c656374696f6e2e2d01204e756d626572206f6620746f74616c2063616e6469646174657320697320657175616c20746f20636f756e63696c2073697a6520706c75732065787472612063616e646964617465732e2c436f756e63696c53697a65101003000000045420436f756e63696c206d656d62657220636f756e74444d696e43616e6469646174655374616b651840a010a012d3eb050000000000000000000490204d696e696d756d207374616b652063616e6469646174652068617320746f206c6f636b60416e6e6f756e63696e67506572696f644475726174696f6e101040fa01000474204475726174696f6e206f6620616e6e6f6e63696e6720706572696f644849646c65506572696f644475726174696f6e1010010000000460204475726174696f6e206f662069646c6520706572696f6464456c65637465644d656d626572526577617264506572696f6410104038000004a020496e74657276616c20666f72206175746f6d6174696320726577617264207061796d656e74732e48427564676574526566696c6c506572696f6410104038000004ac20496e74657276616c206265747765656e206175746f6d617469632062756467657420726566696c6c732e3c43616e6469646163794c6f636b496425042063616e6469646163048c204578706f72747320636f6e7374202d2063616e646964616379206c6f636b2069642e3c436f756e63696c6f724c6f636b4964250420636f756e63696c6f048c204578706f72747320636f6e7374202d20636f756e63696c6f72206c6f636b2069642e012d0813285265666572656e64756d014c496e7374616e6365315265666572656e64756d0c14537461676501003108040004682043757272656e74207265666572656e64756d2073746167652e14566f74657301010402004108e400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018510120566f746573206361737420696e20746865207265666572656e64756d2e2041206e6577207265636f726420697320616464656420746f2074686973206d6170207768656e20612075736572206361737473206134207365616c656420766f74652e0101204974206973206d6f646966696564207768656e206120757365722072657665616c732074686520766f7465277320636f6d6d69746d656e742070726f6f662e55012041207265636f72642069732066696e616c6c792072656d6f766564207768656e20746865207573657220756e7374616b65732c2077686963682063616e2068617070656e20647572696e67206120766f74696e679c207374616765206f72206166746572207468652063757272656e74206379636c6520656e64732ef82041207374616b6520666f72206120766f74652063616e2062652072657573656420696e20667574757265207265666572656e64756d206379636c65732e404163636f756e74734f707465644f757401010402007c0004f4204163636f756e74732074686174207065726d616e656e746c79206f70746564206f7574206f6620766f74696e6720696e207265666572656e64756d2e01ed0501190114344d617853616c744c656e67746828202000000000000000085d01204d6178696d756d206c656e677468206f6620766f746520636f6d6d69746d656e742073616c742e20557365206c656e677468207468617420656e737572657320756e697175656e65737320666f722068617368696e675020652e672e207374643a3a7536343a3a4d41582e44566f746553746167654475726174696f6e1010c0a8000004b0204475726174696f6e206f6620766f74696e6720737461676520286e756d626572206f6620626c6f636b73294c52657665616c53746167654475726174696f6e1010c0a8000004bc204475726174696f6e206f662072657665616c696e6720737461676520286e756d626572206f6620626c6f636b7329304d696e696d756d5374616b651840a41a130d8401000000000000000000000480204d696e696d756d207374616b65206e656564656420666f7220766f74696e67505374616b696e6748616e646c65724c6f636b4964250420766f74696e67202004a4204578706f72747320636f6e7374202d207374616b696e672068616e646c6572206c6f636b2069642e014508141c4d656d6265727301284d656d6265727368697020304e6578744d656d6265724964010028200000000000000000084501204d656d626572496420746f2061737369676e20746f206e657874206d656d626572207468617420697320616464656420746f207468652072656769737472792c20616e6420697320616c736f20746865e820746f74616c206e756d626572206f66206d656d6265727320637265617465642e204d656d626572496473207374617274206174205a65726f2e384d656d626572736869704279496400010402284908040004d0204d617070696e67206f66206d656d626572277320696420746f207468656972206d656d626572736869702070726f66696c652e504d656d6265724964427948616e646c6548617368010104022c28200000000000000000040501205265676973746572656420756e697175652068616e646c6573206861736820616e64207468656972206d617070696e6720746f207468656972206f776e65722e2c526566657272616c437574010008040004410120526566657272616c206375742070657263656e74206f6620746865206d656d626572736869702066656520746f2072656365697665206f6e20627579696e6720746865206d656d626572736869702e3c4d656d62657273686970507269636501001840aa821bce26000000000000000000000004682043757272656e74206d656d626572736869702070726963652e58496e697469616c496e7669746174696f6e436f756e74010010100000000004e820496e697469616c20696e7669746174696f6e20636f756e7420666f7220746865206e65776c7920626f75676874206d656d626572736869702e60496e697469616c496e7669746174696f6e42616c616e63650100184034c10d6713000000000000000000000004cc20496e697469616c20696e7669746174696f6e2062616c616e636520666f722074686520696e7669746564206d656d6265722e705374616b696e674163636f756e7449644d656d62657253746174757301010402004d082400000000000000000004250120446f75626c65206f662061207374616b696e67206163636f756e7420696420616e64206d656d62657220696420746f2074686520636f6e6669726d6174696f6e207374617475732e01f105012901185844656661756c744d656d6265727368697050726963651840aa821bce26000000000000000000000004a0204578706f72747320636f6e7374202d2064656661756c74206d656d62657273686970206665652e64526566657272616c4375744d6178696d756d50657263656e74080432044901204578706f72747320636f6e7374202d206d6178696d756d2070657263656e742076616c7565206f6620746865206d656d626572736869702066656520666f722074686520726566657272616c206375742e7c44656661756c74496e697469616c496e7669746174696f6e42616c616e6365184034c10d6713000000000000000000000004e0204578706f72747320636f6e7374202d2064656661756c742062616c616e636520666f722074686520696e7669746564206d656d6265722e3843616e6469646174655374616b651840a41a130d84010000000000000000000004f8204578706f72747320636f6e7374202d205374616b65206e656564656420746f2063616e646964617465206173207374616b696e67206163636f756e742e4c496e76697465644d656d6265724c6f636b4964250420696e766974656d6204a0204578706f72747320636f6e7374202d20696e7669746564206d656d626572206c6f636b2069642e585374616b696e6743616e6469646174654c6f636b4964250420626f756e6473746104ac204578706f72747320636f6e7374202d207374616b696e672063616e646964617465206c6f636b2069642e0151081514466f72756d0124466f72756d5f315f31203043617465676f727942794964010104022855083d010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004cc204d61702063617465676f7279206964656e74696669657220746f20636f72726573706f6e64696e672063617465676f72792e384e65787443617465676f727949640100282000000000000000000411012043617465676f7279206964656e7469666965722076616c756520746f206265207573656420666f7220746865206e6578742043617465676f727920637265617465642e3c43617465676f7279436f756e746572010028200000000000000000049420436f756e74657220666f7220616c6c206578697374696e672063617465676f726965732e2854687265616442794964010108020279035d08a4000000000000000000000000000000000000000000000000000000000000000000000000000000000004bc204d617020746872656164206964656e74696669657220746f20636f72726573706f6e64696e67207468726561642e304e657874546872656164496401002820000000000000000004090120546872656164206964656e7469666965722076616c756520746f206265207573656420666f72206e6578742054687265616420696e20746872656164427949642e284e657874506f7374496401002820000000000000000004f020506f7374206964656e7469666965722076616c756520746f206265207573656420666f7220666f72206e65787420706f737420637265617465642e4c43617465676f727942794d6f64657261746f72010108020279037c000480204d6f64657261746f722073657420666f7220656163682043617465676f727920506f737442794964010108020279036108150100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004ac204d617020706f7374206964656e74696669657220746f20636f72726573706f6e64696e6720706f73742e01f505015101102c506f73744465706f73697418403f254f710000000000000000000000000838204578706f72747320636f6e737480204465706f736974206e656564656420746f20637265617465206120706f7374345468726561644465706f73697418401a9eba6d0000000000000000000000000488204465706f736974206e656564656420746f20637265617465206120746872656164804d617844697265637453756263617465676f72696573496e43617465676f7279282005000000000000000484204d617844697265637453756263617465676f72696573496e43617465676f7279484d6178546f74616c43617465676f7269657328202800000000000000044c204d6178546f74616c43617465676f726965730165081630436f6e737469747574696f6e0130436f6e737469747574696f6e0430436f6e737469747574696f6e010069088000000000000000000000000000000000000000000000000000000000000000000001f905016d0100001718426f756e74790118426f756e74791420426f756e7469657301010402286d087d010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044020426f756e74792073746f726167652e4c426f756e7479436f6e747269627574696f6e7301010802028108850880000000000000000000000000000000008719c46b000000000000000000000000044d0120446f75626c65206d617020666f7220626f756e74792066756e64696e672e2049742073746f7265732061206d656d626572206f7220636f756e63696c2066756e64696e6720666f7220626f756e746965732e2c426f756e7479436f756e74010010100000000004b820436f756e74206f6620616c6c20626f756e7469657320746861742068617665206265656e20637265617465642e1c456e74726965730001080202790389080400046020576f726b20656e7472792073746f72616765206d61702e28456e747279436f756e74010010100000000004c820436f756e74206f6620616c6c20776f726b20656e747269657320746861742068617665206265656e20637265617465642e01fd05017101105c436c6f736564436f6e747261637453697a654c696d6974101032000000044d01204578706f72747320636f6e7374202d206d617820776f726b20656e747279206e756d62657220666f72206120636c6f736564206173737572616e6365207479706520636f6e747261637420626f756e74792e4c4d696e576f726b456e7472616e745374616b6518406039926c00000000000000000000000004d4204578706f72747320636f6e7374202d206d696e20776f726b20656e7472616e74207374616b6520666f72206120626f756e74792e6846756e6465725374617465426c6f6174426f6e64416d6f756e7418408719c46b00000000000000000000000004f4204578706f72747320636f6e7374202d2066756e64657220737461746520626c6f617420626f6e6420616d6f756e7420666f72206120626f756e74792e6c43726561746f725374617465426c6f6174426f6e64416d6f756e74184036bad36b00000000000000000000000004f8204578706f72747320636f6e7374202d2063726561746f7220737461746520626c6f617420626f6e6420616d6f756e7420666f72206120626f756e74792e018d0818404a6f7973747265616d5574696c69747901404a6f7973747265616d5574696c6974790001010601950100019108191c436f6e74656e74011c436f6e74656e74842c4368616e6e656c427949640101040228a901a10100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024566964656f42794964010104022895086c00000000000000000000000000000000000000000000000000000000344e6578744368616e6e656c4964010028200000000000000000002c4e657874566964656f496401002820000000000000000000384e6578745472616e73666572496401002820000000000000000000484e65787443757261746f7247726f75704964010028200000000000000000004043757261746f7247726f7570427949640101040228c1080c0000000028436f6d6d69746d656e7401002c80000000000000000000000000000000000000000000000000000000000000000000684368616e6e656c5374617465426c6f6174426f6e6456616c756501001840000000000000000000000000000000000425012054686520737461746520626c6f617420626f6e6420666f7220746865206368616e6e656c202868656c70732070726576656e74696e672074686520737461746520626c6f6174292e60566964656f5374617465426c6f6174426f6e6456616c7565010018400000000000000000000000000000000004190154686520737461746520626c6f617420626f6e6420666f722074686520766964656f202868656c70732070726576656e74696e672074686520737461746520626c6f6174292e444d6178436173686f7574416c6c6f776564010018400000000000000000000000000000000000444d696e436173686f7574416c6c6f776564010018400000000000000000000000000000000000584368616e6e656c436173686f757473456e61626c6564010098040000484d696e41756374696f6e4475726174696f6e01001010000000000454204d696e2061756374696f6e206475726174696f6e484d617841756374696f6e4475726174696f6e01001010000000000454204d61782061756374696f6e206475726174696f6e644d696e41756374696f6e457874656e73696f6e506572696f6401001010000000000474204d696e2061756374696f6e20657874656e73696f6e20706572696f64644d617841756374696f6e457874656e73696f6e506572696f6401001010000000000474204d61782061756374696f6e20657874656e73696f6e20706572696f64484d696e4269644c6f636b4475726174696f6e01001010000000000458204d696e20626964206c6f636b206475726174696f6e484d61784269644c6f636b4475726174696f6e01001010000000000458204d617820626964206c6f636b206475726174696f6e404d696e5374617274696e67507269636501001840000000000000000000000000000000000468204d696e2061756374696f6e2073746172696e67207072696365404d61785374617274696e67507269636501001840000000000000000000000000000000000468204d61782061756374696f6e2073746172696e67207072696365444d696e43726561746f72526f79616c74790100ac1000000000047c204d696e2063726561746f7220726f79616c74792070657263656e74616765444d617843726561746f72526f79616c74790100ac1000000000047c204d61782063726561746f7220726f79616c74792070657263656e74616765284d696e4269645374657001001840000000000000000000000000000000000454204d696e2061756374696f6e206269642073746570284d61784269645374657001001840000000000000000000000000000000000454204d61782061756374696f6e20626964207374657054506c617466726f6d46656550657263656e746167650100ac1000000000046020506c6174666f726d206665652070657263656e746167655c41756374696f6e53746172747341744d617844656c7461010010100000000004b8204d61782064656c7461206265747765656e2063757272656e7420626c6f636b20616e6420737461727473206174784f70656e41756374696f6e4269644279566964656f416e644d656d62657201010802027903dd087000000000000000000000000000000000000000000000000000000000045c204269647320666f72206f70656e2061756374696f6e7354476c6f62616c4461696c794e6674436f756e7465720100f90130000000000000000000000000046820476c6f62616c206461696c79204e465420636f756e7465722e58476c6f62616c5765656b6c794e6674436f756e7465720100f90130000000000000000000000000046c20476c6f62616c207765656b6c79204e465420636f756e7465722e4c476c6f62616c4461696c794e66744c696d69740100f50130000000000000000000000000046020476c6f62616c206461696c79204e4654206c696d69742e50476c6f62616c5765656b6c794e66744c696d69740100f50130000000000000000000000000046420476c6f62616c207765656b6c79204e4654206c696d69742e404e66744c696d697473456e61626c656401009804000868204e4654206c696d69747320656e61626c6564206f72206e6f74a02043616e206265207570646174656420696e20666c696768742062792074686520436f756e63696c01050601a101246c4d61784e756d6265724f6643757261746f727350657247726f757010100a00000004c4204578706f72747320636f6e7374202d206d6178206e756d626572206f662063757261746f7273207065722067726f7570ac4d61784b65797350657243757261746f7247726f75705065726d697373696f6e7342794c6576656c4d6170101019000000045d01204578706f72747320636f6e7374202d206d6178206e756d626572206f66206b657973207065722063757261746f725f67726f75702e7065726d697373696f6e735f62795f6c6576656c206d617020696e7374616e6365704d61784e667441756374696f6e57686974656c6973744c656e67746810101400000004c4204578706f72747320636f6e7374202d206d6178206e66742061756374696f6e2077686974656c697374206c656e6774686844656661756c74476c6f62616c4461696c794e66744c696d6974f5013064000000000000004038000004c0204578706f72747320636f6e7374202d2064656661756c7420676c6f62616c206461696c79204e4654206c696d69742e6c44656661756c74476c6f62616c5765656b6c794e66744c696d6974f5013064000000000000004038000004c4204578706f72747320636f6e7374202d2064656661756c7420676c6f62616c207765656b6c79204e4654206c696d69742e6c44656661756c744368616e6e656c4461696c794e66744c696d6974f5013064000000000000004038000004c4204578706f72747320636f6e7374202d2064656661756c74206368616e6e656c206461696c79204e4654206c696d69742e7044656661756c744368616e6e656c5765656b6c794e66744c696d6974f5013064000000000000004038000004c8204578706f72747320636f6e7374202d2064656661756c74206368616e6e656c207765656b6c79204e4654206c696d69742e684d696e696d756d436173686f7574416c6c6f7765644c696d69741840a41a130d84010000000000000000000004a8204578706f727420636f6e7374202d206d696e20636173686f757420616c6c6f776564206c696d697473684d6178696d756d436173686f7574416c6c6f7765644c696d6974184040a640ba3e363b00000000000000000004a8204578706f727420636f6e7374202d206d617820636173686f757420616c6c6f776564206c696d69747301e1081a1c53746f72616765011c53746f726167654c4055706c6f6164696e67426c6f636b6564010098040004a020446566696e6573207768657468657220616c6c206e65772075706c6f61647320626c6f636b65641042616773010104029502e50848000000000000000000000000000000000000044820426167732073746f72616765206d61702e4c4e65787453746f726167654275636b6574496401002820000000000000000004ac2053746f72616765206275636b657420696420636f756e7465722e20537461727473206174207a65726f2e404e657874446174614f626a656374496401002820000000000000000004a02044617461206f626a65637420696420636f756e7465722e20537461727473206174207a65726f2e4453746f726167654275636b6574427949640001040228f108040004442053746f72616765206275636b6574732e24426c61636b6c69737401010402f9087c00048020426c61636b6c69737465642064617461206f626a656374206861736865732e5043757272656e74426c61636b6c69737453697a65010028200000000000000000047820426c61636b6c69737420636f6c6c656374696f6e20636f756e7465722e60446174614f626a6563745065724d65676162797465466565010018400000000000000000000000000000000004b02053697a652062617365642070726963696e67206f66206e6577206f626a656374732075706c6f616465642e6453746f726167654275636b6574735065724261674c696d6974010010100000000004a0202253746f72616765206275636b657473207065722062616722206e756d626572206c696d69742e68566f75636865724d61784f626a6563747353697a654c696d697401002820000000000000000004f820224d6178206f626a656374732073697a6520666f7220612073746f72616765206275636b657420766f756368657222206e756d626572206c696d69742e70566f75636865724d61784f626a656374734e756d6265724c696d697401002820000000000000000004050120224d6178206f626a65637473206e756d62657220666f7220612073746f7261676520206275636b657420766f756368657222206e756d626572206c696d69742e74446174614f626a6563745374617465426c6f6174426f6e6456616c756501001840000000000000000000000000000000000439012054686520737461746520626c6f617420626f6e6420666f72207468652064617461206f626a65637473202868656c70732070726576656e74696e672074686520737461746520626c6f6174292e6844796e616d69634261674372656174696f6e506f6c696369657301010402b102fd0814000000000004c82044796e616d69634261674372656174696f6e506f6c6963792062792062616720747970652073746f72616765206d61702e3c446174614f626a65637473427949640101080202050909096c00000000000000000000000000000000000000000000000000000004b0202744617461206f626a6563747320666f722062616773272073746f7261676520646f75626c65206d61702e784e657874446973747269627574696f6e4275636b657446616d696c79496401002820000000000000000004dc20446973747269627574696f6e206275636b65742066616d696c7920696420636f756e7465722e20537461727473206174207a65726f2e70446973747269627574696f6e4275636b657446616d696c794279496401010402280d09200000000000000000047820446973747269627574696f6e206275636b65742066616d696c6965732e80446973747269627574696f6e4275636b6574427946616d696c794964427949640101080202790311093000000000000000000000000004a82027446973747269627574696f6e206275636b6574272073746f7261676520646f75626c65206d61702e78446973747269627574696f6e4275636b657446616d696c794e756d62657201002820000000000000000004f020546f74616c206e756d626572206f6620646973747269627574696f6e206275636b65742066616d696c69657320696e207468652073797374656d2e78446973747269627574696f6e4275636b6574735065724261674c696d6974010010100000000004b42022446973747269627574696f6e206275636b657473207065722062616722206e756d626572206c696d69742e013506018d022c48426c61636b6c69737453697a654c696d69742820e803000000000000040501204578706f72747320636f6e7374202d206d6178696d756d2073697a65206f662074686520226861736820626c61636b6c6973742220636f6c6c656374696f6e2e5c4d696e53746f726167654275636b65747350657242616710100300000004ec204578706f72747320636f6e7374202d206d696e696d756d206e756d626572206f662073746f72616765206275636b65747320706572206261672e5c4d617853746f726167654275636b65747350657242616710100d00000004ec204578706f72747320636f6e7374202d206d6178696d756d206e756d626572206f662073746f72616765206275636b65747320706572206261672e704d696e446973747269627574696f6e4275636b657473506572426167101001000000040101204578706f72747320636f6e7374202d206d696e696d756d206e756d626572206f6620646973747269627574696f6e206275636b65747320706572206261672e704d6178446973747269627574696f6e4275636b657473506572426167101033000000040101204578706f72747320636f6e7374202d206d6178696d756d206e756d626572206f6620646973747269627574696f6e206275636b65747320706572206261672eb444656661756c744d656d62657244796e616d69634261674e756d6265724f6653746f726167654275636b657473101005000000085101204578706f72747320636f6e7374202d207468652064656661756c742064796e616d696320626167206372656174696f6e20706f6c69637920666f72206d656d62657273202873746f72616765206275636b657424206e756d626572292eb844656661756c744368616e6e656c44796e616d69634261674e756d6265724f6653746f726167654275636b657473101005000000085501204578706f72747320636f6e7374202d207468652064656661756c742064796e616d696320626167206372656174696f6e20706f6c69637920666f72206368616e6e656c73202873746f72616765206275636b657424206e756d626572292e844d6178446973747269627574696f6e4275636b657446616d696c794e756d6265722820c80000000000000004fc204578706f72747320636f6e7374202d206d617820616c6c6f77656420646973747269627574696f6e206275636b65742066616d696c79206e756d6265722ec84d61784e756d6265724f6650656e64696e67496e7669746174696f6e73506572446973747269627574696f6e4275636b6574101014000000042d01204578706f72747320636f6e7374202d206d6178206e756d626572206f662070656e64696e6720696e7669746174696f6e732070657220646973747269627574696f6e206275636b65742ea44d61784e756d6265724f664f70657261746f7273506572446973747269627574696f6e4275636b6574101014000000040501204578706f72747320636f6e7374202d206d6178206e756d626572206f66206f70657261746f72732070657220646973747269627574696f6e206275636b65742e444d6178446174614f626a65637453697a652820000000000f00000004bc204578706f72747320636f6e7374202d206d61782064617461206f626a6563742073697a6520696e2062797465732e011d091b3050726f6a656374546f6b656e0114546f6b656e246c4163636f756e74496e666f4279546f6b656e416e644d656d626572010108020279032109b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041d0120446f75626c65206d617020546f6b656e49642078204d656d6265724964203d3e204163636f756e744461746120666f72206d616e6167696e67206163636f756e74206461746134546f6b656e496e666f4279496401010402284909cd010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004dc206d617020546f6b656e4964203d3e20546f6b656e4461746120746f20726574726965766520746f6b656e20696e666f726d6174696f6e2c4e657874546f6b656e4964010028200000000000000000043c20546f6b656e204964206e6f6e63652c53796d626f6c7355736564010104022c7c00046c2053657420666f722074686520746f6b656e732073796d626f6c7324426c6f6174426f6e64010018400000000000000000000000000000000004b820426c6f617420426f6e642076616c7565207573656420647572696e67206163636f756e74206372656174696f6e3c4d696e53616c654475726174696f6e01001010000000000484204d696e696d756d206475726174696f6e206f66206120746f6b656e2073616c655c4d696e526576656e756553706c69744475726174696f6e010010100000000004a8204d696e696d756d20726576656e75652073706c6974206475726174696f6e20636f6e73747261696e74684d696e526576656e756553706c697454696d65546f5374617274010010100000000004bc204d696e696d756d20726576656e75652073706c69742074696d6520746f20737461727420636f6e73747261696e743c53616c65506c6174666f726d4665650100d5021000000000044d0120506c6174666f726d20666565202870657263656e74616765292063686172676564206f6e20746f70206f6620656163682073616c652070757263686173652028696e204a4f592920616e64206275726e656401390601c102000165091c3c50726f706f73616c73456e67696e65013850726f706f73616c456e67696e65142450726f706f73616c73010104021069090101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460204d61702070726f706f73616c206279206974732069642e3450726f706f73616c436f756e74010010100000000004bc20436f756e74206f6620616c6c2070726f706f73616c7320746861742068617665206265656e20637265617465642e50446973706174636861626c6543616c6c436f646501010402107509040004b4204d61702070726f706f73616c2065786563757461626c6520636f64652062792070726f706f73616c2069642e4c41637469766550726f706f73616c436f756e740100101000000000046c20436f756e74206f66206163746976652070726f706f73616c732e6c566f7465457869737473427950726f706f73616c4279566f746572010108020279093d03040104290120446f75626c65206d617020666f722070726576656e74696e67206475706c696361746520766f7465732e2053686f756c6420626520636c65616e65642061667465722075736167652e016106012903183c43616e63656c6c6174696f6e4665651840aa821bce260000000000000000000000047901204578706f72747320636f6e7374202d2074686520666565206973206170706c696564207768656e2063616e63656c207468652070726f706f73616c2e20412066656520776f756c6420626520736c617368656420286275726e6564292e3052656a656374696f6e4665651840528d8906c20000000000000000000000084501204578706f72747320636f6e7374202d202074686520666565206973206170706c696564207768656e207468652070726f706f73616c20676574732072656a65637465642e20412066656520776f756c645420626520736c617368656420286275726e6564292e385469746c654d61784c656e67746810102800000004d0204578706f72747320636f6e7374202d20206d617820616c6c6f7765642070726f706f73616c207469746c65206c656e6774682e504465736372697074696f6e4d61784c656e6774681010b80b000004e8204578706f72747320636f6e7374202d20206d617820616c6c6f7765642070726f706f73616c206465736372697074696f6e206c656e6774682e584d617841637469766550726f706f73616c4c696d697410101400000004ec204578706f72747320636f6e7374202d20206d61782073696d756c74616e656f7573206163746976652070726f706f73616c73206e756d6265722e505374616b696e6748616e646c65724c6f636b496425042070726f706f73616c04a4204578706f72747320636f6e7374202d207374616b696e672068616e646c6572206c6f636b2069642e017d091d4c50726f706f73616c7344697363757373696f6e014850726f706f73616c44697363757373696f6e10285468726561644279496401010402288109340000000000000000000000000004bc204d617020746872656164206964656e74696669657220746f20636f72726573706f6e64696e67207468726561642e2c546872656164436f756e7401002820000000000000000004b420436f756e74206f6620616c6c207468726561647320746861742068617665206265656e20637265617465642e50506f737454687265616449644279506f73744964010108020279038d0974000000000000000000000000000000000000000000000000000000000004c4204d61702074687265616420696420616e6420706f737420696420746f20636f72726573706f6e64696e6720706f73742e24506f7374436f756e7401002820000000000000000004ac20436f756e74206f6620616c6c20706f73747320746861742068617665206265656e20637265617465642e0165060141030c404d617857686974654c69737453697a65101014000000040901204578706f72747320636f6e7374202d20617574686f72206c6973742073697a65206c696d697420666f722074686520436c6f7365642064697363757373696f6e2e2c506f73744465706f73697418405683dd6b00000000000000000000000004a0204578706f72747320636f6e7374202d2066656520666f72206372656174696e67206120706f737430506f73744c69666554696d65101058020000043d01204578706f72747320636f6e7374202d206d6178696d756d206e756d626572206f6620626c6f636b73206265666f7265206120706f73742063616e2062652065726173656420627920616e796f6e650191091e3850726f706f73616c73436f646578013850726f706f73616c73436f64657804505468726561644964427950726f706f73616c496401010402102820000000000000000004b0204d61702070726f706f73616c20696420746f206974732064697363757373696f6e2074687265616420696401690601490368985365744d617856616c696461746f72436f756e7450726f706f73616c506172616d65746572736d09b4c0890100401901006400000064000000640000006400000001a010a012d3eb050000000000000000000200000004dc204578706f7274732027536574204d61782056616c696461746f7220436f756e74272070726f706f73616c20706172616d65746572732e8052756e74696d655570677261646550726f706f73616c506172616d65746572736d09b4c0890100401901006400000064000000640000006400000001a010a012d3eb050000000000000000000200000004bc204578706f727473202752756e74696d652055706772616465272070726f706f73616c20706172616d65746572732e605369676e616c50726f706f73616c506172616d65746572736d09b4c0a80000b004000064000000640000006400000064000000011068761b959700000000000000000000010000000498204578706f72747320275369676e616c272070726f706f73616c20706172616d65746572732e8046756e64696e675265717565737450726f706f73616c506172616d65746572736d09b4c0a80000b00400004200000042000000640000006400000001a41a130d8401000000000000000000000100000004bc204578706f727473202746756e64696e672052657175657374272070726f706f73616c20706172616d65746572732ebc437265617465576f726b696e6747726f75704c6561644f70656e696e6750726f706f73616c506172616d65746572736d09b4c0a80000b00400004200000042000000640000006400000001680abf82280f0000000000000000000001000000040501204578706f727473202743726561746520576f726b696e672047726f7570204c656164204f70656e696e67272070726f706f73616c20706172616d65746572732ea446696c6c576f726b696e6747726f75704f70656e696e6750726f706f73616c506172616d65746572736d09b4c0a80000b0040000420000004200000064000000640000000134855f419407000000000000000000000100000004fc204578706f727473202746696c6c20576f726b696e672047726f7570204c656164204f70656e696e67272070726f706f73616c20706172616d65746572732ea8557064617465576f726b696e6747726f757042756467657450726f706f73616c506172616d65746572736d09b4c0a80000b0040000420000004200000064000000640000000134855f419407000000000000000000000100000004ec204578706f727473202755706461746520576f726b696e672047726f757020427564676574272070726f706f73616c20706172616d65746572732ebc4465637265617365576f726b696e6747726f75704c6561645374616b6550726f706f73616c506172616d65746572736d09b4c0a80000b0040000640000006400000064000000640000000134855f4194070000000000000000000001000000040501204578706f7274732027446563726561736520576f726b696e672047726f7570204c656164205374616b65272070726f706f73616c20706172616d65746572732e9c536c617368576f726b696e6747726f75704c65616450726f706f73616c506172616d65746572736d09b4c0a80000b0040000420000004200000064000000640000000134855f419407000000000000000000000100000004e0204578706f7274732027536c61736820576f726b696e672047726f7570204c656164272070726f706f73616c20706172616d65746572732eac536574576f726b696e6747726f75704c65616452657761726450726f706f73616c506172616d65746572736d09b4c0a80000b0040000420000004200000064000000640000000134855f419407000000000000000000000100000004f4204578706f727473202753657420576f726b696e672047726f7570204c65616420526577617264272070726f706f73616c20706172616d65746572732eac5465726d696e617465576f726b696e6747726f75704c65616450726f706f73616c506172616d65746572736d09b4c0a80000b0040000420000004200000064000000640000000134855f419407000000000000000000000100000004f0204578706f72747320275465726d696e61746520576f726b696e672047726f7570204c656164272070726f706f73616c20706172616d65746572732e8c416d656e64436f6e737469747574696f6e50726f706f73616c506172616d65746572736d09b4081a01004038000050000000640000003c0000005000000001680abf82280f000000000000000000000200000004c8204578706f7274732027416d656e6420436f6e737469747574696f6e272070726f706f73616c20706172616d65746572732ebc43616e63656c576f726b696e6747726f75704c6561644f70656e696e6750726f706f73616c506172616d65746572736d09b4c0a80000b0040000420000004200000064000000640000000134855f4194070000000000000000000001000000040501204578706f727473202743616e63656c20576f726b696e672047726f7570204c656164204f70656e696e67272070726f706f73616c20706172616d65746572732e905365744d656d62657273686970507269636550726f706f73616c506172616d65746572736d09b4c0a80000b0040000420000004200000064000000640000000134855f419407000000000000000000000100000004d0204578706f7274732027536574204d656d62657273686970205072696365272070726f706f73616c20706172616d65746572732eac536574436f756e63696c427564676574496e6372656d656e7450726f706f73616c506172616d65746572736d09b44019010040190100640000006400000064000000640000000120d0ec362a2f010000000000000000000200000004f0204578706f727473206053657420436f756e63696c2042756467657420496e6372656d656e74602070726f706f73616c20706172616d65746572732e90536574436f756e63696c6f7252657761726450726f706f73616c506172616d65746572736d09b480700000c0a80000640000006400000064000000640000000120d0ec362a2f0100000000000000000002000000042101204578706f727473206053657420436f756e63696c6f72205265776172642050726f706f73616c20506172616d6574657273602070726f706f73616c20706172616d65746572732eb4536574496e697469616c496e7669746174696f6e42616c616e636550726f706f73616c506172616d65746572736d09b480700000b00400004200000042000000640000006400000001d0147e05511e000000000000000000000100000004f8204578706f727473206053657420496e697469616c20496e7669746174696f6e2042616c616e6365602070726f706f73616c20706172616d65746572732e90536574496e7669746174696f6e436f756e7450726f706f73616c506172616d65746572736d09b4c0a80000b0040000420000004200000064000000640000000134855f419407000000000000000000000100000000c85365744d656d626572736869704c656164496e7669746174696f6e51756f746150726f706f73616c506172616d65746572736d09b4c0a80000b0040000420000004200000064000000640000000134855f41940700000000000000000000010000000080536574526566657272616c43757450726f706f73616c506172616d65746572736d09b4c0a80000b0040000420000004200000064000000640000000134855f419407000000000000000000000100000000785665746f50726f706f73616c50726f706f73616c506172616d65746572736d09b4403800000000000064000000640000006400000064000000011068761b959700000000000000000000010000000098557064617465476c6f62616c4e66744c696d697450726f706f73616c506172616d65746572736d09b480700000b00400004200000042000000640000006400000001680abf82280f000000000000000000000100000000985570646174654368616e6e656c5061796f75747350726f706f73616c506172616d65746572736d09b4c0890100403800004200000064000000640000006400000001680abf82280f0000000000000000000001000000009046756e64696e675265717565737450726f706f73616c4d6178546f74616c416d6f756e741840a010a012d3eb0500000000000000000004c4204d6178696d756d20746f74616c20616d6f756e7420696e2066756e64696e6720726571756573742070726f706f73616c8446756e64696e675265717565737450726f706f73616c4d61784163636f756e747310101400000004d0204d6178206e756d626572206f66206163636f756e7473207065722066756e64696e6720726571756573742070726f706f73616ca45365744d617856616c696461746f72436f756e7450726f706f73616c4d617856616c696461746f7273101064000000041501204d617820616c6c6f776564206e756d626572206f662076616c696461746f727320696e20736574206d61782076616c696461746f7220636f756e742070726f706f73616c0195091f44466f72756d576f726b696e6747726f75700154496e7374616e636531576f726b696e6747726f757028344e6578744f70656e696e67496401002820000000000000000004ac204e657874206964656e7469666965722076616c756520666f72206e6577206a6f62206f70656e696e672e2c4f70656e696e674279496401010402289909290101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000480204d617073206964656e74696669657220746f206a6f62206f70656e696e672e44416374697665576f726b6572436f756e740100101000000000046420436f756e74206f662061637469766520776f726b6572732e3c4170706c69636174696f6e4279496400010402289d09040004c8204d617073206964656e74696669657220746f20776f726b6572206170706c69636174696f6e206f6e206f70656e696e672e444e6578744170706c69636174696f6e496401002820000000000000000004c8204e657874206964656e7469666965722076616c756520666f72206e657720776f726b6572206170706c69636174696f6e2e304e657874576f726b657249640100282000000000000000000488204e657874206964656e74696669657220666f722061206e657720776f726b65722e28576f726b6572427949640001040228a109040004a4204d617073206964656e74696669657220746f20636f72726573706f6e64696e6720776f726b65722e2c43757272656e744c656164000028040004502043757272656e742067726f7570206c6561642e18427564676574010018400000000000000000000000000000000004782042756467657420666f722074686520776f726b696e672067726f75702e38537461747573546578744861736801002c800000000000000000000000000000000000000000000000000000000000000000044820537461747573207465787420686173682e016d06016d0318504d6178576f726b65724e756d6265724c696d697410101e0000000838204578706f72747320636f6e73749c204d61782073696d756c74616e656f75732061637469766520776f726b6572206e756d6265722e5c4d696e556e7374616b696e67506572696f644c696d697410100065040004ac20446566696e6573206d696e20756e7374616b696e6720706572696f6420696e207468652067726f75702e5c4d696e696d756d4170706c69636174696f6e5374616b6518404835261a08030000000000000000000004d4204d696e696d756d207374616b6520726571756972656420666f72206170706c79696e6720696e746f20616e206f70656e696e672e484c65616465724f70656e696e675374616b651840680abf82280f00000000000000000000048c205374616b65206e656564656420746f2063726561746520616e206f70656e696e672e30526577617264506572696f6410104a38000004d420446566696e65732074686520706572696f6420657665727920776f726b65722067657473207061696420696e20626c6f636b732e505374616b696e6748616e646c65724c6f636b496425042077672d666f72756d0464205374616b696e672068616e646c6572206c6f636b2069642e01a509204c53746f72616765576f726b696e6747726f75700154496e7374616e636532576f726b696e6747726f757028344e6578744f70656e696e67496401002820000000000000000004ac204e657874206964656e7469666965722076616c756520666f72206e6577206a6f62206f70656e696e672e2c4f70656e696e674279496401010402289909290101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000480204d617073206964656e74696669657220746f206a6f62206f70656e696e672e44416374697665576f726b6572436f756e740100101000000000046420436f756e74206f662061637469766520776f726b6572732e3c4170706c69636174696f6e4279496400010402289d09040004c8204d617073206964656e74696669657220746f20776f726b6572206170706c69636174696f6e206f6e206f70656e696e672e444e6578744170706c69636174696f6e496401002820000000000000000004c8204e657874206964656e7469666965722076616c756520666f72206e657720776f726b6572206170706c69636174696f6e2e304e657874576f726b657249640100282000000000000000000488204e657874206964656e74696669657220666f722061206e657720776f726b65722e28576f726b6572427949640001040228a109040004a4204d617073206964656e74696669657220746f20636f72726573706f6e64696e6720776f726b65722e2c43757272656e744c656164000028040004502043757272656e742067726f7570206c6561642e18427564676574010018400000000000000000000000000000000004782042756467657420666f722074686520776f726b696e672067726f75702e38537461747573546578744861736801002c800000000000000000000000000000000000000000000000000000000000000000044820537461747573207465787420686173682e01710601910318504d6178576f726b65724e756d6265724c696d697410101e0000000838204578706f72747320636f6e73749c204d61782073696d756c74616e656f75732061637469766520776f726b6572206e756d6265722e5c4d696e556e7374616b696e67506572696f644c696d697410100065040004ac20446566696e6573206d696e20756e7374616b696e6720706572696f6420696e207468652067726f75702e5c4d696e696d756d4170706c69636174696f6e5374616b6518404835261a08030000000000000000000004d4204d696e696d756d207374616b6520726571756972656420666f72206170706c79696e6720696e746f20616e206f70656e696e672e484c65616465724f70656e696e675374616b651840680abf82280f00000000000000000000048c205374616b65206e656564656420746f2063726561746520616e206f70656e696e672e30526577617264506572696f6410105438000004d420446566696e65732074686520706572696f6420657665727920776f726b65722067657473207061696420696e20626c6f636b732e505374616b696e6748616e646c65724c6f636b496425042077672d73746f72670464205374616b696e672068616e646c6572206c6f636b2069642e01a909214c436f6e74656e74576f726b696e6747726f75700154496e7374616e636533576f726b696e6747726f757028344e6578744f70656e696e67496401002820000000000000000004ac204e657874206964656e7469666965722076616c756520666f72206e6577206a6f62206f70656e696e672e2c4f70656e696e674279496401010402289909290101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000480204d617073206964656e74696669657220746f206a6f62206f70656e696e672e44416374697665576f726b6572436f756e740100101000000000046420436f756e74206f662061637469766520776f726b6572732e3c4170706c69636174696f6e4279496400010402289d09040004c8204d617073206964656e74696669657220746f20776f726b6572206170706c69636174696f6e206f6e206f70656e696e672e444e6578744170706c69636174696f6e496401002820000000000000000004c8204e657874206964656e7469666965722076616c756520666f72206e657720776f726b6572206170706c69636174696f6e2e304e657874576f726b657249640100282000000000000000000488204e657874206964656e74696669657220666f722061206e657720776f726b65722e28576f726b6572427949640001040228a109040004a4204d617073206964656e74696669657220746f20636f72726573706f6e64696e6720776f726b65722e2c43757272656e744c656164000028040004502043757272656e742067726f7570206c6561642e18427564676574010018400000000000000000000000000000000004782042756467657420666f722074686520776f726b696e672067726f75702e38537461747573546578744861736801002c800000000000000000000000000000000000000000000000000000000000000000044820537461747573207465787420686173682e01750601990318504d6178576f726b65724e756d6265724c696d697410101e0000000838204578706f72747320636f6e73749c204d61782073696d756c74616e656f75732061637469766520776f726b6572206e756d6265722e5c4d696e556e7374616b696e67506572696f644c696d697410100065040004ac20446566696e6573206d696e20756e7374616b696e6720706572696f6420696e207468652067726f75702e5c4d696e696d756d4170706c69636174696f6e5374616b6518404835261a08030000000000000000000004d4204d696e696d756d207374616b6520726571756972656420666f72206170706c79696e6720696e746f20616e206f70656e696e672e484c65616465724f70656e696e675374616b651840680abf82280f00000000000000000000048c205374616b65206e656564656420746f2063726561746520616e206f70656e696e672e30526577617264506572696f6410105e38000004d420446566696e65732074686520706572696f6420657665727920776f726b65722067657473207061696420696e20626c6f636b732e505374616b696e6748616e646c65724c6f636b496425042077672d636f6e74740464205374616b696e672068616e646c6572206c6f636b2069642e01ad09226c4f7065726174696f6e73576f726b696e6747726f7570416c7068610154496e7374616e636534576f726b696e6747726f757028344e6578744f70656e696e67496401002820000000000000000004ac204e657874206964656e7469666965722076616c756520666f72206e6577206a6f62206f70656e696e672e2c4f70656e696e674279496401010402289909290101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000480204d617073206964656e74696669657220746f206a6f62206f70656e696e672e44416374697665576f726b6572436f756e740100101000000000046420436f756e74206f662061637469766520776f726b6572732e3c4170706c69636174696f6e4279496400010402289d09040004c8204d617073206964656e74696669657220746f20776f726b6572206170706c69636174696f6e206f6e206f70656e696e672e444e6578744170706c69636174696f6e496401002820000000000000000004c8204e657874206964656e7469666965722076616c756520666f72206e657720776f726b6572206170706c69636174696f6e2e304e657874576f726b657249640100282000000000000000000488204e657874206964656e74696669657220666f722061206e657720776f726b65722e28576f726b6572427949640001040228a109040004a4204d617073206964656e74696669657220746f20636f72726573706f6e64696e6720776f726b65722e2c43757272656e744c656164000028040004502043757272656e742067726f7570206c6561642e18427564676574010018400000000000000000000000000000000004782042756467657420666f722074686520776f726b696e672067726f75702e38537461747573546578744861736801002c800000000000000000000000000000000000000000000000000000000000000000044820537461747573207465787420686173682e01790601a10318504d6178576f726b65724e756d6265724c696d697410101e0000000838204578706f72747320636f6e73749c204d61782073696d756c74616e656f75732061637469766520776f726b6572206e756d6265722e5c4d696e556e7374616b696e67506572696f644c696d697410100065040004ac20446566696e6573206d696e20756e7374616b696e6720706572696f6420696e207468652067726f75702e5c4d696e696d756d4170706c69636174696f6e5374616b6518404835261a08030000000000000000000004d4204d696e696d756d207374616b6520726571756972656420666f72206170706c79696e6720696e746f20616e206f70656e696e672e484c65616465724f70656e696e675374616b651840680abf82280f00000000000000000000048c205374616b65206e656564656420746f2063726561746520616e206f70656e696e672e30526577617264506572696f6410107c38000004d420446566696e65732074686520706572696f6420657665727920776f726b65722067657473207061696420696e20626c6f636b732e505374616b696e6748616e646c65724c6f636b496425042077672d6f706572610464205374616b696e672068616e646c6572206c6f636b2069642e01b109233c417070576f726b696e6747726f75700154496e7374616e636535576f726b696e6747726f757028344e6578744f70656e696e67496401002820000000000000000004ac204e657874206964656e7469666965722076616c756520666f72206e6577206a6f62206f70656e696e672e2c4f70656e696e674279496401010402289909290101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000480204d617073206964656e74696669657220746f206a6f62206f70656e696e672e44416374697665576f726b6572436f756e740100101000000000046420436f756e74206f662061637469766520776f726b6572732e3c4170706c69636174696f6e4279496400010402289d09040004c8204d617073206964656e74696669657220746f20776f726b6572206170706c69636174696f6e206f6e206f70656e696e672e444e6578744170706c69636174696f6e496401002820000000000000000004c8204e657874206964656e7469666965722076616c756520666f72206e657720776f726b6572206170706c69636174696f6e2e304e657874576f726b657249640100282000000000000000000488204e657874206964656e74696669657220666f722061206e657720776f726b65722e28576f726b6572427949640001040228a109040004a4204d617073206964656e74696669657220746f20636f72726573706f6e64696e6720776f726b65722e2c43757272656e744c656164000028040004502043757272656e742067726f7570206c6561642e18427564676574010018400000000000000000000000000000000004782042756467657420666f722074686520776f726b696e672067726f75702e38537461747573546578744861736801002c800000000000000000000000000000000000000000000000000000000000000000044820537461747573207465787420686173682e017d0601a90318504d6178576f726b65724e756d6265724c696d697410101e0000000838204578706f72747320636f6e73749c204d61782073696d756c74616e656f75732061637469766520776f726b6572206e756d6265722e5c4d696e556e7374616b696e67506572696f644c696d697410100065040004ac20446566696e6573206d696e20756e7374616b696e6720706572696f6420696e207468652067726f75702e5c4d696e696d756d4170706c69636174696f6e5374616b6518404835261a08030000000000000000000004d4204d696e696d756d207374616b6520726571756972656420666f72206170706c79696e6720696e746f20616e206f70656e696e672e484c65616465724f70656e696e675374616b651840680abf82280f00000000000000000000048c205374616b65206e656564656420746f2063726561746520616e206f70656e696e672e30526577617264506572696f6410107238000004d420446566696e65732074686520706572696f6420657665727920776f726b65722067657473207061696420696e20626c6f636b732e505374616b696e6748616e646c65724c6f636b496425042077672d6170706c690464205374616b696e672068616e646c6572206c6f636b2069642e01b50924584d656d62657273686970576f726b696e6747726f75700154496e7374616e636536576f726b696e6747726f757028344e6578744f70656e696e67496401002820000000000000000004ac204e657874206964656e7469666965722076616c756520666f72206e6577206a6f62206f70656e696e672e2c4f70656e696e674279496401010402289909290101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000480204d617073206964656e74696669657220746f206a6f62206f70656e696e672e44416374697665576f726b6572436f756e740100101000000000046420436f756e74206f662061637469766520776f726b6572732e3c4170706c69636174696f6e4279496400010402289d09040004c8204d617073206964656e74696669657220746f20776f726b6572206170706c69636174696f6e206f6e206f70656e696e672e444e6578744170706c69636174696f6e496401002820000000000000000004c8204e657874206964656e7469666965722076616c756520666f72206e657720776f726b6572206170706c69636174696f6e2e304e657874576f726b657249640100282000000000000000000488204e657874206964656e74696669657220666f722061206e657720776f726b65722e28576f726b6572427949640001040228a109040004a4204d617073206964656e74696669657220746f20636f72726573706f6e64696e6720776f726b65722e2c43757272656e744c656164000028040004502043757272656e742067726f7570206c6561642e18427564676574010018400000000000000000000000000000000004782042756467657420666f722074686520776f726b696e672067726f75702e38537461747573546578744861736801002c800000000000000000000000000000000000000000000000000000000000000000044820537461747573207465787420686173682e01810601b10318504d6178576f726b65724e756d6265724c696d697410101e0000000838204578706f72747320636f6e73749c204d61782073696d756c74616e656f75732061637469766520776f726b6572206e756d6265722e5c4d696e556e7374616b696e67506572696f644c696d697410100065040004ac20446566696e6573206d696e20756e7374616b696e6720706572696f6420696e207468652067726f75702e5c4d696e696d756d4170706c69636174696f6e5374616b6518404835261a08030000000000000000000004d4204d696e696d756d207374616b6520726571756972656420666f72206170706c79696e6720696e746f20616e206f70656e696e672e484c65616465724f70656e696e675374616b651840680abf82280f00000000000000000000048c205374616b65206e656564656420746f2063726561746520616e206f70656e696e672e30526577617264506572696f6410106838000004d420446566696e65732074686520706572696f6420657665727920776f726b65722067657473207061696420696e20626c6f636b732e505374616b696e6748616e646c65724c6f636b496425042077672d6d656d62720464205374616b696e672068616e646c6572206c6f636b2069642e01b90925684f7065726174696f6e73576f726b696e6747726f7570426574610154496e7374616e636537576f726b696e6747726f757028344e6578744f70656e696e67496401002820000000000000000004ac204e657874206964656e7469666965722076616c756520666f72206e6577206a6f62206f70656e696e672e2c4f70656e696e674279496401010402289909290101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000480204d617073206964656e74696669657220746f206a6f62206f70656e696e672e44416374697665576f726b6572436f756e740100101000000000046420436f756e74206f662061637469766520776f726b6572732e3c4170706c69636174696f6e4279496400010402289d09040004c8204d617073206964656e74696669657220746f20776f726b6572206170706c69636174696f6e206f6e206f70656e696e672e444e6578744170706c69636174696f6e496401002820000000000000000004c8204e657874206964656e7469666965722076616c756520666f72206e657720776f726b6572206170706c69636174696f6e2e304e657874576f726b657249640100282000000000000000000488204e657874206964656e74696669657220666f722061206e657720776f726b65722e28576f726b6572427949640001040228a109040004a4204d617073206964656e74696669657220746f20636f72726573706f6e64696e6720776f726b65722e2c43757272656e744c656164000028040004502043757272656e742067726f7570206c6561642e18427564676574010018400000000000000000000000000000000004782042756467657420666f722074686520776f726b696e672067726f75702e38537461747573546578744861736801002c800000000000000000000000000000000000000000000000000000000000000000044820537461747573207465787420686173682e01850601b90318504d6178576f726b65724e756d6265724c696d697410101e0000000838204578706f72747320636f6e73749c204d61782073696d756c74616e656f75732061637469766520776f726b6572206e756d6265722e5c4d696e556e7374616b696e67506572696f644c696d697410100065040004ac20446566696e6573206d696e20756e7374616b696e6720706572696f6420696e207468652067726f75702e5c4d696e696d756d4170706c69636174696f6e5374616b6518404835261a08030000000000000000000004d4204d696e696d756d207374616b6520726571756972656420666f72206170706c79696e6720696e746f20616e206f70656e696e672e484c65616465724f70656e696e675374616b651840680abf82280f00000000000000000000048c205374616b65206e656564656420746f2063726561746520616e206f70656e696e672e30526577617264506572696f6410108638000004d420446566696e65732074686520706572696f6420657665727920776f726b65722067657473207061696420696e20626c6f636b732e505374616b696e6748616e646c65724c6f636b496425042077672d6f706572620464205374616b696e672068616e646c6572206c6f636b2069642e01bd09266c4f7065726174696f6e73576f726b696e6747726f757047616d6d610154496e7374616e636538576f726b696e6747726f757028344e6578744f70656e696e67496401002820000000000000000004ac204e657874206964656e7469666965722076616c756520666f72206e6577206a6f62206f70656e696e672e2c4f70656e696e674279496401010402289909290101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000480204d617073206964656e74696669657220746f206a6f62206f70656e696e672e44416374697665576f726b6572436f756e740100101000000000046420436f756e74206f662061637469766520776f726b6572732e3c4170706c69636174696f6e4279496400010402289d09040004c8204d617073206964656e74696669657220746f20776f726b6572206170706c69636174696f6e206f6e206f70656e696e672e444e6578744170706c69636174696f6e496401002820000000000000000004c8204e657874206964656e7469666965722076616c756520666f72206e657720776f726b6572206170706c69636174696f6e2e304e657874576f726b657249640100282000000000000000000488204e657874206964656e74696669657220666f722061206e657720776f726b65722e28576f726b6572427949640001040228a109040004a4204d617073206964656e74696669657220746f20636f72726573706f6e64696e6720776f726b65722e2c43757272656e744c656164000028040004502043757272656e742067726f7570206c6561642e18427564676574010018400000000000000000000000000000000004782042756467657420666f722074686520776f726b696e672067726f75702e38537461747573546578744861736801002c800000000000000000000000000000000000000000000000000000000000000000044820537461747573207465787420686173682e01890601c10318504d6178576f726b65724e756d6265724c696d697410101e0000000838204578706f72747320636f6e73749c204d61782073696d756c74616e656f75732061637469766520776f726b6572206e756d6265722e5c4d696e556e7374616b696e67506572696f644c696d697410100065040004ac20446566696e6573206d696e20756e7374616b696e6720706572696f6420696e207468652067726f75702e5c4d696e696d756d4170706c69636174696f6e5374616b6518404835261a08030000000000000000000004d4204d696e696d756d207374616b6520726571756972656420666f72206170706c79696e6720696e746f20616e206f70656e696e672e484c65616465724f70656e696e675374616b651840680abf82280f00000000000000000000048c205374616b65206e656564656420746f2063726561746520616e206f70656e696e672e30526577617264506572696f6410109038000004d420446566696e65732074686520706572696f6420657665727920776f726b65722067657473207061696420696e20626c6f636b732e505374616b696e6748616e646c65724c6f636b496425042077672d6f706572670464205374616b696e672068616e646c6572206c6f636b2069642e01c1092760446973747269627574696f6e576f726b696e6747726f75700154496e7374616e636539576f726b696e6747726f757028344e6578744f70656e696e67496401002820000000000000000004ac204e657874206964656e7469666965722076616c756520666f72206e6577206a6f62206f70656e696e672e2c4f70656e696e674279496401010402289909290101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000480204d617073206964656e74696669657220746f206a6f62206f70656e696e672e44416374697665576f726b6572436f756e740100101000000000046420436f756e74206f662061637469766520776f726b6572732e3c4170706c69636174696f6e4279496400010402289d09040004c8204d617073206964656e74696669657220746f20776f726b6572206170706c69636174696f6e206f6e206f70656e696e672e444e6578744170706c69636174696f6e496401002820000000000000000004c8204e657874206964656e7469666965722076616c756520666f72206e657720776f726b6572206170706c69636174696f6e2e304e657874576f726b657249640100282000000000000000000488204e657874206964656e74696669657220666f722061206e657720776f726b65722e28576f726b6572427949640001040228a109040004a4204d617073206964656e74696669657220746f20636f72726573706f6e64696e6720776f726b65722e2c43757272656e744c656164000028040004502043757272656e742067726f7570206c6561642e18427564676574010018400000000000000000000000000000000004782042756467657420666f722074686520776f726b696e672067726f75702e38537461747573546578744861736801002c800000000000000000000000000000000000000000000000000000000000000000044820537461747573207465787420686173682e018d0601c90318504d6178576f726b65724e756d6265724c696d697410101e0000000838204578706f72747320636f6e73749c204d61782073696d756c74616e656f75732061637469766520776f726b6572206e756d6265722e5c4d696e556e7374616b696e67506572696f644c696d697410100065040004ac20446566696e6573206d696e20756e7374616b696e6720706572696f6420696e207468652067726f75702e5c4d696e696d756d4170706c69636174696f6e5374616b6518404835261a08030000000000000000000004d4204d696e696d756d207374616b6520726571756972656420666f72206170706c79696e6720696e746f20616e206f70656e696e672e484c65616465724f70656e696e675374616b651840680abf82280f00000000000000000000048c205374616b65206e656564656420746f2063726561746520616e206f70656e696e672e30526577617264506572696f6410109a38000004d420446566696e65732074686520706572696f6420657665727920776f726b65722067657473207061696420696e20626c6f636b732e505374616b696e6748616e646c65724c6f636b496425042077672d64697374720464205374616b696e672068616e646c6572206c6f636b2069642e01c50928c909042048436865636b4e6f6e5a65726f53656e646572dd097c40436865636b5370656356657273696f6ee1091038436865636b547856657273696f6ee5091030436865636b47656e65736973e9092c38436865636b4d6f7274616c697479ed092c28436865636b4e6f6e6365f5097c2c436865636b576569676874f9097c604368617267655472616e73616374696f6e5061796d656e74fd097c010a","id":"1"} \ No newline at end of file +{"jsonrpc":"2.0","result":"0x6d6574610e050a000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f0814496e64657801102c4163636f756e74446174610114001401146e6f6e6365100114496e646578000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e7444617461000010000005050014083c70616c6c65745f62616c616e6365732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500012c6d6973635f66726f7a656e18011c42616c616e63650001286665655f66726f7a656e18011c42616c616e636500001800000507001c0c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540120000c01186e6f726d616c2001045400012c6f7065726174696f6e616c200104540001246d616e6461746f7279200104540000200c2873705f77656967687473247765696768745f76321857656967687400000801207265665f74696d6524010c75363400012870726f6f665f73697a6524010c75363400002400000628002800000506002c083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d000030000002080034102873705f72756e74696d651c67656e65726963186469676573741844696765737400000401106c6f677338013c5665633c4469676573744974656d3e0000380000023c003c102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0001142850726552756e74696d650800400144436f6e73656e737573456e67696e654964000030011c5665633c75383e00060024436f6e73656e7375730800400144436f6e73656e737573456e67696e654964000030011c5665633c75383e000400105365616c0800400144436f6e73656e737573456e67696e654964000030011c5665633c75383e000500144f74686572040030011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e745570646174656400080000400000030400000008004400000248004808306672616d655f73797374656d2c4576656e745265636f7264080445014c0454012c000c01147068617365d103011450686173650001146576656e744c010445000118746f70696373d50301185665633c543e00004c08586a6f7973747265616d5f6e6f64655f72756e74696d653052756e74696d654576656e7400018c1853797374656d04005001706672616d655f73797374656d3a3a4576656e743c52756e74696d653e0000001c5574696c69747904007401607375627374726174655f7574696c6974793a3a4576656e740001002042616c616e636573040080017c70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e000500485472616e73616374696f6e5061796d656e7404008801a870616c6c65745f7472616e73616374696f6e5f7061796d656e743a3a4576656e743c52756e74696d653e00060068456c656374696f6e50726f76696465724d756c7469506861736504008c01d070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173653a3a4576656e743c52756e74696d653e0007001c5374616b696e670400a8017870616c6c65745f7374616b696e673a3a4576656e743c52756e74696d653e0008001c53657373696f6e0400bc015470616c6c65745f73657373696f6e3a3a4576656e740009001c4772616e6470610400c0015470616c6c65745f6772616e6470613a3a4576656e74000b0020496d4f6e6c696e650400d4018070616c6c65745f696d5f6f6e6c696e653a3a4576656e743c52756e74696d653e000d00204f6666656e6365730400f8015870616c6c65745f6f6666656e6365733a3a4576656e74000e0020426167734c6973740400010101f470616c6c65745f626167735f6c6973743a3a4576656e743c52756e74696d652c2070616c6c65745f626167735f6c6973743a3a496e7374616e6365313e0010001c56657374696e6704000501017870616c6c65745f76657374696e673a3a4576656e743c52756e74696d653e001100204d756c746973696704000901017c70616c6c65745f6d756c74697369673a3a4576656e743c52756e74696d653e0012001c436f756e63696c04001101015c636f756e63696c3a3a4576656e743c52756e74696d653e001300285265666572656e64756d0400190101c47265666572656e64756d3a3a4576656e743c52756e74696d652c207265666572656e64756d3a3a496e7374616e6365313e0014001c4d656d626572730400290101686d656d626572736869703a3a4576656e743c52756e74696d653e00150014466f72756d040051010154666f72756d3a3a4576656e743c52756e74696d653e00160030436f6e737469747574696f6e04006d01018c70616c6c65745f636f6e737469747574696f6e3a3a4576656e743c52756e74696d653e00170018426f756e7479040071010158626f756e74793a3a4576656e743c52756e74696d653e001800404a6f7973747265616d5574696c6974790400950101846a6f7973747265616d5f7574696c6974793a3a4576656e743c52756e74696d653e0019001c436f6e74656e740400a101015c636f6e74656e743a3a4576656e743c52756e74696d653e001a001c53746f7261676504008d02015c73746f726167653a3a4576656e743c52756e74696d653e001b003050726f6a656374546f6b656e0400c102017470726f6a6563745f746f6b656e3a3a4576656e743c52756e74696d653e001c003c50726f706f73616c73456e67696e6504002903018070726f706f73616c735f656e67696e653a3a4576656e743c52756e74696d653e001d004c50726f706f73616c7344697363757373696f6e04004103019070726f706f73616c735f64697363757373696f6e3a3a4576656e743c52756e74696d653e001e003850726f706f73616c73436f64657804004903017c70726f706f73616c735f636f6465783a3a4576656e743c52756e74696d653e001f0044466f72756d576f726b696e6747726f757004006d0301dc776f726b696e675f67726f75703a3a4576656e743c52756e74696d652c20776f726b696e675f67726f75703a3a496e7374616e6365313e0020004c53746f72616765576f726b696e6747726f75700400910301dc776f726b696e675f67726f75703a3a4576656e743c52756e74696d652c20776f726b696e675f67726f75703a3a496e7374616e6365323e0021004c436f6e74656e74576f726b696e6747726f75700400990301dc776f726b696e675f67726f75703a3a4576656e743c52756e74696d652c20776f726b696e675f67726f75703a3a496e7374616e6365333e0022006c4f7065726174696f6e73576f726b696e6747726f7570416c7068610400a10301dc776f726b696e675f67726f75703a3a4576656e743c52756e74696d652c20776f726b696e675f67726f75703a3a496e7374616e6365343e0023003c417070576f726b696e6747726f75700400a90301dc776f726b696e675f67726f75703a3a4576656e743c52756e74696d652c20776f726b696e675f67726f75703a3a496e7374616e6365353e002400584d656d62657273686970576f726b696e6747726f75700400b10301dc776f726b696e675f67726f75703a3a4576656e743c52756e74696d652c20776f726b696e675f67726f75703a3a496e7374616e6365363e002500684f7065726174696f6e73576f726b696e6747726f7570426574610400b90301dc776f726b696e675f67726f75703a3a4576656e743c52756e74696d652c20776f726b696e675f67726f75703a3a496e7374616e6365373e0026006c4f7065726174696f6e73576f726b696e6747726f757047616d6d610400c10301dc776f726b696e675f67726f75703a3a4576656e743c52756e74696d652c20776f726b696e675f67726f75703a3a496e7374616e6365383e00270060446973747269627574696f6e576f726b696e6747726f75700400c90301dc776f726b696e675f67726f75703a3a4576656e743c52756e74696d652c20776f726b696e675f67726f75703a3a496e7374616e6365393e00280000500c306672616d655f73797374656d1870616c6c6574144576656e740404540001184045787472696e7369635375636365737304013464697370617463685f696e666f5401304469737061746368496e666f00000490416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656408013864697370617463685f6572726f7260013444697370617463684572726f7200013464697370617463685f696e666f5401304469737061746368496e666f00010450416e2065787472696e736963206661696c65642e2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e7404011c6163636f756e74000130543a3a4163636f756e7449640003046841206e6577206163636f756e742077617320637265617465642e344b696c6c65644163636f756e7404011c6163636f756e74000130543a3a4163636f756e74496400040458416e206163636f756e7420776173207265617065642e2052656d61726b656408011873656e646572000130543a3a4163636f756e744964000110686173682c011c543a3a48617368000504704f6e206f6e2d636861696e2072656d61726b2068617070656e65642e04704576656e7420666f72207468652053797374656d2070616c6c65742e540c346672616d655f737570706f7274206469737061746368304469737061746368496e666f00000c0118776569676874200118576569676874000114636c6173735801344469737061746368436c617373000120706179735f6665655c0110506179730000580c346672616d655f737570706f7274206469737061746368344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f7279000200005c0c346672616d655f737570706f727420646973706174636810506179730001080c596573000000084e6f0001000060082873705f72756e74696d653444697370617463684572726f72000134144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c65040064012c4d6f64756c654572726f7200030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050040546f6f4d616e79436f6e73756d65727300060014546f6b656e0400680128546f6b656e4572726f720007002841726974686d6574696304006c013c41726974686d657469634572726f72000800345472616e73616374696f6e616c04007001485472616e73616374696f6e616c4572726f7200090024457868617573746564000a0028436f7272757074696f6e000b002c556e617661696c61626c65000c000064082873705f72756e74696d652c4d6f64756c654572726f720000080114696e64657808010875380001146572726f7240018c5b75383b204d41585f4d4f44554c455f4552524f525f454e434f4445445f53495a455d000068082873705f72756e74696d6528546f6b656e4572726f7200011c1c4e6f46756e647300000020576f756c644469650001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f72746564000600006c083473705f61726974686d657469633c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f0002000070082873705f72756e74696d65485472616e73616374696f6e616c4572726f72000108304c696d6974526561636865640000001c4e6f4c6179657200010000740c3870616c6c65745f7574696c6974791870616c6c6574144576656e74000118404261746368496e746572727570746564080114696e64657810010c7533320001146572726f7260013444697370617463684572726f7200000855014261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c2061734877656c6c20617320746865206572726f722e384261746368436f6d706c65746564000104c84261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e604261746368436f6d706c65746564576974684572726f7273000204b44261746368206f66206469737061746368657320636f6d706c657465642062757420686173206572726f72732e344974656d436f6d706c657465640003041d01412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206e6f206572726f722e284974656d4661696c65640401146572726f7260013444697370617463684572726f720004041101412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206572726f722e30446973706174636865644173040118726573756c747801384469737061746368526573756c7400050458412063616c6c2077617320646973706174636865642e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a090909780418526573756c74080454017c044501600108084f6b04007c000000000c45727204006000000100007c0000040000800c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001281c456e646f77656408011c6163636f756e74000130543a3a4163636f756e744964000130667265655f62616c616e6365180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f737408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742c78726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e736665720c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2842616c616e63655365740c010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e63650001207265736572766564180128543a3a42616c616e636500030468412062616c616e6365207761732073657420627920726f6f742e20526573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e726573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000504e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656410011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014864657374696e6174696f6e5f7374617475738401185374617475730006084d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652e1c4465706f73697408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000704d8536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e20576974686472617708010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008041d01536f6d6520616d6f756e74207761732077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650009040101536f6d6520616d6f756e74207761732072656d6f7665642066726f6d20746865206163636f756e742028652e672e20666f72206d69736265686176696f72292e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a0909098414346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e6365537461747573000108104672656500000020526573657276656400010000880c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741870616c6c6574144576656e74040454000104485472616e73616374696f6e466565506169640c010c77686f000130543a3a4163636f756e74496400012861637475616c5f66656518013042616c616e63654f663c543e00010c74697018013042616c616e63654f663c543e000008590141207472616e73616374696f6e20666565206061637475616c5f666565602c206f662077686963682060746970602077617320616464656420746f20746865206d696e696d756d20696e636c7573696f6e206665652c5c686173206265656e2070616964206279206077686f602e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a0909098c0c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173651870616c6c6574144576656e7404045400011838536f6c7574696f6e53746f7265640c011c636f6d7075746590013c456c656374696f6e436f6d707574650001186f726967696e9401504f7074696f6e3c543a3a4163636f756e7449643e000130707265765f656a6563746564980110626f6f6c00001cb44120736f6c7574696f6e207761732073746f72656420776974682074686520676976656e20636f6d707574652e00510154686520606f726967696e6020696e6469636174657320746865206f726967696e206f662074686520736f6c7574696f6e2e20496620606f726967696e602069732060536f6d65284163636f756e74496429602c55017468652073746f72656420736f6c7574696f6e20776173207375626d6974656420696e20746865207369676e65642070686173652062792061206d696e657220776974682074686520604163636f756e744964602e25014f74686572776973652c2074686520736f6c7574696f6e207761732073746f7265642065697468657220647572696e672074686520756e7369676e6564207068617365206f722062794d0160543a3a466f7263654f726967696e602e205468652060626f6f6c6020697320607472756560207768656e20612070726576696f757320736f6c7574696f6e2077617320656a656374656420746f206d616b6548726f6f6d20666f722074686973206f6e652e44456c656374696f6e46696e616c697a656408011c636f6d7075746590013c456c656374696f6e436f6d7075746500011473636f72659c0134456c656374696f6e53636f7265000104190154686520656c656374696f6e20686173206265656e2066696e616c697a65642c20776974682074686520676976656e20636f6d7075746174696f6e20616e642073636f72652e38456c656374696f6e4661696c656400020c4c416e20656c656374696f6e206661696c65642e0001014e6f74206d7563682063616e20626520736169642061626f757420776869636820636f6d7075746573206661696c656420696e207468652070726f636573732e20526577617264656408011c6163636f756e740001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e74496400011476616c756518013042616c616e63654f663c543e0003042501416e206163636f756e7420686173206265656e20726577617264656420666f72207468656972207369676e6564207375626d697373696f6e206265696e672066696e616c697a65642e1c536c617368656408011c6163636f756e740001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e74496400011476616c756518013042616c616e63654f663c543e0004042101416e206163636f756e7420686173206265656e20736c617368656420666f72207375626d697474696e6720616e20696e76616c6964207369676e6564207375626d697373696f6e2e4450686173655472616e736974696f6e65640c011066726f6da0015450686173653c543a3a426c6f636b4e756d6265723e000108746fa0015450686173653c543a3a426c6f636b4e756d6265723e000114726f756e6410010c753332000504b85468657265207761732061207068617365207472616e736974696f6e20696e206120676976656e20726f756e642e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a09090990089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173653c456c656374696f6e436f6d707574650001141c4f6e436861696e000000185369676e656400010020556e7369676e65640002002046616c6c6261636b00030024456d657267656e6379000400009404184f7074696f6e04045401000108104e6f6e6500000010536f6d6504000000000100009800000500009c084473705f6e706f735f656c656374696f6e7334456c656374696f6e53636f726500000c01346d696e696d616c5f7374616b6518013c457874656e64656442616c616e636500012473756d5f7374616b6518013c457874656e64656442616c616e636500014473756d5f7374616b655f7371756172656418013c457874656e64656442616c616e63650000a0089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173651450686173650408426e011001100c4f6666000000185369676e656400010020556e7369676e65640400a4012828626f6f6c2c20426e2900020024456d657267656e637900030000a400000408981000a8103870616c6c65745f7374616b696e671870616c6c65741870616c6c6574144576656e7404045400013c1c457261506169640c01246572615f696e646578100120457261496e64657800014076616c696461746f725f7061796f757418013042616c616e63654f663c543e00012472656d61696e64657218013042616c616e63654f663c543e000008550154686520657261207061796f757420686173206265656e207365743b207468652066697273742062616c616e6365206973207468652076616c696461746f722d7061796f75743b20746865207365636f6e64206973c07468652072656d61696e6465722066726f6d20746865206d6178696d756d20616d6f756e74206f66207265776172642e2052657761726465640801147374617368000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000104bc546865206e6f6d696e61746f7220686173206265656e207265776172646564206279207468697320616d6f756e742e1c536c61736865640801187374616b6572000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e0002041d0141207374616b6572202876616c696461746f72206f72206e6f6d696e61746f722920686173206265656e20736c61736865642062792074686520676976656e20616d6f756e742e34536c6173685265706f727465640c012476616c696461746f72000130543a3a4163636f756e7449640001206672616374696f6eac011c50657262696c6c000124736c6173685f657261100120457261496e64657800030859014120736c61736820666f722074686520676976656e2076616c696461746f722c20666f722074686520676976656e2070657263656e74616765206f66207468656972207374616b652c2061742074686520676976656e54657261206173206265656e207265706f727465642e684f6c64536c617368696e675265706f727444697363617264656404013473657373696f6e5f696e64657810013053657373696f6e496e6465780004081901416e206f6c6420736c617368696e67207265706f72742066726f6d2061207072696f72206572612077617320646973636172646564206265636175736520697420636f756c64446e6f742062652070726f6365737365642e385374616b657273456c65637465640005048441206e657720736574206f66207374616b6572732077617320656c65637465642e18426f6e6465640801147374617368000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000610d0416e206163636f756e742068617320626f6e646564207468697320616d6f756e742e205c5b73746173682c20616d6f756e745c5d004d014e4f54453a2054686973206576656e74206973206f6e6c7920656d6974746564207768656e2066756e64732061726520626f6e64656420766961206120646973706174636861626c652e204e6f7461626c792c210169742077696c6c206e6f7420626520656d697474656420666f72207374616b696e672072657761726473207768656e20746865792061726520616464656420746f207374616b652e20556e626f6e6465640801147374617368000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e00070490416e206163636f756e742068617320756e626f6e646564207468697320616d6f756e742e2457697468647261776e0801147374617368000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e0008085901416e206163636f756e74206861732063616c6c6564206077697468647261775f756e626f6e6465646020616e642072656d6f76656420756e626f6e64696e67206368756e6b7320776f727468206042616c616e6365606466726f6d2074686520756e6c6f636b696e672071756575652e184b69636b65640801246e6f6d696e61746f72000130543a3a4163636f756e7449640001147374617368000130543a3a4163636f756e744964000904b441206e6f6d696e61746f7220686173206265656e206b69636b65642066726f6d20612076616c696461746f722e545374616b696e67456c656374696f6e4661696c6564000a04ac54686520656c656374696f6e206661696c65642e204e6f206e65772065726120697320706c616e6e65642e1c4368696c6c65640401147374617368000130543a3a4163636f756e744964000b042101416e206163636f756e74206861732073746f707065642070617274696369706174696e672061732065697468657220612076616c696461746f72206f72206e6f6d696e61746f722e345061796f7574537461727465640801246572615f696e646578100120457261496e64657800013c76616c696461746f725f7374617368000130543a3a4163636f756e744964000c0498546865207374616b657273272072657761726473206172652067657474696e6720706169642e4456616c696461746f7250726566735365740801147374617368000130543a3a4163636f756e7449640001147072656673b0013856616c696461746f725072656673000d0498412076616c696461746f72206861732073657420746865697220707265666572656e6365732e20466f7263654572610401106d6f6465b8011c466f7263696e67000e047441206e657720666f72636520657261206d6f646520776173207365742e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a090909ac0c3473705f61726974686d65746963287065725f7468696e67731c50657262696c6c0000040010010c7533320000b0083870616c6c65745f7374616b696e673856616c696461746f7250726566730000080128636f6d6d697373696f6eb4011c50657262696c6c00011c626c6f636b6564980110626f6f6c0000b4000006ac00b8083870616c6c65745f7374616b696e671c466f7263696e67000110284e6f74466f7263696e6700000020466f7263654e657700010024466f7263654e6f6e650002002c466f726365416c7761797300030000bc0c3870616c6c65745f73657373696f6e1870616c6c6574144576656e74000104284e657753657373696f6e04013473657373696f6e5f696e64657810013053657373696f6e496e64657800000839014e65772073657373696f6e206861732068617070656e65642e204e6f746520746861742074686520617267756d656e74206973207468652073657373696f6e20696e6465782c206e6f74207468659c626c6f636b206e756d626572206173207468652074797065206d6967687420737567676573742e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a090909c00c3870616c6c65745f6772616e6470611870616c6c6574144576656e7400010c384e6577417574686f726974696573040134617574686f726974795f736574c40134417574686f726974794c6973740000048c4e657720617574686f726974792073657420686173206265656e206170706c6965642e185061757365640001049843757272656e7420617574686f726974792073657420686173206265656e207061757365642e1c526573756d65640002049c43757272656e7420617574686f726974792073657420686173206265656e20726573756d65642e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a090909c4000002c800c800000408cc2800cc0c4c73705f66696e616c6974795f6772616e6470610c617070185075626c696300000400d0013c656432353531393a3a5075626c69630000d00c1c73705f636f72651c65643235353139185075626c6963000004000401205b75383b2033325d0000d40c4070616c6c65745f696d5f6f6e6c696e651870616c6c6574144576656e7404045400010c444865617274626561745265636569766564040130617574686f726974795f6964d80138543a3a417574686f726974794964000004c041206e657720686561727462656174207761732072656365697665642066726f6d2060417574686f726974794964602e1c416c6c476f6f64000104d041742074686520656e64206f66207468652073657373696f6e2c206e6f206f6666656e63652077617320636f6d6d69747465642e2c536f6d654f66666c696e6504011c6f66666c696e65e0016c5665633c4964656e74696669636174696f6e5475706c653c543e3e000204290141742074686520656e64206f66207468652073657373696f6e2c206174206c65617374206f6e652076616c696461746f722077617320666f756e6420746f206265206f66666c696e652e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a090909d8104070616c6c65745f696d5f6f6e6c696e651c737232353531392c6170705f73723235353139185075626c696300000400dc013c737232353531393a3a5075626c69630000dc0c1c73705f636f72651c73723235353139185075626c6963000004000401205b75383b2033325d0000e0000002e400e40000040800e800e8083870616c6c65745f7374616b696e67204578706f7375726508244163636f756e74496401001c42616c616e63650118000c0114746f74616cec011c42616c616e636500010c6f776eec011c42616c616e63650001186f7468657273f001ac5665633c496e646976696475616c4578706f737572653c4163636f756e7449642c2042616c616e63653e3e0000ec0000061800f0000002f400f4083870616c6c65745f7374616b696e6748496e646976696475616c4578706f7375726508244163636f756e74496401001c42616c616e636501180008010c77686f0001244163636f756e74496400011476616c7565ec011c42616c616e63650000f80c3c70616c6c65745f6f6666656e6365731870616c6c6574144576656e740001041c4f6666656e63650801106b696e64fc01104b696e6400012074696d65736c6f743001384f706171756554696d65536c6f7400000c5101546865726520697320616e206f6666656e6365207265706f72746564206f662074686520676976656e20606b696e64602068617070656e656420617420746865206073657373696f6e5f696e6465786020616e643501286b696e642d7370656369666963292074696d6520736c6f742e2054686973206576656e74206973206e6f74206465706f736974656420666f72206475706c696361746520736c61736865732e4c5c5b6b696e642c2074696d65736c6f745c5d2e04304576656e747320747970652efc00000310000000080001010c4070616c6c65745f626167735f6c6973741870616c6c6574144576656e740804540004490001082052656261676765640c010c77686f000130543a3a4163636f756e74496400011066726f6d280120543a3a53636f7265000108746f280120543a3a53636f7265000004a44d6f76656420616e206163636f756e742066726f6d206f6e652062616720746f20616e6f746865722e3053636f72655570646174656408010c77686f000130543a3a4163636f756e7449640001246e65775f73636f7265280120543a3a53636f7265000104d855706461746564207468652073636f7265206f6620736f6d65206163636f756e7420746f2074686520676976656e20616d6f756e742e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a09090905010c3870616c6c65745f76657374696e671870616c6c6574144576656e740404540001083856657374696e675570646174656408011c6163636f756e74000130543a3a4163636f756e744964000120756e76657374656418013042616c616e63654f663c543e000008510154686520616d6f756e742076657374656420686173206265656e20757064617465642e205468697320636f756c6420696e6469636174652061206368616e676520696e2066756e647320617661696c61626c652e25015468652062616c616e636520676976656e2069732074686520616d6f756e74207768696368206973206c65667420756e7665737465642028616e642074687573206c6f636b6564292e4056657374696e67436f6d706c6574656404011c6163636f756e74000130543a3a4163636f756e7449640001049c416e205c5b6163636f756e745c5d20686173206265636f6d652066756c6c79207665737465642e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a09090909010c3c70616c6c65745f6d756c74697369671870616c6c6574144576656e740404540001102c4e65774d756c74697369670c0124617070726f76696e67000130543a3a4163636f756e7449640001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c486173680000048c41206e6577206d756c7469736967206f7065726174696f6e2068617320626567756e2e404d756c7469736967417070726f76616c100124617070726f76696e67000130543a3a4163636f756e74496400012474696d65706f696e740d01016454696d65706f696e743c543a3a426c6f636b4e756d6265723e0001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c48617368000104c841206d756c7469736967206f7065726174696f6e20686173206265656e20617070726f76656420627920736f6d656f6e652e404d756c74697369674578656375746564140124617070726f76696e67000130543a3a4163636f756e74496400012474696d65706f696e740d01016454696d65706f696e743c543a3a426c6f636b4e756d6265723e0001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c48617368000118726573756c747801384469737061746368526573756c740002049c41206d756c7469736967206f7065726174696f6e20686173206265656e2065786563757465642e444d756c746973696743616e63656c6c656410012863616e63656c6c696e67000130543a3a4163636f756e74496400012474696d65706f696e740d01016454696d65706f696e743c543a3a426c6f636b4e756d6265723e0001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c48617368000304a041206d756c7469736967206f7065726174696f6e20686173206265656e2063616e63656c6c65642e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a0909090d01083c70616c6c65745f6d756c74697369672454696d65706f696e74042c426c6f636b4e756d62657201100008011868656967687410012c426c6f636b4e756d626572000114696e64657810010c75333200001101083870616c6c65745f636f756e63696c205261774576656e74101c42616c616e636501182c426c6f636b4e756d6265720110204d656d62657249640128244163636f756e7449640100014c5c416e6e6f756e63696e67506572696f6453746172746564040010012c426c6f636b4e756d6265720000045c4e657720636f756e63696c2077617320656c65637465644c4e6f74456e6f75676843616e64696461746573040010012c426c6f636b4e756d6265720001041d01416e6e6f756e63696e6720706572696f642063616e27742066696e6973682062656361757365206f6620696e73756666696369656e742063616e6469647461746520636f756e744c566f74696e67506572696f6453746172746564040010010c753332000204a843616e646964617465732061726520616e6e6f756e63656420616e6420766f74696e6720737461727473304e657743616e64696461746510002801204d656d626572496400000001244163636f756e74496400000001244163636f756e744964000018011c42616c616e63650003045c4e65772063616e64696461746520616e6e6f756e636564444e6577436f756e63696c456c65637465640800150101345665633c4d656d62657249643e000010012c426c6f636b4e756d626572000404944e657720636f756e63696c2077617320656c656374656420616e64206170706f696e746564504e6577436f756e63696c4e6f74456c6563746564040010012c426c6f636b4e756d6265720005046c4e657720636f756e63696c20776173206e6f7420656c65637465645443616e6469646163795374616b6552656c6561736504002801204d656d6265724964000604d843616e646964616379207374616b65207468617420776173206e6f206c6f6e676572206e6565646564207761732072656c65617365644443616e646964616379576974686472617704002801204d656d62657249640007049443616e646964617465206861732077697468647261776e206869732063616e6469646163794043616e6469646163794e6f746553657408002801204d656d6265724964000030011c5665633c75383e000804d05468652063616e64696461746520686173207365742061206e6577206e6f746520666f722074686569722063616e646964616379345265776172645061796d656e7410002801204d656d626572496400000001244163636f756e744964000018011c42616c616e6365000018011c42616c616e6365000904c05468652077686f6c652072657761726420776173207061696420746f2074686520636f756e63696c206d656d6265722e4042756467657442616c616e6365536574040018011c42616c616e6365000a049c4275646765742062616c616e636520776173206368616e6765642062792074686520726f6f742e30427564676574526566696c6c040018011c42616c616e6365000b04c44275646765742062616c616e63652077617320696e63726561736564206279206175746f6d6174696320726566696c6c2e4c427564676574526566696c6c506c616e6e6564040010012c426c6f636b4e756d626572000c048c546865206e6578742062756467657420726566696c6c2077617320706c616e6e65642e58427564676574496e6372656d656e7455706461746564040018011c42616c616e6365000d048842756467657420696e6372656d656e7420686173206265656e20757064617465642e58436f756e63696c6f7252657761726455706461746564040018011c42616c616e6365000e0488436f756e63696c6f722072657761726420686173206265656e20757064617465642e345265717565737446756e64656408000001244163636f756e744964000018011c42616c616e6365000f045c5265717565737420686173206265656e2066756e6465644c436f756e63696c42756467657446756e6465640c002801204d656d6265724964000018011c42616c616e6365000030011c5665633c75383e0010146046756e642074686520636f756e63696c206275646765742e1c506172616d733a2c2d204d656d6265722049444c2d20416d6f756e74206f662062616c616e63652c2d20526174696f6e616c6544436f756e63696c6f7252656d61726b656408002801204d656d6265724964000030011c5665633c75383e00110460436f756e63696c6f722072656d61726b206d6573736167654443616e64696461746552656d61726b656408002801204d656d6265724964000030011c5665633c75383e0012046043616e6469646174652072656d61726b206d657373616765085c4576656e747320666f722074686973206d6f64756c652e00150100000228001901084470616c6c65745f7265666572656e64756d205261774576656e741c2c426c6f636b4e756d62657201101c42616c616e636501181048617368012c244163636f756e744964010024566f7465506f7765720118204d656d626572496401280449011d010120445265666572656e64756d53746172746564080010010c753332000010012c426c6f636b4e756d626572000004485265666572656e64756d20737461727465646c5265666572656e64756d53746172746564466f72636566756c6c79080010010c753332000010012c426c6f636b4e756d626572000104485265666572656e64756d20737461727465645452657665616c696e67537461676553746172746564040010012c426c6f636b4e756d6265720002046452657665616c696e672070686173652068617320626567756e485265666572656e64756d46696e69736865640400210101985665633c4f7074696f6e526573756c743c4d656d62657249642c20566f7465506f7765723e3e000304c05265666572656e64756d20656e64656420616e642077696e6e696e67206f7074696f6e207761732073656c656374656420566f7465436173740c000001244163636f756e74496400002c011048617368000018011c42616c616e636500040478557365722063617374206120766f746520696e207265666572656e64756d30566f746552657665616c65640c000001244163636f756e74496400002801204d656d6265724964000030011c5665633c75383e00050458557365722072657665616c65642068697320766f7465345374616b6552656c656173656404000001244163636f756e7449640006045c557365722072656c656173656420686973207374616b655c4163636f756e744f707465644f75744f66566f74696e6704000001244163636f756e744964000704d84163636f756e74207065726d616e656e746c79206f70746564206f7574206f6620766f74696e6720696e207265666572656e64756d2e085c4576656e747320666f722074686973206d6f64756c652e001d01084470616c6c65745f7265666572656e64756d24496e7374616e6365310000000021010000022501002501084470616c6c65745f7265666572656e64756d304f7074696f6e526573756c7408204d656d6265724964012824566f7465506f7765720118000801246f7074696f6e5f69642801204d656d6265724964000128766f74655f706f776572180124566f7465506f77657200002901084470616c6c65745f6d656d62657273686970205261774576656e7420204d656d626572496401281c42616c616e63650118244163636f756e74496401005c4275794d656d62657273686970506172616d6574657273012d011c4163746f724964012868496e766974654d656d62657273686970506172616d6574657273013901584372656174654d656d626572506172616d6574657273013d0160476966744d656d62657273686970506172616d65746572730141010144344d656d626572496e76697465640c002801204d656d6265724964000039010168496e766974654d656d62657273686970506172616d6574657273000018011c42616c616e6365000000404d656d6265727368697047696674656408002801204d656d6265724964000041010160476966744d656d62657273686970506172616d6574657273000100404d656d62657273686970426f756768740c002801204d656d626572496400002d01015c4275794d656d62657273686970506172616d6574657273000010010c753332000200504d656d62657250726f66696c65557064617465640c002801204d656d626572496400003101013c4f7074696f6e3c5665633c75383e3e00003101013c4f7074696f6e3c5665633c75383e3e000300544d656d6265724163636f756e7473557064617465640c002801204d656d626572496400009401444f7074696f6e3c4163636f756e7449643e00009401444f7074696f6e3c4163636f756e7449643e0004007c4d656d626572566572696669636174696f6e537461747573557064617465640c002801204d656d62657249640000980110626f6f6c000028011c4163746f72496400050048526566657272616c437574557064617465640400080108753800060048496e76697465735472616e736665727265640c002801204d656d626572496400002801204d656d6265724964000010010c753332000700584d656d62657273686970507269636555706461746564040018011c42616c616e63650008007c496e697469616c496e7669746174696f6e42616c616e636555706461746564040018011c42616c616e6365000900704c6561646572496e7669746174696f6e51756f746155706461746564040010010c753332000a0074496e697469616c496e7669746174696f6e436f756e7455706461746564040010010c753332000b004c5374616b696e674163636f756e74416464656408000001244163636f756e74496400002801204d656d6265724964000c00545374616b696e674163636f756e7452656d6f76656408000001244163636f756e74496400002801204d656d6265724964000d005c5374616b696e674163636f756e74436f6e6669726d656408000001244163636f756e74496400002801204d656d6265724964000e00384d656d62657252656d61726b65640c002801204d656d6265724964000030011c5665633c75383e0000490101704f7074696f6e3c284163636f756e7449642c2042616c616e6365293e000f00344d656d626572437265617465640c002801204d656d626572496400003d0101584372656174654d656d626572506172616d6574657273000010010c753332001000085c4576656e747320666f722074686973206d6f64756c652e002d01084470616c6c65745f6d656d626572736869705c4275794d656d62657273686970506172616d657465727308244163636f756e7449640100204d656d6265724964012800140130726f6f745f6163636f756e740001244163636f756e744964000148636f6e74726f6c6c65725f6163636f756e740001244163636f756e74496400011868616e646c653101013c4f7074696f6e3c5665633c75383e3e0001206d6574616461746130011c5665633c75383e00012c72656665727265725f6964350101404f7074696f6e3c4d656d62657249643e0000310104184f7074696f6e04045401300108104e6f6e6500000010536f6d650400300000010000350104184f7074696f6e04045401280108104e6f6e6500000010536f6d6504002800000100003901084470616c6c65745f6d656d6265727368697068496e766974654d656d62657273686970506172616d657465727308244163636f756e7449640100204d656d6265724964012800140148696e766974696e675f6d656d6265725f69642801204d656d6265724964000130726f6f745f6163636f756e740001244163636f756e744964000148636f6e74726f6c6c65725f6163636f756e740001244163636f756e74496400011868616e646c653101013c4f7074696f6e3c5665633c75383e3e0001206d6574616461746130011c5665633c75383e00003d01084470616c6c65745f6d656d62657273686970584372656174654d656d626572506172616d657465727304244163636f756e744964010000140130726f6f745f6163636f756e740001244163636f756e744964000148636f6e74726f6c6c65725f6163636f756e740001244163636f756e74496400011868616e646c6530011c5665633c75383e0001206d6574616461746130011c5665633c75383e00014869735f666f756e64696e675f6d656d626572980110626f6f6c00004101084470616c6c65745f6d656d6265727368697060476966744d656d62657273686970506172616d657465727308244163636f756e74496401001c42616c616e6365011800200130726f6f745f6163636f756e740001244163636f756e744964000148636f6e74726f6c6c65725f6163636f756e740001244163636f756e74496400011868616e646c653101013c4f7074696f6e3c5665633c75383e3e0001206d6574616461746130011c5665633c75383e0001646372656469745f636f6e74726f6c6c65725f6163636f756e7418011c42616c616e63650001a06170706c795f636f6e74726f6c6c65725f6163636f756e745f696e7669746174696f6e5f6c6f636b4501013c4f7074696f6e3c42616c616e63653e00014c6372656469745f726f6f745f6163636f756e7418011c42616c616e63650001886170706c795f726f6f745f6163636f756e745f696e7669746174696f6e5f6c6f636b4501013c4f7074696f6e3c42616c616e63653e0000450104184f7074696f6e04045401180108104e6f6e6500000010536f6d650400180000010000490104184f7074696f6e040454014d010108104e6f6e6500000010536f6d6504004d0100000100004d01000004080018005101083070616c6c65745f666f72756d205261774576656e74202843617465676f7279496401282c4d6f64657261746f7249640128205468726561644964012818506f7374496401281048617368012c2c466f72756d55736572496401283c50726976696c656765644163746f7201550138457874656e646564506f7374496401590101443c43617465676f727943726561746564100028012843617465676f727949640000350101484f7074696f6e3c43617465676f727949643e000030011c5665633c75383e000030011c5665633c75383e00000464412063617465676f72792077617320696e74726f64756365647443617465676f7279417263686976616c537461747573557064617465640c0028012843617465676f727949640000980110626f6f6c00005501013c50726976696c656765644163746f72000108e0416e206172686963616c20737461747573206f662063617465676f7279207769746820676976656e2069642077617320757064617465642e1501546865207365636f6e6420617267756d656e74207265666c6563747320746865206e657720617263686976616c20737461747573206f66207468652063617465676f72792e5043617465676f72795469746c65557064617465640c0028012843617465676f7279496400002c01104861736800005501013c50726976696c656765644163746f72000208b841207469746c65206f662063617465676f7279207769746820676976656e2069642077617320757064617465642e0101546865207365636f6e6420617267756d656e74207265666c6563747320746865206e6577207469746c652068617368206f66207468652063617465676f72792e6843617465676f72794465736372697074696f6e557064617465640c0028012843617465676f7279496400002c01104861736800005501013c50726976696c656765644163746f72000308d041206469736372697074696f6e206f662063617465676f7279207769746820676976656e2069642077617320757064617465642e1901546865207365636f6e6420617267756d656e74207265666c6563747320746865206e6577206465736372697074696f6e2068617368206f66207468652063617465676f72792e3c43617465676f727944656c65746564080028012843617465676f7279496400005501013c50726976696c656765644163746f7200040458412063617465676f7279207761732064656c657465643454687265616443726561746564180028012843617465676f72794964000028012054687265616449640000280118506f73744964000028012c466f72756d557365724964000030011c5665633c75383e000030011c5665633c75383e0005088c4120746872656164207769746820676976656e2069642077617320637265617465642ef04120746869726420617267756d656e74207265666c656374732074686520696e697469616c20706f7374206964206f6620746865207468726561642e3c5468726561644d6f6465726174656410002801205468726561644964000030011c5665633c75383e00005501013c50726976696c656765644163746f72000028012843617465676f72794964000604944120746872656164207769746820676976656e20696420776173206d6f646572617465642e3454687265616455706461746564100028012054687265616449640000980110626f6f6c00005501013c50726976696c656765644163746f72000028012843617465676f727949640007088c4120746872656164207769746820676976656e2069642077617320757064617465642e0d01546865207365636f6e6420617267756d656e74207265666c6563747320746865206e657720617263686976616c20737461747573206f6620746865207468726561642e545468726561644d657461646174615570646174656410002801205468726561644964000028012c466f72756d557365724964000028012843617465676f72794964000030011c5665633c75383e0008049c4120746872656164206d6574616461746120676976656e2069642077617320757064617465642e3454687265616444656c6574656410002801205468726561644964000028012c466f72756d557365724964000028012843617465676f727949640000980110626f6f6c000904544120746872656164207761732064656c657465642e2c5468726561644d6f76656410002801205468726561644964000028012843617465676f7279496400005501013c50726976696c656765644163746f72000028012843617465676f72794964000a0488412074687265616420776173206d6f76656420746f206e65772063617465676f727924506f737441646465641800280118506f73744964000028012c466f72756d557365724964000028012843617465676f7279496400002801205468726561644964000030011c5665633c75383e0000980110626f6f6c000b047c506f7374207769746820676976656e2069642077617320637265617465642e34506f73744d6f646572617465641400280118506f73744964000030011c5665633c75383e00005501013c50726976696c656765644163746f72000028012843617465676f7279496400002801205468726561644964000c0484506f73742077697468206769766e6520696420776173206d6f646572617465642e2c506f737444656c657465640c0030011c5665633c75383e000028012c466f72756d55736572496400005d01017842547265654d61703c457874656e646564506f737449642c20626f6f6c3e000d047c506f73742077697468206769766e65206964207761732064656c657465642e3c506f737454657874557064617465641400280118506f73744964000028012c466f72756d557365724964000028012843617465676f7279496400002801205468726561644964000030011c5665633c75383e000e08a0506f7374207769746820676976656e2069642068616420697473207465787420757064617465642e4d01546865207365636f6e6420617267756d656e74207265666c6563747320746865206e756d626572206f6620746f74616c206564697473207768656e20746865207465787420757064617465206f63637572732e6843617465676f7279537469636b795468726561645570646174650c0028012843617465676f7279496400006901014842547265655365743c54687265616449643e00005501013c50726976696c656765644163746f72000f0488537469636b7920746872656164207570646174656420666f722063617465676f72799043617465676f72794d656d626572736869704f664d6f64657261746f72557064617465640c0028012c4d6f64657261746f724964000028012843617465676f727949640000980110626f6f6c0010042501416e206d6f64657261746f72206162696c69747920746f206d6f64657261746520612063617465676f727920616e64206974732073756263617465676f726965732075706461746564085c4576656e747320666f722074686973206d6f64756c652e005501083070616c6c65745f666f72756d3c50726976696c656765644163746f72040454000108104c656164000000244d6f64657261746f7204002801384d6f64657261746f7249643c543e000100005901083070616c6c65745f666f72756d50457874656e646564506f737449644f626a6563740c2843617465676f727949640128205468726561644964012818506f737449640128000c012c63617465676f72795f696428012843617465676f727949640001247468726561645f6964280120546872656164496400011c706f73745f6964280118506f7374496400005d01042042547265654d617008044b015901045601980004006101000000610100000265010065010000040859019800690104204254726565536574040454012800040015010000006d01084c70616c6c65745f636f6e737469747574696f6e205261774576656e74041048617368012c010444436f6e73747574696f6e416d656e64656408002c011048617368000030011c5665633c75383e00001080456d697473206f6e20636f6e737469747574696f6e20616d656e646d656e742e2c506172616d65746572733a602d20636f6e737469747574696f6e207465787420686173684c2d20636f6e737469747574696f6e2074657874085c4576656e747320666f722074686973206d6f64756c652e007101083470616c6c65745f626f756e7479205261774576656e741c20426f756e7479496401281c456e747279496401281c42616c616e63650118204d656d62657249640128244163636f756e744964010060426f756e74794372656174696f6e506172616d6574657273017501384f7261636c654a7564676d656e74018501015c34426f756e7479437265617465640c00280120426f756e74794964000075010160426f756e74794372656174696f6e506172616d6574657273000030011c5665633c75383e000014544120626f756e74792077617320637265617465642e1c506172616d733a2c2d20626f756e7479204944542d206372656174696f6e20706172616d6574657273442d20626f756e7479206d6574616461746150426f756e74794f7261636c6553776974636865641000280120426f756e74794964000079010154426f756e74794163746f723c4d656d62657249643e000079010154426f756e74794163746f723c4d656d62657249643e000079010154426f756e74794163746f723c4d656d62657249643e000118d0426f756e7479204f7261636c652053776974636865642062792063757272656e74206f7261636c65206f7220636f756e63696c2e1c506172616d733a2c2d20626f756e7479204944282d207377697463686572442d2063757272656e745f6f7261636c652c302d206e6577206f7261636c6540426f756e74795465726d696e617465641000280120426f756e74794964000079010154426f756e74794163746f723c4d656d62657249643e000079010154426f756e74794163746f723c4d656d62657249643e000079010154426f756e74794163746f723c4d656d62657249643e0002188c4120626f756e747920776173207465726d696e6174656420627920636f756e63696c2e1c506172616d733a2c2d20626f756e74792049444c2d20626f756e7479207465726d696e61746f72402d20626f756e74792063726561746f723c2d20626f756e7479206f7261636c6530426f756e747946756e6465640c00280120426f756e74794964000079010154426f756e74794163746f723c4d656d62657249643e000018011c42616c616e6365000314b44120626f756e7479207761732066756e6465642062792061206d656d626572206f72206120636f756e63696c2e1c506172616d733a2c2d20626f756e74792049443c2d20626f756e74792066756e646572402d2066756e64696e6720616d6f756e745c426f756e74794d617846756e64696e67526561636865640400280120426f756e7479496400040cbc4120626f756e747920686173207265616368656420697473207461726765742066756e64696e6720616d6f756e742e1c506172616d733a2c2d20626f756e74792049445c426f756e747946756e64696e675769746864726177616c0800280120426f756e74794964000079010154426f756e74794163746f723c4d656d62657249643e000510c041206d656d626572206f72206120636f756e63696c206861732077697468647261776e207468652066756e64696e672e1c506172616d733a2c2d20626f756e74792049443c2d20626f756e74792066756e64657274426f756e747943726561746f724368657272795769746864726177616c0800280120426f756e74794964000079010154426f756e74794163746f723c4d656d62657249643e000610f84120626f756e74792063726561746f72206861732077697468647261776e207468652063686572727920286d656d626572206f7220636f756e63696c292e1c506172616d733a2c2d20626f756e7479204944402d20626f756e74792063726561746f728c426f756e747943726561746f724f7261636c655265776172645769746864726177616c0800280120426f756e74794964000079010154426f756e74794163746f723c4d656d62657249643e00071015014120626f756e74792063726561746f72206861732077697468647261776e20746865206f7261636c652072657761726420286d656d626572206f7220636f756e63696c292e1c506172616d733a2c2d20626f756e7479204944402d20626f756e74792063726561746f7270426f756e74794f7261636c655265776172645769746864726177616c0c00280120426f756e74794964000079010154426f756e74794163746f723c4d656d62657249643e000018011c42616c616e6365000814f441204f7261636c65206861732077697468647261776e20746865206f7261636c652072657761726420286d656d626572206f7220636f756e63696c292e1c506172616d733a2c2d20626f756e7479204944402d20626f756e74792063726561746f723c2d204f7261636c652052657761726434426f756e747952656d6f7665640400280120426f756e7479496400090c544120626f756e7479207761732072656d6f7665642e1c506172616d733a2c2d20626f756e747920494448576f726b456e747279416e6e6f756e6365641400280120426f756e74794964000028011c456e747279496400002801204d656d626572496400000001244163636f756e744964000030011c5665633c75383e000a1c64576f726b20656e7472792077617320616e6e6f756e6365642e1c506172616d733a2c2d20626f756e7479204944482d206372656174656420656e7472792049444c2d20656e7472616e74206d656d626572204944502d207374616b696e67206163636f756e74204944482d20776f726b206465736372697074696f6e34576f726b5375626d69747465641000280120426f756e74794964000028011c456e747279496400002801204d656d6265724964000030011c5665633c75383e000b18305375626d697420776f726b2e1c506172616d733a2c2d20626f756e7479204944482d206372656174656420656e7472792049444c2d20656e7472616e74206d656d626572204944a82d20776f726b206461746120286465736372697074696f6e2c2055524c2c20424c4f422c206574632e295c4f7261636c654a7564676d656e745375626d69747465641000280120426f756e74794964000079010154426f756e74794163746f723c4d656d62657249643e0000850101384f7261636c654a7564676d656e74000030011c5665633c75383e000c185c5375626d6974206f7261636c65206a7564676d656e742e1c506172616d733a2c2d20626f756e7479204944202d206f7261636c653c2d206a7564676d656e7420646174612c2d20726174696f6e616c6564576f726b456e7472616e7446756e647357697468647261776e0c00280120426f756e74794964000028011c456e747279496400002801204d656d6265724964000d145c576f726b20656e7472792077617320736c61736865642e1c506172616d733a2c2d20626f756e7479204944282d20656e7472792049444c2d20656e7472616e74206d656d62657220494464426f756e7479436f6e7472696275746f7252656d61726b65640c0079010154426f756e74794163746f723c4d656d62657249643e0000280120426f756e74794964000030011c5665633c75383e000e14a0426f756e747920636f6e7472696275746f72206d6164652061206d6573736167652072656d61726b1c506172616d733a342d20636f6e7472696275746f722c2d20626f756e7479206964242d206d65737361676550426f756e74794f7261636c6552656d61726b65640c0079010154426f756e74794163746f723c4d656d62657249643e0000280120426f756e74794964000030011c5665633c75383e000f148c426f756e7479206f7261636c65206d6164652061206d6573736167652072656d61726b1c506172616d733a202d206f7261636c652c2d20626f756e7479206964242d206d65737361676554426f756e7479456e7472616e7452656d61726b656410002801204d656d62657249640000280120426f756e74794964000028011c456e7472794964000030011c5665633c75383e00101890426f756e747920656e7472616e74206d6164652061206d6573736167652072656d61726b1c506172616d733a302d20656e7472616e745f69642c2d20626f756e7479206964282d20656e747279206964242d206d65737361676554426f756e747943726561746f7252656d61726b65640c0079010154426f756e74794163746f723c4d656d62657249643e0000280120426f756e74794964000030011c5665633c75383e00111490426f756e74792063726561746f72206d6164652061206d6573736167652072656d61726b1c506172616d733a242d2063726561746f722c2d20626f756e7479206964242d206d65737361676564576f726b5375626d697373696f6e506572696f64456e6465640800280120426f756e74794964000079010154426f756e74794163746f723c4d656d62657249643e0012105c576f726b20656e7472792077617320736c61736865642e1c506172616d733a2c2d20626f756e7479204944442d206f7261636c65202863616c6c65722960576f726b456e7472616e745374616b65556e6c6f636b65640c00280120426f756e74794964000028011c456e747279496400000001244163636f756e74496400131468576f726b20656e747279207374616b6520756e6c6f636b65642e1c506172616d733a2c2d20626f756e7479204944282d20656e7472792049443c2d207374616b65206163636f756e745c576f726b456e7472616e745374616b65536c61736865641000280120426f756e74794964000028011c456e747279496400000001244163636f756e744964000018011c42616c616e636500141864576f726b20656e747279207374616b6520736c61736865642e1c506172616d733a2c2d20626f756e7479204944282d20656e7472792049443c2d207374616b65206163636f756e74402d20736c617368656420616d6f756e747446756e6465725374617465426c6f6174426f6e6457697468647261776e0c00280120426f756e74794964000079010154426f756e74794163746f723c4d656d62657249643e000018011c42616c616e63650015141d0141206d656d626572206f72206120636f756e63696c2066756e646572206861732077697468647261776e207468652066756e64657220737461746520626c6f617420626f6e642e1c506172616d733a2c2d20626f756e74792049443c2d20626f756e74792066756e646572802d2066756e64657220537461746520626c6f617420626f6e6420616d6f756e747843726561746f725374617465426c6f6174426f6e6457697468647261776e0c00280120426f756e74794964000079010154426f756e74794163746f723c4d656d62657249643e000018011c42616c616e6365001614250141206d656d626572206f72206120636f756e63696c2063726561746f72206861732077697468647261776e207468652063726561746f7220737461746520626c6f617420626f6e642e1c506172616d733a2c2d20626f756e7479204944402d20626f756e74792063726561746f72842d2043726561746f7220537461746520626c6f617420626f6e6420616d6f756e74085c4576656e747320666f722074686973206d6f64756c652e007501083470616c6c65745f626f756e747940426f756e7479506172616d6574657273101c42616c616e636501182c426c6f636b4e756d6265720110204d656d626572496401285c436c6f736564436f6e747261637457686974656c697374016901001c01186f7261636c6579010154426f756e74794163746f723c4d656d62657249643e000134636f6e74726163745f747970657d0101b84173737572616e6365436f6e7472616374547970653c436c6f736564436f6e747261637457686974656c6973743e00011c63726561746f7279010154426f756e74794163746f723c4d656d62657249643e00011863686572727918011c42616c616e63650001346f7261636c655f72657761726418011c42616c616e6365000134656e7472616e745f7374616b6518011c42616c616e636500013066756e64696e675f747970658101018446756e64696e67547970653c426c6f636b4e756d6265722c2042616c616e63653e00007901083470616c6c65745f626f756e74792c426f756e74794163746f7204204d656d6265724964012801081c436f756e63696c000000184d656d62657204002801204d656d6265724964000100007d01083470616c6c65745f626f756e7479544173737572616e6365436f6e747261637454797065045c436c6f736564436f6e747261637457686974656c6973740169010108104f70656e00000018436c6f73656404006901015c436c6f736564436f6e747261637457686974656c697374000100008101083470616c6c65745f626f756e74792c46756e64696e6754797065082c426c6f636b4e756d62657201101c42616c616e6365011801082450657270657475616c04011874617267657418011c42616c616e63650000001c4c696d6974656408011874617267657418011c42616c616e636500013866756e64696e675f706572696f6410012c426c6f636b4e756d626572000100008501042042547265654d617008044b012804560189010004008d010000008901083470616c6c65745f626f756e74795c4f7261636c65576f726b456e7472794a7564676d656e74041c42616c616e6365011801081857696e6e657204011872657761726418011c42616c616e63650000002052656a6563746564080138736c617368696e675f7368617265ac011c50657262696c6c000150616374696f6e5f6a757374696669636174696f6e30011c5665633c75383e000100008d01000002910100910100000408288901009501086070616c6c65745f6a6f7973747265616d5f7574696c697479205261774576656e74081c42616c616e63650118244163636f756e74496401000110205369676e616c6564040030011c5665633c75383e00000c7841207369676e616c2070726f706f73616c207761732065786563757465641c506172616d733adc2d205369676e616c20676976656e207768656e206372656174696e672074686520636f72726573706f6e64696e672070726f706f73616c3c52756e74696d655570677261646564040030011c5665633c75383e00010c78412072756e74696d652075706772616465207761732065786563757465641c506172616d733a6c2d204e657720636f646520656e636f64656420696e2062797465736455706461746564576f726b696e6747726f75704275646765740c0099010130576f726b696e6747726f7570000018011c42616c616e636500009d01012c42616c616e63654b696e64000218d8416e206055706461746520576f726b696e672047726f757020427564676574602070726f706f73616c207761732065786563757465641c506172616d733ab42d20576f726b696e672067726f757020776869636820627564676574206973206265696e6720757064617465647c2d20416d6f756e74206f662062616c616e6365206265696e67206d6f7665645d012d20456e756d2076617269616e74207769746820706f73697469766520696e6469636174696e672066756e6473206d6f76656420746f72776172647320776f726b696e672067726f757020616e64206e65676174697665c0616e64206e656761746976652066756e6473206d6f76696e672066726f6d2074686520776f726b696e672067726f757030546f6b656e734275726e656408000001244163636f756e744964000018011c42616c616e636500031060416e206163636f756e74206275726e656420746f6b656e731c506172616d733a882d204163636f756e74204964206f6620746865206275726e696e6720746f6b656e73882d2042616c616e6365206275726e65642066726f6d2074686174206163636f756e74085c4576656e747320666f722074686973206d6f64756c652e009901103470616c6c65745f636f6d6d6f6e34776f726b696e675f67726f7570386974657261626c655f656e756d7330576f726b696e6747726f757000012414466f72756d0000001c53746f726167650001001c436f6e74656e740002003c4f7065726174696f6e73416c7068610003000c41707000040030446973747269627574696f6e000500384f7065726174696f6e73426574610006003c4f7065726174696f6e7347616d6d61000700284d656d62657273686970000800009d01083470616c6c65745f636f6d6d6f6e2c42616c616e63654b696e6400010820506f736974697665000000204e6567617469766500010000a101083870616c6c65745f636f6e74656e74205261774576656e746430436f6e74656e744163746f7201a501204d656d626572496401283843757261746f7247726f7570496401282443757261746f72496401281c566964656f49640128244368616e6e656c496401281c4368616e6e656c01a90130446174614f626a6563744964012850456e676c69736841756374696f6e506172616d7301fd01444f70656e41756374696f6e506172616d73010502344f70656e41756374696f6e49640128544e667449737375616e6365506172616d65746572730109021c42616c616e63650118644368616e6e656c4372656174696f6e506172616d65746572730115025c4368616e6e656c557064617465506172616d65746572730141025c566964656f4372656174696f6e506172616d657465727301490254566964656f557064617465506172616d6574657273015102544368616e6e656c50726976696c6567654c6576656c0108704d6f6465726174696f6e5065726d697373696f6e7342794c6576656c015502645472616e73666572436f6d6d69746d656e745769746e657373016d023c50656e64696e675472616e7366657201ed01244163636f756e7449640100785570646174654368616e6e656c5061796f757473506172616d65746572730171021c546f6b656e496401285c4368616e6e656c46756e647344657374696e6174696f6e01850201d84c43757261746f7247726f757043726561746564040028013843757261746f7247726f757049640000007843757261746f7247726f75705065726d697373696f6e7355706461746564080028013843757261746f7247726f757049640000550201704d6f6465726174696f6e5065726d697373696f6e7342794c6576656c0001005443757261746f7247726f7570537461747573536574080028013843757261746f7247726f757049640000980110626f6f6c0002003043757261746f7241646465640c0028013843757261746f7247726f75704964000028012443757261746f7249640000bd01015c4368616e6e656c4167656e745065726d697373696f6e730003003843757261746f7252656d6f766564080028013843757261746f7247726f75704964000028012443757261746f724964000400384368616e6e656c4372656174656410002801244368616e6e656c49640000a901011c4368616e6e656c0000150201644368616e6e656c4372656174696f6e506172616d657465727300000001244163636f756e744964000500384368616e6e656c557064617465641000a5010130436f6e74656e744163746f7200002801244368616e6e656c496400004102015c4368616e6e656c557064617465506172616d657465727300006901015842547265655365743c446174614f626a65637449643e000600704368616e6e656c50726976696c6567654c6576656c5570646174656408002801244368616e6e656c496400000801544368616e6e656c50726976696c6567654c6576656c000700844368616e6e656c5374617465426c6f6174426f6e6456616c756555706461746564040018011c42616c616e63650008007c566964656f5374617465426c6f6174426f6e6456616c756555706461746564040018011c42616c616e6365000900504368616e6e656c41737365747352656d6f7665641000a5010130436f6e74656e744163746f7200002801244368616e6e656c496400006901015842547265655365743c446174614f626a65637449643e0000a901011c4368616e6e656c000a00384368616e6e656c44656c657465640800a5010130436f6e74656e744163746f7200002801244368616e6e656c4964000b00644368616e6e656c44656c6574656442794d6f64657261746f720c00a5010130436f6e74656e744163746f7200002801244368616e6e656c4964000030011c5665633c75383e000c007c4368616e6e656c5669736962696c69747953657442794d6f64657261746f721000a5010130436f6e74656e744163746f7200002801244368616e6e656c49640000980110626f6f6c000030011c5665633c75383e000d009c4368616e6e656c50617573656446656174757265735570646174656442794d6f64657261746f721000a5010130436f6e74656e744163746f7200002801244368616e6e656c49640000d901018042547265655365743c5061757361626c654368616e6e656c466561747572653e000030011c5665633c75383e000e007c4368616e6e656c41737365747344656c6574656442794d6f64657261746f721000a5010130436f6e74656e744163746f7200002801244368616e6e656c496400006901015842547265655365743c446174614f626a65637449643e000030011c5665633c75383e000f00544368616e6e656c46756e647357697468647261776e1000a5010130436f6e74656e744163746f7200002801244368616e6e656c4964000018011c42616c616e636500008502015c4368616e6e656c46756e647344657374696e6174696f6e001000804368616e6e656c526577617264436c61696d6564416e6457697468647261776e1000a5010130436f6e74656e744163746f7200002801244368616e6e656c4964000018011c42616c616e636500008502015c4368616e6e656c46756e647344657374696e6174696f6e00110030566964656f437265617465641400a5010130436f6e74656e744163746f7200002801244368616e6e656c4964000028011c566964656f496400004902015c566964656f4372656174696f6e506172616d657465727300006901015842547265655365743c446174614f626a65637449643e00120030566964656f557064617465641000a5010130436f6e74656e744163746f72000028011c566964656f4964000051020154566964656f557064617465506172616d657465727300006901015842547265655365743c446174614f626a65637449643e00130030566964656f44656c657465640800a5010130436f6e74656e744163746f72000028011c566964656f49640014005c566964656f44656c6574656442794d6f64657261746f720c00a5010130436f6e74656e744163746f72000028011c566964656f4964000030011c5665633c75383e00150074566964656f5669736962696c69747953657442794d6f64657261746f721000a5010130436f6e74656e744163746f72000028011c566964656f49640000980110626f6f6c000030011c5665633c75383e00160074566964656f41737365747344656c6574656442794d6f64657261746f721400a5010130436f6e74656e744163746f72000028011c566964656f496400006901015842547265655365743c446174614f626a65637449643e0000980110626f6f6c000030011c5665633c75383e001700544368616e6e656c5061796f757473557064617465640c00710201785570646174654368616e6e656c5061796f757473506172616d65746572730000350101504f7074696f6e3c446174614f626a65637449643e00000001244163636f756e744964001800504368616e6e656c526577617264557064617465640c0018011c42616c616e6365000018011c42616c616e636500002801244368616e6e656c496400190054456e676c69736841756374696f6e537461727465640c00a5010130436f6e74656e744163746f72000028011c566964656f49640000fd010150456e676c69736841756374696f6e506172616d73001a00484f70656e41756374696f6e537461727465641000a5010130436f6e74656e744163746f72000028011c566964656f49640000050201444f70656e41756374696f6e506172616d7300002801344f70656e41756374696f6e4964001b00244e66744973737565640c00a5010130436f6e74656e744163746f72000028011c566964656f49640000090201544e667449737375616e6365506172616d6574657273001c00304e667444657374726f7965640800a5010130436f6e74656e744163746f72000028011c566964656f4964001d003841756374696f6e4269644d61646510002801204d656d6265724964000028011c566964656f4964000018011c42616c616e63650000350101404f7074696f6e3c4d656d62657249643e001e004841756374696f6e42696443616e63656c656408002801204d656d6265724964000028011c566964656f4964001f003c41756374696f6e43616e63656c65640800a5010130436f6e74656e744163746f72000028011c566964656f496400200054456e676c69736841756374696f6e536574746c65640c002801204d656d626572496400000001244163636f756e744964000028011c566964656f4964002100604269644d616465436f6d706c6574696e6741756374696f6e0c002801204d656d6265724964000028011c566964656f49640000350101404f7074696f6e3c4d656d62657249643e002200584f70656e41756374696f6e42696441636365707465641000a5010130436f6e74656e744163746f72000028011c566964656f496400002801204d656d6265724964000018011c42616c616e6365002300304f6666657253746172746564100028011c566964656f49640000a5010130436f6e74656e744163746f7200002801204d656d626572496400004501013c4f7074696f6e3c42616c616e63653e002400344f666665724163636570746564040028011c566964656f4964002500344f6666657243616e63656c6564080028011c566964656f49640000a5010130436f6e74656e744163746f72002600404e667453656c6c4f726465724d6164650c0028011c566964656f49640000a5010130436f6e74656e744163746f72000018011c42616c616e6365002700244e6674426f75676874080028011c566964656f496400002801204d656d6265724964002800384275794e6f7743616e63656c6564080028011c566964656f49640000a5010130436f6e74656e744163746f72002900484275794e6f775072696365557064617465640c0028011c566964656f49640000a5010130436f6e74656e744163746f72000018011c42616c616e6365002a00844e6674536c696e6765644261636b546f5468654f726967696e616c417274697374080028011c566964656f49640000a5010130436f6e74656e744163746f72002b00504368616e6e656c4f776e657252656d61726b656408002801244368616e6e656c4964000030011c5665633c75383e002c046c4d65746170726f746f636f6c732072656c61746564206576656e74504368616e6e656c4167656e7452656d61726b65640c00a5010130436f6e74656e744163746f7200002801244368616e6e656c4964000030011c5665633c75383e002d00404e66744f776e657252656d61726b65640c00a5010130436f6e74656e744163746f72000028011c566964656f4964000030011c5665633c75383e002e0068496e697469616c697a65644368616e6e656c5472616e736665720c002801244368616e6e656c49640000a5010130436f6e74656e744163746f720000ed01013c50656e64696e675472616e73666572002f005443616e63656c4368616e6e656c5472616e7366657208002801244368616e6e656c49640000a5010130436f6e74656e744163746f720030005c4368616e6e656c5472616e73666572416363657074656408002801244368616e6e656c496400006d0201645472616e73666572436f6d6d69746d656e745769746e65737300310054476c6f62616c4e66744c696d6974557064617465640800890201384e66744c696d6974506572696f64000028010c753634003200584368616e6e656c4e66744c696d6974557064617465641000a5010130436f6e74656e744163746f720000890201384e66744c696d6974506572696f6400002801244368616e6e656c4964000028010c75363400330040546f67676c65644e66744c696d6974730400980110626f6f6c0034004843726561746f72546f6b656e4973737565640c00a5010130436f6e74656e744163746f7200002801244368616e6e656c4964000028011c546f6b656e4964003500085c4576656e747320666f722074686973206d6f64756c652e00a5010c3870616c6c65745f636f6e74656e742c7065726d697373696f6e7330436f6e74656e744163746f720c3843757261746f7247726f7570496401282443757261746f7249640128204d656d62657249640128010c1c43757261746f72080028013843757261746f7247726f75704964000028012443757261746f724964000000184d656d62657204002801204d656d6265724964000100104c65616400020000a9010c3870616c6c65745f636f6e74656e74147479706573344368616e6e656c5265636f72642c204d656d626572496401283843757261746f7247726f7570496401281c42616c616e63650118544368616e6e656c50726976696c6567654c6576656c01082c426c6f636b4e756d62657201101c546f6b656e49640128285472616e7366657249640128404368616e6e656c41737365747353657401ad015c4368616e6e656c436f6c6c61626f7261746f72734d617001b10144506175736564466561747572657353657401d10148526570617961626c65426c6f6174426f6e6401e101003801146f776e6572e50101984368616e6e656c4f776e65723c4d656d62657249642c2043757261746f7247726f757049643e0001286e756d5f766964656f7328010c753634000134636f6c6c61626f7261746f7273b101015c4368616e6e656c436f6c6c61626f7261746f72734d617000016463756d756c61746976655f7265776172645f636c61696d656418011c42616c616e636500013c70726976696c6567655f6c6576656c0801544368616e6e656c50726976696c6567654c6576656c00013c7061757365645f6665617475726573d1010144506175736564466561747572657353657400013c7472616e736665725f737461747573e9010179014368616e6e656c5472616e736665725374617475733c4d656d62657249642c2043757261746f7247726f757049642c2042616c616e63652c205472616e7366657249642c0a4368616e6e656c436f6c6c61626f7261746f72734d61702c3e000130646174615f6f626a65637473ad0101404368616e6e656c41737365747353657400013c6461696c795f6e66745f6c696d6974f501016c4c696d6974506572506572696f643c426c6f636b4e756d6265723e0001407765656b6c795f6e66745f6c696d6974f501016c4c696d6974506572506572696f643c426c6f636b4e756d6265723e0001446461696c795f6e66745f636f756e746572f901015c4e6674436f756e7465723c426c6f636b4e756d6265723e0001487765656b6c795f6e66745f636f756e746572f901015c4e6674436f756e7465723c426c6f636b4e756d6265723e00014063726561746f725f746f6b656e5f69643501013c4f7074696f6e3c546f6b656e49643e0001606368616e6e656c5f73746174655f626c6f61745f626f6e64e1010148526570617961626c65426c6f6174426f6e640000ad010c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401280453000004006901012c42547265655365743c543e0000b1010c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b0128045601b501045300000400c501013842547265654d61703c4b2c20563e0000b5010c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401b901045300000400bd01012c42547265655365743c543e0000b901103870616c6c65745f636f6e74656e74147479706573386974657261626c655f656e756d735c4368616e6e656c416374696f6e5065726d697373696f6e000154545570646174654368616e6e656c4d657461646174610000006c4d616e6167654e6f6e566964656f4368616e6e656c417373657473000100684d616e6167654368616e6e656c436f6c6c61626f7261746f72730002004c557064617465566964656f4d6574616461746100030020416464566964656f000400444d616e616765566964656f4173736574730005003444656c6574654368616e6e656c0006002c44656c657465566964656f0007003c4d616e616765566964656f4e6674730008002c4167656e7452656d61726b0009003c5472616e736665724368616e6e656c000a0048436c61696d4368616e6e656c526577617264000b0068576974686472617746726f6d4368616e6e656c42616c616e6365000c0044497373756543726561746f72546f6b656e000d0068436c61696d43726561746f72546f6b656e506174726f6e616765000e0074496e6974416e644d616e61676543726561746f72546f6b656e53616c65000f006843726561746f72546f6b656e4973737565725472616e73666572001000784d616b6543726561746f72546f6b656e5065726d697373696f6e6c6573730011007c52656475636543726561746f72546f6b656e506174726f6e616765526174650012004c4d616e616765526576656e756553706c6974730013004c4465697373756543726561746f72546f6b656e00140000bd010420425472656553657404045401b901000400c101000000c101000002b90100c501042042547265654d617008044b0128045601b501000400c901000000c901000002cd0100cd010000040828b50100d1010c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401d501045300000400d901012c42547265655365743c543e0000d501143870616c6c65745f636f6e74656e742c7065726d697373696f6e733463757261746f725f67726f7570386974657261626c655f656e756d73585061757361626c654368616e6e656c4665617475726500011c504368616e6e656c46756e64735472616e736665720000003843726561746f72436173686f757400010040566964656f4e667449737375616e636500020034566964656f4372656174696f6e0003002c566964656f557064617465000400344368616e6e656c5570646174650005005043726561746f72546f6b656e49737375616e636500060000d9010420425472656553657404045401d501000400dd01000000dd01000002d50100e1010c3470616c6c65745f636f6d6d6f6e28626c6f61745f626f6e6448526570617961626c65426c6f6174426f6e6408244163636f756e74496401001c42616c616e636501180008015c72657061796d656e745f726573747269637465645f746f9401444f7074696f6e3c4163636f756e7449643e000118616d6f756e7418011c42616c616e63650000e5010c3870616c6c65745f636f6e74656e74147479706573304368616e6e656c4f776e657208204d656d626572496401283843757261746f7247726f7570496401280108184d656d62657204002801204d656d62657249640000003043757261746f7247726f7570040028013843757261746f7247726f7570496400010000e9010c3870616c6c65745f636f6e74656e74147479706573544368616e6e656c5472616e7366657253746174757314204d656d626572496401283843757261746f7247726f7570496401281c42616c616e63650118285472616e73666572496401285c4368616e6e656c436f6c6c61626f7261746f72734d617001b1010108404e6f4163746976655472616e736665720000003c50656e64696e675472616e736665720400ed01015d0150656e64696e675472616e736665723c4d656d62657249642c2043757261746f7247726f757049642c2042616c616e63652c205472616e7366657249642c0a4368616e6e656c436f6c6c61626f7261746f72734d61703e00010000ed010c3870616c6c65745f636f6e74656e741474797065733c50656e64696e675472616e7366657214204d656d626572496401283843757261746f7247726f7570496401281c42616c616e63650118285472616e73666572496401285c4368616e6e656c436f6c6c61626f7261746f72734d617001b101000801246e65775f6f776e6572e50101984368616e6e656c4f776e65723c4d656d62657249642c2043757261746f7247726f757049643e00013c7472616e736665725f706172616d73f1010129015472616e73666572436f6d6d69746d656e74506172616d65746572733c4368616e6e656c436f6c6c61626f7261746f72734d61702c2042616c616e63652c205472616e7366657249643e0000f1010c3870616c6c65745f636f6e74656e74147479706573705472616e73666572436f6d6d69746d656e74506172616d65746572730c5c4368616e6e656c436f6c6c61626f7261746f72734d617001b1011c42616c616e63650118285472616e7366657249640128000c01446e65775f636f6c6c61626f7261746f7273b101015c4368616e6e656c436f6c6c61626f7261746f72734d6170000114707269636518011c42616c616e636500012c7472616e736665725f69642801285472616e7366657249640000f5010c3870616c6c65745f636f6e74656e74147479706573384c696d6974506572506572696f64042c426c6f636b4e756d6265720110000801146c696d697428010c75363400014c626c6f636b5f6e756d6265725f706572696f6410012c426c6f636b4e756d6265720000f9010c3870616c6c65745f636f6e74656e74147479706573284e6674436f756e746572042c426c6f636b4e756d62657201100008011c636f756e74657228010c7536340001306c6173745f7570646174656410012c426c6f636b4e756d6265720000fd01103870616c6c65745f636f6e74656e740c6e667414747970657368456e676c69736841756374696f6e506172616d735265636f72640c2c426c6f636b4e756d62657201101c42616c616e63650118204d656d62657249640128001c01387374617274696e675f707269636518011c42616c616e63650001346275795f6e6f775f70726963654501013c4f7074696f6e3c42616c616e63653e00012477686974656c6973746901014842547265655365743c4d656d62657249643e0001247374617274735f61740102014c4f7074696f6e3c426c6f636b4e756d6265723e0001206475726174696f6e10012c426c6f636b4e756d626572000140657874656e73696f6e5f706572696f6410012c426c6f636b4e756d6265720001306d696e5f6269645f7374657018011c42616c616e63650000010204184f7074696f6e04045401100108104e6f6e6500000010536f6d6504001000000100000502103870616c6c65745f636f6e74656e740c6e66741474797065735c4f70656e41756374696f6e506172616d735265636f72640c2c426c6f636b4e756d62657201101c42616c616e63650118204d656d62657249640128001401387374617274696e675f707269636518011c42616c616e63650001346275795f6e6f775f70726963654501013c4f7074696f6e3c42616c616e63653e0001247374617274735f61740102014c4f7074696f6e3c426c6f636b4e756d6265723e00012477686974656c6973746901014842547265655365743c4d656d62657249643e0001446269645f6c6f636b5f6475726174696f6e10012c426c6f636b4e756d62657200000902103870616c6c65745f636f6e74656e740c6e66741474797065736c4e667449737375616e6365506172616d65746572735265636f726408204d656d626572496401285c496e69745472616e73616374696f6e616c537461747573010d020010011c726f79616c74791102013c4f7074696f6e3c526f79616c74793e0001306e66745f6d6574616461746130012c4e66744d657461646174610001446e6f6e5f6368616e6e656c5f6f776e6572350101404f7074696f6e3c4d656d62657249643e000164696e69745f7472616e73616374696f6e616c5f7374617475730d02015c496e69745472616e73616374696f6e616c53746174757300000d02103870616c6c65745f636f6e74656e740c6e667414747970657374496e69745472616e73616374696f6e616c5374617475735265636f72641050456e676c69736841756374696f6e506172616d7301fd01444f70656e41756374696f6e506172616d73010502204d656d626572496401281c42616c616e6365011801141049646c65000000184275794e6f77040018011c42616c616e636500010058496e697469617465644f66666572546f4d656d62657208002801204d656d626572496400004501013c4f7074696f6e3c42616c616e63653e00020038456e676c69736841756374696f6e0400fd010150456e676c69736841756374696f6e506172616d730003002c4f70656e41756374696f6e0400050201444f70656e41756374696f6e506172616d7300040000110204184f7074696f6e04045401ac0108104e6f6e6500000010536f6d650400ac000001000015020c3870616c6c65745f636f6e74656e741474797065737c4368616e6e656c4372656174696f6e506172616d65746572735265636f7264143453746f72616765417373657473011902204d656d626572496401283c53746f726167654275636b65744964012850446973747269627574696f6e4275636b657449640125021c42616c616e63650118001c0118617373657473290201544f7074696f6e3c53746f726167654173736574733e0001106d6574613101013c4f7074696f6e3c5665633c75383e3e000134636f6c6c61626f7261746f72732d0201ac42547265654d61703c4d656d62657249642c204368616e6e656c4167656e745065726d697373696f6e733e00013c73746f726167655f6275636b6574736901016442547265655365743c53746f726167654275636b657449643e000150646973747269627574696f6e5f6275636b6574733902017842547265655365743c446973747269627574696f6e4275636b657449643e00018465787065637465645f6368616e6e656c5f73746174655f626c6f61745f626f6e6418011c42616c616e636500019465787065637465645f646174615f6f626a6563745f73746174655f626c6f61745f626f6e6418011c42616c616e6365000019020c3870616c6c65745f636f6e74656e741474797065734c53746f726167654173736574735265636f7264041c42616c616e63650118000801506f626a6563745f6372656174696f6e5f6c6973741d0201845665633c446174614f626a6563744372656174696f6e506172616d65746572733e00015865787065637465645f646174615f73697a655f66656518011c42616c616e636500001d020000022102002102083870616c6c65745f73746f7261676570446174614f626a6563744372656174696f6e506172616d6574657273000008011073697a6528010c75363400013c697066735f636f6e74656e745f696430011c5665633c75383e00002502083870616c6c65745f73746f7261676568446973747269627574696f6e4275636b657449645265636f72640868446973747269627574696f6e4275636b657446616d696c79496401285c446973747269627574696f6e4275636b6574496e646578012800080174646973747269627574696f6e5f6275636b65745f66616d696c795f6964280168446973747269627574696f6e4275636b657446616d696c794964000164646973747269627574696f6e5f6275636b65745f696e64657828015c446973747269627574696f6e4275636b6574496e6465780000290204184f7074696f6e0404540119020108104e6f6e6500000010536f6d650400190200000100002d02042042547265654d617008044b0128045601bd010004003102000000310200000235020035020000040828bd01003902042042547265655365740404540125020004003d020000003d0200000225020041020c3870616c6c65745f636f6e74656e74147479706573744368616e6e656c557064617465506172616d65746572735265636f7264103453746f7261676541737365747301190230446174614f626a65637449640128204d656d626572496401281c42616c616e63650118001801406173736574735f746f5f75706c6f6164290201544f7074696f6e3c53746f726167654173736574733e0001206e65775f6d6574613101013c4f7074696f6e3c5665633c75383e3e0001406173736574735f746f5f72656d6f76656901015842547265655365743c446174614f626a65637449643e000134636f6c6c61626f7261746f7273450201cc4f7074696f6e3c42547265654d61703c4d656d62657249642c204368616e6e656c4167656e745065726d697373696f6e733e3e00019465787065637465645f646174615f6f626a6563745f73746174655f626c6f61745f626f6e6418011c42616c616e636500016c73746f726167655f6275636b6574735f6e756d5f7769746e6573730102012c4f7074696f6e3c7533323e0000450204184f7074696f6e040454012d020108104e6f6e6500000010536f6d6504002d02000001000049020c3870616c6c65745f636f6e74656e7414747970657374566964656f4372656174696f6e506172616d65746572735265636f72640c3453746f72616765417373657473011902544e667449737375616e6365506172616d65746572730109021c42616c616e6365011800180118617373657473290201544f7074696f6e3c53746f726167654173736574733e0001106d6574613101013c4f7074696f6e3c5665633c75383e3e0001386175746f5f69737375655f6e66744d0201744f7074696f6e3c4e667449737375616e6365506172616d65746572733e00017c65787065637465645f766964656f5f73746174655f626c6f61745f626f6e6418011c42616c616e636500019465787065637465645f646174615f6f626a6563745f73746174655f626c6f61745f626f6e6418011c42616c616e636500016c73746f726167655f6275636b6574735f6e756d5f7769746e65737310010c75333200004d0204184f7074696f6e0404540109020108104e6f6e6500000010536f6d6504000902000001000051020c3870616c6c65745f636f6e74656e741474797065736c566964656f557064617465506172616d65746572735265636f7264103453746f7261676541737365747301190230446174614f626a65637449640128544e667449737375616e6365506172616d65746572730109021c42616c616e63650118001801406173736574735f746f5f75706c6f6164290201544f7074696f6e3c53746f726167654173736574733e0001206e65775f6d6574613101013c4f7074696f6e3c5665633c75383e3e0001406173736574735f746f5f72656d6f76656901015842547265655365743c446174614f626a65637449643e0001386175746f5f69737375655f6e66744d0201744f7074696f6e3c4e667449737375616e6365506172616d65746572733e00019465787065637465645f646174615f6f626a6563745f73746174655f626c6f61745f626f6e6418011c42616c616e636500016c73746f726167655f6275636b6574735f6e756d5f7769746e6573730102012c4f7074696f6e3c7533323e00005502042042547265654d617008044b010804560159020004006502000000590204204254726565536574040454015d0200040061020000005d02143870616c6c65745f636f6e74656e742c7065726d697373696f6e733463757261746f725f67726f7570386974657261626c655f656e756d735c436f6e74656e744d6f6465726174696f6e416374696f6e0001202448696465566964656f0000002c486964654368616e6e656c000100684368616e67654368616e6e656c466561747572655374617475730400d50101585061757361626c654368616e6e656c466561747572650002002c44656c657465566964656f0003003444656c6574654368616e6e656c0004004444656c657465566964656f4173736574730400980110626f6f6c0005006c44656c6574654e6f6e566964656f4368616e6e656c417373657473000600585570646174654368616e6e656c4e66744c696d6974730007000061020000025d02006502000002690200690200000408085902006d020c3870616c6c65745f636f6e74656e74147479706573705472616e73666572436f6d6d69746d656e74506172616d65746572730c5c4368616e6e656c436f6c6c61626f7261746f72734d6170012d021c42616c616e63650118285472616e7366657249640128000c01446e65775f636f6c6c61626f7261746f72732d02015c4368616e6e656c436f6c6c61626f7261746f72734d6170000114707269636518011c42616c616e636500012c7472616e736665725f69642801285472616e736665724964000071020c3870616c6c65745f636f6e74656e74147479706573905570646174654368616e6e656c5061796f757473506172616d65746572735265636f72640c7c4368616e6e656c5061796f7574735061796c6f6164506172616d65746572730175021c42616c616e636501181048617368012c00140128636f6d6d69746d656e74790201304f7074696f6e3c486173683e00011c7061796c6f61647d02019c4f7074696f6e3c4368616e6e656c5061796f7574735061796c6f6164506172616d65746572733e00014c6d696e5f636173686f75745f616c6c6f7765644501013c4f7074696f6e3c42616c616e63653e00014c6d61785f636173686f75745f616c6c6f7765644501013c4f7074696f6e3c42616c616e63653e0001606368616e6e656c5f636173686f7574735f656e61626c6564810201304f7074696f6e3c626f6f6c3e000075020c3870616c6c65745f636f6e74656e74147479706573944368616e6e656c5061796f7574735061796c6f6164506172616d65746572735265636f7264041c42616c616e63650118000c01586f626a6563745f6372656174696f6e5f706172616d7321020170446174614f626a6563744372656174696f6e506172616d657465727300015865787065637465645f646174615f73697a655f66656518011c42616c616e636500019465787065637465645f646174615f6f626a6563745f73746174655f626c6f61745f626f6e6418011c42616c616e63650000790204184f7074696f6e040454012c0108104e6f6e6500000010536f6d6504002c00000100007d0204184f7074696f6e0404540175020108104e6f6e6500000010536f6d65040075020000010000810204184f7074696f6e04045401980108104e6f6e6500000010536f6d65040098000001000085020c3870616c6c65745f636f6e74656e741474797065735c4368616e6e656c46756e647344657374696e6174696f6e04244163636f756e74496401000108244163636f756e74496404000001244163636f756e74496400000034436f756e63696c4275646765740001000089020c3870616c6c65745f636f6e74656e74147479706573384e66744c696d6974506572696f64000108144461696c79000000185765656b6c79000100008d02083870616c6c65745f73746f72616765205261774576656e74303c53746f726167654275636b65744964012820576f726b65724964012830446174614f626a656374496401284055706c6f6164506172616d65746572730191021442616749640195023044796e616d69634261674964019d02244163636f756e74496401001c42616c616e6365011868446973747269627574696f6e4275636b657446616d696c794964012850446973747269627574696f6e4275636b657449640125025c446973747269627574696f6e4275636b6574496e64657801287044796e616d69634261674372656174696f6e506172616d657465727301a10201a85053746f726167654275636b657443726561746564140028013c53746f726167654275636b657449640000350101404f7074696f6e3c576f726b657249643e0000980110626f6f6c000028010c753634000028010c75363400001c94456d697473206f6e206372656174696e67207468652073746f72616765206275636b65742e18506172616d734c2d2073746f72616765206275636b6574204944402d20696e766974656420776f726b65726c2d20666c61672022616363657074696e675f6e65775f6261677322642d2073697a65206c696d697420666f7220766f75636865722c702d206f626a65637473206c696d697420666f7220766f75636865722c7c53746f726167654275636b6574496e7669746174696f6e41636365707465640c0028013c53746f726167654275636b657449640000280120576f726b6572496400000001244163636f756e744964000114c4456d697473206f6e20616363657074696e67207468652073746f72616765206275636b657420696e7669746174696f6e2e18506172616d734c2d2073746f72616765206275636b65742049444c2d20696e766974656420776f726b65722049445c2d207472616e736163746f72206163636f756e742049446c53746f726167654275636b65747355706461746564466f724261670c0095020114426167496400006901016442547265655365743c53746f726167654275636b657449643e00006901016442547265655365743c53746f726167654275636b657449643e000214a8456d697473206f6e207570646174696e672073746f72616765206275636b65747320666f72206261672e18506172616d73202d20626167204944982d2073746f72616765206275636b65747320746f2061646420494420636f6c6c656374696f6ea42d2073746f72616765206275636b65747320746f2072656d6f766520494420636f6c6c656374696f6e4c446174614f626a6563747355706c6f616465640c006901015842547265655365743c446174614f626a65637449643e00009102014055706c6f6164506172616d6574657273000018011c42616c616e636500031480456d697473206f6e2075706c6f6164696e672064617461206f626a656374732e18506172616d73482d2064617461206f626a6563747320494473782d20696e697469616c2075706c6f6164696e6720706172616d6574657273782d20737461746520626c6f617420626f6e6420666f72206f626a656374736853746f726167654f70657261746f724d657461646174615365740c0028013c53746f726167654275636b657449640000280120576f726b65724964000030011c5665633c75383e000414bc456d697473206f6e2073657474696e67207468652073746f72616765206f70657261746f72206d657461646174612e18506172616d734c2d2073746f72616765206275636b65742049444c2d20696e766974656420776f726b6572204944282d206d657461646174617453746f726167654275636b6574566f75636865724c696d6974735365740c0028013c53746f726167654275636b65744964000028010c753634000028010c753634000514cc456d697473206f6e2073657474696e67207468652073746f72616765206275636b657420766f7563686572206c696d6974732e18506172616d734c2d2073746f72616765206275636b6574204944782d206e657720746f74616c206f626a656374732073697a65206c696d6974802d206e657720746f74616c206f626a65637473206e756d626572206c696d69746850656e64696e67446174614f626a656374734163636570746564100028013c53746f726167654275636b657449640000280120576f726b65724964000095020114426167496400006901015842547265655365743c446174614f626a65637449643e000618a0456d697473206f6e20616363657074696e672070656e64696e672064617461206f626a656374732e18506172616d734c2d2073746f72616765206275636b6574204944842d20776f726b6572204944202873746f726167652070726f766964657220494429202d20626167204944582d2070656e64696e672064617461206f626a656374738053746f726167654275636b6574496e7669746174696f6e43616e63656c6c6564040028013c53746f726167654275636b6574496400070cc8456d697473206f6e2063616e63656c6c696e67207468652073746f72616765206275636b657420696e7669746174696f6e2e18506172616d734c2d2073746f72616765206275636b65742049447053746f726167654275636b65744f70657261746f72496e7669746564080028013c53746f726167654275636b657449640000280120576f726b65724964000810c0456d697473206f6e207468652073746f72616765206275636b6574206f70657261746f7220696e7669746174696f6e2e18506172616d734c2d2073746f72616765206275636b6574204944a82d206f70657261746f7220776f726b6572204944202873746f726167652070726f7669646572204944297053746f726167654275636b65744f70657261746f7252656d6f766564040028013c53746f726167654275636b6574496400090cb4456d697473206f6e207468652073746f72616765206275636b6574206f70657261746f722072656d6f76616c2e18506172616d734c2d2073746f72616765206275636b65742049446c55706c6f6164696e67426c6f636b537461747573557064617465640400980110626f6f6c000a0c0501456d697473206f6e206368616e67696e67207468652073697a652d62617365642070726963696e67206f66206e6577206f626a656374732075706c6f616465642e18506172616d73302d206e6577207374617475737c446174614f626a6563745065724d6567616279746546656555706461746564040018011c42616c616e6365000b0c0501456d697473206f6e206368616e67696e67207468652073697a652d62617365642070726963696e67206f66206e6577206f626a656374732075706c6f616465642e18506172616d734c2d206e657720646174612073697a65206665658053746f726167654275636b6574735065724261674c696d697455706461746564040010010c753332000c0cf4456d697473206f6e206368616e67696e6720746865202253746f72616765206275636b657473207065722062616722206e756d626572206c696d69742e18506172616d732c2d206e6577206c696d69749453746f726167654275636b657473566f75636865724d61784c696d69747355706461746564080028010c753634000028010c753634000d10ec456d697473206f6e206368616e67696e6720746865202253746f72616765206275636b65747320766f7563686572206d6178206c696d697473222e18506172616d73602d206e6577206f626a656374732073697a65206c696d6974682d206e6577206f626a65637473206e756d626572206c696d697440446174614f626a656374734d6f7665640c00950201144261674964000095020114426167496400006901015842547265655365743c446174614f626a65637449643e000e14a8456d697473206f6e206d6f76696e672064617461206f626a65637473206265747765656e20626167732e18506172616d733c2d20736f7572636520626167204944502d2064657374696e6174696f6e20626167204944442d2064617461206f626a6563742049447348446174614f626a6563747344656c657465640c000001244163636f756e744964000095020114426167496400006901015842547265655365743c446174614f626a65637449643e000f14a4456d697473206f6e2064617461206f626a656374732064656c6574696f6e2066726f6d20626167732e18506172616d73942d206163636f756e7420494420666f722074686520737461746520626c6f617420626f6e64202d20626167204944442d2064617461206f626a656374204944736853746f726167654275636b657453746174757355706461746564080028013c53746f726167654275636b657449640000980110626f6f6c00101098456d697473206f6e2073746f72616765206275636b657420737461747573207570646174652e18506172616d734c2d2073746f72616765206275636b6574204944302d206e6577207374617475733c557064617465426c61636b6c6973740800a502014442547265655365743c5665633c75383e3e0000a502014442547265655365743c5665633c75383e3e001110c4456d697473206f6e207570646174696e672074686520626c61636b6c69737420776974682064617461206861736865732e18506172616d73942d2068617368657320746f2072656d6f76652066726f6d2074686520626c61636b6c697374802d2068617368657320746f2061646420746f2074686520626c61636b6c6973744444796e616d696342616744656c6574656404009d02013044796e616d6963426167496400120c80456d697473206f6e2064656c6574696e6720612064796e616d6963206261672e18506172616d73402d2064796e616d6963206261672049444444796e616d6963426167437265617465640800a102017044796e616d69634261674372656174696f6e506172616d657465727300006901015842547265655365743c446174614f626a65637449643e00131080456d697473206f6e206372656174696e6720612064796e616d6963206261672e18506172616d73842d2064796e616d696320626167206372656174696f6e20706172616d65746572736c2d2075706c6f616465642064617461206f626a656374732069647338566f75636865724368616e676564080028013c53746f726167654275636b657449640000ad02011c566f7563686572001410cc456d697473206f6e206368616e67696e672074686520766f756368657220666f7220612073746f72616765206275636b65742e18506172616d734c2d2073746f72616765206275636b6574204944342d206e657720766f75636865725053746f726167654275636b657444656c65746564040028013c53746f726167654275636b6574496400150c84456d697473206f6e2073746f72616765206275636b65742064656c6574696e672e18506172616d734c2d2073746f72616765206275636b6574204944dc4e756d6265724f6653746f726167654275636b657473496e44796e616d69634261674372656174696f6e506f6c696379557064617465640800b102013844796e616d696342616754797065000010010c7533320016103d01456d697473206f6e207570646174696e6720746865206e756d626572206f662073746f72616765206275636b65747320696e2064796e616d696320626167206372656174696f6e20706f6c6963792e18506172616d73482d2064796e616d69632062616720747970657c2d206e6577206e756d626572206f662073746f72616765206275636b6574737c446973747269627574696f6e4275636b657446616d696c79437265617465640400280168446973747269627574696f6e4275636b657446616d696c79496400170cb4456d697473206f6e206372656174696e6720646973747269627574696f6e206275636b65742066616d696c792e18506172616d737c2d20646973747269627574696f6e2066616d696c79206275636b65742049447c446973747269627574696f6e4275636b657446616d696c7944656c657465640400280168446973747269627574696f6e4275636b657446616d696c79496400180cb4456d697473206f6e2064656c6574696e6720646973747269627574696f6e206275636b65742066616d696c792e18506172616d737c2d20646973747269627574696f6e2066616d696c79206275636b657420494464446973747269627574696f6e4275636b6574437265617465640c00280168446973747269627574696f6e4275636b657446616d696c7949640000980110626f6f6c000025020150446973747269627574696f6e4275636b6574496400191498456d697473206f6e206372656174696e6720646973747269627574696f6e206275636b65742e18506172616d737c2d20646973747269627574696f6e206275636b65742066616d696c79204944502d20616363657074696e67206e65772062616773602d20646973747269627574696f6e206275636b65742049447c446973747269627574696f6e4275636b657453746174757355706461746564080025020150446973747269627574696f6e4275636b657449640000980110626f6f6c001a10ec456d697473206f6e2073746f72616765206275636b657420737461747573207570646174652028616363657074696e67206e65772062616773292e18506172616d73602d20646973747269627574696f6e206275636b6574204944842d206e6577207374617475732028616363657074696e67206e657720626167732964446973747269627574696f6e4275636b657444656c65746564040025020150446973747269627574696f6e4275636b65744964001b0c98456d697473206f6e2064656c6574696e6720646973747269627574696f6e206275636b65742e18506172616d73602d20646973747269627574696f6e206275636b657420494480446973747269627574696f6e4275636b65747355706461746564466f7242616710009502011442616749640000280168446973747269627574696f6e4275636b657446616d696c79496400006901018442547265655365743c446973747269627574696f6e4275636b6574496e6465783e00006901018442547265655365743c446973747269627574696f6e4275636b6574496e6465783e001c14bc456d697473206f6e207570646174696e6720646973747269627574696f6e206275636b65747320666f72206261672e18506172616d73202d20626167204944982d2073746f72616765206275636b65747320746f2061646420494420636f6c6c656374696f6ea42d2073746f72616765206275636b65747320746f2072656d6f766520494420636f6c6c656374696f6e94446973747269627574696f6e4275636b6574735065724261674c696d697455706461746564040010010c753332001d0c0901456d697473206f6e206368616e67696e67207468652022446973747269627574696f6e206275636b657473207065722062616722206e756d626572206c696d69742e18506172616d732c2d206e6577206c696d697474446973747269627574696f6e4275636b65744d6f646555706461746564080025020150446973747269627574696f6e4275636b657449640000980110626f6f6c001e10e0456d697473206f6e2073746f72616765206275636b6574206d6f6465207570646174652028646973747269627574696e6720666c6167292e18506172616d73602d20646973747269627574696f6e206275636b6574204944382d20646973747269627574696e67a446616d696c696573496e44796e616d69634261674372656174696f6e506f6c696379557064617465640800b102013844796e616d6963426167547970650000b50201a442547265654d61703c446973747269627574696f6e4275636b657446616d696c7949642c207533323e001f102d01456d697473206f6e2064796e616d696320626167206372656174696f6e20706f6c696379207570646174652028646973747269627574696f6e206275636b65742066616d696c696573292e18506172616d73482d2064796e616d6963206261672074797065742d2066616d696c69657320616e64206275636b6574206e756d6265727384446973747269627574696f6e4275636b65744f70657261746f72496e7669746564080025020150446973747269627574696f6e4275636b657449640000280120576f726b657249640020101101456d697473206f6e206372656174696e67206120646973747269627574696f6e206275636b657420696e7669746174696f6e20666f7220746865206f70657261746f722e18506172616d73602d20646973747269627574696f6e206275636b65742049442c2d20776f726b657220494494446973747269627574696f6e4275636b6574496e7669746174696f6e43616e63656c6c6564080025020150446973747269627574696f6e4275636b657449640000280120576f726b657249640021101501456d697473206f6e2063616e63656c696e67206120646973747269627574696f6e206275636b657420696e7669746174696f6e20666f7220746865206f70657261746f722e18506172616d73602d20646973747269627574696f6e206275636b6574204944502d206f70657261746f7220776f726b657220494490446973747269627574696f6e4275636b6574496e7669746174696f6e41636365707465640800280120576f726b65724964000025020150446973747269627574696f6e4275636b657449640022101501456d697473206f6e20616363657074696e67206120646973747269627574696f6e206275636b657420696e7669746174696f6e20666f7220746865206f70657261746f722e18506172616d732c2d20776f726b6572204944602d20646973747269627574696f6e206275636b657420494474446973747269627574696f6e4275636b65744d657461646174615365740c00280120576f726b65724964000025020150446973747269627574696f6e4275636b65744964000030011c5665633c75383e0023140101456d697473206f6e2073657474696e6720746865206d65746164617461206279206120646973747269627574696f6e206275636b6574206f70657261746f722e18506172616d732c2d20776f726b6572204944602d20646973747269627574696f6e206275636b6574204944282d206d6574616461746184446973747269627574696f6e4275636b65744f70657261746f7252656d6f766564080025020150446973747269627574696f6e4275636b657449640000280120576f726b65724964002410c8456d697473206f6e2074686520646973747269627574696f6e206275636b6574206f70657261746f722072656d6f76616c2e18506172616d73602d20646973747269627574696f6e206275636b6574204944842d20646973747269627574696f6e206275636b6574206f70657261746f722049448c446973747269627574696f6e4275636b657446616d696c794d657461646174615365740800280168446973747269627574696f6e4275636b657446616d696c794964000030011c5665633c75383e002510f8456d697473206f6e2073657474696e6720746865206d65746164617461206279206120646973747269627574696f6e206275636b65742066616d696c792e18506172616d737c2d20646973747269627574696f6e206275636b65742066616d696c79204944282d206d6574616461746190446174614f626a6563745374617465426c6f6174426f6e6456616c756555706461746564040018011c42616c616e636500260ccc456d697473206f6e207570646174696e67207468652064617461206f626a65637420737461746520626c6f617420626f6e642e18506172616d73602d20737461746520626c6f617420626f6e642076616c756548446174614f626a65637473557064617465640c009102014055706c6f6164506172616d657465727300006901015842547265655365743c446174614f626a65637449643e00006901015842547265655365743c446174614f626a65637449643e0027140d01456d697473206f6e2073746f7261676520617373657473206265696e672075706c6f6164656420616e642064656c65746564206174207468652073616d652074696d6518506172616d73482d2055706c6f6164506172616d6574657273742d20496473206f66207468652075706c6f61646564206f626a65637473702d20496473206f66207468652072656d6f766564206f626a656374735c53746f726167654f70657261746f7252656d61726b65640c00280120576f726b65724964000028013c53746f726167654275636b65744964000030011c5665633c75383e002814a4456d697473206f6e2053746f72616765204f70657261746f72206d616b696e6720612072656d61726b18506172616d73582d206f70657261746f72277320776f726b65722069644c2d2073746f72616765206275636b6574206964402d2072656d61726b206d65737361676570446973747269627574696f6e4f70657261746f7252656d61726b65640c00280120576f726b65724964000025020150446973747269627574696f6e4275636b65744964000030011c5665633c75383e002914b8456d697473206f6e20446973747269627574696f6e204f70657261746f72206d616b696e6720612072656d61726b18506172616d73582d206f70657261746f72277320776f726b6572206964602d20646973747269627574696f6e206275636b6574206964402d2072656d61726b206d6573736167650c5c4576656e747320666f722074686973206d6f64756c652e003853746f72616765206576656e74739102083870616c6c65745f73746f726167655855706c6f6164506172616d65746572735265636f72640c144261674964019502244163636f756e74496401001c42616c616e63650118001401186261675f69649502011442616749640001506f626a6563745f6372656174696f6e5f6c6973741d0201845665633c446174614f626a6563744372656174696f6e506172616d65746572733e00018873746174655f626c6f61745f626f6e645f736f757263655f6163636f756e745f69640001244163636f756e74496400015865787065637465645f646174615f73697a655f66656518011c42616c616e636500019465787065637465645f646174615f6f626a6563745f73746174655f626c6f61745f626f6e6418011c42616c616e636500009502083870616c6c65745f73746f726167652442616749645479706508204d656d62657249640128244368616e6e656c4964012801081853746174696304009902012c53746174696342616749640000001c44796e616d696304009d02019444796e616d69634261674964547970653c4d656d62657249642c204368616e6e656c49643e000100009902083870616c6c65745f73746f726167652c53746174696342616749640001081c436f756e63696c00000030576f726b696e6747726f7570040099010130576f726b696e6747726f7570000100009d02083870616c6c65745f73746f726167654044796e616d696342616749645479706508204d656d62657249640128244368616e6e656c496401280108184d656d62657204002801204d656d62657249640000001c4368616e6e656c04002801244368616e6e656c496400010000a102083870616c6c65745f73746f726167657844796e4261674372656174696f6e506172616d65746572735265636f726414144261674964019d02244163636f756e74496401001c42616c616e636501183c53746f726167654275636b65744964012850446973747269627574696f6e4275636b65744964012502001c01186261675f69649d02011442616749640001506f626a6563745f6372656174696f6e5f6c6973741d0201845665633c446174614f626a6563744372656174696f6e506172616d65746572733e00018873746174655f626c6f61745f626f6e645f736f757263655f6163636f756e745f69640001244163636f756e74496400015865787065637465645f646174615f73697a655f66656518011c42616c616e636500019465787065637465645f646174615f6f626a6563745f73746174655f626c6f61745f626f6e6418011c42616c616e636500013c73746f726167655f6275636b6574736901016442547265655365743c53746f726167654275636b657449643e000150646973747269627574696f6e5f6275636b6574733902017842547265655365743c446973747269627574696f6e4275636b657449643e0000a502042042547265655365740404540130000400a902000000a9020000023000ad02083870616c6c65745f73746f726167651c566f7563686572000010012873697a655f6c696d697428010c7536340001346f626a656374735f6c696d697428010c75363400012473697a655f7573656428010c7536340001306f626a656374735f7573656428010c7536340000b102083870616c6c65745f73746f726167653844796e616d696342616754797065000108184d656d6265720000001c4368616e6e656c00010000b502042042547265654d617008044b012804560110000400b902000000b902000002bd0200bd0200000408281000c1020c5070616c6c65745f70726f6a6563745f746f6b656e186576656e7473205261774576656e74281c42616c616e63650118284a6f7942616c616e636501181c546f6b656e49640128244163636f756e7449640100204d656d626572496401282c426c6f636b4e756d6265720110385472616e73666572506f6c69637901c5025c546f6b656e49737375616e6365506172616d657465727301c9024856616c6964617465645472616e736665727301fd0224546f6b656e53616c65012103014858546f6b656e416d6f756e745472616e73666572726564100028011c546f6b656e496400002801204d656d62657249640000fd02014856616c6964617465645472616e7366657273000030011c5665633c75383e000018ac546f6b656e20616d6f756e74206973207472616e736665727265642066726f6d2073726320746f206473741c506172616d733a482d20746f6b656e206964656e746966696572482d20736f75726365206d656d62657220696459012d206d617020636f6e7461696e696e672076616c696461746564206f7574707574732028616d6f756e7420696e646578656420627920286d656d6265725f6964202b206163636f756e74206578697374616e63652929542d207472616e736665722773206d6574616461746178546f6b656e416d6f756e745472616e736665727265644279497373756572100028011c546f6b656e496400002801204d656d62657249640000fd02014856616c6964617465645472616e7366657273000030011c5665633c75383e00012088546f6b656e20616d6f756e74207472616e73666572726564206279206973737565721c506172616d733a482d20746f6b656e206964656e7469666965726c2d20736f75726365202869737375657229206d656d626572206964882d206d617020636f6e7461696e696e672076616c696461746564206f7574707574732d01202028616d6f756e742c206f70742e2076657374696e67207363686564756c652c206f70742e2076657374696e6720636c65616e7570206b657929206461746120696e6465786564206279882020286163636f756e745f6964202b206163636f756e74206578697374616e636529542d207472616e736665722773206d6574616461746160506174726f6e61676552617465446563726561736564546f080028011c546f6b656e496400002503012c5065727175696e74696c6c00021060506174726f6e6167652072617465206465637265617365641c506172616d733a482d20746f6b656e206964656e746966696572502d206e657720706174726f6e616765207261746558506174726f6e616765437265646974436c61696d65640c0028011c546f6b656e4964000018011c42616c616e636500002801204d656d62657249640003148c506174726f6e6167652063726564697420636c61696d65642062792063726561746f721c506172616d733a482d20746f6b656e206964656e7469666965723c2d2063726564697420616d6f756e742c2d206d656d62657220696448526576656e756553706c6974497373756564100028011c546f6b656e4964000010012c426c6f636b4e756d626572000010012c426c6f636b4e756d62657200001801284a6f7942616c616e636500041850526576656e75652053706c6974206973737565641c506172616d733a482d20746f6b656e206964656e746966696572782d207374617274696e6720626c6f636b20666f72207468652073706c69745c2d206475726174696f6e206f66207468652073706c6974742d204a4f5920616c6c6f636174656420666f72207468652073706c697454526576656e756553706c697446696e616c697a65640c0028011c546f6b656e496400000001244163636f756e74496400001801284a6f7942616c616e63650005145c526576656e75652053706c69742066696e616c697a65641c506172616d733a482d20746f6b656e206964656e746966696572a42d207265636f76657279206163636f756e7420666f7220746865206c6566746f7665722066756e6473402d206c6566746f7665722066756e64735c55736572506172746963697061746564496e53706c6974140028011c546f6b656e496400002801204d656d6265724964000018011c42616c616e636500001801284a6f7942616c616e63650000100138526576656e756553706c6974496400061c8855736572207061727469706174656420696e206120726576656e75652073706c69741c506172616d733a482d20746f6b656e206964656e746966696572642d207061727469636970616e742773206d656d6265722069647c2d207573657220616c6c6f6361746564207374616b65642062616c616e63657c2d206469766964656e6420616d6f756e7420284a4f5929206772616e746564682d20726576656e75652073706c6974206964656e74696669657240526576656e756553706c69744c6566740c0028011c546f6b656e496400002801204d656d6265724964000018011c42616c616e63650007145c55736572206c65667420726576656e75652073706c69741c506172616d733a482d20746f6b656e206964656e746966696572702d2065782d7061727469636970616e742773206d656d626572206964442d20616d6f756e7420756e7374616b6564544d656d6265724a6f696e656457686974656c6973740c0028011c546f6b656e496400002801204d656d62657249640000c50201385472616e73666572506f6c6963790008145c4d656d626572206a6f696e65642077686974656c6973741c506172616d733a482d20746f6b656e206964656e7469666965722c2d206d656d626572206964642d206f6e676f696e67207472616e7366657220706f6c6963793c4163636f756e744475737465644279100028011c546f6b656e496400002801204d656d626572496400000001244163636f756e7449640000c50201385472616e73666572506f6c696379000918384163636f756e74204475737465641c506172616d733a482d20746f6b656e206964656e7469666965729c2d206964206f662074686520647573746564206163636f756e74206f776e6572206d656d6265728c2d206163636f756e7420746861742063616c6c6564207468652065787472696e736963402d206f6e676f696e6720706f6c69637934546f6b656e4465697373756564040028011c546f6b656e4964000a0c38546f6b656e2044656973737565641c506172616d733a282d20746f6b656e2069642c546f6b656e497373756564080028011c546f6b656e49640000c902015c546f6b656e49737375616e6365506172616d6574657273000b1030546f6b656e204973737565641c506172616d733a282d20746f6b656e2069646c2d20746f6b656e2069737375616e636520706172616d657465727350546f6b656e53616c65496e697469616c697a6564100028011c546f6b656e4964000010012c546f6b656e53616c654964000021030124546f6b656e53616c6500003101013c4f7074696f6e3c5665633c75383e3e000c1864546f6b652053616c652077617320496e697469616c697a65641c506172616d733a282d20746f6b656e2069643c2d20746f6b656e2073616c65206964442d20746f6b656e2073616c652064617461542d20746f6b656e2073616c65206d65746164617461605570636f6d696e67546f6b656e53616c6555706461746564100028011c546f6b656e4964000010012c546f6b656e53616c65496400000102014c4f7074696f6e3c426c6f636b4e756d6265723e00000102014c4f7074696f6e3c426c6f636b4e756d6265723e000d187c5570636f6d696e6720546f6b656e2053616c652077617320557064617465641c506172616d733a282d20746f6b656e2069643c2d20746f6b656e2073616c65206964582d206e65772073616c6520737461727420626c6f636b4c2d206e65772073616c65206475726174696f6e54546f6b656e735075726368617365644f6e53616c65100028011c546f6b656e4964000010012c546f6b656e53616c654964000018011c42616c616e636500002801204d656d6265724964000e1860546f6b656e7320507572636861736564204f6e2053616c651c506172616d733a282d20746f6b656e2069643c2d20746f6b656e2073616c65206964702d20616d6f756e74206f6620746f6b656e73207075726368617365644c2d2062757965722773206d656d62657220696448546f6b656e53616c6546696e616c697a6564100028011c546f6b656e4964000010012c546f6b656e53616c654964000018011c42616c616e636500001801284a6f7942616c616e6365000f1850546f6b656e2053616c652046696e616c697a65641c506172616d733a282d20746f6b656e2069643c2d20746f6b656e2073616c652069648c2d20616d6f756e74206f6620756e736f6c6420746f6b656e73207265636f7665726564642d20616d6f756e74206f66204a4f5920636f6c6c6563746564945472616e73666572506f6c6963794368616e676564546f5065726d697373696f6e6c657373040028011c546f6b656e496400100ca45472616e7366657220506f6c696379204368616e67656420546f205065726d697373696f6e6c6573731c506172616d733a282d20746f6b656e20696430546f6b656e734275726e65640c0028011c546f6b656e496400002801204d656d6265724964000018011c42616c616e636500111434546f6b656e73204275726e65641c506172616d733a282d20746f6b656e2069642c2d206d656d626572206964642d206e756d626572206f6620746f6b656e73206275726e6564085c4576656e747320666f722074686973206d6f64756c652e00c5020c5070616c6c65745f70726f6a6563745f746f6b656e147479706573385472616e73666572506f6c696379041048617368012c0108385065726d697373696f6e6c657373000000305065726d697373696f6e656404002c01104861736800010000c9020c5070616c6c65745f70726f6a6563745f746f6b656e1474797065735c546f6b656e49737375616e6365506172616d6574657273101048617368012c3c546f6b656e416c6c6f636174696f6e01cd02505472616e73666572506f6c696379506172616d7301dd02204d656d6265724964012800140148696e697469616c5f616c6c6f636174696f6eed02018c42547265654d61703c4d656d62657249642c20546f6b656e416c6c6f636174696f6e3e00011873796d626f6c2c01104861736800013c7472616e736665725f706f6c696379dd0201505472616e73666572506f6c696379506172616d73000138706174726f6e6167655f72617465f9020128596561726c7952617465000148726576656e75655f73706c69745f72617465d502011c5065726d696c6c0000cd020c5070616c6c65745f70726f6a6563745f746f6b656e1474797065733c546f6b656e416c6c6f636174696f6e081c42616c616e636501185456657374696e675363686564756c65506172616d7301d10200080118616d6f756e7418011c42616c616e636500015c76657374696e675f7363686564756c655f706172616d73d90201744f7074696f6e3c56657374696e675363686564756c65506172616d733e0000d1020c5070616c6c65745f70726f6a6563745f746f6b656e1474797065735456657374696e675363686564756c65506172616d73042c426c6f636b4e756d6265720110000c015c6c696e6561725f76657374696e675f6475726174696f6e10012c426c6f636b4e756d62657200014c626c6f636b735f6265666f72655f636c69666610012c426c6f636b4e756d62657200015c636c6966665f616d6f756e745f70657263656e74616765d502011c5065726d696c6c0000d5020c3473705f61726974686d65746963287065725f7468696e67731c5065726d696c6c0000040010010c7533320000d90204184f7074696f6e04045401d1020108104e6f6e6500000010536f6d650400d1020000010000dd020c5070616c6c65745f70726f6a6563745f746f6b656e147479706573505472616e73666572506f6c696379506172616d73043c57686974656c697374506172616d7301e1020108385065726d697373696f6e6c657373000000305065726d697373696f6e65640400e102013c57686974656c697374506172616d7300010000e1020c5070616c6c65745f70726f6a6563745f746f6b656e1474797065733c57686974656c697374506172616d73081048617368012c7053696e676c65446174614f626a65637455706c6f6164506172616d7301e50200080128636f6d6d69746d656e742c01104861736800011c7061796c6f6164e90201904f7074696f6e3c53696e676c65446174614f626a65637455706c6f6164506172616d733e0000e5020c5070616c6c65745f70726f6a6563745f746f6b656e1474797065737053696e676c65446174614f626a65637455706c6f6164506172616d7304284a6f7942616c616e63650118000c01586f626a6563745f6372656174696f6e5f706172616d7321020170446174614f626a6563744372656174696f6e506172616d657465727300015865787065637465645f646174615f73697a655f6665651801284a6f7942616c616e636500019465787065637465645f646174615f6f626a6563745f73746174655f626c6f61745f626f6e641801284a6f7942616c616e63650000e90204184f7074696f6e04045401e5020108104e6f6e6500000010536f6d650400e5020000010000ed02042042547265654d617008044b0128045601cd02000400f102000000f102000002f50200f5020000040828cd0200f9020c5070616c6c65745f70726f6a6563745f746f6b656e14747970657328596561726c795261746500000400d502011c5065726d696c6c0000fd020c5070616c6c65745f70726f6a6563745f746f6b656e147479706573245472616e736665727308204d656d62657249640101031c5061796d656e740105030004001503016c42547265654d61703c4d656d62657249642c205061796d656e743e000001030c5070616c6c65745f70726f6a6563745f746f6b656e1474797065732456616c69646174656404204d656d626572496401280108204578697374696e6704002801204d656d62657249640000002c4e6f6e4578697374696e6704002801204d656d62657249640001000005030c5070616c6c65745f70726f6a6563745f746f6b656e1474797065734056616c6964617465645061796d656e7404485061796d656e745769746856657374696e670109030008011c7061796d656e74090301485061796d656e745769746856657374696e6700016476657374696e675f636c65616e75705f63616e6469646174650d0301544f7074696f6e3c56657374696e67536f757263653e000009030c5070616c6c65745f70726f6a6563745f746f6b656e147479706573485061796d656e745769746856657374696e67081c42616c616e636501185456657374696e675363686564756c65506172616d7301d10200080118616d6f756e7418011c42616c616e636500014076657374696e675f7363686564756c65d90201744f7074696f6e3c56657374696e675363686564756c65506172616d733e00000d0304184f7074696f6e0404540111030108104e6f6e6500000010536f6d6504001103000001000011030c5070616c6c65745f70726f6a6563745f746f6b656e1474797065733456657374696e67536f7572636500010c3c496e697469616c49737375616e63650000001053616c65040010012c546f6b656e53616c654964000100384973737565725472616e73666572040028010c753634000200001503042042547265654d617008044b0101030456010503000400190300000019030000021d03001d0300000408010305030021030c5070616c6c65745f70726f6a6563745f746f6b656e14747970657324546f6b656e53616c6518284a6f7942616c616e636501181c42616c616e636501182c426c6f636b4e756d62657201105456657374696e675363686564756c65506172616d7301d102204d656d62657249640128244163636f756e744964010000280128756e69745f70726963651801284a6f7942616c616e63650001347175616e746974795f6c65667418011c42616c616e636500013c66756e64735f636f6c6c65637465641801284a6f7942616c616e6365000134746f6b656e735f736f757263652801204d656d62657249640001506561726e696e67735f64657374696e6174696f6e9401444f7074696f6e3c4163636f756e7449643e00012c73746172745f626c6f636b10012c426c6f636b4e756d6265720001206475726174696f6e10012c426c6f636b4e756d62657200015c76657374696e675f7363686564756c655f706172616d73d90201744f7074696f6e3c56657374696e675363686564756c65506172616d733e0001386361705f7065725f6d656d6265724501013c4f7074696f6e3c42616c616e63653e0001346175746f5f66696e616c697a65980110626f6f6c000025030c3473705f61726974686d65746963287065725f7468696e67732c5065727175696e74696c6c0000040028010c75363400002903085c70616c6c65745f70726f706f73616c735f656e67696e65205261774576656e740c2850726f706f73616c49640110204d656d626572496401282c426c6f636b4e756d626572011001185450726f706f73616c53746174757355706461746564080010012850726f706f73616c496400002d03016c50726f706f73616c5374617475733c426c6f636b4e756d6265723e0000106c456d697473206f6e2070726f706f73616c206372656174696f6e2e1c506172616d733a4c2d204964206f6620612070726f706f73616c2e582d204e65772070726f706f73616c207374617475732e5050726f706f73616c4465636973696f6e4d616465080010012850726f706f73616c496400003103014050726f706f73616c4465636973696f6e000110b0456d697473206f6e2067657474696e6720612070726f706f73616c20737461747573206465636973696f6e2e1c506172616d733a4c2d204964206f6620612070726f706f73616c2e4c2d2050726f706f73616c206465636973696f6e4050726f706f73616c4578656375746564080010012850726f706f73616c496400003903013c457865637574696f6e53746174757300021070456d697473206f6e2070726f706f73616c20657865637574696f6e2e1c506172616d733a6c2d204964206f66206120757064617465642070726f706f73616c2e702d2050726f706f73616c20657865637574696f6e207374617475732e14566f74656410002801204d656d6265724964000010012850726f706f73616c496400003d030120566f74654b696e64000030011c5665633c75383e00031880456d697473206f6e20766f74696e6720666f72207468652070726f706f73616c1c506172616d733a7c2d20566f746572202d206d656d626572206964206f66206120766f7465722e4c2d204964206f6620612070726f706f73616c2e3c2d204b696e64206f6620766f74652e302d20526174696f6e616c652e4450726f706f73616c43616e63656c6c656408002801204d656d6265724964000010012850726f706f73616c49640004108c456d697473206f6e20612070726f706f73616c206265696e672063616e63656c6c65641c506172616d733a6c2d204d656d626572204964206f66207468652070726f706f736572502d204964206f66207468652070726f706f73616c4050726f706f73657252656d61726b65640c002801204d656d6265724964000010012850726f706f73616c4964000030011c5665633c75383e00051084456d697473206f6e2070726f706f736572206d616b696e6720612072656d61726b342d2070726f706f736572206964342d2070726f706f73616c206964242d206d6573736167650c5c4576656e747320666f722074686973206d6f64756c652e005c50726f706f73616c7320656e67696e65206576656e74732d03105c70616c6c65745f70726f706f73616c735f656e67696e651474797065734470726f706f73616c5f73746174757365733850726f706f73616c537461747573042c426c6f636b4e756d6265720110010c184163746976650000004050656e64696e67457865637574696f6e040010012c426c6f636b4e756d6265720001006050656e64696e67436f6e737469747574696f6e616c697479000200003103105c70616c6c65745f70726f706f73616c735f656e67696e651474797065734470726f706f73616c5f73746174757365734050726f706f73616c4465636973696f6e00011c2043616e63656c65640000004443616e63656c6564427952756e74696d65000100185665746f65640002002052656a65637465640003001c536c61736865640004001c4578706972656400050020417070726f766564040035030160417070726f76656450726f706f73616c4465636973696f6e000600003503105c70616c6c65745f70726f706f73616c735f656e67696e651474797065734470726f706f73616c5f737461747573657360417070726f76656450726f706f73616c4465636973696f6e0001084050656e64696e67457865637574696f6e0000006050656e64696e67436f6e737469747574696f6e616c697479000100003903105c70616c6c65745f70726f706f73616c735f656e67696e651474797065734470726f706f73616c5f73746174757365733c457865637574696f6e5374617475730001082045786563757465640000003c457865637574696f6e4661696c65640401146572726f7230011c5665633c75383e000100003d030c5c70616c6c65745f70726f706f73616c735f656e67696e6514747970657320566f74654b696e640001101c417070726f76650000001852656a65637400010014536c6173680002001c4162737461696e000300004103086c70616c6c65745f70726f706f73616c735f64697363757373696f6e205261774576656e740c2054687265616449640128204d656d6265724964012818506f737449640128011434546872656164437265617465640800280120546872656164496400002801204d656d626572496400000464456d697473206f6e20746872656164206372656174696f6e2e2c506f7374437265617465641400280118506f7374496400002801204d656d626572496400002801205468726561644964000030011c5665633c75383e0000980110626f6f6c0001045c456d697473206f6e20706f7374206372656174696f6e2e2c506f7374557064617465641000280118506f7374496400002801204d656d626572496400002801205468726561644964000030011c5665633c75383e00020454456d697473206f6e20706f7374207570646174652e445468726561644d6f64654368616e6765640c0028012054687265616449640000450301785468726561644d6f64653c42547265655365743c4d656d62657249643e3e00002801204d656d626572496400030470456d697473206f6e20746872656164206d6f6465206368616e67652e2c506f737444656c6574656410002801204d656d6265724964000028012054687265616449640000280118506f737449640000980110626f6f6c00040454456d697473206f6e20706f73742064656c657465640c5c4576656e747320666f722074686973206d6f64756c652e005c50726f706f73616c7320656e67696e65206576656e747345030c6c70616c6c65745f70726f706f73616c735f64697363757373696f6e147479706573285468726561644d6f6465043c54687265616457686974656c6973740169010108104f70656e00000018436c6f73656404006901013c54687265616457686974656c697374000100004903085870616c6c65745f70726f706f73616c735f636f646578205261774576656e74106447656e6572616c50726f706f73616c506172616d6574657273014d034450726f706f73616c44657461696c734f660151032850726f706f73616c49640110205468726561644964012801043c50726f706f73616c43726561746564100010012850726f706f73616c496400004d03016447656e6572616c50726f706f73616c506172616d657465727300005103014450726f706f73616c44657461696c734f660000280120546872656164496400001858412070726f706f73616c2077617320637265617465641c506172616d733afc2d204964206f662061206e65776c7920637265617465642070726f706f73616c2061667465722069742077617320736176656420696e2073746f726167652e01012d2047656e6572616c2070726f706f73616c20706172616d657465722e20506172616d65746572732073686172656420627920616c6c2070726f706f73616c7349012d2050726f706f73616c2044657461696c732e20506172616d65746572206f662070726f706f73616c207769746820612076617269616e7420666f722065616368206b696e64206f662070726f706f73616c9c2d204964206f662061206e65776c7920637265617465642070726f706f73616c20746872656164085c4576656e747320666f722074686973206d6f64756c652e004d030c5870616c6c65745f70726f706f73616c735f636f6465781474797065735447656e6572616c50726f706f73616c506172616d730c204d656d62657249640128244163636f756e74496401002c426c6f636b4e756d6265720110001401246d656d6265725f69642801204d656d62657249640001147469746c6530011c5665633c75383e00012c6465736372697074696f6e30011c5665633c75383e0001487374616b696e675f6163636f756e745f69649401444f7074696f6e3c4163636f756e7449643e00015465786163745f657865637574696f6e5f626c6f636b0102014c4f7074696f6e3c426c6f636b4e756d6265723e000051030c5870616c6c65745f70726f706f73616c735f636f6465781474797065733c50726f706f73616c44657461696c731c1c42616c616e636501182c426c6f636b4e756d6265720110244163636f756e744964010020576f726b657249640128244f70656e696e67496401282850726f706f73616c49640110785570646174654368616e6e656c5061796f757473506172616d6574657273017102015c185369676e616c040030011c5665633c75383e0000003852756e74696d6555706772616465040030011c5665633c75383e0001003846756e64696e67526571756573740400550301c45665633c46756e64696e6752657175657374506172616d65746572733c42616c616e63652c204163636f756e7449643e3e000200505365744d617856616c696461746f72436f756e74040010010c75333200030074437265617465576f726b696e6747726f75704c6561644f70656e696e6704005d0301b44372656174654f70656e696e67506172616d65746572733c426c6f636b4e756d6265722c2042616c616e63653e0004006c46696c6c576f726b696e6747726f75704c6561644f70656e696e6704006503015446696c6c4f70656e696e67506172616d657465727300050060557064617465576f726b696e6747726f75704275646765740c0018011c42616c616e6365000099010130576f726b696e6747726f757000009d01012c42616c616e63654b696e64000600744465637265617365576f726b696e6747726f75704c6561645374616b650c00280120576f726b65724964000018011c42616c616e6365000099010130576f726b696e6747726f757000070054536c617368576f726b696e6747726f75704c6561640c00280120576f726b65724964000018011c42616c616e6365000099010130576f726b696e6747726f757000080064536574576f726b696e6747726f75704c6561645265776172640c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e000099010130576f726b696e6747726f7570000900645465726d696e617465576f726b696e6747726f75704c6561640400690301a85465726d696e617465526f6c65506172616d65746572733c576f726b657249642c2042616c616e63653e000a0044416d656e64436f6e737469747574696f6e040030011c5665633c75383e000b007443616e63656c576f726b696e6747726f75704c6561644f70656e696e6708002801244f70656e696e674964000099010130576f726b696e6747726f7570000c00485365744d656d626572736869705072696365040018011c42616c616e6365000d0064536574436f756e63696c427564676574496e6372656d656e74040018011c42616c616e6365000e0048536574436f756e63696c6f72526577617264040018011c42616c616e6365000f006c536574496e697469616c496e7669746174696f6e42616c616e6365040018011c42616c616e636500100064536574496e697469616c496e7669746174696f6e436f756e74040010010c753332001100805365744d656d626572736869704c656164496e7669746174696f6e51756f7461040010010c75333200120038536574526566657272616c43757404000801087538001300305665746f50726f706f73616c040010012850726f706f73616c496400140050557064617465476c6f62616c4e66744c696d69740800890201384e66744c696d6974506572696f64000028010c753634001500505570646174654368616e6e656c5061796f7574730400710201785570646174654368616e6e656c5061796f757473506172616d65746572730016000055030000025903005903083470616c6c65745f636f6d6d6f6e6046756e64696e6752657175657374506172616d6574657273081c42616c616e63650118244163636f756e74496401000008011c6163636f756e740001244163636f756e744964000118616d6f756e7418011c42616c616e636500005d030c5870616c6c65745f70726f706f73616c735f636f6465781474797065735c4372656174654f70656e696e67506172616d6574657273082c426c6f636b4e756d62657201101c42616c616e636501180010012c6465736372697074696f6e30011c5665633c75383e0001307374616b655f706f6c696379610301845374616b65506f6c6963793c426c6f636b4e756d6265722c2042616c616e63653e0001407265776172645f7065725f626c6f636b4501013c4f7074696f6e3c42616c616e63653e00011467726f757099010130576f726b696e6747726f7570000061030c5070616c6c65745f776f726b696e675f67726f75701474797065732c5374616b65506f6c696379082c426c6f636b4e756d62657201101c42616c616e63650118000801307374616b655f616d6f756e7418011c42616c616e63650001606c656176696e675f756e7374616b696e675f706572696f6410012c426c6f636b4e756d626572000065030c5870616c6c65745f70726f706f73616c735f636f6465781474797065735446696c6c4f70656e696e67506172616d657465727300000c01286f70656e696e675f6964280160776f726b696e675f67726f75703a3a4f70656e696e6749640001386170706c69636174696f6e5f6964280170776f726b696e675f67726f75703a3a4170706c69636174696f6e4964000134776f726b696e675f67726f757099010130576f726b696e6747726f7570000069030c5870616c6c65745f70726f706f73616c735f636f6465781474797065735c5465726d696e617465526f6c65506172616d65746572730820576f726b6572496401281c42616c616e63650118000c0124776f726b65725f6964280120576f726b6572496400013c736c617368696e675f616d6f756e744501013c4f7074696f6e3c42616c616e63653e00011467726f757099010130576f726b696e6747726f757000006d03085070616c6c65745f776f726b696e675f67726f7570205261774576656e7430244f70656e696e6749640128344170706c69636174696f6e49640128684170706c69636174696f6e4964546f576f726b657249644d617001710320576f726b657249640128244163636f756e74496401001c42616c616e636501182c4f70656e696e6754797065017d032c5374616b65506f6c696379016103604170706c794f6e4f70656e696e67506172616d6574657273018103204d656d626572496401281048617368012c04490189030164304f70656e696e67416464656414002801244f70656e696e674964000030011c5665633c75383e00007d03012c4f70656e696e675479706500006103012c5374616b65506f6c69637900004501013c4f7074696f6e3c42616c616e63653e00001c80456d697473206f6e20616464696e67206e6577206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e67206964342d204465736372697074696f6e782d204f70656e696e672054797065284c656164206f7220576f726b657229782d205374616b6520506f6c69637920666f7220746865206f70656e696e67482d205265776172642070657220626c6f636b404170706c6965644f6e4f70656e696e670800810301604170706c794f6e4f70656e696e67506172616d657465727300002801344170706c69636174696f6e4964000110dc456d697473206f6e20616464696e6720746865206170706c69636174696f6e20666f722074686520776f726b6572206f70656e696e672e1c506172616d733a542d204f70656e696e6720706172616d657465726573402d204170706c69636174696f6e206964344f70656e696e6746696c6c65640c002801244f70656e696e6749640000710301684170706c69636174696f6e4964546f576f726b657249644d617000006901015c42547265655365743c4170706c69636174696f6e49643e00021484456d697473206f6e2066696c6c696e6720746865206a6f62206f70656e696e672e1c506172616d733a4c2d20576f726b6572206f70656e696e67206964cc2d20576f726b6572206170706c69636174696f6e20696420746f2074686520776f726b65722069642064696374696f6e617279ac2d204170706c69636174696f6e6420696473207573656420746f2066696c6c20746865206f70656e696e67244c65616465725365740400280120576f726b6572496400030c88456d697473206f6e2073657474696e67207468652067726f7570206c65616465722e1c506172616d733a482d2047726f757020776f726b65722069642e60576f726b6572526f6c654163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964000410c4456d697473206f6e207570646174696e672074686520726f6c65206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e802d20526f6c65206163636f756e74206964206f662074686520776f726b65722e2c4c6561646572556e7365740005047c456d697473206f6e20756e2d73657474696e6720746865206c65616465722e30576f726b65724578697465640400280120576f726b6572496400061070456d697473206f6e2065786974696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e302d20526174696f6e616c652e50576f726b6572537461727465644c656176696e670800280120576f726b6572496400003101013c4f7074696f6e3c5665633c75383e3e000710b4456d697473207768656e20776f726b65722073746172746564206c656176696e6720746865697220726f6c652e1c506172616d733a302d20576f726b65722069642e302d20526174696f6e616c652e405465726d696e61746564576f726b65720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00081480456d697473206f6e207465726d696e6174696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e405465726d696e617465644c65616465720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00091480456d697473206f6e207465726d696e6174696e6720746865206c65616465722e1c506172616d733a4c2d206c656164657220776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e305374616b65536c61736865641000280120576f726b65724964000018011c42616c616e6365000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e000a18c0456d697473206f6e20736c617368696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e642d2061637475616c20736c61736865642062616c616e63652e702d2052657175657374656420736c61736865642062616c616e63652e302d20526174696f6e616c652e385374616b654465637265617365640800280120576f726b65724964000018011c42616c616e6365000b10c8456d697473206f6e2064656372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74385374616b65496e637265617365640800280120576f726b65724964000018011c42616c616e6365000c10c8456d697473206f6e20696e6372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74504170706c69636174696f6e57697468647261776e04002801344170706c69636174696f6e4964000d0c2501456d697473206f6e207769746864726177696e6720746865206170706c69636174696f6e20666f722074686520726567756c617220776f726b65722f6c656164206f70656e696e672e1c506172616d733a502d204a6f62206170706c69636174696f6e2069643c4f70656e696e6743616e63656c656404002801244f70656e696e674964000e0c8c456d697473206f6e2063616e63656c696e6720746865206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e6720696424427564676574536574040018011c42616c616e6365000f0cc8456d697473206f6e2073657474696e67207468652062756467657420666f722074686520776f726b696e672067726f75702e1c506172616d733a302d206e65772062756467657468576f726b65725265776172644163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964001010cc456d697473206f6e207570646174696e672074686520726577617264206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e882d20526577617264206163636f756e74206964206f662074686520776f726b65722e64576f726b6572526577617264416d6f756e74557064617465640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e001110c8456d697473206f6e207570646174696e67207468652072657761726420616d6f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e482d205265776172642070657220626c6f636b44537461747573546578744368616e67656408002c01104861736800003101013c4f7074696f6e3c5665633c75383e3e001210dc456d697473206f6e207570646174696e6720746865207374617475732074657874206f662074686520776f726b696e672067726f75702e1c506172616d733a482d2073746174757320746578742068617368342d207374617475732074657874384275646765745370656e64696e670c000001244163636f756e744964000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e001314c8456d697473206f6e206275646765742066726f6d2074686520776f726b696e672067726f7570206265696e67207370656e741c506172616d733a582d205265636569766572204163636f756e742049642e402d2042616c616e6365207370656e742e302d20526174696f6e616c652e28526577617264506169641000280120576f726b6572496400000001244163636f756e744964000018011c42616c616e636500008d0301445265776172645061796d656e74547970650014186c456d697473206f6e20706179696e6720746865207265776172642e1c506172616d733a4c2d204964206f662074686520776f726b65722e582d205265636569766572204163636f756e742049642e202d20526577617264b42d205061796d656e74207479706520286d697373656420726577617264206f7220726567756c6172206f6e65296c4e65774d69737365645265776172644c6576656c526561636865640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00151090456d697473206f6e207265616368696e67206e6577206d6973736564207265776172642e1c506172616d733a302d20576f726b65722049442ee82d204d69737365642072657761726420286f7074696f6e616c292e204e6f6e65206d65616e7320276e6f206d697373656420726577617264272e60576f726b696e6747726f757042756467657446756e6465640c002801204d656d6265724964000018011c42616c616e6365000030011c5665633c75383e0016147846756e642074686520776f726b696e672067726f7570206275646765742e1c506172616d733a2c2d204d656d6265722049444c2d20416d6f756e74206f662062616c616e63652c2d20526174696f6e616c65304c65616452656d61726b6564040030011c5665633c75383e00170c94456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a242d206d65737361676538576f726b657252656d61726b65640800280120576f726b65724964000030011c5665633c75383e00181094456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a202d20776f726b6572242d206d6573736167650c5c4576656e747320666f722074686973206d6f64756c652e00385f47726f75705f206576656e74737103042042547265654d617008044b012804560128000400750300000075030000027903007903000004082828007d030c5070616c6c65745f776f726b696e675f67726f75701474797065732c4f70656e696e6754797065000108184c65616465720000001c526567756c61720001000081030c5070616c6c65745f776f726b696e675f67726f7570147479706573504170706c794f6e4f70656e696e67506172616d7310204d656d62657249640128244f70656e696e6749640128244163636f756e74496401001c42616c616e63650118001801246d656d6265725f69642801204d656d62657249640001286f70656e696e675f69642801244f70656e696e67496400013c726f6c655f6163636f756e745f69640001244163636f756e7449640001447265776172645f6163636f756e745f69640001244163636f756e74496400012c6465736372697074696f6e30011c5665633c75383e0001407374616b655f706172616d65746572738503018c5374616b65506172616d65746572733c4163636f756e7449642c2042616c616e63653e000085030c5070616c6c65745f776f726b696e675f67726f75701474797065733c5374616b65506172616d657465727308244163636f756e74496401001c42616c616e63650118000801147374616b6518011c42616c616e63650001487374616b696e675f6163636f756e745f69640001244163636f756e74496400008903085070616c6c65745f776f726b696e675f67726f757024496e7374616e636531000000008d030c5070616c6c65745f776f726b696e675f67726f7570147479706573445265776172645061796d656e7454797065000108304d697373656452657761726400000034526567756c6172526577617264000100009103085070616c6c65745f776f726b696e675f67726f7570205261774576656e7430244f70656e696e6749640128344170706c69636174696f6e49640128684170706c69636174696f6e4964546f576f726b657249644d617001710320576f726b657249640128244163636f756e74496401001c42616c616e636501182c4f70656e696e6754797065017d032c5374616b65506f6c696379016103604170706c794f6e4f70656e696e67506172616d6574657273018103204d656d626572496401281048617368012c04490195030164304f70656e696e67416464656414002801244f70656e696e674964000030011c5665633c75383e00007d03012c4f70656e696e675479706500006103012c5374616b65506f6c69637900004501013c4f7074696f6e3c42616c616e63653e00001c80456d697473206f6e20616464696e67206e6577206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e67206964342d204465736372697074696f6e782d204f70656e696e672054797065284c656164206f7220576f726b657229782d205374616b6520506f6c69637920666f7220746865206f70656e696e67482d205265776172642070657220626c6f636b404170706c6965644f6e4f70656e696e670800810301604170706c794f6e4f70656e696e67506172616d657465727300002801344170706c69636174696f6e4964000110dc456d697473206f6e20616464696e6720746865206170706c69636174696f6e20666f722074686520776f726b6572206f70656e696e672e1c506172616d733a542d204f70656e696e6720706172616d657465726573402d204170706c69636174696f6e206964344f70656e696e6746696c6c65640c002801244f70656e696e6749640000710301684170706c69636174696f6e4964546f576f726b657249644d617000006901015c42547265655365743c4170706c69636174696f6e49643e00021484456d697473206f6e2066696c6c696e6720746865206a6f62206f70656e696e672e1c506172616d733a4c2d20576f726b6572206f70656e696e67206964cc2d20576f726b6572206170706c69636174696f6e20696420746f2074686520776f726b65722069642064696374696f6e617279ac2d204170706c69636174696f6e6420696473207573656420746f2066696c6c20746865206f70656e696e67244c65616465725365740400280120576f726b6572496400030c88456d697473206f6e2073657474696e67207468652067726f7570206c65616465722e1c506172616d733a482d2047726f757020776f726b65722069642e60576f726b6572526f6c654163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964000410c4456d697473206f6e207570646174696e672074686520726f6c65206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e802d20526f6c65206163636f756e74206964206f662074686520776f726b65722e2c4c6561646572556e7365740005047c456d697473206f6e20756e2d73657474696e6720746865206c65616465722e30576f726b65724578697465640400280120576f726b6572496400061070456d697473206f6e2065786974696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e302d20526174696f6e616c652e50576f726b6572537461727465644c656176696e670800280120576f726b6572496400003101013c4f7074696f6e3c5665633c75383e3e000710b4456d697473207768656e20776f726b65722073746172746564206c656176696e6720746865697220726f6c652e1c506172616d733a302d20576f726b65722069642e302d20526174696f6e616c652e405465726d696e61746564576f726b65720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00081480456d697473206f6e207465726d696e6174696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e405465726d696e617465644c65616465720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00091480456d697473206f6e207465726d696e6174696e6720746865206c65616465722e1c506172616d733a4c2d206c656164657220776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e305374616b65536c61736865641000280120576f726b65724964000018011c42616c616e6365000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e000a18c0456d697473206f6e20736c617368696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e642d2061637475616c20736c61736865642062616c616e63652e702d2052657175657374656420736c61736865642062616c616e63652e302d20526174696f6e616c652e385374616b654465637265617365640800280120576f726b65724964000018011c42616c616e6365000b10c8456d697473206f6e2064656372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74385374616b65496e637265617365640800280120576f726b65724964000018011c42616c616e6365000c10c8456d697473206f6e20696e6372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74504170706c69636174696f6e57697468647261776e04002801344170706c69636174696f6e4964000d0c2501456d697473206f6e207769746864726177696e6720746865206170706c69636174696f6e20666f722074686520726567756c617220776f726b65722f6c656164206f70656e696e672e1c506172616d733a502d204a6f62206170706c69636174696f6e2069643c4f70656e696e6743616e63656c656404002801244f70656e696e674964000e0c8c456d697473206f6e2063616e63656c696e6720746865206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e6720696424427564676574536574040018011c42616c616e6365000f0cc8456d697473206f6e2073657474696e67207468652062756467657420666f722074686520776f726b696e672067726f75702e1c506172616d733a302d206e65772062756467657468576f726b65725265776172644163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964001010cc456d697473206f6e207570646174696e672074686520726577617264206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e882d20526577617264206163636f756e74206964206f662074686520776f726b65722e64576f726b6572526577617264416d6f756e74557064617465640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e001110c8456d697473206f6e207570646174696e67207468652072657761726420616d6f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e482d205265776172642070657220626c6f636b44537461747573546578744368616e67656408002c01104861736800003101013c4f7074696f6e3c5665633c75383e3e001210dc456d697473206f6e207570646174696e6720746865207374617475732074657874206f662074686520776f726b696e672067726f75702e1c506172616d733a482d2073746174757320746578742068617368342d207374617475732074657874384275646765745370656e64696e670c000001244163636f756e744964000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e001314c8456d697473206f6e206275646765742066726f6d2074686520776f726b696e672067726f7570206265696e67207370656e741c506172616d733a582d205265636569766572204163636f756e742049642e402d2042616c616e6365207370656e742e302d20526174696f6e616c652e28526577617264506169641000280120576f726b6572496400000001244163636f756e744964000018011c42616c616e636500008d0301445265776172645061796d656e74547970650014186c456d697473206f6e20706179696e6720746865207265776172642e1c506172616d733a4c2d204964206f662074686520776f726b65722e582d205265636569766572204163636f756e742049642e202d20526577617264b42d205061796d656e74207479706520286d697373656420726577617264206f7220726567756c6172206f6e65296c4e65774d69737365645265776172644c6576656c526561636865640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00151090456d697473206f6e207265616368696e67206e6577206d6973736564207265776172642e1c506172616d733a302d20576f726b65722049442ee82d204d69737365642072657761726420286f7074696f6e616c292e204e6f6e65206d65616e7320276e6f206d697373656420726577617264272e60576f726b696e6747726f757042756467657446756e6465640c002801204d656d6265724964000018011c42616c616e6365000030011c5665633c75383e0016147846756e642074686520776f726b696e672067726f7570206275646765742e1c506172616d733a2c2d204d656d6265722049444c2d20416d6f756e74206f662062616c616e63652c2d20526174696f6e616c65304c65616452656d61726b6564040030011c5665633c75383e00170c94456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a242d206d65737361676538576f726b657252656d61726b65640800280120576f726b65724964000030011c5665633c75383e00181094456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a202d20776f726b6572242d206d6573736167650c5c4576656e747320666f722074686973206d6f64756c652e00385f47726f75705f206576656e74739503085070616c6c65745f776f726b696e675f67726f757024496e7374616e636532000000009903085070616c6c65745f776f726b696e675f67726f7570205261774576656e7430244f70656e696e6749640128344170706c69636174696f6e49640128684170706c69636174696f6e4964546f576f726b657249644d617001710320576f726b657249640128244163636f756e74496401001c42616c616e636501182c4f70656e696e6754797065017d032c5374616b65506f6c696379016103604170706c794f6e4f70656e696e67506172616d6574657273018103204d656d626572496401281048617368012c0449019d030164304f70656e696e67416464656414002801244f70656e696e674964000030011c5665633c75383e00007d03012c4f70656e696e675479706500006103012c5374616b65506f6c69637900004501013c4f7074696f6e3c42616c616e63653e00001c80456d697473206f6e20616464696e67206e6577206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e67206964342d204465736372697074696f6e782d204f70656e696e672054797065284c656164206f7220576f726b657229782d205374616b6520506f6c69637920666f7220746865206f70656e696e67482d205265776172642070657220626c6f636b404170706c6965644f6e4f70656e696e670800810301604170706c794f6e4f70656e696e67506172616d657465727300002801344170706c69636174696f6e4964000110dc456d697473206f6e20616464696e6720746865206170706c69636174696f6e20666f722074686520776f726b6572206f70656e696e672e1c506172616d733a542d204f70656e696e6720706172616d657465726573402d204170706c69636174696f6e206964344f70656e696e6746696c6c65640c002801244f70656e696e6749640000710301684170706c69636174696f6e4964546f576f726b657249644d617000006901015c42547265655365743c4170706c69636174696f6e49643e00021484456d697473206f6e2066696c6c696e6720746865206a6f62206f70656e696e672e1c506172616d733a4c2d20576f726b6572206f70656e696e67206964cc2d20576f726b6572206170706c69636174696f6e20696420746f2074686520776f726b65722069642064696374696f6e617279ac2d204170706c69636174696f6e6420696473207573656420746f2066696c6c20746865206f70656e696e67244c65616465725365740400280120576f726b6572496400030c88456d697473206f6e2073657474696e67207468652067726f7570206c65616465722e1c506172616d733a482d2047726f757020776f726b65722069642e60576f726b6572526f6c654163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964000410c4456d697473206f6e207570646174696e672074686520726f6c65206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e802d20526f6c65206163636f756e74206964206f662074686520776f726b65722e2c4c6561646572556e7365740005047c456d697473206f6e20756e2d73657474696e6720746865206c65616465722e30576f726b65724578697465640400280120576f726b6572496400061070456d697473206f6e2065786974696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e302d20526174696f6e616c652e50576f726b6572537461727465644c656176696e670800280120576f726b6572496400003101013c4f7074696f6e3c5665633c75383e3e000710b4456d697473207768656e20776f726b65722073746172746564206c656176696e6720746865697220726f6c652e1c506172616d733a302d20576f726b65722069642e302d20526174696f6e616c652e405465726d696e61746564576f726b65720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00081480456d697473206f6e207465726d696e6174696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e405465726d696e617465644c65616465720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00091480456d697473206f6e207465726d696e6174696e6720746865206c65616465722e1c506172616d733a4c2d206c656164657220776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e305374616b65536c61736865641000280120576f726b65724964000018011c42616c616e6365000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e000a18c0456d697473206f6e20736c617368696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e642d2061637475616c20736c61736865642062616c616e63652e702d2052657175657374656420736c61736865642062616c616e63652e302d20526174696f6e616c652e385374616b654465637265617365640800280120576f726b65724964000018011c42616c616e6365000b10c8456d697473206f6e2064656372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74385374616b65496e637265617365640800280120576f726b65724964000018011c42616c616e6365000c10c8456d697473206f6e20696e6372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74504170706c69636174696f6e57697468647261776e04002801344170706c69636174696f6e4964000d0c2501456d697473206f6e207769746864726177696e6720746865206170706c69636174696f6e20666f722074686520726567756c617220776f726b65722f6c656164206f70656e696e672e1c506172616d733a502d204a6f62206170706c69636174696f6e2069643c4f70656e696e6743616e63656c656404002801244f70656e696e674964000e0c8c456d697473206f6e2063616e63656c696e6720746865206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e6720696424427564676574536574040018011c42616c616e6365000f0cc8456d697473206f6e2073657474696e67207468652062756467657420666f722074686520776f726b696e672067726f75702e1c506172616d733a302d206e65772062756467657468576f726b65725265776172644163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964001010cc456d697473206f6e207570646174696e672074686520726577617264206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e882d20526577617264206163636f756e74206964206f662074686520776f726b65722e64576f726b6572526577617264416d6f756e74557064617465640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e001110c8456d697473206f6e207570646174696e67207468652072657761726420616d6f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e482d205265776172642070657220626c6f636b44537461747573546578744368616e67656408002c01104861736800003101013c4f7074696f6e3c5665633c75383e3e001210dc456d697473206f6e207570646174696e6720746865207374617475732074657874206f662074686520776f726b696e672067726f75702e1c506172616d733a482d2073746174757320746578742068617368342d207374617475732074657874384275646765745370656e64696e670c000001244163636f756e744964000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e001314c8456d697473206f6e206275646765742066726f6d2074686520776f726b696e672067726f7570206265696e67207370656e741c506172616d733a582d205265636569766572204163636f756e742049642e402d2042616c616e6365207370656e742e302d20526174696f6e616c652e28526577617264506169641000280120576f726b6572496400000001244163636f756e744964000018011c42616c616e636500008d0301445265776172645061796d656e74547970650014186c456d697473206f6e20706179696e6720746865207265776172642e1c506172616d733a4c2d204964206f662074686520776f726b65722e582d205265636569766572204163636f756e742049642e202d20526577617264b42d205061796d656e74207479706520286d697373656420726577617264206f7220726567756c6172206f6e65296c4e65774d69737365645265776172644c6576656c526561636865640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00151090456d697473206f6e207265616368696e67206e6577206d6973736564207265776172642e1c506172616d733a302d20576f726b65722049442ee82d204d69737365642072657761726420286f7074696f6e616c292e204e6f6e65206d65616e7320276e6f206d697373656420726577617264272e60576f726b696e6747726f757042756467657446756e6465640c002801204d656d6265724964000018011c42616c616e6365000030011c5665633c75383e0016147846756e642074686520776f726b696e672067726f7570206275646765742e1c506172616d733a2c2d204d656d6265722049444c2d20416d6f756e74206f662062616c616e63652c2d20526174696f6e616c65304c65616452656d61726b6564040030011c5665633c75383e00170c94456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a242d206d65737361676538576f726b657252656d61726b65640800280120576f726b65724964000030011c5665633c75383e00181094456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a202d20776f726b6572242d206d6573736167650c5c4576656e747320666f722074686973206d6f64756c652e00385f47726f75705f206576656e74739d03085070616c6c65745f776f726b696e675f67726f757024496e7374616e63653300000000a103085070616c6c65745f776f726b696e675f67726f7570205261774576656e7430244f70656e696e6749640128344170706c69636174696f6e49640128684170706c69636174696f6e4964546f576f726b657249644d617001710320576f726b657249640128244163636f756e74496401001c42616c616e636501182c4f70656e696e6754797065017d032c5374616b65506f6c696379016103604170706c794f6e4f70656e696e67506172616d6574657273018103204d656d626572496401281048617368012c044901a5030164304f70656e696e67416464656414002801244f70656e696e674964000030011c5665633c75383e00007d03012c4f70656e696e675479706500006103012c5374616b65506f6c69637900004501013c4f7074696f6e3c42616c616e63653e00001c80456d697473206f6e20616464696e67206e6577206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e67206964342d204465736372697074696f6e782d204f70656e696e672054797065284c656164206f7220576f726b657229782d205374616b6520506f6c69637920666f7220746865206f70656e696e67482d205265776172642070657220626c6f636b404170706c6965644f6e4f70656e696e670800810301604170706c794f6e4f70656e696e67506172616d657465727300002801344170706c69636174696f6e4964000110dc456d697473206f6e20616464696e6720746865206170706c69636174696f6e20666f722074686520776f726b6572206f70656e696e672e1c506172616d733a542d204f70656e696e6720706172616d657465726573402d204170706c69636174696f6e206964344f70656e696e6746696c6c65640c002801244f70656e696e6749640000710301684170706c69636174696f6e4964546f576f726b657249644d617000006901015c42547265655365743c4170706c69636174696f6e49643e00021484456d697473206f6e2066696c6c696e6720746865206a6f62206f70656e696e672e1c506172616d733a4c2d20576f726b6572206f70656e696e67206964cc2d20576f726b6572206170706c69636174696f6e20696420746f2074686520776f726b65722069642064696374696f6e617279ac2d204170706c69636174696f6e6420696473207573656420746f2066696c6c20746865206f70656e696e67244c65616465725365740400280120576f726b6572496400030c88456d697473206f6e2073657474696e67207468652067726f7570206c65616465722e1c506172616d733a482d2047726f757020776f726b65722069642e60576f726b6572526f6c654163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964000410c4456d697473206f6e207570646174696e672074686520726f6c65206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e802d20526f6c65206163636f756e74206964206f662074686520776f726b65722e2c4c6561646572556e7365740005047c456d697473206f6e20756e2d73657474696e6720746865206c65616465722e30576f726b65724578697465640400280120576f726b6572496400061070456d697473206f6e2065786974696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e302d20526174696f6e616c652e50576f726b6572537461727465644c656176696e670800280120576f726b6572496400003101013c4f7074696f6e3c5665633c75383e3e000710b4456d697473207768656e20776f726b65722073746172746564206c656176696e6720746865697220726f6c652e1c506172616d733a302d20576f726b65722069642e302d20526174696f6e616c652e405465726d696e61746564576f726b65720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00081480456d697473206f6e207465726d696e6174696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e405465726d696e617465644c65616465720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00091480456d697473206f6e207465726d696e6174696e6720746865206c65616465722e1c506172616d733a4c2d206c656164657220776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e305374616b65536c61736865641000280120576f726b65724964000018011c42616c616e6365000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e000a18c0456d697473206f6e20736c617368696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e642d2061637475616c20736c61736865642062616c616e63652e702d2052657175657374656420736c61736865642062616c616e63652e302d20526174696f6e616c652e385374616b654465637265617365640800280120576f726b65724964000018011c42616c616e6365000b10c8456d697473206f6e2064656372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74385374616b65496e637265617365640800280120576f726b65724964000018011c42616c616e6365000c10c8456d697473206f6e20696e6372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74504170706c69636174696f6e57697468647261776e04002801344170706c69636174696f6e4964000d0c2501456d697473206f6e207769746864726177696e6720746865206170706c69636174696f6e20666f722074686520726567756c617220776f726b65722f6c656164206f70656e696e672e1c506172616d733a502d204a6f62206170706c69636174696f6e2069643c4f70656e696e6743616e63656c656404002801244f70656e696e674964000e0c8c456d697473206f6e2063616e63656c696e6720746865206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e6720696424427564676574536574040018011c42616c616e6365000f0cc8456d697473206f6e2073657474696e67207468652062756467657420666f722074686520776f726b696e672067726f75702e1c506172616d733a302d206e65772062756467657468576f726b65725265776172644163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964001010cc456d697473206f6e207570646174696e672074686520726577617264206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e882d20526577617264206163636f756e74206964206f662074686520776f726b65722e64576f726b6572526577617264416d6f756e74557064617465640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e001110c8456d697473206f6e207570646174696e67207468652072657761726420616d6f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e482d205265776172642070657220626c6f636b44537461747573546578744368616e67656408002c01104861736800003101013c4f7074696f6e3c5665633c75383e3e001210dc456d697473206f6e207570646174696e6720746865207374617475732074657874206f662074686520776f726b696e672067726f75702e1c506172616d733a482d2073746174757320746578742068617368342d207374617475732074657874384275646765745370656e64696e670c000001244163636f756e744964000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e001314c8456d697473206f6e206275646765742066726f6d2074686520776f726b696e672067726f7570206265696e67207370656e741c506172616d733a582d205265636569766572204163636f756e742049642e402d2042616c616e6365207370656e742e302d20526174696f6e616c652e28526577617264506169641000280120576f726b6572496400000001244163636f756e744964000018011c42616c616e636500008d0301445265776172645061796d656e74547970650014186c456d697473206f6e20706179696e6720746865207265776172642e1c506172616d733a4c2d204964206f662074686520776f726b65722e582d205265636569766572204163636f756e742049642e202d20526577617264b42d205061796d656e74207479706520286d697373656420726577617264206f7220726567756c6172206f6e65296c4e65774d69737365645265776172644c6576656c526561636865640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00151090456d697473206f6e207265616368696e67206e6577206d6973736564207265776172642e1c506172616d733a302d20576f726b65722049442ee82d204d69737365642072657761726420286f7074696f6e616c292e204e6f6e65206d65616e7320276e6f206d697373656420726577617264272e60576f726b696e6747726f757042756467657446756e6465640c002801204d656d6265724964000018011c42616c616e6365000030011c5665633c75383e0016147846756e642074686520776f726b696e672067726f7570206275646765742e1c506172616d733a2c2d204d656d6265722049444c2d20416d6f756e74206f662062616c616e63652c2d20526174696f6e616c65304c65616452656d61726b6564040030011c5665633c75383e00170c94456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a242d206d65737361676538576f726b657252656d61726b65640800280120576f726b65724964000030011c5665633c75383e00181094456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a202d20776f726b6572242d206d6573736167650c5c4576656e747320666f722074686973206d6f64756c652e00385f47726f75705f206576656e7473a503085070616c6c65745f776f726b696e675f67726f757024496e7374616e63653400000000a903085070616c6c65745f776f726b696e675f67726f7570205261774576656e7430244f70656e696e6749640128344170706c69636174696f6e49640128684170706c69636174696f6e4964546f576f726b657249644d617001710320576f726b657249640128244163636f756e74496401001c42616c616e636501182c4f70656e696e6754797065017d032c5374616b65506f6c696379016103604170706c794f6e4f70656e696e67506172616d6574657273018103204d656d626572496401281048617368012c044901ad030164304f70656e696e67416464656414002801244f70656e696e674964000030011c5665633c75383e00007d03012c4f70656e696e675479706500006103012c5374616b65506f6c69637900004501013c4f7074696f6e3c42616c616e63653e00001c80456d697473206f6e20616464696e67206e6577206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e67206964342d204465736372697074696f6e782d204f70656e696e672054797065284c656164206f7220576f726b657229782d205374616b6520506f6c69637920666f7220746865206f70656e696e67482d205265776172642070657220626c6f636b404170706c6965644f6e4f70656e696e670800810301604170706c794f6e4f70656e696e67506172616d657465727300002801344170706c69636174696f6e4964000110dc456d697473206f6e20616464696e6720746865206170706c69636174696f6e20666f722074686520776f726b6572206f70656e696e672e1c506172616d733a542d204f70656e696e6720706172616d657465726573402d204170706c69636174696f6e206964344f70656e696e6746696c6c65640c002801244f70656e696e6749640000710301684170706c69636174696f6e4964546f576f726b657249644d617000006901015c42547265655365743c4170706c69636174696f6e49643e00021484456d697473206f6e2066696c6c696e6720746865206a6f62206f70656e696e672e1c506172616d733a4c2d20576f726b6572206f70656e696e67206964cc2d20576f726b6572206170706c69636174696f6e20696420746f2074686520776f726b65722069642064696374696f6e617279ac2d204170706c69636174696f6e6420696473207573656420746f2066696c6c20746865206f70656e696e67244c65616465725365740400280120576f726b6572496400030c88456d697473206f6e2073657474696e67207468652067726f7570206c65616465722e1c506172616d733a482d2047726f757020776f726b65722069642e60576f726b6572526f6c654163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964000410c4456d697473206f6e207570646174696e672074686520726f6c65206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e802d20526f6c65206163636f756e74206964206f662074686520776f726b65722e2c4c6561646572556e7365740005047c456d697473206f6e20756e2d73657474696e6720746865206c65616465722e30576f726b65724578697465640400280120576f726b6572496400061070456d697473206f6e2065786974696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e302d20526174696f6e616c652e50576f726b6572537461727465644c656176696e670800280120576f726b6572496400003101013c4f7074696f6e3c5665633c75383e3e000710b4456d697473207768656e20776f726b65722073746172746564206c656176696e6720746865697220726f6c652e1c506172616d733a302d20576f726b65722069642e302d20526174696f6e616c652e405465726d696e61746564576f726b65720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00081480456d697473206f6e207465726d696e6174696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e405465726d696e617465644c65616465720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00091480456d697473206f6e207465726d696e6174696e6720746865206c65616465722e1c506172616d733a4c2d206c656164657220776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e305374616b65536c61736865641000280120576f726b65724964000018011c42616c616e6365000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e000a18c0456d697473206f6e20736c617368696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e642d2061637475616c20736c61736865642062616c616e63652e702d2052657175657374656420736c61736865642062616c616e63652e302d20526174696f6e616c652e385374616b654465637265617365640800280120576f726b65724964000018011c42616c616e6365000b10c8456d697473206f6e2064656372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74385374616b65496e637265617365640800280120576f726b65724964000018011c42616c616e6365000c10c8456d697473206f6e20696e6372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74504170706c69636174696f6e57697468647261776e04002801344170706c69636174696f6e4964000d0c2501456d697473206f6e207769746864726177696e6720746865206170706c69636174696f6e20666f722074686520726567756c617220776f726b65722f6c656164206f70656e696e672e1c506172616d733a502d204a6f62206170706c69636174696f6e2069643c4f70656e696e6743616e63656c656404002801244f70656e696e674964000e0c8c456d697473206f6e2063616e63656c696e6720746865206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e6720696424427564676574536574040018011c42616c616e6365000f0cc8456d697473206f6e2073657474696e67207468652062756467657420666f722074686520776f726b696e672067726f75702e1c506172616d733a302d206e65772062756467657468576f726b65725265776172644163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964001010cc456d697473206f6e207570646174696e672074686520726577617264206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e882d20526577617264206163636f756e74206964206f662074686520776f726b65722e64576f726b6572526577617264416d6f756e74557064617465640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e001110c8456d697473206f6e207570646174696e67207468652072657761726420616d6f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e482d205265776172642070657220626c6f636b44537461747573546578744368616e67656408002c01104861736800003101013c4f7074696f6e3c5665633c75383e3e001210dc456d697473206f6e207570646174696e6720746865207374617475732074657874206f662074686520776f726b696e672067726f75702e1c506172616d733a482d2073746174757320746578742068617368342d207374617475732074657874384275646765745370656e64696e670c000001244163636f756e744964000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e001314c8456d697473206f6e206275646765742066726f6d2074686520776f726b696e672067726f7570206265696e67207370656e741c506172616d733a582d205265636569766572204163636f756e742049642e402d2042616c616e6365207370656e742e302d20526174696f6e616c652e28526577617264506169641000280120576f726b6572496400000001244163636f756e744964000018011c42616c616e636500008d0301445265776172645061796d656e74547970650014186c456d697473206f6e20706179696e6720746865207265776172642e1c506172616d733a4c2d204964206f662074686520776f726b65722e582d205265636569766572204163636f756e742049642e202d20526577617264b42d205061796d656e74207479706520286d697373656420726577617264206f7220726567756c6172206f6e65296c4e65774d69737365645265776172644c6576656c526561636865640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00151090456d697473206f6e207265616368696e67206e6577206d6973736564207265776172642e1c506172616d733a302d20576f726b65722049442ee82d204d69737365642072657761726420286f7074696f6e616c292e204e6f6e65206d65616e7320276e6f206d697373656420726577617264272e60576f726b696e6747726f757042756467657446756e6465640c002801204d656d6265724964000018011c42616c616e6365000030011c5665633c75383e0016147846756e642074686520776f726b696e672067726f7570206275646765742e1c506172616d733a2c2d204d656d6265722049444c2d20416d6f756e74206f662062616c616e63652c2d20526174696f6e616c65304c65616452656d61726b6564040030011c5665633c75383e00170c94456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a242d206d65737361676538576f726b657252656d61726b65640800280120576f726b65724964000030011c5665633c75383e00181094456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a202d20776f726b6572242d206d6573736167650c5c4576656e747320666f722074686973206d6f64756c652e00385f47726f75705f206576656e7473ad03085070616c6c65745f776f726b696e675f67726f757024496e7374616e63653500000000b103085070616c6c65745f776f726b696e675f67726f7570205261774576656e7430244f70656e696e6749640128344170706c69636174696f6e49640128684170706c69636174696f6e4964546f576f726b657249644d617001710320576f726b657249640128244163636f756e74496401001c42616c616e636501182c4f70656e696e6754797065017d032c5374616b65506f6c696379016103604170706c794f6e4f70656e696e67506172616d6574657273018103204d656d626572496401281048617368012c044901b5030164304f70656e696e67416464656414002801244f70656e696e674964000030011c5665633c75383e00007d03012c4f70656e696e675479706500006103012c5374616b65506f6c69637900004501013c4f7074696f6e3c42616c616e63653e00001c80456d697473206f6e20616464696e67206e6577206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e67206964342d204465736372697074696f6e782d204f70656e696e672054797065284c656164206f7220576f726b657229782d205374616b6520506f6c69637920666f7220746865206f70656e696e67482d205265776172642070657220626c6f636b404170706c6965644f6e4f70656e696e670800810301604170706c794f6e4f70656e696e67506172616d657465727300002801344170706c69636174696f6e4964000110dc456d697473206f6e20616464696e6720746865206170706c69636174696f6e20666f722074686520776f726b6572206f70656e696e672e1c506172616d733a542d204f70656e696e6720706172616d657465726573402d204170706c69636174696f6e206964344f70656e696e6746696c6c65640c002801244f70656e696e6749640000710301684170706c69636174696f6e4964546f576f726b657249644d617000006901015c42547265655365743c4170706c69636174696f6e49643e00021484456d697473206f6e2066696c6c696e6720746865206a6f62206f70656e696e672e1c506172616d733a4c2d20576f726b6572206f70656e696e67206964cc2d20576f726b6572206170706c69636174696f6e20696420746f2074686520776f726b65722069642064696374696f6e617279ac2d204170706c69636174696f6e6420696473207573656420746f2066696c6c20746865206f70656e696e67244c65616465725365740400280120576f726b6572496400030c88456d697473206f6e2073657474696e67207468652067726f7570206c65616465722e1c506172616d733a482d2047726f757020776f726b65722069642e60576f726b6572526f6c654163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964000410c4456d697473206f6e207570646174696e672074686520726f6c65206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e802d20526f6c65206163636f756e74206964206f662074686520776f726b65722e2c4c6561646572556e7365740005047c456d697473206f6e20756e2d73657474696e6720746865206c65616465722e30576f726b65724578697465640400280120576f726b6572496400061070456d697473206f6e2065786974696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e302d20526174696f6e616c652e50576f726b6572537461727465644c656176696e670800280120576f726b6572496400003101013c4f7074696f6e3c5665633c75383e3e000710b4456d697473207768656e20776f726b65722073746172746564206c656176696e6720746865697220726f6c652e1c506172616d733a302d20576f726b65722069642e302d20526174696f6e616c652e405465726d696e61746564576f726b65720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00081480456d697473206f6e207465726d696e6174696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e405465726d696e617465644c65616465720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00091480456d697473206f6e207465726d696e6174696e6720746865206c65616465722e1c506172616d733a4c2d206c656164657220776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e305374616b65536c61736865641000280120576f726b65724964000018011c42616c616e6365000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e000a18c0456d697473206f6e20736c617368696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e642d2061637475616c20736c61736865642062616c616e63652e702d2052657175657374656420736c61736865642062616c616e63652e302d20526174696f6e616c652e385374616b654465637265617365640800280120576f726b65724964000018011c42616c616e6365000b10c8456d697473206f6e2064656372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74385374616b65496e637265617365640800280120576f726b65724964000018011c42616c616e6365000c10c8456d697473206f6e20696e6372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74504170706c69636174696f6e57697468647261776e04002801344170706c69636174696f6e4964000d0c2501456d697473206f6e207769746864726177696e6720746865206170706c69636174696f6e20666f722074686520726567756c617220776f726b65722f6c656164206f70656e696e672e1c506172616d733a502d204a6f62206170706c69636174696f6e2069643c4f70656e696e6743616e63656c656404002801244f70656e696e674964000e0c8c456d697473206f6e2063616e63656c696e6720746865206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e6720696424427564676574536574040018011c42616c616e6365000f0cc8456d697473206f6e2073657474696e67207468652062756467657420666f722074686520776f726b696e672067726f75702e1c506172616d733a302d206e65772062756467657468576f726b65725265776172644163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964001010cc456d697473206f6e207570646174696e672074686520726577617264206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e882d20526577617264206163636f756e74206964206f662074686520776f726b65722e64576f726b6572526577617264416d6f756e74557064617465640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e001110c8456d697473206f6e207570646174696e67207468652072657761726420616d6f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e482d205265776172642070657220626c6f636b44537461747573546578744368616e67656408002c01104861736800003101013c4f7074696f6e3c5665633c75383e3e001210dc456d697473206f6e207570646174696e6720746865207374617475732074657874206f662074686520776f726b696e672067726f75702e1c506172616d733a482d2073746174757320746578742068617368342d207374617475732074657874384275646765745370656e64696e670c000001244163636f756e744964000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e001314c8456d697473206f6e206275646765742066726f6d2074686520776f726b696e672067726f7570206265696e67207370656e741c506172616d733a582d205265636569766572204163636f756e742049642e402d2042616c616e6365207370656e742e302d20526174696f6e616c652e28526577617264506169641000280120576f726b6572496400000001244163636f756e744964000018011c42616c616e636500008d0301445265776172645061796d656e74547970650014186c456d697473206f6e20706179696e6720746865207265776172642e1c506172616d733a4c2d204964206f662074686520776f726b65722e582d205265636569766572204163636f756e742049642e202d20526577617264b42d205061796d656e74207479706520286d697373656420726577617264206f7220726567756c6172206f6e65296c4e65774d69737365645265776172644c6576656c526561636865640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00151090456d697473206f6e207265616368696e67206e6577206d6973736564207265776172642e1c506172616d733a302d20576f726b65722049442ee82d204d69737365642072657761726420286f7074696f6e616c292e204e6f6e65206d65616e7320276e6f206d697373656420726577617264272e60576f726b696e6747726f757042756467657446756e6465640c002801204d656d6265724964000018011c42616c616e6365000030011c5665633c75383e0016147846756e642074686520776f726b696e672067726f7570206275646765742e1c506172616d733a2c2d204d656d6265722049444c2d20416d6f756e74206f662062616c616e63652c2d20526174696f6e616c65304c65616452656d61726b6564040030011c5665633c75383e00170c94456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a242d206d65737361676538576f726b657252656d61726b65640800280120576f726b65724964000030011c5665633c75383e00181094456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a202d20776f726b6572242d206d6573736167650c5c4576656e747320666f722074686973206d6f64756c652e00385f47726f75705f206576656e7473b503085070616c6c65745f776f726b696e675f67726f757024496e7374616e63653600000000b903085070616c6c65745f776f726b696e675f67726f7570205261774576656e7430244f70656e696e6749640128344170706c69636174696f6e49640128684170706c69636174696f6e4964546f576f726b657249644d617001710320576f726b657249640128244163636f756e74496401001c42616c616e636501182c4f70656e696e6754797065017d032c5374616b65506f6c696379016103604170706c794f6e4f70656e696e67506172616d6574657273018103204d656d626572496401281048617368012c044901bd030164304f70656e696e67416464656414002801244f70656e696e674964000030011c5665633c75383e00007d03012c4f70656e696e675479706500006103012c5374616b65506f6c69637900004501013c4f7074696f6e3c42616c616e63653e00001c80456d697473206f6e20616464696e67206e6577206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e67206964342d204465736372697074696f6e782d204f70656e696e672054797065284c656164206f7220576f726b657229782d205374616b6520506f6c69637920666f7220746865206f70656e696e67482d205265776172642070657220626c6f636b404170706c6965644f6e4f70656e696e670800810301604170706c794f6e4f70656e696e67506172616d657465727300002801344170706c69636174696f6e4964000110dc456d697473206f6e20616464696e6720746865206170706c69636174696f6e20666f722074686520776f726b6572206f70656e696e672e1c506172616d733a542d204f70656e696e6720706172616d657465726573402d204170706c69636174696f6e206964344f70656e696e6746696c6c65640c002801244f70656e696e6749640000710301684170706c69636174696f6e4964546f576f726b657249644d617000006901015c42547265655365743c4170706c69636174696f6e49643e00021484456d697473206f6e2066696c6c696e6720746865206a6f62206f70656e696e672e1c506172616d733a4c2d20576f726b6572206f70656e696e67206964cc2d20576f726b6572206170706c69636174696f6e20696420746f2074686520776f726b65722069642064696374696f6e617279ac2d204170706c69636174696f6e6420696473207573656420746f2066696c6c20746865206f70656e696e67244c65616465725365740400280120576f726b6572496400030c88456d697473206f6e2073657474696e67207468652067726f7570206c65616465722e1c506172616d733a482d2047726f757020776f726b65722069642e60576f726b6572526f6c654163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964000410c4456d697473206f6e207570646174696e672074686520726f6c65206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e802d20526f6c65206163636f756e74206964206f662074686520776f726b65722e2c4c6561646572556e7365740005047c456d697473206f6e20756e2d73657474696e6720746865206c65616465722e30576f726b65724578697465640400280120576f726b6572496400061070456d697473206f6e2065786974696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e302d20526174696f6e616c652e50576f726b6572537461727465644c656176696e670800280120576f726b6572496400003101013c4f7074696f6e3c5665633c75383e3e000710b4456d697473207768656e20776f726b65722073746172746564206c656176696e6720746865697220726f6c652e1c506172616d733a302d20576f726b65722069642e302d20526174696f6e616c652e405465726d696e61746564576f726b65720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00081480456d697473206f6e207465726d696e6174696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e405465726d696e617465644c65616465720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00091480456d697473206f6e207465726d696e6174696e6720746865206c65616465722e1c506172616d733a4c2d206c656164657220776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e305374616b65536c61736865641000280120576f726b65724964000018011c42616c616e6365000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e000a18c0456d697473206f6e20736c617368696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e642d2061637475616c20736c61736865642062616c616e63652e702d2052657175657374656420736c61736865642062616c616e63652e302d20526174696f6e616c652e385374616b654465637265617365640800280120576f726b65724964000018011c42616c616e6365000b10c8456d697473206f6e2064656372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74385374616b65496e637265617365640800280120576f726b65724964000018011c42616c616e6365000c10c8456d697473206f6e20696e6372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74504170706c69636174696f6e57697468647261776e04002801344170706c69636174696f6e4964000d0c2501456d697473206f6e207769746864726177696e6720746865206170706c69636174696f6e20666f722074686520726567756c617220776f726b65722f6c656164206f70656e696e672e1c506172616d733a502d204a6f62206170706c69636174696f6e2069643c4f70656e696e6743616e63656c656404002801244f70656e696e674964000e0c8c456d697473206f6e2063616e63656c696e6720746865206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e6720696424427564676574536574040018011c42616c616e6365000f0cc8456d697473206f6e2073657474696e67207468652062756467657420666f722074686520776f726b696e672067726f75702e1c506172616d733a302d206e65772062756467657468576f726b65725265776172644163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964001010cc456d697473206f6e207570646174696e672074686520726577617264206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e882d20526577617264206163636f756e74206964206f662074686520776f726b65722e64576f726b6572526577617264416d6f756e74557064617465640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e001110c8456d697473206f6e207570646174696e67207468652072657761726420616d6f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e482d205265776172642070657220626c6f636b44537461747573546578744368616e67656408002c01104861736800003101013c4f7074696f6e3c5665633c75383e3e001210dc456d697473206f6e207570646174696e6720746865207374617475732074657874206f662074686520776f726b696e672067726f75702e1c506172616d733a482d2073746174757320746578742068617368342d207374617475732074657874384275646765745370656e64696e670c000001244163636f756e744964000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e001314c8456d697473206f6e206275646765742066726f6d2074686520776f726b696e672067726f7570206265696e67207370656e741c506172616d733a582d205265636569766572204163636f756e742049642e402d2042616c616e6365207370656e742e302d20526174696f6e616c652e28526577617264506169641000280120576f726b6572496400000001244163636f756e744964000018011c42616c616e636500008d0301445265776172645061796d656e74547970650014186c456d697473206f6e20706179696e6720746865207265776172642e1c506172616d733a4c2d204964206f662074686520776f726b65722e582d205265636569766572204163636f756e742049642e202d20526577617264b42d205061796d656e74207479706520286d697373656420726577617264206f7220726567756c6172206f6e65296c4e65774d69737365645265776172644c6576656c526561636865640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00151090456d697473206f6e207265616368696e67206e6577206d6973736564207265776172642e1c506172616d733a302d20576f726b65722049442ee82d204d69737365642072657761726420286f7074696f6e616c292e204e6f6e65206d65616e7320276e6f206d697373656420726577617264272e60576f726b696e6747726f757042756467657446756e6465640c002801204d656d6265724964000018011c42616c616e6365000030011c5665633c75383e0016147846756e642074686520776f726b696e672067726f7570206275646765742e1c506172616d733a2c2d204d656d6265722049444c2d20416d6f756e74206f662062616c616e63652c2d20526174696f6e616c65304c65616452656d61726b6564040030011c5665633c75383e00170c94456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a242d206d65737361676538576f726b657252656d61726b65640800280120576f726b65724964000030011c5665633c75383e00181094456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a202d20776f726b6572242d206d6573736167650c5c4576656e747320666f722074686973206d6f64756c652e00385f47726f75705f206576656e7473bd03085070616c6c65745f776f726b696e675f67726f757024496e7374616e63653700000000c103085070616c6c65745f776f726b696e675f67726f7570205261774576656e7430244f70656e696e6749640128344170706c69636174696f6e49640128684170706c69636174696f6e4964546f576f726b657249644d617001710320576f726b657249640128244163636f756e74496401001c42616c616e636501182c4f70656e696e6754797065017d032c5374616b65506f6c696379016103604170706c794f6e4f70656e696e67506172616d6574657273018103204d656d626572496401281048617368012c044901c5030164304f70656e696e67416464656414002801244f70656e696e674964000030011c5665633c75383e00007d03012c4f70656e696e675479706500006103012c5374616b65506f6c69637900004501013c4f7074696f6e3c42616c616e63653e00001c80456d697473206f6e20616464696e67206e6577206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e67206964342d204465736372697074696f6e782d204f70656e696e672054797065284c656164206f7220576f726b657229782d205374616b6520506f6c69637920666f7220746865206f70656e696e67482d205265776172642070657220626c6f636b404170706c6965644f6e4f70656e696e670800810301604170706c794f6e4f70656e696e67506172616d657465727300002801344170706c69636174696f6e4964000110dc456d697473206f6e20616464696e6720746865206170706c69636174696f6e20666f722074686520776f726b6572206f70656e696e672e1c506172616d733a542d204f70656e696e6720706172616d657465726573402d204170706c69636174696f6e206964344f70656e696e6746696c6c65640c002801244f70656e696e6749640000710301684170706c69636174696f6e4964546f576f726b657249644d617000006901015c42547265655365743c4170706c69636174696f6e49643e00021484456d697473206f6e2066696c6c696e6720746865206a6f62206f70656e696e672e1c506172616d733a4c2d20576f726b6572206f70656e696e67206964cc2d20576f726b6572206170706c69636174696f6e20696420746f2074686520776f726b65722069642064696374696f6e617279ac2d204170706c69636174696f6e6420696473207573656420746f2066696c6c20746865206f70656e696e67244c65616465725365740400280120576f726b6572496400030c88456d697473206f6e2073657474696e67207468652067726f7570206c65616465722e1c506172616d733a482d2047726f757020776f726b65722069642e60576f726b6572526f6c654163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964000410c4456d697473206f6e207570646174696e672074686520726f6c65206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e802d20526f6c65206163636f756e74206964206f662074686520776f726b65722e2c4c6561646572556e7365740005047c456d697473206f6e20756e2d73657474696e6720746865206c65616465722e30576f726b65724578697465640400280120576f726b6572496400061070456d697473206f6e2065786974696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e302d20526174696f6e616c652e50576f726b6572537461727465644c656176696e670800280120576f726b6572496400003101013c4f7074696f6e3c5665633c75383e3e000710b4456d697473207768656e20776f726b65722073746172746564206c656176696e6720746865697220726f6c652e1c506172616d733a302d20576f726b65722069642e302d20526174696f6e616c652e405465726d696e61746564576f726b65720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00081480456d697473206f6e207465726d696e6174696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e405465726d696e617465644c65616465720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00091480456d697473206f6e207465726d696e6174696e6720746865206c65616465722e1c506172616d733a4c2d206c656164657220776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e305374616b65536c61736865641000280120576f726b65724964000018011c42616c616e6365000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e000a18c0456d697473206f6e20736c617368696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e642d2061637475616c20736c61736865642062616c616e63652e702d2052657175657374656420736c61736865642062616c616e63652e302d20526174696f6e616c652e385374616b654465637265617365640800280120576f726b65724964000018011c42616c616e6365000b10c8456d697473206f6e2064656372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74385374616b65496e637265617365640800280120576f726b65724964000018011c42616c616e6365000c10c8456d697473206f6e20696e6372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74504170706c69636174696f6e57697468647261776e04002801344170706c69636174696f6e4964000d0c2501456d697473206f6e207769746864726177696e6720746865206170706c69636174696f6e20666f722074686520726567756c617220776f726b65722f6c656164206f70656e696e672e1c506172616d733a502d204a6f62206170706c69636174696f6e2069643c4f70656e696e6743616e63656c656404002801244f70656e696e674964000e0c8c456d697473206f6e2063616e63656c696e6720746865206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e6720696424427564676574536574040018011c42616c616e6365000f0cc8456d697473206f6e2073657474696e67207468652062756467657420666f722074686520776f726b696e672067726f75702e1c506172616d733a302d206e65772062756467657468576f726b65725265776172644163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964001010cc456d697473206f6e207570646174696e672074686520726577617264206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e882d20526577617264206163636f756e74206964206f662074686520776f726b65722e64576f726b6572526577617264416d6f756e74557064617465640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e001110c8456d697473206f6e207570646174696e67207468652072657761726420616d6f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e482d205265776172642070657220626c6f636b44537461747573546578744368616e67656408002c01104861736800003101013c4f7074696f6e3c5665633c75383e3e001210dc456d697473206f6e207570646174696e6720746865207374617475732074657874206f662074686520776f726b696e672067726f75702e1c506172616d733a482d2073746174757320746578742068617368342d207374617475732074657874384275646765745370656e64696e670c000001244163636f756e744964000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e001314c8456d697473206f6e206275646765742066726f6d2074686520776f726b696e672067726f7570206265696e67207370656e741c506172616d733a582d205265636569766572204163636f756e742049642e402d2042616c616e6365207370656e742e302d20526174696f6e616c652e28526577617264506169641000280120576f726b6572496400000001244163636f756e744964000018011c42616c616e636500008d0301445265776172645061796d656e74547970650014186c456d697473206f6e20706179696e6720746865207265776172642e1c506172616d733a4c2d204964206f662074686520776f726b65722e582d205265636569766572204163636f756e742049642e202d20526577617264b42d205061796d656e74207479706520286d697373656420726577617264206f7220726567756c6172206f6e65296c4e65774d69737365645265776172644c6576656c526561636865640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00151090456d697473206f6e207265616368696e67206e6577206d6973736564207265776172642e1c506172616d733a302d20576f726b65722049442ee82d204d69737365642072657761726420286f7074696f6e616c292e204e6f6e65206d65616e7320276e6f206d697373656420726577617264272e60576f726b696e6747726f757042756467657446756e6465640c002801204d656d6265724964000018011c42616c616e6365000030011c5665633c75383e0016147846756e642074686520776f726b696e672067726f7570206275646765742e1c506172616d733a2c2d204d656d6265722049444c2d20416d6f756e74206f662062616c616e63652c2d20526174696f6e616c65304c65616452656d61726b6564040030011c5665633c75383e00170c94456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a242d206d65737361676538576f726b657252656d61726b65640800280120576f726b65724964000030011c5665633c75383e00181094456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a202d20776f726b6572242d206d6573736167650c5c4576656e747320666f722074686973206d6f64756c652e00385f47726f75705f206576656e7473c503085070616c6c65745f776f726b696e675f67726f757024496e7374616e63653800000000c903085070616c6c65745f776f726b696e675f67726f7570205261774576656e7430244f70656e696e6749640128344170706c69636174696f6e49640128684170706c69636174696f6e4964546f576f726b657249644d617001710320576f726b657249640128244163636f756e74496401001c42616c616e636501182c4f70656e696e6754797065017d032c5374616b65506f6c696379016103604170706c794f6e4f70656e696e67506172616d6574657273018103204d656d626572496401281048617368012c044901cd030164304f70656e696e67416464656414002801244f70656e696e674964000030011c5665633c75383e00007d03012c4f70656e696e675479706500006103012c5374616b65506f6c69637900004501013c4f7074696f6e3c42616c616e63653e00001c80456d697473206f6e20616464696e67206e6577206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e67206964342d204465736372697074696f6e782d204f70656e696e672054797065284c656164206f7220576f726b657229782d205374616b6520506f6c69637920666f7220746865206f70656e696e67482d205265776172642070657220626c6f636b404170706c6965644f6e4f70656e696e670800810301604170706c794f6e4f70656e696e67506172616d657465727300002801344170706c69636174696f6e4964000110dc456d697473206f6e20616464696e6720746865206170706c69636174696f6e20666f722074686520776f726b6572206f70656e696e672e1c506172616d733a542d204f70656e696e6720706172616d657465726573402d204170706c69636174696f6e206964344f70656e696e6746696c6c65640c002801244f70656e696e6749640000710301684170706c69636174696f6e4964546f576f726b657249644d617000006901015c42547265655365743c4170706c69636174696f6e49643e00021484456d697473206f6e2066696c6c696e6720746865206a6f62206f70656e696e672e1c506172616d733a4c2d20576f726b6572206f70656e696e67206964cc2d20576f726b6572206170706c69636174696f6e20696420746f2074686520776f726b65722069642064696374696f6e617279ac2d204170706c69636174696f6e6420696473207573656420746f2066696c6c20746865206f70656e696e67244c65616465725365740400280120576f726b6572496400030c88456d697473206f6e2073657474696e67207468652067726f7570206c65616465722e1c506172616d733a482d2047726f757020776f726b65722069642e60576f726b6572526f6c654163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964000410c4456d697473206f6e207570646174696e672074686520726f6c65206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e802d20526f6c65206163636f756e74206964206f662074686520776f726b65722e2c4c6561646572556e7365740005047c456d697473206f6e20756e2d73657474696e6720746865206c65616465722e30576f726b65724578697465640400280120576f726b6572496400061070456d697473206f6e2065786974696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e302d20526174696f6e616c652e50576f726b6572537461727465644c656176696e670800280120576f726b6572496400003101013c4f7074696f6e3c5665633c75383e3e000710b4456d697473207768656e20776f726b65722073746172746564206c656176696e6720746865697220726f6c652e1c506172616d733a302d20576f726b65722069642e302d20526174696f6e616c652e405465726d696e61746564576f726b65720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00081480456d697473206f6e207465726d696e6174696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e405465726d696e617465644c65616465720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00091480456d697473206f6e207465726d696e6174696e6720746865206c65616465722e1c506172616d733a4c2d206c656164657220776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e305374616b65536c61736865641000280120576f726b65724964000018011c42616c616e6365000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e000a18c0456d697473206f6e20736c617368696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e642d2061637475616c20736c61736865642062616c616e63652e702d2052657175657374656420736c61736865642062616c616e63652e302d20526174696f6e616c652e385374616b654465637265617365640800280120576f726b65724964000018011c42616c616e6365000b10c8456d697473206f6e2064656372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74385374616b65496e637265617365640800280120576f726b65724964000018011c42616c616e6365000c10c8456d697473206f6e20696e6372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74504170706c69636174696f6e57697468647261776e04002801344170706c69636174696f6e4964000d0c2501456d697473206f6e207769746864726177696e6720746865206170706c69636174696f6e20666f722074686520726567756c617220776f726b65722f6c656164206f70656e696e672e1c506172616d733a502d204a6f62206170706c69636174696f6e2069643c4f70656e696e6743616e63656c656404002801244f70656e696e674964000e0c8c456d697473206f6e2063616e63656c696e6720746865206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e6720696424427564676574536574040018011c42616c616e6365000f0cc8456d697473206f6e2073657474696e67207468652062756467657420666f722074686520776f726b696e672067726f75702e1c506172616d733a302d206e65772062756467657468576f726b65725265776172644163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964001010cc456d697473206f6e207570646174696e672074686520726577617264206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e882d20526577617264206163636f756e74206964206f662074686520776f726b65722e64576f726b6572526577617264416d6f756e74557064617465640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e001110c8456d697473206f6e207570646174696e67207468652072657761726420616d6f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e482d205265776172642070657220626c6f636b44537461747573546578744368616e67656408002c01104861736800003101013c4f7074696f6e3c5665633c75383e3e001210dc456d697473206f6e207570646174696e6720746865207374617475732074657874206f662074686520776f726b696e672067726f75702e1c506172616d733a482d2073746174757320746578742068617368342d207374617475732074657874384275646765745370656e64696e670c000001244163636f756e744964000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e001314c8456d697473206f6e206275646765742066726f6d2074686520776f726b696e672067726f7570206265696e67207370656e741c506172616d733a582d205265636569766572204163636f756e742049642e402d2042616c616e6365207370656e742e302d20526174696f6e616c652e28526577617264506169641000280120576f726b6572496400000001244163636f756e744964000018011c42616c616e636500008d0301445265776172645061796d656e74547970650014186c456d697473206f6e20706179696e6720746865207265776172642e1c506172616d733a4c2d204964206f662074686520776f726b65722e582d205265636569766572204163636f756e742049642e202d20526577617264b42d205061796d656e74207479706520286d697373656420726577617264206f7220726567756c6172206f6e65296c4e65774d69737365645265776172644c6576656c526561636865640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00151090456d697473206f6e207265616368696e67206e6577206d6973736564207265776172642e1c506172616d733a302d20576f726b65722049442ee82d204d69737365642072657761726420286f7074696f6e616c292e204e6f6e65206d65616e7320276e6f206d697373656420726577617264272e60576f726b696e6747726f757042756467657446756e6465640c002801204d656d6265724964000018011c42616c616e6365000030011c5665633c75383e0016147846756e642074686520776f726b696e672067726f7570206275646765742e1c506172616d733a2c2d204d656d6265722049444c2d20416d6f756e74206f662062616c616e63652c2d20526174696f6e616c65304c65616452656d61726b6564040030011c5665633c75383e00170c94456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a242d206d65737361676538576f726b657252656d61726b65640800280120576f726b65724964000030011c5665633c75383e00181094456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a202d20776f726b6572242d206d6573736167650c5c4576656e747320666f722074686973206d6f64756c652e00385f47726f75705f206576656e7473cd03085070616c6c65745f776f726b696e675f67726f757024496e7374616e63653900000000d10308306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e00020000d5030000022c00d903000002dd0300dd0300000408101000e10308306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6ee503014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d65e903016473705f72756e74696d653a3a52756e74696d65537472696e670000e5030000061000e9030000050200ed030c306672616d655f73797374656d1870616c6c65741043616c6c0404540001201872656d61726b04011872656d61726b30011c5665633c75383e000010684d616b6520736f6d65206f6e2d636861696e2072656d61726b2e0034232320436f6d706c6578697479202d20604f28312960387365745f686561705f7061676573040114706167657328010c753634000104f853657420746865206e756d626572206f6620706167657320696e2074686520576562417373656d626c7920656e7669726f6e6d656e74277320686561702e207365745f636f6465040110636f646530011c5665633c75383e0002106453657420746865206e65772072756e74696d6520636f64652e0034232320436f6d706c657869747931012d20604f2843202b2053296020776865726520604360206c656e677468206f662060636f64656020616e642060536020636f6d706c6578697479206f66206063616e5f7365745f636f6465605c7365745f636f64655f776974686f75745f636865636b73040110636f646530011c5665633c75383e000310190153657420746865206e65772072756e74696d6520636f646520776974686f757420646f696e6720616e7920636865636b73206f662074686520676976656e2060636f6465602e0034232320436f6d706c65786974798c2d20604f2843296020776865726520604360206c656e677468206f662060636f6465602c7365745f73746f726167650401146974656d73f10301345665633c4b657956616c75653e0004046853657420736f6d65206974656d73206f662073746f726167652e306b696c6c5f73746f726167650401106b657973a90201205665633c4b65793e000504744b696c6c20736f6d65206974656d732066726f6d2073746f726167652e2c6b696c6c5f70726566697808011870726566697830010c4b657900011c7375626b65797310010c75333200061011014b696c6c20616c6c2073746f72616765206974656d7320776974682061206b657920746861742073746172747320776974682074686520676976656e207072656669782e0039012a2a4e4f54453a2a2a2057652072656c79206f6e2074686520526f6f74206f726967696e20746f2070726f7669646520757320746865206e756d626572206f66207375626b65797320756e6465723d0174686520707265666978207765206172652072656d6f76696e6720746f2061636375726174656c792063616c63756c6174652074686520776569676874206f6620746869732066756e6374696f6e2e4472656d61726b5f776974685f6576656e7404011872656d61726b30011c5665633c75383e000704a44d616b6520736f6d65206f6e2d636861696e2072656d61726b20616e6420656d6974206576656e742e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ef103000002f50300f50300000408303000f9030c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2001185765696768740001246d61785f626c6f636b2001185765696768740001247065725f636c617373fd0301845065724469737061746368436c6173733c57656967687473506572436c6173733e0000fd030c346672616d655f737570706f7274206469737061746368405065724469737061746368436c617373040454010104000c01186e6f726d616c010401045400012c6f7065726174696f6e616c01040104540001246d616e6461746f72790104010454000001040c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632001185765696768740001346d61785f65787472696e736963050401384f7074696f6e3c5765696768743e0001246d61785f746f74616c050401384f7074696f6e3c5765696768743e0001207265736572766564050401384f7074696f6e3c5765696768743e0000050404184f7074696f6e04045401200108104e6f6e6500000010536f6d65040020000001000009040c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d61780d0401545065724469737061746368436c6173733c7533323e00000d040c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f72791001045400001104082873705f776569676874733c52756e74696d65446257656967687400000801107265616428010c753634000114777269746528010c75363400001504082873705f76657273696f6e3852756e74696d6556657273696f6e0000200124737065635f6e616d65e903013452756e74696d65537472696e67000124696d706c5f6e616d65e903013452756e74696d65537472696e67000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c753332000110617069731904011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c75333200013473746174655f76657273696f6e080108753800001904040c436f77040454011d040004001d040000001d04000002210400210400000408250410002504000003080000000800290400000504002d040c306672616d655f73797374656d1870616c6c6574144572726f720404540001183c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e3043616c6c46696c7465726564000504d0546865206f726967696e2066696c7465722070726576656e74207468652063616c6c20746f20626520646973706174636865642e046c4572726f7220666f72207468652053797374656d2070616c6c657431040c3870616c6c65745f7574696c6974791870616c6c65741043616c6c04045400011814626174636804011463616c6c733504017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0000487c53656e642061206261746368206f662064697370617463682063616c6c732e00b04d61792062652063616c6c65642066726f6d20616e79206f726967696e2065786365707420604e6f6e65602e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e0055014966206f726967696e20697320726f6f74207468656e207468652063616c6c7320617265206469737061746368656420776974686f757420636865636b696e67206f726967696e2066696c7465722e202854686973ec696e636c7564657320627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e0034232320436f6d706c6578697479d02d204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e005501546869732077696c6c2072657475726e20604f6b6020696e20616c6c2063697263756d7374616e6365732e20546f2064657465726d696e65207468652073756363657373206f66207468652062617463682c20616e31016576656e74206973206465706f73697465642e20496620612063616c6c206661696c656420616e64207468652062617463682077617320696e7465727275707465642c207468656e207468655501604261746368496e74657272757074656460206576656e74206973206465706f73697465642c20616c6f6e67207769746820746865206e756d626572206f66207375636365737366756c2063616c6c73206d6164654d01616e6420746865206572726f72206f6620746865206661696c65642063616c6c2e20496620616c6c2077657265207375636365737366756c2c207468656e2074686520604261746368436f6d706c65746564604c6576656e74206973206465706f73697465642e3461735f64657269766174697665080114696e6465782904010c75313600011063616c6c3904017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000134dc53656e6420612063616c6c207468726f75676820616e20696e64657865642070736575646f6e796d206f66207468652073656e6465722e00550146696c7465722066726f6d206f726967696e206172652070617373656420616c6f6e672e205468652063616c6c2077696c6c2062652064697370617463686564207769746820616e206f726967696e207768696368bc757365207468652073616d652066696c74657220617320746865206f726967696e206f6620746869732063616c6c2e0045014e4f54453a20496620796f75206e65656420746f20656e73757265207468617420616e79206163636f756e742d62617365642066696c746572696e67206973206e6f7420686f6e6f7265642028692e652e61016265636175736520796f7520657870656374206070726f78796020746f2068617665206265656e2075736564207072696f7220696e207468652063616c6c20737461636b20616e6420796f7520646f206e6f742077616e7451017468652063616c6c207265737472696374696f6e7320746f206170706c7920746f20616e79207375622d6163636f756e7473292c207468656e20757365206061735f6d756c74695f7468726573686f6c645f31607c696e20746865204d756c74697369672070616c6c657420696e73746561642e00f44e4f54453a205072696f7220746f2076657273696f6e202a31322c2074686973207761732063616c6c6564206061735f6c696d697465645f737562602e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e2462617463685f616c6c04011463616c6c733504017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000234ec53656e642061206261746368206f662064697370617463682063616c6c7320616e642061746f6d6963616c6c792065786563757465207468656d2e21015468652077686f6c65207472616e73616374696f6e2077696c6c20726f6c6c6261636b20616e64206661696c20696620616e79206f66207468652063616c6c73206661696c65642e00b04d61792062652063616c6c65642066726f6d20616e79206f726967696e2065786365707420604e6f6e65602e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e0055014966206f726967696e20697320726f6f74207468656e207468652063616c6c7320617265206469737061746368656420776974686f757420636865636b696e67206f726967696e2066696c7465722e202854686973ec696e636c7564657320627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e0034232320436f6d706c6578697479d02d204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e2c64697370617463685f617308012461735f6f726967696e91060154426f783c543a3a50616c6c6574734f726967696e3e00011063616c6c3904017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000318c84469737061746368657320612066756e6374696f6e2063616c6c207769746820612070726f7669646564206f726967696e2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e0034232320436f6d706c65786974791c2d204f2831292e2c666f7263655f626174636804011463616c6c733504017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0004347c53656e642061206261746368206f662064697370617463682063616c6c732ed4556e6c696b6520606261746368602c20697420616c6c6f7773206572726f727320616e6420776f6e277420696e746572727570742e00b04d61792062652063616c6c65642066726f6d20616e79206f726967696e2065786365707420604e6f6e65602e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e004d014966206f726967696e20697320726f6f74207468656e207468652063616c6c732061726520646973706174636820776974686f757420636865636b696e67206f726967696e2066696c7465722e202854686973ec696e636c7564657320627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e0034232320436f6d706c6578697479d02d204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e2c776974685f77656967687408011063616c6c3904017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000118776569676874200118576569676874000518c4446973706174636820612066756e6374696f6e2063616c6c2077697468206120737065636966696564207765696768742e002d01546869732066756e6374696f6e20646f6573206e6f7420636865636b2074686520776569676874206f66207468652063616c6c2c20616e6420696e737465616420616c6c6f777320746865b8526f6f74206f726967696e20746f20737065636966792074686520776569676874206f66207468652063616c6c2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e3504000002390400390408586a6f7973747265616d5f6e6f64655f72756e74696d652c52756e74696d6543616c6c00018c1853797374656d0400ed0301ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e0000001c5574696c6974790400310401b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5574696c6974792c2052756e74696d653e000100104261626504003d0401a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c426162652c2052756e74696d653e0002002454696d657374616d700400610401b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e0003002042616c616e6365730400650401b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e00050068456c656374696f6e50726f76696465724d756c746950686173650400690401fd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c456c656374696f6e50726f76696465724d756c746950686173652c2052756e74696d653e0007001c5374616b696e670400550501b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5374616b696e672c2052756e74696d653e0008001c53657373696f6e0400790501b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53657373696f6e2c2052756e74696d653e0009001c4772616e6470610400850501b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4772616e6470612c2052756e74696d653e000b0020496d4f6e6c696e650400b50501b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c496d4f6e6c696e652c2052756e74696d653e000d0020426167734c6973740400d50501b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c426167734c6973742c2052756e74696d653e0010001c56657374696e670400d90501b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c56657374696e672c2052756e74696d653e001100204d756c74697369670400e10501b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d756c74697369672c2052756e74696d653e0012001c436f756e63696c0400e90501b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f756e63696c2c2052756e74696d653e001300285265666572656e64756d0400ed0501bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5265666572656e64756d2c2052756e74696d653e0014001c4d656d626572730400f10501b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d656d626572732c2052756e74696d653e00150014466f72756d0400f50501a90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c466f72756d2c2052756e74696d653e00160030436f6e737469747574696f6e0400f90501c50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f6e737469747574696f6e2c2052756e74696d653e00170018426f756e74790400fd0501ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c426f756e74792c2052756e74696d653e001800404a6f7973747265616d5574696c6974790400010601d50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4a6f7973747265616d5574696c6974792c2052756e74696d653e0019001c436f6e74656e740400050601b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f6e74656e742c2052756e74696d653e001a001c53746f726167650400350601b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53746f726167652c2052756e74696d653e001b003050726f6a656374546f6b656e0400390601c50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50726f6a656374546f6b656e2c2052756e74696d653e001c003c50726f706f73616c73456e67696e650400610601d10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50726f706f73616c73456e67696e652c2052756e74696d653e001d004c50726f706f73616c7344697363757373696f6e0400650601e10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50726f706f73616c7344697363757373696f6e2c2052756e74696d653e001e003850726f706f73616c73436f6465780400690601cd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50726f706f73616c73436f6465782c2052756e74696d653e001f0044466f72756d576f726b696e6747726f757004006d0601d90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c466f72756d576f726b696e6747726f75702c2052756e74696d653e0020004c53746f72616765576f726b696e6747726f75700400710601e10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53746f72616765576f726b696e6747726f75702c2052756e74696d653e0021004c436f6e74656e74576f726b696e6747726f75700400750601e10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f6e74656e74576f726b696e6747726f75702c2052756e74696d653e0022006c4f7065726174696f6e73576f726b696e6747726f7570416c7068610400790601010273656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4f7065726174696f6e73576f726b696e6747726f7570416c7068612c2052756e74696d653e0023003c417070576f726b696e6747726f757004007d0601d10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c417070576f726b696e6747726f75702c2052756e74696d653e002400584d656d62657273686970576f726b696e6747726f75700400810601ed0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d656d62657273686970576f726b696e6747726f75702c2052756e74696d653e002500684f7065726174696f6e73576f726b696e6747726f7570426574610400850601fd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4f7065726174696f6e73576f726b696e6747726f7570426574612c2052756e74696d653e0026006c4f7065726174696f6e73576f726b696e6747726f757047616d6d610400890601010273656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4f7065726174696f6e73576f726b696e6747726f757047616d6d612c2052756e74696d653e00270060446973747269627574696f6e576f726b696e6747726f757004008d0601f50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c446973747269627574696f6e576f726b696e6747726f75702c2052756e74696d653e002800003d040c2c70616c6c65745f626162651870616c6c65741043616c6c04045400010c4c7265706f72745f65717569766f636174696f6e08014865717569766f636174696f6e5f70726f6f6641040184426f783c45717569766f636174696f6e50726f6f663c543a3a4865616465723e3e00013c6b65795f6f776e65725f70726f6f6655040140543a3a4b65794f776e657250726f6f6600001009015265706f727420617574686f726974792065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667905017468652065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f660d01616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c306265207265706f727465642e707265706f72745f65717569766f636174696f6e5f756e7369676e656408014865717569766f636174696f6e5f70726f6f6641040184426f783c45717569766f636174696f6e50726f6f663c543a3a4865616465723e3e00013c6b65795f6f776e65725f70726f6f6655040140543a3a4b65794f776e657250726f6f6600012009015265706f727420617574686f726974792065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667905017468652065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f660d01616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c306265207265706f727465642e0d01546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c791501626c6f636b20617574686f72732077696c6c2063616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c2061732073756368150169662074686520626c6f636b20617574686f7220697320646566696e65642069742077696c6c20626520646566696e6564206173207468652065717569766f636174696f6e247265706f727465722e48706c616e5f636f6e6669675f6368616e6765040118636f6e666967590401504e657874436f6e66696744657363726970746f720002105d01506c616e20616e2065706f636820636f6e666967206368616e67652e205468652065706f636820636f6e666967206368616e6765206973207265636f7264656420616e642077696c6c20626520656e6163746564206f6e5101746865206e6578742063616c6c20746f2060656e6163745f65706f63685f6368616e6765602e2054686520636f6e6669672077696c6c20626520616374697661746564206f6e652065706f63682061667465722e59014d756c7469706c652063616c6c7320746f2074686973206d6574686f642077696c6c207265706c61636520616e79206578697374696e6720706c616e6e656420636f6e666967206368616e6765207468617420686164546e6f74206265656e20656e6163746564207965742e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e4104084873705f636f6e73656e7375735f736c6f74734445717569766f636174696f6e50726f6f660818486561646572014504084964014d04001001206f6666656e6465724d0401084964000110736c6f7451040110536c6f7400013066697273745f686561646572450401184865616465720001347365636f6e645f6865616465724504011848656164657200004504102873705f72756e74696d651c67656e65726963186865616465721848656164657208184e756d626572011010486173680149040014012c706172656e745f686173682c0130486173683a3a4f75747075740001186e756d626572e50301184e756d62657200012873746174655f726f6f742c0130486173683a3a4f757470757400013c65787472696e736963735f726f6f742c0130486173683a3a4f7574707574000118646967657374340118446967657374000049040c2873705f72756e74696d65187472616974732c426c616b6554776f323536000000004d040c4473705f636f6e73656e7375735f626162650c617070185075626c696300000400dc013c737232353531393a3a5075626c696300005104084873705f636f6e73656e7375735f736c6f747310536c6f740000040028010c75363400005504082873705f73657373696f6e3c4d656d6265727368697050726f6f6600000c011c73657373696f6e10013053657373696f6e496e646578000128747269655f6e6f646573a90201305665633c5665633c75383e3e00013c76616c696461746f725f636f756e7410013856616c696461746f72436f756e74000059040c4473705f636f6e73656e7375735f626162651c64696765737473504e657874436f6e66696744657363726970746f720001040856310801046379030128287536342c2075363429000134616c6c6f7765645f736c6f74735d040130416c6c6f776564536c6f7473000100005d04084473705f636f6e73656e7375735f6261626530416c6c6f776564536c6f747300010c305072696d617279536c6f7473000000745072696d617279416e645365636f6e64617279506c61696e536c6f74730001006c5072696d617279416e645365636f6e64617279565246536c6f74730002000061040c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f77240124543a3a4d6f6d656e7400003c54536574207468652063757272656e742074696d652e005501546869732063616c6c2073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6ed470686173652c20696620746869732063616c6c206861736e2774206265656e20696e766f6b656420627920746861742074696d652e0041015468652074696d657374616d702073686f756c642062652067726561746572207468616e207468652070726576696f7573206f6e652062792074686520616d6f756e742073706563696669656420627940604d696e696d756d506572696f64602e00d4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060496e686572656e74602e0034232320436f6d706c657869747931012d20604f2831296020284e6f7465207468617420696d706c656d656e746174696f6e73206f6620604f6e54696d657374616d7053657460206d75737420616c736f20626520604f283129602961012d20312073746f72616765207265616420616e6420312073746f72616765206d75746174696f6e2028636f64656320604f28312960292e202862656361757365206f6620604469645570646174653a3a74616b656020696e402020606f6e5f66696e616c697a656029d42d2031206576656e742068616e646c657220606f6e5f74696d657374616d705f736574602e204d75737420626520604f283129602e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e65040c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c080454000449000118207472616e73666572080110646573740001504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565ec0128543a3a42616c616e6365000058d45472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572206163636f756e742e000501607472616e73666572602077696c6c207365742074686520604672656542616c616e636560206f66207468652073656e64657220616e642072656365697665722e11014966207468652073656e6465722773206163636f756e742069732062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c74b06f6620746865207472616e736665722c20746865206163636f756e742077696c6c206265207265617065642e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520605369676e65646020627920746865207472616e736163746f722e0034232320436f6d706c657869747961012d20446570656e64656e74206f6e20617267756d656e747320627574206e6f7420637269746963616c2c20676976656e2070726f70657220696d706c656d656e746174696f6e7320666f7220696e70757420636f6e66696794202074797065732e205365652072656c617465642066756e6374696f6e732062656c6f772e31012d20497420636f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e642077726974657320696e7465726e616c6c7920616e64206e6f20636f6d706c6578382020636f6d7075746174696f6e2e004852656c617465642066756e6374696f6e733a004d0120202d2060656e737572655f63616e5f77697468647261776020697320616c776179732063616c6c656420696e7465726e616c6c792062757420686173206120626f756e64656420636f6d706c65786974792e290120202d205472616e7366657272696e672062616c616e63657320746f206163636f756e7473207468617420646964206e6f74206578697374206265666f72652077696c6c206361757365cc2020202060543a3a4f6e4e65774163636f756e743a3a6f6e5f6e65775f6163636f756e746020746f2062652063616c6c65642e5d0120202d2052656d6f76696e6720656e6f7567682066756e64732066726f6d20616e206163636f756e742077696c6c20747269676765722060543a3a4475737452656d6f76616c3a3a6f6e5f756e62616c616e636564602e5d0120202d20607472616e736665725f6b6565705f616c6976656020776f726b73207468652073616d652077617920617320607472616e73666572602c206275742068617320616e206164646974696f6e616c20636865636bdc202020207468617420746865207472616e736665722077696c6c206e6f74206b696c6c20746865206f726967696e206163636f756e742e2c7365745f62616c616e63650c010c77686f0001504163636f756e7449644c6f6f6b75704f663c543e0001206e65775f66726565ec0128543a3a42616c616e63650001306e65775f7265736572766564ec0128543a3a42616c616e636500012090536574207468652062616c616e636573206f66206120676976656e206163636f756e742e001d01546869732077696c6c20616c74657220604672656542616c616e63656020616e642060526573657276656442616c616e63656020696e2073746f726167652e2069742077696c6c3101616c736f20616c7465722074686520746f74616c2069737375616e6365206f66207468652073797374656d202860546f74616c49737375616e6365602920617070726f7072696174656c792e1501496620746865206e65772066726565206f722072657365727665642062616c616e63652069732062656c6f7720746865206578697374656e7469616c206465706f7369742cfc69742077696c6c20726573657420746865206163636f756e74206e6f6e63652028606672616d655f73797374656d3a3a4163636f756e744e6f6e636560292e00b0546865206469737061746368206f726967696e20666f7220746869732063616c6c2069732060726f6f74602e38666f7263655f7472616e736665720c0118736f757263650001504163636f756e7449644c6f6f6b75704f663c543e000110646573740001504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565ec0128543a3a42616c616e63650002144d0145786163746c7920617320607472616e73666572602c2065786365707420746865206f726967696e206d75737420626520726f6f7420616e642074686520736f75726365206163636f756e74206d6179206265287370656369666965642e34232320436f6d706c65786974794d012d2053616d65206173207472616e736665722c20627574206164646974696f6e616c207265616420616e6420777269746520626563617573652074686520736f75726365206163636f756e74206973206e6f747c2020617373756d656420746f20626520696e20746865206f7665726c61792e4c7472616e736665725f6b6565705f616c697665080110646573740001504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565ec0128543a3a42616c616e63650003184d0153616d6520617320746865205b607472616e73666572605d2063616c6c2c206275742077697468206120636865636b207468617420746865207472616e736665722077696c6c206e6f74206b696c6c207468653c6f726967696e206163636f756e742e00b8393925206f66207468652074696d6520796f752077616e74205b607472616e73666572605d20696e73746561642e00c05b607472616e73666572605d3a207374727563742e50616c6c65742e68746d6c236d6574686f642e7472616e73666572307472616e736665725f616c6c080110646573740001504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c697665980110626f6f6c00044005015472616e736665722074686520656e74697265207472616e7366657261626c652062616c616e63652066726f6d207468652063616c6c6572206163636f756e742e0059014e4f54453a20546869732066756e6374696f6e206f6e6c7920617474656d70747320746f207472616e73666572205f7472616e7366657261626c655f2062616c616e6365732e2054686973206d65616e7320746861746101616e79206c6f636b65642c2072657365727665642c206f72206578697374656e7469616c206465706f7369747320287768656e20606b6565705f616c6976656020697320607472756560292c2077696c6c206e6f742062655d017472616e7366657272656420627920746869732066756e6374696f6e2e20546f20656e73757265207468617420746869732066756e6374696f6e20726573756c747320696e2061206b696c6c6564206163636f756e742c4501796f75206d69676874206e65656420746f207072657061726520746865206163636f756e742062792072656d6f76696e6720616e79207265666572656e636520636f756e746572732c2073746f72616765406465706f736974732c206574632e2e2e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205369676e65642e00a02d206064657374603a2054686520726563697069656e74206f6620746865207472616e736665722e59012d20606b6565705f616c697665603a204120626f6f6c65616e20746f2064657465726d696e652069662074686520607472616e736665725f616c6c60206f7065726174696f6e2073686f756c642073656e6420616c6c4d0120206f66207468652066756e647320746865206163636f756e74206861732c2063617573696e67207468652073656e646572206163636f756e7420746f206265206b696c6c6564202866616c7365292c206f72590120207472616e736665722065766572797468696e6720657863657074206174206c6561737420746865206578697374656e7469616c206465706f7369742c2077686963682077696c6c2067756172616e74656520746fd420206b656570207468652073656e646572206163636f756e7420616c697665202874727565292e20232320436f6d706c657869747939012d204f2831292e204a757374206c696b65207472616e736665722c206275742072656164696e672074686520757365722773207472616e7366657261626c652062616c616e63652066697273742e3c666f7263655f756e7265736572766508010c77686f0001504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74180128543a3a42616c616e636500050cb0556e7265736572766520736f6d652062616c616e63652066726f6d2061207573657220627920666f7263652e006c43616e206f6e6c792062652063616c6c656420627920524f4f542e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e69040c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173651870616c6c65741043616c6c0404540001143c7375626d69745f756e7369676e65640801307261775f736f6c7574696f6e6d0401b0426f783c526177536f6c7574696f6e3c536f6c7574696f6e4f663c543a3a4d696e6572436f6e6669673e3e3e00011c7769746e6573733d050158536f6c7574696f6e4f72536e617073686f7453697a65000038a45375626d6974206120736f6c7574696f6e20666f722074686520756e7369676e65642070686173652e00c8546865206469737061746368206f726967696e20666f20746869732063616c6c206d757374206265205f5f6e6f6e655f5f2e003d0154686973207375626d697373696f6e20697320636865636b6564206f6e2074686520666c792e204d6f72656f7665722c207468697320756e7369676e656420736f6c7574696f6e206973206f6e6c79550176616c696461746564207768656e207375626d697474656420746f2074686520706f6f6c2066726f6d20746865202a2a6c6f63616c2a2a206e6f64652e204566666563746976656c792c2074686973206d65616e735d0174686174206f6e6c79206163746976652076616c696461746f72732063616e207375626d69742074686973207472616e73616374696f6e207768656e20617574686f72696e67206120626c6f636b202873696d696c617240746f20616e20696e686572656e74292e005901546f2070726576656e7420616e7920696e636f727265637420736f6c7574696f6e2028616e642074687573207761737465642074696d652f776569676874292c2074686973207472616e73616374696f6e2077696c6c4d0170616e69632069662074686520736f6c7574696f6e207375626d6974746564206279207468652076616c696461746f7220697320696e76616c696420696e20616e79207761792c206566666563746976656c799c70757474696e6720746865697220617574686f72696e6720726577617264206174207269736b2e00e04e6f206465706f736974206f7220726577617264206973206173736f63696174656420776974682074686973207375626d697373696f6e2e6c7365745f6d696e696d756d5f756e747275737465645f73636f72650401406d617962655f6e6578745f73636f7265410501544f7074696f6e3c456c656374696f6e53636f72653e000114b05365742061206e65772076616c756520666f7220604d696e696d756d556e7472757374656453636f7265602e00d84469737061746368206f726967696e206d75737420626520616c69676e656420776974682060543a3a466f7263654f726967696e602e00f05468697320636865636b2063616e206265207475726e6564206f66662062792073657474696e67207468652076616c756520746f20604e6f6e65602e747365745f656d657267656e63795f656c656374696f6e5f726573756c74040120737570706f72747345050158537570706f7274733c543a3a4163636f756e7449643e0002205901536574206120736f6c7574696f6e20696e207468652071756575652c20746f2062652068616e646564206f757420746f2074686520636c69656e74206f6620746869732070616c6c657420696e20746865206e6578748863616c6c20746f2060456c656374696f6e50726f76696465723a3a656c656374602e004501546869732063616e206f6e6c79206265207365742062792060543a3a466f7263654f726967696e602c20616e64206f6e6c79207768656e207468652070686173652069732060456d657267656e6379602e00610154686520736f6c7574696f6e206973206e6f7420636865636b656420666f7220616e7920666561736962696c69747920616e6420697320617373756d656420746f206265207472757374776f727468792c20617320616e795101666561736962696c69747920636865636b20697473656c662063616e20696e207072696e6369706c652063617573652074686520656c656374696f6e2070726f6365737320746f206661696c202864756520746f686d656d6f72792f77656967687420636f6e73747261696e73292e187375626d69740401307261775f736f6c7574696f6e6d0401b0426f783c526177536f6c7574696f6e3c536f6c7574696f6e4f663c543a3a4d696e6572436f6e6669673e3e3e0003249c5375626d6974206120736f6c7574696f6e20666f7220746865207369676e65642070686173652e00d0546865206469737061746368206f726967696e20666f20746869732063616c6c206d757374206265205f5f7369676e65645f5f2e005d0154686520736f6c7574696f6e20697320706f74656e7469616c6c79207175657565642c206261736564206f6e2074686520636c61696d65642073636f726520616e642070726f6365737365642061742074686520656e64506f6620746865207369676e65642070686173652e005d0141206465706f73697420697320726573657276656420616e64207265636f7264656420666f722074686520736f6c7574696f6e2e204261736564206f6e20746865206f7574636f6d652c2074686520736f6c7574696f6e15016d696768742062652072657761726465642c20736c61736865642c206f722067657420616c6c206f7220612070617274206f6620746865206465706f736974206261636b2e4c676f7665726e616e63655f66616c6c6261636b0801406d617962655f6d61785f766f746572730102012c4f7074696f6e3c7533323e0001446d617962655f6d61785f746172676574730102012c4f7074696f6e3c7533323e00041080547269676765722074686520676f7665726e616e63652066616c6c6261636b2e004901546869732063616e206f6e6c792062652063616c6c6564207768656e205b6050686173653a3a456d657267656e6379605d20697320656e61626c65642c20617320616e20616c7465726e617469766520746fc063616c6c696e67205b6043616c6c3a3a7365745f656d657267656e63795f656c656374696f6e5f726573756c74605d2e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e6d04089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173652c526177536f6c7574696f6e040453017104000c0120736f6c7574696f6e710401045300011473636f72659c0134456c656374696f6e53636f7265000114726f756e6410010c7533320000710408586a6f7973747265616d5f6e6f64655f72756e74696d65384e706f73536f6c7574696f6e31360000400118766f74657331750400000118766f74657332810400000118766f74657333950400000118766f74657334a10400000118766f74657335ad0400000118766f74657336b90400000118766f74657337c50400000118766f74657338d10400000118766f74657339dd040000011c766f7465733130e9040000011c766f7465733131f5040000011c766f746573313201050000011c766f74657331330d050000011c766f746573313419050000011c766f746573313525050000011c766f746573313631050000007504000002790400790400000408e5037d04007d04000006290400810400000285040085040000040ce50389047d04008904000004087d048d04008d0400000691040091040c3473705f61726974686d65746963287065725f7468696e677318506572553136000004002904010c7531360000950400000299040099040000040ce5039d047d04009d0400000302000000890400a104000002a50400a5040000040ce503a9047d0400a90400000303000000890400ad04000002b10400b1040000040ce503b5047d0400b50400000304000000890400b904000002bd0400bd040000040ce503c1047d0400c10400000305000000890400c504000002c90400c9040000040ce503cd047d0400cd0400000306000000890400d104000002d50400d5040000040ce503d9047d0400d90400000307000000890400dd04000002e10400e1040000040ce503e5047d0400e50400000308000000890400e904000002ed0400ed040000040ce503f1047d0400f10400000309000000890400f504000002f90400f9040000040ce503fd047d0400fd040000030a000000890400010500000205050005050000040ce50309057d040009050000030b0000008904000d0500000211050011050000040ce50315057d040015050000030c00000089040019050000021d05001d050000040ce50321057d040021050000030d000000890400250500000229050029050000040ce5032d057d04002d050000030e000000890400310500000235050035050000040ce50339057d040039050000030f0000008904003d05089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f706861736558536f6c7574696f6e4f72536e617073686f7453697a650000080118766f74657273e503010c75333200011c74617267657473e503010c7533320000410504184f7074696f6e040454019c0108104e6f6e6500000010536f6d6504009c00000100004505000002490500490500000408004d05004d05084473705f6e706f735f656c656374696f6e731c537570706f727404244163636f756e744964010000080114746f74616c18013c457874656e64656442616c616e6365000118766f74657273510501845665633c284163636f756e7449642c20457874656e64656442616c616e6365293e000051050000024d01005505103870616c6c65745f7374616b696e671870616c6c65741870616c6c65741043616c6c04045400016810626f6e640c0128636f6e74726f6c6c65720001504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565ec013042616c616e63654f663c543e00011470617965655905017c52657761726444657374696e6174696f6e3c543a3a4163636f756e7449643e00003c610154616b6520746865206f726967696e206163636f756e74206173206120737461736820616e64206c6f636b207570206076616c756560206f66206974732062616c616e63652e2060636f6e74726f6c6c6572602077696c6c80626520746865206163636f756e74207468617420636f6e74726f6c732069742e002d016076616c756560206d757374206265206d6f7265207468616e2074686520606d696e696d756d5f62616c616e636560207370656369666965642062792060543a3a43757272656e6379602e002101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20627920746865207374617368206163636f756e742e003c456d6974732060426f6e646564602e34232320436f6d706c6578697479d02d20496e646570656e64656e74206f662074686520617267756d656e74732e204d6f64657261746520636f6d706c65786974792e1c2d204f2831292e642d20546872656520657874726120444220656e74726965732e004d014e4f54453a2054776f206f66207468652073746f726167652077726974657320286053656c663a3a626f6e646564602c206053656c663a3a7061796565602920617265205f6e657665725f20636c65616e65643d01756e6c6573732074686520606f726967696e602066616c6c732062656c6f77205f6578697374656e7469616c206465706f7369745f20616e6420676574732072656d6f76656420617320647573742e28626f6e645f65787472610401386d61785f6164646974696f6e616cec013042616c616e63654f663c543e000138610141646420736f6d6520657874726120616d6f756e742074686174206861766520617070656172656420696e207468652073746173682060667265655f62616c616e63656020696e746f207468652062616c616e636520757030666f72207374616b696e672e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c65722e004d01557365207468697320696620746865726520617265206164646974696f6e616c2066756e647320696e20796f7572207374617368206163636f756e74207468617420796f75207769736820746f20626f6e642e5501556e6c696b65205b60626f6e64605d2853656c663a3a626f6e6429206f72205b60756e626f6e64605d2853656c663a3a756e626f6e642920746869732066756e6374696f6e20646f6573206e6f7420696d706f7365bc616e79206c696d69746174696f6e206f6e2074686520616d6f756e7420746861742063616e2062652061646465642e003c456d6974732060426f6e646564602e0034232320436f6d706c6578697479e42d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e1c2d204f2831292e18756e626f6e6404011476616c7565ec013042616c616e63654f663c543e00024c51015363686564756c65206120706f7274696f6e206f662074686520737461736820746f20626520756e6c6f636b656420726561647920666f72207472616e73666572206f75742061667465722074686520626f6e64fc706572696f6420656e64732e2049662074686973206c656176657320616e20616d6f756e74206163746976656c7920626f6e646564206c657373207468616e2101543a3a43757272656e63793a3a6d696e696d756d5f62616c616e636528292c207468656e20697420697320696e6372656173656420746f207468652066756c6c20616d6f756e742e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0045014f6e63652074686520756e6c6f636b20706572696f6420697320646f6e652c20796f752063616e2063616c6c206077697468647261775f756e626f6e6465646020746f2061637475616c6c79206d6f7665bc7468652066756e6473206f7574206f66206d616e6167656d656e7420726561647920666f72207472616e736665722e0031014e6f206d6f7265207468616e2061206c696d69746564206e756d626572206f6620756e6c6f636b696e67206368756e6b73202873656520604d6178556e6c6f636b696e674368756e6b736029410163616e20636f2d657869737473206174207468652073616d652074696d652e20496620746865726520617265206e6f20756e6c6f636b696e67206368756e6b7320736c6f747320617661696c61626c6545015b6043616c6c3a3a77697468647261775f756e626f6e646564605d2069732063616c6c656420746f2072656d6f766520736f6d65206f6620746865206368756e6b732028696620706f737369626c65292e00390149662061207573657220656e636f756e74657273207468652060496e73756666696369656e74426f6e6460206572726f72207768656e2063616c6c696e6720746869732065787472696e7369632c1901746865792073686f756c642063616c6c20606368696c6c6020666972737420696e206f7264657220746f206672656520757020746865697220626f6e6465642066756e64732e0044456d6974732060556e626f6e646564602e009453656520616c736f205b6043616c6c3a3a77697468647261775f756e626f6e646564605d2e4477697468647261775f756e626f6e6465640401486e756d5f736c617368696e675f7370616e7310010c753332000338290152656d6f766520616e7920756e6c6f636b6564206368756e6b732066726f6d207468652060756e6c6f636b696e67602071756575652066726f6d206f7572206d616e6167656d656e742e0031015468697320657373656e7469616c6c7920667265657320757020746861742062616c616e636520746f206265207573656420627920746865207374617368206163636f756e7420746f20646f4877686174657665722069742077616e74732e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722e0048456d697473206057697468647261776e602e006853656520616c736f205b6043616c6c3a3a756e626f6e64605d2e0034232320436f6d706c6578697479d84f285329207768657265205320697320746865206e756d626572206f6620736c617368696e67207370616e7320746f2072656d6f766509014e4f54453a2057656967687420616e6e6f746174696f6e20697320746865206b696c6c207363656e6172696f2c20776520726566756e64206f74686572776973652e2076616c69646174650401147072656673b0013856616c696461746f725072656673000414e44465636c617265207468652064657369726520746f2076616c696461746520666f7220746865206f726967696e20636f6e74726f6c6c65722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e206e6f6d696e61746504011c746172676574735d0501645665633c4163636f756e7449644c6f6f6b75704f663c543e3e0005280d014465636c617265207468652064657369726520746f206e6f6d696e6174652060746172676574736020666f7220746865206f726967696e20636f6e74726f6c6c65722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0034232320436f6d706c65786974792d012d20546865207472616e73616374696f6e277320636f6d706c65786974792069732070726f706f7274696f6e616c20746f207468652073697a65206f662060746172676574736020284e29050177686963682069732063617070656420617420436f6d7061637441737369676e6d656e74733a3a4c494d49542028543a3a4d61784e6f6d696e6174696f6e73292ed42d20426f74682074686520726561647320616e642077726974657320666f6c6c6f7720612073696d696c6172207061747465726e2e146368696c6c000628c44465636c617265206e6f2064657369726520746f206569746865722076616c6964617465206f72206e6f6d696e6174652e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0034232320436f6d706c6578697479e42d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e502d20436f6e7461696e73206f6e6520726561642ec42d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e247365745f706179656504011470617965655905017c52657761726444657374696e6174696f6e3c543a3a4163636f756e7449643e000730b42852652d2973657420746865207061796d656e742074617267657420666f72206120636f6e74726f6c6c65722e005101456666656374732077696c6c2062652066656c7420696e7374616e746c792028617320736f6f6e20617320746869732066756e6374696f6e20697320636f6d706c65746564207375636365737366756c6c79292e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0034232320436f6d706c6578697479182d204f283129e42d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e942d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec42d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e242d2d2d2d2d2d2d2d2d387365745f636f6e74726f6c6c6572040128636f6e74726f6c6c65720001504163636f756e7449644c6f6f6b75704f663c543e00082c8c2852652d297365742074686520636f6e74726f6c6c6572206f6620612073746173682e005101456666656374732077696c6c2062652066656c7420696e7374616e746c792028617320736f6f6e20617320746869732066756e6374696f6e20697320636f6d706c65746564207375636365737366756c6c79292e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c65722e0034232320436f6d706c6578697479104f283129e42d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e942d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec42d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e4c7365745f76616c696461746f725f636f756e7404010c6e6577e503010c75333200091890536574732074686520696465616c206e756d626572206f662076616c696461746f72732e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e0034232320436f6d706c6578697479104f28312960696e6372656173655f76616c696461746f725f636f756e740401286164646974696f6e616ce503010c753332000a1ce4496e6372656d656e74732074686520696465616c206e756d626572206f662076616c696461746f7273207570746f206d6178696d756d206f668c60456c656374696f6e50726f7669646572426173653a3a4d617857696e6e657273602e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e0034232320436f6d706c65786974799853616d65206173205b6053656c663a3a7365745f76616c696461746f725f636f756e74605d2e547363616c655f76616c696461746f725f636f756e74040118666163746f726105011c50657263656e74000b1c0d015363616c652075702074686520696465616c206e756d626572206f662076616c696461746f7273206279206120666163746f72207570746f206d6178696d756d206f668c60456c656374696f6e50726f7669646572426173653a3a4d617857696e6e657273602e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e0034232320436f6d706c65786974799853616d65206173205b6053656c663a3a7365745f76616c696461746f725f636f756e74605d2e34666f7263655f6e6f5f65726173000c34ac466f72636520746865726520746f206265206e6f206e6577206572617320696e646566696e6974656c792e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002423205761726e696e6700190154686520656c656374696f6e2070726f6365737320737461727473206d756c7469706c6520626c6f636b73206265666f72652074686520656e64206f6620746865206572612e3901546875732074686520656c656374696f6e2070726f63657373206d6179206265206f6e676f696e67207768656e20746869732069732063616c6c65642e20496e2074686973206361736520746865dc656c656374696f6e2077696c6c20636f6e74696e756520756e74696c20746865206e65787420657261206973207472696767657265642e0034232320436f6d706c65786974793c2d204e6f20617267756d656e74732e382d205765696768743a204f28312934666f7263655f6e65775f657261000d384901466f72636520746865726520746f2062652061206e6577206572612061742074686520656e64206f6620746865206e6578742073657373696f6e2e20416674657220746869732c2069742077696c6c2062659c726573657420746f206e6f726d616c20286e6f6e2d666f7263656429206265686176696f75722e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002423205761726e696e6700190154686520656c656374696f6e2070726f6365737320737461727473206d756c7469706c6520626c6f636b73206265666f72652074686520656e64206f6620746865206572612e4901496620746869732069732063616c6c6564206a757374206265666f72652061206e657720657261206973207472696767657265642c2074686520656c656374696f6e2070726f63657373206d6179206e6f748c6861766520656e6f75676820626c6f636b7320746f20676574206120726573756c742e0034232320436f6d706c65786974793c2d204e6f20617267756d656e74732e382d205765696768743a204f283129447365745f696e76756c6e657261626c6573040134696e76756c6e657261626c65735d0501445665633c543a3a4163636f756e7449643e000e0cc8536574207468652076616c696461746f72732077686f2063616e6e6f7420626520736c61736865642028696620616e79292e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e34666f7263655f756e7374616b650801147374617368000130543a3a4163636f756e7449640001486e756d5f736c617368696e675f7370616e7310010c753332000f0c0901466f72636520612063757272656e74207374616b657220746f206265636f6d6520636f6d706c6574656c7920756e7374616b65642c20696d6d6564696174656c792e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e50666f7263655f6e65775f6572615f616c776179730010240101466f72636520746865726520746f2062652061206e6577206572612061742074686520656e64206f662073657373696f6e7320696e646566696e6974656c792e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002423205761726e696e6700190154686520656c656374696f6e2070726f6365737320737461727473206d756c7469706c6520626c6f636b73206265666f72652074686520656e64206f6620746865206572612e4901496620746869732069732063616c6c6564206a757374206265666f72652061206e657720657261206973207472696767657265642c2074686520656c656374696f6e2070726f63657373206d6179206e6f748c6861766520656e6f75676820626c6f636b7320746f20676574206120726573756c742e5463616e63656c5f64656665727265645f736c61736808010c657261100120457261496e646578000134736c6173685f696e6469636573650501205665633c7533323e0011149443616e63656c20656e6163746d656e74206f66206120646566657272656420736c6173682e009843616e2062652063616c6c6564206279207468652060543a3a41646d696e4f726967696e602e000101506172616d65746572733a2065726120616e6420696e6469636573206f662074686520736c617368657320666f7220746861742065726120746f206b696c6c2e387061796f75745f7374616b65727308013c76616c696461746f725f7374617368000130543a3a4163636f756e74496400010c657261100120457261496e64657800122c0d01506179206f757420616c6c20746865207374616b65727320626568696e6420612073696e676c652076616c696461746f7220666f7220612073696e676c65206572612e0049012d206076616c696461746f725f73746173686020697320746865207374617368206163636f756e74206f66207468652076616c696461746f722e205468656972206e6f6d696e61746f72732c20757020746f2501202060543a3a4d61784e6f6d696e61746f72526577617264656450657256616c696461746f72602c2077696c6c20616c736f207265636569766520746865697220726577617264732e31012d206065726160206d617920626520616e7920657261206265747765656e20605b63757272656e745f657261202d20686973746f72795f64657074683b2063757272656e745f6572615d602e005501546865206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e20416e79206163636f756e742063616e2063616c6c20746869732066756e6374696f6e2c206576656e206966746974206973206e6f74206f6e65206f6620746865207374616b6572732e0034232320436f6d706c6578697479b82d204174206d6f7374204f284d61784e6f6d696e61746f72526577617264656450657256616c696461746f72292e187265626f6e6404011476616c7565ec013042616c616e63654f663c543e00131cdc5265626f6e64206120706f7274696f6e206f6620746865207374617368207363686564756c656420746f20626520756e6c6f636b65642e00d4546865206469737061746368206f726967696e206d757374206265207369676e65642062792074686520636f6e74726f6c6c65722e0034232320436f6d706c6578697479d02d2054696d6520636f6d706c65786974793a204f284c292c207768657265204c20697320756e6c6f636b696e67206368756e6b73882d20426f756e64656420627920604d6178556e6c6f636b696e674368756e6b73602e28726561705f73746173680801147374617368000130543a3a4163636f756e7449640001486e756d5f736c617368696e675f7370616e7310010c7533320014305d0152656d6f766520616c6c2064617461207374727563747572657320636f6e6365726e696e672061207374616b65722f7374617368206f6e636520697420697320617420612073746174652077686572652069742063616e0501626520636f6e736964657265642060647573746020696e20746865207374616b696e672073797374656d2e2054686520726571756972656d656e7473206172653a000501312e207468652060746f74616c5f62616c616e636560206f66207468652073746173682069732062656c6f77206578697374656e7469616c206465706f7369742e1101322e206f722c2074686520606c65646765722e746f74616c60206f66207468652073746173682069732062656c6f77206578697374656e7469616c206465706f7369742e00550154686520666f726d65722063616e2068617070656e20696e206361736573206c696b65206120736c6173683b20746865206c6174746572207768656e20612066756c6c7920756e626f6e646564206163636f756e7409016973207374696c6c20726563656976696e67207374616b696e67207265776172647320696e206052657761726444657374696e6174696f6e3a3a5374616b6564602e00310149742063616e2062652063616c6c656420627920616e796f6e652c206173206c6f6e672061732060737461736860206d65657473207468652061626f766520726571756972656d656e74732e00dc526566756e647320746865207472616e73616374696f6e20666565732075706f6e207375636365737366756c20657865637574696f6e2e106b69636b04010c77686f5d0501645665633c4163636f756e7449644c6f6f6b75704f663c543e3e00152ce052656d6f76652074686520676976656e206e6f6d696e6174696f6e732066726f6d207468652063616c6c696e672076616c696461746f722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e004d012d206077686f603a2041206c697374206f66206e6f6d696e61746f72207374617368206163636f756e74732077686f20617265206e6f6d696e6174696e6720746869732076616c696461746f72207768696368c0202073686f756c64206e6f206c6f6e676572206265206e6f6d696e6174696e6720746869732076616c696461746f722e0055014e6f74653a204d616b696e6720746869732063616c6c206f6e6c79206d616b65732073656e736520696620796f7520666972737420736574207468652076616c696461746f7220707265666572656e63657320746f78626c6f636b20616e792066757274686572206e6f6d696e6174696f6e732e4c7365745f7374616b696e675f636f6e666967731801486d696e5f6e6f6d696e61746f725f626f6e6469050158436f6e6669674f703c42616c616e63654f663c543e3e0001486d696e5f76616c696461746f725f626f6e6469050158436f6e6669674f703c42616c616e63654f663c543e3e00014c6d61785f6e6f6d696e61746f725f636f756e746d050134436f6e6669674f703c7533323e00014c6d61785f76616c696461746f725f636f756e746d050134436f6e6669674f703c7533323e00013c6368696c6c5f7468726573686f6c6471050144436f6e6669674f703c50657263656e743e0001386d696e5f636f6d6d697373696f6e75050144436f6e6669674f703c50657262696c6c3e001644ac5570646174652074686520766172696f7573207374616b696e6720636f6e66696775726174696f6e73202e0025012a20606d696e5f6e6f6d696e61746f725f626f6e64603a20546865206d696e696d756d2061637469766520626f6e64206e656564656420746f2062652061206e6f6d696e61746f722e25012a20606d696e5f76616c696461746f725f626f6e64603a20546865206d696e696d756d2061637469766520626f6e64206e656564656420746f20626520612076616c696461746f722e55012a20606d61785f6e6f6d696e61746f725f636f756e74603a20546865206d6178206e756d626572206f662075736572732077686f2063616e2062652061206e6f6d696e61746f72206174206f6e63652e205768656e98202073657420746f20604e6f6e65602c206e6f206c696d697420697320656e666f726365642e55012a20606d61785f76616c696461746f725f636f756e74603a20546865206d6178206e756d626572206f662075736572732077686f2063616e20626520612076616c696461746f72206174206f6e63652e205768656e98202073657420746f20604e6f6e65602c206e6f206c696d697420697320656e666f726365642e59012a20606368696c6c5f7468726573686f6c64603a2054686520726174696f206f6620606d61785f6e6f6d696e61746f725f636f756e7460206f7220606d61785f76616c696461746f725f636f756e74602077686963681901202073686f756c642062652066696c6c656420696e206f7264657220666f722074686520606368696c6c5f6f7468657260207472616e73616374696f6e20746f20776f726b2e61012a20606d696e5f636f6d6d697373696f6e603a20546865206d696e696d756d20616d6f756e74206f6620636f6d6d697373696f6e207468617420656163682076616c696461746f7273206d757374206d61696e7461696e2e550120205468697320697320636865636b6564206f6e6c792075706f6e2063616c6c696e67206076616c6964617465602e204578697374696e672076616c696461746f727320617265206e6f742061666665637465642e00c452756e74696d654f726967696e206d75737420626520526f6f7420746f2063616c6c20746869732066756e6374696f6e2e0035014e4f54453a204578697374696e67206e6f6d696e61746f727320616e642076616c696461746f72732077696c6c206e6f742062652061666665637465642062792074686973207570646174652e1101746f206b69636b2070656f706c6520756e64657220746865206e6577206c696d6974732c20606368696c6c5f6f74686572602073686f756c642062652063616c6c65642e2c6368696c6c5f6f74686572040128636f6e74726f6c6c6572000130543a3a4163636f756e74496400176841014465636c61726520612060636f6e74726f6c6c65726020746f2073746f702070617274696369706174696e672061732065697468657220612076616c696461746f72206f72206e6f6d696e61746f722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e004101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2c206275742063616e2062652063616c6c656420627920616e796f6e652e0059014966207468652063616c6c6572206973207468652073616d652061732074686520636f6e74726f6c6c6572206265696e672074617267657465642c207468656e206e6f206675727468657220636865636b7320617265d8656e666f726365642c20616e6420746869732066756e6374696f6e2062656861766573206a757374206c696b6520606368696c6c602e005d014966207468652063616c6c657220697320646966666572656e74207468616e2074686520636f6e74726f6c6c6572206265696e672074617267657465642c2074686520666f6c6c6f77696e6720636f6e646974696f6e73306d757374206265206d65743a001d012a2060636f6e74726f6c6c657260206d7573742062656c6f6e6720746f2061206e6f6d696e61746f722077686f20686173206265636f6d65206e6f6e2d6465636f6461626c652c000c4f723a003d012a204120604368696c6c5468726573686f6c6460206d7573742062652073657420616e6420636865636b656420776869636820646566696e657320686f7720636c6f736520746f20746865206d6178550120206e6f6d696e61746f7273206f722076616c696461746f7273207765206d757374207265616368206265666f72652075736572732063616e207374617274206368696c6c696e67206f6e652d616e6f746865722e59012a204120604d61784e6f6d696e61746f72436f756e746020616e6420604d617856616c696461746f72436f756e7460206d75737420626520736574207768696368206973207573656420746f2064657465726d696e65902020686f7720636c6f73652077652061726520746f20746865207468726573686f6c642e5d012a204120604d696e4e6f6d696e61746f72426f6e646020616e6420604d696e56616c696461746f72426f6e6460206d7573742062652073657420616e6420636865636b65642c2077686963682064657465726d696e65735101202069662074686973206973206120706572736f6e20746861742073686f756c64206265206368696c6c6564206265636175736520746865792068617665206e6f74206d657420746865207468726573686f6c64402020626f6e642072657175697265642e005501546869732063616e2062652068656c7066756c20696620626f6e6420726571756972656d656e74732061726520757064617465642c20616e64207765206e65656420746f2072656d6f7665206f6c642075736572739877686f20646f206e6f74207361746973667920746865736520726571756972656d656e74732e68666f7263655f6170706c795f6d696e5f636f6d6d697373696f6e04013c76616c696461746f725f7374617368000130543a3a4163636f756e74496400180c4501466f72636520612076616c696461746f7220746f2068617665206174206c6561737420746865206d696e696d756d20636f6d6d697373696f6e2e20546869732077696c6c206e6f74206166666563742061610176616c696461746f722077686f20616c726561647920686173206120636f6d6d697373696f6e2067726561746572207468616e206f7220657175616c20746f20746865206d696e696d756d2e20416e79206163636f756e743863616e2063616c6c20746869732e487365745f6d696e5f636f6d6d697373696f6e04010c6e6577ac011c50657262696c6c00191025015365747320746865206d696e696d756d20616d6f756e74206f6620636f6d6d697373696f6e207468617420656163682076616c696461746f7273206d757374206d61696e7461696e2e005901546869732063616c6c20686173206c6f7765722070726976696c65676520726571756972656d656e7473207468616e20607365745f7374616b696e675f636f6e6669676020616e642063616e2062652063616c6c6564cc6279207468652060543a3a41646d696e4f726967696e602e20526f6f742063616e20616c776179732063616c6c20746869732e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e5905083870616c6c65745f7374616b696e674452657761726444657374696e6174696f6e04244163636f756e74496401000114185374616b656400000014537461736800010028436f6e74726f6c6c65720002001c4163636f756e7404000001244163636f756e744964000300104e6f6e65000400005d05000002000061050c3473705f61726974686d65746963287065725f7468696e67731c50657263656e740000040008010875380000650500000210006905103870616c6c65745f7374616b696e671870616c6c65741870616c6c657420436f6e6669674f700404540118010c104e6f6f700000000c5365740400180104540001001852656d6f7665000200006d05103870616c6c65745f7374616b696e671870616c6c65741870616c6c657420436f6e6669674f700404540110010c104e6f6f700000000c5365740400100104540001001852656d6f7665000200007105103870616c6c65745f7374616b696e671870616c6c65741870616c6c657420436f6e6669674f70040454016105010c104e6f6f700000000c536574040061050104540001001852656d6f7665000200007505103870616c6c65745f7374616b696e671870616c6c65741870616c6c657420436f6e6669674f7004045401ac010c104e6f6f700000000c5365740400ac0104540001001852656d6f76650002000079050c3870616c6c65745f73657373696f6e1870616c6c65741043616c6c040454000108207365745f6b6579730801106b6579737d05011c543a3a4b65797300011470726f6f6630011c5665633c75383e000024e453657473207468652073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c657220746f20606b657973602e1d01416c6c6f777320616e206163636f756e7420746f20736574206974732073657373696f6e206b6579207072696f7220746f206265636f6d696e6720612076616c696461746f722ec05468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e00d0546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265207369676e65642e0034232320436f6d706c657869747959012d20604f283129602e2041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f662060543a3a4b6579733a3a6b65795f69647328296020776869636820697320202066697865642e2870757267655f6b657973000130c852656d6f76657320616e792073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c65722e00c05468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e005501546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265205369676e656420616e6420746865206163636f756e74206d757374206265206569746865722062655d01636f6e7665727469626c6520746f20612076616c696461746f72204944207573696e672074686520636861696e2773207479706963616c2061646472657373696e672073797374656d20287468697320757375616c6c7951016d65616e73206265696e67206120636f6e74726f6c6c6572206163636f756e7429206f72206469726563746c7920636f6e7665727469626c6520696e746f20612076616c696461746f722049442028776869636894757375616c6c79206d65616e73206265696e672061207374617368206163636f756e74292e0034232320436f6d706c65786974793d012d20604f2831296020696e206e756d626572206f66206b65792074797065732e2041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f6698202060543a3a4b6579733a3a6b65795f6964732829602077686963682069732066697865642e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e7d0508586a6f7973747265616d5f6e6f64655f72756e74696d652c53657373696f6e4b657973000010011c6772616e647061cc01d03c4772616e647061206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c6963000110626162654d0401c43c42616265206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c6963000124696d5f6f6e6c696e65d801d43c496d4f6e6c696e65206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c696300014c617574686f726974795f646973636f76657279810501fc3c417574686f72697479446973636f76657279206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c6963000081050c5873705f617574686f726974795f646973636f766572790c617070185075626c696300000400dc013c737232353531393a3a5075626c6963000085050c3870616c6c65745f6772616e6470611870616c6c65741043616c6c04045400010c4c7265706f72745f65717569766f636174696f6e08014865717569766f636174696f6e5f70726f6f66890501bc426f783c45717569766f636174696f6e50726f6f663c543a3a486173682c20543a3a426c6f636b4e756d6265723e3e00013c6b65795f6f776e65725f70726f6f6655040140543a3a4b65794f776e657250726f6f6600001009015265706f727420766f7465722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667920746865f465717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66f8616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63654477696c6c206265207265706f727465642e707265706f72745f65717569766f636174696f6e5f756e7369676e656408014865717569766f636174696f6e5f70726f6f66890501bc426f783c45717569766f636174696f6e50726f6f663c543a3a486173682c20543a3a426c6f636b4e756d6265723e3e00013c6b65795f6f776e65725f70726f6f6655040140543a3a4b65794f776e657250726f6f6600012409015265706f727420766f7465722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667920746865f465717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66f8616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63654477696c6c206265207265706f727465642e000d01546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c791501626c6f636b20617574686f72732077696c6c2063616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c2061732073756368150169662074686520626c6f636b20617574686f7220697320646566696e65642069742077696c6c20626520646566696e6564206173207468652065717569766f636174696f6e247265706f727465722e306e6f74655f7374616c6c656408011464656c6179100138543a3a426c6f636b4e756d62657200016c626573745f66696e616c697a65645f626c6f636b5f6e756d626572100138543a3a426c6f636b4e756d6265720002303d014e6f74652074686174207468652063757272656e7420617574686f7269747920736574206f6620746865204752414e4450412066696e616c6974792067616467657420686173207374616c6c65642e006101546869732077696c6c2074726967676572206120666f7263656420617574686f7269747920736574206368616e67652061742074686520626567696e6e696e67206f6620746865206e6578742073657373696f6e2c20746f6101626520656e6163746564206064656c61796020626c6f636b7320616674657220746861742e20546865206064656c6179602073686f756c64206265206869676820656e6f75676820746f20736166656c7920617373756d654901746861742074686520626c6f636b207369676e616c6c696e672074686520666f72636564206368616e67652077696c6c206e6f742062652072652d6f7267656420652e672e203130303020626c6f636b732e5d0154686520626c6f636b2070726f64756374696f6e207261746520287768696368206d617920626520736c6f77656420646f776e2062656361757365206f662066696e616c697479206c616767696e67292073686f756c64510162652074616b656e20696e746f206163636f756e74207768656e2063686f6f73696e6720746865206064656c6179602e20546865204752414e44504120766f74657273206261736564206f6e20746865206e65775501617574686f726974792077696c6c20737461727420766f74696e67206f6e20746f70206f662060626573745f66696e616c697a65645f626c6f636b5f6e756d6265726020666f72206e65772066696e616c697a65644d01626c6f636b732e2060626573745f66696e616c697a65645f626c6f636b5f6e756d626572602073686f756c64206265207468652068696768657374206f6620746865206c61746573742066696e616c697a6564c4626c6f636b206f6620616c6c2076616c696461746f7273206f6620746865206e657720617574686f72697479207365742e00584f6e6c792063616c6c61626c6520627920726f6f742e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e8905084c73705f66696e616c6974795f6772616e6470614445717569766f636174696f6e50726f6f66080448012c044e0110000801187365745f6964280114536574496400013065717569766f636174696f6e8d05014845717569766f636174696f6e3c482c204e3e00008d05084c73705f66696e616c6974795f6772616e6470613045717569766f636174696f6e080448012c044e011001081c507265766f7465040091050139016772616e6470613a3a45717569766f636174696f6e3c417574686f7269747949642c206772616e6470613a3a507265766f74653c482c204e3e2c0a417574686f726974795369676e61747572653e00000024507265636f6d6d69740400a9050141016772616e6470613a3a45717569766f636174696f6e3c417574686f7269747949642c206772616e6470613a3a507265636f6d6d69743c482c204e3e2c0a417574686f726974795369676e61747572653e000100009105084066696e616c6974795f6772616e6470613045717569766f636174696f6e0c08496401cc0456019505045301990500100130726f756e645f6e756d62657228010c7536340001206964656e74697479cc010849640001146669727374a505011828562c2053290001187365636f6e64a505011828562c20532900009505084066696e616c6974795f6772616e6470611c507265766f7465080448012c044e01100008012c7461726765745f686173682c0104480001347461726765745f6e756d6265721001044e000099050c4c73705f66696e616c6974795f6772616e6470610c617070245369676e6174757265000004009d050148656432353531393a3a5369676e617475726500009d050c1c73705f636f72651c65643235353139245369676e617475726500000400a10501205b75383b2036345d0000a105000003400000000800a505000004089505990500a905084066696e616c6974795f6772616e6470613045717569766f636174696f6e0c08496401cc045601ad05045301990500100130726f756e645f6e756d62657228010c7536340001206964656e74697479cc010849640001146669727374b105011828562c2053290001187365636f6e64b105011828562c2053290000ad05084066696e616c6974795f6772616e64706124507265636f6d6d6974080448012c044e01100008012c7461726765745f686173682c0104480001347461726765745f6e756d6265721001044e0000b10500000408ad05990500b5050c4070616c6c65745f696d5f6f6e6c696e651870616c6c65741043616c6c04045400010424686561727462656174080124686561727462656174b90501644865617274626561743c543a3a426c6f636b4e756d6265723e0001247369676e6174757265cd0501bc3c543a3a417574686f7269747949642061732052756e74696d654170705075626c69633e3a3a5369676e617475726500001438232320436f6d706c65786974793a59012d20604f284b202b20452960207768657265204b206973206c656e677468206f6620604b6579736020286865617274626561742e76616c696461746f72735f6c656e2920616e642045206973206c656e677468206f66b02020606865617274626561742e6e6574776f726b5f73746174652e65787465726e616c5f61646472657373608820202d20604f284b29603a206465636f64696e67206f66206c656e67746820604b60ac20202d20604f284529603a206465636f64696e672f656e636f64696e67206f66206c656e67746820604560042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632eb905084070616c6c65745f696d5f6f6e6c696e6524486561727462656174042c426c6f636b4e756d626572011000140130626c6f636b5f6e756d62657210012c426c6f636b4e756d6265720001346e6574776f726b5f7374617465bd0501484f70617175654e6574776f726b537461746500013473657373696f6e5f696e64657810013053657373696f6e496e64657800013c617574686f726974795f696e64657810012441757468496e64657800013876616c696461746f72735f6c656e10010c7533320000bd050c1c73705f636f7265206f6666636861696e484f70617175654e6574776f726b5374617465000008011c706565725f6964c10501304f706171756550656572496400014865787465726e616c5f616464726573736573c50501505665633c4f70617175654d756c7469616464723e0000c105081c73705f636f7265304f70617175655065657249640000040030011c5665633c75383e0000c505000002c90500c9050c1c73705f636f7265206f6666636861696e3c4f70617175654d756c7469616464720000040030011c5665633c75383e0000cd05104070616c6c65745f696d5f6f6e6c696e651c737232353531392c6170705f73723235353139245369676e617475726500000400d1050148737232353531393a3a5369676e61747572650000d1050c1c73705f636f72651c73723235353139245369676e617475726500000400a10501205b75383b2036345d0000d5050c4070616c6c65745f626167735f6c6973741870616c6c65741043616c6c0804540004490001081472656261670401286469736c6f63617465640001504163636f756e7449644c6f6f6b75704f663c543e00002859014465636c617265207468617420736f6d6520606469736c6f636174656460206163636f756e74206861732c207468726f7567682072657761726473206f722070656e616c746965732c2073756666696369656e746c7951016368616e676564206974732073636f726520746861742069742073686f756c642070726f7065726c792066616c6c20696e746f206120646966666572656e7420626167207468616e206974732063757272656e74106f6e652e001d01416e796f6e652063616e2063616c6c20746869732066756e6374696f6e2061626f757420616e7920706f74656e7469616c6c79206469736c6f6361746564206163636f756e742e00490157696c6c20616c7761797320757064617465207468652073746f7265642073636f7265206f6620606469736c6f63617465646020746f2074686520636f72726563742073636f72652c206261736564206f6e406053636f726550726f7669646572602e00d4496620606469736c6f63617465646020646f6573206e6f74206578697374732c2069742072657475726e7320616e206572726f722e3c7075745f696e5f66726f6e745f6f6604011c6c6967687465720001504163636f756e7449644c6f6f6b75704f663c543e000120d04d6f7665207468652063616c6c65722773204964206469726563746c7920696e2066726f6e74206f6620606c696768746572602e005901546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642063616e206f6e6c792062652063616c6c656420627920746865204964206f66a0746865206163636f756e7420676f696e6720696e2066726f6e74206f6620606c696768746572602e00344f6e6c7920776f726b73206966942d20626f7468206e6f646573206172652077697468696e207468652073616d65206261672cd02d20616e6420606f726967696e602068617320612067726561746572206053636f726560207468616e20606c696768746572602e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ed9050c3870616c6c65745f76657374696e671870616c6c65741043616c6c0404540001141076657374000024b8556e6c6f636b20616e79207665737465642066756e6473206f66207468652073656e646572206163636f756e742e005d01546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652066756e6473207374696c6c646c6f636b656420756e64657220746869732070616c6c65742e00d0456d69747320656974686572206056657374696e67436f6d706c6574656460206f72206056657374696e6755706461746564602e0034232320436f6d706c6578697479242d20604f283129602e28766573745f6f746865720401187461726765740001504163636f756e7449644c6f6f6b75704f663c543e00012cb8556e6c6f636b20616e79207665737465642066756e6473206f662061206074617267657460206163636f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0051012d2060746172676574603a20546865206163636f756e742077686f7365207665737465642066756e64732073686f756c6420626520756e6c6f636b65642e204d75737420686176652066756e6473207374696c6c646c6f636b656420756e64657220746869732070616c6c65742e00d0456d69747320656974686572206056657374696e67436f6d706c6574656460206f72206056657374696e6755706461746564602e0034232320436f6d706c6578697479242d20604f283129602e3c7665737465645f7472616e736665720801187461726765740001504163636f756e7449644c6f6f6b75704f663c543e0001207363686564756c65dd0501a456657374696e67496e666f3c42616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e00023464437265617465206120766573746564207472616e736665722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00cc2d2060746172676574603a20546865206163636f756e7420726563656976696e6720746865207665737465642066756e64732ef02d20607363686564756c65603a205468652076657374696e67207363686564756c6520617474616368656420746f20746865207472616e736665722e005c456d697473206056657374696e6743726561746564602e00fc4e4f54453a20546869732077696c6c20756e6c6f636b20616c6c207363686564756c6573207468726f756768207468652063757272656e7420626c6f636b2e0034232320436f6d706c6578697479242d20604f283129602e54666f7263655f7665737465645f7472616e736665720c0118736f757263650001504163636f756e7449644c6f6f6b75704f663c543e0001187461726765740001504163636f756e7449644c6f6f6b75704f663c543e0001207363686564756c65dd0501a456657374696e67496e666f3c42616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e00033860466f726365206120766573746564207472616e736665722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e00e82d2060736f75726365603a20546865206163636f756e742077686f73652066756e64732073686f756c64206265207472616e736665727265642e11012d2060746172676574603a20546865206163636f756e7420746861742073686f756c64206265207472616e7366657272656420746865207665737465642066756e64732ef02d20607363686564756c65603a205468652076657374696e67207363686564756c6520617474616368656420746f20746865207472616e736665722e005c456d697473206056657374696e6743726561746564602e00fc4e4f54453a20546869732077696c6c20756e6c6f636b20616c6c207363686564756c6573207468726f756768207468652063757272656e7420626c6f636b2e0034232320436f6d706c6578697479242d20604f283129602e3c6d657267655f7363686564756c657308013c7363686564756c65315f696e64657810010c75333200013c7363686564756c65325f696e64657810010c7533320004545d014d657267652074776f2076657374696e67207363686564756c657320746f6765746865722c206372656174696e672061206e65772076657374696e67207363686564756c65207468617420756e6c6f636b73206f7665725501746865206869676865737420706f737369626c6520737461727420616e6420656e6420626c6f636b732e20496620626f7468207363686564756c6573206861766520616c7265616479207374617274656420746865590163757272656e7420626c6f636b2077696c6c206265207573656420617320746865207363686564756c652073746172743b207769746820746865206361766561742074686174206966206f6e65207363686564756c655d0169732066696e6973686564206279207468652063757272656e7420626c6f636b2c20746865206f746865722077696c6c206265207472656174656420617320746865206e6577206d6572676564207363686564756c652c2c756e6d6f6469666965642e00f84e4f54453a20496620607363686564756c65315f696e646578203d3d207363686564756c65325f696e6465786020746869732069732061206e6f2d6f702e41014e4f54453a20546869732077696c6c20756e6c6f636b20616c6c207363686564756c6573207468726f756768207468652063757272656e7420626c6f636b207072696f7220746f206d657267696e672e61014e4f54453a20496620626f7468207363686564756c6573206861766520656e646564206279207468652063757272656e7420626c6f636b2c206e6f206e6577207363686564756c652077696c6c206265206372656174656464616e6420626f74682077696c6c2062652072656d6f7665642e006c4d6572676564207363686564756c6520617474726962757465733a35012d20607374617274696e675f626c6f636b603a20604d4158287363686564756c65312e7374617274696e675f626c6f636b2c207363686564756c6564322e7374617274696e675f626c6f636b2c48202063757272656e745f626c6f636b29602e21012d2060656e64696e675f626c6f636b603a20604d4158287363686564756c65312e656e64696e675f626c6f636b2c207363686564756c65322e656e64696e675f626c6f636b29602e59012d20606c6f636b6564603a20607363686564756c65312e6c6f636b65645f61742863757272656e745f626c6f636b29202b207363686564756c65322e6c6f636b65645f61742863757272656e745f626c6f636b29602e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00e82d20607363686564756c65315f696e646578603a20696e646578206f6620746865206669727374207363686564756c6520746f206d657267652eec2d20607363686564756c65325f696e646578603a20696e646578206f6620746865207365636f6e64207363686564756c6520746f206d657267652e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632edd050c3870616c6c65745f76657374696e673076657374696e675f696e666f2c56657374696e67496e666f081c42616c616e636501182c426c6f636b4e756d6265720110000c01186c6f636b656418011c42616c616e63650001247065725f626c6f636b18011c42616c616e63650001387374617274696e675f626c6f636b10012c426c6f636b4e756d6265720000e1050c3c70616c6c65745f6d756c74697369671870616c6c65741043616c6c0404540001105061735f6d756c74695f7468726573686f6c645f310801446f746865725f7369676e61746f726965735d0501445665633c543a3a4163636f756e7449643e00011063616c6c3904017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0000305101496d6d6564696174656c792064697370617463682061206d756c74692d7369676e61747572652063616c6c207573696e6720612073696e676c6520617070726f76616c2066726f6d207468652063616c6c65722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003d012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f206172652070617274206f662074686501016d756c74692d7369676e61747572652c2062757420646f206e6f7420706172746963697061746520696e2074686520617070726f76616c2070726f636573732e882d206063616c6c603a205468652063616c6c20746f2062652065786563757465642e00b8526573756c74206973206571756976616c656e7420746f20746865206469737061746368656420726573756c742e0034232320436f6d706c657869747919014f285a202b204329207768657265205a20697320746865206c656e677468206f66207468652063616c6c20616e6420432069747320657865637574696f6e207765696768742e2061735f6d756c74691401247468726573686f6c642904010c7531360001446f746865725f7369676e61746f726965735d0501445665633c543a3a4163636f756e7449643e00013c6d617962655f74696d65706f696e74e50501844f7074696f6e3c54696d65706f696e743c543a3a426c6f636b4e756d6265723e3e00011063616c6c3904017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0001286d61785f77656967687420011857656967687400019c5501526567697374657220617070726f76616c20666f72206120646973706174636820746f206265206d6164652066726f6d20612064657465726d696e697374696320636f6d706f73697465206163636f756e74206966f8617070726f766564206279206120746f74616c206f6620607468726573686f6c64202d203160206f6620606f746865725f7369676e61746f72696573602e00b049662074686572652061726520656e6f7567682c207468656e206469737061746368207468652063616c6c2e002d015061796d656e743a20604465706f73697442617365602077696c6c20626520726573657276656420696620746869732069732074686520666972737420617070726f76616c2c20706c75733d01607468726573686f6c64602074696d657320604465706f736974466163746f72602e2049742069732072657475726e6564206f6e636520746869732064697370617463682068617070656e73206f723469732063616e63656c6c65642e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0055012d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e41012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f766520746869736c64697370617463682e204d6179206e6f7420626520656d7074792e59012d20606d617962655f74696d65706f696e74603a20496620746869732069732074686520666972737420617070726f76616c2c207468656e2074686973206d75737420626520604e6f6e65602e20496620697420697351016e6f742074686520666972737420617070726f76616c2c207468656e206974206d7573742062652060536f6d65602c2077697468207468652074696d65706f696e742028626c6f636b206e756d62657220616e64d47472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c207472616e73616374696f6e2e882d206063616c6c603a205468652063616c6c20746f2062652065786563757465642e001d014e4f54453a20556e6c6573732074686973206973207468652066696e616c20617070726f76616c2c20796f752077696c6c2067656e6572616c6c792077616e7420746f20757365190160617070726f76655f61735f6d756c74696020696e73746561642c2073696e6365206974206f6e6c7920726571756972657320612068617368206f66207468652063616c6c2e005901526573756c74206973206571756976616c656e7420746f20746865206469737061746368656420726573756c7420696620607468726573686f6c64602069732065786163746c79206031602e204f746865727769736555016f6e20737563636573732c20726573756c7420697320604f6b6020616e642074686520726573756c742066726f6d2074686520696e746572696f722063616c6c2c206966206974207761732065786563757465642cdc6d617920626520666f756e6420696e20746865206465706f736974656420604d756c7469736967457865637574656460206576656e742e0034232320436f6d706c6578697479502d20604f2853202b205a202b2043616c6c29602ecc2d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e3d012d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f66450120207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2e21012d204f6e652063616c6c20656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285a296020776865726520605a602069732074782d6c656e2ebc2d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602ed42d20557020746f206f6e652062696e6172792073656172636820616e6420696e736572742028604f286c6f6753202b20532960292ef82d20492f4f3a2031207265616420604f285329602c20757020746f2031206d757461746520604f285329602e20557020746f206f6e652072656d6f76652e302d204f6e65206576656e742e6c2d2054686520776569676874206f6620746865206063616c6c602e4d012d2053746f726167653a20696e7365727473206f6e65206974656d2c2076616c75652073697a6520626f756e64656420627920604d61785369676e61746f72696573602c20776974682061206465706f7369741901202074616b656e20666f7220697473206c69666574696d65206f6620604465706f73697442617365202b207468726573686f6c64202a204465706f736974466163746f72602e40617070726f76655f61735f6d756c74691401247468726573686f6c642904010c7531360001446f746865725f7369676e61746f726965735d0501445665633c543a3a4163636f756e7449643e00013c6d617962655f74696d65706f696e74e50501844f7074696f6e3c54696d65706f696e743c543a3a426c6f636b4e756d6265723e3e00012463616c6c5f686173680401205b75383b2033325d0001286d61785f7765696768742001185765696768740002785501526567697374657220617070726f76616c20666f72206120646973706174636820746f206265206d6164652066726f6d20612064657465726d696e697374696320636f6d706f73697465206163636f756e74206966f8617070726f766564206279206120746f74616c206f6620607468726573686f6c64202d203160206f6620606f746865725f7369676e61746f72696573602e002d015061796d656e743a20604465706f73697442617365602077696c6c20626520726573657276656420696620746869732069732074686520666972737420617070726f76616c2c20706c75733d01607468726573686f6c64602074696d657320604465706f736974466163746f72602e2049742069732072657475726e6564206f6e636520746869732064697370617463682068617070656e73206f723469732063616e63656c6c65642e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0055012d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e41012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f766520746869736c64697370617463682e204d6179206e6f7420626520656d7074792e59012d20606d617962655f74696d65706f696e74603a20496620746869732069732074686520666972737420617070726f76616c2c207468656e2074686973206d75737420626520604e6f6e65602e20496620697420697351016e6f742074686520666972737420617070726f76616c2c207468656e206974206d7573742062652060536f6d65602c2077697468207468652074696d65706f696e742028626c6f636b206e756d62657220616e64d47472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c207472616e73616374696f6e2ecc2d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f2062652065786563757465642e0035014e4f54453a2049662074686973206973207468652066696e616c20617070726f76616c2c20796f752077696c6c2077616e7420746f20757365206061735f6d756c74696020696e73746561642e0034232320436f6d706c6578697479242d20604f285329602ecc2d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e3d012d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f66450120207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2ebc2d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602ed42d20557020746f206f6e652062696e6172792073656172636820616e6420696e736572742028604f286c6f6753202b20532960292ef82d20492f4f3a2031207265616420604f285329602c20757020746f2031206d757461746520604f285329602e20557020746f206f6e652072656d6f76652e302d204f6e65206576656e742e4d012d2053746f726167653a20696e7365727473206f6e65206974656d2c2076616c75652073697a6520626f756e64656420627920604d61785369676e61746f72696573602c20776974682061206465706f7369741901202074616b656e20666f7220697473206c69666574696d65206f6620604465706f73697442617365202b207468726573686f6c64202a204465706f736974466163746f72602e3c63616e63656c5f61735f6d756c74691001247468726573686f6c642904010c7531360001446f746865725f7369676e61746f726965735d0501445665633c543a3a4163636f756e7449643e00012474696d65706f696e740d01016454696d65706f696e743c543a3a426c6f636b4e756d6265723e00012463616c6c5f686173680401205b75383b2033325d000354550143616e63656c2061207072652d6578697374696e672c206f6e2d676f696e67206d756c7469736967207472616e73616374696f6e2e20416e79206465706f7369742072657365727665642070726576696f75736c79c4666f722074686973206f7065726174696f6e2077696c6c20626520756e7265736572766564206f6e20737563636573732e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0055012d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e41012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f766520746869736c64697370617463682e204d6179206e6f7420626520656d7074792e5d012d206074696d65706f696e74603a205468652074696d65706f696e742028626c6f636b206e756d62657220616e64207472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c787472616e73616374696f6e20666f7220746869732064697370617463682ecc2d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f2062652065786563757465642e0034232320436f6d706c6578697479242d20604f285329602ecc2d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e3d012d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f66450120207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2ebc2d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602e302d204f6e65206576656e742e842d20492f4f3a2031207265616420604f285329602c206f6e652072656d6f76652e702d2053746f726167653a2072656d6f766573206f6e65206974656d2e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ee50504184f7074696f6e040454010d010108104e6f6e6500000010536f6d6504000d010000010000e905083870616c6c65745f636f756e63696c1043616c6c04045400013048616e6e6f756e63655f63616e6469646163791001346d656d626572736869705f696428012c543a3a4d656d62657249640001487374616b696e675f6163636f756e745f6964000130543a3a4163636f756e7449640001447265776172645f6163636f756e745f6964000130543a3a4163636f756e7449640001147374616b6518012842616c616e63653c543e0000244c5375627363726962652063616e646964617465002823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5c72656c656173655f63616e6469646163795f7374616b650401346d656d626572736869705f696428012c543a3a4d656d6265724964000124c452656c656173652063616e646964616379207374616b652074686174206973206e6f206c6f6e676572206e65656465642e002823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e4877697468647261775f63616e6469646163790401346d656d626572736869705f696428012c543a3a4d656d6265724964000224bc57697468647261772063616e64696461637920616e642072656c656173652063616e646964616379207374616b652e002823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e487365745f63616e6469646163795f6e6f74650801346d656d626572736869705f696428012c543a3a4d656d62657249640001106e6f746530011c5665633c75383e00032879015365742073686f7274206465736372697074696f6e20666f7220746865207573657227732063616e6469646163792e2043616e2062652063616c6c656420616e7974696d6520647572696e67207573657227732063616e6469646163792e002823203c7765696768743e002423232077656967687438604f20284e29602077686572653a98604e60206973207468652073697a65206f6620606e6f74656020696e206b696c6f6279746573142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e287365745f62756467657404011c62616c616e636518012842616c616e63653c543e000424605365747320746865206275646765742062616c616e63652e002823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e48706c616e5f6275646765745f726566696c6c04012c6e6578745f726566696c6c100138543a3a426c6f636b4e756d62657200052470506c616e20746865206e6578742062756467657420726566696c6c2e002823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e507365745f6275646765745f696e6372656d656e740401406275646765745f696e6372656d656e7418012842616c616e63653c543e0006247453657473207468652062756467657420726566696c6c20616d6f756e74002823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e507365745f636f756e63696c6f725f726577617264040140636f756e63696c6f725f72657761726418012842616c616e63653c543e0007248c536574732074686520636f756e63696c6f72207265776172642070657220626c6f636b002823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3c66756e64696e675f7265717565737404014066756e64696e675f7265717565737473550301dc5665633c46756e64696e6752657175657374506172616d65746572733c42616c616e63653c543e2c20543a3a4163636f756e7449643e3e000828b85472616e73666572732066756e64732066726f6d20636f756e63696c2062756467657420746f206163636f756e74002823203c7765696768743e002423232077656967687438604f20284629602077686572653a9c60466020697320746865206c656e677468206f66206066756e64696e675f726571756573747360142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e4c66756e645f636f756e63696c5f6275646765740c01246d656d6265725f696428012c4d656d62657249643c543e000118616d6f756e7418012842616c616e63653c543e000124726174696f6e616c6530011c5665633c75383e0009209046756e642074686520636f756e63696c206275646765742062792061206d656d6265722e203c7765696768743e0024232320576569676874c4604f202831296020446f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e40636f756e63696c6f725f72656d61726b080130636f756e63696c6f725f696428012c543a3a4d656d626572496400010c6d736730011c5665633c75383e000a2480436f756e63696c6f72206d616b657320612072656d61726b206d657373616765002823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e4063616e6469646174655f72656d61726b08013063616e6469646174655f696428012c543a3a4d656d626572496400010c6d736730011c5665633c75383e000b248043616e646964617465206d616b657320612072656d61726b206d657373616765002823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652eed05084470616c6c65745f7265666572656e64756d1043616c6c08045400044900011010766f7465080128636f6d6d69746d656e742c011c543a3a486173680001147374616b6518013042616c616e63654f663c543e00002494436173742061207365616c656420766f746520696e20746865207265666572656e64756d2e002823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c72657665616c5f766f746508011073616c7430011c5665633c75383e000138766f74655f6f7074696f6e5f69642801d03c5420617320636f6d6d6f6e3a3a6d656d626572736869703a3a4d656d6265727368697054797065733e3a3a4d656d626572496400012c9c52657665616c2061207365616c656420766f746520696e20746865207265666572656e64756d2e002823203c7765696768743e002423232057656967687438604f20285729602077686572653a0d012d2060576020697320746865206e756d626572206f662060696e7465726d6564696174655f77696e6e657273602073746f72656420696e207468652063757272656e7468202020206053746167653a3a3c542c20493e3a3a676574282960142d2044423ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e4872656c656173655f766f74655f7374616b650002205c52656c656173652061206c6f636b6564207374616b652e2823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e446f70745f6f75745f6f665f766f74696e67000324cc5065726d616e656e746c79206f7074206f7574206f6620766f74696e672066726f6d206120676976656e206163636f756e742e002823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652ef105084470616c6c65745f6d656d626572736869701043616c6c040454000144386275795f6d656d62657273686970040118706172616d732d0101c84275794d656d62657273686970506172616d65746572733c543a3a4163636f756e7449642c20543a3a4d656d62657249643e00002c7c4e6f6e2d6d656d626572732063616e20627579206d656d626572736869702e00203c7765696768743e002423232057656967687448604f202857202b204d29602077686572653a942d20605760206973207468652068616e646c652073697a6520696e206b696c6f62797465739c2d20604d6020697320746865206d657461646174612073697a6520696e206b696c6f6279746573142d2044423a242020202d204f2831292c23203c2f7765696768743e387570646174655f70726f66696c650c01246d656d6265725f696428012c543a3a4d656d626572496400011868616e646c653101013c4f7074696f6e3c5665633c75383e3e0001206d657461646174613101013c4f7074696f6e3c5665633c75383e3e0001300d01557064617465206d656d626572277320616c6c206f7220736f6d65206f66206e616d652c2068616e646c652c2061766174617220616e642061626f757420746578742e7c4e6f20656666656374206966206e6f206368616e676564206669656c64732e00203c7765696768743e002423232057656967687448604f202857202b204d29602077686572653a942d20605760206973207468652068616e646c652073697a6520696e206b696c6f62797465739c2d20604d6020697320746865206d657461646174612073697a6520696e206b696c6f6279746573142d2044423a242020202d204f2831292c23203c2f7765696768743e3c7570646174655f6163636f756e74730c01246d656d6265725f696428012c543a3a4d656d62657249640001406e65775f726f6f745f6163636f756e749401504f7074696f6e3c543a3a4163636f756e7449643e0001586e65775f636f6e74726f6c6c65725f6163636f756e749401504f7074696f6e3c543a3a4163636f756e7449643e00022c550155706461746573206d656d62657220726f6f74206f7220636f6e74726f6c6c6572206163636f756e74732e204e6f2065666665637420696620626f7468206e6577206163636f756e74732061726520656d7074792e00203c7765696768743e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6c7570646174655f70726f66696c655f766572696669636174696f6e0c0124776f726b65725f6964280128543a3a4163746f7249640001407461726765745f6d656d6265725f696428012c543a3a4d656d626572496400012c69735f7665726966696564980110626f6f6c000324450155706461746573206d656d6265722070726f66696c6520766572696669636174696f6e207374617475732e20526571756972657320776f726b696e672067726f7570206d656d626572206f726967696e2e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e407365745f726566657272616c5f63757404013470657263656e745f76616c75650801087538000424110155706461746573206d656d6265727368697020726566657272616c206375742070657263656e742076616c75652e20526571756972657320726f6f74206f726967696e2e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e407472616e736665725f696e76697465730c0140736f757263655f6d656d6265725f696428012c543a3a4d656d62657249640001407461726765745f6d656d6265725f696428012c543a3a4d656d62657249640001446e756d6265725f6f665f696e766974657310010c753332000524b45472616e736665727320696e76697465732066726f6d206f6e65206d656d62657220746f20616e6f746865722e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e34696e766974655f6d656d626572040118706172616d73390101d4496e766974654d656d62657273686970506172616d65746572733c543a3a4163636f756e7449642c20543a3a4d656d62657249643e00062c50496e766974652061206e6577206d656d6265722e00203c7765696768743e002423232057656967687448604f202857202b204d29602077686572653a942d20605760206973207468652068616e646c652073697a6520696e206b696c6f62797465739c2d20604d6020697320746865206d657461646174612073697a6520696e206b696c6f6279746573142d2044423a242020202d204f2831292c23203c2f7765696768743e3c676966745f6d656d62657273686970040118706172616d73410101d0476966744d656d62657273686970506172616d65746572733c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e00070c1d01476966742061206d656d62657273686970207573696e67206f776e2066756e64732e2047696674657220646f6573206e6f74206e65656420746f2062652061206d656d6265722e5d0143616e206f7074696e616c6c79206170706c792061206c6f636b206f6e206120706f7274696f6e206f66207468652066756e6473207472616e7366657272656420746f20726f6f7420616e6420636f6e74726f6c6c6572b86163636f756e74732e2047696674657220616c736f207061797320746865206d656d62657273686970206665652e507365745f6d656d626572736869705f70726963650401246e65775f707269636518013042616c616e63654f663c543e000824bc55706461746573206d656d626572736869702070726963652e20526571756972657320726f6f74206f726967696e2e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6c7365745f6c65616465725f696e7669746174696f6e5f71756f7461040140696e7669746174696f6e5f71756f746110010c753332000924d855706461746573206c656164657220696e7669746174696f6e2071756f74612e20526571756972657320726f6f74206f726967696e2e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e787365745f696e697469616c5f696e7669746174696f6e5f62616c616e636504014c6e65775f696e697469616c5f62616c616e636518013042616c616e63654f663c543e000a2439015570646174657320696e697469616c20696e7669746174696f6e2062616c616e636520666f72206120696e7669746564206d656d6265722e20526571756972657320726f6f74206f726967696e2e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e707365745f696e697469616c5f696e7669746174696f6e5f636f756e740401506e65775f696e7669746174696f6e5f636f756e7410010c753332000b2411015570646174657320696e697469616c20696e7669746174696f6e20636f756e7420666f722061206d656d6265722e20526571756972657320726f6f74206f726967696e2e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e746164645f7374616b696e675f6163636f756e745f63616e6469646174650401246d656d6265725f696428012c543a3a4d656d6265724964000c28ac416464207374616b696e67206163636f756e742063616e64696461746520666f722061206d656d6265722eb8546865206d656d62657273686970206d75737420626520636f6e6669726d6564206265666f72652075736167652e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5872656d6f76655f7374616b696e675f6163636f756e740401246d656d6265725f696428012c543a3a4d656d6265724964000d249052656d6f7665207374616b696e67206163636f756e7420666f722061206d656d6265722e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5c636f6e6669726d5f7374616b696e675f6163636f756e740801246d656d6265725f696428012c543a3a4d656d62657249640001487374616b696e675f6163636f756e745f6964000130543a3a4163636f756e744964000e24bc436f6e6669726d207374616b696e67206163636f756e742063616e64696461746520666f722061206d656d6265722e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e346d656d6265725f72656d61726b0c01246d656d6265725f696428012c543a3a4d656d626572496400010c6d736730011c5665633c75383e00011c7061796d656e74490101884f7074696f6e3c28543a3a4163636f756e7449642c20543a3a42616c616e6365293e000f24544d656d626572206d616b657320612072656d61726b00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e346372656174655f6d656d626572040118706172616d733d0101904372656174654d656d626572506172616d65746572733c543a3a4163636f756e7449643e00102c804372656174652061206d656d6265722070726f66696c6520617320726f6f742e00203c7765696768743e002423232057656967687448604f202849202b204a29602077686572653a942d20604960206973207468652068616e646c652073697a6520696e206b696c6f62797465739c2d20604a6020697320746865206d657461646174612073697a6520696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652ef505083070616c6c65745f666f72756d1043616c6c0404540001409c7570646174655f63617465676f72795f6d656d626572736869705f6f665f6d6f64657261746f720c01306d6f64657261746f725f69642801384d6f64657261746f7249643c543e00012c63617465676f72795f6964280134543a3a43617465676f727949640001246e65775f76616c7565980110626f6f6c0000240901456e61626c652061206d6f64657261746f722063616e206d6f64657261746520612063617465676f727920616e6420697473207375622063617465676f726965732e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3c6372656174655f63617465676f72790c0148706172656e745f63617465676f72795f6964350101544f7074696f6e3c543a3a43617465676f727949643e0001147469746c6530011c5665633c75383e00012c6465736372697074696f6e30011c5665633c75383e0001304c4164642061206e65772063617465676f72792e00203c7765696768743e002423232057656967687458604f202857202b2056202b205829602077686572653a6c2d20605760206973207468652063617465676f7279206465707468d42d20605660206973207468652073697a65206f66207468652063617465676f7279207469746c6520696e206b696c6f62797465732eec2d20605860206973207468652073697a65206f66207468652063617465676f7279206465736372697074696f6e20696e206b696c6f62797465732e142d2044423a242020202d204f2857292c23203c2f7765696768743e7c7570646174655f63617465676f72795f617263686976616c5f7374617475730c01146163746f725501014850726976696c656765644163746f723c543e00012c63617465676f72795f6964280134543a3a43617465676f7279496400014c6e65775f617263686976616c5f737461747573980110626f6f6c0002285855706461746520617263686976616c2073746174757300203c7765696768743e002423232057656967687438604f20285729602077686572653a6c2d20605760206973207468652063617465676f7279206465707468142d2044423a242020202d204f2857292c23203c2f7765696768743e547570646174655f63617465676f72795f7469746c650c01146163746f725501014850726976696c656765644163746f723c543e00012c63617465676f72795f6964280134543a3a43617465676f727949640001147469746c6530011c5665633c75383e00032c545570646174652063617465676f7279207469746c6500203c7765696768743e002423232057656967687448604f202857202b205629602077686572653a6c2d20605760206973207468652063617465676f7279206465707468d42d20605660206973207468652073697a65206f66207468652063617465676f7279207469746c6520696e206b696c6f62797465732e142d2044423a242020202d204f2857292c23203c2f7765696768743e6c7570646174655f63617465676f72795f6465736372697074696f6e0c01146163746f725501014850726976696c656765644163746f723c543e00012c63617465676f72795f6964280134543a3a43617465676f7279496400012c6465736372697074696f6e30011c5665633c75383e00042c6c5570646174652063617465676f7279206465736372697074696f6e00203c7765696768743e002423232057656967687438604f20285729602077686572653a6c2d20605760206973207468652063617465676f7279206465707468ec2d20605660206973207468652073697a65206f66207468652063617465676f7279206465736372697074696f6e20696e206b696c6f62797465732e142d2044423a242020202d204f2857292c23203c2f7765696768743e3c64656c6574655f63617465676f72790801146163746f725501014850726976696c656765644163746f723c543e00012c63617465676f72795f6964280134543a3a43617465676f727949640005283c44656c6574652063617465676f727900203c7765696768743e002423232057656967687438604f20285729602077686572653a6c2d20605760206973207468652063617465676f7279206465707468142d2044423a242020202d204f2857292c23203c2f7765696768743e346372656174655f746872656164100134666f72756d5f757365725f6964280138466f72756d5573657249643c543e00012c63617465676f72795f6964280134543a3a43617465676f727949640001206d6574616461746130011c5665633c75383e0001107465787430011c5665633c75383e00063074437265617465206e65772074687265616420696e2063617465676f727900203c7765696768743e002423232057656967687458604f202857202b2056202b205829602077686572653a6c2d20605760206973207468652063617465676f7279206465707468cc2d20605660206973207468652073697a65206f662074686520746872656164207469746c6520696e206b696c6f62797465732ec82d20605860206973207468652073697a65206f662074686520746872656164207465787420696e206b696c6f62797465732e142d2044423a242020202d204f2857292c23203c2f7765696768743e50656469745f7468726561645f6d65746164617461100134666f72756d5f757365725f6964280138466f72756d5573657249643c543e00012c63617465676f72795f6964280134543a3a43617465676f727949640001247468726561645f696428012c543a3a54687265616449640001306e65775f6d6574616461746130011c5665633c75383e00072c504564697420746872656164206d6574616461746100203c7765696768743e002423232057656967687448604f202857202b205629602077686572653a6c2d20605760206973207468652063617465676f7279206465707468d82d20605660206973207468652073697a65206f662074686520746872656164206d6574616461746120696e206b696c6f62797465732e142d2044423a242020202d204f2857292c23203c2f7765696768743e3464656c6574655f746872656164100134666f72756d5f757365725f6964280138466f72756d5573657249643c543e00012c63617465676f72795f6964280134543a3a43617465676f727949640001247468726561645f696428012c543a3a546872656164496400011068696465980110626f6f6c0008283444656c6574652074687265616400203c7765696768743e002423232057656967687438604f20285729602077686572653a6c2d20605760206973207468652063617465676f7279206465707468142d2044423a242020202d204f2857292c23203c2f7765696768743e5c6d6f76655f7468726561645f746f5f63617465676f72791001146163746f725501014850726976696c656765644163746f723c543e00012c63617465676f72795f6964280134543a3a43617465676f727949640001247468726561645f696428012c543a3a546872656164496400013c6e65775f63617465676f72795f6964280134543a3a43617465676f727949640009287c4d6f76652074687265616420746f20616e6f746865722063617465676f727900203c7765696768743e002423232057656967687438604f20285729602077686572653a6c2d20605760206973207468652063617465676f7279206465707468142d2044423a242020202d204f2857292c23203c2f7765696768743e3c6d6f6465726174655f7468726561641001146163746f725501014850726976696c656765644163746f723c543e00012c63617465676f72795f6964280134543a3a43617465676f727949640001247468726561645f696428012c543a3a5468726561644964000124726174696f6e616c6530011c5665633c75383e000a303c4d6f6465726174652074687265616400203c7765696768743e002423232057656967687458604f202857202b2056202b205829602077686572653a702d20605760206973207468652063617465676f72792064657074682c902d2060566020697320746865206e756d626572206f662074687265616420706f7374732cbc2d20605860206973207468652073697a65206f662074686520726174696f6e616c6520696e206b696c6f6279746573142d2044423a342020202d204f2857202b2056292c23203c2f7765696768743e206164645f706f7374140134666f72756d5f757365725f6964280138466f72756d5573657249643c543e00012c63617465676f72795f6964280134543a3a43617465676f727949640001247468726561645f696428012c543a3a54687265616449640001107465787430011c5665633c75383e0001206564697461626c65980110626f6f6c000b2c2041646420706f737400203c7765696768743e002423232057656967687448604f202857202b205629602077686572653a702d20605760206973207468652063617465676f72792064657074682ca82d20605660206973207468652073697a65206f6620746865207465787420696e206b696c6f6279746573142d2044423a242020202d204f2857292c23203c2f7765696768743e38656469745f706f73745f74657874140134666f72756d5f757365725f6964280138466f72756d5573657249643c543e00012c63617465676f72795f6964280134543a3a43617465676f727949640001247468726561645f696428012c543a3a546872656164496400011c706f73745f6964280124543a3a506f737449640001206e65775f7465787430011c5665633c75383e000c2c384564697420706f7374207465787400203c7765696768743e002423232057656967687448604f202857202b205629602077686572653a702d20605760206973207468652063617465676f72792064657074682cb82d20605660206973207468652073697a65206f6620746865206e6577207465787420696e206b696c6f6279746573142d2044423a242020202d204f2857292c23203c2f7765696768743e346d6f6465726174655f706f73741401146163746f725501014850726976696c656765644163746f723c543e00012c63617465676f72795f6964280134543a3a43617465676f727949640001247468726561645f696428012c543a3a546872656164496400011c706f73745f6964280124543a3a506f73744964000124726174696f6e616c6530011c5665633c75383e000d2c344d6f64657261746520706f737400203c7765696768743e002423232057656967687448604f202857202b205629602077686572653a702d20605760206973207468652063617465676f72792064657074682cbc2d20605660206973207468652073697a65206f662074686520726174696f6e616c6520696e206b696c6f6279746573142d2044423a242020202d204f2857292c23203c2f7765696768743e3064656c6574655f706f7374730c0134666f72756d5f757365725f6964280138466f72756d5573657249643c543e000114706f7374735d01018442547265654d61703c457874656e646564506f737449643c543e2c20626f6f6c3e000124726174696f6e616c6530011c5665633c75383e000e346444656c65746520706f73742066726f6d2073746f726167652eec596f75206e65656420746f2070726f76696465206120766563746f72206f6620706f73747320746f2064656c65746520696e2074686520666f726db428543a3a43617465676f727949642c20543a3a54687265616449642c20543a3a506f737449642c20626f6f6c292501776865726520746865206c61737420626f6f6c206973207768657468657220796f752077616e7420746f20686964652069742061706172742066726f6d2064656c6574696e67206974002423232057656967687458604f202857202b2056202b205029602077686572653a702d20605760206973207468652063617465676f72792064657074682cbc2d20605660206973207468652073697a65206f662074686520726174696f6e616c6520696e206b696c6f6279746573982d2060506020697320746865206e756d626572206f6620706f73747320746f2064656c657465142d2044423a342020202d204f2857202b2050292c23203c2f7765696768743e507365745f737469636b6965645f746872656164730c01146163746f725501014850726976696c656765644163746f723c543e00012c63617465676f72795f6964280134543a3a43617465676f72794964000130737469636b6965645f6964736901015442547265655365743c543a3a54687265616449643e000f2c8453657420737469636b696564207468726561647320666f722063617465676f727900203c7765696768743e002423232057656967687448604f202857202b205629602077686572653a702d20605760206973207468652063617465676f72792064657074682c9c2d2060566020697320746865206c656e677468206f662074686520737469636b6965645f696473142d2044423a342020202d204f2857202b2056292c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652ef905084c70616c6c65745f636f6e737469747574696f6e1043616c6c04045400010448616d656e645f636f6e737469747574696f6e040144636f6e737469747574696f6e5f7465787430011c5665633c75383e000018e453657473207468652063757272656e7420636f6e737469747574696f6e20686173682e20526571756972657320726f6f74206f726967696e2e2823203c7765696768743e11012d20436f6d706c65786974793a20604f28432960207768657265204320697320746865206c656e677468206f662074686520636f6e737469747574696f6e20746578742e342d2044622072656164733a20307c2d204462207772697465733a20312028636f6e7374616e742076616c7565292c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652efd05083470616c6c65745f626f756e74791043616c6c04045400013c346372656174655f626f756e7479080118706172616d737501016c426f756e74794372656174696f6e506172616d65746572733c543e0001206d6574616461746130011c5665633c75383e000028490143726561746573206120626f756e74792e204d657461646174612073746f72656420696e20746865207472616e73616374696f6e206c6f67206275742064697363617264656420616674657220746861742e203c7765696768743e002423232057656967687438604f20285729602077686572653aa42d2060576020697320746865205f6d657461646174612073697a6520696e206b696c6f62797465732eb02d20604d6020697320636c6f73656420636f6e7472616374206d656d626572206c697374206c656e6774682e142d2044423a842020202d204f284d2920284f283129206f6e206f70656e20636f6e7472616374292c23203c2f7765696768743e2c66756e645f626f756e74790c011866756e64657279010160426f756e74794163746f723c4d656d62657249643c543e3e000124626f756e74795f696428012c543a3a426f756e74794964000118616d6f756e7418013042616c616e63654f663c543e0001206050726f766964657320626f756e74792066756e64696e672e2823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e407465726d696e6174655f626f756e7479040124626f756e74795f696428012c543a3a426f756e74794964000224c05465726d696e61746573206120626f756e747920696e2066756e64696e672c2066756e64696e6720657870697265642c7c776f726b7375626d697373696f6e2c206a756467696e6720706572696f642e2823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e347377697463685f6f7261636c650801286e65775f6f7261636c6579010160426f756e74794163746f723c4d656d62657249643c543e3e000124626f756e74795f696428012c543a3a426f756e74794964000324904f7261636c652073776974636865732068696d73656c6620746f2061206e6577206f6e652823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e004077697468647261775f66756e64696e6708011866756e64657279010160426f756e74794163746f723c4d656d62657249643c543e3e000124626f756e74795f696428012c543a3a426f756e74794964000420c4576974686472617720626f756e74792066756e64696e672062792061206d656d626572206f72206120636f756e63696c2e2823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e4c616e6e6f756e63655f776f726b5f656e7472791001246d656d6265725f696428012c4d656d62657249643c543e000124626f756e74795f696428012c543a3a426f756e747949640001487374616b696e675f6163636f756e745f6964000130543a3a4163636f756e744964000140776f726b5f6465736372697074696f6e30011c5665633c75383e000528b0416e6e6f756e636520776f726b20656e74727920666f722061207375636365737366756c20626f756e74792e2823203c7765696768743e002423232077656967687448604f202857202b204d29602077686572653ac02d206057602069732074686520776f726b5f6465736372697074696f6e2073697a6520696e206b696c6f62797465732eb02d20604d6020697320636c6f73656420636f6e7472616374206d656d626572206c697374206c656e6774682e142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c7375626d69745f776f726b1001246d656d6265725f696428012c4d656d62657249643c543e000124626f756e74795f696428012c543a3a426f756e74794964000120656e7472795f6964280128543a3a456e7472794964000124776f726b5f6461746130011c5665633c75383e000624645375626d697420776f726b20666f72206120626f756e74792e2823203c7765696768743e00242323207765696768741c604f20284e2960a42d20604e602069732074686520776f726b5f646174612073697a6520696e206b696c6f62797465732c142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e48656e645f776f726b696e675f706572696f64040124626f756e74795f696428012c543a3a426f756e7479496400072068656e6420626f756e747920776f726b696e6720706572696f642e2823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e587375626d69745f6f7261636c655f6a7564676d656e740c0124626f756e74795f696428012c543a3a426f756e747949640001206a7564676d656e74850101a04f7261636c654a7564676d656e743c543a3a456e74727949642c2042616c616e63654f663c543e3e000124726174696f6e616c6530011c5665633c75383e00083819015375626d69747320616e206f7261636c65206a7564676d656e7420666f72206120626f756e74792c20736c617368696e672074686520656e74726965732072656a65637465642d01627920616e206172626974726172792070657263656e7461676520616e6420726577617264696e67207468652077696e6e65727320627920616e2061726269747261727920616d6f756e7498286e6f742073757270617373696e672074686520746f74616c2066756e6420616d6f756e74292823203c7765696768743e00242323207765696768744c604f20284a202b204b202b2057202b20522960942d20604a6020697320726174696f6e616c652073697a6520696e206b696c6f62797465732c61012d20604b60206973207468652073756d206f6620616c6c20616374696f6e5f6a757374696669636174696f6e2073697a65732028696e206b696c6f62797465732920696e73696465204f7261636c654a7564676d656e742cac2d20605760206973206e756d626572206f662077696e6e6572206a7564676d656e7420656e74726965732cb42d20605260206973206e756d626572206f662072656a6563746564206a7564676d656e7420656e74726965732c142d2064623a3c2020202d20604f2857202b205229602c23203c2f7765696768743e5877697468647261775f656e7472616e745f7374616b650c01246d656d6265725f696428012c4d656d62657249643c543e000124626f756e74795f696428012c543a3a426f756e74794964000120656e7472795f6964280128543a3a456e7472794964000928a4556e6c6f636b7320746865207374616b652072656c6174656420746f206120776f726b20656e747279a901416674657220746865206f7261636c65206d616b657320746865206a7564676d656e74206f722074686520636f756e63696c207465726d696e617465732074686520626f756e74792062792063616c6c696e67207465726d696e6174655f626f756e7479282e2e2e292c51016561636820776f726b65722077686f736520656e74727920686173206e6f74206265656e206a75646765642c2063616e20756e6c6f636b2074686520746f74616c697479206f66207468656972207374616b652e2823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5877697468647261775f6f7261636c655f726577617264040124626f756e74795f696428012c543a3a426f756e74794964000a2890576974687261777320746865206f7261636c652072657761726420746f206f7261636c651101496620626f756e7479206973207375636365737366756c6c792c204661696c6564206f722043616e63656c6c6564206f7261636c65206d7573742063616c6c2074686973a065787472696e73696320746f20776974686472617720746865206f7261636c65207265776172642c2823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e48636f6e7472696275746f725f72656d61726b0c012c636f6e7472696275746f7279010160426f756e74794163746f723c4d656d62657249643c543e3e000124626f756e74795f696428012c543a3a426f756e7479496400010c6d736730011c5665633c75383e000b2880426f756e747920436f6e7472696275746f72206d61646520612072656d61726b002823203c7765696768743e00242323207765696768741c604f20284e2960782d20604e60206973206d73672073697a6520696e206b696c6f6279746573142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e346f7261636c655f72656d61726b0c01186f7261636c6579010160426f756e74794163746f723c4d656d62657249643c543e3e000124626f756e74795f696428012c543a3a426f756e7479496400010c6d736730011c5665633c75383e000c286c426f756e7479204f7261636c65206d61646520612072656d61726b002823203c7765696768743e00242323207765696768741c604f20284e2960782d20604e60206973206d73672073697a6520696e206b696c6f6279746573142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e38656e7472616e745f72656d61726b100128656e7472616e745f696428012c4d656d62657249643c543e000124626f756e74795f696428012c543a3a426f756e74794964000120656e7472795f6964280128543a3a456e747279496400010c6d736730011c5665633c75383e000d288c426f756e747920456e7472616e7420576f726b6572206d61646520612072656d61726b002823203c7765696768743e00242323207765696768741c604f20284e2960782d20604e60206973206d73672073697a6520696e206b696c6f6279746573142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3863726561746f725f72656d61726b0c011c63726561746f7279010160426f756e74794163746f723c4d656d62657249643c543e3e000124626f756e74795f696428012c543a3a426f756e7479496400010c6d736730011c5665633c75383e000e286c426f756e7479204f7261636c65206d61646520612072656d61726b002823203c7765696768743e00242323207765696768741c604f20284e2960782d20604e60206973206d73672073697a6520696e206b696c6f6279746573142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e0106086070616c6c65745f6a6f7973747265616d5f7574696c6974791043616c6c0404540001105c657865637574655f7369676e616c5f70726f706f73616c0401187369676e616c30011c5665633c75383e00002871015369676e616c2070726f706f73616c2065787472696e7369632e2053686f756c6420626520757365642061732063616c6c61626c65206f626a65637420746f207061737320746f207468652060656e67696e6560206d6f64756c652e00203c7765696768743e002423232057656967687438604f20285329602077686572653ab02d20605360206973207468652073697a65206f6620746865207369676e616c20696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e80657865637574655f72756e74696d655f757067726164655f70726f706f73616c0401107761736d30011c5665633c75383e0001288c52756e74696d6520757067726164652070726f706f73616c2065787472696e7369632e050153686f756c6420626520757365642061732063616c6c61626c65206f626a65637420746f207061737320746f207468652060656e67696e6560206d6f64756c652e203c7765696768743e002423232057656967687438604f20284329602077686572653a742d2060436020697320746865206c656e677468206f6620607761736d603d01486f77657665722c207765207472656174207468697320617320612066756c6c20626c6f636b20617320606672616d655f73797374656d3a3a4d6f64756c653a3a7365745f636f64656020646f65732c23203c2f7765696768743ebd01235b776569676874203d2028543a3a426c6f636b576569676874733a3a67657428292e676574284469737061746368436c6173733a3a4f7065726174696f6e616c292e626173655f65787472696e7369632c204469737061746368436c6173733a3a4f7065726174696f6e616c295d6c7570646174655f776f726b696e675f67726f75705f6275646765740c0134776f726b696e675f67726f757099010130576f726b696e6747726f7570000118616d6f756e7418013042616c616e63654f663c543e00013062616c616e63655f6b696e649d01012c42616c616e63654b696e640002206c55706461746520776f726b696e672067726f757020627564676574203c7765696768743e0024232320576569676874c4604f202831296020446f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e4c6275726e5f6163636f756e745f746f6b656e73040118616d6f756e7418013042616c616e63654f663c543e000320784275726e7320746f6b656e20666f722063616c6c6572206163636f756e74203c7765696768743e0024232320576569676874c4604f202831296020446f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e0506083870616c6c65745f636f6e74656e741043616c6c04045400010101506372656174655f63757261746f725f67726f757008012469735f616374697665980110626f6f6c0001507065726d697373696f6e735f62795f6c6576656c5502017c4d6f6465726174696f6e5065726d697373696f6e7342794c6576656c3c543e000028a0416464206e65772063757261746f722067726f757020746f2072756e74696d652073746f7261676500203c7765696768743e002423232057656967687438604f20284129602077686572653af02d2060416020697320746865206e756d626572206f6620656e747269657320696e20607065726d697373696f6e735f62795f6c6576656c60206d6170142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e807570646174655f63757261746f725f67726f75705f7065726d697373696f6e7308014063757261746f725f67726f75705f6964280144543a3a43757261746f7247726f757049640001507065726d697373696f6e735f62795f6c6576656c5502017c4d6f6465726174696f6e5065726d697373696f6e7342794c6576656c3c543e000128ac557064617465206578697374696e672063757261746f722067726f75702773207065726d697373696f6e7300203c7765696768743e002423232057656967687438604f20284129602077686572653af02d2060416020697320746865206e756d626572206f6620656e747269657320696e20607065726d697373696f6e735f62795f6c6576656c60206d6170142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e607365745f63757261746f725f67726f75705f73746174757308014063757261746f725f67726f75705f6964280144543a3a43757261746f7247726f7570496400012469735f616374697665980110626f6f6c0002241d01536574206069735f616374697665602073746174757320666f722063757261746f722067726f757020756e64657220676976656e206063757261746f725f67726f75705f69646000203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e506164645f63757261746f725f746f5f67726f75700c014063757261746f725f67726f75705f6964280144543a3a43757261746f7247726f7570496400012863757261746f725f6964280130543a3a43757261746f72496400012c7065726d697373696f6e73bd01015c4368616e6e656c4167656e745065726d697373696f6e73000324ec4164642063757261746f7220746f2063757261746f722067726f757020756e64657220676976656e206063757261746f725f67726f75705f69646000203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6472656d6f76655f63757261746f725f66726f6d5f67726f757008014063757261746f725f67726f75705f6964280144543a3a43757261746f7247726f7570496400012863757261746f725f6964280130543a3a43757261746f724964000424a452656d6f76652063757261746f722066726f6d206120676976656e2063757261746f722067726f757000203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e386372656174655f6368616e6e656c0801346368616e6e656c5f6f776e6572e50101b04368616e6e656c4f776e65723c543a3a4d656d62657249642c20543a3a43757261746f7247726f757049643e000118706172616d73150201704368616e6e656c4372656174696f6e506172616d65746572733c543e000530203c7765696768743e002423232057656967687478604f202841202b2042202b2043202b2044202b204529602077686572653ae02d2060416020697320746865206e756d626572206f6620656e747269657320696e2060706172616d732e636f6c6c61626f7261746f727360e02d2060426020697320746865206e756d626572206f66206974656d7320696e2060706172616d732e73746f726167655f6275636b65747360f42d2060436020697320746865206e756d626572206f66206974656d7320696e2060706172616d732e646973747269627574696f6e5f6275636b6574736011012d2060446020697320746865206e756d626572206f66206974656d7320696e2060706172616d732e6173736574732e6f626a6563745f6372656174696f6e5f6c69737460c02d20604560206973207468652073697a65206f66202060706172616d732e6d6574616020696e206b696c6f6279746573142d2044423ae02020202d20604f2841202b2042202b2043202b20442960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e387570646174655f6368616e6e656c0c01146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c4964000118706172616d73410201684368616e6e656c557064617465506172616d65746572733c543e000630203c7765696768743e002423232057656967687478604f202841202b2042202b2043202b2044202b204529602077686572653ae02d2060416020697320746865206e756d626572206f6620656e747269657320696e2060706172616d732e636f6c6c61626f7261746f72736071012d2060426020697320746865206e756d626572206f66206974656d7320696e2060706172616d732e6173736574735f746f5f75706c6f61642e6f626a6563745f6372656174696f6e5f6c69737460202869662070726f766964656429e42d2060436020697320746865206e756d626572206f66206974656d7320696e2060706172616d732e6173736574735f746f5f72656d6f766560cc2d20604460206973207468652073697a65206f662060706172616d732e6e65775f6d6574616020696e206b696c6f6279746573ec2d206045602069732060706172616d732e73746f726167655f6275636b6574735f6e756d5f7769746e65737360202869662070726f766964656429142d2044423ae02020202d20604f2841202b2042202b2043202b20452960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e787570646174655f6368616e6e656c5f70726976696c6567655f6c6576656c0801286368616e6e656c5f6964280130543a3a4368616e6e656c496400014c6e65775f70726976696c6567655f6c6576656c080160543a3a4368616e6e656c50726976696c6567654c6576656c000724150145787472696e73696320666f72207570646174696e67206368616e6e656c2070726976696c656765206c6576656c20287265717569726573206c656164206163636573732900203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743ea07365745f6368616e6e656c5f7061757365645f66656174757265735f61735f6d6f64657261746f721001146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c496400014c6e65775f7061757365645f6665617475726573d901018042547265655365743c5061757361626c654368616e6e656c466561747572653e000124726174696f6e616c6530011c5665633c75383e000828c845787472696e73696320666f722070617573696e672f72652d656e61626c696e67206368616e6e656c20666561747572657300203c7765696768743e002423232057656967687438604f20284129602077686572653ab42d20604160206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3864656c6574655f6368616e6e656c1001146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c496400014c6368616e6e656c5f6261675f7769746e657373090601444368616e6e656c4261675769746e6573730001546e756d5f6f626a656374735f746f5f64656c65746528010c753634000928203c7765696768743e002423232057656967687458604f202841202b2042202b204329602077686572653a802d2060416020697320606e756d5f6f626a656374735f746f5f64656c65746560c82d2060426020697320606368616e6e656c5f6261675f7769746e6573732e73746f726167655f6275636b6574735f6e756d60dc2d2060436020697320606368616e6e656c5f6261675f7769746e6573732e646973747269627574696f6e5f6275636b6574735f6e756d60142d2044423ad02020202d20604f2841202b2042202b20432960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e8864656c6574655f6368616e6e656c5f6173736574735f61735f6d6f64657261746f721401146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c49640001406173736574735f746f5f72656d6f76656901016442547265655365743c446174614f626a65637449643c543e3e00016c73746f726167655f6275636b6574735f6e756d5f7769746e65737310010c753332000124726174696f6e616c6530011c5665633c75383e000a28203c7765696768743e002423232057656967687458604f202841202b2042202b204329602077686572653aa42d2060416020697320746865206c656e677468206f6620606173736574735f746f5f72656d6f766560cc2d20604260206973207468652076616c7565206f66206073746f726167655f6275636b6574735f6e756d5f7769746e65737360b42d20604360206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423ac02020202d20604f2841202b20422960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e6c64656c6574655f6368616e6e656c5f61735f6d6f64657261746f721401146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c496400014c6368616e6e656c5f6261675f7769746e657373090601444368616e6e656c4261675769746e6573730001546e756d5f6f626a656374735f746f5f64656c65746528010c753634000124726174696f6e616c6530011c5665633c75383e000b008c7365745f6368616e6e656c5f7669736962696c6974795f61735f6d6f64657261746f721001146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c496400012469735f68696464656e980110626f6f6c000124726174696f6e616c6530011c5665633c75383e000c28350145787472696e73696320666f722073657474696e67206368616e6e656c207669736962696c69747920737461747573202868696464656e2f76697369626c6529206279206d6f64657261746f7200203c7765696768743e002423232057656967687438604f20284129602077686572653ab42d20604160206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e306372656174655f766964656f0c01146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c4964000118706172616d7349020168566964656f4372656174696f6e506172616d65746572733c543e000d2c203c7765696768743e002423232057656967687468604f202841202b2042202b2043202b204429602077686572653a11012d2060416020697320746865206e756d626572206f66206974656d7320696e2060706172616d732e6173736574732e6f626a6563745f6372656174696f6e5f6c69737460b42d206042602069732060706172616d732e73746f726167655f6275636b6574735f6e756d5f7769746e6573736035012d2060436020697320746865206c656e677468206f66206f70656e2061756374696f6e202f20656e676c6973682061756374696f6e2077686974656c697374202869662070726f766964656429f42d20604460206973207468652073697a65206f662060706172616d732e6d6574616020696e206b696c6f6279746573202869662070726f766964656429142d2044423ad02020202d20604f2841202b2042202b20432960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e307570646174655f766964656f0c01146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f4964000118706172616d7351020160566964656f557064617465506172616d65746572733c543e000e30203c7765696768743e002423232057656967687478604f202841202b2042202b2043202b2044202b204529602077686572653a25012d2060416020697320706172616d732e6173736574735f746f5f75706c6f61642e6f626a6563745f6372656174696f6e5f6c6973742e6c656e2829202869662070726f766964656429982d2060426020697320706172616d732e6173736574735f746f5f72656d6f76652e6c656e2829ec2d206043602069732060706172616d732e73746f726167655f6275636b6574735f6e756d5f7769746e65737360202869662070726f76696465642935012d2060446020697320746865206c656e677468206f66206f70656e2061756374696f6e202f20656e676c6973682061756374696f6e2077686974656c697374202869662070726f76696465642905012d20604560206973207468652073697a65206f662060706172616d732e6e65775f6d6574616020696e206b696c6f6279746573202869662070726f766964656429142d2044423ae02020202d20604f2841202b2042202b2043202b20442960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e3064656c6574655f766964656f1001146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f49640001546e756d5f6f626a656374735f746f5f64656c65746528010c75363400016c73746f726167655f6275636b6574735f6e756d5f7769746e6573730102012c4f7074696f6e3c7533323e000f24203c7765696768743e002423232057656967687448604f202841202b204229602077686572653a782d20604160206973206e756d5f6f626a656374735f746f5f64656c657465ec2d206042602069732060706172616d732e73746f726167655f6275636b6574735f6e756d5f7769746e65737360202869662070726f766964656429142d2044423ac02020202d20604f2841202b20422960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e8064656c6574655f766964656f5f6173736574735f61735f6d6f64657261746f721401146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f496400016c73746f726167655f6275636b6574735f6e756d5f7769746e65737310010c7533320001406173736574735f746f5f72656d6f76656901016442547265655365743c446174614f626a65637449643c543e3e000124726174696f6e616c6530011c5665633c75383e001028203c7765696768743e002423232057656967687458604f202841202b2042202b204329602077686572653aa42d2060416020697320746865206c656e677468206f6620606173736574735f746f5f72656d6f766560cc2d20604260206973207468652076616c7565206f66206073746f726167655f6275636b6574735f6e756d5f7769746e65737360b42d20604360206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423ac02020202d20604f2841202b20422960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e6464656c6574655f766964656f5f61735f6d6f64657261746f721401146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f496400016c73746f726167655f6275636b6574735f6e756d5f7769746e6573730102012c4f7074696f6e3c7533323e0001546e756d5f6f626a656374735f746f5f64656c65746528010c753634000124726174696f6e616c6530011c5665633c75383e001128203c7765696768743e002423232057656967687458604f202841202b2042202b204329602077686572653ab42d20604160206973207468652076616c7565206f6620606e756d5f6f626a656374735f746f5f64656c65746560cc2d20604260206973207468652076616c7565206f66206073746f726167655f6275636b6574735f6e756d5f7769746e65737360b42d20604360206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423ac02020202d20604f2841202b20422960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e847365745f766964656f5f7669736962696c6974795f61735f6d6f64657261746f721001146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f496400012469735f68696464656e980110626f6f6c000124726174696f6e616c6530011c5665633c75383e0012282d0145787472696e73696320666f7220766964656f207669736962696c69747920737461747573202868696464656e2f76697369626c65292073657474696e67206279206d6f64657261746f7200203c7765696768743e002423232057656967687438604f20284129602077686572653ab42d20604160206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e587570646174655f6368616e6e656c5f7061796f757473080118706172616d73710201845570646174654368616e6e656c5061796f757473506172616d65746572733c543e00014075706c6f616465725f6163636f756e74000130543a3a4163636f756e74496400132458557064617465206368616e6e656c207061796f75747300203c7765696768743e002423232057656967687438604f20283129602077686572653a142d2044423a182d204f2831292c23203c2f7765696768743e50636c61696d5f6368616e6e656c5f7265776172640c01146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e00011470726f6f660d0601505665633c50726f6f66456c656d656e743c543e3e0001106974656d1906013850756c6c5061796d656e743c543e001428a0436c61696d2072657761726420696e204a4f592066726f6d206368616e6e656c206163636f756e7400203c7765696768743e002423232057656967687438604f20284829602077686572653ac82d2060486020697320746865206c656e676874206f66207468652070726f7669646564206d65726b6c65206070726f6f6660142d2044423a242020202d204f2831292c23203c2f7765696768743e7477697468647261775f66726f6d5f6368616e6e656c5f62616c616e63650c01146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c4964000118616d6f756e7418013042616c616e63654f663c543e001524845769746864726177204a4f592066726f6d206368616e6e656c206163636f756e7400203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e7c7570646174655f6368616e6e656c5f73746174655f626c6f61745f626f6e640401706e65775f6368616e6e656c5f73746174655f626c6f61745f626f6e6418013042616c616e63654f663c543e0016289c55706461746573206368616e6e656c20737461746520626c6f617420626f6e642076616c75652e7c4f6e6c79206c6561642063616e2075706c6f616420746869732076616c756500203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e747570646174655f766964656f5f73746174655f626c6f61745f626f6e640401686e65775f766964656f5f73746174655f626c6f61745f626f6e6418013042616c616e63654f663c543e001728945570646174657320766964656f20737461746520626c6f617420626f6e642076616c75652e7c4f6e6c79206c6561642063616e2075706c6f616420746869732076616c756500203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e84636c61696d5f616e645f77697468647261775f6368616e6e656c5f7265776172640c01146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e00011470726f6f660d0601505665633c50726f6f66456c656d656e743c543e3e0001106974656d1906013850756c6c5061796d656e743c543e001828d4436c61696d20616e642077697468647261772072657761726420696e204a4f592066726f6d206368616e6e656c206163636f756e7400203c7765696768743e002423232057656967687438604f20284829602077686572653ac82d2060486020697320746865206c656e676874206f66207468652070726f7669646564206d65726b6c65206070726f6f6660142d2044423a242020202d204f2831292c23203c2f7765696768743e2469737375655f6e66740c01146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f4964000118706172616d73090201604e667449737375616e6365506172616d65746572733c543e001930244973737565204e465400203c7765696768743e00242323205765696768742c604f202857202b20422960142d2044423a242020202d204f2857291877686572653a19012020202d2057203a206d656d6265722077686974656c697374206c656e67746820696e2063617365206e667420696e697469616c207374617475732069732061756374696f6ec02020202d2042203a2073697a65206f66206d6574616461746120706172616d6574657220696e206b696c6f62797465732c23203c2f7765696768743e2c64657374726f795f6e66740801146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f4964001a242c44657374726f79204e465400203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e4873746172745f6f70656e5f61756374696f6e0c01206f776e65725f6964a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f496400013861756374696f6e5f706172616d73050201504f70656e41756374696f6e506172616d733c543e001b2470537461727420766964656f206e6674206f70656e2061756374696f6e203c7765696768743e002423232057656967687438604f20285729602077686572653a742d2057203a206d656d6265722077686974656c697374206c656e677468142d2044423a242020202d204f2857292c23203c2f7765696768743e5473746172745f656e676c6973685f61756374696f6e0c01206f776e65725f6964a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f496400013861756374696f6e5f706172616d73fd01015c456e676c69736841756374696f6e506172616d733c543e001c247c537461727420766964656f206e667420656e676c6973682061756374696f6e203c7765696768743e002423232057656967687438604f20285729602077686572653a882d2057203a2077686974656c697374206d656d626572206c697374206c656e677468142d2044423a242020202d204f2857292c23203c2f7765696768743e5863616e63656c5f656e676c6973685f61756374696f6e0801206f776e65725f6964a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f4964001d208043616e63656c20766964656f206e667420656e676c6973682061756374696f6e203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e4c63616e63656c5f6f70656e5f61756374696f6e0801206f776e65725f6964a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f4964001e207443616e63656c20766964656f206e6674206f70656e2061756374696f6e203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e3063616e63656c5f6f666665720801206f776e65725f6964a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f4964001f244043616e63656c204e6674206f6666657200203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e3863616e63656c5f6275795f6e6f770801206f776e65725f6964a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f49640020245443616e63656c204e66742073656c6c206f7264657200203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f283129243c2f7765696768743e507570646174655f6275795f6e6f775f70726963650c01206f776e65725f6964a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f49640001246e65775f707269636518013042616c616e63654f663c543e0021246055706461746520427579206e6f77206e667420707269636500203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e546d616b655f6f70656e5f61756374696f6e5f6269640c01387061727469636970616e745f696428012c543a3a4d656d6265724964000120766964656f5f6964280128543a3a566964656f49640001286269645f616d6f756e7418013042616c616e63654f663c543e002220404d616b652061756374696f6e20626964203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e606d616b655f656e676c6973685f61756374696f6e5f6269640c01387061727469636970616e745f696428012c543a3a4d656d6265724964000120766964656f5f6964280128543a3a566964656f49640001286269645f616d6f756e7418013042616c616e63654f663c543e002320604d616b6520656e676c6973682061756374696f6e20626964203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e5c63616e63656c5f6f70656e5f61756374696f6e5f6269640801387061727469636970616e745f696428012c543a3a4d656d6265724964000120766964656f5f6964280128543a3a566964656f49640024205c43616e63656c206f70656e2061756374696f6e20626964203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e58736574746c655f656e676c6973685f61756374696f6e040120766964656f5f6964280128543a3a566964656f496400252464436c61696d20776f6e20656e676c6973682061756374696f6e5c43616e2062652063616c6c656420627920616e796f6e65203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e607069636b5f6f70656e5f61756374696f6e5f77696e6e65721001206f776e65725f6964a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f496400012477696e6e65725f696428012c543a3a4d656d6265724964000118636f6d6d697418013042616c616e63654f663c543e0026245c416363657074206f70656e2061756374696f6e206269648c53686f756c64206f6e6c792062652063616c6c65642062792061756374696f6e656572203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e246f666665725f6e6674100120766964656f5f6964280128543a3a566964656f49640001206f776e65725f6964a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000108746f28012c543a3a4d656d62657249640001147072696365450101504f7074696f6e3c42616c616e63654f663c543e3e002724244f66666572204e667400203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e38736c696e675f6e66745f6261636b080120766964656f5f6964280128543a3a566964656f49640001206f776e65725f6964a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e002824c452657475726e204e6674206261636b20746f20746865206f726967696e616c20617274697374206174206e6f20636f737400203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e546163636570745f696e636f6d696e675f6f66666572080120766964656f5f6964280128543a3a566964656f49640001347769746e6573735f7072696365450101a04f7074696f6e3c3c542061732062616c616e6365733a3a436f6e6669673e3a3a42616c616e63653e0029246441636365707420696e636f6d696e67204e6674206f6666657200203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e2073656c6c5f6e66740c0120766964656f5f6964280128543a3a566964656f49640001206f776e65725f6964a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000114707269636518013042616c616e63654f663c543e002a202053656c6c204e6674203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e1c6275795f6e66740c0120766964656f5f6964280128543a3a566964656f49640001387061727469636970616e745f696428012c543a3a4d656d62657249640001347769746e6573735f707269636518013042616c616e63654f663c543e002b241c427579204e667400203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e44746f67676c655f6e66745f6c696d69747304011c656e61626c6564980110626f6f6c002c20dc4f6e6c7920436f756e63696c2063616e20746f67676c65206e66742069737375616e6365206c696d69747320636f6e73747261696e7473203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e506368616e6e656c5f6f776e65725f72656d61726b0801286368616e6e656c5f6964280130543a3a4368616e6e656c496400010c6d736730011c5665633c75383e002d28504368616e6e656c206f776e65722072656d61726b203c7765696768743e00242323205765696768741c604f2028422960142d2044423a242020202d204f2831291877686572653a8c2d204220697320746865206b696c6f62797465206c656e676874206f6620606d7367602c23203c2f7765696768743e506368616e6e656c5f6167656e745f72656d61726b0c01146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c496400010c6d736730011c5665633c75383e002e286c4368616e6e656c20636f6c6c61626f7261746f722072656d61726b203c7765696768743e00242323205765696768741c604f2028422960142d2044423a242020202d204f2831291877686572653a8420202d2042206973207468652062797465206c656e676874206f6620606d7367602c23203c2f7765696768743e406e66745f6f776e65725f72656d61726b0c01146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f496400010c6d736730011c5665633c75383e002f28404e4654206f776e65722072656d61726b203c7765696768743e00242323205765696768741c604f2028422960142d2044423a2020202d204f2831291877686572653a8420202d2042206973207468652062797465206c656e676874206f6620606d7367602c23203c2f7765696768743e6c696e697469616c697a655f6368616e6e656c5f7472616e736665720c01286368616e6e656c5f6964280130543a3a4368616e6e656c49640001146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e00013c7472616e736665725f706172616d731d06016c496e69745472616e73666572506172616d65746572734f663c543e003028dc53746172742061206368616e6e656c207472616e736665722077697468207370656369666965642063686172616374657269737469637300203c7765696768743e002423232057656967687438604f20284129602077686572653a25012d2060416020697320746865206e756d626572206f6620656e747269657320696e20607472616e736665725f706172616d732e6e65775f636f6c6c61626f7261746f727360206d6170142d2044423aa82020202d204f284129202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e5c63616e63656c5f6368616e6e656c5f7472616e736665720801286368616e6e656c5f6964280130543a3a4368616e6e656c49640001146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0031245c63616e63656c206368616e6e656c207472616e7366657200203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5c6163636570745f6368616e6e656c5f7472616e736665720801286368616e6e656c5f6964280130543a3a4368616e6e656c4964000144636f6d6d69746d656e745f706172616d736d0201785472616e73666572436f6d6d69746d656e745769746e6573734f663c543e00322c6441636365707473206368616e6e656c207472616e736665722e310160636f6d6d69746d656e745f706172616d736020697320726571756972656420746f2070726576656e74206368616e67696e6720746865207472616e7366657220636f6e646974696f6e732e00203c7765696768743e002423232057656967687438604f20284129602077686572653a2d012d2060416020697320746865206e756d626572206f6620656e747269657320696e2060636f6d6d69746d656e745f706172616d732e6e65775f636f6c6c61626f7261746f727360206d6170142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5c7570646174655f676c6f62616c5f6e66745f6c696d69740801406e66745f6c696d69745f706572696f64890201384e66744c696d6974506572696f640001146c696d697428010c753634003320605570646174657320676c6f62616c204e4654206c696d6974203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e607570646174655f6368616e6e656c5f6e66745f6c696d69741001146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001406e66745f6c696d69745f706572696f64890201384e66744c696d6974506572696f640001286368616e6e656c5f6964280130543a3a4368616e6e656c49640001146c696d697428010c7536340034207055706461746573206368616e6e656c2773204e4654206c696d69742e203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e4c69737375655f63726561746f725f746f6b656e0c01146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c4964000118706172616d73c9020170546f6b656e49737375616e6365506172616d65746572734f663c543e0035284c49737375652063726561746f7220746f6b656e00203c7765696768743e002423232057656967687438604f20284129602077686572653a05012d2060416020697320746865206e756d626572206f6620656e747269657320696e2060706172616d732e696e697469616c5f616c6c6f636174696f6e60206d6170142d2044423ab02020202d20604f28412960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e5c696e69745f63726561746f725f746f6b656e5f73616c650c01146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c4964000118706172616d7321060150546f6b656e53616c65506172616d734f663c543e00362874496e697469616c697a652063726561746f7220746f6b656e2073616c6500203c7765696768743e002423232057656967687438604f20284129602077686572653a29012d20604160206973207468652073697a65206f662060706172616d732e6d657461646174616020696e206b696c6f627974657320286f722030206966206e6f742070726f766964656429142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e887570646174655f7570636f6d696e675f63726561746f725f746f6b656e5f73616c651001146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c496400013c6e65775f73746172745f626c6f636b010201584f7074696f6e3c543a3a426c6f636b4e756d6265723e0001306e65775f6475726174696f6e010201584f7074696f6e3c543a3a426c6f636b4e756d6265723e00372488557064617465207570636f6d696e672063726561746f7220746f6b656e2073616c6500203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e7463726561746f725f746f6b656e5f6973737565725f7472616e736665721001146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c496400011c6f757470757473250601645472616e73666572735769746856657374696e674f663c543e0001206d6574616461746130011c5665633c75383e00382cc8506572666f726d207472616e73666572206f6620746f6b656e732061732063726561746f7220746f6b656e2069737375657200203c7765696768743e002423232057656967687448604f202841202b204229602077686572653aac2d2060416020697320746865206e756d626572206f6620656e747269657320696e20606f75747075747360c02d20604260206973207468652073697a65206f662074686520606d657461646174616020696e206b696c6f6279746573142d2044423ab02020202d20604f28412960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e846d616b655f63726561746f725f746f6b656e5f7065726d697373696f6e6c6573730801146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c4964003924ac4d616b65206368616e6e656c27732063726561746f7220746f6b656e207065726d697373696f6e6c65737300203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e987265647563655f63726561746f725f746f6b656e5f706174726f6e6167655f726174655f746f0c01146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c496400012c7461726765745f72617465f9020128596561726c7952617465003a24f0526564756365206368616e6e656c27732063726561746f7220746f6b656e20706174726f6e616765207261746520746f20676976656e2076616c756500203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e90636c61696d5f63726561746f725f746f6b656e5f706174726f6e6167655f6372656469740801146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c4964003b24b8436c61696d206368616e6e656c27732063726561746f7220746f6b656e20706174726f6e6167652063726564697400203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e4c69737375655f726576656e75655f73706c69741001146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c49640001147374617274010201584f7074696f6e3c543a3a426c6f636b4e756d6265723e0001206475726174696f6e100138543a3a426c6f636b4e756d626572003c2484497373756520726576656e75652073706c697420666f722061206368616e6e656c00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5866696e616c697a655f726576656e75655f73706c69740801146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c4964003d247c46696e616c697a6520616e20656e64656420726576656e75652073706c697400203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6c66696e616c697a655f63726561746f725f746f6b656e5f73616c650801146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c4964003e249046696e616c697a6520616e20656e6465642063726561746f7220746f6b656e2073616c6500203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e54646569737375655f63726561746f725f746f6b656e0801146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c4964003f247c44656973737565206368616e6e656c27732063726561746f7220746f6b656e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e09060c3870616c6c65745f636f6e74656e74147479706573444368616e6e656c4261675769746e657373000008014c73746f726167655f6275636b6574735f6e756d10010c753332000160646973747269627574696f6e5f6275636b6574735f6e756d10010c75333200000d0600000211060011060c3470616c6c65745f636f6d6d6f6e2c6d65726b6c655f747265654850726f6f66456c656d656e745265636f7264081048617368012c105369646501150600080110686173682c011048617368000110736964651506011053696465000015060c3470616c6c65745f636f6d6d6f6e2c6d65726b6c655f747265651053696465000108104c6566740000001452696768740001000019060c3870616c6c65745f636f6e74656e741474797065734850756c6c5061796d656e74456c656d656e740c244368616e6e656c496401281c42616c616e636501181048617368012c000c01286368616e6e656c5f69642801244368616e6e656c496400016063756d756c61746976655f7265776172645f6561726e656418011c42616c616e6365000118726561736f6e2c01104861736800001d060c3870616c6c65745f636f6e74656e7414747970657358496e69745472616e73666572506172616d65746572730c204d656d626572496401283843757261746f7247726f7570496401281c42616c616e63650118000c01446e65775f636f6c6c61626f7261746f72732d0201ac42547265654d61703c4d656d62657249642c204368616e6e656c4167656e745065726d697373696f6e733e000114707269636518011c42616c616e63650001246e65775f6f776e6572e50101984368616e6e656c4f776e65723c4d656d62657249642c2043757261746f7247726f757049643e000021060c5070616c6c65745f70726f6a6563745f746f6b656e1474797065733c546f6b656e53616c65506172616d7310284a6f7942616c616e636501181c42616c616e636501182c426c6f636b4e756d62657201105456657374696e675363686564756c65506172616d7301d102001c0128756e69745f70726963651801284a6f7942616c616e636500015075707065725f626f756e645f7175616e7469747918011c42616c616e63650001247374617274735f61740102014c4f7074696f6e3c426c6f636b4e756d6265723e0001206475726174696f6e10012c426c6f636b4e756d62657200015c76657374696e675f7363686564756c655f706172616d73d90201744f7074696f6e3c56657374696e675363686564756c65506172616d733e0001386361705f7065725f6d656d6265724501013c4f7074696f6e3c42616c616e63653e0001206d657461646174613101013c4f7074696f6e3c5665633c75383e3e000025060c5070616c6c65745f70726f6a6563745f746f6b656e147479706573245472616e736665727308204d656d626572496401281c5061796d656e740109030004002906016c42547265654d61703c4d656d62657249642c205061796d656e743e00002906042042547265654d617008044b012804560109030004002d060000002d06000002310600310600000408280903003506083870616c6c65745f73746f726167651043616c6c04045400018c5464656c6574655f73746f726167655f6275636b657404014473746f726167655f6275636b65745f6964280148543a3a53746f726167654275636b657449640000201d0144656c6574652073746f72616765206275636b65742e204d75737420626520656d7074792e2053746f72616765206f70657261746f72206d757374206265206d697373696e672e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e7c7570646174655f75706c6f6164696e675f626c6f636b65645f7374617475730401286e65775f737461747573980110626f6f6c000120785570646174657320676c6f62616c2075706c6f6164696e6720666c61672e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e507570646174655f646174615f73697a655f6665650401446e65775f646174615f73697a655f66656518013042616c616e63654f663c543e000220cc557064617465732073697a652d62617365642070726963696e67206f66206e6577206f626a656374732075706c6f616465642e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e907570646174655f73746f726167655f6275636b6574735f7065725f6261675f6c696d69740401246e65775f6c696d697410010c753332000320bc55706461746573202253746f72616765206275636b657473207065722062616722206e756d626572206c696d69742e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743ea47570646174655f73746f726167655f6275636b6574735f766f75636865725f6d61785f6c696d6974730801406e65775f6f626a656374735f73697a6528010c7536340001486e65775f6f626a656374735f6e756d62657228010c753634000420b455706461746573202253746f72616765206275636b65747320766f7563686572206d6178206c696d697473222e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e8c7570646174655f646174615f6f626a6563745f73746174655f626c6f61745f626f6e6404014073746174655f626c6f61745f626f6e6418013042616c616e63654f663c543e000520ac557064617465732064617461206f626a65637420737461746520626c6f617420626f6e642076616c75652e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743efc7570646174655f6e756d6265725f6f665f73746f726167655f6275636b6574735f696e5f64796e616d69635f6261675f6372656174696f6e5f706f6c69637908014064796e616d69635f6261675f74797065b102013844796e616d6963426167547970650001646e756d6265725f6f665f73746f726167655f6275636b65747310010c7533320006202d01557064617465206e756d626572206f662073746f72616765206275636b657473207573656420696e20676976656e2064796e616d696320626167206372656174696f6e20706f6c6963792e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e407570646174655f626c61636b6c69737408013472656d6f76655f686173686573a502014442547265655365743c5665633c75383e3e0001286164645f686173686573a502014442547265655365743c5665633c75383e3e000728bc41646420616e642072656d6f76652068617368657320746f207468652063757272656e7420626c61636b6c6973742e203c7765696768743e002423232057656967687448604f202857202b205629602077686572653abc2d2060576020697320746865206e756d626572206f66206974656d7320696e206072656d6f76655f68617368657360b02d2060566020697320746865206e756d626572206f66206974656d7320696e20606164645f68617368657360142d2044423ab02020202d20604f28572960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e546372656174655f73746f726167655f6275636b6574100134696e766974655f776f726b65723501014c4f7074696f6e3c576f726b657249643c543e3e000148616363657074696e675f6e65775f62616773980110626f6f6c00012873697a655f6c696d697428010c7536340001346f626a656374735f6c696d697428010c753634000820584372656174652073746f72616765206275636b65742e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e787570646174655f73746f726167655f6275636b6574735f666f725f6261670c01186261675f69649502012042616749643c543e00012c6164645f6275636b6574736901017042547265655365743c543a3a53746f726167654275636b657449643e00013872656d6f76655f6275636b6574736901017042547265655365743c543a3a53746f726167654275636b657449643e00092888557064617465732073746f72616765206275636b65747320666f722061206261672e203c7765696768743e002423232057656967687448604f202857202b205629602077686572653ab42d2060576020697320746865206e756d626572206f66206974656d7320696e20606164645f6275636b65747360c02d2060566020697320746865206e756d626572206f66206974656d7320696e206072656d6f76655f6275636b65747360142d2044423ac02020202d20604f2856202b20572960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e9463616e63656c5f73746f726167655f6275636b65745f6f70657261746f725f696e7669746504014473746f726167655f6275636b65745f6964280148543a3a53746f726167654275636b65744964000a20110143616e63656c2070656e64696e672073746f72616765206275636b657420696e766974652e20416e20696e7669746174696f6e206d7573742062652070656e64696e672e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e78696e766974655f73746f726167655f6275636b65745f6f70657261746f7208014473746f726167655f6275636b65745f6964280148543a3a53746f726167654275636b6574496400012c6f70657261746f725f696428012c576f726b657249643c543e000b20c0496e766974652073746f72616765206275636b6574206f70657261746f722e204d757374206265206d697373696e672e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e7872656d6f76655f73746f726167655f6275636b65745f6f70657261746f7204014473746f726167655f6275636b65745f6964280148543a3a53746f726167654275636b65744964000c208052656d6f7665732073746f72616765206275636b6574206f70657261746f722e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e707570646174655f73746f726167655f6275636b65745f73746174757308014473746f726167655f6275636b65745f6964280148543a3a53746f726167654275636b65744964000148616363657074696e675f6e65775f62616773980110626f6f6c000d20dc5570646174652077686574686572206e6577206261677320617265206265696e6720616363657074656420666f722073746f726167652e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e847365745f73746f726167655f6275636b65745f766f75636865725f6c696d6974730c014473746f726167655f6275636b65745f6964280148543a3a53746f726167654275636b657449640001586e65775f6f626a656374735f73697a655f6c696d697428010c7536340001606e65775f6f626a656374735f6e756d6265725f6c696d697428010c753634000e208c536574732073746f72616765206275636b657420766f7563686572206c696d6974732e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e806163636570745f73746f726167655f6275636b65745f696e7669746174696f6e0c0124776f726b65725f696428012c576f726b657249643c543e00014473746f726167655f6275636b65745f6964280148543a3a53746f726167654275636b657449640001547472616e736163746f725f6163636f756e745f6964000130543a3a4163636f756e744964000f285d01416363657074207468652073746f72616765206275636b657420696e7669746174696f6e2e20416e20696e7669746174696f6e206d757374206d617463682074686520776f726b65725f696420706172616d657465722e59014974206163636570747320616e206164646974696f6e616c206163636f756e7420494420287472616e736163746f722920666f7220616363657074696e672064617461206f626a6563747320746f2070726576656e74747472616e73616374696f6e206e6f6e636520636f6c6c6973696f6e732e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e747365745f73746f726167655f6f70657261746f725f6d657461646174610c0124776f726b65725f696428012c576f726b657249643c543e00014473746f726167655f6275636b65745f6964280148543a3a53746f726167654275636b657449640001206d6574616461746130011c5665633c75383e001024dc536574732073746f72616765206f70657261746f72206d65746164617461202865672e3a2073746f72616765206e6f64652055524c292e203c7765696768743e002423232057656967687438604f20285729602077686572653aa02d206057602069732073697a65206f6620606d657461646174616020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6c6163636570745f70656e64696e675f646174615f6f626a65637473100124776f726b65725f696428012c576f726b657249643c543e00014473746f726167655f6275636b65745f6964280148543a3a53746f726167654275636b657449640001186261675f69649502012042616749643c543e000130646174615f6f626a656374736901016442547265655365743c543a3a446174614f626a65637449643e0011246501412073746f726167652070726f7669646572207369676e616c732074686174207468652064617461206f626a65637420776173207375636365737366756c6c792075706c6f6164656420746f206974732073746f726167652e203c7765696768743e00242323205765696768743c604f2028572029602077686572653ab82d2060576020697320746865206e756d626572206f66206974656d7320696e2060646174615f6f626a6563747360142d2044423ab02020202d20604f28572960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e846372656174655f646973747269627574696f6e5f6275636b65745f66616d696c7900122090437265617465206120646973747269627574696f6e206275636b65742066616d696c792e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e8464656c6574655f646973747269627574696f6e5f6275636b65745f66616d696c7904012466616d696c795f6964280174543a3a446973747269627574696f6e4275636b657446616d696c7949640013209444656c65746573206120646973747269627574696f6e206275636b65742066616d696c792e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e686372656174655f646973747269627574696f6e5f6275636b657408012466616d696c795f6964280174543a3a446973747269627574696f6e4275636b657446616d696c794964000148616363657074696e675f6e65775f62616773980110626f6f6c00142074437265617465206120646973747269627574696f6e206275636b65742e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e847570646174655f646973747269627574696f6e5f6275636b65745f7374617475730801246275636b65745f69642502015c446973747269627574696f6e4275636b657449643c543e000148616363657074696e675f6e65775f62616773980110626f6f6c001520d855706461746573206120646973747269627574696f6e206275636b6574202761636365707473206e657720626167732720666c61672e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6864656c6574655f646973747269627574696f6e5f6275636b65740401246275636b65745f69642502015c446973747269627574696f6e4275636b657449643c543e001620a844656c65746520646973747269627574696f6e206275636b65742e204d75737420626520656d7074792e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e8c7570646174655f646973747269627574696f6e5f6275636b6574735f666f725f6261671001186261675f69649502012042616749643c543e00012466616d696c795f6964280174543a3a446973747269627574696f6e4275636b657446616d696c79496400014c6164645f6275636b6574735f696e64696365736901019042547265655365743c543a3a446973747269627574696f6e4275636b6574496e6465783e00015872656d6f76655f6275636b6574735f696e64696365736901019042547265655365743c543a3a446973747269627574696f6e4275636b6574496e6465783e0017289c5570646174657320646973747269627574696f6e206275636b65747320666f722061206261672e203c7765696768743e002423232057656967687448604f202857202b205629602077686572653ad42d2060576020697320746865206e756d626572206f66206974656d7320696e20606164645f6275636b6574735f696e646963657360e02d2060566020697320746865206e756d626572206f66206974656d7320696e206072656d6f76655f6275636b6574735f696e646963657360142d2044423ac02020202d20604f2856202b20572960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743ea47570646174655f646973747269627574696f6e5f6275636b6574735f7065725f6261675f6c696d69740401246e65775f6c696d697410010c753332001820d0557064617465732022446973747269627574696f6e206275636b657473207065722062616722206e756d626572206c696d69742e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e7c7570646174655f646973747269627574696f6e5f6275636b65745f6d6f64650801246275636b65745f69642502015c446973747269627574696f6e4275636b657449643c543e000130646973747269627574696e67980110626f6f6c001920d8557064617465732027646973747269627574696e672720666c616720666f722074686520646973747269627574696e6720666c61672e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743eb87570646174655f66616d696c6965735f696e5f64796e616d69635f6261675f6372656174696f6e5f706f6c69637908014064796e616d69635f6261675f74797065b102013844796e616d69634261675479706500012066616d696c696573b50201b042547265654d61703c543a3a446973747269627574696f6e4275636b657446616d696c7949642c207533323e001a283d01557064617465206e756d626572206f66206469737472696275746564206275636b657473207573656420696e20676976656e2064796e616d696320626167206372656174696f6e20706f6c6963792e9c5570646174657320646973747269627574696f6e206275636b65747320666f722061206261672e203c7765696768743e002423232057656967687438604f20285729602077686572653aa82d2060576020697320746865206e756d626572206f66206974656d7320696e206066616d696c69657360142d2044423ab02020202d20604f28572960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e8c696e766974655f646973747269627574696f6e5f6275636b65745f6f70657261746f720801246275636b65745f69642502015c446973747269627574696f6e4275636b657449643c543e0001486f70657261746f725f776f726b65725f696428012c576f726b657249643c543e001b2090496e7669746520616e206f70657261746f722e204d757374206265206d697373696e672e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743ea863616e63656c5f646973747269627574696f6e5f6275636b65745f6f70657261746f725f696e766974650801246275636b65745f69642502015c446973747269627574696f6e4275636b657449643c543e0001486f70657261746f725f776f726b65725f696428012c576f726b657249643c543e001c209c43616e63656c2070656e64696e6720696e766974652e204d7573742062652070656e64696e672e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e8c72656d6f76655f646973747269627574696f6e5f6275636b65745f6f70657261746f720801246275636b65745f69642502015c446973747269627574696f6e4275636b657449643c543e0001486f70657261746f725f776f726b65725f696428012c576f726b657249643c543e001d209452656d6f76657320646973747269627574696f6e206275636b6574206f70657261746f722e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e9c7365745f646973747269627574696f6e5f6275636b65745f66616d696c795f6d6574616461746108012466616d696c795f6964280174543a3a446973747269627574696f6e4275636b657446616d696c7949640001206d6574616461746130011c5665633c75383e001e24a053657420646973747269627574696f6e206275636b65742066616d696c79206d657461646174612e203c7765696768743e002423232057656967687438604f20285729602077686572653aa02d206057602069732073697a65206f6620606d657461646174616020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e946163636570745f646973747269627574696f6e5f6275636b65745f696e7669746174696f6e080124776f726b65725f696428012c576f726b657249643c543e0001246275636b65745f69642502015c446973747269627574696f6e4275636b657449643c543e001f20584163636570742070656e64696e6720696e766974652e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e887365745f646973747269627574696f6e5f6f70657261746f725f6d657461646174610c0124776f726b65725f696428012c576f726b657249643c543e0001246275636b65745f69642502015c446973747269627574696f6e4275636b657449643c543e0001206d6574616461746130011c5665633c75383e002024fc53657420646973747269627574696f6e206f70657261746f72206d6574616461746120666f722074686520646973747269627574696f6e206275636b65742e203c7765696768743e002423232057656967687438604f20285729602077686572653aa02d206057602069732073697a65206f6620606d657461646174616020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5c73746f726167655f6f70657261746f725f72656d61726b0c0124776f726b65725f696428012c576f726b657249643c543e00014473746f726167655f6275636b65745f6964280148543a3a53746f726167654275636b6574496400010c6d736730011c5665633c75383e0021289c4465706f73697420612053746f726167654f70657261746f7252656d61726b6564206576656e7474636f6e7461696e696e6720612067656e65726963206d6573736167652e203c7765696768743e002423232057656967687438604f20285729602077686572653a9c2d206057602069732073697a65206f6620606d6573736167656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e70646973747269627574696f6e5f6f70657261746f725f72656d61726b0c0124776f726b65725f696428012c576f726b657249643c543e000158646973747269627574696f6e5f6275636b65745f69642502015c446973747269627574696f6e4275636b657449643c543e00010c6d736730011c5665633c75383e0022249c43726561746520612064796e616d6963206261672e20446576656c6f706d656e74206d6f64652e203c7765696768743e002423232057656967687438604f20285729602077686572653a9c2d206057602069732073697a65206f6620606d6573736167656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e3906085070616c6c65745f70726f6a6563745f746f6b656e1043616c6c04045400011c207472616e736665721001347372635f6d656d6265725f696428012c543a3a4d656d6265724964000120746f6b656e5f6964280128543a3a546f6b656e496400011c6f7574707574733d0601385472616e73666572734f663c543e0001206d6574616461746130011c5665633c75383e0000685501416c6c6f7720746f207472616e736665722066726f6d20607372635f6d656d6265725f696460206163636f756e7420746f2074686520766172696f757320606f757470757473602062656e6566696369617269657364696e207468652073706563696669656420616d6f756e74732e0038507265636f6e646974696f6e733ae82d206f726967696e207369676e6572206d75737420626520607372635f6d656d6265725f69646020636f6e74726f6c6c6572206163636f756e74842d20746f6b656e2062792060746f6b656e5f696460206d75737420657869737473d82d206163636f756e74206f6620607372635f6d656d6265725f696460206d75737420657869737420666f722060746f6b656e5f69646041012d2073656e646572206d757374206861766520656e6f756768204a4f597320746f20636f7665722074686520746f74616c20626c6f617420626f6e6420726571756972656420696e2063617365206f6678202064657374696e6174696f6e287329206e6f74206578697374696e672e29012d20736f75726365206163636f756e74206d757374206861766520656e6f75676820746f6b656e2066756e647320746f20636f76657220616c6c20746865207472616e7366657228732941012d20606f75747075747360206d7573742064657369676e617465206578697374696e672064657374696e6174696f6e28732920666f7220225065726d697373696f6e656422207472616e73666572732e3c506f7374636f6e646974696f6e733ae82d20736f75726365206163636f756e74277320746f6b656e7320616d6f756e74206973206465637265617365642062792060616d6f756e74602e49012d20746f74616c20626c6f617420626f6e64207472616e736665727265642066726f6d2073656e6465722773204a4f592062616c616e636520696e746f20746865207472656173757279206163636f756e74cc2020696e20636173652064657374696e6174696f6e2873292068617665206265656e20616464656420746f2073746f72616765ec2d20606f7574707574732e62656e65666963696172796020746f6b656e7320616d6f756e7420696e637265617365642062792060616d6f756e746000203c7765696768743e002423232057656967687448604f202854202b204d29602077686572653a802d2060546020697320746865206c656e677468206f6620606f75747075747360b02d20604d60206973207468652073697a65206f6620606d657461646174616020696e206b696c6f6279746573142d2044423aac20202d20604f28542960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e106275726e0c0120746f6b656e5f6964280128543a3a546f6b656e49640001246d656d6265725f696428012c543a3a4d656d6265724964000118616d6f756e74180144546f6b656e42616c616e63654f663c543e000178884275726e20746f6b656e732066726f6d20737065636966696564206163636f756e740038507265636f6e646974696f6e733a442d2060616d6f756e7460206973203e2030f42d206f726967696e207369676e6572206973206120636f6e74726f6c6c6572206163636f756e74206f6620606d656d6265725f696460206d656d626572702d20746f6b656e2062792060746f6b656e5f69646020657869737473c02d20616e206163636f756e742065786973747320666f722060746f6b656e5f696460207820606d656d6265725f696460a02d206163636f756e74277320746f6b656e7320616d6f756e74206973203e3d2060616d6f756e746005012d20746f6b656e20737570706c792063616e206265206d6f64696669656420287468657265206973206e6f2061637469766520726576656e75652073706c697429003c506f7374636f6e646974696f6e733a4d012d207374617274696e6720776974682060756e70726f6365737365646020626565696e6720657175616c20746f2060616d6f756e74602c206163636f756e7427732076657374696e67207363686564756c6573602020617265206974657261746564206f76657220616e643a5d0120202d2075706461746564207769746820606275726e65645f616d6f756e74202b3d207570726f636573736564602069662076657374696e67207363686564756c65277320756e76657374656420616d6f756e74206973742020202067726561746572207468616e20607570726f636573736564605420202d2072656d6f766564206f746865727769736545012020286166746572206561636820697465726174696f6e2060756e70726f6365737365646020697320726564756365642062792074686520616d6f756e74206f6620756e76657374656420746f6b656e737c20206275726e656420647572696e67207468617420697465726174696f6e2949012d20696620746865206163636f756e742068617320616e79206073706c69745f7374616b696e675f737461747573602c20746865206073706c69745f7374616b696e675f7374617475732e616d6f756e7460e820206973207265647563656420627920606d696e28616d6f756e742c2073706c69745f7374616b696e675f7374617475732e616d6f756e742960a42d20606163636f756e742e616d6f756e746020697320726564756365642062792060616d6f756e7460942d20746f6b656e20737570706c7920697320726564756365642062792060616d6f756e746000203c7765696768743e00242323205765696768741c604f2028312960142d2044423ad820202d20604f28312960202d20646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e30647573745f6163636f756e74080120746f6b656e5f6964280128543a3a546f6b656e49640001246d656d6265725f696428012c543a3a4d656d62657249640002508c416c6c6f7720616e79207573657220746f2072656d6f766520616e206163636f756e740038507265636f6e646974696f6e733a802d20746f6b656e2062792060746f6b656e5f696460206d757374206578697374d02d20616e206163636f756e74206d75737420657869737420666f722060746f6b656e5f696460207820606d656d6265725f69646015012d206966205065726d697373696f6e656420746f6b656e3a20606f726967696e60207369676e6572206d75737420626520606d656d6265725f696460206d656d6265722773502020636f6e74726f6c6c6572206163636f756e74ec2d2060746f6b656e5f696460207820606d656d6265725f696460206163636f756e74206d75737420626520616e20656d707479206163636f756e7478202028606163636f756e745f646174612e616d6f756e7460203d3d2030293c506f7374636f6e646974696f6e733a1d012d204163636f756e7420696e666f726d6174696f6e20666f722060746f6b656e5f696460207820606d656d6265725f6964602072656d6f7665642066726f6d2073746f72616765dc2d20626c6f617420626f6e6420726566756e64656420746f20606d656d6265725f69646020636f6e74726f6c6c6572206163636f756e74cc2020286f722060626c6f61745f626f6e642e72657061796d656e745f726573747269637465645f746f60206163636f756e742900203c7765696768743e001c604f2028312960142d2044423ad820202d20604f28312960202d20646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e386a6f696e5f77686974656c6973740c01246d656d6265725f696428012c543a3a4d656d6265724964000120746f6b656e5f6964280128543a3a546f6b656e496400011470726f6f66510601404d65726b6c6550726f6f664f663c543e00034c11014a6f696e2077686974656c69737420666f72207065726d697373696f6e656420636173653a207573656420746f20616464206163636f756e747320666f7220746f6b656e38507265636f6e646974696f6e733a682d2027746f6b656e5f696427206d7573742062652076616c6964f42d20606f726967696e60207369676e6572206d757374206265206120636f6e74726f6c6c6572206163636f756e74206f6620606d656d6265725f696460c02d206163636f756e7420666f7220606d656d6265725f696460206d757374206e6f7420616c726561647920657869737409012d207472616e7366657220706f6c69637920697320605065726d697373696f6e65646020616e64206d65726b6c652070726f6f66206d7573742062652076616c6964003c506f7374636f6e646974696f6e733af42d206163636f756e7420666f7220606d656d6265725f696460206372656174656420616e6420616464656420746f2070616c6c65742073746f72616765e82d2060626c6f61745f626f6e6460207472616e736665727265642066726f6d2073656e64657220746f207472656173757279206163636f756e7400203c7765696768743e002423232057656967687438604f20284829602077686572653a802d2060486020697320746865206c656e677468206f66206070726f6f662e3060142d2044423ad820202d20604f28312960202d20646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5c70757263686173655f746f6b656e735f6f6e5f73616c650c0120746f6b656e5f6964280128543a3a546f6b656e49640001246d656d6265725f696428012c543a3a4d656d6265724964000118616d6f756e74180144546f6b656e42616c616e63654f663c543e0004ec94507572636861736520746f6b656e73206f6e2061637469766520746f6b656e2073616c652e0038507265636f6e646974696f6e733a802d20746f6b656e2062792060746f6b656e5f696460206d757374206578697374d02d20746f6b656e2062792060746f6b656e5f696460206d75737420626520696e204f66666572696e6753746174653a3a53616c65ec2d2060616d6f756e74602063616e6e6f7420657863656564206e756d626572206f6620746f6b656e732072656d61696e696e67206f6e2073616c6509012d20606f726967696e60207369676e6572206d75737420626520636f6e74726f6c6c6572206163636f756e74206f6620606d656d6265725f696460206d656d626572a42d2073656e646572277320617661696c61626c65204a4f592062616c616e6365206d7573742062653aec20202d203e3d20606a6f795f6578697374656e7469616c5f6465706f736974202b20616d6f756e74202a2073616c652e756e69745f70726963656080202020206966204163636f756e744461746120616c7265616479206578697374210120202d203e3d20606a6f795f6578697374656e7469616c5f6465706f736974202b20616d6f756e74202a2073616c652e756e69745f7072696365202b20626c6f61745f626f6e646084202020206966204163636f756e744461746120646f6573206e6f7420657869737435012d206c657420606665655f616d6f756e7460206265206073616c655f706c6174666f726d5f6665652e6d756c5f666c6f6f7228616d6f756e74202a2073616c652e756e69745f7072696365296059012d206966206073616c652e6561726e696e67735f64657374696e6174696f6e2e69735f736f6d6528296020616e64206073616c652e6561726e696e67735f64657374696e6174696f6e60206163636f756e74206861733c20207a65726f2062616c616e63653a390120202d2074686520616d6f756e7420746f206265207472616e736665727265642066726f6d206073656e6465726020746f206073616c652e6561726e696e67735f64657374696e6174696f6e602c4d0120202020776869636820697320657175616c20746f2060616d6f756e74202a2073616c652e756e69745f7072696365202d206665655f616d6f756e74602c206d7573742062652067726561746572207468616e7420202020606a6f795f6578697374656e7469616c5f6465706f7369746031012d20746f74616c206e756d626572206f6620746f6b656e7320616c72656164792070757263686173656420627920746865206d656d626572206f6e207468652063757272656e742073616c65f82020504c55532060616d6f756e7460206d757374206e6f74206578636565642073616c6527732070757263686173652063617020706572206d656d626572602d206966205065726d697373696f6e656420746f6b656e3a010120202d204163636f756e74496e666f4279546f6b656e416e644d656d62657228746f6b656e5f69642c20266d656d6265725f696429206d7573742065786973749c2d206966206073616c652e76657374696e675f7363686564756c652e69735f736f6d652829603ae020202d206e756d626572206f662073656e646572206163636f756e742773206f6e676f696e672076657374696e67207363686564756c6573cc202020206d757374206265203c204d617856657374696e675363686564756c65735065724163636f756e74506572546f6b656e003c506f7374636f6e646974696f6e733aac2d206966206073616c652e6561726e696e67735f64657374696e6174696f6e2e69735f736f6d652829603a4d0120202d2060616d6f756e74202a2073616c652e756e69745f7072696365202d206665655f616d6f756e7460204a4f5920746f6b656e7320617265207472616e7366657265642066726f6d206073656e646572608820202020746f206073616c652e6561726e696e67735f64657374696e6174696f6e60d420202d20606665655f616d6f756e7460204a4f5920697320736c61736865642066726f6d206073656e646572602062616c616e6365ac2d206966206073616c652e6561726e696e67735f64657374696e6174696f6e2e69735f6e6f6e652829603a0d0120202d2060616d6f756e74202a2073616c652e756e69745f707269636560204a4f5920697320736c61736865642066726f6d206073656e646572602062616c616e636549012d206966206e657720746f6b656e206163636f756e7420637265617465643a2060626c6f61745f626f6e6460207472616e736665727265642066726f6d206073656e6465726020746f2074726561737572799c2d206966206073616c652e76657374696e675f7363686564756c652e69735f736f6d652829603a0d0120202d20696620627579657220686173206e6f206076657374696e675f7363686564756c65602072656c6174656420746f207468652063757272656e742073616c653a5d01202020202d2061206e65772076657374696e67207363686564756c6520286073616c652e6765745f76657374696e675f7363686564756c652870757263686173655f616d6f756e7429602920697320616464656420746f80202020202020627579657227732060766573696e675f7363686564756c6573605501202020202d20736f6d652066696e69736865642076657374696e67207363686564756c652069732072656d6f7665642066726f6d2062757965722773206163636f756e745f6461746120696e20636173652074686559012020202020206e756d626572206f6620627579657227732076657374696e675f7363686564756c657320776173203d3d204d617856657374696e675363686564756c65735065724163636f756e74506572546f6b656e290120202d20696620627579657220616c7265616479206861732061206076657374696e675f7363686564756c65602072656c6174656420746f207468652063757272656e742073616c653afc202020202d2063757272656e742076657374696e67207363686564756c6527732060636c6966665f616d6f756e746020697320696e63726561736564206279fc2020202020206073616c652e6765745f76657374696e675f7363686564756c652870757263686173655f616d6f756e74292e636c6966665f616d6f756e74602901202020202d2063757272656e742076657374696e67207363686564756c6527732060706f73745f636c6966665f746f74616c5f616d6f756e746020697320696e6372656173656420627929012020202020206073616c652e6765745f76657374696e675f7363686564756c652870757263686173655f616d6f756e74292e706f73745f636c6966665f746f74616c5f616d6f756e74609c2d206966206073616c652e76657374696e675f7363686564756c652e69735f6e6f6e652829603ad820202d2062757965722773206163636f756e7420746f6b656e20616d6f756e7420696e637265617365642062792060616d6f756e746055012d2069662060746f6b656e5f646174612e73616c652e7175616e746974795f6c656674202d20616d6f756e74203d3d20306020616e64206073616c652e6175746f5f66696e616c697a6560206973206074727565604101202060746f6b656e5f646174612e73616c65602069732073657420746f204e6f6e652c206f74686572776973652060746f6b656e5f646174612e73616c652e7175616e746974795f6c65667460206973350120206465637265617365642062792060616d6f756e746020616e642060746f6b656e5f646174612e73616c652e66756e64735f636f6c6c65637465646020696e20696e6372656173656420627970202060616d6f756e74202a2073616c652e756e69745f70726963656000203c7765696768743e00242323205765696768741c604f2028312960142d2044423ad820202d20604f28312960202d20646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5070617274696369706174655f696e5f73706c69740c0120746f6b656e5f6964280128543a3a546f6b656e49640001246d656d6265725f696428012c543a3a4d656d6265724964000118616d6f756e74180144546f6b656e42616c616e63654f663c543e000568f0506172746963697061746520696e20746865202a6c61746573742a20746f6b656e20726576656e75652073706c697420286966206f6e676f696e672938507265636f6e646974696f6e733a8c2d2060746f6b656e60206d75737420657869737420666f722060746f6b656e5f696460fc2d20606f726967696e60207369676e6572206d75737420626520606d656d6265725f696460206d656d62657220636f6e74726f6c6c6572206163636f756e74582d2060616d6f756e7460206d757374206265203e2030cc2d20606163636f756e7460206d7573742065786973742020666f72206028746f6b656e5f69642c206d656d6265725f69642960fc2d2060746f6b656e2e73706c69745f73746174757360206d7573742062652061637469766520414e44205448454e2063757272656e745f626c6f636b20696eb82020205b73706c69742e73746172742c2073706c69742e7374617274202b2073706c69745f6475726174696f6e2981012d20606163636f756e742e7374616b696e675f7374617475732e69735f6e6f6e65282960204f5220606163636f756e742e7374616b696e675f7374617475732e73706c69745f6964602072656665727320746f206120706173742073706c6974782d20606163636f756e742e616d6f756e7460203e3d2060616d6f756e74602d012d206c657420606469766964656e64203d2073706c69745f616c6c6f636174696f6e202a206163636f756e742e7374616b65645f616d6f756e74202f20746f6b656e2e737570706c79606015012020207468656e2060747265617375727960206d7573742062652061626c6520746f207472616e7366657220606469766964656e646020616d6f756e74206f66204a4f592eec202020285468697320636f6e646974696f6e20746563686e6963616c6c792c2073686f756c6420616c7761797320626520736174697366696564290038506f7374636f6e646974696f6e732d012d20606469766964656e646020616d6f756e74206f66204a4f5973207472616e736665727265642066726f6d206074726561737572795f6163636f756e746020746f206073656e6465726045012d2060746f6b656e6020726576656e75652073706c6974206469766964656e647320706179656420747261636b696e67207661726961626c6520696e6372656173656420627920606469766964656e646045012d20606163636f756e742e7374616b696e675f737461747573602073657420746f20536f6d65282e2e2920776974682060616d6f756e746020616e642060746f6b656e2e6c61746573745f73706c69746000203c7765696768743e00242323205765696768741c604f2028312960142d2044423ad820202d20604f28312960202d20646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e48657869745f726576656e75655f73706c6974080120746f6b656e5f6964280128543a3a546f6b656e49640001246d656d6265725f696428012c543a3a4d656d626572496400064cb453706c69742d70617274696369706174696e672075736572206c656176657320726576656e75652073706c697434507265636f6e646974696f6e738c2d2060746f6b656e60206d75737420657869737420666f722060746f6b656e5f696460fc2d20606f726967696e60207369676e6572206d75737420626520606d656d6265725f696460206d656d62657220636f6e74726f6c6c6572206163636f756e74c82d20606163636f756e7460206d75737420657869737420666f72206028746f6b656e5f69642c206d656d6265725f69642960902d20606163636f756e742e7374616b696e67207374617475732e69735f736f6d6528292729012d2069662060286163636f756e742e7374616b696e675f7374617475732e73706c69745f6964203d3d20746f6b656e2e6e6578745f726576656e75655f73706c69745f6964202d2031604101202020414e442060746f6b656e2e726576656e75655f73706c6974602069732061637469766529205448454e2073706c6974207374616b696e6720706572696f6420206d75737420626520656e6465640038506f7374636f6e646974696f6e73982d20606163636f756e742e7374616b696e675f737461747573602073657420746f204e6f6e6500203c7765696768743e00242323205765696768741c604f2028312960142d2044423ad820202d20604f28312960202d20646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e3d060c5070616c6c65745f70726f6a6563745f746f6b656e147479706573245472616e736665727308204d656d626572496401281c5061796d656e740141060004004506016c42547265654d61703c4d656d62657249642c205061796d656e743e000041060c5070616c6c65745f70726f6a6563745f746f6b656e1474797065731c5061796d656e74041c42616c616e6365011800040118616d6f756e7418011c42616c616e636500004506042042547265654d617008044b01280456014106000400490600000049060000024d06004d06000004082841060051060c5070616c6c65745f70726f6a6563745f746f6b656e1474797065732c4d65726b6c6550726f6f660418486173686572014904000400550601845665633c284861736865723a3a4f75747075742c204d65726b6c6553696465293e000055060000025906005906000004082c5d06005d060c5070616c6c65745f70726f6a6563745f746f6b656e147479706573284d65726b6c6553696465000108145269676874000000104c656674000100006106085c70616c6c65745f70726f706f73616c735f656e67696e651043616c6c04045400011010766f7465100120766f7465725f696428012c4d656d62657249643c543e00012c70726f706f73616c5f6964100134543a3a50726f706f73616c4964000110766f74653d030120566f74654b696e64000124726174696f6e616c6530011c5665633c75383e000028d4566f74652065787472696e7369632e20436f6e646974696f6e733a20206f726967696e206d75737420616c6c6f7720766f7465732e00203c7765696768743e002423232057656967687438604f20285229602077686572653ab42d20605260206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f722070617261656d746572732c23203c2f7765696768743e3c63616e63656c5f70726f706f73616c08012c70726f706f7365725f696428012c4d656d62657249643c543e00012c70726f706f73616c5f6964100134543a3a50726f706f73616c4964000128ac43616e63656c20612070726f706f73616c20627920697473206f726967696e616c2070726f706f7365722e00203c7765696768743e002423232057656967687438604f20284c29602077686572653ac02d20604c602069732074686520746f74616c206e756d626572206f66206c6f636b7320696e206042616c616e63657360142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e347665746f5f70726f706f73616c04012c70726f706f73616c5f6964100134543a3a50726f706f73616c4964000224785665746f20612070726f706f73616c2e204d75737420626520726f6f742e00203c7765696768743e0024232320576569676874c4604f202831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3c70726f706f7365725f72656d61726b0c012c70726f706f73616c5f6964100134543a3a50726f706f73616c496400012c70726f706f7365725f696428012c4d656d62657249643c543e00010c6d736730011c5665633c75383e0003243c50726f706f7365722052656d61726b00203c7765696768743e0024232320576569676874c4604f202831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e6506086c70616c6c65745f70726f706f73616c735f64697363757373696f6e1043616c6c040454000110206164645f706f7374100138706f73745f617574686f725f696428012c4d656d62657249643c543e0001247468726561645f696428012c543a3a54687265616449640001107465787430011c5665633c75383e0001206564697461626c65980110626f6f6c0000289441646473206120706f7374207769746820617574686f72206f726967696e20636865636b2e00203c7765696768743e002423232057656967687438604f20284c29602077686572653aa02d20604c60206973207468652073697a65206f662060746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c64656c6574655f706f737410012864656c657465725f696428012c4d656d62657249643c543e00011c706f73745f6964280124543a3a506f737449640001247468726561645f696428012c543a3a546872656164496400011068696465980110626f6f6c000128510152656d6f766520706f73742066726f6d2073746f726167652c207769746820746865206c61737420706172616d6574657220696e6469636174696e67207768657468657220746f20616c736f206869646520697428696e207468652055492e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c7570646174655f706f73740c01247468726561645f696428012c543a3a546872656164496400011c706f73745f6964280124543a3a506f737449640001107465787430011c5665633c75383e0002282d0155706461746573206120706f7374207769746820617574686f72206f726967696e20636865636b2e2055706461746520617474656d707473206e756d626572206973206c696d697465642e00203c7765696768743e002423232057656967687438604f20284c29602077686572653aa02d20604c60206973207468652073697a65206f662060746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e486368616e67655f7468726561645f6d6f64650c01246d656d6265725f696428012c4d656d62657249643c543e0001247468726561645f696428012c543a3a54687265616449640001106d6f6465450301d85468726561644d6f64653c42547265655365743c3c54206173204d656d6265727368697054797065733e3a3a4d656d62657249643e3e0003287c4368616e67657320746872656164207065726d697373696f6e206d6f64652e00203c7765696768743e0024232320576569676874dc604f2028572960206966205468726561644d6f646520697320636c6f7365206f72204f283129206f74686572776973652077686572653ad02d2060576020697320746865206e756d626572206f662077686974656c6973746564206d656d6265727320696e20606d6f646560142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e6906085870616c6c65745f70726f706f73616c735f636f6465781043616c6c0404540001043c6372656174655f70726f706f73616c08016c67656e6572616c5f70726f706f73616c5f706172616d65746572734d03017047656e6572616c50726f706f73616c506172616d65746572733c543e00014070726f706f73616c5f64657461696c735103015050726f706f73616c44657461696c734f663c543e000034450143726561746520612070726f706f73616c2c207468652074797065206f662070726f706f73616c20646570656e6473206f6e20746865206070726f706f73616c5f64657461696c73602076617269616e7400203c7765696768743e002423232057656967687458604f202854202b2044202b204929602077686572653a902d2060546020697320746865207469746c652073697a6520696e206b696c6f6279746573a82d2060446020697320746865206465736372697074696f6e2073697a6520696e206b696c6f6279746573e02d20604960206973207468652073697a65206f6620616e7920706172616d6574657220696e206070726f706f73616c5f64657461696c736084202028696e206b696c6f62797465732069662069742773206d6574616461746129142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e6d06085070616c6c65745f776f726b696e675f67726f75701043616c6c08045400044900014c2c6164645f6f70656e696e6710012c6465736372697074696f6e30011c5665633c75383e0001306f70656e696e675f747970657d03012c4f70656e696e67547970650001307374616b655f706f6c696379610301a45374616b65506f6c6963793c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e3e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e00002cc44164642061206a6f62206f70656e696e6720666f72206120726567756c617220776f726b65722f6c65616420726f6c652e490152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20616464206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e002423232057656967687438604f20284429602077686572653abc2d20604460206973207468652073697a65206f6620606465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e406170706c795f6f6e5f6f70656e696e67040104708103016c4170706c794f6e4f70656e696e67506172616d65746572733c543e000128684170706c79206f6e206120776f726b6572206f70656e696e672e002823203c7765696768743e002423232057656967687438604f20284429602077686572653ac42d20604460206973207468652073697a65206f662060702e6465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3066696c6c5f6f70656e696e670801286f70656e696e675f69642801244f70656e696e6749640001687375636365737366756c5f6170706c69636174696f6e5f6964736901015c42547265655365743c4170706c69636174696f6e49643e000228ac46696c6c206f70656e696e6720666f722074686520726567756c61722f6c65616420706f736974696f6e2e4d0152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2066696c6c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e2823203c7765696768743e002423232057656967687438604f20284129602077686572653acc2d2060416020697320746865206c656e677468206f6620607375636365737366756c5f6170706c69636174696f6e5f69647360142d2044423a242020202d204f2841292c23203c2f7765696768743e4c7570646174655f726f6c655f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e00014c6e65775f726f6c655f6163636f756e745f6964000130543a3a4163636f756e744964000324150155706461746520746865206173736f63696174656420726f6c65206163636f756e74206f66207468652061637469766520726567756c617220776f726b65722f6c6561642e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e286c656176655f726f6c65080124776f726b65725f696428012c576f726b657249643c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000424904c656176652074686520726f6c65206279207468652061637469766520776f726b65722e2823203c7765696768743e002423232057656967687438604f20285229602077686572653ab42d20605260206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e387465726d696e6174655f726f6c650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c7479450101504f7074696f6e3c42616c616e63654f663c543e3e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000528a05465726d696e617465207468652061637469766520776f726b657220627920746865206c6561642e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f207465726d696e61746520746865206c656164657220726f6c65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ad82d20605060206973207468652073697a65206070656e616c74792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c736c6173685f7374616b650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c747918013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e00062c7d01536c61736865732074686520726567756c617220776f726b6572207374616b652c2064656d616e64732061206c6561646572206f726967696e2e204e6f206c696d6974732c206e6f20616374696f6e73206f6e207a65726f207374616b652e3d01496620736c617368696e672062616c616e63652067726561746572207468616e20746865206578697374696e67207374616b65202d207374616b6520697320736c617368656420746f207a65726f2e19015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20736c61736820746865206c6561646572207374616b65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ae82d20605060206973207468652073697a65206f66206070656e616c6974792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3864656372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e00073021014465637265617365732074686520726567756c617220776f726b65722f6c656164207374616b6520616e642072657475726e73207468652072656d61696e64657220746f207468653901776f726b6572207374616b696e675f6163636f756e745f69642e2043616e2062652064656372656173656420746f207a65726f2c206e6f20616374696f6e73206f6e207a65726f207374616b652e944163636570747320746865207374616b6520616d6f756e7420746f2064656372656173652e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20646563726561736520746865206c6561646572207374616b65292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e38696e6372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e0008280501496e637265617365732074686520726567756c617220776f726b65722f6c656164207374616b652c2064656d616e6473206120776f726b6572206f726967696e2e6d014c6f636b7320746f6b656e732066726f6d2074686520776f726b6572207374616b696e675f6163636f756e745f696420657175616c20746f206e6577207374616b652e204e6f206c696d697473206f6e20746865207374616b652e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5077697468647261775f6170706c69636174696f6e0401386170706c69636174696f6e5f69642801344170706c69636174696f6e4964000924010157697468647261772074686520776f726b6572206170706c69636174696f6e2e2043616e20626520646f6e652062792074686520776f726b6572206f6e6c792e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3863616e63656c5f6f70656e696e670401286f70656e696e675f69642801244f70656e696e674964000a28dc43616e63656c20616e206f70656e696e6720666f722074686520726567756c617220776f726b65722f6c65616420706f736974696f6e2e550152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2063616e63656c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e287365745f6275646765740401286e65775f62756467657418013042616c616e63654f663c543e000b28a0536574732061206e65772062756467657420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e547570646174655f7265776172645f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e0001546e65775f7265776172645f6163636f756e745f6964000130543a3a4163636f756e744964000c2469015570646174652074686520726577617264206163636f756e74206173736f6369617465642077697468206120736574207265776172642072656c6174696f6e7368697020666f72207468652061637469766520776f726b65722e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e507570646174655f7265776172645f616d6f756e74080124776f726b65725f696428012c576f726b657249643c543e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e000d28c855706461746520746865207265776172642070657220626c6f636b20666f72207468652061637469766520776f726b65722e310152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20757064617465206c656164657227732072657761726420616d6f756e74292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3c7365745f7374617475735f7465787404012c7374617475735f746578743101013c4f7074696f6e3c5665633c75383e3e000e30b4536574732061206e657720737461747573207465787420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e002423232057656967687438604f20285329602077686572653a4d012d20605360206973207468652073697a65206f662074686520636f6e74656e7473206f6620607374617475735f746578746020696e206b696c6f6279746573207768656e206974206973206e6f74206e6f6e6500142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e447370656e645f66726f6d5f6275646765740c01286163636f756e745f6964000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000f28a85472616e73666572732073706563696669656420616d6f756e7420746f20616e79206163636f756e742e5c5265717569726573206c6561646572206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6466756e645f776f726b696e675f67726f75705f6275646765740c01246d656d6265725f696428012c4d656d62657249643c543e000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c6530011c5665633c75383e0010209846756e6420776f726b696e672067726f7570206275646765742062792061206d656d6265722e203c7765696768743e0024232320576569676874c4604f202831296020446f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c6c6561645f72656d61726b04010c6d736730011c5665633c75383e0011284c4c6561642072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e34776f726b65725f72656d61726b080124776f726b65725f696428012c576f726b657249643c543e00010c6d736730011c5665633c75383e00122854576f726b65722072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e7106085070616c6c65745f776f726b696e675f67726f75701043616c6c08045400044900014c2c6164645f6f70656e696e6710012c6465736372697074696f6e30011c5665633c75383e0001306f70656e696e675f747970657d03012c4f70656e696e67547970650001307374616b655f706f6c696379610301a45374616b65506f6c6963793c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e3e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e00002cc44164642061206a6f62206f70656e696e6720666f72206120726567756c617220776f726b65722f6c65616420726f6c652e490152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20616464206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e002423232057656967687438604f20284429602077686572653abc2d20604460206973207468652073697a65206f6620606465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e406170706c795f6f6e5f6f70656e696e67040104708103016c4170706c794f6e4f70656e696e67506172616d65746572733c543e000128684170706c79206f6e206120776f726b6572206f70656e696e672e002823203c7765696768743e002423232057656967687438604f20284429602077686572653ac42d20604460206973207468652073697a65206f662060702e6465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3066696c6c5f6f70656e696e670801286f70656e696e675f69642801244f70656e696e6749640001687375636365737366756c5f6170706c69636174696f6e5f6964736901015c42547265655365743c4170706c69636174696f6e49643e000228ac46696c6c206f70656e696e6720666f722074686520726567756c61722f6c65616420706f736974696f6e2e4d0152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2066696c6c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e2823203c7765696768743e002423232057656967687438604f20284129602077686572653acc2d2060416020697320746865206c656e677468206f6620607375636365737366756c5f6170706c69636174696f6e5f69647360142d2044423a242020202d204f2841292c23203c2f7765696768743e4c7570646174655f726f6c655f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e00014c6e65775f726f6c655f6163636f756e745f6964000130543a3a4163636f756e744964000324150155706461746520746865206173736f63696174656420726f6c65206163636f756e74206f66207468652061637469766520726567756c617220776f726b65722f6c6561642e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e286c656176655f726f6c65080124776f726b65725f696428012c576f726b657249643c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000424904c656176652074686520726f6c65206279207468652061637469766520776f726b65722e2823203c7765696768743e002423232057656967687438604f20285229602077686572653ab42d20605260206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e387465726d696e6174655f726f6c650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c7479450101504f7074696f6e3c42616c616e63654f663c543e3e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000528a05465726d696e617465207468652061637469766520776f726b657220627920746865206c6561642e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f207465726d696e61746520746865206c656164657220726f6c65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ad82d20605060206973207468652073697a65206070656e616c74792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c736c6173685f7374616b650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c747918013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e00062c7d01536c61736865732074686520726567756c617220776f726b6572207374616b652c2064656d616e64732061206c6561646572206f726967696e2e204e6f206c696d6974732c206e6f20616374696f6e73206f6e207a65726f207374616b652e3d01496620736c617368696e672062616c616e63652067726561746572207468616e20746865206578697374696e67207374616b65202d207374616b6520697320736c617368656420746f207a65726f2e19015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20736c61736820746865206c6561646572207374616b65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ae82d20605060206973207468652073697a65206f66206070656e616c6974792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3864656372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e00073021014465637265617365732074686520726567756c617220776f726b65722f6c656164207374616b6520616e642072657475726e73207468652072656d61696e64657220746f207468653901776f726b6572207374616b696e675f6163636f756e745f69642e2043616e2062652064656372656173656420746f207a65726f2c206e6f20616374696f6e73206f6e207a65726f207374616b652e944163636570747320746865207374616b6520616d6f756e7420746f2064656372656173652e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20646563726561736520746865206c6561646572207374616b65292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e38696e6372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e0008280501496e637265617365732074686520726567756c617220776f726b65722f6c656164207374616b652c2064656d616e6473206120776f726b6572206f726967696e2e6d014c6f636b7320746f6b656e732066726f6d2074686520776f726b6572207374616b696e675f6163636f756e745f696420657175616c20746f206e6577207374616b652e204e6f206c696d697473206f6e20746865207374616b652e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5077697468647261775f6170706c69636174696f6e0401386170706c69636174696f6e5f69642801344170706c69636174696f6e4964000924010157697468647261772074686520776f726b6572206170706c69636174696f6e2e2043616e20626520646f6e652062792074686520776f726b6572206f6e6c792e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3863616e63656c5f6f70656e696e670401286f70656e696e675f69642801244f70656e696e674964000a28dc43616e63656c20616e206f70656e696e6720666f722074686520726567756c617220776f726b65722f6c65616420706f736974696f6e2e550152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2063616e63656c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e287365745f6275646765740401286e65775f62756467657418013042616c616e63654f663c543e000b28a0536574732061206e65772062756467657420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e547570646174655f7265776172645f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e0001546e65775f7265776172645f6163636f756e745f6964000130543a3a4163636f756e744964000c2469015570646174652074686520726577617264206163636f756e74206173736f6369617465642077697468206120736574207265776172642072656c6174696f6e7368697020666f72207468652061637469766520776f726b65722e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e507570646174655f7265776172645f616d6f756e74080124776f726b65725f696428012c576f726b657249643c543e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e000d28c855706461746520746865207265776172642070657220626c6f636b20666f72207468652061637469766520776f726b65722e310152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20757064617465206c656164657227732072657761726420616d6f756e74292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3c7365745f7374617475735f7465787404012c7374617475735f746578743101013c4f7074696f6e3c5665633c75383e3e000e30b4536574732061206e657720737461747573207465787420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e002423232057656967687438604f20285329602077686572653a4d012d20605360206973207468652073697a65206f662074686520636f6e74656e7473206f6620607374617475735f746578746020696e206b696c6f6279746573207768656e206974206973206e6f74206e6f6e6500142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e447370656e645f66726f6d5f6275646765740c01286163636f756e745f6964000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000f28a85472616e73666572732073706563696669656420616d6f756e7420746f20616e79206163636f756e742e5c5265717569726573206c6561646572206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6466756e645f776f726b696e675f67726f75705f6275646765740c01246d656d6265725f696428012c4d656d62657249643c543e000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c6530011c5665633c75383e0010209846756e6420776f726b696e672067726f7570206275646765742062792061206d656d6265722e203c7765696768743e0024232320576569676874c4604f202831296020446f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c6c6561645f72656d61726b04010c6d736730011c5665633c75383e0011284c4c6561642072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e34776f726b65725f72656d61726b080124776f726b65725f696428012c576f726b657249643c543e00010c6d736730011c5665633c75383e00122854576f726b65722072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e7506085070616c6c65745f776f726b696e675f67726f75701043616c6c08045400044900014c2c6164645f6f70656e696e6710012c6465736372697074696f6e30011c5665633c75383e0001306f70656e696e675f747970657d03012c4f70656e696e67547970650001307374616b655f706f6c696379610301a45374616b65506f6c6963793c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e3e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e00002cc44164642061206a6f62206f70656e696e6720666f72206120726567756c617220776f726b65722f6c65616420726f6c652e490152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20616464206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e002423232057656967687438604f20284429602077686572653abc2d20604460206973207468652073697a65206f6620606465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e406170706c795f6f6e5f6f70656e696e67040104708103016c4170706c794f6e4f70656e696e67506172616d65746572733c543e000128684170706c79206f6e206120776f726b6572206f70656e696e672e002823203c7765696768743e002423232057656967687438604f20284429602077686572653ac42d20604460206973207468652073697a65206f662060702e6465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3066696c6c5f6f70656e696e670801286f70656e696e675f69642801244f70656e696e6749640001687375636365737366756c5f6170706c69636174696f6e5f6964736901015c42547265655365743c4170706c69636174696f6e49643e000228ac46696c6c206f70656e696e6720666f722074686520726567756c61722f6c65616420706f736974696f6e2e4d0152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2066696c6c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e2823203c7765696768743e002423232057656967687438604f20284129602077686572653acc2d2060416020697320746865206c656e677468206f6620607375636365737366756c5f6170706c69636174696f6e5f69647360142d2044423a242020202d204f2841292c23203c2f7765696768743e4c7570646174655f726f6c655f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e00014c6e65775f726f6c655f6163636f756e745f6964000130543a3a4163636f756e744964000324150155706461746520746865206173736f63696174656420726f6c65206163636f756e74206f66207468652061637469766520726567756c617220776f726b65722f6c6561642e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e286c656176655f726f6c65080124776f726b65725f696428012c576f726b657249643c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000424904c656176652074686520726f6c65206279207468652061637469766520776f726b65722e2823203c7765696768743e002423232057656967687438604f20285229602077686572653ab42d20605260206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e387465726d696e6174655f726f6c650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c7479450101504f7074696f6e3c42616c616e63654f663c543e3e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000528a05465726d696e617465207468652061637469766520776f726b657220627920746865206c6561642e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f207465726d696e61746520746865206c656164657220726f6c65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ad82d20605060206973207468652073697a65206070656e616c74792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c736c6173685f7374616b650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c747918013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e00062c7d01536c61736865732074686520726567756c617220776f726b6572207374616b652c2064656d616e64732061206c6561646572206f726967696e2e204e6f206c696d6974732c206e6f20616374696f6e73206f6e207a65726f207374616b652e3d01496620736c617368696e672062616c616e63652067726561746572207468616e20746865206578697374696e67207374616b65202d207374616b6520697320736c617368656420746f207a65726f2e19015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20736c61736820746865206c6561646572207374616b65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ae82d20605060206973207468652073697a65206f66206070656e616c6974792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3864656372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e00073021014465637265617365732074686520726567756c617220776f726b65722f6c656164207374616b6520616e642072657475726e73207468652072656d61696e64657220746f207468653901776f726b6572207374616b696e675f6163636f756e745f69642e2043616e2062652064656372656173656420746f207a65726f2c206e6f20616374696f6e73206f6e207a65726f207374616b652e944163636570747320746865207374616b6520616d6f756e7420746f2064656372656173652e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20646563726561736520746865206c6561646572207374616b65292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e38696e6372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e0008280501496e637265617365732074686520726567756c617220776f726b65722f6c656164207374616b652c2064656d616e6473206120776f726b6572206f726967696e2e6d014c6f636b7320746f6b656e732066726f6d2074686520776f726b6572207374616b696e675f6163636f756e745f696420657175616c20746f206e6577207374616b652e204e6f206c696d697473206f6e20746865207374616b652e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5077697468647261775f6170706c69636174696f6e0401386170706c69636174696f6e5f69642801344170706c69636174696f6e4964000924010157697468647261772074686520776f726b6572206170706c69636174696f6e2e2043616e20626520646f6e652062792074686520776f726b6572206f6e6c792e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3863616e63656c5f6f70656e696e670401286f70656e696e675f69642801244f70656e696e674964000a28dc43616e63656c20616e206f70656e696e6720666f722074686520726567756c617220776f726b65722f6c65616420706f736974696f6e2e550152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2063616e63656c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e287365745f6275646765740401286e65775f62756467657418013042616c616e63654f663c543e000b28a0536574732061206e65772062756467657420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e547570646174655f7265776172645f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e0001546e65775f7265776172645f6163636f756e745f6964000130543a3a4163636f756e744964000c2469015570646174652074686520726577617264206163636f756e74206173736f6369617465642077697468206120736574207265776172642072656c6174696f6e7368697020666f72207468652061637469766520776f726b65722e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e507570646174655f7265776172645f616d6f756e74080124776f726b65725f696428012c576f726b657249643c543e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e000d28c855706461746520746865207265776172642070657220626c6f636b20666f72207468652061637469766520776f726b65722e310152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20757064617465206c656164657227732072657761726420616d6f756e74292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3c7365745f7374617475735f7465787404012c7374617475735f746578743101013c4f7074696f6e3c5665633c75383e3e000e30b4536574732061206e657720737461747573207465787420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e002423232057656967687438604f20285329602077686572653a4d012d20605360206973207468652073697a65206f662074686520636f6e74656e7473206f6620607374617475735f746578746020696e206b696c6f6279746573207768656e206974206973206e6f74206e6f6e6500142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e447370656e645f66726f6d5f6275646765740c01286163636f756e745f6964000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000f28a85472616e73666572732073706563696669656420616d6f756e7420746f20616e79206163636f756e742e5c5265717569726573206c6561646572206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6466756e645f776f726b696e675f67726f75705f6275646765740c01246d656d6265725f696428012c4d656d62657249643c543e000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c6530011c5665633c75383e0010209846756e6420776f726b696e672067726f7570206275646765742062792061206d656d6265722e203c7765696768743e0024232320576569676874c4604f202831296020446f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c6c6561645f72656d61726b04010c6d736730011c5665633c75383e0011284c4c6561642072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e34776f726b65725f72656d61726b080124776f726b65725f696428012c576f726b657249643c543e00010c6d736730011c5665633c75383e00122854576f726b65722072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e7906085070616c6c65745f776f726b696e675f67726f75701043616c6c08045400044900014c2c6164645f6f70656e696e6710012c6465736372697074696f6e30011c5665633c75383e0001306f70656e696e675f747970657d03012c4f70656e696e67547970650001307374616b655f706f6c696379610301a45374616b65506f6c6963793c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e3e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e00002cc44164642061206a6f62206f70656e696e6720666f72206120726567756c617220776f726b65722f6c65616420726f6c652e490152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20616464206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e002423232057656967687438604f20284429602077686572653abc2d20604460206973207468652073697a65206f6620606465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e406170706c795f6f6e5f6f70656e696e67040104708103016c4170706c794f6e4f70656e696e67506172616d65746572733c543e000128684170706c79206f6e206120776f726b6572206f70656e696e672e002823203c7765696768743e002423232057656967687438604f20284429602077686572653ac42d20604460206973207468652073697a65206f662060702e6465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3066696c6c5f6f70656e696e670801286f70656e696e675f69642801244f70656e696e6749640001687375636365737366756c5f6170706c69636174696f6e5f6964736901015c42547265655365743c4170706c69636174696f6e49643e000228ac46696c6c206f70656e696e6720666f722074686520726567756c61722f6c65616420706f736974696f6e2e4d0152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2066696c6c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e2823203c7765696768743e002423232057656967687438604f20284129602077686572653acc2d2060416020697320746865206c656e677468206f6620607375636365737366756c5f6170706c69636174696f6e5f69647360142d2044423a242020202d204f2841292c23203c2f7765696768743e4c7570646174655f726f6c655f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e00014c6e65775f726f6c655f6163636f756e745f6964000130543a3a4163636f756e744964000324150155706461746520746865206173736f63696174656420726f6c65206163636f756e74206f66207468652061637469766520726567756c617220776f726b65722f6c6561642e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e286c656176655f726f6c65080124776f726b65725f696428012c576f726b657249643c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000424904c656176652074686520726f6c65206279207468652061637469766520776f726b65722e2823203c7765696768743e002423232057656967687438604f20285229602077686572653ab42d20605260206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e387465726d696e6174655f726f6c650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c7479450101504f7074696f6e3c42616c616e63654f663c543e3e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000528a05465726d696e617465207468652061637469766520776f726b657220627920746865206c6561642e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f207465726d696e61746520746865206c656164657220726f6c65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ad82d20605060206973207468652073697a65206070656e616c74792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c736c6173685f7374616b650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c747918013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e00062c7d01536c61736865732074686520726567756c617220776f726b6572207374616b652c2064656d616e64732061206c6561646572206f726967696e2e204e6f206c696d6974732c206e6f20616374696f6e73206f6e207a65726f207374616b652e3d01496620736c617368696e672062616c616e63652067726561746572207468616e20746865206578697374696e67207374616b65202d207374616b6520697320736c617368656420746f207a65726f2e19015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20736c61736820746865206c6561646572207374616b65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ae82d20605060206973207468652073697a65206f66206070656e616c6974792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3864656372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e00073021014465637265617365732074686520726567756c617220776f726b65722f6c656164207374616b6520616e642072657475726e73207468652072656d61696e64657220746f207468653901776f726b6572207374616b696e675f6163636f756e745f69642e2043616e2062652064656372656173656420746f207a65726f2c206e6f20616374696f6e73206f6e207a65726f207374616b652e944163636570747320746865207374616b6520616d6f756e7420746f2064656372656173652e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20646563726561736520746865206c6561646572207374616b65292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e38696e6372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e0008280501496e637265617365732074686520726567756c617220776f726b65722f6c656164207374616b652c2064656d616e6473206120776f726b6572206f726967696e2e6d014c6f636b7320746f6b656e732066726f6d2074686520776f726b6572207374616b696e675f6163636f756e745f696420657175616c20746f206e6577207374616b652e204e6f206c696d697473206f6e20746865207374616b652e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5077697468647261775f6170706c69636174696f6e0401386170706c69636174696f6e5f69642801344170706c69636174696f6e4964000924010157697468647261772074686520776f726b6572206170706c69636174696f6e2e2043616e20626520646f6e652062792074686520776f726b6572206f6e6c792e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3863616e63656c5f6f70656e696e670401286f70656e696e675f69642801244f70656e696e674964000a28dc43616e63656c20616e206f70656e696e6720666f722074686520726567756c617220776f726b65722f6c65616420706f736974696f6e2e550152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2063616e63656c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e287365745f6275646765740401286e65775f62756467657418013042616c616e63654f663c543e000b28a0536574732061206e65772062756467657420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e547570646174655f7265776172645f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e0001546e65775f7265776172645f6163636f756e745f6964000130543a3a4163636f756e744964000c2469015570646174652074686520726577617264206163636f756e74206173736f6369617465642077697468206120736574207265776172642072656c6174696f6e7368697020666f72207468652061637469766520776f726b65722e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e507570646174655f7265776172645f616d6f756e74080124776f726b65725f696428012c576f726b657249643c543e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e000d28c855706461746520746865207265776172642070657220626c6f636b20666f72207468652061637469766520776f726b65722e310152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20757064617465206c656164657227732072657761726420616d6f756e74292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3c7365745f7374617475735f7465787404012c7374617475735f746578743101013c4f7074696f6e3c5665633c75383e3e000e30b4536574732061206e657720737461747573207465787420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e002423232057656967687438604f20285329602077686572653a4d012d20605360206973207468652073697a65206f662074686520636f6e74656e7473206f6620607374617475735f746578746020696e206b696c6f6279746573207768656e206974206973206e6f74206e6f6e6500142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e447370656e645f66726f6d5f6275646765740c01286163636f756e745f6964000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000f28a85472616e73666572732073706563696669656420616d6f756e7420746f20616e79206163636f756e742e5c5265717569726573206c6561646572206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6466756e645f776f726b696e675f67726f75705f6275646765740c01246d656d6265725f696428012c4d656d62657249643c543e000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c6530011c5665633c75383e0010209846756e6420776f726b696e672067726f7570206275646765742062792061206d656d6265722e203c7765696768743e0024232320576569676874c4604f202831296020446f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c6c6561645f72656d61726b04010c6d736730011c5665633c75383e0011284c4c6561642072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e34776f726b65725f72656d61726b080124776f726b65725f696428012c576f726b657249643c543e00010c6d736730011c5665633c75383e00122854576f726b65722072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e7d06085070616c6c65745f776f726b696e675f67726f75701043616c6c08045400044900014c2c6164645f6f70656e696e6710012c6465736372697074696f6e30011c5665633c75383e0001306f70656e696e675f747970657d03012c4f70656e696e67547970650001307374616b655f706f6c696379610301a45374616b65506f6c6963793c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e3e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e00002cc44164642061206a6f62206f70656e696e6720666f72206120726567756c617220776f726b65722f6c65616420726f6c652e490152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20616464206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e002423232057656967687438604f20284429602077686572653abc2d20604460206973207468652073697a65206f6620606465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e406170706c795f6f6e5f6f70656e696e67040104708103016c4170706c794f6e4f70656e696e67506172616d65746572733c543e000128684170706c79206f6e206120776f726b6572206f70656e696e672e002823203c7765696768743e002423232057656967687438604f20284429602077686572653ac42d20604460206973207468652073697a65206f662060702e6465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3066696c6c5f6f70656e696e670801286f70656e696e675f69642801244f70656e696e6749640001687375636365737366756c5f6170706c69636174696f6e5f6964736901015c42547265655365743c4170706c69636174696f6e49643e000228ac46696c6c206f70656e696e6720666f722074686520726567756c61722f6c65616420706f736974696f6e2e4d0152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2066696c6c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e2823203c7765696768743e002423232057656967687438604f20284129602077686572653acc2d2060416020697320746865206c656e677468206f6620607375636365737366756c5f6170706c69636174696f6e5f69647360142d2044423a242020202d204f2841292c23203c2f7765696768743e4c7570646174655f726f6c655f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e00014c6e65775f726f6c655f6163636f756e745f6964000130543a3a4163636f756e744964000324150155706461746520746865206173736f63696174656420726f6c65206163636f756e74206f66207468652061637469766520726567756c617220776f726b65722f6c6561642e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e286c656176655f726f6c65080124776f726b65725f696428012c576f726b657249643c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000424904c656176652074686520726f6c65206279207468652061637469766520776f726b65722e2823203c7765696768743e002423232057656967687438604f20285229602077686572653ab42d20605260206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e387465726d696e6174655f726f6c650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c7479450101504f7074696f6e3c42616c616e63654f663c543e3e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000528a05465726d696e617465207468652061637469766520776f726b657220627920746865206c6561642e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f207465726d696e61746520746865206c656164657220726f6c65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ad82d20605060206973207468652073697a65206070656e616c74792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c736c6173685f7374616b650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c747918013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e00062c7d01536c61736865732074686520726567756c617220776f726b6572207374616b652c2064656d616e64732061206c6561646572206f726967696e2e204e6f206c696d6974732c206e6f20616374696f6e73206f6e207a65726f207374616b652e3d01496620736c617368696e672062616c616e63652067726561746572207468616e20746865206578697374696e67207374616b65202d207374616b6520697320736c617368656420746f207a65726f2e19015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20736c61736820746865206c6561646572207374616b65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ae82d20605060206973207468652073697a65206f66206070656e616c6974792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3864656372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e00073021014465637265617365732074686520726567756c617220776f726b65722f6c656164207374616b6520616e642072657475726e73207468652072656d61696e64657220746f207468653901776f726b6572207374616b696e675f6163636f756e745f69642e2043616e2062652064656372656173656420746f207a65726f2c206e6f20616374696f6e73206f6e207a65726f207374616b652e944163636570747320746865207374616b6520616d6f756e7420746f2064656372656173652e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20646563726561736520746865206c6561646572207374616b65292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e38696e6372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e0008280501496e637265617365732074686520726567756c617220776f726b65722f6c656164207374616b652c2064656d616e6473206120776f726b6572206f726967696e2e6d014c6f636b7320746f6b656e732066726f6d2074686520776f726b6572207374616b696e675f6163636f756e745f696420657175616c20746f206e6577207374616b652e204e6f206c696d697473206f6e20746865207374616b652e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5077697468647261775f6170706c69636174696f6e0401386170706c69636174696f6e5f69642801344170706c69636174696f6e4964000924010157697468647261772074686520776f726b6572206170706c69636174696f6e2e2043616e20626520646f6e652062792074686520776f726b6572206f6e6c792e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3863616e63656c5f6f70656e696e670401286f70656e696e675f69642801244f70656e696e674964000a28dc43616e63656c20616e206f70656e696e6720666f722074686520726567756c617220776f726b65722f6c65616420706f736974696f6e2e550152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2063616e63656c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e287365745f6275646765740401286e65775f62756467657418013042616c616e63654f663c543e000b28a0536574732061206e65772062756467657420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e547570646174655f7265776172645f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e0001546e65775f7265776172645f6163636f756e745f6964000130543a3a4163636f756e744964000c2469015570646174652074686520726577617264206163636f756e74206173736f6369617465642077697468206120736574207265776172642072656c6174696f6e7368697020666f72207468652061637469766520776f726b65722e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e507570646174655f7265776172645f616d6f756e74080124776f726b65725f696428012c576f726b657249643c543e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e000d28c855706461746520746865207265776172642070657220626c6f636b20666f72207468652061637469766520776f726b65722e310152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20757064617465206c656164657227732072657761726420616d6f756e74292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3c7365745f7374617475735f7465787404012c7374617475735f746578743101013c4f7074696f6e3c5665633c75383e3e000e30b4536574732061206e657720737461747573207465787420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e002423232057656967687438604f20285329602077686572653a4d012d20605360206973207468652073697a65206f662074686520636f6e74656e7473206f6620607374617475735f746578746020696e206b696c6f6279746573207768656e206974206973206e6f74206e6f6e6500142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e447370656e645f66726f6d5f6275646765740c01286163636f756e745f6964000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000f28a85472616e73666572732073706563696669656420616d6f756e7420746f20616e79206163636f756e742e5c5265717569726573206c6561646572206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6466756e645f776f726b696e675f67726f75705f6275646765740c01246d656d6265725f696428012c4d656d62657249643c543e000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c6530011c5665633c75383e0010209846756e6420776f726b696e672067726f7570206275646765742062792061206d656d6265722e203c7765696768743e0024232320576569676874c4604f202831296020446f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c6c6561645f72656d61726b04010c6d736730011c5665633c75383e0011284c4c6561642072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e34776f726b65725f72656d61726b080124776f726b65725f696428012c576f726b657249643c543e00010c6d736730011c5665633c75383e00122854576f726b65722072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e8106085070616c6c65745f776f726b696e675f67726f75701043616c6c08045400044900014c2c6164645f6f70656e696e6710012c6465736372697074696f6e30011c5665633c75383e0001306f70656e696e675f747970657d03012c4f70656e696e67547970650001307374616b655f706f6c696379610301a45374616b65506f6c6963793c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e3e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e00002cc44164642061206a6f62206f70656e696e6720666f72206120726567756c617220776f726b65722f6c65616420726f6c652e490152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20616464206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e002423232057656967687438604f20284429602077686572653abc2d20604460206973207468652073697a65206f6620606465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e406170706c795f6f6e5f6f70656e696e67040104708103016c4170706c794f6e4f70656e696e67506172616d65746572733c543e000128684170706c79206f6e206120776f726b6572206f70656e696e672e002823203c7765696768743e002423232057656967687438604f20284429602077686572653ac42d20604460206973207468652073697a65206f662060702e6465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3066696c6c5f6f70656e696e670801286f70656e696e675f69642801244f70656e696e6749640001687375636365737366756c5f6170706c69636174696f6e5f6964736901015c42547265655365743c4170706c69636174696f6e49643e000228ac46696c6c206f70656e696e6720666f722074686520726567756c61722f6c65616420706f736974696f6e2e4d0152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2066696c6c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e2823203c7765696768743e002423232057656967687438604f20284129602077686572653acc2d2060416020697320746865206c656e677468206f6620607375636365737366756c5f6170706c69636174696f6e5f69647360142d2044423a242020202d204f2841292c23203c2f7765696768743e4c7570646174655f726f6c655f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e00014c6e65775f726f6c655f6163636f756e745f6964000130543a3a4163636f756e744964000324150155706461746520746865206173736f63696174656420726f6c65206163636f756e74206f66207468652061637469766520726567756c617220776f726b65722f6c6561642e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e286c656176655f726f6c65080124776f726b65725f696428012c576f726b657249643c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000424904c656176652074686520726f6c65206279207468652061637469766520776f726b65722e2823203c7765696768743e002423232057656967687438604f20285229602077686572653ab42d20605260206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e387465726d696e6174655f726f6c650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c7479450101504f7074696f6e3c42616c616e63654f663c543e3e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000528a05465726d696e617465207468652061637469766520776f726b657220627920746865206c6561642e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f207465726d696e61746520746865206c656164657220726f6c65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ad82d20605060206973207468652073697a65206070656e616c74792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c736c6173685f7374616b650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c747918013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e00062c7d01536c61736865732074686520726567756c617220776f726b6572207374616b652c2064656d616e64732061206c6561646572206f726967696e2e204e6f206c696d6974732c206e6f20616374696f6e73206f6e207a65726f207374616b652e3d01496620736c617368696e672062616c616e63652067726561746572207468616e20746865206578697374696e67207374616b65202d207374616b6520697320736c617368656420746f207a65726f2e19015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20736c61736820746865206c6561646572207374616b65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ae82d20605060206973207468652073697a65206f66206070656e616c6974792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3864656372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e00073021014465637265617365732074686520726567756c617220776f726b65722f6c656164207374616b6520616e642072657475726e73207468652072656d61696e64657220746f207468653901776f726b6572207374616b696e675f6163636f756e745f69642e2043616e2062652064656372656173656420746f207a65726f2c206e6f20616374696f6e73206f6e207a65726f207374616b652e944163636570747320746865207374616b6520616d6f756e7420746f2064656372656173652e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20646563726561736520746865206c6561646572207374616b65292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e38696e6372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e0008280501496e637265617365732074686520726567756c617220776f726b65722f6c656164207374616b652c2064656d616e6473206120776f726b6572206f726967696e2e6d014c6f636b7320746f6b656e732066726f6d2074686520776f726b6572207374616b696e675f6163636f756e745f696420657175616c20746f206e6577207374616b652e204e6f206c696d697473206f6e20746865207374616b652e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5077697468647261775f6170706c69636174696f6e0401386170706c69636174696f6e5f69642801344170706c69636174696f6e4964000924010157697468647261772074686520776f726b6572206170706c69636174696f6e2e2043616e20626520646f6e652062792074686520776f726b6572206f6e6c792e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3863616e63656c5f6f70656e696e670401286f70656e696e675f69642801244f70656e696e674964000a28dc43616e63656c20616e206f70656e696e6720666f722074686520726567756c617220776f726b65722f6c65616420706f736974696f6e2e550152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2063616e63656c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e287365745f6275646765740401286e65775f62756467657418013042616c616e63654f663c543e000b28a0536574732061206e65772062756467657420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e547570646174655f7265776172645f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e0001546e65775f7265776172645f6163636f756e745f6964000130543a3a4163636f756e744964000c2469015570646174652074686520726577617264206163636f756e74206173736f6369617465642077697468206120736574207265776172642072656c6174696f6e7368697020666f72207468652061637469766520776f726b65722e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e507570646174655f7265776172645f616d6f756e74080124776f726b65725f696428012c576f726b657249643c543e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e000d28c855706461746520746865207265776172642070657220626c6f636b20666f72207468652061637469766520776f726b65722e310152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20757064617465206c656164657227732072657761726420616d6f756e74292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3c7365745f7374617475735f7465787404012c7374617475735f746578743101013c4f7074696f6e3c5665633c75383e3e000e30b4536574732061206e657720737461747573207465787420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e002423232057656967687438604f20285329602077686572653a4d012d20605360206973207468652073697a65206f662074686520636f6e74656e7473206f6620607374617475735f746578746020696e206b696c6f6279746573207768656e206974206973206e6f74206e6f6e6500142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e447370656e645f66726f6d5f6275646765740c01286163636f756e745f6964000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000f28a85472616e73666572732073706563696669656420616d6f756e7420746f20616e79206163636f756e742e5c5265717569726573206c6561646572206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6466756e645f776f726b696e675f67726f75705f6275646765740c01246d656d6265725f696428012c4d656d62657249643c543e000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c6530011c5665633c75383e0010209846756e6420776f726b696e672067726f7570206275646765742062792061206d656d6265722e203c7765696768743e0024232320576569676874c4604f202831296020446f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c6c6561645f72656d61726b04010c6d736730011c5665633c75383e0011284c4c6561642072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e34776f726b65725f72656d61726b080124776f726b65725f696428012c576f726b657249643c543e00010c6d736730011c5665633c75383e00122854576f726b65722072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e8506085070616c6c65745f776f726b696e675f67726f75701043616c6c08045400044900014c2c6164645f6f70656e696e6710012c6465736372697074696f6e30011c5665633c75383e0001306f70656e696e675f747970657d03012c4f70656e696e67547970650001307374616b655f706f6c696379610301a45374616b65506f6c6963793c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e3e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e00002cc44164642061206a6f62206f70656e696e6720666f72206120726567756c617220776f726b65722f6c65616420726f6c652e490152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20616464206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e002423232057656967687438604f20284429602077686572653abc2d20604460206973207468652073697a65206f6620606465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e406170706c795f6f6e5f6f70656e696e67040104708103016c4170706c794f6e4f70656e696e67506172616d65746572733c543e000128684170706c79206f6e206120776f726b6572206f70656e696e672e002823203c7765696768743e002423232057656967687438604f20284429602077686572653ac42d20604460206973207468652073697a65206f662060702e6465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3066696c6c5f6f70656e696e670801286f70656e696e675f69642801244f70656e696e6749640001687375636365737366756c5f6170706c69636174696f6e5f6964736901015c42547265655365743c4170706c69636174696f6e49643e000228ac46696c6c206f70656e696e6720666f722074686520726567756c61722f6c65616420706f736974696f6e2e4d0152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2066696c6c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e2823203c7765696768743e002423232057656967687438604f20284129602077686572653acc2d2060416020697320746865206c656e677468206f6620607375636365737366756c5f6170706c69636174696f6e5f69647360142d2044423a242020202d204f2841292c23203c2f7765696768743e4c7570646174655f726f6c655f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e00014c6e65775f726f6c655f6163636f756e745f6964000130543a3a4163636f756e744964000324150155706461746520746865206173736f63696174656420726f6c65206163636f756e74206f66207468652061637469766520726567756c617220776f726b65722f6c6561642e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e286c656176655f726f6c65080124776f726b65725f696428012c576f726b657249643c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000424904c656176652074686520726f6c65206279207468652061637469766520776f726b65722e2823203c7765696768743e002423232057656967687438604f20285229602077686572653ab42d20605260206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e387465726d696e6174655f726f6c650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c7479450101504f7074696f6e3c42616c616e63654f663c543e3e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000528a05465726d696e617465207468652061637469766520776f726b657220627920746865206c6561642e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f207465726d696e61746520746865206c656164657220726f6c65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ad82d20605060206973207468652073697a65206070656e616c74792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c736c6173685f7374616b650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c747918013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e00062c7d01536c61736865732074686520726567756c617220776f726b6572207374616b652c2064656d616e64732061206c6561646572206f726967696e2e204e6f206c696d6974732c206e6f20616374696f6e73206f6e207a65726f207374616b652e3d01496620736c617368696e672062616c616e63652067726561746572207468616e20746865206578697374696e67207374616b65202d207374616b6520697320736c617368656420746f207a65726f2e19015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20736c61736820746865206c6561646572207374616b65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ae82d20605060206973207468652073697a65206f66206070656e616c6974792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3864656372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e00073021014465637265617365732074686520726567756c617220776f726b65722f6c656164207374616b6520616e642072657475726e73207468652072656d61696e64657220746f207468653901776f726b6572207374616b696e675f6163636f756e745f69642e2043616e2062652064656372656173656420746f207a65726f2c206e6f20616374696f6e73206f6e207a65726f207374616b652e944163636570747320746865207374616b6520616d6f756e7420746f2064656372656173652e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20646563726561736520746865206c6561646572207374616b65292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e38696e6372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e0008280501496e637265617365732074686520726567756c617220776f726b65722f6c656164207374616b652c2064656d616e6473206120776f726b6572206f726967696e2e6d014c6f636b7320746f6b656e732066726f6d2074686520776f726b6572207374616b696e675f6163636f756e745f696420657175616c20746f206e6577207374616b652e204e6f206c696d697473206f6e20746865207374616b652e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5077697468647261775f6170706c69636174696f6e0401386170706c69636174696f6e5f69642801344170706c69636174696f6e4964000924010157697468647261772074686520776f726b6572206170706c69636174696f6e2e2043616e20626520646f6e652062792074686520776f726b6572206f6e6c792e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3863616e63656c5f6f70656e696e670401286f70656e696e675f69642801244f70656e696e674964000a28dc43616e63656c20616e206f70656e696e6720666f722074686520726567756c617220776f726b65722f6c65616420706f736974696f6e2e550152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2063616e63656c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e287365745f6275646765740401286e65775f62756467657418013042616c616e63654f663c543e000b28a0536574732061206e65772062756467657420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e547570646174655f7265776172645f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e0001546e65775f7265776172645f6163636f756e745f6964000130543a3a4163636f756e744964000c2469015570646174652074686520726577617264206163636f756e74206173736f6369617465642077697468206120736574207265776172642072656c6174696f6e7368697020666f72207468652061637469766520776f726b65722e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e507570646174655f7265776172645f616d6f756e74080124776f726b65725f696428012c576f726b657249643c543e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e000d28c855706461746520746865207265776172642070657220626c6f636b20666f72207468652061637469766520776f726b65722e310152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20757064617465206c656164657227732072657761726420616d6f756e74292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3c7365745f7374617475735f7465787404012c7374617475735f746578743101013c4f7074696f6e3c5665633c75383e3e000e30b4536574732061206e657720737461747573207465787420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e002423232057656967687438604f20285329602077686572653a4d012d20605360206973207468652073697a65206f662074686520636f6e74656e7473206f6620607374617475735f746578746020696e206b696c6f6279746573207768656e206974206973206e6f74206e6f6e6500142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e447370656e645f66726f6d5f6275646765740c01286163636f756e745f6964000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000f28a85472616e73666572732073706563696669656420616d6f756e7420746f20616e79206163636f756e742e5c5265717569726573206c6561646572206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6466756e645f776f726b696e675f67726f75705f6275646765740c01246d656d6265725f696428012c4d656d62657249643c543e000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c6530011c5665633c75383e0010209846756e6420776f726b696e672067726f7570206275646765742062792061206d656d6265722e203c7765696768743e0024232320576569676874c4604f202831296020446f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c6c6561645f72656d61726b04010c6d736730011c5665633c75383e0011284c4c6561642072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e34776f726b65725f72656d61726b080124776f726b65725f696428012c576f726b657249643c543e00010c6d736730011c5665633c75383e00122854576f726b65722072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e8906085070616c6c65745f776f726b696e675f67726f75701043616c6c08045400044900014c2c6164645f6f70656e696e6710012c6465736372697074696f6e30011c5665633c75383e0001306f70656e696e675f747970657d03012c4f70656e696e67547970650001307374616b655f706f6c696379610301a45374616b65506f6c6963793c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e3e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e00002cc44164642061206a6f62206f70656e696e6720666f72206120726567756c617220776f726b65722f6c65616420726f6c652e490152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20616464206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e002423232057656967687438604f20284429602077686572653abc2d20604460206973207468652073697a65206f6620606465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e406170706c795f6f6e5f6f70656e696e67040104708103016c4170706c794f6e4f70656e696e67506172616d65746572733c543e000128684170706c79206f6e206120776f726b6572206f70656e696e672e002823203c7765696768743e002423232057656967687438604f20284429602077686572653ac42d20604460206973207468652073697a65206f662060702e6465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3066696c6c5f6f70656e696e670801286f70656e696e675f69642801244f70656e696e6749640001687375636365737366756c5f6170706c69636174696f6e5f6964736901015c42547265655365743c4170706c69636174696f6e49643e000228ac46696c6c206f70656e696e6720666f722074686520726567756c61722f6c65616420706f736974696f6e2e4d0152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2066696c6c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e2823203c7765696768743e002423232057656967687438604f20284129602077686572653acc2d2060416020697320746865206c656e677468206f6620607375636365737366756c5f6170706c69636174696f6e5f69647360142d2044423a242020202d204f2841292c23203c2f7765696768743e4c7570646174655f726f6c655f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e00014c6e65775f726f6c655f6163636f756e745f6964000130543a3a4163636f756e744964000324150155706461746520746865206173736f63696174656420726f6c65206163636f756e74206f66207468652061637469766520726567756c617220776f726b65722f6c6561642e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e286c656176655f726f6c65080124776f726b65725f696428012c576f726b657249643c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000424904c656176652074686520726f6c65206279207468652061637469766520776f726b65722e2823203c7765696768743e002423232057656967687438604f20285229602077686572653ab42d20605260206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e387465726d696e6174655f726f6c650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c7479450101504f7074696f6e3c42616c616e63654f663c543e3e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000528a05465726d696e617465207468652061637469766520776f726b657220627920746865206c6561642e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f207465726d696e61746520746865206c656164657220726f6c65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ad82d20605060206973207468652073697a65206070656e616c74792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c736c6173685f7374616b650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c747918013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e00062c7d01536c61736865732074686520726567756c617220776f726b6572207374616b652c2064656d616e64732061206c6561646572206f726967696e2e204e6f206c696d6974732c206e6f20616374696f6e73206f6e207a65726f207374616b652e3d01496620736c617368696e672062616c616e63652067726561746572207468616e20746865206578697374696e67207374616b65202d207374616b6520697320736c617368656420746f207a65726f2e19015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20736c61736820746865206c6561646572207374616b65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ae82d20605060206973207468652073697a65206f66206070656e616c6974792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3864656372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e00073021014465637265617365732074686520726567756c617220776f726b65722f6c656164207374616b6520616e642072657475726e73207468652072656d61696e64657220746f207468653901776f726b6572207374616b696e675f6163636f756e745f69642e2043616e2062652064656372656173656420746f207a65726f2c206e6f20616374696f6e73206f6e207a65726f207374616b652e944163636570747320746865207374616b6520616d6f756e7420746f2064656372656173652e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20646563726561736520746865206c6561646572207374616b65292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e38696e6372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e0008280501496e637265617365732074686520726567756c617220776f726b65722f6c656164207374616b652c2064656d616e6473206120776f726b6572206f726967696e2e6d014c6f636b7320746f6b656e732066726f6d2074686520776f726b6572207374616b696e675f6163636f756e745f696420657175616c20746f206e6577207374616b652e204e6f206c696d697473206f6e20746865207374616b652e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5077697468647261775f6170706c69636174696f6e0401386170706c69636174696f6e5f69642801344170706c69636174696f6e4964000924010157697468647261772074686520776f726b6572206170706c69636174696f6e2e2043616e20626520646f6e652062792074686520776f726b6572206f6e6c792e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3863616e63656c5f6f70656e696e670401286f70656e696e675f69642801244f70656e696e674964000a28dc43616e63656c20616e206f70656e696e6720666f722074686520726567756c617220776f726b65722f6c65616420706f736974696f6e2e550152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2063616e63656c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e287365745f6275646765740401286e65775f62756467657418013042616c616e63654f663c543e000b28a0536574732061206e65772062756467657420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e547570646174655f7265776172645f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e0001546e65775f7265776172645f6163636f756e745f6964000130543a3a4163636f756e744964000c2469015570646174652074686520726577617264206163636f756e74206173736f6369617465642077697468206120736574207265776172642072656c6174696f6e7368697020666f72207468652061637469766520776f726b65722e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e507570646174655f7265776172645f616d6f756e74080124776f726b65725f696428012c576f726b657249643c543e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e000d28c855706461746520746865207265776172642070657220626c6f636b20666f72207468652061637469766520776f726b65722e310152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20757064617465206c656164657227732072657761726420616d6f756e74292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3c7365745f7374617475735f7465787404012c7374617475735f746578743101013c4f7074696f6e3c5665633c75383e3e000e30b4536574732061206e657720737461747573207465787420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e002423232057656967687438604f20285329602077686572653a4d012d20605360206973207468652073697a65206f662074686520636f6e74656e7473206f6620607374617475735f746578746020696e206b696c6f6279746573207768656e206974206973206e6f74206e6f6e6500142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e447370656e645f66726f6d5f6275646765740c01286163636f756e745f6964000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000f28a85472616e73666572732073706563696669656420616d6f756e7420746f20616e79206163636f756e742e5c5265717569726573206c6561646572206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6466756e645f776f726b696e675f67726f75705f6275646765740c01246d656d6265725f696428012c4d656d62657249643c543e000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c6530011c5665633c75383e0010209846756e6420776f726b696e672067726f7570206275646765742062792061206d656d6265722e203c7765696768743e0024232320576569676874c4604f202831296020446f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c6c6561645f72656d61726b04010c6d736730011c5665633c75383e0011284c4c6561642072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e34776f726b65725f72656d61726b080124776f726b65725f696428012c576f726b657249643c543e00010c6d736730011c5665633c75383e00122854576f726b65722072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e8d06085070616c6c65745f776f726b696e675f67726f75701043616c6c08045400044900014c2c6164645f6f70656e696e6710012c6465736372697074696f6e30011c5665633c75383e0001306f70656e696e675f747970657d03012c4f70656e696e67547970650001307374616b655f706f6c696379610301a45374616b65506f6c6963793c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e3e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e00002cc44164642061206a6f62206f70656e696e6720666f72206120726567756c617220776f726b65722f6c65616420726f6c652e490152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20616464206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e002423232057656967687438604f20284429602077686572653abc2d20604460206973207468652073697a65206f6620606465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e406170706c795f6f6e5f6f70656e696e67040104708103016c4170706c794f6e4f70656e696e67506172616d65746572733c543e000128684170706c79206f6e206120776f726b6572206f70656e696e672e002823203c7765696768743e002423232057656967687438604f20284429602077686572653ac42d20604460206973207468652073697a65206f662060702e6465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3066696c6c5f6f70656e696e670801286f70656e696e675f69642801244f70656e696e6749640001687375636365737366756c5f6170706c69636174696f6e5f6964736901015c42547265655365743c4170706c69636174696f6e49643e000228ac46696c6c206f70656e696e6720666f722074686520726567756c61722f6c65616420706f736974696f6e2e4d0152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2066696c6c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e2823203c7765696768743e002423232057656967687438604f20284129602077686572653acc2d2060416020697320746865206c656e677468206f6620607375636365737366756c5f6170706c69636174696f6e5f69647360142d2044423a242020202d204f2841292c23203c2f7765696768743e4c7570646174655f726f6c655f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e00014c6e65775f726f6c655f6163636f756e745f6964000130543a3a4163636f756e744964000324150155706461746520746865206173736f63696174656420726f6c65206163636f756e74206f66207468652061637469766520726567756c617220776f726b65722f6c6561642e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e286c656176655f726f6c65080124776f726b65725f696428012c576f726b657249643c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000424904c656176652074686520726f6c65206279207468652061637469766520776f726b65722e2823203c7765696768743e002423232057656967687438604f20285229602077686572653ab42d20605260206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e387465726d696e6174655f726f6c650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c7479450101504f7074696f6e3c42616c616e63654f663c543e3e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000528a05465726d696e617465207468652061637469766520776f726b657220627920746865206c6561642e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f207465726d696e61746520746865206c656164657220726f6c65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ad82d20605060206973207468652073697a65206070656e616c74792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c736c6173685f7374616b650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c747918013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e00062c7d01536c61736865732074686520726567756c617220776f726b6572207374616b652c2064656d616e64732061206c6561646572206f726967696e2e204e6f206c696d6974732c206e6f20616374696f6e73206f6e207a65726f207374616b652e3d01496620736c617368696e672062616c616e63652067726561746572207468616e20746865206578697374696e67207374616b65202d207374616b6520697320736c617368656420746f207a65726f2e19015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20736c61736820746865206c6561646572207374616b65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ae82d20605060206973207468652073697a65206f66206070656e616c6974792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3864656372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e00073021014465637265617365732074686520726567756c617220776f726b65722f6c656164207374616b6520616e642072657475726e73207468652072656d61696e64657220746f207468653901776f726b6572207374616b696e675f6163636f756e745f69642e2043616e2062652064656372656173656420746f207a65726f2c206e6f20616374696f6e73206f6e207a65726f207374616b652e944163636570747320746865207374616b6520616d6f756e7420746f2064656372656173652e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20646563726561736520746865206c6561646572207374616b65292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e38696e6372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e0008280501496e637265617365732074686520726567756c617220776f726b65722f6c656164207374616b652c2064656d616e6473206120776f726b6572206f726967696e2e6d014c6f636b7320746f6b656e732066726f6d2074686520776f726b6572207374616b696e675f6163636f756e745f696420657175616c20746f206e6577207374616b652e204e6f206c696d697473206f6e20746865207374616b652e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5077697468647261775f6170706c69636174696f6e0401386170706c69636174696f6e5f69642801344170706c69636174696f6e4964000924010157697468647261772074686520776f726b6572206170706c69636174696f6e2e2043616e20626520646f6e652062792074686520776f726b6572206f6e6c792e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3863616e63656c5f6f70656e696e670401286f70656e696e675f69642801244f70656e696e674964000a28dc43616e63656c20616e206f70656e696e6720666f722074686520726567756c617220776f726b65722f6c65616420706f736974696f6e2e550152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2063616e63656c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e287365745f6275646765740401286e65775f62756467657418013042616c616e63654f663c543e000b28a0536574732061206e65772062756467657420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e547570646174655f7265776172645f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e0001546e65775f7265776172645f6163636f756e745f6964000130543a3a4163636f756e744964000c2469015570646174652074686520726577617264206163636f756e74206173736f6369617465642077697468206120736574207265776172642072656c6174696f6e7368697020666f72207468652061637469766520776f726b65722e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e507570646174655f7265776172645f616d6f756e74080124776f726b65725f696428012c576f726b657249643c543e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e000d28c855706461746520746865207265776172642070657220626c6f636b20666f72207468652061637469766520776f726b65722e310152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20757064617465206c656164657227732072657761726420616d6f756e74292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3c7365745f7374617475735f7465787404012c7374617475735f746578743101013c4f7074696f6e3c5665633c75383e3e000e30b4536574732061206e657720737461747573207465787420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e002423232057656967687438604f20285329602077686572653a4d012d20605360206973207468652073697a65206f662074686520636f6e74656e7473206f6620607374617475735f746578746020696e206b696c6f6279746573207768656e206974206973206e6f74206e6f6e6500142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e447370656e645f66726f6d5f6275646765740c01286163636f756e745f6964000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000f28a85472616e73666572732073706563696669656420616d6f756e7420746f20616e79206163636f756e742e5c5265717569726573206c6561646572206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6466756e645f776f726b696e675f67726f75705f6275646765740c01246d656d6265725f696428012c4d656d62657249643c543e000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c6530011c5665633c75383e0010209846756e6420776f726b696e672067726f7570206275646765742062792061206d656d6265722e203c7765696768743e0024232320576569676874c4604f202831296020446f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c6c6561645f72656d61726b04010c6d736730011c5665633c75383e0011284c4c6561642072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e34776f726b65725f72656d61726b080124776f726b65725f696428012c576f726b657249643c543e00010c6d736730011c5665633c75383e00122854576f726b65722072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e910608586a6f7973747265616d5f6e6f64655f72756e74696d65304f726967696e43616c6c65720001081873797374656d0400950601746672616d655f73797374656d3a3a4f726967696e3c52756e74696d653e00000010566f69640400990601110173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a566f69640001000095060c346672616d655f737570706f7274206469737061746368245261774f726967696e04244163636f756e7449640100010c10526f6f74000000185369676e656404000001244163636f756e744964000100104e6f6e65000200009906081c73705f636f726510566f6964000100009d060c3870616c6c65745f7574696c6974791870616c6c6574144572726f7204045400010430546f6f4d616e7943616c6c730000045c546f6f206d616e792063616c6c7320626174636865642e04b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a090909a1060c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401a506045300000400a90601185665633c543e0000a506000004084d042800a906000002a50600ad060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540104045300000400b10601185665633c543e0000b1060000020400b50604184f7074696f6e04045401b9060108104e6f6e6500000010536f6d650400b9060000010000b9060c4473705f636f6e73656e7375735f626162651c646967657374732450726544696765737400010c1c5072696d6172790400bd0601405072696d617279507265446967657374000100385365636f6e64617279506c61696e0400c106015c5365636f6e64617279506c61696e507265446967657374000200305365636f6e646172795652460400c50601545365636f6e6461727956524650726544696765737400030000bd060c4473705f636f6e73656e7375735f626162651c64696765737473405072696d617279507265446967657374000010013c617574686f726974795f696e64657810015473757065723a3a417574686f72697479496e646578000110736c6f7451040110536c6f740001287672665f6f75747075740401245652464f75747075740001247672665f70726f6f66a105012056524650726f6f660000c1060c4473705f636f6e73656e7375735f626162651c646967657374735c5365636f6e64617279506c61696e507265446967657374000008013c617574686f726974795f696e64657810015473757065723a3a417574686f72697479496e646578000110736c6f7451040110536c6f740000c5060c4473705f636f6e73656e7375735f626162651c64696765737473545365636f6e64617279565246507265446967657374000010013c617574686f726974795f696e64657810015473757065723a3a417574686f72697479496e646578000110736c6f7451040110536c6f740001287672665f6f75747075740401245652464f75747075740001247672665f70726f6f66a105012056524650726f6f660000c90604184f7074696f6e04045401040108104e6f6e6500000010536f6d650400040000010000cd06084473705f636f6e73656e7375735f62616265584261626545706f6368436f6e66696775726174696f6e00000801046379030128287536342c2075363429000134616c6c6f7765645f736c6f74735d040130416c6c6f776564536c6f74730000d1060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401bd02045300000400b90201185665633c543e0000d5060c2c70616c6c65745f626162651870616c6c6574144572726f7204045400011060496e76616c696445717569766f636174696f6e50726f6f660000043101416e2065717569766f636174696f6e2070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e60496e76616c69644b65794f776e65727368697050726f6f66000104310141206b6579206f776e6572736869702070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e584475706c69636174654f6666656e63655265706f727400020415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e50496e76616c6964436f6e66696775726174696f6e0003048c5375626d697474656420636f6e66696775726174696f6e20697320696e76616c69642e04b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a090909d9060c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401dd06045300000400e50601185665633c543e0000dd06083c70616c6c65745f62616c616e6365732c42616c616e63654c6f636b041c42616c616e63650118000c01086964250401384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e73e106011c526561736f6e730000e106083c70616c6c65745f62616c616e6365731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c00020000e506000002dd0600e9060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401ed06045300000400f10601185665633c543e0000ed06083c70616c6c65745f62616c616e6365732c52657365727665446174610844526573657276654964656e7469666965720125041c42616c616e6365011800080108696425040144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e63650000f106000002ed0600f5060c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001203856657374696e6742616c616e63650000049856657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c7565544c69717569646974795265737472696374696f6e73000104c44163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c4c496e73756666696369656e7442616c616e63650002047842616c616e636520746f6f206c6f7720746f2073656e642076616c75652e484578697374656e7469616c4465706f736974000304e856616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f736974244b656570416c6976650004048c5472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e745c4578697374696e6756657374696e675363686564756c65000504c8412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742c446561644163636f756e740006048842656e6566696369617279206163636f756e74206d757374207072652d65786973743c546f6f4d616e795265736572766573000704ac4e756d626572206f66206e616d656420726573657276657320657863656564204d6178526573657276657304b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a090909f9060c3473705f61726974686d657469632c66697865645f706f696e742446697865645531323800000400180110753132380000fd06086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e74000000085632000100000107089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f7068617365345265616479536f6c7574696f6e04045400000c0120737570706f727473050701b0426f756e646564537570706f7274733c543a3a4163636f756e7449642c20543a3a4d617857696e6e6572733e00011473636f72659c0134456c656374696f6e53636f726500011c636f6d7075746590013c456c656374696f6e436f6d70757465000005070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014905045300000400450501185665633c543e00000907089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f706861736534526f756e64536e617073686f740404540000080118766f746572730d07013c5665633c566f7465724f663c543e3e00011c746172676574735d0501445665633c543a3a4163636f756e7449643e00000d0700000211070011070000040c002815070015070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401000453000004005d0501185665633c543e000019070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454011d07045300000400210701185665633c543e00001d070000040c9c10100021070000021d070025070c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f7068617365187369676e6564405369676e65645375626d697373696f6e0c244163636f756e74496401001c42616c616e6365011820536f6c7574696f6e0171040010010c77686f0001244163636f756e74496400011c6465706f73697418011c42616c616e63650001307261775f736f6c7574696f6e6d040154526177536f6c7574696f6e3c536f6c7574696f6e3e00012063616c6c5f66656518011c42616c616e6365000029070c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173651870616c6c6574144572726f720404540001386850726544697370617463684561726c795375626d697373696f6e000004645375626d697373696f6e2077617320746f6f206561726c792e6c507265446973706174636857726f6e6757696e6e6572436f756e740001048857726f6e67206e756d626572206f662077696e6e6572732070726573656e7465642e6450726544697370617463685765616b5375626d697373696f6e000204905375626d697373696f6e2077617320746f6f207765616b2c2073636f72652d776973652e3c5369676e6564517565756546756c6c0003044901546865207175657565207761732066756c6c2c20616e642074686520736f6c7574696f6e20776173206e6f7420626574746572207468616e20616e79206f6620746865206578697374696e67206f6e65732e585369676e656443616e6e6f745061794465706f73697400040494546865206f726967696e206661696c656420746f2070617920746865206465706f7369742e505369676e6564496e76616c69645769746e657373000504a05769746e657373206461746120746f20646973706174636861626c6520697320696e76616c69642e4c5369676e6564546f6f4d756368576569676874000604b8546865207369676e6564207375626d697373696f6e20636f6e73756d657320746f6f206d756368207765696768743c4f637743616c6c57726f6e67457261000704984f4357207375626d697474656420736f6c7574696f6e20666f722077726f6e6720726f756e645c4d697373696e67536e617073686f744d65746164617461000804a8536e617073686f74206d657461646174612073686f756c6420657869737420627574206469646e27742e58496e76616c69645375626d697373696f6e496e646578000904d06053656c663a3a696e736572745f7375626d697373696f6e602072657475726e656420616e20696e76616c696420696e6465782e3843616c6c4e6f74416c6c6f776564000a04985468652063616c6c206973206e6f7420616c6c6f776564206174207468697320706f696e742e3846616c6c6261636b4661696c6564000b044c5468652066616c6c6261636b206661696c65642c426f756e644e6f744d6574000c0448536f6d6520626f756e64206e6f74206d657438546f6f4d616e7957696e6e657273000d049c5375626d697474656420736f6c7574696f6e2068617320746f6f206d616e792077696e6e657273040d014572726f72206f66207468652070616c6c657420746861742063616e2062652072657475726e656420696e20726573706f6e736520746f20646973706174636865732e2d07083870616c6c65745f7374616b696e67345374616b696e674c656467657204045400001401147374617368000130543a3a4163636f756e744964000114746f74616cec013042616c616e63654f663c543e000118616374697665ec013042616c616e63654f663c543e000124756e6c6f636b696e67310701f0426f756e6465645665633c556e6c6f636b4368756e6b3c42616c616e63654f663c543e3e2c20543a3a4d6178556e6c6f636b696e674368756e6b733e00013c636c61696d65645f726577617264733d070194426f756e6465645665633c457261496e6465782c20543a3a486973746f727944657074683e000031070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454013507045300000400390701185665633c543e00003507083870616c6c65745f7374616b696e672c556e6c6f636b4368756e6b041c42616c616e636501180008011476616c7565ec011c42616c616e636500010c657261e5030120457261496e646578000039070000023507003d070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540110045300000400650501185665633c543e00004107083870616c6c65745f7374616b696e672c4e6f6d696e6174696f6e7304045400000c011c74617267657473150701ac426f756e6465645665633c543a3a4163636f756e7449642c20543a3a4d61784e6f6d696e6174696f6e733e0001307375626d69747465645f696e100120457261496e64657800012873757070726573736564980110626f6f6c00004507083870616c6c65745f7374616b696e6734416374697665457261496e666f0000080114696e646578100120457261496e64657800011473746172743501012c4f7074696f6e3c7536343e00004907000004081000004d07083870616c6c65745f7374616b696e673c457261526577617264506f696e747304244163636f756e744964010000080114746f74616c10012c526577617264506f696e74000128696e646976696475616c5107018042547265654d61703c4163636f756e7449642c20526577617264506f696e743e00005107042042547265654d617008044b010004560110000400550700000055070000025907005907000004080010005d070000026107006107083870616c6c65745f7374616b696e6738556e6170706c696564536c61736808244163636f756e74496401001c42616c616e636501180014012476616c696461746f720001244163636f756e74496400010c6f776e18011c42616c616e63650001186f7468657273510501645665633c284163636f756e7449642c2042616c616e6365293e0001247265706f72746572735d0501385665633c4163636f756e7449643e0001187061796f757418011c42616c616e63650000650700000408ac180069070c3870616c6c65745f7374616b696e6720736c617368696e6734536c617368696e675370616e7300001001287370616e5f696e6465781001245370616e496e6465780001286c6173745f7374617274100120457261496e6465780001486c6173745f6e6f6e7a65726f5f736c617368100120457261496e6465780001147072696f72650501345665633c457261496e6465783e00006d070c3870616c6c65745f7374616b696e6720736c617368696e67285370616e5265636f7264041c42616c616e636501180008011c736c617368656418011c42616c616e6365000120706169645f6f757418011c42616c616e6365000071070000027507007507000004081098007907103870616c6c65745f7374616b696e671870616c6c65741870616c6c6574144572726f72040454000168344e6f74436f6e74726f6c6c6572000004644e6f74206120636f6e74726f6c6c6572206163636f756e742e204e6f745374617368000104504e6f742061207374617368206163636f756e742e34416c7265616479426f6e64656400020460537461736820697320616c726561647920626f6e6465642e34416c726561647950616972656400030474436f6e74726f6c6c657220697320616c7265616479207061697265642e30456d7074795461726765747300040460546172676574732063616e6e6f7420626520656d7074792e384475706c6963617465496e646578000504404475706c696361746520696e6465782e44496e76616c6964536c617368496e64657800060484536c617368207265636f726420696e646578206f7574206f6620626f756e64732e40496e73756666696369656e74426f6e6400070c590143616e6e6f74206861766520612076616c696461746f72206f72206e6f6d696e61746f7220726f6c652c20776974682076616c7565206c657373207468616e20746865206d696e696d756d20646566696e65642062793d01676f7665726e616e6365202873656520604d696e56616c696461746f72426f6e646020616e6420604d696e4e6f6d696e61746f72426f6e6460292e20496620756e626f6e64696e67206973207468651501696e74656e74696f6e2c20606368696c6c6020666972737420746f2072656d6f7665206f6e65277320726f6c652061732076616c696461746f722f6e6f6d696e61746f722e304e6f4d6f72654368756e6b730008049043616e206e6f74207363686564756c65206d6f726520756e6c6f636b206368756e6b732e344e6f556e6c6f636b4368756e6b000904a043616e206e6f74207265626f6e6420776974686f757420756e6c6f636b696e67206368756e6b732e3046756e646564546172676574000a04c8417474656d7074696e6720746f2074617267657420612073746173682074686174207374696c6c206861732066756e64732e48496e76616c6964457261546f526577617264000b0458496e76616c69642065726120746f207265776172642e68496e76616c69644e756d6265724f664e6f6d696e6174696f6e73000c0478496e76616c6964206e756d626572206f66206e6f6d696e6174696f6e732e484e6f74536f72746564416e64556e69717565000d04804974656d7320617265206e6f7420736f7274656420616e6420756e697175652e38416c7265616479436c61696d6564000e0409015265776172647320666f72207468697320657261206861766520616c7265616479206265656e20636c61696d656420666f7220746869732076616c696461746f722e54496e636f7272656374486973746f72794465707468000f04c0496e636f72726563742070726576696f757320686973746f727920646570746820696e7075742070726f76696465642e58496e636f7272656374536c617368696e675370616e73001004b0496e636f7272656374206e756d626572206f6620736c617368696e67207370616e732070726f76696465642e2042616453746174650011043901496e7465726e616c20737461746520686173206265636f6d6520736f6d65686f7720636f7272757074656420616e6420746865206f7065726174696f6e2063616e6e6f7420636f6e74696e75652e38546f6f4d616e795461726765747300120494546f6f206d616e79206e6f6d696e6174696f6e207461726765747320737570706c6965642e244261645461726765740013043d0141206e6f6d696e6174696f6e207461726765742077617320737570706c69656420746861742077617320626c6f636b6564206f72206f7468657277697365206e6f7420612076616c696461746f722e4043616e6e6f744368696c6c4f74686572001404550154686520757365722068617320656e6f75676820626f6e6420616e6420746875732063616e6e6f74206265206368696c6c656420666f72636566756c6c7920627920616e2065787465726e616c20706572736f6e2e44546f6f4d616e794e6f6d696e61746f72730015084d0154686572652061726520746f6f206d616e79206e6f6d696e61746f727320696e207468652073797374656d2e20476f7665726e616e6365206e6565647320746f2061646a75737420746865207374616b696e67b473657474696e677320746f206b656570207468696e6773207361666520666f72207468652072756e74696d652e44546f6f4d616e7956616c696461746f7273001608550154686572652061726520746f6f206d616e792076616c696461746f722063616e6469646174657320696e207468652073797374656d2e20476f7665726e616e6365206e6565647320746f2061646a75737420746865d47374616b696e672073657474696e677320746f206b656570207468696e6773207361666520666f72207468652072756e74696d652e40436f6d6d697373696f6e546f6f4c6f77001704e0436f6d6d697373696f6e20697320746f6f206c6f772e204d757374206265206174206c6561737420604d696e436f6d6d697373696f6e602e2c426f756e644e6f744d657400180458536f6d6520626f756e64206973206e6f74206d65742e44426f6e64696e6752657374726963746564001904e045787465726e616c207265737472696374696f6e2070726576656e747320626f6e64696e67207769746820676976656e206163636f756e7404b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a0909097d07000002810700810700000408007d05008507000004088907300089070c1c73705f636f72651863727970746f244b65795479706549640000040040011c5b75383b20345d00008d070c3870616c6c65745f73657373696f6e1870616c6c6574144572726f7204045400011430496e76616c696450726f6f6600000460496e76616c6964206f776e6572736869702070726f6f662e5c4e6f4173736f63696174656456616c696461746f7249640001049c4e6f206173736f6369617465642076616c696461746f7220494420666f72206163636f756e742e344475706c6963617465644b65790002046452656769737465726564206475706c6963617465206b65792e184e6f4b657973000304a44e6f206b65797320617265206173736f63696174656420776974682074686973206163636f756e742e244e6f4163636f756e7400040419014b65792073657474696e67206163636f756e74206973206e6f74206c6976652c20736f206974277320696d706f737369626c6520746f206173736f6369617465206b6579732e04744572726f7220666f72207468652073657373696f6e2070616c6c65742e9107000004082c10009507083870616c6c65745f6772616e6470612c53746f726564537461746504044e01100110104c6976650000003050656e64696e6750617573650801307363686564756c65645f61741001044e00011464656c61791001044e000100185061757365640002003450656e64696e67526573756d650801307363686564756c65645f61741001044e00011464656c61791001044e000300009907083870616c6c65745f6772616e6470614c53746f72656450656e64696e674368616e676508044e0110144c696d697400001001307363686564756c65645f61741001044e00011464656c61791001044e0001406e6578745f617574686f7269746965739d07016c426f756e646564417574686f726974794c6973743c4c696d69743e000118666f72636564010201244f7074696f6e3c4e3e00009d070c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401c8045300000400c401185665633c543e0000a1070c3870616c6c65745f6772616e6470611870616c6c6574144572726f7204045400011c2c50617573654661696c65640000080501417474656d707420746f207369676e616c204752414e445041207061757365207768656e2074686520617574686f72697479207365742069736e2774206c697665a42865697468657220706175736564206f7220616c72656164792070656e64696e67207061757365292e30526573756d654661696c65640001081101417474656d707420746f207369676e616c204752414e44504120726573756d65207768656e2074686520617574686f72697479207365742069736e277420706175736564a028656974686572206c697665206f7220616c72656164792070656e64696e6720726573756d65292e344368616e676550656e64696e67000204e8417474656d707420746f207369676e616c204752414e445041206368616e67652077697468206f6e6520616c72656164792070656e64696e672e1c546f6f536f6f6e000304bc43616e6e6f74207369676e616c20666f72636564206368616e676520736f20736f6f6e206166746572206c6173742e60496e76616c69644b65794f776e65727368697050726f6f66000404310141206b6579206f776e6572736869702070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e60496e76616c696445717569766f636174696f6e50726f6f660005043101416e2065717569766f636174696f6e2070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e584475706c69636174654f6666656e63655265706f727400060415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e04b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a090909a5070c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e646564566563080454018105045300000400a90701185665633c543e0000a907000002810500ad070c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401d8045300000400b10701185665633c543e0000b107000002d800b50710346672616d655f737570706f727418747261697473106d69736334577261707065724f706171756504045401b907000800e503000000b9070104540000b907084070616c6c65745f696d5f6f6e6c696e6564426f756e6465644f70617175654e6574776f726b53746174650c4c506565724964456e636f64696e674c696d697400584d756c746941646472456e636f64696e674c696d697400384164647265737365734c696d6974000008011c706565725f6964bd07019c5765616b426f756e6465645665633c75382c20506565724964456e636f64696e674c696d69743e00014865787465726e616c5f616464726573736573c107012d015765616b426f756e6465645665633c5765616b426f756e6465645665633c75382c204d756c746941646472456e636f64696e674c696d69743e2c204164647265737365734c696d69740a3e0000bd070c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401080453000004003001185665633c543e0000c1070c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401bd07045300000400c50701185665633c543e0000c507000002bd0700c9070c4070616c6c65745f696d5f6f6e6c696e651870616c6c6574144572726f7204045400010828496e76616c69644b6579000004604e6f6e206578697374656e74207075626c6963206b65792e4c4475706c696361746564486561727462656174000104544475706c696361746564206865617274626561742e04b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a090909cd070c2873705f7374616b696e671c6f6666656e6365384f6666656e636544657461696c7308205265706f727465720100204f6666656e64657201e4000801206f6666656e646572e401204f6666656e6465720001247265706f72746572735d0501345665633c5265706f727465723e0000d10700000408fc3000d5070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454012c045300000400d50301185665633c543e0000d9070c4070616c6c65745f626167735f6c697374106c697374104e6f646508045400044900001401086964000130543a3a4163636f756e744964000110707265769401504f7074696f6e3c543a3a4163636f756e7449643e0001106e6578749401504f7074696f6e3c543a3a4163636f756e7449643e0001246261675f7570706572280120543a3a53636f726500011473636f7265280120543a3a53636f72650000dd070c4070616c6c65745f626167735f6c697374106c6973740c4261670804540004490000080110686561649401504f7074696f6e3c543a3a4163636f756e7449643e0001107461696c9401504f7074696f6e3c543a3a4163636f756e7449643e0000e1070c4070616c6c65745f626167735f6c6973741870616c6c6574144572726f72080454000449000104104c6973740400e50701244c6973744572726f72000004b441206572726f7220696e20746865206c69737420696e7465726661636520696d706c656d656e746174696f6e2e04b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a090909e5070c4070616c6c65745f626167735f6c697374106c697374244c6973744572726f72000110244475706c6963617465000000284e6f7448656176696572000100304e6f74496e53616d65426167000200304e6f64654e6f74466f756e6400030000e9070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401dd05045300000400ed0701185665633c543e0000ed07000002dd0500f107083870616c6c65745f76657374696e672052656c656173657300010808563000000008563100010000f5070c3870616c6c65745f76657374696e671870616c6c6574144572726f72040454000114284e6f7456657374696e6700000484546865206163636f756e7420676976656e206973206e6f742076657374696e672e5441744d617856657374696e675363686564756c65730001082501546865206163636f756e7420616c72656164792068617320604d617856657374696e675363686564756c65736020636f756e74206f66207363686564756c657320616e642074687573510163616e6e6f742061646420616e6f74686572206f6e652e20436f6e7369646572206d657267696e67206578697374696e67207363686564756c657320696e206f7264657220746f2061646420616e6f746865722e24416d6f756e744c6f770002040501416d6f756e74206265696e67207472616e7366657272656420697320746f6f206c6f7720746f2063726561746520612076657374696e67207363686564756c652e605363686564756c65496e6465784f75744f66426f756e6473000304d0416e20696e64657820776173206f7574206f6620626f756e6473206f66207468652076657374696e67207363686564756c65732e54496e76616c69645363686564756c65506172616d730004040d014661696c656420746f206372656174652061206e6577207363686564756c65206265636175736520736f6d6520706172616d657465722077617320696e76616c69642e04744572726f7220666f72207468652076657374696e672070616c6c65742ef90700000408000400fd07083c70616c6c65745f6d756c7469736967204d756c7469736967102c426c6f636b4e756d62657201101c42616c616e63650118244163636f756e7449640100304d6178417070726f76616c7300001001107768656e0d01015854696d65706f696e743c426c6f636b4e756d6265723e00011c6465706f73697418011c42616c616e63650001246465706f7369746f720001244163636f756e744964000124617070726f76616c730108018c426f756e6465645665633c4163636f756e7449642c204d6178417070726f76616c733e000001080c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401000453000004005d0501185665633c543e000005080c3c70616c6c65745f6d756c74697369671870616c6c6574144572726f72040454000138404d696e696d756d5468726573686f6c640000047c5468726573686f6c64206d7573742062652032206f7220677265617465722e3c416c7265616479417070726f766564000104ac43616c6c20697320616c726561647920617070726f7665642062792074686973207369676e61746f72792e444e6f417070726f76616c734e65656465640002049c43616c6c20646f65736e2774206e65656420616e7920286d6f72652920617070726f76616c732e44546f6f4665775369676e61746f72696573000304a854686572652061726520746f6f20666577207369676e61746f7269657320696e20746865206c6973742e48546f6f4d616e795369676e61746f72696573000404ac54686572652061726520746f6f206d616e79207369676e61746f7269657320696e20746865206c6973742e545369676e61746f726965734f75744f664f726465720005040d01546865207369676e61746f7269657320776572652070726f7669646564206f7574206f66206f726465723b20746865792073686f756c64206265206f7264657265642e4c53656e646572496e5369676e61746f726965730006040d015468652073656e6465722077617320636f6e7461696e656420696e20746865206f74686572207369676e61746f726965733b2069742073686f756c646e27742062652e204e6f74466f756e64000704dc4d756c7469736967206f7065726174696f6e206e6f7420666f756e64207768656e20617474656d7074696e6720746f2063616e63656c2e204e6f744f776e65720008042d014f6e6c7920746865206163636f756e742074686174206f726967696e616c6c79206372656174656420746865206d756c74697369672069732061626c6520746f2063616e63656c2069742e2c4e6f54696d65706f696e740009041d014e6f2074696d65706f696e742077617320676976656e2c2079657420746865206d756c7469736967206f7065726174696f6e20697320616c726561647920756e6465727761792e3857726f6e6754696d65706f696e74000a042d014120646966666572656e742074696d65706f696e742077617320676976656e20746f20746865206d756c7469736967206f7065726174696f6e207468617420697320756e6465727761792e4c556e657870656374656454696d65706f696e74000b04f4412074696d65706f696e742077617320676976656e2c20796574206e6f206d756c7469736967206f7065726174696f6e20697320756e6465727761792e3c4d6178576569676874546f6f4c6f77000c04d0546865206d6178696d756d2077656967687420696e666f726d6174696f6e2070726f76696465642077617320746f6f206c6f772e34416c726561647953746f726564000d04a0546865206461746120746f2062652073746f72656420697320616c72656164792073746f7265642e04b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a0909090908083870616c6c65745f636f756e63696c48436f756e63696c5374616765557064617465042c426c6f636b4e756d62657201100008011473746167650d080164436f756e63696c53746167653c426c6f636b4e756d6265723e0001286368616e6765645f617410012c426c6f636b4e756d62657200000d08083870616c6c65745f636f756e63696c30436f756e63696c5374616765042c426c6f636b4e756d6265720110010c28416e6e6f756e63696e6704001108018c436f756e63696c5374616765416e6e6f756e63696e673c426c6f636b4e756d6265723e00000020456c656374696f6e040015080150436f756e63696c5374616765456c656374696f6e0001001049646c65040019080174436f756e63696c537461676549646c653c426c6f636b4e756d6265723e000200001108083870616c6c65745f636f756e63696c58436f756e63696c5374616765416e6e6f756e63696e67042c426c6f636b4e756d62657201100008014063616e646964617465735f636f756e7410010c75333200011c656e64735f617410012c426c6f636b4e756d62657200001508083870616c6c65745f636f756e63696c50436f756e63696c5374616765456c656374696f6e000004014063616e646964617465735f636f756e7410010c75333200001908083870616c6c65745f636f756e63696c40436f756e63696c537461676549646c65042c426c6f636b4e756d62657201100004011c656e64735f617410012c426c6f636b4e756d62657200001d080c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e646564566563080454012108045300000400250801185665633c543e00002108083870616c6c65745f636f756e63696c34436f756e63696c4d656d62657210244163636f756e7449640100204d656d626572496401281c42616c616e636501182c426c6f636b4e756d6265720110001801487374616b696e675f6163636f756e745f69640001244163636f756e7449640001447265776172645f6163636f756e745f69640001244163636f756e7449640001346d656d626572736869705f69642801204d656d62657249640001147374616b6518011c42616c616e63650001486c6173745f7061796d656e745f626c6f636b10012c426c6f636b4e756d626572000134756e706169645f72657761726418011c42616c616e6365000025080000022108002908083870616c6c65745f636f756e63696c2443616e64696461746510244163636f756e74496401001c42616c616e636501181048617368012c24566f7465506f7765720118001801487374616b696e675f6163636f756e745f69640001244163636f756e7449640001447265776172645f6163636f756e745f69640001244163636f756e7449640001206379636c655f696428010c7536340001147374616b6518011c42616c616e6365000128766f74655f706f776572180124566f7465506f7765720001246e6f74655f68617368790201304f7074696f6e3c486173683e00002d08083870616c6c65745f636f756e63696c144572726f720404540001603c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f7729244261644f726967696e000104484f726967696e20697320696e76616c69642e4043616e7443616e6469646174654e6f7700020439015573657220747269656420746f20616e6e6f756e63652063616e646964616379206f757473696465206f66207468652063616e64696461637920616e6e6f756e63656d656e7420706572696f642e4c43616e7452656c656173655374616b654e6f77000304f05573657220747269656420746f2072656c65617365207374616b65206f757473696465206f66207468652072657665616c696e6720706572696f642e5043616e6469646163795374616b65546f6f4c6f77000404b043616e64696461746520686176656e27742070726f76696465642073756666696369656e74207374616b652e4843616e7443616e6469646174655477696365000504f45573657220747269656420746f20616e6e6f756e63652063616e64696461637920747769636520696e207468652073616d6520656c656374696f6e732e40436f6e666c696374696e675374616b650006085d015573657220747269656420746f20616e6e6f756e63652063616e646964616379207769746820616e206163636f756e742074686174206861732074686520636f6e666c696374696e672074797065206f66207374616b653901776974682063616e646964616379207374616b6520616e6420686173206e6f7420656e6f7567682062616c616e636520666f72207374616b696e6720666f7220626f746820707572706f7365732e405374616b655374696c6c4e6565646564000704dc436f756e63696c206d656d62657220616e642063616e646964617465732063616e2774207769746864726177207374616b65207965742e1c4e6f5374616b65000804c45573657220747269656420746f2072656c65617365207374616b65207768656e206e6f207374616b65206578697374732e74496e73756666696369656e7442616c616e6365466f725374616b696e67000904ac496e73756666696369656e742062616c616e636520666f722063616e646964616379207374616b696e672e4c43616e74566f7465466f72596f757273656c66000a048443616e6469646174652063616e277420766f746520666f722068696d73656c662e5c4d656d62657249644e6f744d617463684163636f756e74000b044c496e76616c6964206d656d626572736869702e68496e76616c69644163636f756e74546f5374616b655265757365000c08510154686520636f6d62696e6174696f6e206f66206d656d6265727368697020696420616e64206163636f756e7420696420697320696e76616c696420666f7220756e7374616b696e6720616e206578697374696e674063616e646964616379207374616b652e444e6f7443616e6469646174696e674e6f77000d04d85573657220747269656420746f2077697468647261772063616e646964616379207768656e206e6f742063616e6469646174696e672e6043616e74576974686472617743616e6469646163794e6f77000e04190143616e27742077697468647261772063616e646964616379206f757473696465206f66207468652063616e64696461637920616e6e6f756e63656d656e7420706572696f642e304e6f74436f756e63696c6f72000f0478546865206d656d626572206973206e6f74206120636f756e63696c6f722e88496e73756666696369656e7446756e6473466f7246756e64696e6752657175657374001004f0496e737566666963656e742066756e647320696e20636f756e63696c20666f7220657865637574696e67202746756e64696e67205265717565737427585a65726f42616c616e636546756e64526571756573740011045c46756e642072657175657374206e6f2062616c616e636568526570656174656446756e64526571756573744163636f756e74001204fc5468652073616d65206163636f756e7420697320726563696576696e672066756e64732066726f6d207468652073616d65207265717565737420747769636550456d70747946756e64696e675265717565737473001304ac46756e64696e6720726571756573747320776974686f757420726563696576696e67206163636f756e747370496e73756666696369656e74546f6b656e73466f7246756e64696e67001404f8496e73756666696369656e7420746f6b656e7320666f722066756e64696e6720286f6e206d656d62657220636f6e74726f6c6c6572206163636f756e7429445a65726f546f6b656e7346756e64696e670015047c547279696e6720746f2066756e642077697468207a65726f20746f6b656e735443616e646964617465446f65734e6f7445786973740016045843616e646964617465206964206e6f7420666f756e6478496e73756666696369656e7442616c616e6365466f725472616e73666572001704b443616e6e6f742077697468647261773a20696e73756666696369656e74206275646765742062616c616e63652e0438436f756e63696c206572726f72733108084470616c6c65745f7265666572656e64756d3c5265666572656e64756d5374616765082c426c6f636b4e756d62657201104c496e7465726d65646961746557696e6e657273013508010c20496e61637469766500000018566f74696e670400390801885265666572656e64756d5374616765566f74696e673c426c6f636b4e756d6265723e0001002452657665616c696e6704003d0801e85265666572656e64756d537461676552657665616c696e673c426c6f636b4e756d6265722c20496e7465726d65646961746557696e6e6572733e0002000035080c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e646564566563080454012501045300000400210101185665633c543e00003908084470616c6c65745f7265666572656e64756d545265666572656e64756d5374616765566f74696e67042c426c6f636b4e756d62657201100010011c7374617274656410012c426c6f636b4e756d62657200015077696e6e696e675f7461726765745f636f756e7410010c75333200014063757272656e745f6379636c655f696428010c75363400011c656e64735f617410012c426c6f636b4e756d62657200003d08084470616c6c65745f7265666572656e64756d605265666572656e64756d537461676552657665616c696e67082c426c6f636b4e756d62657201104c496e7465726d65646961746557696e6e6572730135080014011c7374617274656410012c426c6f636b4e756d62657200015077696e6e696e675f7461726765745f636f756e7410010c753332000150696e7465726d6564696174655f77696e6e6572733508014c496e7465726d65646961746557696e6e65727300014063757272656e745f6379636c655f696428010c75363400011c656e64735f617410012c426c6f636b4e756d62657200004108084470616c6c65745f7265666572656e64756d2043617374566f74650c1048617368012c2043757272656e63790118204d656d6265724964012800100128636f6d6d69746d656e742c0110486173680001206379636c655f696428010c7536340001147374616b6518012043757272656e6379000120766f74655f666f72350101404f7074696f6e3c4d656d62657249643e00004508084470616c6c65745f7265666572656e64756d144572726f72080454000449000138244261644f726967696e000004444f726967696e20697320696e76616c6964505265666572656e64756d4e6f7452756e6e696e67000104a85265666572656e64756d206973206e6f742072756e6e696e67207768656e20657870656374656420746f5852657665616c696e674e6f74496e50726f6772657373000204b052657665616c696e67207374616765206973206e6f7420696e2070726f6772657373207269676874206e6f775c436f6e666c6963745374616b65734f6e4163636f756e74000304b05374616b696e67206163636f756e7420636f6e7461696e7320636f6e666c696374696e67207374616b65732e68496e73756666696369656e7442616c616e6365546f5374616b650004049c4163636f756e7420496e73756666696369656e7420467265652042616c616e636520286e6f772944496e73756666696369656e745374616b65000504a8496e73756666696369656e74207374616b652070726f766964656420746f2063617374206120766f746534496e76616c696452657665616c000604190153616c7420616e64207265666572656e64756d206f7074696f6e2070726f766964656420646f6e277420636f72726573706f6e6420746f2074686520636f6d6d69746d656e742c496e76616c6964566f7465000704a4566f746520666f72206e6f74206578697374696e67206f7074696f6e207761732072657665616c65643c566f74654e6f744578697374696e670008049c547279696e6720746f2072657665616c20766f7465207468617420776173206e6f74206361737454416c7265616479566f746564546869734379636c65000904b8547279696e6720746f20766f7465206d756c7469706c652074696d6520696e207468652073616d65206379636c6560556e7374616b696e67566f7465496e53616d654379636c65000a04a0496e76616c69642074696d6520746f2072656c6561736520746865206c6f636b6564207374616b652c53616c74546f6f4c6f6e67000b044053616c7420697320746f6f206c6f6e6748556e7374616b696e67466f7262696464656e000c04f0556e7374616b696e6720686173206265656e20666f7262696464656e20666f7220746865207573657220286174206c6561737420666f72206e6f7729784163636f756e74416c72656164794f707465644f75744f66566f74696e67000d041d014120766f74652063616e6e6f7420626520636173742066726f6d20616e206163636f756e74207468617420616c7265616479206f70746564206f7574206f6620766f74696e672e04445265666572656e64756d206572726f72734908084470616c6c65745f6d656d62657273686970404d656d626572736869704f626a65637408244163636f756e74496401001048617368012c0014012c68616e646c655f686173682c011048617368000130726f6f745f6163636f756e740001244163636f756e744964000148636f6e74726f6c6c65725f6163636f756e740001244163636f756e7449640001207665726966696564980110626f6f6c00011c696e766974657310010c75333200004d08084470616c6c65745f6d656d626572736869706c5374616b696e674163636f756e744d656d62657242696e64696e6704204d656d62657249640128000801246d656d6265725f69642801204d656d6265724964000124636f6e6669726d6564980110626f6f6c00005108084470616c6c65745f6d656d62657273686970144572726f720404540001587c4e6f74456e6f75676842616c616e6365546f4275794d656d62657273686970000004944e6f7420656e6f7567682062616c616e636520746f20627579206d656d626572736869702e64436f6e74726f6c6c65724163636f756e74526571756972656400010470436f6e74726f6c6c6572206163636f756e742072657175697265642e4c526f6f744163636f756e74526571756972656400020458526f6f74206163636f756e742072657175697265642e38556e7369676e65644f726967696e00030440556e7369676e6564206f726967696e2e544d656d62657250726f66696c654e6f74466f756e64000404b44d656d6265722070726f66696c65206e6f7420666f756e642028696e76616c6964206d656d626572206964292e5c48616e646c65416c7265616479526567697374657265640005046848616e646c6520616c726561647920726567697374657265642e9848616e646c654d757374426550726f7669646564447572696e67526567697374726174696f6e000604b048616e646c65206d7573742062652070726f766964656420647572696e6720726567697374726174696f6e2e4c526566657272657249734e6f744d656d626572000704d043616e6e6f742066696e642061206d656d6265727368697020666f7220612070726f76696465642072656665727265722069642e8443616e6e6f745472616e73666572496e7669746573466f724e6f744d656d6265720008049853686f756c642062652061206d656d62657220746f207265636569766520696e76697465732e404e6f74456e6f756768496e7669746573000904ac4e6f7420656e6f75676820696e766974657320746f20706572666f726d20616e206f7065726174696f6e2e60576f726b696e6747726f75704c65616465724e6f74536574000a04ac4d656d6265727368697020776f726b696e672067726f7570206c6561646572206973206e6f74207365742e845374616b696e674163636f756e744973416c726561647952656769737465726564000b04b85374616b696e67206163636f756e74206973207265676973746572656420666f7220736f6d65206d656d6265722e645374616b696e674163636f756e74446f65736e744578697374000c04b45374616b696e67206163636f756e7420666f72206d656d6265727368697020646f65736e27742065786973742e785374616b696e674163636f756e74416c7265616479436f6e6669726d6564000d04ac5374616b696e67206163636f756e742068617320616c7265616479206265656e20636f6e6669726d65642eb0576f726b696e6747726f757042756467657449734e6f7453756666696369656e74466f72496e766974696e67000e08490143616e6e6f7420696e766974652061206d656d6265722e20576f726b696e672067726f75702062616c616e6365206973206e6f742073756666696369656e7420746f20736574207468652064656661756c742062616c616e63652e3c436f6e666c696374696e674c6f636b000f04410143616e6e6f7420696e766974652061206d656d6265722e2054686520636f6e74726f6c6c6572206163636f756e742068617320616e206578697374696e6720636f6e666c696374696e67206c6f636b2e8c43616e6e6f74457863656564526566657272616c43757450657263656e744c696d6974001004010143616e6e6f7420736574206120726566657272616c206375742070657263656e742076616c75652e20546865206c696d6974207761732065786365656465642e5c436f6e666c6963745374616b65734f6e4163636f756e74001104b05374616b696e67206163636f756e7420636f6e7461696e7320636f6e666c696374696e67207374616b65732e7c496e73756666696369656e7442616c616e6365546f436f7665725374616b6500120490496e73756666696369656e742062616c616e636520746f20636f766572207374616b652e504769664c6f636b45786365656473437265646974001304ac4c6f636b656420616d6f756e742069732067726561746572207468616e2063726564697420616d6f756e7464496e73756666696369656e7442616c616e6365546f47696674001404c047696674657220646f65736e277420686176652073756666696369656e742062616c616e636520746f2063726564697484496e73756666696369656e7442616c616e6365546f436f7665725061796d656e7400150498496e73756666696369656e742062616c616e636520746f20636f766572207061796d656e742e048c4d656d62657273686970206d6f64756c6520707265646566696e6564206572726f72735508083070616c6c65745f666f72756d2043617465676f72790c2843617465676f7279496401281048617368012c44537469636b696564546872656164496473015908002001287469746c655f686173682c0110486173680001406465736372697074696f6e5f686173682c0110486173680001206172636869766564980110626f6f6c0001606e756d5f6469726563745f73756263617465676f7269657310010c7533320001486e756d5f6469726563745f7468726561647310010c7533320001546e756d5f6469726563745f6d6f64657261746f727310010c753332000148706172656e745f63617465676f72795f6964350101484f7074696f6e3c43617465676f727949643e000144737469636b795f7468726561645f69647359080144537469636b696564546872656164496473000059080c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401280453000004006901012c42547265655365743c543e00005d08083070616c6c65745f666f72756d185468726561640c2c466f72756d55736572496401282843617465676f72794964012848526570617961626c65426c6f6174426f6e6401e1010010012c63617465676f72795f696428012843617465676f72794964000124617574686f725f696428012c466f72756d55736572496400013c636c65616e75705f7061795f6f6666e1010148526570617961626c65426c6f6174426f6e640001606e756d6265725f6f665f6564697461626c655f706f7374732801344e756d6265724f66506f73747300006108083070616c6c65745f666f72756d10506f7374142c466f72756d557365724964012820546872656164496401281048617368012c2c426c6f636b4e756d626572011048526570617961626c65426c6f6174426f6e6401e101001401247468726561645f69642801205468726561644964000124746578745f686173682c011048617368000124617574686f725f696428012c466f72756d55736572496400013c636c65616e75705f7061795f6f6666e1010148526570617961626c65426c6f6174426f6e6400012c6c6173745f65646974656410012c426c6f636b4e756d62657200006508083070616c6c65745f666f72756d144572726f7204045400016c3c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f7729484f726967696e4e6f74466f72756d4c656164000104b44f726967696e20646f65736e277420636f72726573706f6e6420746f20616e79206c656164206163636f756e7468466f72756d5573657249644e6f744d617463684163636f756e7400020490466f72756d2075736572206964206e6f74206d6174636820697473206163636f756e742e684d6f64657261746f7249644e6f744d617463684163636f756e740003048c4d6f64657261746f72206964206e6f74206d6174636820697473206163636f756e742e7c4163636f756e74446f65734e6f744d61746368546872656164417574686f7200040498546872656164206e6f7420617574686f7265642062792074686520676976656e20757365722e48546872656164446f65734e6f7445786973740005045454687265616420646f6573206e6f742065786973747c4d6f64657261746f724d6f6465726174654f726967696e43617465676f7279000604d04d6f64657261746f722063616e2774206d6f6465726174652063617465676f727920636f6e7461696e696e67207468726561642e904d6f64657261746f724d6f64657261746544657374696e6174696f6e43617465676f7279000704b84d6f64657261746f722063616e2774206d6f6465726174652064657374696e6174696f6e2063617465676f72792e445468726561644d6f7665496e76616c6964000804984f726967696e206973207468652073616d65206173207468652064657374696e6174696f6e2e545468726561644e6f744265696e675570646174656400090464546872656164206e6f74206265696e6720757064617465642e90496e73756666696369656e7442616c616e6365466f725468726561644372656174696f6e000a048c4e6f7420656e6f7567682062616c616e636520746f20637265617465207468726561649843616e6e6f7444656c657465546872656164576974684f75747374616e64696e67506f737473000b04c441207468726561642077697468206f75747374616e64696e6720706f7374732063616e6e6f742062652072656d6f76656440506f7374446f65734e6f744578697374000c0450506f737420646f6573206e6f742065786973742e744163636f756e74446f65734e6f744d61746368506f7374417574686f72000d048c4163636f756e7420646f6573206e6f74206d6174636820706f737420617574686f722e68496e73756666696369656e7442616c616e6365466f72506f7374000e04684e6f7420656e6f7567682062616c616e636520746f20706f73745c43617465676f72794e6f744265696e6755706461746564000f046c43617465676f7279206e6f74206265696e6720757064617465642e64416e636573746f7243617465676f7279496d6d757461626c65001004d4416e636573746f722063617465676f727920696d6d757461626c652c20692e652e2064656c65746564206f72206172636869766564744d617856616c696443617465676f727944657074684578636565646564001104984d6178696d756d2076616c69642063617465676f72792064657074682065786365656465642e5043617465676f7279446f65734e6f7445786973740012046043617465676f727920646f6573206e6f742065786973742e7443617465676f72794d6f64657261746f72446f65734e6f744578697374001304c850726f7669646564206d6f64657261746f72206973206e6f7420676976656e2063617465676f7279206d6f64657261746f725c43617465676f72794e6f74456d707479546872656164730014049443617465676f7279207374696c6c20636f6e7461696e7320736f6d6520746872656164732e6843617465676f72794e6f74456d70747943617465676f72696573001504ac43617465676f7279207374696c6c20636f6e7461696e7320736f6d652073756263617465676f726965732e6c4d6f64657261746f7243616e7444656c65746543617465676f7279001604884e6f207065726d697373696f6e7320746f2064656c6574652063617465676f72792e6c4d6f64657261746f7243616e7455706461746543617465676f7279001704884e6f207065726d697373696f6e7320746f207570646174652063617465676f72792e304d617053697a654c696d6974001804904d6178696d756d2073697a65206f662073746f72616765206d617020657863656564656484506174684c656e67746853686f756c644265477265617465725468616e5a65726f001904b443617465676f72792070617468206c656e2073686f756c642062652067726561746572207468616e207a65726f884d61784e756d6265724f66537469636b696564546872656164734578636565646564001a04e04d6178696d756d206e756d626572206f6620737469636b6965642074687265616473207065722063617465676f7279206578636565646564045c466f72756d20707265646566696e6564206572726f72736908084c70616c6c65745f636f6e737469747574696f6e40436f6e737469747574696f6e496e666f041048617368012c00040124746578745f686173682c01104861736800006d08083470616c6c65745f626f756e747930426f756e74795265636f7264101c42616c616e636501182c426c6f636b4e756d6265720110204d656d626572496401285c436c6f736564436f6e747261637457686974656c6973740171080014013c6372656174696f6e5f706172616d737508012501426f756e7479506172616d65746572733c42616c616e63652c20426c6f636b4e756d6265722c204d656d62657249642c20436c6f736564436f6e747261637457686974656c6973743e000134746f74616c5f66756e64696e6718011c42616c616e63650001246d696c6573746f6e657d080170426f756e74794d696c6573746f6e653c426c6f636b4e756d6265723e00015c6163746976655f776f726b5f656e7472795f636f756e7410010c7533320001606861735f756e706169645f6f7261636c655f726577617264980110626f6f6c000071080c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401280453000004006901012c42547265655365743c543e00007508083470616c6c65745f626f756e747940426f756e7479506172616d6574657273101c42616c616e636501182c426c6f636b4e756d6265720110204d656d626572496401285c436c6f736564436f6e747261637457686974656c697374017108001c01186f7261636c6579010154426f756e74794163746f723c4d656d62657249643e000134636f6e74726163745f74797065790801b84173737572616e6365436f6e7472616374547970653c436c6f736564436f6e747261637457686974656c6973743e00011c63726561746f7279010154426f756e74794163746f723c4d656d62657249643e00011863686572727918011c42616c616e63650001346f7261636c655f72657761726418011c42616c616e6365000134656e7472616e745f7374616b6518011c42616c616e636500013066756e64696e675f747970658101018446756e64696e67547970653c426c6f636b4e756d6265722c2042616c616e63653e00007908083470616c6c65745f626f756e7479544173737572616e6365436f6e747261637454797065045c436c6f736564436f6e747261637457686974656c6973740171080108104f70656e00000018436c6f73656404007108015c436c6f736564436f6e747261637457686974656c697374000100007d08083470616c6c65745f626f756e74793c426f756e74794d696c6573746f6e65042c426c6f636b4e756d626572011001141c43726561746564080128637265617465645f617410012c426c6f636b4e756d6265720001446861735f636f6e747269627574696f6e73980110626f6f6c0000005c426f756e74794d617846756e64696e675265616368656400010034576f726b5375626d6974746564000200285465726d696e61746564000300444a7564676d656e745375626d69747465640401447375636365737366756c5f626f756e7479980110626f6f6c00040000810800000408287901008508083470616c6c65745f626f756e747930436f6e747269627574696f6e0404540000080118616d6f756e7418013042616c616e63654f663c543e00017866756e6465725f73746174655f626c6f61745f626f6e645f616d6f756e7418013042616c616e63654f663c543e00008908083470616c6c65745f626f756e74792c456e7472795265636f72640c244163636f756e7449640100204d656d626572496401282c426c6f636b4e756d6265720110001001246d656d6265725f69642801204d656d62657249640001487374616b696e675f6163636f756e745f69640001244163636f756e7449640001307375626d69747465645f617410012c426c6f636b4e756d626572000138776f726b5f7375626d6974746564980110626f6f6c00008d08083470616c6c65745f626f756e7479144572726f7204045400018c3c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f7729b04d696e46756e64696e67416d6f756e7443616e6e6f744265477265617465725468616e4d6178416d6f756e74000104d44d696e2066756e64696e6720616d6f756e742063616e6e6f742062652067726561746572207468616e206d617820616d6f756e742e44426f756e7479446f65736e74457869737400020450426f756e747920646f65736e742065786973742e605377697463684f7261636c654f726967696e4973526f6f7400030489014f726967696e20697320726f6f742c20736f20737769746368696e67206f7261636c65206973206e6f7420616c6c6f77656420696e20746869732065787472696e7369632e202863616c6c207377697463685f6f7261636c655f61735f726f6f742974496e76616c69645374616765556e657870656374656446756e64696e67000404c8556e657870656374656420626f756e747920737461676520666f7220616e206f7065726174696f6e3a2046756e64696e672ea8496e76616c69645374616765556e65787065637465644e6f46756e64696e67436f6e7472696275746564000504fc556e657870656374656420626f756e747920737461676520666f7220616e206f7065726174696f6e3a204e6f46756e64696e67436f6e74726962757465642e7c496e76616c69645374616765556e657870656374656443616e63656c6c6564000604d0556e657870656374656420626f756e747920737461676520666f7220616e206f7065726174696f6e3a2043616e63656c6c65642e90496e76616c69645374616765556e6578706563746564576f726b5375626d697373696f6e000704e4556e657870656374656420626f756e747920737461676520666f7220616e206f7065726174696f6e3a20576f726b5375626d697373696f6e2e78496e76616c69645374616765556e65787065637465644a7564676d656e74000804cc556e657870656374656420626f756e747920737461676520666f7220616e206f7065726174696f6e3a204a7564676d656e742ec0496e76616c69645374616765556e65787065637465645375636365737366756c426f756e74795769746864726177616c0009041501556e657870656374656420626f756e747920737461676520666f7220616e206f7065726174696f6e3a205375636365737366756c426f756e74795769746864726177616c2eb0496e76616c69645374616765556e65787065637465644661696c6564426f756e74795769746864726177616c000a040501556e657870656374656420626f756e747920737461676520666f7220616e206f7065726174696f6e3a204661696c6564426f756e74795769746864726177616c2e70496e73756666696369656e7442616c616e6365466f72426f756e7479000b04a4496e73756666696369656e742062616c616e636520666f72206120626f756e7479206368657272792e644e6f426f756e7479436f6e747269627574696f6e466f756e64000c048443616e6e6f7420666f756e6420626f756e747920636f6e747269627574696f6e2e6c496e73756666696369656e7442616c616e6365466f725374616b65000d04a05468657265206973206e6f7420656e6f7567682062616c616e636520666f722061207374616b652e44436f6e666c696374696e675374616b6573000e04bc54686520636f6e666c696374696e67207374616b6520646973636f76657265642e2043616e6e6f74207374616b652e50576f726b456e747279446f65736e744578697374000f0460576f726b20656e74727920646f65736e742065786973742e704368657272794c6573735468656e4d696e696d756d416c6c6f77656400100484436865727279206c657373207468616e206d696e696d756d20616c6c6f7765642e9843616e6e6f745375626d6974576f726b546f436c6f736564436f6e7472616374426f756e74790011085101496e636f6d70617469626c65206173737572616e636520636f6e7472616374207479706520666f722061206d656d6265723a2063616e6e6f74207375626d697420776f726b20746f207468652027636c6f7365646c6173737572616e63652720626f756e747920636f6e74726163742e7c436c6f736564436f6e74726163744d656d6265724c6973744973456d707479001204290143616e6e6f742063726561746520612027636c6f736564206173737572616e636520636f6e74726163742720626f756e7479207769746820656d707479206d656d626572206c6973742e88436c6f736564436f6e74726163744d656d6265724c6973744973546f6f4c61726765001308290143616e6e6f742063726561746520612027636c6f736564206173737572616e636520636f6e74726163742720626f756e74792077697468206d656d626572206c697374206c6172676572887468616e20616c6c6f776564206d617820776f726b20656e747279206c696d69742e70436c6f736564436f6e74726163744d656d6265724e6f74466f756e64001404410127636c6f736564206173737572616e636520636f6e74726163742720626f756e7479206d656d626572206c6973742063616e206f6e6c7920696e636c756465206578697374696e67206d656d6265727354496e76616c69644f7261636c654d656d6265724964001504fc50726f7669646564206f7261636c65206d656d62657220696420646f6573206e6f742062656c6f6e6720746f20616e206578697374696e67206d656d62657278496e76616c69645374616b696e674163636f756e74466f724d656d626572001604ac5374616b696e67206163636f756e7420646f65736e27742062656c6f6e6720746f2061206d656d6265722e405a65726f57696e6e65725265776172640017048c43616e6e6f7420736574207a65726f2072657761726420666f722077696e6e6572732e98546f74616c52657761726453686f756c644265457175616c546f546f74616c46756e64696e67001804150154686520746f74616c2072657761726420666f722077696e6e6572732073686f756c6420626520657175616c20746f20746f74616c20626f756e74792066756e64696e672e74456e7472616e745374616b6549734c6573735468616e4d696e696e756d0019042d0143616e6e6f7420637265617465206120626f756e7479207769746820616e20656e7472616e74207374616b65206973206c657373207468616e207265717569726564206d696e696d756d2e6446756e64696e67416d6f756e7443616e6e6f7442655a65726f001a04e843616e6e6f7420637265617465206120626f756e74792077697468207a65726f2066756e64696e6720616d6f756e7420706172616d657465722e6446756e64696e67506572696f6443616e6e6f7442655a65726f001b04e843616e6e6f7420637265617465206120626f756e74792077697468207a65726f2066756e64696e6720706572696f6420706172616d657465722e7457696e6e657253686f756c64486173576f726b5375626d697373696f6e001c04f0496e76616c6964206a7564676d656e74202d20616c6c2077696e6e6572732073686f756c64206861766520776f726b207375626d697373696f6e732e80496e76616c6964436f6e7472696275746f724163746f72537065636966696564001d0470426f756e747920636f6e7472696275746f72206e6f7420666f756e646c496e76616c69644f7261636c654163746f72537065636966696564001e045c426f756e7479206f7261636c65206e6f7420666f756e6474496e76616c6964456e7472616e74576f726b6572537065636966696564001f04a44d656d62657220737065636966696564206973206e6f7420616e20656e7472616e7420776f726b657270496e76616c696443726561746f724163746f72537065636966696564002004a8496e76616c69642043726561746f72204163746f7220666f7220426f756e74792073706563696669656474576f726b456e747279446f65736e7442656c6f6e67546f576f726b6572002104f8576f726b657220747269656420746f20616363657373206120776f726b20656e747279207468617420646f65736e27742062656c6f6e6720746f2068696d704f7261636c65526577617264416c726561647957697468647261776e002204884f7261636c65206861766520616c7265616479206265656e2077697468647261776e047c426f756e74792070616c6c657420707265646566696e6564206572726f72739108086070616c6c65745f6a6f7973747265616d5f7574696c697479144572726f7204045400010c80496e73756666696369656e7446756e6473466f724275646765745570646174650000041d01496e73756666696369656e742066756e647320666f72202755706461746520576f726b696e672047726f757020427564676574272070726f706f73616c20657865637574696f6e385a65726f546f6b656e734275726e00010468547279696e6720746f206275726e207a65726f20746f6b656e7360496e73756666696369656e7446756e6473466f724275726e00020478496e73756666696369656e742066756e647320666f72206275726e696e670478436f646578206d6f64756c6520707265646566696e6564206572726f727395080c3870616c6c65745f636f6e74656e741474797065732c566964656f5265636f726410244368616e6e656c49640128204f776e65644e667401990838566964656f41737365747353657401b90848526570617961626c65426c6f6174426f6e6401e10100100128696e5f6368616e6e656c2801244368616e6e656c49640001286e66745f737461747573bd0801404f7074696f6e3c4f776e65644e66743e000130646174615f6f626a65637473b9080138566964656f417373657473536574000158766964656f5f73746174655f626c6f61745f626f6e64e1010148526570617961626c65426c6f6174426f6e6400009908103870616c6c65745f636f6e74656e740c6e6674147479706573204f776e65644e66740c4c5472616e73616374696f6e616c537461747573019d08204d656d626572496401282441756374696f6e49640128001001146f776e6572b50801484e66744f776e65723c4d656d62657249643e0001507472616e73616374696f6e616c5f7374617475739d08014c5472616e73616374696f6e616c53746174757300013c63726561746f725f726f79616c74791102013c4f7074696f6e3c526f79616c74793e00014c6f70656e5f61756374696f6e735f6e6f6e636528012441756374696f6e496400009d08103870616c6c65745f636f6e74656e740c6e6674147479706573645472616e73616374696f6e616c5374617475735265636f726410204d656d626572496401281c42616c616e6365011848456e676c69736841756374696f6e5479706501a1083c4f70656e41756374696f6e5479706501b10801141049646c6500000058496e697469617465644f66666572546f4d656d62657208002801204d656d626572496400004501013c4f7074696f6e3c42616c616e63653e00010038456e676c69736841756374696f6e0400a1080148456e676c69736841756374696f6e547970650002002c4f70656e41756374696f6e0400b108013c4f70656e41756374696f6e54797065000300184275794e6f77040018011c42616c616e636500040000a108103870616c6c65745f636f6e74656e740c6e667414747970657350456e676c69736841756374696f6e5265636f7264102c426c6f636b4e756d62657201101c42616c616e63650118204d656d626572496401284c4e667441756374696f6e57686974656c69737401a508002001387374617274696e675f707269636518011c42616c616e63650001346275795f6e6f775f70726963654501013c4f7074696f6e3c42616c616e63653e00012477686974656c697374a508014c4e667441756374696f6e57686974656c69737400010c656e6410012c426c6f636b4e756d626572000114737461727410012c426c6f636b4e756d626572000140657874656e73696f6e5f706572696f6410012c426c6f636b4e756d6265720001306d696e5f6269645f7374657018011c42616c616e636500011c746f705f626964a90801b04f7074696f6e3c456e676c69736841756374696f6e4269643c42616c616e63652c204d656d62657249643e3e0000a5080c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401280453000004006901012c42547265655365743c543e0000a90804184f7074696f6e04045401ad080108104e6f6e6500000010536f6d650400ad080000010000ad08103870616c6c65745f636f6e74656e740c6e667414747970657344456e676c69736841756374696f6e426964081c42616c616e63650118204d656d6265724964012800080118616d6f756e7418011c42616c616e63650001246269646465725f69642801204d656d62657249640000b108103870616c6c65745f636f6e74656e740c6e6674147479706573444f70656e41756374696f6e5265636f7264102c426c6f636b4e756d62657201102441756374696f6e496401281c42616c616e636501184c4e667441756374696f6e57686974656c69737401a508001801387374617274696e675f707269636518011c42616c616e63650001346275795f6e6f775f70726963654501013c4f7074696f6e3c42616c616e63653e00012477686974656c697374a508014c4e667441756374696f6e57686974656c6973740001446269645f6c6f636b5f6475726174696f6e10012c426c6f636b4e756d62657200012861756374696f6e5f696428012441756374696f6e4964000114737461727410012c426c6f636b4e756d6265720000b508103870616c6c65745f636f6e74656e740c6e6674147479706573204e66744f776e657204204d656d626572496401280108304368616e6e656c4f776e6572000000184d656d62657204002801204d656d626572496400010000b9080c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401280453000004006901012c42547265655365743c543e0000bd0804184f7074696f6e0404540199080108104e6f6e6500000010536f6d65040099080000010000c108103870616c6c65745f636f6e74656e742c7065726d697373696f6e733463757261746f725f67726f75704843757261746f7247726f75705265636f7264085c43757261746f7247726f757043757261746f72734d617001c508704d6f6465726174696f6e5065726d697373696f6e7342794c6576656c01c908000c012063757261746f7273c508015c43757261746f7247726f757043757261746f72734d6170000118616374697665980110626f6f6c0001507065726d697373696f6e735f62795f6c6576656cc90801704d6f6465726174696f6e5065726d697373696f6e7342794c6576656c0000c5080c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b0128045601b501045300000400c501013842547265654d61703c4b2c20563e0000c9080c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b0108045601cd08045300000400d108013842547265654d61703c4b2c20563e0000cd080c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e6465644254726565536574080454015d020453000004005902012c42547265655365743c543e0000d108042042547265654d617008044b0108045601cd08000400d508000000d508000002d90800d9080000040808cd0800dd08103870616c6c65745f636f6e74656e740c6e6674147479706573504f70656e41756374696f6e4269645265636f72640c1c42616c616e636501182c426c6f636b4e756d62657201102441756374696f6e49640128000c0118616d6f756e7418011c42616c616e63650001346d6164655f61745f626c6f636b10012c426c6f636b4e756d62657200012861756374696f6e5f696428012441756374696f6e49640000e1080c3870616c6c65745f636f6e74656e74186572726f7273144572726f7204045400010102704368616e6e656c5374617465426c6f6174426f6e644368616e676564000004e4496e76616c69642065787472696e7369632063616c6c3a204368616e6e656c20737461746520626c6f617420626f6e64206368616e6765642e68566964656f5374617465426c6f6174426f6e644368616e676564000104dc496e76616c69642065787472696e7369632063616c6c3a20766964656f20737461746520626c6f617420626f6e64206368616e6765642e544d696e436173686f757456616c7565546f6f4c6f77000204d8417474656d707420746f20736574206d696e696d756d20636173686f757420616c6c6f7765642062656c6f7720746865206c696d6974584d6178436173686f757456616c7565546f6f48696768000304d8417474656d707420746f20736574206d696e696d756d20636173686f757420616c6c6f7765642061626f766520746865206c696d69749c4d61784e756d6265724f664368616e6e656c436f6c6c61626f7261746f7273457863656564656400040429014e756d626572206f66206368616e6e656c20636f6c6c61626f7261746f72732065786365656473204d61784e756d6265724f66436f6c6c61626f7261746f72735065724368616e6e656c804d61784e756d6265724f664368616e6e656c4173736574734578636565646564000504f04e756d626572206f66206368616e6e656c206173736574732065786365656473204d61784e756d6265724f664173736574735065724368616e6e656c784d61784e756d6265724f66566964656f4173736574734578636565646564000604ec4e756d626572206f6620766964656f206173736574732065786365656473204d61784d61784e756d6265724f66417373657473506572566964656fa84d61784e756d6265724f664368616e6e656c4167656e745065726d697373696f6e73457863656564656400070419014d6178696d756d206e756d626572206f66206368616e6e656c206167656e74207065726d697373696f6e7320666f72206368616e6e656c206167656e74206578636565646564ac4d61784e756d6265724f6650617573656446656174757265735065724368616e6e656c4578636565646564000804d84d6178696d756d206e756d626572206f662070617573656420666561747572657320706572206368616e6e656c20657863656564656480496e76616c69644368616e6e656c4261675769746e65737350726f766964656400090411014368616e6e656c20626167207769746e65737320706172616d657465727320646f6e2774206d61746368207468652063757272656e742072756e74696d652073746174659c496e76616c696453746f726167654275636b6574734e756d5769746e65737350726f7669646564000a04450153746f72616765206275636b657473206e756d626572207769746e65737320706172616d6574657220646f6573206e6f74206d61746368207468652063757272656e742072756e74696d652073746174657c4d697373696e6753746f726167654275636b6574734e756d5769746e657373000b084d0153746f72616765206275636b657473206e756d626572207769746e65737320706172616d65746572206d7573742062652070726f7669646564207768656e206368616e6e656c2f766964656f2061737365747348617265206265696e6720757064617465642e784368616e6e656c4f776e65724d656d626572446f65734e6f744578697374000c04b850726f7669646564206368616e6e656c206f776e657220286d656d6265722920646f6573206e6f74206578697374904368616e6e656c4f776e657243757261746f7247726f7570446f65734e6f744578697374000d04d450726f7669646564206368616e6e656c206f776e6572202863757261746f722067726f75702920646f6573206e6f74206578697374b04368616e6e656c5374617465426c6f6174426f6e6442656c6f774578697374656e7469616c4465706f736974000e0809014368616e6e656c20737461746520626c6f617420626f6e642063616e6e6f74206265206c6f776572207468616e206578697374656e7469616c206465706f7369742c050162656361757365206974206d7573742073656375726520746865206368616e6e656c206d6f64756c65206163636f756e7420616761696e73742064757374696e67704e756d6265724f66417373657473546f52656d6f766549735a65726f000f04a90144656c657465206368616e6e656c20616e642061737365747320616e642064656c65746520766964656f20617373657473206d75737420686176652061206e756d626572206f662061737365747320746f2072656d6f76652067726561746572207468616e207a65726f9843757261746f7249734e6f74414d656d6265724f66476976656e43757261746f7247726f7570001004450143757261746f7220756e6465722070726f76696465642063757261746f72206964206973206e6f742061206d656d626572206f662063757261726f722067726f757020756e64657220676976656e206964a843757261746f724973416c7265616479414d656d6265724f66476976656e43757261746f7247726f7570001104550143757261746f7220756e6465722070726f76696465642063757261746f7220696420697320616c72656164792061206d656d626572206f662063757261726f722067726f757020756e64657220676976656e2069646043757261746f7247726f7570446f65734e6f74457869737400120488476976656e2063757261746f722067726f757020646f6573206e6f742065786973747043757261746f727350657247726f75704c696d697452656163686564001304b84d6178206e756d626572206f662063757261746f7273207065722067726f7570206c696d697420726561636865645c43757261746f7247726f757049734e6f744163746976650014046c43757261746f722067726f7570206973206e6f74206163746976654043757261746f724964496e76616c6964001504d843757261746f72206964206973206e6f74206120776f726b657220696420696e20636f6e74656e7420776f726b696e672067726f7570384c656164417574684661696c6564001604684c6561642061757468656e7469636174696f6e206661696c6564404d656d626572417574684661696c6564001704704d656d6265722061757468656e7469636174696f6e206661696c65644443757261746f72417574684661696c65640018047443757261746f722061757468656e7469636174696f6e206661696c6564244261644f726967696e00190478457870656374656420726f6f74206f72207369676e6564206f726967696e484163746f724e6f74417574686f72697a6564001a04b04f7065726174696f6e2063616e6e6f7420626520706572666f6d656420776974682074686973204163746f725043617465676f7279446f65734e6f744578697374001b04ac41204368616e6e656c206f7220566964656f2043617465676f727920646f6573206e6f742065786973742e4c4368616e6e656c446f65734e6f744578697374001c04584368616e6e656c20646f6573206e6f7420657869737444566964656f446f65734e6f744578697374001d0450566964656f20646f6573206e6f7420657869737434566964656f496e536561736f6e001e04f4566664656f20696e20736561736f6e2063616e60742062652072656d6f766564202862656361757365206f7264657220697320696d706f7274616e7429444163746f7243616e6e6f7442654c656164001f04c84163746f722063616e6e6f7420617574686f72697a65206173206c65616420666f7220676976656e2065787472696e736963544163746f7243616e6e6f744f776e4368616e6e656c002004604163746f722063616e6e6f74204f776e206368616e6e656c604e6674416c72656164794f776e656442794368616e6e656c002104a4417474656d707420746f20736c696e67206261636b2061206368616e6e656c206f776e6564206e6674404e6674416c7265616479457869737473002204944e667420666f7220676976656e20766964656f20696420616c7265616479206578697374733c4e6674446f65734e6f744578697374002304944e667420666f7220676976656e20766964656f20696420646f6573206e6f742065786973746c4f766572666c6f774f72556e646572666c6f7748617070656e6564002404904f766572666c6f77206f7220756e646572666c6f77206572726f722068617070656e656434446f65734e6f744f776e4e667400250474476976656e206f726967696e20646f6573206e6f74206f776e206e667464526f79616c74795570706572426f756e64457863656564656400260470526f79616c747920557070657220426f756e6420457863656564656464526f79616c74794c6f776572426f756e64457863656564656400270470526f79616c7479204c6f77657220426f756e642045786365656465648441756374696f6e4475726174696f6e5570706572426f756e6445786365656465640028049441756374696f6e206475726174696f6e20757070657220626f756e642065786365656465648441756374696f6e4475726174696f6e4c6f776572426f756e6445786365656465640029049441756374696f6e206475726174696f6e206c6f77657220626f756e6420657863656564656484457874656e73696f6e506572696f645570706572426f756e644578636565646564002a04b441756374696f6e20657874656e73696f6e20706572696f6420757070657220626f756e6420657863656564656484457874656e73696f6e506572696f644c6f776572426f756e644578636565646564002b04b441756374696f6e20657874656e73696f6e20706572696f64206c6f77657220626f756e64206578636565646564844269644c6f636b4475726174696f6e5570706572426f756e644578636565646564002c0498426964206c6f636b206475726174696f6e20757070657220626f756e64206578636565646564844269644c6f636b4475726174696f6e4c6f776572426f756e644578636565646564002d0498426964206c6f636b206475726174696f6e206c6f77657220626f756e642065786365656465647c5374617274696e6750726963655570706572426f756e644578636565646564002e048c5374617274696e6720707269636520757070657220626f756e642065786365656465647c5374617274696e6750726963654c6f776572426f756e644578636565646564002f048c5374617274696e67207072696365206c6f77657220626f756e642065786365656465648041756374696f6e426964537465705570706572426f756e6445786365656465640030049441756374696f6e20626964207374657020757070657220626f756e642065786365656465648041756374696f6e426964537465704c6f776572426f756e6445786365656465640031049441756374696f6e206269642073746570206c6f77657220626f756e642065786365656465644c496e73756666696369656e7442616c616e636500320450496e73756666696369656e742062616c616e63656442696453746570436f6e73747261696e7456696f6c61746564003304b44d696e696d616c2061756374696f6e20626964207374657020636f6e73747261696e742076696f6c617465642e64496e76616c6964426964416d6f756e7453706563696669656400340488436f6d6d697420766572696669636174696f6e20666f722062696420616d6f756e747c5374617274696e675072696365436f6e73747261696e7456696f6c61746564003504ac41756374696f6e207374617274696e6720707269636520636f6e73747261696e742076696f6c617465642e50416374696f6e48617342696473416c7265616479003604a8416c7265616479206163746976652061756374696f6e2063616e6e6f742062652063616e63656c6c6564304e667449734e6f7449646c65003704990143616e206e6f74206372656174652061756374696f6e20666f72204e66742c2069662061756374696f6e2068617665206265656e20616c72656164792073746172746564206f72206e6674206973206c6f636b656420666f7220746865207472616e736665726050656e64696e674f66666572446f65734e6f7445786973740038047c4e6f2070656e64696e67206f666665727320666f7220676976656e204e6674545265776172644163636f756e7449734e6f74536574003904c843726561746f7220726f79616c747920726571756972657320726577617264206163636f756e7420746f206265207365742e404163746f7249734e6f74426964646572003a04684163746f72206973206e6f742061206c617374206269646465726041756374696f6e43616e6e6f744265436f6d706c65746564003b046c41756374696f6e2063616e6e6f7420626520636f6d706c657465643c426964446f65734e6f744578697374003c046841756374696f6e20646f6573206e6f74206861766520626964734c4269644973466f725061737441756374696f6e003d049453656c65637465642042696420697320666f722070617374206f70656e2061756374696f6e6853746172747341744c6f776572426f756e644578636565646564003e049841756374696f6e20737461727473206174206c6f77657220626f756e642065786365656465646853746172747341745570706572426f756e644578636565646564003f049841756374696f6e2073746172747320617420757070657220626f756e642065786365656465644841756374696f6e4469644e6f7453746172740040045c41756374696f6e20646964206e6f742073746172746564444e6f74496e41756374696f6e53746174650041046c4e6674206973206e6f7420696e2061756374696f6e2073746174657c4d656d62657249734e6f74416c6c6f776564546f5061727469636970617465004204bc4d656d626572206973206e6f7420616c6c6f77656420746f20706172746963697061746520696e2061756374696f6e544d656d62657250726f66696c654e6f74466f756e64004304604d656d6265722070726f66696c65206e6f7420666f756e644c4e66744e6f74496e4275794e6f7753746174650044049c476976656e20766964656f206e6674206973206e6f7420696e20627579206e6f7720737461746584496e76616c69644275794e6f775769746e657373507269636550726f76696465640045045501607769746e6573735f7072696365602070726f766964656420746f20606275795f6e6f77602065787472696e73696320646f6573206e6f74206d61746368207468652063757272656e742073656c6c2070726963655049734e6f744f70656e41756374696f6e547970650046046841756374696f6e2074797065206973206e6f7420604f70656e605c49734e6f74456e676c69736841756374696f6e547970650047047441756374696f6e2074797065206973206e6f742060456e676c697368606c4269644c6f636b4475726174696f6e49734e6f744578706972656400480480426964206c6f636b206475726174696f6e206973206e6f742065787069726564684e667441756374696f6e4973416c726561647945787069726564004904784e66742061756374696f6e20697320616c72656164792065787069726564904275794e6f774d7573744265477265617465725468616e5374617274696e675072696365004a04ac41756374696f6e20627579206e6f77206973206c657373207468656e207374617274696e67207072696365605461726765744d656d626572446f65734e6f744578697374004b04984e6674206f6666657220746172676574206d656d62657220646f6573206e6f742065786973748c496e76616c69644e66744f666665725769746e657373507269636550726f7669646564004c040d0143757272656e74206e6674206f6666657220707269636520646f6573206e6f74206d61746368207468652070726f766964656420607769746e6573735f707269636560ac4d617841756374696f6e57686974654c6973744c656e6774685570706572426f756e644578636565646564004d04c44d61782061756374696f6e2077686974656c697374206c656e67746820757070657220626f756e642065786365656465646457686974656c6973744861734f6e6c794f6e654d656d626572004e049441756374696f6e2077686974656c69737420686173206f6e6c79206f6e65206d656d6265727457686974656c69737465644d656d626572446f65734e6f744578697374004f04d84174206c65617374206f6e65206f66207468652077686974656c6973746564206d656d6265727320646f6573206e6f74206578697374784e66744e6f6e4368616e6e656c4f776e6572446f65734e6f744578697374005004f84e6f6e2d6368616e6e656c206f776e65722073706563696669656420647572696e67206e66742069737375616e636520646f6573206e6f74206578697374ac457874656e73696f6e506572696f644973477265617465725468656e41756374696f6e4475726174696f6e005104c4457874656e73696f6e20706572696f642069732067726561746572207468656e2061756374696f6e206475726174696f6e444e6f417373657473537065636966696564005204ac4e6f2061737365747320746f2062652072656d6f7665642068617665206265656e2073706563696669656454496e76616c696441737365747350726f7669646564005304684368616e6e656c2061737365747320666561736962696c697479544368616e6e656c436f6e7461696e73566964656f73005404584368616e6e656c20436f6e7461696e7320566964656f544368616e6e656c436f6e7461696e734173736574730055045c4368616e6e656c20436f6e7461696e73204173736574735c496e76616c696442616753697a655370656369666965640056047c4261672053697a6520737065636966696564206973206e6f742076616c6964504d6967726174696f6e4e6f7446696e6973686564005704584d6967726174696f6e206e6f7420646f6e6520796574445265706c79446f65734e6f7445786973740058046c5061727465636970616e74206973206e6f742061206d656d6265724c556e73756666696369656e7442616c616e636500590450496e73756666696369656e742062616c616e63656c496e73756666696369656e74547265617375727942616c616e6365005a0474496e73756666696369656e742074726561737572792062616c616e636554496e76616c69644d656d62657250726f7669646564005b0470496e76616c6964206d656d62657220696420207370656369666965643c4163746f724e6f74414d656d626572005c04544163746f72206973206e6f742041204d656d626572785061796d656e7450726f6f66566572696669636174696f6e4661696c6564005d04845061796d656e742050726f6f6620766572696669636174696f6e206661696c656484436173686f7574416d6f756e74457863656564734d6178696d756d416d6f756e74005e04c04368616e6e656c20636173686f757420616d6f756e7420697320746f6f206869676820746f20626520636c61696d65647c436173686f7574416d6f756e7442656c6f774d696e696d756d416d6f756e74005f04bc4368616e6e656c20636173686f757420616d6f756e7420697320746f6f206c6f7720746f20626520636c61696d6564e05769746864726177616c416d6f756e74457863656564734368616e6e656c4163636f756e74576974686472617761626c6542616c616e63650060085901416e20617474656d707420746f2077697468647261772066756e64732066726f6d206368616e6e656c206163636f756e74206661696c65642c2062656361757365207468652073706563696669656420616d6f756e744901657863656564732074686520776974686472617761626c6520616d6f756e7420286368616e6e656c206163636f756e742062616c616e6365206d696e7573206368616e6e656c20626c6f617420626f6e64297c576974686472617746726f6d4368616e6e656c416d6f756e7449735a65726f0061085901416e20617474656d707420746f2077697468647261772066756e64732066726f6d206368616e6e656c206163636f756e74206661696c65642c2062656361757365207468652073706563696669656420616d6f756e741c6973207a65726f5c4368616e6e656c436173686f75747344697361626c65640062049c4368616e6e656c20636173686f757473206172652063757272656e746c792064697361626c6564a44d696e436173686f7574416c6c6f776564457863656564734d6178436173686f7574416c6c6f77656400630809014e65772076616c75657320666f72206d696e5f636173686f75745f616c6c6f7765642f6d61785f636173686f75745f616c6c6f7765642061726520696e76616c6964d46d696e5f636173686f75745f616c6c6f7765642063616e6e6f7420657863656564206d61785f636173686f75745f616c6c6f7765648443757261746f724d6f6465726174696f6e416374696f6e4e6f74416c6c6f776564006404110143757261746f7220646f6573206e6f742068617665207065726d697373696f6e7320746f20706572666f726d20676976656e206d6f6465726174696f6e20616374696f6e944d617843757261746f725065726d697373696f6e735065724c6576656c457863656564656400650441014d6178696d756d206e756d626572206f662063757261746f72207065726d697373696f6e732070657220676976656e206368616e6e656c2070726976696c656765206c6576656c206578636565646564c043757261746f7247726f75704d61785065726d697373696f6e7342794c6576656c4d617053697a654578636565646564006604290143757261746f722067726f75702773207065726d697373696f6e73206279206c6576656c206d617020657863656564656420746865206d6178696d756d20616c6c6f7765642073697a65504368616e6e656c466561747572655061757365640067045d014f7065726174696f6e2063616e6e6f742062652065786563757465642c20626563617573652074686973206368616e6e656c206665617475726520686173206265656e2070617573656420627920612063757261746f72444368616e6e656c4261674d697373696e670068042d01556e65787065637465642072756e74696d652073746174653a206d697373696e67206368616e6e656c2062616720647572696e672064656c6574655f6368616e6e656c20617474656d70748c417373657473546f52656d6f76654265796f6e64456e74697479417373657473536574006904f5014c697374206f662061737365747320746f2072656d6f76652070726f766964656420666f72207570646174655f6368616e6e656c202f207570646174655f766964656f20636f6e7461696e7320617373657473207468617420646f6e27742062656c6f6e6720746f207468652073706563696669656420656e7469747990496e76616c6964566964656f446174614f626a65637473436f756e7450726f7669646564006a04f4496e76616c6964206e756d626572206f66206f626a6563747320746f2064656c6574652070726f766964656420666f722064656c6574655f766964656f70496e76616c69644368616e6e656c5472616e73666572537461747573006b04bc496e76616c6964206368616e6e656c207472616e736665722073746174757320666f72206f7065726174696f6e732e78496e76616c69644368616e6e656c5472616e736665724163636570746f72006c04d4496e636f7272656374206163746f7220747269657320746f2061636365707420746865206368616e6e656c207472616e736665722e98496e76616c69644368616e6e656c5472616e73666572436f6d6d69746d656e74506172616d73006d08550143616e6e6f742061636365707420746865206368616e6e656c207472616e736665723a2070726f766964656420636f6d6d69746d656e7420706172616d657465727320646f65736e2774206d617463682077697468906368616e6e656c2070656e64696e67207472616e7366657220706172616d65746572732e8c4368616e6e656c4167656e74496e73756666696369656e745065726d697373696f6e73006e004c496e76616c69644368616e6e656c4f776e6572006f04a4496e636f7272656374206368616e6e656c206f776e657220666f7220616e206f7065726174696f6e2e285a65726f5265776172640070046443616e6e6f7420636c61696d207a65726f207265776172642e78496e73756666696369656e7442616c616e6365466f725472616e73666572007104510143616e6e6f74207472616e7366657220746865206368616e6e656c3a206368616e6e656c206f776e65722068617320696e73756666696369656e742062616c616e6365202862756467657420666f72205747732994496e73756666696369656e7442616c616e6365466f724368616e6e656c4372656174696f6e0072080d0143616e6e6f742063726561746520746865206368616e6e656c3a206368616e6e656c2063726561746f722068617320696e73756666696369656e742062616c616e6365e9012862756467657420666f72206368616e6e656c20737461746520626c6f617420626f6e64202b206368616e6e656c2064617461206f626a7320737461746520626c6f617420626f6e6473202b2064617461206f626a732073746f726167652066656573202b206578697374656e7469616c206465706f736974298c496e73756666696369656e7442616c616e6365466f72566964656f4372656174696f6e007308fc43616e6e6f74206372656174652074686520766964656f3a20766964656f2063726561746f722068617320696e73756666696369656e742062616c616e6365d9012862756467657420666f7220766964656f20737461746520626c6f617420626f6e64202b20766964656f2064617461206f626a7320737461746520626c6f617420626f6e6473202b2064617461206f626a732073746f726167652066656573202b206578697374656e7469616c206465706f7369742964496e73756666696369656e74436f756e63696c4275646765740074006c476c6f62616c4e66744461696c794c696d6974457863656564656400750070476c6f62616c4e66745765656b6c794c696d69744578636565646564007600704368616e6e656c4e66744461696c794c696d69744578636565646564007700744368616e6e656c4e66745765656b6c794c696d697445786365656465640078006443726561746f72546f6b656e416c7265616479497373756564007904c443726561746f7220746f6b656e2077617320616c72656164792069737375656420666f722074686973206368616e6e656c5443726561746f72546f6b656e4e6f74497373756564007a04b043726561746f7220746f6b656e207761736e27742069737375656420666f722074686973206368616e6e656c884d656d6265724964436f756c644e6f7442654465726976656446726f6d4163746f72007b0415014d656d62657220696420636f756c64206e6f7420626520646572697665642066726f6d207468652070726f766964656420436f6e74656e744163746f7220636f6e74657874bc43616e6e6f74576974686472617746726f6d4368616e6e656c5769746843726561746f72546f6b656e497373756564007c08290143616e6e6f74206469726563746c792077697468647261772066756e64732066726f6d2061206368616e6e656c206163636f756e74207768656e20746865206368616e6e656c2068617358612063726561746f7220746f6b656e20697373756564bc506174726f6e61676543616e4f6e6c794265436c61696d6564466f724d656d6265724f776e65644368616e6e656c73007d04f4506174726f6e6167652063616e206f6e6c7920626520636c61696d6564206966206368616e6e656c206973206f776e65642062792061206d656d626572a84368616e6e656c5472616e7366657273426c6f636b6564447572696e67526576656e756553706c697473007e04cc4368616e6e656c205472616e73666572732061726520626c6f636b656420647572696e6720726576656e75652073706c6974739c4368616e6e656c5472616e7366657273426c6f636b6564447572696e67546f6b656e53616c6573007f04c04368616e6e656c205472616e73666572732061726520626c6f636b656420647572696e6720746f6b656e2073616c65730460436f6e74656e74206469726563746f7279206572726f7273e508083870616c6c65745f73746f72616765244261675265636f7264084c53746f726167654275636b657449647353657401e90860446973747269627574696f6e4275636b657449647353657401ed080010012473746f7265645f6279e908014c53746f726167654275636b657449647353657400013864697374726962757465645f6279ed080160446973747269627574696f6e4275636b65744964735365740001486f626a656374735f746f74616c5f73697a6528010c7536340001386f626a656374735f6e756d62657228010c7536340000e9080c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401280453000004006901012c42547265655365743c543e0000ed080c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e64656442547265655365740804540125020453000004003902012c42547265655365743c543e0000f108083870616c6c65745f73746f726167654c53746f726167654275636b65745265636f72640820576f726b657249640128244163636f756e74496401000010013c6f70657261746f725f737461747573f50801c053746f726167654275636b65744f70657261746f725374617475733c576f726b657249642c204163636f756e7449643e000148616363657074696e675f6e65775f62616773980110626f6f6c00011c766f7563686572ad02011c566f756368657200013461737369676e65645f6261677328010c7536340000f508083870616c6c65745f73746f726167656c53746f726167654275636b65744f70657261746f725374617475730820576f726b657249640128244163636f756e7449640100010c1c4d697373696e6700000050496e766974656453746f72616765576f726b65720400280120576f726b657249640001003453746f72616765576f726b65720800280120576f726b6572496400000001244163636f756e74496400020000f9080c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003001185665633c543e0000fd08083870616c6c65745f73746f726167656044796e616d69634261674372656174696f6e506f6c69637904b0446973747269627574696f6e4275636b657446616d696c79546f4e756d6265724f664275636b6574734d6170010109000801646e756d6265725f6f665f73746f726167655f6275636b65747310010c75333200012066616d696c696573010901b0446973747269627574696f6e4275636b657446616d696c79546f4e756d6265724f664275636b6574734d6170000001090c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b012804560110045300000400b502013842547265654d61703c4b2c20563e0000050900000408950228000909083870616c6c65745f73746f7261676528446174614f626a6563740448526570617961626c65426c6f6174426f6e6401e101001001206163636570746564980110626f6f6c00014073746174655f626c6f61745f626f6e64e1010148526570617961626c65426c6f6174426f6e6400011073697a6528010c75363400013c697066735f636f6e74656e745f6964f908013c4261736535384d756c74696861736800000d09083870616c6c65745f73746f7261676578446973747269627574696f6e4275636b657446616d696c795265636f7264045c446973747269627574696f6e4275636b6574496e6465780128000401786e6578745f646973747269627574696f6e5f6275636b65745f696e64657828015c446973747269627574696f6e4275636b6574496e64657800001109083870616c6c65745f73746f7261676560446973747269627574696f6e4275636b65745265636f72640888446973747269627574696f6e4275636b6574496e76697465644f70657261746f72730115096c446973747269627574696f6e4275636b65744f70657261746f727301190900140148616363657074696e675f6e65775f62616773980110626f6f6c000130646973747269627574696e67980110626f6f6c00014c70656e64696e675f696e7669746174696f6e7315090188446973747269627574696f6e4275636b6574496e76697465644f70657261746f72730001246f70657261746f72731909016c446973747269627574696f6e4275636b65744f70657261746f727300013461737369676e65645f6261677328010c753634000015090c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401280453000004006901012c42547265655365743c543e000019090c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401280453000004006901012c42547265655365743c543e00001d09083870616c6c65745f73746f72616765144572726f72040454000105013c41726974686d657469634572726f72000004f447656e657269632041726974686d65746963204572726f722064756520746f20696e7465726e616c206163636f756e74696e67206f7065726174696f6e40496e76616c69644369644c656e67746800010494496e76616c696420434944206c656e67746820286d75737420626520343620627974657329444e6f4f626a656374734f6e55706c6f6164000204a0456d707479202264617461206f626a656374206372656174696f6e2220636f6c6c656374696f6e2e6053746f726167654275636b6574446f65736e744578697374000304ac546865207265717565737465642073746f72616765206275636b657420646f65736e27742065786973742e7053746f726167654275636b657449734e6f74426f756e64546f426167000404cc546865207265717565737465642073746f72616765206275636b6574206973206e6f7420626f756e6420746f2061206261672e6453746f726167654275636b65744973426f756e64546f426167000504dc546865207265717565737465642073746f72616765206275636b657420697320616c726561647920626f756e6420746f2061206261672e644e6f53746f726167654275636b6574496e7669746174696f6e0006041901496e76616c6964206f7065726174696f6e207769746820696e76697465733a207468657265206973206e6f2073746f72616765206275636b657420696e7669746174696f6e2e6453746f7261676550726f7669646572416c72656164795365740007040501496e76616c6964206f7065726174696f6e207769746820696e76697465733a2073746f726167652070726f76696465722077617320616c7265616479207365742e6053746f7261676550726f76696465724d75737442655365740008047453746f726167652070726f7669646572206d757374206265207365742e7c446966666572656e7453746f7261676550726f7669646572496e76697465640009041501496e76616c6964206f7065726174696f6e207769746820696e76697465733a20616e6f746865722073746f726167652070726f76696465722077617320696e76697465642e58496e766974656453746f7261676550726f7669646572000a041501496e76616c6964206f7065726174696f6e207769746820696e76697465733a2073746f726167652070726f76696465722077617320616c726561647920696e76697465642e8853746f726167654275636b65744964436f6c6c656374696f6e73417265456d707479000b04a053746f72616765206275636b657420696420636f6c6c656374696f6e732061726520656d7074792ed053746f726167654275636b6574734e756d62657256696f6c6174657344796e616d69634261674372656174696f6e506f6c696379000c08290153746f72616765206275636b657420696420636f6c6c656374696f6e2070726f766964656420636f6e747261646963747320746865206578697374696e672064796e616d696320626167406372656174696f6e20706f6c6963792ecc446973747269627574696f6e4275636b65747356696f6c6174657344796e616d69634261674372656174696f6e506f6c696379000d083d01446973747269627574696f6e206275636b657420696420636f6c6c656374696f6e2070726f766964656420636f6e747261646963747320746865206578697374696e672064796e616d696320626167406372656174696f6e20706f6c6963792e38456d707479436f6e74656e744964000e04b455706c6f61642064617461206572726f723a20656d70747920636f6e74656e742049442070726f76696465642e385a65726f4f626a65637453697a65000f049055706c6f61642064617461206572726f723a207a65726f206f626a6563742073697a652e88496e76616c69645374617465426c6f6174426f6e64536f757263654163636f756e74001004ec55706c6f61642064617461206572726f723a20696e76616c696420737461746520626c6f617420626f6e6420736f75726365206163636f756e742e58496e76616c696453746f7261676550726f766964657200110490496e76616c69642073746f726167652070726f766964657220666f72206275636b65742e4c496e73756666696369656e7442616c616e636500120498496e73756666696369656e742062616c616e636520666f7220616e206f7065726174696f6e2e54446174614f626a656374446f65736e7445786973740013046844617461206f626a65637420646f65736e27742065786973742e4055706c6f6164696e67426c6f636b65640014049c55706c6f6164696e67206f6620746865206e6577206f626a65637420697320626c6f636b65642e74446174614f626a6563744964436f6c6c656374696f6e4973456d7074790015048c44617461206f626a65637420696420636f6c6c656374696f6e20697320656d7074792e80536f75726365416e6444657374696e6174696f6e42616773417265457175616c001604a043616e6e6f74206d6f7665206f626a656374732077697468696e207468652073616d65206261672e54446174614f626a656374426c61636b6c6973746564001704a844617461206f626a65637420686173682069732070617274206f662074686520626c61636b6c6973742e68426c61636b6c69737453697a654c696d6974457863656564656400180478426c61636b6c6973742073697a65206c696d69742065786365656465642e84566f75636865724d61784f626a65637453697a654c696d69744578636565646564001904ac4d6178206f626a6563742073697a65206c696d697420657863656564656420666f7220766f75636865722e8c566f75636865724d61784f626a6563744e756d6265724c696d69744578636565646564001a04b44d6178206f626a656374206e756d626572206c696d697420657863656564656420666f7220766f75636865722e9453746f726167654275636b65744f626a6563744e756d6265724c696d697452656163686564001b04cc4f626a656374206e756d626572206c696d697420666f72207468652073746f72616765206275636b657420726561636865642e8c53746f726167654275636b65744f626a65637453697a654c696d697452656163686564001c04e04f626a6563747320746f74616c2073697a65206c696d697420666f72207468652073746f72616765206275636b657420726561636865642e6c496e73756666696369656e74547265617375727942616c616e6365001d04d8496e73756666696369656e74206d6f64756c652074726561737572792062616c616e636520666f7220616e206f7065726174696f6e2e8443616e6e6f7444656c6574654e6f6e456d70747953746f726167654275636b6574001e04a443616e6e6f742064656c6574652061206e6f6e2d656d7074792073746f72616765206275636b65742e68446174614f626a6563744964506172616d73417265456d707479001f04f85468652060646174615f6f626a6563745f696473602065787472696e73696320706172616d6574657220636f6c6c656374696f6e20697320656d7074792e7c53746f726167654275636b6574735065724261674c696d6974546f6f4c6f77002004d8546865206e6577206053746f726167654275636b6574735065724261674c696d697460206e756d62657220697320746f6f206c6f772e8053746f726167654275636b6574735065724261674c696d6974546f6f48696768002104dc546865206e6577206053746f726167654275636b6574735065724261674c696d697460206e756d62657220697320746f6f20686967682e8053746f726167654275636b65745065724261674c696d69744578636565646564002204cc6053746f726167654275636b6574735065724261674c696d6974602077617320657863656564656420666f722061206261672e8053746f726167654275636b6574446f65736e744163636570744e657742616773002304ac5468652073746f72616765206275636b657420646f65736e277420616363657074206e657720626167732e4044796e616d6963426167457869737473002404c843616e6e6f7420637265617465207468652064796e616d6963206261673a2064796e616d696320626167206578697374732e5444796e616d6963426167446f65736e7445786973740025046844796e616d69632062616720646f65736e27742065786973742e8853746f7261676550726f76696465724f70657261746f72446f65736e744578697374002604a053746f726167652070726f7669646572206f70657261746f7220646f65736e27742065786973742e484461746153697a654665654368616e676564002704b8496e76616c69642065787472696e7369632063616c6c3a20646174612073697a6520666565206368616e6765642e7c446174614f626a6563745374617465426c6f6174426f6e644368616e676564002804f4496e76616c69642065787472696e7369632063616c6c3a2064617461206f626a65637420737461746520626c6f617420626f6e64206368616e6765642e7843616e6e6f7444656c6574654e6f6e456d70747944796e616d69634261670029049043616e6e6f742064656c657465206e6f6e20656d7074792064796e616d6963206261672eb84d6178446973747269627574696f6e4275636b657446616d696c794e756d6265724c696d69744578636565646564002a04d44d617820646973747269627574696f6e206275636b65742066616d696c79206e756d626572206c696d69742065786365656465642e8c446973747269627574696f6e4275636b657446616d696c79446f65736e744578697374002b04a4446973747269627574696f6e206275636b65742066616d696c7920646f65736e27742065786973742e74446973747269627574696f6e4275636b6574446f65736e744578697374002c0488446973747269627574696f6e206275636b657420646f65736e27742065786973742e9c446973747269627574696f6e4275636b65744964436f6c6c656374696f6e73417265456d707479002d04b4446973747269627574696f6e206275636b657420696420636f6c6c656374696f6e732061726520656d7074792e94446973747269627574696f6e4275636b6574446f65736e744163636570744e657742616773002e04b0446973747269627574696f6e206275636b657420646f65736e277420616363657074206e657720626167732eb84d6178446973747269627574696f6e4275636b65744e756d6265725065724261674c696d69744578636565646564002f04d84d617820646973747269627574696f6e206275636b6574206e756d6265722070657220626167206c696d69742065786365656465642e84446973747269627574696f6e4275636b657449734e6f74426f756e64546f426167003004a8446973747269627574696f6e206275636b6574206973206e6f7420626f756e6420746f2061206261672e78446973747269627574696f6e4275636b65744973426f756e64546f42616700310498446973747269627574696f6e206275636b657420697320626f756e6420746f2061206261672e90446973747269627574696f6e4275636b6574735065724261674c696d6974546f6f4c6f77003204ec546865206e65772060446973747269627574696f6e4275636b6574735065724261674c696d697460206e756d62657220697320746f6f206c6f772e94446973747269627574696f6e4275636b6574735065724261674c696d6974546f6f48696768003304f0546865206e65772060446973747269627574696f6e4275636b6574735065724261674c696d697460206e756d62657220697320746f6f20686967682e9c446973747269627574696f6e50726f76696465724f70657261746f72446f65736e744578697374003404b4446973747269627574696f6e2070726f7669646572206f70657261746f7220646f65736e27742065786973742ea8446973747269627574696f6e50726f76696465724f70657261746f72416c7265616479496e7669746564003504bc446973747269627574696f6e2070726f7669646572206f70657261746f7220616c726561647920696e76697465642e7c446973747269627574696f6e50726f76696465724f70657261746f72536574003604ac446973747269627574696f6e2070726f7669646572206f70657261746f7220616c7265616479207365742e784e6f446973747269627574696f6e4275636b6574496e7669746174696f6e003704884e6f20646973747269627574696f6e206275636b657420696e7669746174696f6e2eac4d7573744265446973747269627574696f6e50726f76696465724f70657261746f72466f724275636b65740038042901496e76616c6964206f7065726174696f6e733a206d757374206265206120646973747269627574696f6e2070726f7669646572206f70657261746f7220666f722061206275636b65742ef84d61784e756d6265724f6650656e64696e67496e7669746174696f6e734c696d6974466f72446973747269627574696f6e4275636b65745265616368656400390429014d6178206e756d626572206f662070656e64696e6720696e7669746174696f6e73206c696d697420666f72206120646973747269627574696f6e206275636b657420726561636865642ec04d61784e756d6265724f664f70657261746f7273506572446973747269627574696f6e4275636b657452656163686564003a04e84d6178206e756d626572206f66206f70657261746f727320666f72206120646973747269627574696f6e206275636b657420726561636865642ea8446973747269627574696f6e46616d696c79426f756e64546f4261674372656174696f6e506f6c696379003b04cc446973747269627574696f6e2066616d696c7920626f756e6420746f206120626167206372656174696f6e20706f6c6963792e644d6178446174614f626a65637453697a654578636565646564003c04784d61782064617461206f626a6563742073697a652065786365656465642e60496e76616c69645472616e736163746f724163636f756e74003d04b8496e76616c6964207472616e736163746f72206163636f756e7420494420666f722074686973206275636b65742ec04e756d6265724f6653746f726167654275636b6574734f7574736964654f66416c6c6f776564436f6e747261696e7473003e049c4e6f7420616c6c6f77656420276e756d626572206f662073746f72616765206275636b65747327d44e756d6265724f66446973747269627574696f6e4275636b6574734f7574736964654f66416c6c6f776564436f6e747261696e7473003f04b04e6f7420616c6c6f77656420276e756d626572206f6620646973747269627574696f6e206275636b657473273043616c6c44697361626c65640040043443616c6c2044697361626c6564048053746f72616765206d6f64756c6520707265646566696e6564206572726f727321090c5070616c6c65745f70726f6a6563745f746f6b656e1474797065732c4163636f756e7444617461101c42616c616e63650118345374616b696e6753746174757301250948526570617961626c65426c6f6174426f6e6401e1014056657374696e675363686564756c65730129090018014476657374696e675f7363686564756c65732909014056657374696e675363686564756c6573000118616d6f756e7418011c42616c616e636500015073706c69745f7374616b696e675f7374617475733d0901544f7074696f6e3c5374616b696e675374617475733e000128626c6f61745f626f6e64e1010148526570617961626c65426c6f6174426f6e640001606e6578745f76657374696e675f7472616e736665725f696428010c7536340001806c6173745f73616c655f746f74616c5f7075726368617365645f616d6f756e74410901784f7074696f6e3c28546f6b656e53616c6549642c2042616c616e6365293e000025090c5070616c6c65745f70726f6a6563745f746f6b656e147479706573345374616b696e67537461747573041c42616c616e636501180008012073706c69745f6964100138526576656e756553706c69744964000118616d6f756e7418011c42616c616e6365000029090c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b0111030456012d090453000004003109013842547265654d61703c4b2c20563e00002d090c5070616c6c65745f70726f6a6563745f746f6b656e1474797065733c56657374696e675363686564756c65082c426c6f636b4e756d62657201101c42616c616e63650118001401686c696e6561725f76657374696e675f73746172745f626c6f636b10012c426c6f636b4e756d62657200015c6c696e6561725f76657374696e675f6475726174696f6e10012c426c6f636b4e756d626572000130636c6966665f616d6f756e7418011c42616c616e636500015c706f73745f636c6966665f746f74616c5f616d6f756e7418011c42616c616e63650001346275726e65645f616d6f756e7418011c42616c616e636500003109042042547265654d617008044b0111030456012d090004003509000000350900000239090039090000040811032d09003d0904184f7074696f6e0404540125090108104e6f6e6500000010536f6d65040025090000010000410904184f7074696f6e0404540145090108104e6f6e6500000010536f6d6504004509000001000045090000040810180049090c5070616c6c65745f70726f6a6563745f746f6b656e14747970657324546f6b656e44617461141c42616c616e636501181048617368012c2c426c6f636b4e756d626572011024546f6b656e53616c6501210344526576656e756553706c69745374617465014d09002c0130746f74616c5f737570706c7918011c42616c616e6365000134746f6b656e735f69737375656418011c42616c616e63650001306e6578745f73616c655f696410012c546f6b656e53616c65496400011073616c65590901444f7074696f6e3c546f6b656e53616c653e00013c7472616e736665725f706f6c696379c50201505472616e73666572506f6c6963793c486173683e00011873796d626f6c2c011048617368000138706174726f6e6167655f696e666f5d09018c506174726f6e616765446174613c42616c616e63652c20426c6f636b4e756d6265723e00013c6163636f756e74735f6e756d62657228010c753634000148726576656e75655f73706c69745f72617465d502011c5065726d696c6c000134726576656e75655f73706c69744d090144526576656e756553706c697453746174650001546e6578745f726576656e75655f73706c69745f6964100138526576656e756553706c6974496400004d090c5070616c6c65745f70726f6a6563745f746f6b656e14747970657344526576656e756553706c6974537461746508284a6f7942616c616e636501182c426c6f636b4e756d6265720110010820496e616374697665000000184163746976650400510901a4526576656e756553706c6974496e666f3c4a6f7942616c616e63652c20426c6f636b4e756d6265723e0001000051090c5070616c6c65745f70726f6a6563745f746f6b656e14747970657340526576656e756553706c6974496e666f08284a6f7942616c616e636501182c426c6f636b4e756d6265720110000c0128616c6c6f636174696f6e1801284a6f7942616c616e636500012074696d656c696e655509015454696d656c696e653c426c6f636b4e756d6265723e0001446469766964656e64735f636c61696d65641801284a6f7942616c616e6365000055090c5070616c6c65745f70726f6a6563745f746f6b656e1474797065732054696d656c696e65042c426c6f636b4e756d626572011000080114737461727410012c426c6f636b4e756d6265720001206475726174696f6e10012c426c6f636b4e756d6265720000590904184f7074696f6e0404540121030108104e6f6e6500000010536f6d650400210300000100005d090c5070616c6c65745f70726f6a6563745f746f6b656e14747970657334506174726f6e61676544617461081c42616c616e636501182c426c6f636b4e756d6265720110000c01107261746561090124426c6f636b52617465000180756e636c61696d65645f706174726f6e6167655f74616c6c795f616d6f756e7418011c42616c616e63650001906c6173745f756e636c61696d65645f706174726f6e6167655f74616c6c795f626c6f636b10012c426c6f636b4e756d626572000061090c5070616c6c65745f70726f6a6563745f746f6b656e14747970657324426c6f636b52617465000004002503012c5065727175696e74696c6c000065090c5070616c6c65745f70726f6a6563745f746f6b656e186572726f7273144572726f720404540001c43c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f772980496e73756666696369656e745472616e736665727261626c6542616c616e636500010481014163636f756e742773207472616e736665727261626c652062616c616e636520697320696e73756666696369656e7420746f20706572666f726d20746865207472616e73666572206f7220696e697469616c697a6520746f6b656e2073616c6544546f6b656e446f65734e6f7445786973740002047852657175657374656420746f6b656e20646f6573206e6f74206578697374784163636f756e74496e666f726d6174696f6e446f65734e6f74457869737400030494526571756573746564206163636f756e74206461746120646f6573206e6f74206578697374945472616e7366657244657374696e6174696f6e4d656d626572446f65734e6f74457869737400040419014174206c65617374206f6e65206f6620746865207472616e736665722064657374696e6174696f6e73206973206e6f7420616e206578697374696e67206d656d626572206964784d65726b6c6550726f6f66566572696669636174696f6e4661696c757265000504804d65726b6c652070726f6f6620766572696669636174696f6e206661696c6564a8546172676574506174726f6e6167655261746549734869676865725468616e43757272656e7452617465000604c4546172676574205261746520697320686967686572207468616e2063757272656e7420706174726f6e61676520726174655c546f6b656e53796d626f6c416c7265616479496e5573650007045453796d626f6c20616c726561647920696e2075736590496e697469616c416c6c6f636174696f6e546f4e6f6e4578697374696e674d656d62657200080441014174206c65617374206f6e65206f6620746865206d656d626572732070726f76696465642061732070617274206f6620496e697469616c416c6c6f636174696f6e20646f6573206e6f74206578697374504163636f756e74416c7265616479457869737473000904584163636f756e7420416c7265616479206578697374736c546f6b656e49737375616e63654e6f74496e49646c655374617465000a04a8546f6b656e27732063757272656e74206f66666572696e67207374617465206973206e6f742049646c6558496e73756666696369656e744a6f7942616c616e6365000b04dc496e73756666696369656e74204a4f592042616c616e636520746f20636f76657220746865207472616e73616374696f6e20636f7374736c4a6f795472616e736665725375626a656374546f44757374696e67000c045d0154686520616d6f756e74206f66204a4f5920746f206265207472616e73666572726564206973206e6f7420656e6f75676820746f206b656570207468652064657374696e6174696f6e206163636f756e7420616c697665cc417474656d7074546f52656d6f76654e6f6e4f776e65644163636f756e74556e6465725065726d697373696f6e65644d6f6465000d04ec417474656d707420746f2072656d6f7665206e6f6e206f776e6564206163636f756e7420756e646572207065726d697373696f6e6564206d6f646578417474656d7074546f52656d6f76654e6f6e456d7074794163636f756e74000e04e4417474656d707420746f2072656d6f766520616e206163636f756e74207769746820736f6d65206f75747374616e64696e6720746f6b656e739c43616e6e6f744a6f696e57686974656c697374496e5065726d697373696f6e6c6573734d6f6465000f04b043616e6e6f74206a6f696e2077686974656c69737420696e207065726d697373696f6e6c657373206d6f6465a443616e6e6f7444656973737565546f6b656e576974684f75747374616e64696e674163636f756e7473001004b843616e6e6f74204465697373756520546f6b656e2077697468206f75747374616e64696e67206163636f756e7473384e6f5570636f6d696e6753616c650011047854686520746f6b656e20686173206e6f207570636f6d696e672073616c65304e6f41637469766553616c65001204a854686520746f6b656e20686173206e6f206163746976652073616c6520617420746865206d6f6d656e748c496e73756666696369656e7442616c616e6365466f72546f6b656e507572636861736500130401014163636f756e742773204a4f592062616c616e636520697320696e73756666696369656e7420746f206d616b652074686520746f6b656e207075726368617365544e6f74456e6f756768546f6b656e734f6e53616c650014047d01416d6f756e74206f6620746f6b656e7320746f207075726368617365206f6e2073616c65206578636565647320746865207175616e74697479206f6620746f6b656e73207374696c6c20617661696c61626c65206f6e207468652073616c656853616c655374617274696e67426c6f636b496e54686550617374001504b05370656369666965642073616c65207374617274696e6720626c6f636b20697320696e2074686520706173745c53616c6541636365737350726f6f66526571756972656400160481014f6e6c792077686974656c6973746564207061727469636970616e74732061726520616c6c6f77656420746f20616363657373207468652073616c652c207468657265666f7265206163636573732070726f6f662069732072657175697265649453616c6541636365737350726f6f665061727469636970616e7449734e6f7453656e64657200170829015061727469636970616e7420696e2073616c65206163636573732070726f6f662070726f766964656420647572696e67206070757263686173655f746f6b656e735f6f6e5f73616c656084646f6573206e6f74206d61746368207468652073656e646572206163636f756e745c53616c6550757263686173654361704578636565646564001808610153616c65207061727469636970616e742773206361702028656974686572206361705f7065725f6d656d626572206f722077686974656c6973746564207061727469636970616e742773207370656369666963206361702978776173206578636565646564207769746820746865207075726368617365b04d617856657374696e675363686564756c65735065724163636f756e74506572546f6b656e52656163686564001908c843616e6e6f742061646420616e6f746865722076657374696e67207363686564756c6520746f20616e206163636f756e742e31014d6178696d756d206e756d626572206f662076657374696e67207363686564756c657320666f722074686973206163636f756e742d746f6b656e20706169722077617320726561636865642e6050726576696f757353616c654e6f7446696e616c697a6564001a04e450726576696f75732073616c6520776173207374696c6c206e6f742066696e616c697a65642c2066696e616c697a652069742066697273742e444e6f546f6b656e73546f5265636f766572001b041501546865726520617265206e6f2072656d61696e696e6720746f6b657320746f207265636f7665722066726f6d207468652070726576696f757320746f6b656e2073616c652e5053616c654475726174696f6e546f6f53686f7274001c04dc5370656369666965642073616c65206475726174696f6e2069732073686f72746572207468616e204d696e53616c654475726174696f6e4853616c654475726174696f6e49735a65726f001d047053616c65206475726174696f6e2063616e6e6f74206265207a65726f7053616c655570706572426f756e645175616e7469747949735a65726f001e048c557070657220626f756e64207175616e746974792063616e6e6f74206265207a65726f5853616c654361705065724d656d62657249735a65726f001f049850757263686173652063617020706572206d656d6265722063616e6e6f74206265207a65726f4c53616c65556e6974507269636549735a65726f00200484546f6b656e277320756e69742070726963652063616e6e6f74206265207a65726f6053616c655075726368617365416d6f756e7449735a65726f002104cc416d6f756e74206f6620746f6b656e7320746f207075726368617365206f6e2073616c652063616e6e6f74206265207a65726f7c526576656e756553706c697454696d65546f5374617274546f6f53686f7274002204d453706563696669656420726576656e75652073706c6974207374617274696e6720626c6f636b20697320696e20746865207061737470526576656e756553706c69744475726174696f6e546f6f53686f72740023048c526576656e75652053706c6974206475726174696f6e20697320746f6f2073686f727484526576656e756553706c6974416c7265616479416374697665466f72546f6b656e002404a8417474656d707420746f2061637469766174652073706c69742077697468206f6e65206f6e676f696e6774526576656e756553706c69744e6f74416374697665466f72546f6b656e0025043501417474656d707420746f206d616b6520726576656e75652073706c6974206f7065726174696f6e73207769746820746f6b656e206e6f7420696e206163746976652073706c697420737461746554526576656e756553706c69744469644e6f74456e640026047c526576656e75652053706c697420686173206e6f7420656e6465642079657458526576656e756553706c69744e6f744f6e676f696e67002704bc526576656e75652053706c697420666f7220746f6b656e206163746976652c20627574206e6f74206f6e676f696e676055736572416c726561647950617274696369706174696e67002804bc5573657220616c72656164792070617274696369706174696e6720696e2074686520726576656e75652073706c6974a0496e73756666696369656e7442616c616e6365466f7253706c697450617274696369706174696f6e0029041d015573657220646f6573206e6f7420706f7373657320656e6f7567682062616c616e636520746f20706172746963697061746520696e2074686520726576656e75652073706c69747c557365724e6f745061727469636970616e74696e67496e416e7953706c6974002a049855736572206973206e6f742070617274696369706174696e6720696e20616e792073706c69749843616e6e6f745061727469636970617465496e53706c6974576974685a65726f416d6f756e74002b04e8417474656d707420746f20706172746963697061746520696e20612073706c69742077697468207a65726f20746f6b656e20746f207374616b65a043616e6e6f74497373756553706c6974576974685a65726f416c6c6f636174696f6e416d6f756e74002c04dc417474656d707420746f20697373756520696e20612073706c69742077697468207a65726f20616c6c6f636174696f6e20616d6f756e74b043616e6e6f744d6f64696679537570706c795768656e526576656e756553706c697473417265416374697665002d04d4417474656d707420746f206d6f6469667920737570706c79207768656e20726576656e75652073706c69742069732061637469766558526576656e756553706c69745261746549735a65726f002e0478526576656e75652073706c697420726174652063616e6e6f742062652030404275726e416d6f756e7449735a65726f002f047c50726f766964656420616d6f756e7420746f206275726e206973203d3d2030a04275726e416d6f756e74477265617465725468616e4163636f756e74546f6b656e73416d6f756e740030043101416d6f756e74206f6620746f6b656e7320746f206275726e206578636565647320746f74616c20616d6f756e74206f6620746f6b656e73206f776e656420627920746865206163636f756e740069090c5c70616c6c65745f70726f706f73616c735f656e67696e651474797065732050726f706f73616c102c426c6f636b4e756d62657201102850726f706f736572496401281c42616c616e63650118244163636f756e744964010000200128706172616d65746572736d0901a050726f706f73616c506172616d65746572733c426c6f636b4e756d6265722c2042616c616e63653e00012c70726f706f7365725f696428012850726f706f73657249640001306163746976617465645f617410012c426c6f636b4e756d6265720001187374617475732d03016c50726f706f73616c5374617475733c426c6f636b4e756d6265723e000138766f74696e675f726573756c747371090134566f74696e67526573756c747300015465786163745f657865637574696f6e5f626c6f636b0102014c4f7074696f6e3c426c6f636b4e756d6265723e00016c6e725f6f665f636f756e63696c5f636f6e6669726d6174696f6e7310010c7533320001487374616b696e675f6163636f756e745f69649401444f7074696f6e3c4163636f756e7449643e00006d090c5c70616c6c65745f70726f706f73616c735f656e67696e651474797065734850726f706f73616c506172616d6574657273082c426c6f636b4e756d62657201101c42616c616e6365011800200134766f74696e675f706572696f6410012c426c6f636b4e756d62657200013067726163655f706572696f6410012c426c6f636b4e756d626572000168617070726f76616c5f71756f72756d5f70657263656e7461676510010c753332000174617070726f76616c5f7468726573686f6c645f70657263656e7461676510010c753332000168736c617368696e675f71756f72756d5f70657263656e7461676510010c753332000174736c617368696e675f7468726573686f6c645f70657263656e7461676510010c75333200013872657175697265645f7374616b654501013c4f7074696f6e3c42616c616e63653e000144636f6e737469747574696f6e616c69747910010c753332000071090c5c70616c6c65745f70726f706f73616c735f656e67696e6514747970657334566f74696e67526573756c7473000010012c61627374656e74696f6e7310010c753332000124617070726f76616c7310010c75333200012872656a656374696f6e7310010c75333200011c736c617368657310010c753332000075090c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003001185665633c543e00007909000004081028007d09085c70616c6c65745f70726f706f73616c735f656e67696e65144572726f7204045400015c3c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f772948456d7074795469746c6550726f76696465640001049050726f706f73616c2063616e6e6f74206861766520616e20656d707479207469746c652260456d7074794465736372697074696f6e50726f76696465640002048850726f706f73616c2063616e6e6f74206861766520616e20656d70747920626f6479385469746c654973546f6f4c6f6e67000304445469746c6520697320746f6f206c6f6e67504465736372697074696f6e4973546f6f4c6f6e670004045c4465736372697074696f6e20697320746f6f206c6f6e674050726f706f73616c4e6f74466f756e640005046c5468652070726f706f73616c20646f6573206e6f742065786973744450726f706f73616c46696e616c697a65640006047450726f706f73616c2069732066696e616c697a656420616c726561647930416c7265616479566f7465640007049c5468652070726f706f73616c2068617665206265656e20616c726561647920766f746564206f6e244e6f74417574686f72000804344e6f7420616e20617574686f727c4d617841637469766550726f706f73616c4e756d6265724578636565646564000904904d6178206163746976652070726f706f73616c73206e756d62657220657863656564656428456d7074795374616b65000a04a05374616b652063616e6e6f7420626520656d707479207769746820746869732070726f706f73616c485374616b6553686f756c644265456d707479000b049c5374616b652073686f756c6420626520656d70747920666f7220746869732070726f706f73616c605374616b654469666665727346726f6d5265717569726564000c04b05374616b6520646966666572732066726f6d207468652070726f706f73616c20726571756972656d656e747384496e76616c6964506172616d65746572417070726f76616c5468726573686f6c64000d0484417070726f76616c207468726573686f6c642063616e6e6f74206265207a65726f84496e76616c6964506172616d65746572536c617368696e675468726573686f6c64000e0484536c617368696e67207468726573686f6c642063616e6e6f74206265207a65726f4452657175697265526f6f744f726967696e000f04845265717569726520726f6f74206f726967696e20696e2065787472696e736963734050726f706f73616c486173566f746573001004f4446973616c6c6f7720746f2063616e63656c207468652070726f706f73616c2069662074686572652061726520616e7920766f746573206f6e2069742e5c5a65726f4578616374457865637574696f6e426c6f636b00110494457861637420657865637574696f6e20626c6f636b2063616e6e6f74206265207a65726f2e68496e76616c69644578616374457865637574696f6e426c6f636b001204e0457861637420657865637574696f6e20626c6f636b2063616e6e6f74206265206c657373207468616e2063757272656e745f626c6f636b2e6c496e73756666696369656e7442616c616e6365466f725374616b65001304a05468657265206973206e6f7420656e6f7567682062616c616e636520666f722061207374616b652e44436f6e666c696374696e675374616b6573001404bc54686520636f6e666c696374696e67207374616b6520646973636f76657265642e2043616e6e6f74207374616b652e78496e76616c69645374616b696e674163636f756e74466f724d656d626572001504ac5374616b696e67206163636f756e7420646f65736e27742062656c6f6e6720746f2061206d656d6265722e8c4d6178446973706174636861626c6543616c6c436f646553697a6545786365656465640016043d015468652073697a65206f6620656e636f64656420646973706174636861626c652063616c6c20746f206265206578656375746564206279207468652070726f706f73616c20697320746f6f20626967047c456e67696e65206d6f64756c6520707265646566696e6564206572726f727381090c6c70616c6c65745f70726f706f73616c735f64697363757373696f6e1474797065734044697363757373696f6e5468726561640c204d656d626572496401282c426c6f636b4e756d62657201103c54687265616457686974656c697374018509000c01306163746976617465645f617410012c426c6f636b4e756d626572000124617574686f725f69642801204d656d62657249640001106d6f64658909016c5468726561644d6f64653c54687265616457686974656c6973743e000085090c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401280453000004006901012c42547265655365743c543e000089090c6c70616c6c65745f70726f706f73616c735f64697363757373696f6e147479706573285468726561644d6f6465043c54687265616457686974656c6973740185090108104f70656e00000018436c6f73656404008509013c54687265616457686974656c697374000100008d090c6c70616c6c65745f70726f706f73616c735f64697363757373696f6e1474797065733844697363757373696f6e506f73740c204d656d626572496401282c426c6f636b4e756d626572011048526570617961626c65426c6f6174426f6e6401e101000c0124617574686f725f69642801204d656d626572496400013c636c65616e75705f7061795f6f6666e1010148526570617961626c65426c6f6174426f6e6400012c6c6173745f65646974656410012c426c6f636b4e756d62657200009109086c70616c6c65745f70726f706f73616c735f64697363757373696f6e144572726f720404540001283c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f772944546872656164446f65736e7445786973740001045054687265616420646f65736e27742065786973743c506f7374446f65736e74457869737400020448506f737420646f65736e27742065786973744452657175697265526f6f744f726967696e000304845265717569726520726f6f74206f726967696e20696e2065787472696e736963736043616e6e6f74506f73744f6e436c6f7365645468726561640004046501546865207468726561642068617320436c6f736564206d6f64652e20416e6420706f737420617574686f7220646f65736e27742062656c6f6e6720746f20636f756e63696c206f7220616c6c6f776564206d656d626572732e504e6f74417574686f724f72436f756e63696c6f720005049453686f756c642062652074687265616420617574686f72206f7220636f756e63696c6f722e604d617857686974654c69737453697a654578636565646564000604a04d617820616c6c6f77656420617574686f7273206c697374206c696d69742065786365656465642e7457686974656c69737465644d656d626572446f65734e6f74457869737400070849014174206c65617374206f6e65206f6620746865206d656d626572206964732070726f76696465642061732070617274206f6620636c6f736564207468726561642077686974656c6973742062656c6f6e677364746f2061206e6f6e2d6578697374696e67206d656d6265722e68496e73756666696369656e7442616c616e6365466f72506f7374000804c44163636f756e742068617320696e73756666696369656e742062616c616e636520746f20637265617465206120706f73744043616e6e6f7444656c657465506f73740009049c4163636f756e742063616e27742064656c65746520706f737420617420746865206d6f6d656e74048c44697363757373696f6e206d6f64756c6520707265646566696e6564206572726f72739509085870616c6c65745f70726f706f73616c735f636f646578144572726f72040454000168545369676e616c50726f706f73616c4973456d707479000004a050726f7669646564207465787420666f7220746578742070726f706f73616c20697320656d7074795852756e74696d6550726f706f73616c4973456d707479000104f050726f7669646564205741534d20636f646520666f72207468652072756e74696d6520757067726164652070726f706f73616c20697320656d70747990496e76616c696446756e64696e675265717565737450726f706f73616c42616c616e6365000204bc496e76616c69642062616c616e63652076616c756520666f7220746865207370656e64696e672070726f706f73616c54496e76616c696456616c696461746f72436f756e74000304f8496e76616c69642076616c696461746f7220636f756e7420666f722074686520277365742076616c696461746f7220636f756e74272070726f706f73616c4452657175697265526f6f744f726967696e000404845265717569726520726f6f74206f726967696e20696e2065787472696e73696373a8496e76616c6964436f756e63696c456c656374696f6e506172616d65746572436f756e63696c53697a65000504c4496e76616c696420636f756e63696c20656c656374696f6e20706172616d65746572202d20636f756e63696c5f73697a65b4496e76616c6964436f756e63696c456c656374696f6e506172616d6574657243616e6469646163794c696d6974000604d0496e76616c696420636f756e63696c20656c656374696f6e20706172616d65746572202d2063616e6469646163792d6c696d6974b4496e76616c6964436f756e63696c456c656374696f6e506172616d657465724d696e566f74696e675374616b65000704d4496e76616c696420636f756e63696c20656c656374696f6e20706172616d65746572202d206d696e2d766f74696e675f7374616b65b8496e76616c6964436f756e63696c456c656374696f6e506172616d657465724e65775465726d4475726174696f6e000804d8496e76616c696420636f756e63696c20656c656374696f6e20706172616d65746572202d206e65775f7465726d5f6475726174696f6eb8496e76616c6964436f756e63696c456c656374696f6e506172616d657465724d696e436f756e63696c5374616b65000904d8496e76616c696420636f756e63696c20656c656374696f6e20706172616d65746572202d206d696e5f636f756e63696c5f7374616b65b8496e76616c6964436f756e63696c456c656374696f6e506172616d6574657252657665616c696e67506572696f64000a04d4496e76616c696420636f756e63696c20656c656374696f6e20706172616d65746572202d2072657665616c696e675f706572696f64ac496e76616c6964436f756e63696c456c656374696f6e506172616d65746572566f74696e67506572696f64000b04c8496e76616c696420636f756e63696c20656c656374696f6e20706172616d65746572202d20766f74696e675f706572696f64bc496e76616c6964436f756e63696c456c656374696f6e506172616d65746572416e6e6f756e63696e67506572696f64000c04d8496e76616c696420636f756e63696c20656c656374696f6e20706172616d65746572202d20616e6e6f756e63696e675f706572696f6484496e76616c6964576f726b696e6747726f75704275646765744361706163697479000d04bc496e76616c696420776f726b696e672067726f75702062756467657420636170616369747920706172616d65746572a0496e76616c69645365744c656164506172616d6574657243616e6e6f744265436f756e63696c6f72000e042d01496e76616c69642027736574206c6561642070726f706f73616c2720706172616d65746572202d2070726f706f736564206c6561642063616e6e6f74206265206120636f756e63696c6f724c536c617368696e675374616b6549735a65726f000f042101496e76616c69642027736c617368207374616b652070726f706f73616c2720706172616d65746572202d2063616e6e6f7420736c617368206279207a65726f2062616c616e63652e5444656372656173696e675374616b6549735a65726f0010043901496e76616c696420276465637265617365207374616b652070726f706f73616c2720706172616d65746572202d2063616e6e6f74206465637265617365206279207a65726f2062616c616e63652e80496e73756666696369656e7446756e6473466f724275646765745570646174650011041d01496e73756666696369656e742066756e647320666f72202755706461746520576f726b696e672047726f757020427564676574272070726f706f73616c20657865637574696f6eb0496e76616c696446756e64696e675265717565737450726f706f73616c4e756d6265724f664163636f756e740012045101496e76616c6964206e756d626572206f66206163636f756e747320726563696576696e672066756e64696e67207265717565737420666f72202746756e64696e672052657175657374272070726f706f73616c2eb0496e76616c696446756e64696e675265717565737450726f706f73616c52657065617465644163636f756e74001304bc5265706561746564206163636f756e7420696e202746756e64696e672052657175657374272070726f706f73616c2ee0496e76616c69644368616e6e656c5061796f75747350726f706f73616c4d696e436173686f7574457863656564734d6178436173686f7574001404e50154686520737065636966696564206d696e206368616e6e656c20636173686f75742069732067726561746572207468616e2074686520737065636966696564206d6178206368616e6e656c20636173686f757420696e2060557064617465204368616e6e656c205061796f757473602070726f706f73616c2e4c496e76616c69644c656164576f726b657249640015049050726f7669646564206c65616420776f726b6572206964206973206e6f742076616c696450496e76616c69644c6561644f70656e696e6749640016049450726f7669646564206c656164206f70656e696e67206964206973206e6f742076616c696460496e76616c69644c6561644170706c69636174696f6e4964001704a450726f7669646564206c656164206170706c69636174696f6e206964206973206e6f742076616c696444496e76616c696450726f706f73616c49640018048450726f76696465642070726f706f73616c206964206973206e6f742076616c69643c41726974686d657469634572726f720019043c41726974686d656963204572726f720478436f646578206d6f64756c6520707265646566696e6564206572726f727399090c5070616c6c65745f776f726b696e675f67726f75701474797065731c4f70656e696e670c2c426c6f636b4e756d62657201101c42616c616e636501181048617368012c001801306f70656e696e675f747970657d03012c4f70656e696e675479706500011c6372656174656410012c426c6f636b4e756d6265720001406465736372697074696f6e5f686173682c0110486173680001307374616b655f706f6c696379610301845374616b65506f6c6963793c426c6f636b4e756d6265722c2042616c616e63653e0001407265776172645f7065725f626c6f636b4501013c4f7074696f6e3c42616c616e63653e0001386372656174696f6e5f7374616b6518011c42616c616e636500009d090c5070616c6c65745f776f726b696e675f67726f7570147479706573384a6f624170706c69636174696f6e0c244163636f756e7449640100204d656d626572496401281048617368012c0018013c726f6c655f6163636f756e745f69640001244163636f756e7449640001447265776172645f6163636f756e745f69640001244163636f756e7449640001487374616b696e675f6163636f756e745f69640001244163636f756e7449640001246d656d6265725f69642801204d656d62657249640001406465736372697074696f6e5f686173682c0110486173680001286f70656e696e675f69642801244f70656e696e6749640000a1090c5070616c6c65745f776f726b696e675f67726f75701474797065732c47726f7570576f726b657210244163636f756e7449640100204d656d626572496401282c426c6f636b4e756d62657201101c42616c616e63650118002401246d656d6265725f69642801204d656d626572496400013c726f6c655f6163636f756e745f69640001244163636f756e7449640001487374616b696e675f6163636f756e745f69640001244163636f756e7449640001447265776172645f6163636f756e745f69640001244163636f756e744964000148737461727465645f6c656176696e675f61740102014c4f7074696f6e3c426c6f636b4e756d6265723e0001506a6f625f756e7374616b696e675f706572696f6410012c426c6f636b4e756d6265720001407265776172645f7065725f626c6f636b4501013c4f7074696f6e3c42616c616e63653e0001346d69737365645f7265776172644501013c4f7074696f6e3c42616c616e63653e000128637265617465645f617410012c426c6f636b4e756d6265720000a5090c5070616c6c65745f776f726b696e675f67726f7570186572726f7273144572726f720804540004490001803c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f7729605374616b6542616c616e636543616e6e6f7442655a65726f0001049850726f7669646564207374616b652062616c616e63652063616e6e6f74206265207a65726f2e4c4f70656e696e67446f65734e6f7445786973740002045c4f70656e696e6720646f6573206e6f742065786973742e6443616e6e6f74486972654d756c7469706c654c656164657273000304bc43616e6e6f742066696c6c206f70656e696e672077697468206d756c7469706c65206170706c69636174696f6e732e74576f726b65724170706c69636174696f6e446f65734e6f74457869737400040488576f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e744d6178416374697665576f726b65724e756d626572457863656564656400050488576f726b696e672067726f75702073697a65206c696d69742065786365656465642e9c5375636365737366756c576f726b65724170706c69636174696f6e446f65734e6f744578697374000604b45375636365737366756c20776f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e8043616e6e6f74486972654c65616465725768656e4c6561646572457869737473000704c45468657265206973206c656164657220616c72656164792c2063616e6e6f74206869726520616e6f74686572206f6e652e4049734e6f744c6561644163636f756e740008044c4e6f742061206c656164206163636f756e742e4443757272656e744c6561644e6f745365740009046043757272656e74206c656164206973206e6f74207365742e48576f726b6572446f65734e6f744578697374000a0458576f726b657220646f6573206e6f742065786973742e4c496e76616c69644d656d6265724f726967696e000b0470496e76616c6964206f726967696e20666f722061206d656d6265722e705369676e657249734e6f74576f726b6572526f6c654163636f756e74000c04885369676e6572206973206e6f7420776f726b657220726f6c65206163636f756e742e4842656c6f774d696e696d756d5374616b6573000d04885374616b696e67206c657373207468616e20746865206c6f77657220626f756e642e7c496e73756666696369656e7442616c616e6365546f436f7665725374616b65000e0490496e73756666696369656e742062616c616e636520746f20636f766572207374616b652e884170706c69636174696f6e5374616b65446f65736e744d617463684f70656e696e67000f04d84170706c69636174696f6e207374616b65206973206c657373207468616e207265717569726564206f70656e696e67207374616b652e504f726967696e49734e6f744170706c6963616e74001004604f726967696e206973206e6f74206170706c6963616e742e3c576f726b657249734c656176696e6700110498496e76616c6964206f7065726174696f6e202d20776f726b6572206973206c656176696e672e5043616e6e6f74526577617264576974685a65726f0012046452657761726420636f756c64206e6f74206265207a65726f2e78496e76616c69645374616b696e674163636f756e74466f724d656d626572001304ac5374616b696e67206163636f756e7420646f65736e27742062656c6f6e6720746f2061206d656d6265722e5c436f6e666c6963745374616b65734f6e4163636f756e74001404b05374616b696e67206163636f756e7420636f6e7461696e7320636f6e666c696374696e67207374616b65732e44576f726b65724861734e6f5265776172640015047c576f726b657220686173206e6f20726563757272696e67207265776172642e78556e7374616b696e67506572696f644c6573735468616e4d696e696d756d001604090153706563696669656420756e7374616b696e6720706572696f64206973206c657373207468656e206d696e696d756d2073657420666f72207468652067726f75702e3c43616e6e6f745370656e645a65726f00170460496e76616c6964207370656e64696e6720616d6f756e742e74496e73756666696369656e74427564676574466f725370656e64696e67001804a449742773206e6f7420656e6f7567682062756467657420666f722074686973207370656e64696e672e584e6f4170706c69636174696f6e7350726f7669646564001904bc43616e6e6f742066696c6c206f70656e696e67202d206e6f206170706c69636174696f6e732070726f76696465642ea043616e6e6f7444656372656173655374616b6544656c7461477265617465725468616e5374616b65001a04fc43616e6e6f74206465637265617365207374616b65202d207374616b652064656c74612067726561746572207468616e20696e697469616c207374616b652e644170706c69636174696f6e734e6f74466f724f70656e696e67001b04f0547279696e6720746f2066696c6c206f70656e696e67207769746820616e206170706c69636174696f6e20666f72206f74686572206f70656e696e6764576f726b657253746f7261676556616c7565546f6f4c6f6e67001c0480576f726b65722073746f72616765207465787420697320746f6f206c6f6e672e70496e73756666696369656e74546f6b656e73466f7246756e64696e67001d04f8496e73756666696369656e7420746f6b656e7320666f722066756e64696e6720286f6e206d656d62657220636f6e74726f6c6c6572206163636f756e7429445a65726f546f6b656e7346756e64696e67001e047c547279696e6720746f2066756e642077697468207a65726f20746f6b656e7378496e73756666696369656e7442616c616e6365466f725472616e73666572001f04b443616e6e6f742077697468647261773a20696e73756666696369656e74206275646765742062616c616e63652e048c44697363757373696f6e206d6f64756c6520707265646566696e6564206572726f7273a9090c5070616c6c65745f776f726b696e675f67726f7570186572726f7273144572726f720804540004490001803c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f7729605374616b6542616c616e636543616e6e6f7442655a65726f0001049850726f7669646564207374616b652062616c616e63652063616e6e6f74206265207a65726f2e4c4f70656e696e67446f65734e6f7445786973740002045c4f70656e696e6720646f6573206e6f742065786973742e6443616e6e6f74486972654d756c7469706c654c656164657273000304bc43616e6e6f742066696c6c206f70656e696e672077697468206d756c7469706c65206170706c69636174696f6e732e74576f726b65724170706c69636174696f6e446f65734e6f74457869737400040488576f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e744d6178416374697665576f726b65724e756d626572457863656564656400050488576f726b696e672067726f75702073697a65206c696d69742065786365656465642e9c5375636365737366756c576f726b65724170706c69636174696f6e446f65734e6f744578697374000604b45375636365737366756c20776f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e8043616e6e6f74486972654c65616465725768656e4c6561646572457869737473000704c45468657265206973206c656164657220616c72656164792c2063616e6e6f74206869726520616e6f74686572206f6e652e4049734e6f744c6561644163636f756e740008044c4e6f742061206c656164206163636f756e742e4443757272656e744c6561644e6f745365740009046043757272656e74206c656164206973206e6f74207365742e48576f726b6572446f65734e6f744578697374000a0458576f726b657220646f6573206e6f742065786973742e4c496e76616c69644d656d6265724f726967696e000b0470496e76616c6964206f726967696e20666f722061206d656d6265722e705369676e657249734e6f74576f726b6572526f6c654163636f756e74000c04885369676e6572206973206e6f7420776f726b657220726f6c65206163636f756e742e4842656c6f774d696e696d756d5374616b6573000d04885374616b696e67206c657373207468616e20746865206c6f77657220626f756e642e7c496e73756666696369656e7442616c616e6365546f436f7665725374616b65000e0490496e73756666696369656e742062616c616e636520746f20636f766572207374616b652e884170706c69636174696f6e5374616b65446f65736e744d617463684f70656e696e67000f04d84170706c69636174696f6e207374616b65206973206c657373207468616e207265717569726564206f70656e696e67207374616b652e504f726967696e49734e6f744170706c6963616e74001004604f726967696e206973206e6f74206170706c6963616e742e3c576f726b657249734c656176696e6700110498496e76616c6964206f7065726174696f6e202d20776f726b6572206973206c656176696e672e5043616e6e6f74526577617264576974685a65726f0012046452657761726420636f756c64206e6f74206265207a65726f2e78496e76616c69645374616b696e674163636f756e74466f724d656d626572001304ac5374616b696e67206163636f756e7420646f65736e27742062656c6f6e6720746f2061206d656d6265722e5c436f6e666c6963745374616b65734f6e4163636f756e74001404b05374616b696e67206163636f756e7420636f6e7461696e7320636f6e666c696374696e67207374616b65732e44576f726b65724861734e6f5265776172640015047c576f726b657220686173206e6f20726563757272696e67207265776172642e78556e7374616b696e67506572696f644c6573735468616e4d696e696d756d001604090153706563696669656420756e7374616b696e6720706572696f64206973206c657373207468656e206d696e696d756d2073657420666f72207468652067726f75702e3c43616e6e6f745370656e645a65726f00170460496e76616c6964207370656e64696e6720616d6f756e742e74496e73756666696369656e74427564676574466f725370656e64696e67001804a449742773206e6f7420656e6f7567682062756467657420666f722074686973207370656e64696e672e584e6f4170706c69636174696f6e7350726f7669646564001904bc43616e6e6f742066696c6c206f70656e696e67202d206e6f206170706c69636174696f6e732070726f76696465642ea043616e6e6f7444656372656173655374616b6544656c7461477265617465725468616e5374616b65001a04fc43616e6e6f74206465637265617365207374616b65202d207374616b652064656c74612067726561746572207468616e20696e697469616c207374616b652e644170706c69636174696f6e734e6f74466f724f70656e696e67001b04f0547279696e6720746f2066696c6c206f70656e696e67207769746820616e206170706c69636174696f6e20666f72206f74686572206f70656e696e6764576f726b657253746f7261676556616c7565546f6f4c6f6e67001c0480576f726b65722073746f72616765207465787420697320746f6f206c6f6e672e70496e73756666696369656e74546f6b656e73466f7246756e64696e67001d04f8496e73756666696369656e7420746f6b656e7320666f722066756e64696e6720286f6e206d656d62657220636f6e74726f6c6c6572206163636f756e7429445a65726f546f6b656e7346756e64696e67001e047c547279696e6720746f2066756e642077697468207a65726f20746f6b656e7378496e73756666696369656e7442616c616e6365466f725472616e73666572001f04b443616e6e6f742077697468647261773a20696e73756666696369656e74206275646765742062616c616e63652e048c44697363757373696f6e206d6f64756c6520707265646566696e6564206572726f7273ad090c5070616c6c65745f776f726b696e675f67726f7570186572726f7273144572726f720804540004490001803c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f7729605374616b6542616c616e636543616e6e6f7442655a65726f0001049850726f7669646564207374616b652062616c616e63652063616e6e6f74206265207a65726f2e4c4f70656e696e67446f65734e6f7445786973740002045c4f70656e696e6720646f6573206e6f742065786973742e6443616e6e6f74486972654d756c7469706c654c656164657273000304bc43616e6e6f742066696c6c206f70656e696e672077697468206d756c7469706c65206170706c69636174696f6e732e74576f726b65724170706c69636174696f6e446f65734e6f74457869737400040488576f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e744d6178416374697665576f726b65724e756d626572457863656564656400050488576f726b696e672067726f75702073697a65206c696d69742065786365656465642e9c5375636365737366756c576f726b65724170706c69636174696f6e446f65734e6f744578697374000604b45375636365737366756c20776f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e8043616e6e6f74486972654c65616465725768656e4c6561646572457869737473000704c45468657265206973206c656164657220616c72656164792c2063616e6e6f74206869726520616e6f74686572206f6e652e4049734e6f744c6561644163636f756e740008044c4e6f742061206c656164206163636f756e742e4443757272656e744c6561644e6f745365740009046043757272656e74206c656164206973206e6f74207365742e48576f726b6572446f65734e6f744578697374000a0458576f726b657220646f6573206e6f742065786973742e4c496e76616c69644d656d6265724f726967696e000b0470496e76616c6964206f726967696e20666f722061206d656d6265722e705369676e657249734e6f74576f726b6572526f6c654163636f756e74000c04885369676e6572206973206e6f7420776f726b657220726f6c65206163636f756e742e4842656c6f774d696e696d756d5374616b6573000d04885374616b696e67206c657373207468616e20746865206c6f77657220626f756e642e7c496e73756666696369656e7442616c616e6365546f436f7665725374616b65000e0490496e73756666696369656e742062616c616e636520746f20636f766572207374616b652e884170706c69636174696f6e5374616b65446f65736e744d617463684f70656e696e67000f04d84170706c69636174696f6e207374616b65206973206c657373207468616e207265717569726564206f70656e696e67207374616b652e504f726967696e49734e6f744170706c6963616e74001004604f726967696e206973206e6f74206170706c6963616e742e3c576f726b657249734c656176696e6700110498496e76616c6964206f7065726174696f6e202d20776f726b6572206973206c656176696e672e5043616e6e6f74526577617264576974685a65726f0012046452657761726420636f756c64206e6f74206265207a65726f2e78496e76616c69645374616b696e674163636f756e74466f724d656d626572001304ac5374616b696e67206163636f756e7420646f65736e27742062656c6f6e6720746f2061206d656d6265722e5c436f6e666c6963745374616b65734f6e4163636f756e74001404b05374616b696e67206163636f756e7420636f6e7461696e7320636f6e666c696374696e67207374616b65732e44576f726b65724861734e6f5265776172640015047c576f726b657220686173206e6f20726563757272696e67207265776172642e78556e7374616b696e67506572696f644c6573735468616e4d696e696d756d001604090153706563696669656420756e7374616b696e6720706572696f64206973206c657373207468656e206d696e696d756d2073657420666f72207468652067726f75702e3c43616e6e6f745370656e645a65726f00170460496e76616c6964207370656e64696e6720616d6f756e742e74496e73756666696369656e74427564676574466f725370656e64696e67001804a449742773206e6f7420656e6f7567682062756467657420666f722074686973207370656e64696e672e584e6f4170706c69636174696f6e7350726f7669646564001904bc43616e6e6f742066696c6c206f70656e696e67202d206e6f206170706c69636174696f6e732070726f76696465642ea043616e6e6f7444656372656173655374616b6544656c7461477265617465725468616e5374616b65001a04fc43616e6e6f74206465637265617365207374616b65202d207374616b652064656c74612067726561746572207468616e20696e697469616c207374616b652e644170706c69636174696f6e734e6f74466f724f70656e696e67001b04f0547279696e6720746f2066696c6c206f70656e696e67207769746820616e206170706c69636174696f6e20666f72206f74686572206f70656e696e6764576f726b657253746f7261676556616c7565546f6f4c6f6e67001c0480576f726b65722073746f72616765207465787420697320746f6f206c6f6e672e70496e73756666696369656e74546f6b656e73466f7246756e64696e67001d04f8496e73756666696369656e7420746f6b656e7320666f722066756e64696e6720286f6e206d656d62657220636f6e74726f6c6c6572206163636f756e7429445a65726f546f6b656e7346756e64696e67001e047c547279696e6720746f2066756e642077697468207a65726f20746f6b656e7378496e73756666696369656e7442616c616e6365466f725472616e73666572001f04b443616e6e6f742077697468647261773a20696e73756666696369656e74206275646765742062616c616e63652e048c44697363757373696f6e206d6f64756c6520707265646566696e6564206572726f7273b1090c5070616c6c65745f776f726b696e675f67726f7570186572726f7273144572726f720804540004490001803c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f7729605374616b6542616c616e636543616e6e6f7442655a65726f0001049850726f7669646564207374616b652062616c616e63652063616e6e6f74206265207a65726f2e4c4f70656e696e67446f65734e6f7445786973740002045c4f70656e696e6720646f6573206e6f742065786973742e6443616e6e6f74486972654d756c7469706c654c656164657273000304bc43616e6e6f742066696c6c206f70656e696e672077697468206d756c7469706c65206170706c69636174696f6e732e74576f726b65724170706c69636174696f6e446f65734e6f74457869737400040488576f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e744d6178416374697665576f726b65724e756d626572457863656564656400050488576f726b696e672067726f75702073697a65206c696d69742065786365656465642e9c5375636365737366756c576f726b65724170706c69636174696f6e446f65734e6f744578697374000604b45375636365737366756c20776f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e8043616e6e6f74486972654c65616465725768656e4c6561646572457869737473000704c45468657265206973206c656164657220616c72656164792c2063616e6e6f74206869726520616e6f74686572206f6e652e4049734e6f744c6561644163636f756e740008044c4e6f742061206c656164206163636f756e742e4443757272656e744c6561644e6f745365740009046043757272656e74206c656164206973206e6f74207365742e48576f726b6572446f65734e6f744578697374000a0458576f726b657220646f6573206e6f742065786973742e4c496e76616c69644d656d6265724f726967696e000b0470496e76616c6964206f726967696e20666f722061206d656d6265722e705369676e657249734e6f74576f726b6572526f6c654163636f756e74000c04885369676e6572206973206e6f7420776f726b657220726f6c65206163636f756e742e4842656c6f774d696e696d756d5374616b6573000d04885374616b696e67206c657373207468616e20746865206c6f77657220626f756e642e7c496e73756666696369656e7442616c616e6365546f436f7665725374616b65000e0490496e73756666696369656e742062616c616e636520746f20636f766572207374616b652e884170706c69636174696f6e5374616b65446f65736e744d617463684f70656e696e67000f04d84170706c69636174696f6e207374616b65206973206c657373207468616e207265717569726564206f70656e696e67207374616b652e504f726967696e49734e6f744170706c6963616e74001004604f726967696e206973206e6f74206170706c6963616e742e3c576f726b657249734c656176696e6700110498496e76616c6964206f7065726174696f6e202d20776f726b6572206973206c656176696e672e5043616e6e6f74526577617264576974685a65726f0012046452657761726420636f756c64206e6f74206265207a65726f2e78496e76616c69645374616b696e674163636f756e74466f724d656d626572001304ac5374616b696e67206163636f756e7420646f65736e27742062656c6f6e6720746f2061206d656d6265722e5c436f6e666c6963745374616b65734f6e4163636f756e74001404b05374616b696e67206163636f756e7420636f6e7461696e7320636f6e666c696374696e67207374616b65732e44576f726b65724861734e6f5265776172640015047c576f726b657220686173206e6f20726563757272696e67207265776172642e78556e7374616b696e67506572696f644c6573735468616e4d696e696d756d001604090153706563696669656420756e7374616b696e6720706572696f64206973206c657373207468656e206d696e696d756d2073657420666f72207468652067726f75702e3c43616e6e6f745370656e645a65726f00170460496e76616c6964207370656e64696e6720616d6f756e742e74496e73756666696369656e74427564676574466f725370656e64696e67001804a449742773206e6f7420656e6f7567682062756467657420666f722074686973207370656e64696e672e584e6f4170706c69636174696f6e7350726f7669646564001904bc43616e6e6f742066696c6c206f70656e696e67202d206e6f206170706c69636174696f6e732070726f76696465642ea043616e6e6f7444656372656173655374616b6544656c7461477265617465725468616e5374616b65001a04fc43616e6e6f74206465637265617365207374616b65202d207374616b652064656c74612067726561746572207468616e20696e697469616c207374616b652e644170706c69636174696f6e734e6f74466f724f70656e696e67001b04f0547279696e6720746f2066696c6c206f70656e696e67207769746820616e206170706c69636174696f6e20666f72206f74686572206f70656e696e6764576f726b657253746f7261676556616c7565546f6f4c6f6e67001c0480576f726b65722073746f72616765207465787420697320746f6f206c6f6e672e70496e73756666696369656e74546f6b656e73466f7246756e64696e67001d04f8496e73756666696369656e7420746f6b656e7320666f722066756e64696e6720286f6e206d656d62657220636f6e74726f6c6c6572206163636f756e7429445a65726f546f6b656e7346756e64696e67001e047c547279696e6720746f2066756e642077697468207a65726f20746f6b656e7378496e73756666696369656e7442616c616e6365466f725472616e73666572001f04b443616e6e6f742077697468647261773a20696e73756666696369656e74206275646765742062616c616e63652e048c44697363757373696f6e206d6f64756c6520707265646566696e6564206572726f7273b5090c5070616c6c65745f776f726b696e675f67726f7570186572726f7273144572726f720804540004490001803c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f7729605374616b6542616c616e636543616e6e6f7442655a65726f0001049850726f7669646564207374616b652062616c616e63652063616e6e6f74206265207a65726f2e4c4f70656e696e67446f65734e6f7445786973740002045c4f70656e696e6720646f6573206e6f742065786973742e6443616e6e6f74486972654d756c7469706c654c656164657273000304bc43616e6e6f742066696c6c206f70656e696e672077697468206d756c7469706c65206170706c69636174696f6e732e74576f726b65724170706c69636174696f6e446f65734e6f74457869737400040488576f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e744d6178416374697665576f726b65724e756d626572457863656564656400050488576f726b696e672067726f75702073697a65206c696d69742065786365656465642e9c5375636365737366756c576f726b65724170706c69636174696f6e446f65734e6f744578697374000604b45375636365737366756c20776f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e8043616e6e6f74486972654c65616465725768656e4c6561646572457869737473000704c45468657265206973206c656164657220616c72656164792c2063616e6e6f74206869726520616e6f74686572206f6e652e4049734e6f744c6561644163636f756e740008044c4e6f742061206c656164206163636f756e742e4443757272656e744c6561644e6f745365740009046043757272656e74206c656164206973206e6f74207365742e48576f726b6572446f65734e6f744578697374000a0458576f726b657220646f6573206e6f742065786973742e4c496e76616c69644d656d6265724f726967696e000b0470496e76616c6964206f726967696e20666f722061206d656d6265722e705369676e657249734e6f74576f726b6572526f6c654163636f756e74000c04885369676e6572206973206e6f7420776f726b657220726f6c65206163636f756e742e4842656c6f774d696e696d756d5374616b6573000d04885374616b696e67206c657373207468616e20746865206c6f77657220626f756e642e7c496e73756666696369656e7442616c616e6365546f436f7665725374616b65000e0490496e73756666696369656e742062616c616e636520746f20636f766572207374616b652e884170706c69636174696f6e5374616b65446f65736e744d617463684f70656e696e67000f04d84170706c69636174696f6e207374616b65206973206c657373207468616e207265717569726564206f70656e696e67207374616b652e504f726967696e49734e6f744170706c6963616e74001004604f726967696e206973206e6f74206170706c6963616e742e3c576f726b657249734c656176696e6700110498496e76616c6964206f7065726174696f6e202d20776f726b6572206973206c656176696e672e5043616e6e6f74526577617264576974685a65726f0012046452657761726420636f756c64206e6f74206265207a65726f2e78496e76616c69645374616b696e674163636f756e74466f724d656d626572001304ac5374616b696e67206163636f756e7420646f65736e27742062656c6f6e6720746f2061206d656d6265722e5c436f6e666c6963745374616b65734f6e4163636f756e74001404b05374616b696e67206163636f756e7420636f6e7461696e7320636f6e666c696374696e67207374616b65732e44576f726b65724861734e6f5265776172640015047c576f726b657220686173206e6f20726563757272696e67207265776172642e78556e7374616b696e67506572696f644c6573735468616e4d696e696d756d001604090153706563696669656420756e7374616b696e6720706572696f64206973206c657373207468656e206d696e696d756d2073657420666f72207468652067726f75702e3c43616e6e6f745370656e645a65726f00170460496e76616c6964207370656e64696e6720616d6f756e742e74496e73756666696369656e74427564676574466f725370656e64696e67001804a449742773206e6f7420656e6f7567682062756467657420666f722074686973207370656e64696e672e584e6f4170706c69636174696f6e7350726f7669646564001904bc43616e6e6f742066696c6c206f70656e696e67202d206e6f206170706c69636174696f6e732070726f76696465642ea043616e6e6f7444656372656173655374616b6544656c7461477265617465725468616e5374616b65001a04fc43616e6e6f74206465637265617365207374616b65202d207374616b652064656c74612067726561746572207468616e20696e697469616c207374616b652e644170706c69636174696f6e734e6f74466f724f70656e696e67001b04f0547279696e6720746f2066696c6c206f70656e696e67207769746820616e206170706c69636174696f6e20666f72206f74686572206f70656e696e6764576f726b657253746f7261676556616c7565546f6f4c6f6e67001c0480576f726b65722073746f72616765207465787420697320746f6f206c6f6e672e70496e73756666696369656e74546f6b656e73466f7246756e64696e67001d04f8496e73756666696369656e7420746f6b656e7320666f722066756e64696e6720286f6e206d656d62657220636f6e74726f6c6c6572206163636f756e7429445a65726f546f6b656e7346756e64696e67001e047c547279696e6720746f2066756e642077697468207a65726f20746f6b656e7378496e73756666696369656e7442616c616e6365466f725472616e73666572001f04b443616e6e6f742077697468647261773a20696e73756666696369656e74206275646765742062616c616e63652e048c44697363757373696f6e206d6f64756c6520707265646566696e6564206572726f7273b9090c5070616c6c65745f776f726b696e675f67726f7570186572726f7273144572726f720804540004490001803c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f7729605374616b6542616c616e636543616e6e6f7442655a65726f0001049850726f7669646564207374616b652062616c616e63652063616e6e6f74206265207a65726f2e4c4f70656e696e67446f65734e6f7445786973740002045c4f70656e696e6720646f6573206e6f742065786973742e6443616e6e6f74486972654d756c7469706c654c656164657273000304bc43616e6e6f742066696c6c206f70656e696e672077697468206d756c7469706c65206170706c69636174696f6e732e74576f726b65724170706c69636174696f6e446f65734e6f74457869737400040488576f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e744d6178416374697665576f726b65724e756d626572457863656564656400050488576f726b696e672067726f75702073697a65206c696d69742065786365656465642e9c5375636365737366756c576f726b65724170706c69636174696f6e446f65734e6f744578697374000604b45375636365737366756c20776f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e8043616e6e6f74486972654c65616465725768656e4c6561646572457869737473000704c45468657265206973206c656164657220616c72656164792c2063616e6e6f74206869726520616e6f74686572206f6e652e4049734e6f744c6561644163636f756e740008044c4e6f742061206c656164206163636f756e742e4443757272656e744c6561644e6f745365740009046043757272656e74206c656164206973206e6f74207365742e48576f726b6572446f65734e6f744578697374000a0458576f726b657220646f6573206e6f742065786973742e4c496e76616c69644d656d6265724f726967696e000b0470496e76616c6964206f726967696e20666f722061206d656d6265722e705369676e657249734e6f74576f726b6572526f6c654163636f756e74000c04885369676e6572206973206e6f7420776f726b657220726f6c65206163636f756e742e4842656c6f774d696e696d756d5374616b6573000d04885374616b696e67206c657373207468616e20746865206c6f77657220626f756e642e7c496e73756666696369656e7442616c616e6365546f436f7665725374616b65000e0490496e73756666696369656e742062616c616e636520746f20636f766572207374616b652e884170706c69636174696f6e5374616b65446f65736e744d617463684f70656e696e67000f04d84170706c69636174696f6e207374616b65206973206c657373207468616e207265717569726564206f70656e696e67207374616b652e504f726967696e49734e6f744170706c6963616e74001004604f726967696e206973206e6f74206170706c6963616e742e3c576f726b657249734c656176696e6700110498496e76616c6964206f7065726174696f6e202d20776f726b6572206973206c656176696e672e5043616e6e6f74526577617264576974685a65726f0012046452657761726420636f756c64206e6f74206265207a65726f2e78496e76616c69645374616b696e674163636f756e74466f724d656d626572001304ac5374616b696e67206163636f756e7420646f65736e27742062656c6f6e6720746f2061206d656d6265722e5c436f6e666c6963745374616b65734f6e4163636f756e74001404b05374616b696e67206163636f756e7420636f6e7461696e7320636f6e666c696374696e67207374616b65732e44576f726b65724861734e6f5265776172640015047c576f726b657220686173206e6f20726563757272696e67207265776172642e78556e7374616b696e67506572696f644c6573735468616e4d696e696d756d001604090153706563696669656420756e7374616b696e6720706572696f64206973206c657373207468656e206d696e696d756d2073657420666f72207468652067726f75702e3c43616e6e6f745370656e645a65726f00170460496e76616c6964207370656e64696e6720616d6f756e742e74496e73756666696369656e74427564676574466f725370656e64696e67001804a449742773206e6f7420656e6f7567682062756467657420666f722074686973207370656e64696e672e584e6f4170706c69636174696f6e7350726f7669646564001904bc43616e6e6f742066696c6c206f70656e696e67202d206e6f206170706c69636174696f6e732070726f76696465642ea043616e6e6f7444656372656173655374616b6544656c7461477265617465725468616e5374616b65001a04fc43616e6e6f74206465637265617365207374616b65202d207374616b652064656c74612067726561746572207468616e20696e697469616c207374616b652e644170706c69636174696f6e734e6f74466f724f70656e696e67001b04f0547279696e6720746f2066696c6c206f70656e696e67207769746820616e206170706c69636174696f6e20666f72206f74686572206f70656e696e6764576f726b657253746f7261676556616c7565546f6f4c6f6e67001c0480576f726b65722073746f72616765207465787420697320746f6f206c6f6e672e70496e73756666696369656e74546f6b656e73466f7246756e64696e67001d04f8496e73756666696369656e7420746f6b656e7320666f722066756e64696e6720286f6e206d656d62657220636f6e74726f6c6c6572206163636f756e7429445a65726f546f6b656e7346756e64696e67001e047c547279696e6720746f2066756e642077697468207a65726f20746f6b656e7378496e73756666696369656e7442616c616e6365466f725472616e73666572001f04b443616e6e6f742077697468647261773a20696e73756666696369656e74206275646765742062616c616e63652e048c44697363757373696f6e206d6f64756c6520707265646566696e6564206572726f7273bd090c5070616c6c65745f776f726b696e675f67726f7570186572726f7273144572726f720804540004490001803c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f7729605374616b6542616c616e636543616e6e6f7442655a65726f0001049850726f7669646564207374616b652062616c616e63652063616e6e6f74206265207a65726f2e4c4f70656e696e67446f65734e6f7445786973740002045c4f70656e696e6720646f6573206e6f742065786973742e6443616e6e6f74486972654d756c7469706c654c656164657273000304bc43616e6e6f742066696c6c206f70656e696e672077697468206d756c7469706c65206170706c69636174696f6e732e74576f726b65724170706c69636174696f6e446f65734e6f74457869737400040488576f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e744d6178416374697665576f726b65724e756d626572457863656564656400050488576f726b696e672067726f75702073697a65206c696d69742065786365656465642e9c5375636365737366756c576f726b65724170706c69636174696f6e446f65734e6f744578697374000604b45375636365737366756c20776f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e8043616e6e6f74486972654c65616465725768656e4c6561646572457869737473000704c45468657265206973206c656164657220616c72656164792c2063616e6e6f74206869726520616e6f74686572206f6e652e4049734e6f744c6561644163636f756e740008044c4e6f742061206c656164206163636f756e742e4443757272656e744c6561644e6f745365740009046043757272656e74206c656164206973206e6f74207365742e48576f726b6572446f65734e6f744578697374000a0458576f726b657220646f6573206e6f742065786973742e4c496e76616c69644d656d6265724f726967696e000b0470496e76616c6964206f726967696e20666f722061206d656d6265722e705369676e657249734e6f74576f726b6572526f6c654163636f756e74000c04885369676e6572206973206e6f7420776f726b657220726f6c65206163636f756e742e4842656c6f774d696e696d756d5374616b6573000d04885374616b696e67206c657373207468616e20746865206c6f77657220626f756e642e7c496e73756666696369656e7442616c616e6365546f436f7665725374616b65000e0490496e73756666696369656e742062616c616e636520746f20636f766572207374616b652e884170706c69636174696f6e5374616b65446f65736e744d617463684f70656e696e67000f04d84170706c69636174696f6e207374616b65206973206c657373207468616e207265717569726564206f70656e696e67207374616b652e504f726967696e49734e6f744170706c6963616e74001004604f726967696e206973206e6f74206170706c6963616e742e3c576f726b657249734c656176696e6700110498496e76616c6964206f7065726174696f6e202d20776f726b6572206973206c656176696e672e5043616e6e6f74526577617264576974685a65726f0012046452657761726420636f756c64206e6f74206265207a65726f2e78496e76616c69645374616b696e674163636f756e74466f724d656d626572001304ac5374616b696e67206163636f756e7420646f65736e27742062656c6f6e6720746f2061206d656d6265722e5c436f6e666c6963745374616b65734f6e4163636f756e74001404b05374616b696e67206163636f756e7420636f6e7461696e7320636f6e666c696374696e67207374616b65732e44576f726b65724861734e6f5265776172640015047c576f726b657220686173206e6f20726563757272696e67207265776172642e78556e7374616b696e67506572696f644c6573735468616e4d696e696d756d001604090153706563696669656420756e7374616b696e6720706572696f64206973206c657373207468656e206d696e696d756d2073657420666f72207468652067726f75702e3c43616e6e6f745370656e645a65726f00170460496e76616c6964207370656e64696e6720616d6f756e742e74496e73756666696369656e74427564676574466f725370656e64696e67001804a449742773206e6f7420656e6f7567682062756467657420666f722074686973207370656e64696e672e584e6f4170706c69636174696f6e7350726f7669646564001904bc43616e6e6f742066696c6c206f70656e696e67202d206e6f206170706c69636174696f6e732070726f76696465642ea043616e6e6f7444656372656173655374616b6544656c7461477265617465725468616e5374616b65001a04fc43616e6e6f74206465637265617365207374616b65202d207374616b652064656c74612067726561746572207468616e20696e697469616c207374616b652e644170706c69636174696f6e734e6f74466f724f70656e696e67001b04f0547279696e6720746f2066696c6c206f70656e696e67207769746820616e206170706c69636174696f6e20666f72206f74686572206f70656e696e6764576f726b657253746f7261676556616c7565546f6f4c6f6e67001c0480576f726b65722073746f72616765207465787420697320746f6f206c6f6e672e70496e73756666696369656e74546f6b656e73466f7246756e64696e67001d04f8496e73756666696369656e7420746f6b656e7320666f722066756e64696e6720286f6e206d656d62657220636f6e74726f6c6c6572206163636f756e7429445a65726f546f6b656e7346756e64696e67001e047c547279696e6720746f2066756e642077697468207a65726f20746f6b656e7378496e73756666696369656e7442616c616e6365466f725472616e73666572001f04b443616e6e6f742077697468647261773a20696e73756666696369656e74206275646765742062616c616e63652e048c44697363757373696f6e206d6f64756c6520707265646566696e6564206572726f7273c1090c5070616c6c65745f776f726b696e675f67726f7570186572726f7273144572726f720804540004490001803c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f7729605374616b6542616c616e636543616e6e6f7442655a65726f0001049850726f7669646564207374616b652062616c616e63652063616e6e6f74206265207a65726f2e4c4f70656e696e67446f65734e6f7445786973740002045c4f70656e696e6720646f6573206e6f742065786973742e6443616e6e6f74486972654d756c7469706c654c656164657273000304bc43616e6e6f742066696c6c206f70656e696e672077697468206d756c7469706c65206170706c69636174696f6e732e74576f726b65724170706c69636174696f6e446f65734e6f74457869737400040488576f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e744d6178416374697665576f726b65724e756d626572457863656564656400050488576f726b696e672067726f75702073697a65206c696d69742065786365656465642e9c5375636365737366756c576f726b65724170706c69636174696f6e446f65734e6f744578697374000604b45375636365737366756c20776f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e8043616e6e6f74486972654c65616465725768656e4c6561646572457869737473000704c45468657265206973206c656164657220616c72656164792c2063616e6e6f74206869726520616e6f74686572206f6e652e4049734e6f744c6561644163636f756e740008044c4e6f742061206c656164206163636f756e742e4443757272656e744c6561644e6f745365740009046043757272656e74206c656164206973206e6f74207365742e48576f726b6572446f65734e6f744578697374000a0458576f726b657220646f6573206e6f742065786973742e4c496e76616c69644d656d6265724f726967696e000b0470496e76616c6964206f726967696e20666f722061206d656d6265722e705369676e657249734e6f74576f726b6572526f6c654163636f756e74000c04885369676e6572206973206e6f7420776f726b657220726f6c65206163636f756e742e4842656c6f774d696e696d756d5374616b6573000d04885374616b696e67206c657373207468616e20746865206c6f77657220626f756e642e7c496e73756666696369656e7442616c616e6365546f436f7665725374616b65000e0490496e73756666696369656e742062616c616e636520746f20636f766572207374616b652e884170706c69636174696f6e5374616b65446f65736e744d617463684f70656e696e67000f04d84170706c69636174696f6e207374616b65206973206c657373207468616e207265717569726564206f70656e696e67207374616b652e504f726967696e49734e6f744170706c6963616e74001004604f726967696e206973206e6f74206170706c6963616e742e3c576f726b657249734c656176696e6700110498496e76616c6964206f7065726174696f6e202d20776f726b6572206973206c656176696e672e5043616e6e6f74526577617264576974685a65726f0012046452657761726420636f756c64206e6f74206265207a65726f2e78496e76616c69645374616b696e674163636f756e74466f724d656d626572001304ac5374616b696e67206163636f756e7420646f65736e27742062656c6f6e6720746f2061206d656d6265722e5c436f6e666c6963745374616b65734f6e4163636f756e74001404b05374616b696e67206163636f756e7420636f6e7461696e7320636f6e666c696374696e67207374616b65732e44576f726b65724861734e6f5265776172640015047c576f726b657220686173206e6f20726563757272696e67207265776172642e78556e7374616b696e67506572696f644c6573735468616e4d696e696d756d001604090153706563696669656420756e7374616b696e6720706572696f64206973206c657373207468656e206d696e696d756d2073657420666f72207468652067726f75702e3c43616e6e6f745370656e645a65726f00170460496e76616c6964207370656e64696e6720616d6f756e742e74496e73756666696369656e74427564676574466f725370656e64696e67001804a449742773206e6f7420656e6f7567682062756467657420666f722074686973207370656e64696e672e584e6f4170706c69636174696f6e7350726f7669646564001904bc43616e6e6f742066696c6c206f70656e696e67202d206e6f206170706c69636174696f6e732070726f76696465642ea043616e6e6f7444656372656173655374616b6544656c7461477265617465725468616e5374616b65001a04fc43616e6e6f74206465637265617365207374616b65202d207374616b652064656c74612067726561746572207468616e20696e697469616c207374616b652e644170706c69636174696f6e734e6f74466f724f70656e696e67001b04f0547279696e6720746f2066696c6c206f70656e696e67207769746820616e206170706c69636174696f6e20666f72206f74686572206f70656e696e6764576f726b657253746f7261676556616c7565546f6f4c6f6e67001c0480576f726b65722073746f72616765207465787420697320746f6f206c6f6e672e70496e73756666696369656e74546f6b656e73466f7246756e64696e67001d04f8496e73756666696369656e7420746f6b656e7320666f722066756e64696e6720286f6e206d656d62657220636f6e74726f6c6c6572206163636f756e7429445a65726f546f6b656e7346756e64696e67001e047c547279696e6720746f2066756e642077697468207a65726f20746f6b656e7378496e73756666696369656e7442616c616e6365466f725472616e73666572001f04b443616e6e6f742077697468647261773a20696e73756666696369656e74206275646765742062616c616e63652e048c44697363757373696f6e206d6f64756c6520707265646566696e6564206572726f7273c5090c5070616c6c65745f776f726b696e675f67726f7570186572726f7273144572726f720804540004490001803c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f7729605374616b6542616c616e636543616e6e6f7442655a65726f0001049850726f7669646564207374616b652062616c616e63652063616e6e6f74206265207a65726f2e4c4f70656e696e67446f65734e6f7445786973740002045c4f70656e696e6720646f6573206e6f742065786973742e6443616e6e6f74486972654d756c7469706c654c656164657273000304bc43616e6e6f742066696c6c206f70656e696e672077697468206d756c7469706c65206170706c69636174696f6e732e74576f726b65724170706c69636174696f6e446f65734e6f74457869737400040488576f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e744d6178416374697665576f726b65724e756d626572457863656564656400050488576f726b696e672067726f75702073697a65206c696d69742065786365656465642e9c5375636365737366756c576f726b65724170706c69636174696f6e446f65734e6f744578697374000604b45375636365737366756c20776f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e8043616e6e6f74486972654c65616465725768656e4c6561646572457869737473000704c45468657265206973206c656164657220616c72656164792c2063616e6e6f74206869726520616e6f74686572206f6e652e4049734e6f744c6561644163636f756e740008044c4e6f742061206c656164206163636f756e742e4443757272656e744c6561644e6f745365740009046043757272656e74206c656164206973206e6f74207365742e48576f726b6572446f65734e6f744578697374000a0458576f726b657220646f6573206e6f742065786973742e4c496e76616c69644d656d6265724f726967696e000b0470496e76616c6964206f726967696e20666f722061206d656d6265722e705369676e657249734e6f74576f726b6572526f6c654163636f756e74000c04885369676e6572206973206e6f7420776f726b657220726f6c65206163636f756e742e4842656c6f774d696e696d756d5374616b6573000d04885374616b696e67206c657373207468616e20746865206c6f77657220626f756e642e7c496e73756666696369656e7442616c616e6365546f436f7665725374616b65000e0490496e73756666696369656e742062616c616e636520746f20636f766572207374616b652e884170706c69636174696f6e5374616b65446f65736e744d617463684f70656e696e67000f04d84170706c69636174696f6e207374616b65206973206c657373207468616e207265717569726564206f70656e696e67207374616b652e504f726967696e49734e6f744170706c6963616e74001004604f726967696e206973206e6f74206170706c6963616e742e3c576f726b657249734c656176696e6700110498496e76616c6964206f7065726174696f6e202d20776f726b6572206973206c656176696e672e5043616e6e6f74526577617264576974685a65726f0012046452657761726420636f756c64206e6f74206265207a65726f2e78496e76616c69645374616b696e674163636f756e74466f724d656d626572001304ac5374616b696e67206163636f756e7420646f65736e27742062656c6f6e6720746f2061206d656d6265722e5c436f6e666c6963745374616b65734f6e4163636f756e74001404b05374616b696e67206163636f756e7420636f6e7461696e7320636f6e666c696374696e67207374616b65732e44576f726b65724861734e6f5265776172640015047c576f726b657220686173206e6f20726563757272696e67207265776172642e78556e7374616b696e67506572696f644c6573735468616e4d696e696d756d001604090153706563696669656420756e7374616b696e6720706572696f64206973206c657373207468656e206d696e696d756d2073657420666f72207468652067726f75702e3c43616e6e6f745370656e645a65726f00170460496e76616c6964207370656e64696e6720616d6f756e742e74496e73756666696369656e74427564676574466f725370656e64696e67001804a449742773206e6f7420656e6f7567682062756467657420666f722074686973207370656e64696e672e584e6f4170706c69636174696f6e7350726f7669646564001904bc43616e6e6f742066696c6c206f70656e696e67202d206e6f206170706c69636174696f6e732070726f76696465642ea043616e6e6f7444656372656173655374616b6544656c7461477265617465725468616e5374616b65001a04fc43616e6e6f74206465637265617365207374616b65202d207374616b652064656c74612067726561746572207468616e20696e697469616c207374616b652e644170706c69636174696f6e734e6f74466f724f70656e696e67001b04f0547279696e6720746f2066696c6c206f70656e696e67207769746820616e206170706c69636174696f6e20666f72206f74686572206f70656e696e6764576f726b657253746f7261676556616c7565546f6f4c6f6e67001c0480576f726b65722073746f72616765207465787420697320746f6f206c6f6e672e70496e73756666696369656e74546f6b656e73466f7246756e64696e67001d04f8496e73756666696369656e7420746f6b656e7320666f722066756e64696e6720286f6e206d656d62657220636f6e74726f6c6c6572206163636f756e7429445a65726f546f6b656e7346756e64696e67001e047c547279696e6720746f2066756e642077697468207a65726f20746f6b656e7378496e73756666696369656e7442616c616e6365466f725472616e73666572001f04b443616e6e6f742077697468647261773a20696e73756666696369656e74206275646765742062616c616e63652e048c44697363757373696f6e206d6f64756c6520707265646566696e6564206572726f7273c909102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c4164647265737301001043616c6c013904245369676e617475726501cd0914457874726101d90900040030000000cd09082873705f72756e74696d65384d756c74695369676e617475726500010c1c4564323535313904009d050148656432353531393a3a5369676e61747572650000001c537232353531390400d1050148737232353531393a3a5369676e61747572650001001445636473610400d109014065636473613a3a5369676e617475726500020000d1090c1c73705f636f7265146563647361245369676e617475726500000400d50901205b75383b2036355d0000d509000003410000000800d90900000420dd09e109e509e909ed09f509f909fd0900dd0910306672616d655f73797374656d28657874656e73696f6e7354636865636b5f6e6f6e5f7a65726f5f73656e64657248436865636b4e6f6e5a65726f53656e64657204045400000000e10910306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e04045400000000e50910306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e04045400000000e90910306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e6573697304045400000000ed0910306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c69747904045400000400f109010c4572610000f109102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff0000f50910306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e636504045400000400e5030120543a3a496e6465780000f90910306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b57656967687404045400000000fd09086870616c6c65745f7472616e73616374696f6e5f7061796d656e74604368617267655472616e73616374696f6e5061796d656e7404045400000400ec013042616c616e63654f663c543e0000010a08586a6f7973747265616d5f6e6f64655f72756e74696d651c52756e74696d6500000000a41853797374656d011853797374656d401c4163636f756e7401010402000c4101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e2c426c6f636b57656967687401001c180000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b4861736801010405102c8000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510300400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801002c80000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e18446967657374010034040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301004404001ca0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e001d01204e4f54453a20546865206974656d20697320756e626f756e6420616e642073686f756c64207468657265666f7265206e657665722062652072656164206f6e20636861696e2ed020497420636f756c64206f746865727769736520696e666c6174652074686520506f562073697a65206f66206120626c6f636b2e002d01204576656e747320686176652061206c6172676520696e2d6d656d6f72792073697a652e20426f7820746865206576656e747320746f206e6f7420676f206f75742d6f662d6d656d6f7279fc206a75737420696e206361736520736f6d656f6e65207374696c6c207265616473207468656d2066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f70696373010104022cd9030400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e004d01205468652076616c756520686173207468652074797065206028543a3a426c6f636b4e756d6265722c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000e10304000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e740100980400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e740100980400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e50686173650000d103040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e01ed0301501830426c6f636b57656967687473f903f90162991c85000b00204aa9d10113ffffffffffffffff8211861f00010ba04328a62e011366666666666666a6010b0098f73e5d0113ffffffffffffffbf0100008211861f00010ba0cb7a10a3011366666666666666e6010b00204aa9d10113ffffffffffffffff01070088526a741300000000000000408211861f0000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e67746809043000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e74101060090000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e20446257656967687411044050895d0000000000f812e604000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6e15040103386a6f7973747265616d2d6e6f6465386a6f7973747265616d2d6e6f64650c000000d20700000000000030df6acb689907609b0400000037e397fc7c91f5e40100000040fe3ad401f8959a0600000018ef58a3b67ba77001000000d2bc9897eed08f1503000000f78b278be53f454c02000000ed99c5acb25eedf503000000cbca25e39f14238702000000687ad44ad37f03c201000000bc9d89904f5b923f0100000037c8bb1350a9a2a803000000ab3c0572291feb8b0100000001000000010484204765742074686520636861696e27732063757272656e742076657273696f6e2e28535335385072656669782904087e0014a8205468652064657369676e61746564205353353820707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e012d04001c5574696c697479000131040174044c626174636865645f63616c6c735f6c696d69741010aa2a000004a820546865206c696d6974206f6e20746865206e756d626572206f6620626174636865642063616c6c732e019d06011042616265011042616265442845706f6368496e64657801002820000000000000000004542043757272656e742065706f636820696e6465782e2c417574686f7269746965730100a1060400046c2043757272656e742065706f636820617574686f7269746965732e2c47656e65736973536c6f740100510420000000000000000008f82054686520736c6f74206174207768696368207468652066697273742065706f63682061637475616c6c7920737461727465642e205468697320697320309020756e74696c2074686520666972737420626c6f636b206f662074686520636861696e2e2c43757272656e74536c6f740100510420000000000000000004542043757272656e7420736c6f74206e756d6265722e2852616e646f6d6e65737301000480000000000000000000000000000000000000000000000000000000000000000028b8205468652065706f63682072616e646f6d6e65737320666f7220746865202a63757272656e742a2065706f63682e002c20232053656375726974790005012054686973204d555354204e4f54206265207573656420666f722067616d626c696e672c2061732069742063616e20626520696e666c75656e6365642062792061f8206d616c6963696f75732076616c696461746f7220696e207468652073686f7274207465726d2e204974204d4159206265207573656420696e206d616e7915012063727970746f677261706869632070726f746f636f6c732c20686f77657665722c20736f206c6f6e67206173206f6e652072656d656d6265727320746861742074686973150120286c696b652065766572797468696e6720656c7365206f6e2d636861696e29206974206973207075626c69632e20466f72206578616d706c652c2069742063616e206265050120757365642077686572652061206e756d626572206973206e656564656420746861742063616e6e6f742068617665206265656e2063686f73656e20627920616e0d01206164766572736172792c20666f7220707572706f7365732073756368206173207075626c69632d636f696e207a65726f2d6b6e6f776c656467652070726f6f66732e6050656e64696e6745706f6368436f6e6669674368616e67650000590404000461012050656e64696e672065706f636820636f6e66696775726174696f6e206368616e676520746861742077696c6c206265206170706c696564207768656e20746865206e6578742065706f636820697320656e61637465642e384e65787452616e646f6d6e657373010004800000000000000000000000000000000000000000000000000000000000000000045c204e6578742065706f63682072616e646f6d6e6573732e3c4e657874417574686f7269746965730100a10604000460204e6578742065706f636820617574686f7269746965732e305365676d656e74496e6465780100101000000000247c2052616e646f6d6e65737320756e64657220636f6e737472756374696f6e2e00f8205765206d616b6520612074726164652d6f6666206265747765656e2073746f7261676520616363657373657320616e64206c697374206c656e6774682e01012057652073746f72652074686520756e6465722d636f6e737472756374696f6e2072616e646f6d6e65737320696e207365676d656e7473206f6620757020746f942060554e4445525f434f4e535452554354494f4e5f5345474d454e545f4c454e475448602e00ec204f6e63652061207365676d656e7420726561636865732074686973206c656e6774682c20776520626567696e20746865206e657874206f6e652e090120576520726573657420616c6c207365676d656e747320616e642072657475726e20746f206030602061742074686520626567696e6e696e67206f662065766572791c2065706f63682e44556e646572436f6e737472756374696f6e0101040510ad0604000415012054574f582d4e4f54453a20605365676d656e74496e6465786020697320616e20696e6372656173696e6720696e74656765722c20736f2074686973206973206f6b61792e2c496e697469616c697a65640000b50604000801012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e292077686963682069732060536f6d65601d01206966207065722d626c6f636b20696e697469616c697a6174696f6e2068617320616c7265616479206265656e2063616c6c656420666f722063757272656e7420626c6f636b2e4c417574686f7256726652616e646f6d6e6573730100c90604001015012054686973206669656c642073686f756c6420616c7761797320626520706f70756c6174656420647572696e6720626c6f636b2070726f63657373696e6720756e6c6573731901207365636f6e6461727920706c61696e20736c6f74732061726520656e61626c65642028776869636820646f6e277420636f6e7461696e206120565246206f7574707574292e0049012049742069732073657420696e20606f6e5f66696e616c697a65602c206265666f72652069742077696c6c20636f6e7461696e207468652076616c75652066726f6d20746865206c61737420626c6f636b2e2845706f636853746172740100dd03200000000000000000145d012054686520626c6f636b206e756d62657273207768656e20746865206c61737420616e642063757272656e742065706f6368206861766520737461727465642c20726573706563746976656c7920604e2d316020616e641420604e602e4901204e4f54453a20576520747261636b207468697320697320696e206f7264657220746f20616e6e6f746174652074686520626c6f636b206e756d626572207768656e206120676976656e20706f6f6c206f66590120656e74726f7079207761732066697865642028692e652e20697420776173206b6e6f776e20746f20636861696e206f6273657276657273292e2053696e63652065706f6368732061726520646566696e656420696e590120736c6f74732c207768696368206d617920626520736b69707065642c2074686520626c6f636b206e756d62657273206d6179206e6f74206c696e6520757020776974682074686520736c6f74206e756d626572732e204c6174656e657373010010100000000014d820486f77206c617465207468652063757272656e7420626c6f636b20697320636f6d706172656420746f2069747320706172656e742e001501205468697320656e74727920697320706f70756c617465642061732070617274206f6620626c6f636b20657865637574696f6e20616e6420697320636c65616e65642075701101206f6e20626c6f636b2066696e616c697a6174696f6e2e205175657279696e6720746869732073746f7261676520656e747279206f757473696465206f6620626c6f636bb020657865637574696f6e20636f6e746578742073686f756c6420616c77617973207969656c64207a65726f2e2c45706f6368436f6e6669670000cd0604000861012054686520636f6e66696775726174696f6e20666f72207468652063757272656e742065706f63682e2053686f756c64206e6576657220626520604e6f6e656020617320697420697320696e697469616c697a656420696e242067656e657369732e3c4e65787445706f6368436f6e6669670000cd060400082d012054686520636f6e66696775726174696f6e20666f7220746865206e6578742065706f63682c20604e6f6e65602069662074686520636f6e6669672077696c6c206e6f74206368616e6765e82028796f752063616e2066616c6c6261636b20746f206045706f6368436f6e6669676020696e737465616420696e20746861742063617365292e34536b697070656445706f6368730100d10604002029012041206c697374206f6620746865206c6173742031303020736b69707065642065706f63687320616e642074686520636f72726573706f6e64696e672073657373696f6e20696e64657870207768656e207468652065706f63682077617320736b69707065642e0031012054686973206973206f6e6c79207573656420666f722076616c69646174696e672065717569766f636174696f6e2070726f6f66732e20416e2065717569766f636174696f6e2070726f6f663501206d75737420636f6e7461696e732061206b65792d6f776e6572736869702070726f6f6620666f72206120676976656e2073657373696f6e2c207468657265666f7265207765206e656564206139012077617920746f2074696520746f6765746865722073657373696f6e7320616e642065706f636820696e64696365732c20692e652e207765206e65656420746f2076616c69646174652074686174290120612076616c696461746f722077617320746865206f776e6572206f66206120676976656e206b6579206f6e206120676976656e2073657373696f6e2c20616e64207768617420746865b0206163746976652065706f636820696e6465782077617320647572696e6720746861742073657373696f6e2e013d04000c3445706f63684475726174696f6e282058020000000000000cec2054686520616d6f756e74206f662074696d652c20696e20736c6f74732c207468617420656163682065706f63682073686f756c64206c6173742e1901204e4f54453a2043757272656e746c79206974206973206e6f7420706f737369626c6520746f206368616e6765207468652065706f6368206475726174696f6e20616674657221012074686520636861696e2068617320737461727465642e20417474656d7074696e6720746f20646f20736f2077696c6c20627269636b20626c6f636b2070726f64756374696f6e2e444578706563746564426c6f636b54696d652820701700000000000014050120546865206578706563746564206176657261676520626c6f636b2074696d6520617420776869636820424142452073686f756c64206265206372656174696e67110120626c6f636b732e2053696e636520424142452069732070726f626162696c6973746963206974206973206e6f74207472697669616c20746f20666967757265206f75740501207768617420746865206578706563746564206176657261676520626c6f636b2074696d652073686f756c64206265206261736564206f6e2074686520736c6f740901206475726174696f6e20616e642074686520736563757269747920706172616d657465722060636020287768657265206031202d20636020726570726573656e7473a0207468652070726f626162696c697479206f66206120736c6f74206265696e6720656d707479292e384d6178417574686f7269746965731010a08601000488204d6178206e756d626572206f6620617574686f72697469657320616c6c6f77656401d506022454696d657374616d70012454696d657374616d70080c4e6f7701002820000000000000000004902043757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010098040004b420446964207468652074696d657374616d7020676574207570646174656420696e207468697320626c6f636b3f0161040004344d696e696d756d506572696f642820b80b000000000000104d0120546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e204265776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a5d0120706572696f6420746861742074686520626c6f636b2070726f64756374696f6e206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c5d012067656e6572616c6c7920776f726b2077697468207468697320746f2064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20652e672e20466f7220417572612c2069742077696c6c206265a020646f75626c65207468697320706572696f64206f6e2064656661756c742073657474696e67732e000328417574686f72736869700128417574686f72736869700418417574686f720000000400046420417574686f72206f662063757272656e7420626c6f636b2e00000000042042616c616e636573012042616c616e6365731434546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e40496e61637469766549737375616e636501001840000000000000000000000000000000000409012054686520746f74616c20756e697473206f66206f75747374616e64696e672064656163746976617465642062616c616e636520696e207468652073797374656d2e1c4163636f756e74010104020014010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600901205468652042616c616e6365732070616c6c6574206578616d706c65206f662073746f72696e67207468652062616c616e6365206f6620616e206163636f756e742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b19022020202074797065204163636f756e7453746f7265203d2053746f726167654d61705368696d3c53656c663a3a4163636f756e743c52756e74696d653e2c206672616d655f73797374656d3a3a50726f76696465723c52756e74696d653e2c204163636f756e7449642c2053656c663a3a4163636f756e74446174613c42616c616e63653e3e0c20207d102060606000150120596f752063616e20616c736f2073746f7265207468652062616c616e6365206f6620616e206163636f756e7420696e20746865206053797374656d602070616c6c65742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b7420202074797065204163636f756e7453746f7265203d2053797374656d0c20207d102060606000510120427574207468697320636f6d657320776974682074726164656f6666732c2073746f72696e67206163636f756e742062616c616e63657320696e207468652073797374656d2070616c6c65742073746f7265736d0120606672616d655f73797374656d60206461746120616c6f6e677369646520746865206163636f756e74206461746120636f6e747261727920746f2073746f72696e67206163636f756e742062616c616e63657320696e207468652901206042616c616e636573602070616c6c65742c20776869636820757365732061206053746f726167654d61706020746f2073746f72652062616c616e6365732064617461206f6e6c792e4101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b730101040200d906040008b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e2052657365727665730101040200e906040004a4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e01650401800c484578697374656e7469616c4465706f73697418404002e50f00000000000000000000000004d420546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d61784c6f636b7310103200000008f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e2c4d61785265736572766573101032000000040d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e01f50605485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100f90640000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e0100fd0604000000018804604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c6974706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f7269747960004d0120546869732076616c7565206973206d756c7469706c656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e000668456c656374696f6e50726f76696465724d756c746950686173650168456c656374696f6e50726f76696465724d756c746950686173652814526f756e64010010100100000018ac20496e7465726e616c20636f756e74657220666f7220746865206e756d626572206f6620726f756e64732e00550120546869732069732075736566756c20666f722064652d6475706c69636174696f6e206f66207472616e73616374696f6e73207375626d697474656420746f2074686520706f6f6c2c20616e642067656e6572616c6c20646961676e6f7374696373206f66207468652070616c6c65742e004d012054686973206973206d6572656c7920696e6372656d656e746564206f6e6365207065722065766572792074696d65207468617420616e20757073747265616d2060656c656374602069732063616c6c65642e3043757272656e7450686173650100a00400043c2043757272656e742070686173652e38517565756564536f6c7574696f6e000001070400043d012043757272656e74206265737420736f6c7574696f6e2c207369676e6564206f7220756e7369676e65642c2071756575656420746f2062652072657475726e65642075706f6e2060656c656374602e20536e617073686f740000090704000c7020536e617073686f742064617461206f662074686520726f756e642e005d01205468697320697320637265617465642061742074686520626567696e6e696e67206f6620746865207369676e656420706861736520616e6420636c65617265642075706f6e2063616c6c696e672060656c656374602e38446573697265645461726765747300001004000ccc2044657369726564206e756d626572206f66207461726765747320746f20656c65637420666f72207468697320726f756e642e00a8204f6e6c7920657869737473207768656e205b60536e617073686f74605d2069732070726573656e742e40536e617073686f744d6574616461746100003d0504000c9820546865206d65746164617461206f6620746865205b60526f756e64536e617073686f74605d00a8204f6e6c7920657869737473207768656e205b60536e617073686f74605d2069732070726573656e742e645369676e65645375626d697373696f6e4e657874496e646578010010100000000024010120546865206e65787420696e64657820746f2062652061737369676e656420746f20616e20696e636f6d696e67207369676e6564207375626d697373696f6e2e007501204576657279206163636570746564207375626d697373696f6e2069732061737369676e6564206120756e6971756520696e6465783b207468617420696e64657820697320626f756e6420746f207468617420706172746963756c61726501207375626d697373696f6e20666f7220746865206475726174696f6e206f662074686520656c656374696f6e2e204f6e20656c656374696f6e2066696e616c697a6174696f6e2c20746865206e65787420696e6465782069733020726573657420746f20302e0069012057652063616e2774206a7573742075736520605369676e65645375626d697373696f6e496e64696365732e6c656e2829602c206265636175736520746861742773206120626f756e646564207365743b20706173742069747359012063617061636974792c2069742077696c6c2073696d706c792073617475726174652e2057652063616e2774206a7573742069746572617465206f76657220605369676e65645375626d697373696f6e734d6170602cf4206265636175736520697465726174696f6e20697320736c6f772e20496e73746561642c2077652073746f7265207468652076616c756520686572652e5c5369676e65645375626d697373696f6e496e6469636573010019070400186d01204120736f727465642c20626f756e64656420766563746f72206f6620602873636f72652c20626c6f636b5f6e756d6265722c20696e64657829602c20776865726520656163682060696e6465786020706f696e747320746f2061782076616c756520696e20605369676e65645375626d697373696f6e73602e007101205765206e65766572206e65656420746f2070726f63657373206d6f7265207468616e20612073696e676c65207369676e6564207375626d697373696f6e20617420612074696d652e205369676e6564207375626d697373696f6e7375012063616e206265207175697465206c617267652c20736f2077652772652077696c6c696e6720746f207061792074686520636f7374206f66206d756c7469706c6520646174616261736520616363657373657320746f206163636573732101207468656d206f6e6520617420612074696d6520696e7374656164206f662072656164696e6720616e64206465636f64696e6720616c6c206f66207468656d206174206f6e63652e505369676e65645375626d697373696f6e734d61700001040510250704001c7420556e636865636b65642c207369676e656420736f6c7574696f6e732e00690120546f676574686572207769746820605375626d697373696f6e496e6469636573602c20746869732073746f726573206120626f756e64656420736574206f6620605369676e65645375626d697373696f6e7360207768696c65ec20616c6c6f77696e6720757320746f206b656570206f6e6c7920612073696e676c65206f6e6520696e206d656d6f727920617420612074696d652e0069012054776f78206e6f74653a20746865206b6579206f6620746865206d617020697320616e206175746f2d696e6372656d656e74696e6720696e6465782077686963682075736572732063616e6e6f7420696e7370656374206f72f4206166666563743b2077652073686f756c646e2774206e65656420612063727970746f67726170686963616c6c7920736563757265206861736865722e544d696e696d756d556e7472757374656453636f726500009c0400105d0120546865206d696e696d756d2073636f7265207468617420656163682027756e747275737465642720736f6c7574696f6e206d7573742061747461696e20696e206f7264657220746f20626520636f6e7369646572656428206665617369626c652e00b82043616e206265207365742076696120607365745f6d696e696d756d5f756e747275737465645f73636f7265602e016904018c4c34556e7369676e656450686173651010960000000480204475726174696f6e206f662074686520756e7369676e65642070686173652e2c5369676e656450686173651010960000000478204475726174696f6e206f6620746865207369676e65642070686173652e544265747465725369676e65645468726573686f6c64ac1000000000084d0120546865206d696e696d756d20616d6f756e74206f6620696d70726f76656d656e7420746f2074686520736f6c7574696f6e2073636f7265207468617420646566696e6573206120736f6c7574696f6e2061737820226265747465722220696e20746865205369676e65642070686173652e5c426574746572556e7369676e65645468726573686f6c64ac1020a10700084d0120546865206d696e696d756d20616d6f756e74206f6620696d70726f76656d656e7420746f2074686520736f6c7574696f6e2073636f7265207468617420646566696e6573206120736f6c7574696f6e2061738020226265747465722220696e2074686520556e7369676e65642070686173652e384f6666636861696e52657065617410101200000010b42054686520726570656174207468726573686f6c64206f6620746865206f6666636861696e20776f726b65722e00610120466f72206578616d706c652c20696620697420697320352c2074686174206d65616e732074686174206174206c65617374203520626c6f636b732077696c6c20656c61707365206265747765656e20617474656d7074738420746f207375626d69742074686520776f726b6572277320736f6c7574696f6e2e3c4d696e657254785072696f726974792820feffffffffffff7f04250120546865207072696f72697479206f662074686520756e7369676e6564207472616e73616374696f6e207375626d697474656420696e2074686520756e7369676e65642d7068617365505369676e65644d61785375626d697373696f6e731010100000001ce4204d6178696d756d206e756d626572206f66207369676e6564207375626d697373696f6e7320746861742063616e206265207175657565642e005501204974206973206265737420746f2061766f69642061646a757374696e67207468697320647572696e6720616e20656c656374696f6e2c20617320697420696d706163747320646f776e73747265616d2064617461650120737472756374757265732e20496e20706172746963756c61722c20605369676e65645375626d697373696f6e496e64696365733c543e6020697320626f756e646564206f6e20746869732076616c75652e20496620796f75f42075706461746520746869732076616c756520647572696e6720616e20656c656374696f6e2c20796f75205f6d7573745f20656e7375726520746861744d0120605369676e65645375626d697373696f6e496e64696365732e6c656e282960206973206c657373207468616e206f7220657175616c20746f20746865206e65772076616c75652e204f74686572776973652cf020617474656d70747320746f207375626d6974206e657720736f6c7574696f6e73206d617920636175736520612072756e74696d652070616e69632e3c5369676e65644d617857656967687420400b481de1842e011366666666666666a61494204d6178696d756d20776569676874206f662061207369676e656420736f6c7574696f6e2e005d01204966205b60436f6e6669673a3a4d696e6572436f6e666967605d206973206265696e6720696d706c656d656e74656420746f207375626d6974207369676e656420736f6c7574696f6e7320286f757473696465206f663d0120746869732070616c6c6574292c207468656e205b604d696e6572436f6e6669673a3a736f6c7574696f6e5f776569676874605d206973207573656420746f20636f6d7061726520616761696e73743020746869732076616c75652e405369676e65644d6178526566756e647310100400000004190120546865206d6178696d756d20616d6f756e74206f6620756e636865636b656420736f6c7574696f6e7320746f20726566756e64207468652063616c6c2066656520666f722e405369676e6564526577617264426173651840aa821bce260000000000000000000000048820426173652072657761726420666f722061207369676e656420736f6c7574696f6e445369676e65644465706f736974426173651840a41a130d84010000000000000000000004902042617365206465706f73697420666f722061207369676e656420736f6c7574696f6e2e445369676e65644465706f7369744279746518406a6e190000000000000000000000000004a0205065722d62797465206465706f73697420666f722061207369676e656420736f6c7574696f6e2e4c5369676e65644465706f73697457656967687418400000000000000000000000000000000004a8205065722d776569676874206465706f73697420666f722061207369676e656420736f6c7574696f6e2e444d6178456c656374696e67566f746572731010d43000000c5d0120546865206d6178696d756d206e756d626572206f6620656c656374696e6720766f7465727320746f2070757420696e2074686520736e617073686f742e20417420746865206d6f6d656e742c20736e617073686f7473590120617265206f6e6c79206f76657220612073696e676c6520626c6f636b2c20627574206f6e6365206d756c74692d626c6f636b20656c656374696f6e732061726520696e74726f647563656420746865792077696c6c842074616b6520706c616365206f766572206d756c7469706c6520626c6f636b732e4c4d6178456c65637461626c6554617267657473290408ffff04010120546865206d6178696d756d206e756d626572206f6620656c65637461626c65207461726765747320746f2070757420696e2074686520736e617073686f742e284d617857696e6e65727310109001000010350120546865206d6178696d756d206e756d626572206f662077696e6e65727320746861742063616e20626520656c656374656420627920746869732060456c656374696f6e50726f7669646572604020696d706c656d656e746174696f6e2e005101204e6f74653a2054686973206d75737420616c776179732062652067726561746572206f7220657175616c20746f2060543a3a4461746150726f76696465723a3a646573697265645f746172676574732829602e384d696e65724d61784c656e67746810100000360000384d696e65724d617857656967687420400b481de1842e011366666666666666a600544d696e65724d6178566f746573506572566f74657210101000000000012907071c5374616b696e67011c5374616b696e67943856616c696461746f72436f756e740100101000000000049c2054686520696465616c206e756d626572206f66206163746976652076616c696461746f72732e544d696e696d756d56616c696461746f72436f756e740100101000000000044101204d696e696d756d206e756d626572206f66207374616b696e67207061727469636970616e7473206265666f726520656d657267656e637920636f6e646974696f6e732061726520696d706f7365642e34496e76756c6e657261626c657301005d0504000c590120416e792076616c696461746f72732074686174206d6179206e6576657220626520736c6173686564206f7220666f726369626c79206b69636b65642e20497427732061205665632073696e636520746865792772654d01206561737920746f20696e697469616c697a6520616e642074686520706572666f726d616e636520686974206973206d696e696d616c2028776520657870656374206e6f206d6f7265207468616e20666f7572ac20696e76756c6e657261626c65732920616e64207265737472696374656420746f20746573746e6574732e18426f6e64656400010405000004000c0101204d61702066726f6d20616c6c206c6f636b65642022737461736822206163636f756e747320746f2074686520636f6e74726f6c6c6572206163636f756e742e00d02054574f582d4e4f54453a20534146452073696e636520604163636f756e7449646020697320612073656375726520686173682e404d696e4e6f6d696e61746f72426f6e64010018400000000000000000000000000000000004210120546865206d696e696d756d2061637469766520626f6e6420746f206265636f6d6520616e64206d61696e7461696e2074686520726f6c65206f662061206e6f6d696e61746f722e404d696e56616c696461746f72426f6e64010018400000000000000000000000000000000004210120546865206d696e696d756d2061637469766520626f6e6420746f206265636f6d6520616e64206d61696e7461696e2074686520726f6c65206f6620612076616c696461746f722e484d696e696d756d4163746976655374616b65010018400000000000000000000000000000000004110120546865206d696e696d756d20616374697665206e6f6d696e61746f72207374616b65206f6620746865206c617374207375636365737366756c20656c656374696f6e2e344d696e436f6d6d697373696f6e0100ac10000000000ce820546865206d696e696d756d20616d6f756e74206f6620636f6d6d697373696f6e20746861742076616c696461746f72732063616e207365742e00802049662073657420746f206030602c206e6f206c696d6974206578697374732e184c656467657200010402002d070400044501204d61702066726f6d20616c6c2028756e6c6f636b6564292022636f6e74726f6c6c657222206163636f756e747320746f2074686520696e666f20726567617264696e6720746865207374616b696e672e1450617965650101040500590504000ce42057686572652074686520726577617264207061796d656e742073686f756c64206265206d6164652e204b657965642062792073746173682e00d02054574f582d4e4f54453a20534146452073696e636520604163636f756e7449646020697320612073656375726520686173682e2856616c696461746f72730101040500b00800000c450120546865206d61702066726f6d202877616e6e616265292076616c696461746f72207374617368206b657920746f2074686520707265666572656e636573206f6620746861742076616c696461746f722e00d02054574f582d4e4f54453a20534146452073696e636520604163636f756e7449646020697320612073656375726520686173682e50436f756e746572466f7256616c696461746f7273010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170484d617856616c696461746f7273436f756e7400001004000c310120546865206d6178696d756d2076616c696461746f7220636f756e74206265666f72652077652073746f7020616c6c6f77696e67206e65772076616c696461746f727320746f206a6f696e2e00d0205768656e20746869732076616c7565206973206e6f74207365742c206e6f206c696d6974732061726520656e666f726365642e284e6f6d696e61746f727300010405004107040048750120546865206d61702066726f6d206e6f6d696e61746f72207374617368206b657920746f207468656972206e6f6d696e6174696f6e20707265666572656e6365732c206e616d656c79207468652076616c696461746f72732074686174582074686579207769736820746f20737570706f72742e003901204e6f7465207468617420746865206b657973206f6620746869732073746f72616765206d6170206d69676874206265636f6d65206e6f6e2d6465636f6461626c6520696e2063617365207468656d01205b60436f6e6669673a3a4d61784e6f6d696e6174696f6e73605d20636f6e66696775726174696f6e206973206465637265617365642e20496e2074686973207261726520636173652c207468657365206e6f6d696e61746f7273650120617265207374696c6c206578697374656e7420696e2073746f726167652c207468656972206b657920697320636f727265637420616e64207265747269657661626c652028692e652e2060636f6e7461696e735f6b657960710120696e6469636174657320746861742074686579206578697374292c206275742074686569722076616c75652063616e6e6f74206265206465636f6465642e205468657265666f72652c20746865206e6f6e2d6465636f6461626c656d01206e6f6d696e61746f72732077696c6c206566666563746976656c79206e6f742d65786973742c20756e74696c20746865792072652d7375626d697420746865697220707265666572656e6365732073756368207468617420697401012069732077697468696e2074686520626f756e6473206f6620746865206e65776c79207365742060436f6e6669673a3a4d61784e6f6d696e6174696f6e73602e006101205468697320696d706c696573207468617420603a3a697465725f6b65797328292e636f756e7428296020616e6420603a3a6974657228292e636f756e74282960206d696768742072657475726e20646966666572656e746d012076616c75657320666f722074686973206d61702e204d6f72656f7665722c20746865206d61696e20603a3a636f756e7428296020697320616c69676e656420776974682074686520666f726d65722c206e616d656c79207468656c206e756d626572206f66206b65797320746861742065786973742e006d01204c6173746c792c20696620616e79206f6620746865206e6f6d696e61746f7273206265636f6d65206e6f6e2d6465636f6461626c652c20746865792063616e206265206368696c6c656420696d6d6564696174656c7920766961b8205b6043616c6c3a3a6368696c6c5f6f74686572605d20646973706174636861626c6520627920616e796f6e652e00d02054574f582d4e4f54453a20534146452073696e636520604163636f756e7449646020697320612073656375726520686173682e50436f756e746572466f724e6f6d696e61746f7273010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170484d61784e6f6d696e61746f7273436f756e7400001004000c310120546865206d6178696d756d206e6f6d696e61746f7220636f756e74206265666f72652077652073746f7020616c6c6f77696e67206e65772076616c696461746f727320746f206a6f696e2e00d0205768656e20746869732076616c7565206973206e6f74207365742c206e6f206c696d6974732061726520656e666f726365642e2843757272656e744572610000100400105c205468652063757272656e742065726120696e6465782e006501205468697320697320746865206c617465737420706c616e6e6564206572612c20646570656e64696e67206f6e20686f77207468652053657373696f6e2070616c6c657420717565756573207468652076616c696461746f7280207365742c206974206d6967687420626520616374697665206f72206e6f742e2441637469766545726100004507040010d820546865206163746976652065726120696e666f726d6174696f6e2c20697420686f6c647320696e64657820616e642073746172742e0059012054686520616374697665206572612069732074686520657261206265696e672063757272656e746c792072657761726465642e2056616c696461746f7220736574206f66207468697320657261206d757374206265ac20657175616c20746f205b6053657373696f6e496e746572666163653a3a76616c696461746f7273605d2e5445726173537461727453657373696f6e496e6465780001040510100400103101205468652073657373696f6e20696e646578206174207768696368207468652065726120737461727420666f7220746865206c6173742060484953544f52595f44455054486020657261732e006101204e6f74653a205468697320747261636b7320746865207374617274696e672073657373696f6e2028692e652e2073657373696f6e20696e646578207768656e20657261207374617274206265696e672061637469766529f020666f7220746865206572617320696e20605b43757272656e74457261202d20484953544f52595f44455054482c2043757272656e744572615d602e2c457261735374616b65727301010805054907e80c0000001878204578706f73757265206f662076616c696461746f72206174206572612e0061012054686973206973206b65796564206669727374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00a82049732069742072656d6f7665642061667465722060484953544f52595f44455054486020657261732e4101204966207374616b657273206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e20656d707479206578706f737572652069732072657475726e65642e48457261735374616b657273436c697070656401010805054907e80c0000002c9820436c6970706564204578706f73757265206f662076616c696461746f72206174206572612e00590120546869732069732073696d696c617220746f205b60457261735374616b657273605d20627574206e756d626572206f66206e6f6d696e61746f7273206578706f736564206973207265647563656420746f20746865dc2060543a3a4d61784e6f6d696e61746f72526577617264656450657256616c696461746f72602062696767657374207374616b6572732e1d0120284e6f74653a20746865206669656c642060746f74616c6020616e6420606f776e60206f6620746865206578706f737572652072656d61696e7320756e6368616e676564292ef42054686973206973207573656420746f206c696d69742074686520692f6f20636f737420666f7220746865206e6f6d696e61746f72207061796f75742e005d012054686973206973206b657965642066697374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00a82049732069742072656d6f7665642061667465722060484953544f52595f44455054486020657261732e4101204966207374616b657273206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e20656d707479206578706f737572652069732072657475726e65642e484572617356616c696461746f72507265667301010805054907b00800001411012053696d696c617220746f2060457261735374616b657273602c207468697320686f6c64732074686520707265666572656e636573206f662076616c696461746f72732e0061012054686973206973206b65796564206669727374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00a82049732069742072656d6f7665642061667465722060484953544f52595f44455054486020657261732e4c4572617356616c696461746f7252657761726400010405101804000c09012054686520746f74616c2076616c696461746f7220657261207061796f757420666f7220746865206c6173742060484953544f52595f44455054486020657261732e0021012045726173207468617420686176656e27742066696e697368656420796574206f7220686173206265656e2072656d6f76656420646f65736e27742068617665207265776172642e4045726173526577617264506f696e747301010405104d0714000000000008ac205265776172647320666f7220746865206c6173742060484953544f52595f44455054486020657261732e250120496620726577617264206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e2030207265776172642069732072657475726e65642e3845726173546f74616c5374616b65010104051018400000000000000000000000000000000008ec2054686520746f74616c20616d6f756e74207374616b656420666f7220746865206c6173742060484953544f52595f44455054486020657261732e1d0120496620746f74616c206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e2030207374616b652069732072657475726e65642e20466f7263654572610100b804000454204d6f6465206f662065726120666f7263696e672e4c536c6173685265776172644672616374696f6e0100ac10000000000cf8205468652070657263656e74616765206f662074686520736c617368207468617420697320646973747269627574656420746f207265706f72746572732e00e4205468652072657374206f662074686520736c61736865642076616c75652069732068616e646c6564206279207468652060536c617368602e4c43616e63656c6564536c6173685061796f757401001840000000000000000000000000000000000815012054686520616d6f756e74206f662063757272656e637920676976656e20746f207265706f7274657273206f66206120736c617368206576656e7420776869636820776173ec2063616e63656c65642062792065787472616f7264696e6172792063697263756d7374616e6365732028652e672e20676f7665726e616e6365292e40556e6170706c696564536c617368657301010405105d07040004c420416c6c20756e6170706c69656420736c61736865732074686174206172652071756575656420666f72206c617465722e28426f6e646564457261730100d90304001025012041206d617070696e672066726f6d207374696c6c2d626f6e646564206572617320746f207468652066697273742073657373696f6e20696e646578206f662074686174206572612e00c8204d75737420636f6e7461696e7320696e666f726d6174696f6e20666f72206572617320666f72207468652072616e67653abc20605b6163746976655f657261202d20626f756e64696e675f6475726174696f6e3b206163746976655f6572615d604c56616c696461746f72536c617368496e457261000108050549076507040008450120416c6c20736c617368696e67206576656e7473206f6e2076616c696461746f72732c206d61707065642062792065726120746f20746865206869676865737420736c6173682070726f706f7274696f6e7020616e6420736c6173682076616c7565206f6620746865206572612e4c4e6f6d696e61746f72536c617368496e4572610001080505490718040004610120416c6c20736c617368696e67206576656e7473206f6e206e6f6d696e61746f72732c206d61707065642062792065726120746f20746865206869676865737420736c6173682076616c7565206f6620746865206572612e34536c617368696e675370616e73000104050069070400048c20536c617368696e67207370616e7320666f72207374617368206163636f756e74732e245370616e536c6173680101040559076d07800000000000000000000000000000000000000000000000000000000000000000083d01205265636f72647320696e666f726d6174696f6e2061626f757420746865206d6178696d756d20736c617368206f6620612073746173682077697468696e206120736c617368696e67207370616e2cb82061732077656c6c20617320686f77206d7563682072657761726420686173206265656e2070616964206f75742e5443757272656e74506c616e6e656453657373696f6e01001010000000000ce820546865206c61737420706c616e6e65642073657373696f6e207363686564756c6564206279207468652073657373696f6e2070616c6c65742e0071012054686973206973206261736963616c6c7920696e2073796e632077697468207468652063616c6c20746f205b6070616c6c65745f73657373696f6e3a3a53657373696f6e4d616e616765723a3a6e65775f73657373696f6e605d2e4c4f6666656e64696e6756616c696461746f727301007107040024690120496e6469636573206f662076616c696461746f727320746861742068617665206f6666656e64656420696e20746865206163746976652065726120616e6420776865746865722074686579206172652063757272656e746c79282064697361626c65642e00690120546869732076616c75652073686f756c642062652061207375706572736574206f662064697361626c65642076616c696461746f72732073696e6365206e6f7420616c6c206f6666656e636573206c65616420746f2074686571012076616c696461746f72206265696e672064697361626c65642028696620746865726520776173206e6f20736c617368292e2054686973206973206e656564656420746f20747261636b207468652070657263656e74616765206f6649012076616c696461746f727320746861742068617665206f6666656e64656420696e207468652063757272656e74206572612c20656e737572696e672061206e65772065726120697320666f72636564206966750120604f6666656e64696e6756616c696461746f72735468726573686f6c646020697320726561636865642e205468652076656320697320616c77617973206b65707420736f7274656420736f20746861742077652063616e2066696e6471012077686574686572206120676976656e2076616c696461746f72206861732070726576696f75736c79206f6666656e646564207573696e672062696e617279207365617263682e204974206765747320636c6561726564207768656e38207468652065726120656e64732e384368696c6c5468726573686f6c640000610504000c510120546865207468726573686f6c6420666f72207768656e2075736572732063616e2073746172742063616c6c696e6720606368696c6c5f6f746865726020666f72206f746865722076616c696461746f7273202f5901206e6f6d696e61746f72732e20546865207468726573686f6c6420697320636f6d706172656420746f207468652061637475616c206e756d626572206f662076616c696461746f7273202f206e6f6d696e61746f72732901202860436f756e74466f722a602920696e207468652073797374656d20636f6d706172656420746f2074686520636f6e66696775726564206d61782028604d61782a436f756e7460292e01550501a81c384d61784e6f6d696e6174696f6e7310101000000004b4204d6178696d756d206e756d626572206f66206e6f6d696e6174696f6e7320706572206e6f6d696e61746f722e30486973746f72794465707468101078000000508c204e756d626572206f66206572617320746f206b65657020696e20686973746f72792e00e820466f6c6c6f77696e6720696e666f726d6174696f6e206973206b65707420666f72206572617320696e20605b63757272656e745f657261202d090120486973746f727944657074682c2063757272656e745f6572615d603a2060457261735374616b657273602c2060457261735374616b657273436c6970706564602c050120604572617356616c696461746f725072656673602c20604572617356616c696461746f72526577617264602c206045726173526577617264506f696e7473602cac206045726173546f74616c5374616b65602c206045726173537461727453657373696f6e496e646578602c8420605374616b696e674c65646765722e636c61696d65645f72657761726473602e00e4204d757374206265206d6f7265207468616e20746865206e756d626572206f6620657261732064656c617965642062792073657373696f6e2ef820492e652e2061637469766520657261206d75737420616c7761797320626520696e20686973746f72792e20492e652e20606163746976655f657261203ec42063757272656e745f657261202d20686973746f72795f646570746860206d7573742062652067756172616e746565642e001101204966206d6967726174696e6720616e206578697374696e672070616c6c65742066726f6d2073746f726167652076616c756520746f20636f6e6669672076616c75652cec20746869732073686f756c642062652073657420746f2073616d652076616c7565206f72206772656174657220617320696e2073746f726167652e001501204e6f74653a2060486973746f727944657074686020697320757365642061732074686520757070657220626f756e6420666f72207468652060426f756e646564566563601101206974656d20605374616b696e674c65646765722e636c61696d65645f72657761726473602e2053657474696e6720746869732076616c7565206c6f776572207468616ed820746865206578697374696e672076616c75652063616e206c65616420746f20696e636f6e73697374656e6369657320696e20746865150120605374616b696e674c65646765726020616e642077696c6c206e65656420746f2062652068616e646c65642070726f7065726c7920696e2061206d6967726174696f6e2ef020546865207465737420607265647563696e675f686973746f72795f64657074685f616272757074602073686f77732074686973206566666563742e3853657373696f6e735065724572611010060000000470204e756d626572206f662073657373696f6e7320706572206572612e3c426f6e64696e674475726174696f6e10107000000004e4204e756d626572206f6620657261732074686174207374616b65642066756e6473206d7573742072656d61696e20626f6e64656420666f722e48536c61736844656665724475726174696f6e10106f000000100101204e756d626572206f662065726173207468617420736c6173686573206172652064656665727265642062792c20616674657220636f6d7075746174696f6e2e000d0120546869732073686f756c64206265206c657373207468616e2074686520626f6e64696e67206475726174696f6e2e2053657420746f203020696620736c617368657315012073686f756c64206265206170706c69656420696d6d6564696174656c792c20776974686f7574206f70706f7274756e69747920666f7220696e74657276656e74696f6e2e804d61784e6f6d696e61746f72526577617264656450657256616c696461746f7210100001000010f820546865206d6178696d756d206e756d626572206f66206e6f6d696e61746f727320726577617264656420666f7220656163682076616c696461746f722e00510120466f7220656163682076616c696461746f72206f6e6c79207468652060244d61784e6f6d696e61746f72526577617264656450657256616c696461746f72602062696767657374207374616b6572732063616e390120636c61696d207468656972207265776172642e2054686973207573656420746f206c696d69742074686520692f6f20636f737420666f7220746865206e6f6d696e61746f72207061796f75742e484d6178556e6c6f636b696e674368756e6b7310102000000028050120546865206d6178696d756d206e756d626572206f662060756e6c6f636b696e6760206368756e6b732061205b605374616b696e674c6564676572605d2063616e090120686176652e204566666563746976656c792064657465726d696e657320686f77206d616e7920756e6971756520657261732061207374616b6572206d61792062653820756e626f6e64696e6720696e2e00f8204e6f74653a20604d6178556e6c6f636b696e674368756e6b736020697320757365642061732074686520757070657220626f756e6420666f722074686501012060426f756e64656456656360206974656d20605374616b696e674c65646765722e756e6c6f636b696e67602e2053657474696e6720746869732076616c75650501206c6f776572207468616e20746865206578697374696e672076616c75652063616e206c65616420746f20696e636f6e73697374656e6369657320696e20746865090120605374616b696e674c65646765726020616e642077696c6c206e65656420746f2062652068616e646c65642070726f7065726c7920696e20612072756e74696d650501206d6967726174696f6e2e20546865207465737420607265647563696e675f6d61785f756e6c6f636b696e675f6368756e6b735f616272757074602073686f7773342074686973206566666563742e017907081c53657373696f6e011c53657373696f6e1c2856616c696461746f727301005d050400047c205468652063757272656e7420736574206f662076616c696461746f72732e3043757272656e74496e646578010010100000000004782043757272656e7420696e646578206f66207468652073657373696f6e2e345175657565644368616e676564010098040008390120547275652069662074686520756e6465726c79696e672065636f6e6f6d6963206964656e746974696573206f7220776569676874696e6720626568696e64207468652076616c696461746f7273a420686173206368616e67656420696e20746865207175657565642076616c696461746f72207365742e285175657565644b65797301007d070400083d012054686520717565756564206b65797320666f7220746865206e6578742073657373696f6e2e205768656e20746865206e6578742073657373696f6e20626567696e732c207468657365206b657973e02077696c6c206265207573656420746f2064657465726d696e65207468652076616c696461746f7227732073657373696f6e206b6579732e4844697361626c656456616c696461746f7273010065050400148020496e6469636573206f662064697361626c65642076616c696461746f72732e003d01205468652076656320697320616c77617973206b65707420736f7274656420736f20746861742077652063616e2066696e642077686574686572206120676976656e2076616c696461746f722069733d012064697361626c6564207573696e672062696e617279207365617263682e204974206765747320636c6561726564207768656e20606f6e5f73657373696f6e5f656e64696e67602072657475726e73642061206e657720736574206f66206964656e7469746965732e204e6578744b65797300010405007d050400049c20546865206e6578742073657373696f6e206b65797320666f7220612076616c696461746f722e204b65794f776e657200010405850700040004090120546865206f776e6572206f662061206b65792e20546865206b65792069732074686520604b657954797065496460202b2074686520656e636f646564206b65792e01790501bc00018d070928486973746f726963616c0128486973746f726963616c0848486973746f726963616c53657373696f6e73000104051091070400045d01204d617070696e672066726f6d20686973746f726963616c2073657373696f6e20696e646963657320746f2073657373696f6e2d6461746120726f6f74206861736820616e642076616c696461746f7220636f756e742e2c53746f72656452616e67650000dd03040004e4205468652072616e6765206f6620686973746f726963616c2073657373696f6e732077652073746f72652e205b66697273742c206c61737429000000000a1c4772616e647061011c4772616e647061181453746174650100950704000490205374617465206f66207468652063757272656e7420617574686f72697479207365742e3450656e64696e674368616e676500009907040004c42050656e64696e67206368616e67653a20287369676e616c65642061742c207363686564756c6564206368616e6765292e284e657874466f72636564000010040004bc206e65787420626c6f636b206e756d6265722077686572652077652063616e20666f7263652061206368616e67652e1c5374616c6c65640000dd030400049020607472756560206966207765206172652063757272656e746c79207374616c6c65642e3043757272656e745365744964010028200000000000000000085d0120546865206e756d626572206f66206368616e6765732028626f746820696e207465726d73206f66206b65797320616e6420756e6465726c79696e672065636f6e6f6d696320726573706f6e736962696c697469657329c420696e20746865202273657422206f66204772616e6470612076616c696461746f72732066726f6d2067656e657369732e30536574496453657373696f6e00010405281004002859012041206d617070696e672066726f6d206772616e6470612073657420494420746f2074686520696e646578206f6620746865202a6d6f737420726563656e742a2073657373696f6e20666f722077686963682069747368206d656d62657273207765726520726573706f6e7369626c652e0045012054686973206973206f6e6c79207573656420666f722076616c69646174696e672065717569766f636174696f6e2070726f6f66732e20416e2065717569766f636174696f6e2070726f6f66206d7573744d0120636f6e7461696e732061206b65792d6f776e6572736869702070726f6f6620666f72206120676976656e2073657373696f6e2c207468657265666f7265207765206e65656420612077617920746f20746965450120746f6765746865722073657373696f6e7320616e64204752414e44504120736574206964732c20692e652e207765206e65656420746f2076616c6964617465207468617420612076616c696461746f7241012077617320746865206f776e6572206f66206120676976656e206b6579206f6e206120676976656e2073657373696f6e2c20616e642077686174207468652061637469766520736574204944207761735420647572696e6720746861742073657373696f6e2e00b82054574f582d4e4f54453a2060536574496460206973206e6f7420756e646572207573657220636f6e74726f6c2e01850501c008384d6178417574686f7269746965731010a0860100045c204d617820417574686f72697469657320696e20757365584d6178536574496453657373696f6e456e74726965732820a00200000000000018390120546865206d6178696d756d206e756d626572206f6620656e747269657320746f206b65657020696e207468652073657420696420746f2073657373696f6e20696e646578206d617070696e672e0031012053696e6365207468652060536574496453657373696f6e60206d6170206973206f6e6c79207573656420666f722076616c69646174696e672065717569766f636174696f6e73207468697329012076616c75652073686f756c642072656c61746520746f2074686520626f6e64696e67206475726174696f6e206f66207768617465766572207374616b696e672073797374656d2069733501206265696e6720757365642028696620616e79292e2049662065717569766f636174696f6e2068616e646c696e67206973206e6f7420656e61626c6564207468656e20746869732076616c7565342063616e206265207a65726f2e01a1070b48417574686f72697479446973636f766572790148417574686f72697479446973636f7665727908104b6579730100a5070400048c204b657973206f66207468652063757272656e7420617574686f72697479207365742e204e6578744b6579730100a50704000480204b657973206f6620746865206e65787420617574686f72697479207365742e000000000c20496d4f6e6c696e650120496d4f6e6c696e651038486561727462656174416674657201001010000000002c1d012054686520626c6f636b206e756d6265722061667465722077686963682069742773206f6b20746f2073656e64206865617274626561747320696e207468652063757272656e74242073657373696f6e2e0025012041742074686520626567696e6e696e67206f6620656163682073657373696f6e20776520736574207468697320746f20612076616c756520746861742073686f756c642066616c6c350120726f7567686c7920696e20746865206d6964646c65206f66207468652073657373696f6e206475726174696f6e2e20546865206964656120697320746f206669727374207761697420666f721901207468652076616c696461746f727320746f2070726f64756365206120626c6f636b20696e207468652063757272656e742073657373696f6e2c20736f207468617420746865a820686561727462656174206c61746572206f6e2077696c6c206e6f74206265206e65636573736172792e00390120546869732076616c75652077696c6c206f6e6c79206265207573656420617320612066616c6c6261636b206966207765206661696c20746f2067657420612070726f7065722073657373696f6e2d012070726f677265737320657374696d6174652066726f6d20604e65787453657373696f6e526f746174696f6e602c2061732074686f736520657374696d617465732073686f756c642062650101206d6f7265206163637572617465207468656e207468652076616c75652077652063616c63756c61746520666f7220604865617274626561744166746572602e104b6579730100ad07040004d0205468652063757272656e7420736574206f66206b6579732074686174206d61792069737375652061206865617274626561742e485265636569766564486561727462656174730001080505dd03b5070400083d0120466f7220656163682073657373696f6e20696e6465782c207765206b6565702061206d617070696e67206f66206053657373696f6e496e6465786020616e64206041757468496e6465786020746fb02060577261707065724f70617175653c426f756e6465644f70617175654e6574776f726b53746174653e602e38417574686f726564426c6f636b730101080505490710100000000008150120466f7220656163682073657373696f6e20696e6465782c207765206b6565702061206d617070696e67206f66206056616c696461746f7249643c543e6020746f20746865c8206e756d626572206f6620626c6f636b7320617574686f7265642062792074686520676976656e20617574686f726974792e01b50501d40440556e7369676e65645072696f726974792820ffffffffffffffff10f0204120636f6e66696775726174696f6e20666f722062617365207072696f72697479206f6620756e7369676e6564207472616e73616374696f6e732e0015012054686973206973206578706f73656420736f20746861742069742063616e2062652074756e656420666f7220706172746963756c61722072756e74696d652c207768656eb4206d756c7469706c652070616c6c6574732073656e6420756e7369676e6564207472616e73616374696f6e732e01c9070d204f6666656e63657301204f6666656e6365730c1c5265706f727473000104052ccd07040004490120546865207072696d61727920737472756374757265207468617420686f6c647320616c6c206f6666656e6365207265636f726473206b65796564206279207265706f7274206964656e746966696572732e58436f6e63757272656e745265706f727473496e6465780101080505d107d5030400042901204120766563746f72206f66207265706f727473206f66207468652073616d65206b696e6420746861742068617070656e6564206174207468652073616d652074696d6520736c6f742e485265706f72747342794b696e64496e64657801010405fc30040018110120456e756d65726174657320616c6c207265706f727473206f662061206b696e6420616c6f6e672077697468207468652074696d6520746865792068617070656e65642e00bc20416c6c207265706f7274732061726520736f72746564206279207468652074696d65206f66206f6666656e63652e004901204e6f74652074686174207468652061637475616c2074797065206f662074686973206d617070696e6720697320605665633c75383e602c207468697320697320626563617573652076616c756573206f66690120646966666572656e7420747970657320617265206e6f7420737570706f7274656420617420746865206d6f6d656e7420736f2077652061726520646f696e6720746865206d616e75616c2073657269616c697a6174696f6e2e0001f800000e6052616e646f6d6e657373436f6c6c656374697665466c6970016052616e646f6d6e657373436f6c6c656374697665466c6970043852616e646f6d4d6174657269616c0100d50704000c610120536572696573206f6620626c6f636b20686561646572732066726f6d20746865206c61737420383120626c6f636b73207468617420616374732061732072616e646f6d2073656564206d6174657269616c2e2054686973610120697320617272616e67656420617320612072696e672062756666657220776974682060626c6f636b5f6e756d626572202520383160206265696e672074686520696e64657820696e746f20746865206056656360206f664420746865206f6c6465737420686173682e000000000f20426167734c6973740120426167734c6973740c244c6973744e6f6465730001040500d90704000c8020412073696e676c65206e6f64652c2077697468696e20736f6d65206261672e000501204e6f6465732073746f7265206c696e6b7320666f727761726420616e64206261636b2077697468696e207468656972207265737065637469766520626167732e4c436f756e746572466f724c6973744e6f646573010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170204c697374426167730001040528dd0704000c642041206261672073746f72656420696e2073746f726167652e0019012053746f7265732061206042616760207374727563742c2077686963682073746f726573206865616420616e64207461696c20706f696e7465727320746f20697473656c662e01d50501010104344261675468726573686f6c647315010919210300407a10f35a00006a70ccd4a96000009ef3397fbc660000a907ccd5306d00003d9a67fb0c740000a9bfa275577b0000a6fdf73217830000034f5d91538b0000132445651494000078081001629d00000302f63c45a70000392e6f7fc7b10000f59c23c6f2bc00004ae76aafd1c80000598a64846fd50000129fb243d8e200003f22e1ac18f1000033a4844c3e000100e2e51b895710010076a2c0b0732101006789b407a3330100793ed8d7f646010078131b81815b01000c1cf38a567101004437eeb68a8801009eb56d1434a10100335e9f156abb010067c3c7a545d701003218f340e1f40100de0b230d59140200699c11f5ca350200ad50a2c4565902009ae41c471e7f0200d0244e6745a70200f984ad51f2d10200ace7a7984dff0200a118325b822f0300ffa4c76dbe620300580bfd8532990300a9afce6812d30300109ad81b95100400d9caa519f551040038df488970970400bee1727949e10400cc73401fc62f0500b304f91831830500828bffb4d9db05001235383d143a0600a5b42a473a9e060036662d09ab080700f73aeab4cb790700b87e93d707f20700ffec23c0d1710800b84b0beca2f90800c9dcae7afc89090091752ba867230a0064f1cd4f76c60a003609be76c3730b0078655fdff32b0c00a407f5a5b6ef0c0052f61be7c5bf0d00da71bb70e79c0e000de9127eed870f001477987fb7811000ebee65ef328b11001269fe325ca5120033f8428b3fd113008ba57a13fa0f15001b2b60d0ba6216000d1d37d0c3ca17006c64fa5c6b4919002622c7411de01a00045bb9245c901c00233d83f6c25b1e00c8771c79064420003013fddef64a2200aa8b6e848172240082c096c4b2bc260016a3faebb72b29008296524ae1c12b00a636a865a4812e00d0e2d4509e6d31009c0a9a2796883400e4faafb27fd53700e6e64d367e573b000e4bd66de7113f0088b17db746084300b07def72603e470034de249635b84b00d48bd57b077a5000d0bd20ef5b885500b8f0467801e85a0010f88aee139e60003892925301b066009c95e4fc8e236d00b4126d10dffe730028b43e5976487b00a08a1c7a42078300b09ab083a0428b002846b2f463029400c861a42ade4e9d0050d23d4ae630a700805101a7e1b1b10038e501b2ccdbbc002016527844b9c800388924ba9055d50070ca35a4aebce200805fb1355cfbf0008035685d241f0001a0c3dcd96b361001d07862e87e50210160e852d09f7d330190662c5816cf460110274c3340575b01804be277a22971013082b92dfc5a880180d276075a01a101b0f511592b34bb014031745f580cd701802f6cee59a4f40140ff799b521814026075607d2986350260fde999a60d590200e5e71c91d07e02c0df2575cff2a602a07fd975899ad102a067009d4cf0fe0220dc29a1321f2f0320ff526b0a5562038088caa383c29803e05683fb5c9bd203401dd75d9516100400317e39a06e5104c0b071129de1960480b48c9192b1e00480e8124aad242f05c007ca7082858205007c13c45623db0540836fe869523906c0700f81466c9d0640f09c5017d00707c0e624b301e37807c0332ac78510f10780074ca1e4ca700800d5a9eb8c8bf80800a849588ed3880900804254142c220a80a25170e826c50a00e8d5fafc5e720b801df64e00792a0c80d4fe64f923ee0c006dd038ee19be0d001e90a494209b0e0010bf570e0a860f00da6a9db0b57f1000bf64afd810891100bb5b60cd17a31200f963f3aed6ce1300d5f004766a0d1500e099770202601600103d663bdfc71700de3e2d4158461900ecdbadb2d8dc1a0045c70007e38c1c00b8bde0fc11581e00ba5c2a211a402000407de46dcb462200dea55b03136e2400aaf1f3fcfcb7260014226f63b62629006492803e8fbc2b008486a6c7fc7b2e002cf05fc09b673100da63f7ed32823400f0b13fbdb5ce3700f291c41047503b00422a1a3c3c0a3f002c24212f20004300ac9342d4b6354700cc6ed7a400af4b00c4d022773e70500020017d89f57d5500f86387cef3dc5a008c4c7f7e54926000206207f284a36600cc1e05cb49166d00b42a7a70c4f07300d43a90e278397b0038f461ec53f78200a07264b9b1318b0048c9b3d464f09300007fe998bd3b9d0010058f17921ca70000dfaf7f469cb100e80c880bd6c4bc0058bdcb7ddca0c80038d18d37a03bd50030d55bf01ca1e200704ac01a0fdef0ffffffffffffffffacd020546865206c697374206f66207468726573686f6c64732073657061726174696e672074686520766172696f757320626167732e00490120496473206172652073657061726174656420696e746f20756e736f727465642062616773206163636f7264696e6720746f2074686569722073636f72652e205468697320737065636966696573207468656101207468726573686f6c64732073657061726174696e672074686520626167732e20416e20696427732062616720697320746865206c6172676573742062616720666f722077686963682074686520696427732073636f7265b8206973206c657373207468616e206f7220657175616c20746f20697473207570706572207468726573686f6c642e006501205768656e20696473206172652069746572617465642c2068696768657220626167732061726520697465726174656420636f6d706c6574656c79206265666f7265206c6f77657220626167732e2054686973206d65616e735901207468617420697465726174696f6e206973205f73656d692d736f727465645f3a20696473206f66206869676865722073636f72652074656e6420746f20636f6d65206265666f726520696473206f66206c6f7765722d012073636f72652c206275742070656572206964732077697468696e206120706172746963756c6172206261672061726520736f7274656420696e20696e73657274696f6e206f726465722e006820232045787072657373696e672074686520636f6e7374616e74004d01205468697320636f6e7374616e74206d75737420626520736f7274656420696e207374726963746c7920696e6372656173696e67206f726465722e204475706c6963617465206974656d7320617265206e6f742c207065726d69747465642e00410120546865726520697320616e20696d706c696564207570706572206c696d6974206f66206053636f72653a3a4d4158603b20746861742076616c756520646f6573206e6f74206e65656420746f2062652101207370656369666965642077697468696e20746865206261672e20466f7220616e792074776f207468726573686f6c64206c697374732c206966206f6e6520656e647320776974683101206053636f72653a3a4d4158602c20746865206f74686572206f6e6520646f6573206e6f742c20616e64207468657920617265206f746865727769736520657175616c2c207468652074776f7c206c697374732077696c6c20626568617665206964656e746963616c6c792e003820232043616c63756c6174696f6e005501204974206973207265636f6d6d656e64656420746f2067656e65726174652074686520736574206f66207468726573686f6c647320696e20612067656f6d6574726963207365726965732c2073756368207468617441012074686572652065786973747320736f6d6520636f6e7374616e7420726174696f2073756368207468617420607468726573686f6c645b6b202b20315d203d3d20287468726573686f6c645b6b5d202ad020636f6e7374616e745f726174696f292e6d6178287468726573686f6c645b6b5d202b2031296020666f7220616c6c20606b602e005901205468652068656c7065727320696e2074686520602f7574696c732f6672616d652f67656e65726174652d6261677360206d6f64756c652063616e2073696d706c69667920746869732063616c63756c6174696f6e2e002c2023204578616d706c6573005101202d20496620604261675468726573686f6c64733a3a67657428292e69735f656d7074792829602c207468656e20616c6c20696473206172652070757420696e746f207468652073616d65206261672c20616e64b0202020697465726174696f6e206973207374726963746c7920696e20696e73657274696f6e206f726465722e6101202d20496620604261675468726573686f6c64733a3a67657428292e6c656e2829203d3d203634602c20616e6420746865207468726573686f6c6473206172652064657465726d696e6564206163636f7264696e6720746f11012020207468652070726f63656475726520676976656e2061626f76652c207468656e2074686520636f6e7374616e7420726174696f20697320657175616c20746f20322e6501202d20496620604261675468726573686f6c64733a3a67657428292e6c656e2829203d3d20323030602c20616e6420746865207468726573686f6c6473206172652064657465726d696e6564206163636f7264696e6720746f59012020207468652070726f63656475726520676976656e2061626f76652c207468656e2074686520636f6e7374616e7420726174696f20697320617070726f78696d6174656c7920657175616c20746f20312e3234382e6101202d20496620746865207468726573686f6c64206c69737420626567696e7320605b312c20322c20332c202e2e2e5d602c207468656e20616e20696420776974682073636f72652030206f7220312077696c6c2066616c6cf0202020696e746f2062616720302c20616e20696420776974682073636f726520322077696c6c2066616c6c20696e746f2062616720312c206574632e00302023204d6967726174696f6e00610120496e20746865206576656e7420746861742074686973206c6973742065766572206368616e6765732c206120636f7079206f6620746865206f6c642062616773206c697374206d7573742062652072657461696e65642e5d012057697468207468617420604c6973743a3a6d696772617465602063616e2062652063616c6c65642c2077686963682077696c6c20706572666f726d2074686520617070726f707269617465206d6967726174696f6e2e01e107101c56657374696e67011c56657374696e67081c56657374696e670001040200e907040004d820496e666f726d6174696f6e20726567617264696e67207468652076657374696e67206f66206120676976656e206163636f756e742e3853746f7261676556657273696f6e0100f10704000c7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e003101204e6577206e6574776f726b732073746172742077697468206c61746573742076657273696f6e2c2061732064657465726d696e6564206279207468652067656e65736973206275696c642e01d90501050108444d696e5665737465645472616e736665721840aa821bce26000000000000000000000004e820546865206d696e696d756d20616d6f756e74207472616e7366657272656420746f2063616c6c20607665737465645f7472616e73666572602e4c4d617856657374696e675363686564756c657310101c0000000001f50711204d756c746973696701204d756c746973696704244d756c7469736967730001080502f907fd07040004942054686520736574206f66206f70656e206d756c7469736967206f7065726174696f6e732e01e1050109010c2c4465706f736974426173651840d042de1300000000000000000000000018590120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e672061206d756c746973696720657865637574696f6e206f7220746f842073746f726520612064697370617463682063616c6c20666f72206c617465722e00010120546869732069732068656c6420666f7220616e206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a652069733101206034202b2073697a656f662828426c6f636b4e756d6265722c2042616c616e63652c204163636f756e74496429296020627974657320616e642077686f7365206b65792073697a652069738020603332202b2073697a656f66284163636f756e74496429602062797465732e344465706f736974466163746f72184040cd2d030000000000000000000000000c55012054686520616d6f756e74206f662063757272656e6379206e65656465642070657220756e6974207468726573686f6c64207768656e206372656174696e672061206d756c746973696720657865637574696f6e2e00250120546869732069732068656c6420666f7220616464696e67203332206279746573206d6f726520696e746f2061207072652d6578697374696e672073746f726167652076616c75652e384d61785369676e61746f7269657310106400000004ec20546865206d6178696d756d20616d6f756e74206f66207369676e61746f7269657320616c6c6f77656420696e20746865206d756c74697369672e010508121c436f756e63696c011c436f756e63696c24145374616765010009082402010000000000000004742043757272656e7420636f756e63696c20766f74696e6720737461676538436f756e63696c4d656d6265727301001d08040004602043757272656e7420636f756e63696c206d656d626572732843616e64696461746573000104022829080400041101204d6170206f6620616c6c2063616e64696461746573207468617420657665722063616e6469646174656420616e6420686176656e277420756e7374616b65207965742e50416e6e6f756e63656d656e74506572696f644e72010028200000000000000000085d0120496e646578206f66207468652063757272656e742063616e64696461637920706572696f642e20497420697320696e6372656d656e74656420657665727974696d6520616e6e6f756e63656d656e7420706572696f6420207374617274732e18427564676574010018400000000000000000000000000000000004c82042756467657420666f722074686520636f756e63696c277320656c6563746564206d656d6265727320726577617264732e484e6578745265776172645061796d656e7473010010100000000004290120546865206e65787420626c6f636b20696e2077686963682074686520656c656374656420636f756e63696c206d656d62657220726577617264732077696c6c2062652070617965642e404e657874427564676574526566696c6c010010100000000004d820546865206e65787420626c6f636b20696e20776869636820746865206275646765742077696c6c20626520696e637265617365642e3c427564676574496e6372656d656e74010018400000000000000000000000000000000004d420416d6f756e74206f662062616c616e636520746f20626520726566696c6c65642065766572792062756467657420706572696f643c436f756e63696c6f725265776172640100184000000000000000000000000000000000046c20436f756e63696c6f72207265776172642070657220626c6f636b01e90501110124684d696e4e756d6265724f66457874726143616e64696461746573101000000000080901204d696e696d756d206e756d626572206f662065787472612063616e64696461746573206e656564656420666f72207468652076616c696420656c656374696f6e2e2d01204e756d626572206f6620746f74616c2063616e6469646174657320697320657175616c20746f20636f756e63696c2073697a6520706c75732065787472612063616e646964617465732e2c436f756e63696c53697a65101003000000045420436f756e63696c206d656d62657220636f756e74444d696e43616e6469646174655374616b651840a010a012d3eb050000000000000000000490204d696e696d756d207374616b652063616e6469646174652068617320746f206c6f636b60416e6e6f756e63696e67506572696f644475726174696f6e101040fa01000474204475726174696f6e206f6620616e6e6f6e63696e6720706572696f644849646c65506572696f644475726174696f6e1010010000000460204475726174696f6e206f662069646c6520706572696f6464456c65637465644d656d626572526577617264506572696f6410104038000004a020496e74657276616c20666f72206175746f6d6174696320726577617264207061796d656e74732e48427564676574526566696c6c506572696f6410104038000004ac20496e74657276616c206265747765656e206175746f6d617469632062756467657420726566696c6c732e3c43616e6469646163794c6f636b496425042063616e6469646163048c204578706f72747320636f6e7374202d2063616e646964616379206c6f636b2069642e3c436f756e63696c6f724c6f636b4964250420636f756e63696c6f048c204578706f72747320636f6e7374202d20636f756e63696c6f72206c6f636b2069642e012d0813285265666572656e64756d014c496e7374616e6365315265666572656e64756d0c14537461676501003108040004682043757272656e74207265666572656e64756d2073746167652e14566f74657301010402004108e400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018510120566f746573206361737420696e20746865207265666572656e64756d2e2041206e6577207265636f726420697320616464656420746f2074686973206d6170207768656e20612075736572206361737473206134207365616c656420766f74652e0101204974206973206d6f646966696564207768656e206120757365722072657665616c732074686520766f7465277320636f6d6d69746d656e742070726f6f662e55012041207265636f72642069732066696e616c6c792072656d6f766564207768656e20746865207573657220756e7374616b65732c2077686963682063616e2068617070656e20647572696e67206120766f74696e679c207374616765206f72206166746572207468652063757272656e74206379636c6520656e64732ef82041207374616b6520666f72206120766f74652063616e2062652072657573656420696e20667574757265207265666572656e64756d206379636c65732e404163636f756e74734f707465644f757401010402007c0004f4204163636f756e74732074686174207065726d616e656e746c79206f70746564206f7574206f6620766f74696e6720696e207265666572656e64756d2e01ed0501190114344d617853616c744c656e67746828202000000000000000085d01204d6178696d756d206c656e677468206f6620766f746520636f6d6d69746d656e742073616c742e20557365206c656e677468207468617420656e737572657320756e697175656e65737320666f722068617368696e675020652e672e207374643a3a7536343a3a4d41582e44566f746553746167654475726174696f6e1010c0a8000004b0204475726174696f6e206f6620766f74696e6720737461676520286e756d626572206f6620626c6f636b73294c52657665616c53746167654475726174696f6e1010c0a8000004bc204475726174696f6e206f662072657665616c696e6720737461676520286e756d626572206f6620626c6f636b7329304d696e696d756d5374616b651840a41a130d8401000000000000000000000480204d696e696d756d207374616b65206e656564656420666f7220766f74696e67505374616b696e6748616e646c65724c6f636b4964250420766f74696e67202004a4204578706f72747320636f6e7374202d207374616b696e672068616e646c6572206c6f636b2069642e014508141c4d656d6265727301284d656d6265727368697020304e6578744d656d6265724964010028200000000000000000084501204d656d626572496420746f2061737369676e20746f206e657874206d656d626572207468617420697320616464656420746f207468652072656769737472792c20616e6420697320616c736f20746865e820746f74616c206e756d626572206f66206d656d6265727320637265617465642e204d656d626572496473207374617274206174205a65726f2e384d656d626572736869704279496400010402284908040004d0204d617070696e67206f66206d656d626572277320696420746f207468656972206d656d626572736869702070726f66696c652e504d656d6265724964427948616e646c6548617368010104022c28200000000000000000040501205265676973746572656420756e697175652068616e646c6573206861736820616e64207468656972206d617070696e6720746f207468656972206f776e65722e2c526566657272616c437574010008040004410120526566657272616c206375742070657263656e74206f6620746865206d656d626572736869702066656520746f2072656365697665206f6e20627579696e6720746865206d656d626572736869702e3c4d656d62657273686970507269636501001840aa821bce26000000000000000000000004682043757272656e74206d656d626572736869702070726963652e58496e697469616c496e7669746174696f6e436f756e74010010100000000004e820496e697469616c20696e7669746174696f6e20636f756e7420666f7220746865206e65776c7920626f75676874206d656d626572736869702e60496e697469616c496e7669746174696f6e42616c616e63650100184034c10d6713000000000000000000000004cc20496e697469616c20696e7669746174696f6e2062616c616e636520666f722074686520696e7669746564206d656d6265722e705374616b696e674163636f756e7449644d656d62657253746174757301010402004d082400000000000000000004250120446f75626c65206f662061207374616b696e67206163636f756e7420696420616e64206d656d62657220696420746f2074686520636f6e6669726d6174696f6e207374617475732e01f105012901185844656661756c744d656d6265727368697050726963651840aa821bce26000000000000000000000004a0204578706f72747320636f6e7374202d2064656661756c74206d656d62657273686970206665652e64526566657272616c4375744d6178696d756d50657263656e74080432044901204578706f72747320636f6e7374202d206d6178696d756d2070657263656e742076616c7565206f6620746865206d656d626572736869702066656520666f722074686520726566657272616c206375742e7c44656661756c74496e697469616c496e7669746174696f6e42616c616e6365184034c10d6713000000000000000000000004e0204578706f72747320636f6e7374202d2064656661756c742062616c616e636520666f722074686520696e7669746564206d656d6265722e3843616e6469646174655374616b651840a41a130d84010000000000000000000004f8204578706f72747320636f6e7374202d205374616b65206e656564656420746f2063616e646964617465206173207374616b696e67206163636f756e742e4c496e76697465644d656d6265724c6f636b4964250420696e766974656d6204a0204578706f72747320636f6e7374202d20696e7669746564206d656d626572206c6f636b2069642e585374616b696e6743616e6469646174654c6f636b4964250420626f756e6473746104ac204578706f72747320636f6e7374202d207374616b696e672063616e646964617465206c6f636b2069642e0151081514466f72756d0124466f72756d5f315f31203043617465676f727942794964010104022855083d010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004cc204d61702063617465676f7279206964656e74696669657220746f20636f72726573706f6e64696e672063617465676f72792e384e65787443617465676f727949640100282000000000000000000411012043617465676f7279206964656e7469666965722076616c756520746f206265207573656420666f7220746865206e6578742043617465676f727920637265617465642e3c43617465676f7279436f756e746572010028200000000000000000049420436f756e74657220666f7220616c6c206578697374696e672063617465676f726965732e2854687265616442794964010108020279035d08a4000000000000000000000000000000000000000000000000000000000000000000000000000000000004bc204d617020746872656164206964656e74696669657220746f20636f72726573706f6e64696e67207468726561642e304e657874546872656164496401002820000000000000000004090120546872656164206964656e7469666965722076616c756520746f206265207573656420666f72206e6578742054687265616420696e20746872656164427949642e284e657874506f7374496401002820000000000000000004f020506f7374206964656e7469666965722076616c756520746f206265207573656420666f7220666f72206e65787420706f737420637265617465642e4c43617465676f727942794d6f64657261746f72010108020279037c000480204d6f64657261746f722073657420666f7220656163682043617465676f727920506f737442794964010108020279036108150100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004ac204d617020706f7374206964656e74696669657220746f20636f72726573706f6e64696e6720706f73742e01f505015101102c506f73744465706f7369741840b85c5c730000000000000000000000000838204578706f72747320636f6e737480204465706f736974206e656564656420746f20637265617465206120706f7374345468726561644465706f73697418402b907c6f0000000000000000000000000488204465706f736974206e656564656420746f20637265617465206120746872656164804d617844697265637453756263617465676f72696573496e43617465676f7279282005000000000000000484204d617844697265637453756263617465676f72696573496e43617465676f7279484d6178546f74616c43617465676f7269657328202800000000000000044c204d6178546f74616c43617465676f726965730165081630436f6e737469747574696f6e0130436f6e737469747574696f6e0430436f6e737469747574696f6e010069088000000000000000000000000000000000000000000000000000000000000000000001f905016d0100001718426f756e74790118426f756e74791420426f756e7469657301010402286d087d010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044020426f756e74792073746f726167652e4c426f756e7479436f6e747269627574696f6e7301010802028108850880000000000000000000000000000000000063fa6c000000000000000000000000044d0120446f75626c65206d617020666f7220626f756e74792066756e64696e672e2049742073746f7265732061206d656d626572206f7220636f756e63696c2066756e64696e6720666f7220626f756e746965732e2c426f756e7479436f756e74010010100000000004b820436f756e74206f6620616c6c20626f756e7469657320746861742068617665206265656e20637265617465642e1c456e74726965730001080202790389080400046020576f726b20656e7472792073746f72616765206d61702e28456e747279436f756e74010010100000000004c820436f756e74206f6620616c6c20776f726b20656e747269657320746861742068617665206265656e20637265617465642e01fd05017101105c436c6f736564436f6e747261637453697a654c696d6974101032000000044d01204578706f72747320636f6e7374202d206d617820776f726b20656e747279206e756d62657220666f72206120636c6f736564206173737572616e6365207479706520636f6e747261637420626f756e74792e4c4d696e576f726b456e7472616e745374616b6518409ecc4e6e00000000000000000000000004d4204578706f72747320636f6e7374202d206d696e20776f726b20656e7472616e74207374616b6520666f72206120626f756e74792e6846756e6465725374617465426c6f6174426f6e64416d6f756e7418400063fa6c00000000000000000000000004f4204578706f72747320636f6e7374202d2066756e64657220737461746520626c6f617420626f6e6420616d6f756e7420666f72206120626f756e74792e6c43726561746f725374617465426c6f6174426f6e64416d6f756e7418402211286d00000000000000000000000004f8204578706f72747320636f6e7374202d2063726561746f7220737461746520626c6f617420626f6e6420616d6f756e7420666f72206120626f756e74792e018d0818404a6f7973747265616d5574696c69747901404a6f7973747265616d5574696c6974790001010601950100019108191c436f6e74656e74011c436f6e74656e74842c4368616e6e656c427949640101040228a901a10100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024566964656f42794964010104022895086c00000000000000000000000000000000000000000000000000000000344e6578744368616e6e656c4964010028200000000000000000002c4e657874566964656f496401002820000000000000000000384e6578745472616e73666572496401002820000000000000000000484e65787443757261746f7247726f75704964010028200000000000000000004043757261746f7247726f7570427949640101040228c1080c0000000028436f6d6d69746d656e7401002c80000000000000000000000000000000000000000000000000000000000000000000684368616e6e656c5374617465426c6f6174426f6e6456616c756501001840000000000000000000000000000000000425012054686520737461746520626c6f617420626f6e6420666f7220746865206368616e6e656c202868656c70732070726576656e74696e672074686520737461746520626c6f6174292e60566964656f5374617465426c6f6174426f6e6456616c7565010018400000000000000000000000000000000004190154686520737461746520626c6f617420626f6e6420666f722074686520766964656f202868656c70732070726576656e74696e672074686520737461746520626c6f6174292e444d6178436173686f7574416c6c6f776564010018400000000000000000000000000000000000444d696e436173686f7574416c6c6f776564010018400000000000000000000000000000000000584368616e6e656c436173686f757473456e61626c6564010098040000484d696e41756374696f6e4475726174696f6e01001010000000000454204d696e2061756374696f6e206475726174696f6e484d617841756374696f6e4475726174696f6e01001010000000000454204d61782061756374696f6e206475726174696f6e644d696e41756374696f6e457874656e73696f6e506572696f6401001010000000000474204d696e2061756374696f6e20657874656e73696f6e20706572696f64644d617841756374696f6e457874656e73696f6e506572696f6401001010000000000474204d61782061756374696f6e20657874656e73696f6e20706572696f64484d696e4269644c6f636b4475726174696f6e01001010000000000458204d696e20626964206c6f636b206475726174696f6e484d61784269644c6f636b4475726174696f6e01001010000000000458204d617820626964206c6f636b206475726174696f6e404d696e5374617274696e67507269636501001840000000000000000000000000000000000468204d696e2061756374696f6e2073746172696e67207072696365404d61785374617274696e67507269636501001840000000000000000000000000000000000468204d61782061756374696f6e2073746172696e67207072696365444d696e43726561746f72526f79616c74790100ac1000000000047c204d696e2063726561746f7220726f79616c74792070657263656e74616765444d617843726561746f72526f79616c74790100ac1000000000047c204d61782063726561746f7220726f79616c74792070657263656e74616765284d696e4269645374657001001840000000000000000000000000000000000454204d696e2061756374696f6e206269642073746570284d61784269645374657001001840000000000000000000000000000000000454204d61782061756374696f6e20626964207374657054506c617466726f6d46656550657263656e746167650100ac1000000000046020506c6174666f726d206665652070657263656e746167655c41756374696f6e53746172747341744d617844656c7461010010100000000004b8204d61782064656c7461206265747765656e2063757272656e7420626c6f636b20616e6420737461727473206174784f70656e41756374696f6e4269644279566964656f416e644d656d62657201010802027903dd087000000000000000000000000000000000000000000000000000000000045c204269647320666f72206f70656e2061756374696f6e7354476c6f62616c4461696c794e6674436f756e7465720100f90130000000000000000000000000046820476c6f62616c206461696c79204e465420636f756e7465722e58476c6f62616c5765656b6c794e6674436f756e7465720100f90130000000000000000000000000046c20476c6f62616c207765656b6c79204e465420636f756e7465722e4c476c6f62616c4461696c794e66744c696d69740100f50130000000000000000000000000046020476c6f62616c206461696c79204e4654206c696d69742e50476c6f62616c5765656b6c794e66744c696d69740100f50130000000000000000000000000046420476c6f62616c207765656b6c79204e4654206c696d69742e404e66744c696d697473456e61626c656401009804000868204e4654206c696d69747320656e61626c6564206f72206e6f74a02043616e206265207570646174656420696e20666c696768742062792074686520436f756e63696c01050601a101246c4d61784e756d6265724f6643757261746f727350657247726f757010100a00000004c4204578706f72747320636f6e7374202d206d6178206e756d626572206f662063757261746f7273207065722067726f7570ac4d61784b65797350657243757261746f7247726f75705065726d697373696f6e7342794c6576656c4d6170101019000000045d01204578706f72747320636f6e7374202d206d6178206e756d626572206f66206b657973207065722063757261746f725f67726f75702e7065726d697373696f6e735f62795f6c6576656c206d617020696e7374616e6365704d61784e667441756374696f6e57686974656c6973744c656e67746810101400000004c4204578706f72747320636f6e7374202d206d6178206e66742061756374696f6e2077686974656c697374206c656e6774686844656661756c74476c6f62616c4461696c794e66744c696d6974f5013064000000000000004038000004c0204578706f72747320636f6e7374202d2064656661756c7420676c6f62616c206461696c79204e4654206c696d69742e6c44656661756c74476c6f62616c5765656b6c794e66744c696d6974f501309001000000000000c089010004c4204578706f72747320636f6e7374202d2064656661756c7420676c6f62616c207765656b6c79204e4654206c696d69742e6c44656661756c744368616e6e656c4461696c794e66744c696d6974f501300a000000000000004038000004c4204578706f72747320636f6e7374202d2064656661756c74206368616e6e656c206461696c79204e4654206c696d69742e7044656661756c744368616e6e656c5765656b6c794e66744c696d6974f501302800000000000000c089010004c8204578706f72747320636f6e7374202d2064656661756c74206368616e6e656c207765656b6c79204e4654206c696d69742e684d696e696d756d436173686f7574416c6c6f7765644c696d69741840a41a130d84010000000000000000000004a8204578706f727420636f6e7374202d206d696e20636173686f757420616c6c6f776564206c696d697473684d6178696d756d436173686f7574416c6c6f7765644c696d6974184040a640ba3e363b00000000000000000004a8204578706f727420636f6e7374202d206d617820636173686f757420616c6c6f776564206c696d69747301e1081a1c53746f72616765011c53746f726167654c4055706c6f6164696e67426c6f636b6564010098040004a020446566696e6573207768657468657220616c6c206e65772075706c6f61647320626c6f636b65641042616773010104029502e50848000000000000000000000000000000000000044820426167732073746f72616765206d61702e4c4e65787453746f726167654275636b6574496401002820000000000000000004ac2053746f72616765206275636b657420696420636f756e7465722e20537461727473206174207a65726f2e404e657874446174614f626a656374496401002820000000000000000004a02044617461206f626a65637420696420636f756e7465722e20537461727473206174207a65726f2e4453746f726167654275636b6574427949640001040228f108040004442053746f72616765206275636b6574732e24426c61636b6c69737401010402f9087c00048020426c61636b6c69737465642064617461206f626a656374206861736865732e5043757272656e74426c61636b6c69737453697a65010028200000000000000000047820426c61636b6c69737420636f6c6c656374696f6e20636f756e7465722e60446174614f626a6563745065724d65676162797465466565010018400000000000000000000000000000000004b02053697a652062617365642070726963696e67206f66206e6577206f626a656374732075706c6f616465642e6453746f726167654275636b6574735065724261674c696d6974010010100000000004a0202253746f72616765206275636b657473207065722062616722206e756d626572206c696d69742e68566f75636865724d61784f626a6563747353697a654c696d697401002820000000000000000004f820224d6178206f626a656374732073697a6520666f7220612073746f72616765206275636b657420766f756368657222206e756d626572206c696d69742e70566f75636865724d61784f626a656374734e756d6265724c696d697401002820000000000000000004050120224d6178206f626a65637473206e756d62657220666f7220612073746f7261676520206275636b657420766f756368657222206e756d626572206c696d69742e74446174614f626a6563745374617465426c6f6174426f6e6456616c756501001840000000000000000000000000000000000439012054686520737461746520626c6f617420626f6e6420666f72207468652064617461206f626a65637473202868656c70732070726576656e74696e672074686520737461746520626c6f6174292e6844796e616d69634261674372656174696f6e506f6c696369657301010402b102fd0814000000000004c82044796e616d69634261674372656174696f6e506f6c6963792062792062616720747970652073746f72616765206d61702e3c446174614f626a65637473427949640101080202050909096c00000000000000000000000000000000000000000000000000000004b0202744617461206f626a6563747320666f722062616773272073746f7261676520646f75626c65206d61702e784e657874446973747269627574696f6e4275636b657446616d696c79496401002820000000000000000004dc20446973747269627574696f6e206275636b65742066616d696c7920696420636f756e7465722e20537461727473206174207a65726f2e70446973747269627574696f6e4275636b657446616d696c794279496401010402280d09200000000000000000047820446973747269627574696f6e206275636b65742066616d696c6965732e80446973747269627574696f6e4275636b6574427946616d696c794964427949640101080202790311093000000000000000000000000004a82027446973747269627574696f6e206275636b6574272073746f7261676520646f75626c65206d61702e78446973747269627574696f6e4275636b657446616d696c794e756d62657201002820000000000000000004f020546f74616c206e756d626572206f6620646973747269627574696f6e206275636b65742066616d696c69657320696e207468652073797374656d2e78446973747269627574696f6e4275636b6574735065724261674c696d6974010010100000000004b42022446973747269627574696f6e206275636b657473207065722062616722206e756d626572206c696d69742e013506018d022c48426c61636b6c69737453697a654c696d69742820e803000000000000040501204578706f72747320636f6e7374202d206d6178696d756d2073697a65206f662074686520226861736820626c61636b6c6973742220636f6c6c656374696f6e2e5c4d696e53746f726167654275636b65747350657242616710100300000004ec204578706f72747320636f6e7374202d206d696e696d756d206e756d626572206f662073746f72616765206275636b65747320706572206261672e5c4d617853746f726167654275636b65747350657242616710100d00000004ec204578706f72747320636f6e7374202d206d6178696d756d206e756d626572206f662073746f72616765206275636b65747320706572206261672e704d696e446973747269627574696f6e4275636b657473506572426167101001000000040101204578706f72747320636f6e7374202d206d696e696d756d206e756d626572206f6620646973747269627574696f6e206275636b65747320706572206261672e704d6178446973747269627574696f6e4275636b657473506572426167101033000000040101204578706f72747320636f6e7374202d206d6178696d756d206e756d626572206f6620646973747269627574696f6e206275636b65747320706572206261672eb444656661756c744d656d62657244796e616d69634261674e756d6265724f6653746f726167654275636b657473101005000000085101204578706f72747320636f6e7374202d207468652064656661756c742064796e616d696320626167206372656174696f6e20706f6c69637920666f72206d656d62657273202873746f72616765206275636b657424206e756d626572292eb844656661756c744368616e6e656c44796e616d69634261674e756d6265724f6653746f726167654275636b657473101005000000085501204578706f72747320636f6e7374202d207468652064656661756c742064796e616d696320626167206372656174696f6e20706f6c69637920666f72206368616e6e656c73202873746f72616765206275636b657424206e756d626572292e844d6178446973747269627574696f6e4275636b657446616d696c794e756d6265722820c80000000000000004fc204578706f72747320636f6e7374202d206d617820616c6c6f77656420646973747269627574696f6e206275636b65742066616d696c79206e756d6265722ec84d61784e756d6265724f6650656e64696e67496e7669746174696f6e73506572446973747269627574696f6e4275636b6574101014000000042d01204578706f72747320636f6e7374202d206d6178206e756d626572206f662070656e64696e6720696e7669746174696f6e732070657220646973747269627574696f6e206275636b65742ea44d61784e756d6265724f664f70657261746f7273506572446973747269627574696f6e4275636b6574101014000000040501204578706f72747320636f6e7374202d206d6178206e756d626572206f66206f70657261746f72732070657220646973747269627574696f6e206275636b65742e444d6178446174614f626a65637453697a652820000000000f00000004bc204578706f72747320636f6e7374202d206d61782064617461206f626a6563742073697a6520696e2062797465732e011d091b3050726f6a656374546f6b656e0114546f6b656e246c4163636f756e74496e666f4279546f6b656e416e644d656d626572010108020279032109b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041d0120446f75626c65206d617020546f6b656e49642078204d656d6265724964203d3e204163636f756e744461746120666f72206d616e6167696e67206163636f756e74206461746134546f6b656e496e666f4279496401010402284909cd010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004dc206d617020546f6b656e4964203d3e20546f6b656e4461746120746f20726574726965766520746f6b656e20696e666f726d6174696f6e2c4e657874546f6b656e4964010028200000000000000000043c20546f6b656e204964206e6f6e63652c53796d626f6c7355736564010104022c7c00046c2053657420666f722074686520746f6b656e732073796d626f6c7324426c6f6174426f6e64010018400000000000000000000000000000000004b820426c6f617420426f6e642076616c7565207573656420647572696e67206163636f756e74206372656174696f6e3c4d696e53616c654475726174696f6e01001010000000000484204d696e696d756d206475726174696f6e206f66206120746f6b656e2073616c655c4d696e526576656e756553706c69744475726174696f6e010010100000000004a8204d696e696d756d20726576656e75652073706c6974206475726174696f6e20636f6e73747261696e74684d696e526576656e756553706c697454696d65546f5374617274010010100000000004bc204d696e696d756d20726576656e75652073706c69742074696d6520746f20737461727420636f6e73747261696e743c53616c65506c6174666f726d4665650100d5021000000000044d0120506c6174666f726d20666565202870657263656e74616765292063686172676564206f6e20746f70206f6620656163682073616c652070757263686173652028696e204a4f592920616e64206275726e656401390601c102000165091c3c50726f706f73616c73456e67696e65013850726f706f73616c456e67696e65142450726f706f73616c73010104021069090101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460204d61702070726f706f73616c206279206974732069642e3450726f706f73616c436f756e74010010100000000004bc20436f756e74206f6620616c6c2070726f706f73616c7320746861742068617665206265656e20637265617465642e50446973706174636861626c6543616c6c436f646501010402107509040004b4204d61702070726f706f73616c2065786563757461626c6520636f64652062792070726f706f73616c2069642e4c41637469766550726f706f73616c436f756e740100101000000000046c20436f756e74206f66206163746976652070726f706f73616c732e6c566f7465457869737473427950726f706f73616c4279566f746572010108020279093d03040104290120446f75626c65206d617020666f722070726576656e74696e67206475706c696361746520766f7465732e2053686f756c6420626520636c65616e65642061667465722075736167652e016106012903183c43616e63656c6c6174696f6e4665651840aa821bce260000000000000000000000047901204578706f72747320636f6e7374202d2074686520666565206973206170706c696564207768656e2063616e63656c207468652070726f706f73616c2e20412066656520776f756c6420626520736c617368656420286275726e6564292e3052656a656374696f6e4665651840528d8906c20000000000000000000000084501204578706f72747320636f6e7374202d202074686520666565206973206170706c696564207768656e207468652070726f706f73616c20676574732072656a65637465642e20412066656520776f756c645420626520736c617368656420286275726e6564292e385469746c654d61784c656e67746810102800000004d0204578706f72747320636f6e7374202d20206d617820616c6c6f7765642070726f706f73616c207469746c65206c656e6774682e504465736372697074696f6e4d61784c656e6774681010b80b000004e8204578706f72747320636f6e7374202d20206d617820616c6c6f7765642070726f706f73616c206465736372697074696f6e206c656e6774682e584d617841637469766550726f706f73616c4c696d697410101400000004ec204578706f72747320636f6e7374202d20206d61782073696d756c74616e656f7573206163746976652070726f706f73616c73206e756d6265722e505374616b696e6748616e646c65724c6f636b496425042070726f706f73616c04a4204578706f72747320636f6e7374202d207374616b696e672068616e646c6572206c6f636b2069642e017d091d4c50726f706f73616c7344697363757373696f6e014850726f706f73616c44697363757373696f6e10285468726561644279496401010402288109340000000000000000000000000004bc204d617020746872656164206964656e74696669657220746f20636f72726573706f6e64696e67207468726561642e2c546872656164436f756e7401002820000000000000000004b420436f756e74206f6620616c6c207468726561647320746861742068617665206265656e20637265617465642e50506f737454687265616449644279506f73744964010108020279038d0974000000000000000000000000000000000000000000000000000000000004c4204d61702074687265616420696420616e6420706f737420696420746f20636f72726573706f6e64696e6720706f73742e24506f7374436f756e7401002820000000000000000004ac20436f756e74206f6620616c6c20706f73747320746861742068617665206265656e20637265617465642e0165060141030c404d617857686974654c69737453697a65101014000000040901204578706f72747320636f6e7374202d20617574686f72206c6973742073697a65206c696d697420666f722074686520436c6f7365642064697363757373696f6e2e2c506f73744465706f7369741840052e276d00000000000000000000000004a0204578706f72747320636f6e7374202d2066656520666f72206372656174696e67206120706f737430506f73744c69666554696d65101058020000043d01204578706f72747320636f6e7374202d206d6178696d756d206e756d626572206f6620626c6f636b73206265666f7265206120706f73742063616e2062652065726173656420627920616e796f6e650191091e3850726f706f73616c73436f646578013850726f706f73616c73436f64657804505468726561644964427950726f706f73616c496401010402102820000000000000000004b0204d61702070726f706f73616c20696420746f206974732064697363757373696f6e2074687265616420696401690601490368985365744d617856616c696461746f72436f756e7450726f706f73616c506172616d65746572736d09b4c0890100401901006400000064000000640000006400000001a010a012d3eb050000000000000000000200000004dc204578706f7274732027536574204d61782056616c696461746f7220436f756e74272070726f706f73616c20706172616d65746572732e8052756e74696d655570677261646550726f706f73616c506172616d65746572736d09b4c0890100401901006400000064000000640000006400000001a010a012d3eb050000000000000000000200000004bc204578706f727473202752756e74696d652055706772616465272070726f706f73616c20706172616d65746572732e605369676e616c50726f706f73616c506172616d65746572736d09b4c0a80000b004000064000000640000006400000064000000011068761b959700000000000000000000010000000498204578706f72747320275369676e616c272070726f706f73616c20706172616d65746572732e8046756e64696e675265717565737450726f706f73616c506172616d65746572736d09b4c0a80000b00400004200000042000000640000006400000001a41a130d8401000000000000000000000100000004bc204578706f727473202746756e64696e672052657175657374272070726f706f73616c20706172616d65746572732ebc437265617465576f726b696e6747726f75704c6561644f70656e696e6750726f706f73616c506172616d65746572736d09b4c0a80000b00400004200000042000000640000006400000001680abf82280f0000000000000000000001000000040501204578706f727473202743726561746520576f726b696e672047726f7570204c656164204f70656e696e67272070726f706f73616c20706172616d65746572732ea446696c6c576f726b696e6747726f75704f70656e696e6750726f706f73616c506172616d65746572736d09b4c0a80000b0040000420000004200000064000000640000000134855f419407000000000000000000000100000004fc204578706f727473202746696c6c20576f726b696e672047726f7570204c656164204f70656e696e67272070726f706f73616c20706172616d65746572732ea8557064617465576f726b696e6747726f757042756467657450726f706f73616c506172616d65746572736d09b4c0a80000b0040000420000004200000064000000640000000134855f419407000000000000000000000100000004ec204578706f727473202755706461746520576f726b696e672047726f757020427564676574272070726f706f73616c20706172616d65746572732ebc4465637265617365576f726b696e6747726f75704c6561645374616b6550726f706f73616c506172616d65746572736d09b4c0a80000b0040000640000006400000064000000640000000134855f4194070000000000000000000001000000040501204578706f7274732027446563726561736520576f726b696e672047726f7570204c656164205374616b65272070726f706f73616c20706172616d65746572732e9c536c617368576f726b696e6747726f75704c65616450726f706f73616c506172616d65746572736d09b4c0a80000b0040000420000004200000064000000640000000134855f419407000000000000000000000100000004e0204578706f7274732027536c61736820576f726b696e672047726f7570204c656164272070726f706f73616c20706172616d65746572732eac536574576f726b696e6747726f75704c65616452657761726450726f706f73616c506172616d65746572736d09b4c0a80000b0040000420000004200000064000000640000000134855f419407000000000000000000000100000004f4204578706f727473202753657420576f726b696e672047726f7570204c65616420526577617264272070726f706f73616c20706172616d65746572732eac5465726d696e617465576f726b696e6747726f75704c65616450726f706f73616c506172616d65746572736d09b4c0a80000b0040000420000004200000064000000640000000134855f419407000000000000000000000100000004f0204578706f72747320275465726d696e61746520576f726b696e672047726f7570204c656164272070726f706f73616c20706172616d65746572732e8c416d656e64436f6e737469747574696f6e50726f706f73616c506172616d65746572736d09b4081a01004038000050000000640000003c0000005000000001680abf82280f000000000000000000000200000004c8204578706f7274732027416d656e6420436f6e737469747574696f6e272070726f706f73616c20706172616d65746572732ebc43616e63656c576f726b696e6747726f75704c6561644f70656e696e6750726f706f73616c506172616d65746572736d09b4c0a80000b0040000420000004200000064000000640000000134855f4194070000000000000000000001000000040501204578706f727473202743616e63656c20576f726b696e672047726f7570204c656164204f70656e696e67272070726f706f73616c20706172616d65746572732e905365744d656d62657273686970507269636550726f706f73616c506172616d65746572736d09b4c0a80000b0040000420000004200000064000000640000000134855f419407000000000000000000000100000004d0204578706f7274732027536574204d656d62657273686970205072696365272070726f706f73616c20706172616d65746572732eac536574436f756e63696c427564676574496e6372656d656e7450726f706f73616c506172616d65746572736d09b44019010040190100640000006400000064000000640000000120d0ec362a2f010000000000000000000200000004f0204578706f727473206053657420436f756e63696c2042756467657420496e6372656d656e74602070726f706f73616c20706172616d65746572732e90536574436f756e63696c6f7252657761726450726f706f73616c506172616d65746572736d09b480700000c0a80000640000006400000064000000640000000120d0ec362a2f0100000000000000000002000000042101204578706f727473206053657420436f756e63696c6f72205265776172642050726f706f73616c20506172616d6574657273602070726f706f73616c20706172616d65746572732eb4536574496e697469616c496e7669746174696f6e42616c616e636550726f706f73616c506172616d65746572736d09b480700000b00400004200000042000000640000006400000001d0147e05511e000000000000000000000100000004f8204578706f727473206053657420496e697469616c20496e7669746174696f6e2042616c616e6365602070726f706f73616c20706172616d65746572732e90536574496e7669746174696f6e436f756e7450726f706f73616c506172616d65746572736d09b4c0a80000b0040000420000004200000064000000640000000134855f419407000000000000000000000100000000c85365744d656d626572736869704c656164496e7669746174696f6e51756f746150726f706f73616c506172616d65746572736d09b4c0a80000b0040000420000004200000064000000640000000134855f41940700000000000000000000010000000080536574526566657272616c43757450726f706f73616c506172616d65746572736d09b4c0a80000b0040000420000004200000064000000640000000134855f419407000000000000000000000100000000785665746f50726f706f73616c50726f706f73616c506172616d65746572736d09b4403800000000000064000000640000006400000064000000011068761b959700000000000000000000010000000098557064617465476c6f62616c4e66744c696d697450726f706f73616c506172616d65746572736d09b480700000b00400004200000042000000640000006400000001680abf82280f000000000000000000000100000000985570646174654368616e6e656c5061796f75747350726f706f73616c506172616d65746572736d09b4c0890100403800004200000064000000640000006400000001680abf82280f0000000000000000000001000000009046756e64696e675265717565737450726f706f73616c4d6178546f74616c416d6f756e741840a010a012d3eb0500000000000000000004c4204d6178696d756d20746f74616c20616d6f756e7420696e2066756e64696e6720726571756573742070726f706f73616c8446756e64696e675265717565737450726f706f73616c4d61784163636f756e747310101400000004d0204d6178206e756d626572206f66206163636f756e7473207065722066756e64696e6720726571756573742070726f706f73616ca45365744d617856616c696461746f72436f756e7450726f706f73616c4d617856616c696461746f7273101064000000041501204d617820616c6c6f776564206e756d626572206f662076616c696461746f727320696e20736574206d61782076616c696461746f7220636f756e742070726f706f73616c0195091f44466f72756d576f726b696e6747726f75700154496e7374616e636531576f726b696e6747726f757028344e6578744f70656e696e67496401002820000000000000000004ac204e657874206964656e7469666965722076616c756520666f72206e6577206a6f62206f70656e696e672e2c4f70656e696e674279496401010402289909290101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000480204d617073206964656e74696669657220746f206a6f62206f70656e696e672e44416374697665576f726b6572436f756e740100101000000000046420436f756e74206f662061637469766520776f726b6572732e3c4170706c69636174696f6e4279496400010402289d09040004c8204d617073206964656e74696669657220746f20776f726b6572206170706c69636174696f6e206f6e206f70656e696e672e444e6578744170706c69636174696f6e496401002820000000000000000004c8204e657874206964656e7469666965722076616c756520666f72206e657720776f726b6572206170706c69636174696f6e2e304e657874576f726b657249640100282000000000000000000488204e657874206964656e74696669657220666f722061206e657720776f726b65722e28576f726b6572427949640001040228a109040004a4204d617073206964656e74696669657220746f20636f72726573706f6e64696e6720776f726b65722e2c43757272656e744c656164000028040004502043757272656e742067726f7570206c6561642e18427564676574010018400000000000000000000000000000000004782042756467657420666f722074686520776f726b696e672067726f75702e38537461747573546578744861736801002c800000000000000000000000000000000000000000000000000000000000000000044820537461747573207465787420686173682e016d06016d0318504d6178576f726b65724e756d6265724c696d697410101e0000000838204578706f72747320636f6e73749c204d61782073696d756c74616e656f75732061637469766520776f726b6572206e756d6265722e5c4d696e556e7374616b696e67506572696f644c696d697410100065040004ac20446566696e6573206d696e20756e7374616b696e6720706572696f6420696e207468652067726f75702e5c4d696e696d756d4170706c69636174696f6e5374616b6518404835261a08030000000000000000000004d4204d696e696d756d207374616b6520726571756972656420666f72206170706c79696e6720696e746f20616e206f70656e696e672e484c65616465724f70656e696e675374616b651840680abf82280f00000000000000000000048c205374616b65206e656564656420746f2063726561746520616e206f70656e696e672e30526577617264506572696f6410104a38000004d420446566696e65732074686520706572696f6420657665727920776f726b65722067657473207061696420696e20626c6f636b732e505374616b696e6748616e646c65724c6f636b496425042077672d666f72756d0464205374616b696e672068616e646c6572206c6f636b2069642e01a509204c53746f72616765576f726b696e6747726f75700154496e7374616e636532576f726b696e6747726f757028344e6578744f70656e696e67496401002820000000000000000004ac204e657874206964656e7469666965722076616c756520666f72206e6577206a6f62206f70656e696e672e2c4f70656e696e674279496401010402289909290101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000480204d617073206964656e74696669657220746f206a6f62206f70656e696e672e44416374697665576f726b6572436f756e740100101000000000046420436f756e74206f662061637469766520776f726b6572732e3c4170706c69636174696f6e4279496400010402289d09040004c8204d617073206964656e74696669657220746f20776f726b6572206170706c69636174696f6e206f6e206f70656e696e672e444e6578744170706c69636174696f6e496401002820000000000000000004c8204e657874206964656e7469666965722076616c756520666f72206e657720776f726b6572206170706c69636174696f6e2e304e657874576f726b657249640100282000000000000000000488204e657874206964656e74696669657220666f722061206e657720776f726b65722e28576f726b6572427949640001040228a109040004a4204d617073206964656e74696669657220746f20636f72726573706f6e64696e6720776f726b65722e2c43757272656e744c656164000028040004502043757272656e742067726f7570206c6561642e18427564676574010018400000000000000000000000000000000004782042756467657420666f722074686520776f726b696e672067726f75702e38537461747573546578744861736801002c800000000000000000000000000000000000000000000000000000000000000000044820537461747573207465787420686173682e01710601910318504d6178576f726b65724e756d6265724c696d697410101e0000000838204578706f72747320636f6e73749c204d61782073696d756c74616e656f75732061637469766520776f726b6572206e756d6265722e5c4d696e556e7374616b696e67506572696f644c696d697410100065040004ac20446566696e6573206d696e20756e7374616b696e6720706572696f6420696e207468652067726f75702e5c4d696e696d756d4170706c69636174696f6e5374616b6518404835261a08030000000000000000000004d4204d696e696d756d207374616b6520726571756972656420666f72206170706c79696e6720696e746f20616e206f70656e696e672e484c65616465724f70656e696e675374616b651840680abf82280f00000000000000000000048c205374616b65206e656564656420746f2063726561746520616e206f70656e696e672e30526577617264506572696f6410105438000004d420446566696e65732074686520706572696f6420657665727920776f726b65722067657473207061696420696e20626c6f636b732e505374616b696e6748616e646c65724c6f636b496425042077672d73746f72670464205374616b696e672068616e646c6572206c6f636b2069642e01a909214c436f6e74656e74576f726b696e6747726f75700154496e7374616e636533576f726b696e6747726f757028344e6578744f70656e696e67496401002820000000000000000004ac204e657874206964656e7469666965722076616c756520666f72206e6577206a6f62206f70656e696e672e2c4f70656e696e674279496401010402289909290101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000480204d617073206964656e74696669657220746f206a6f62206f70656e696e672e44416374697665576f726b6572436f756e740100101000000000046420436f756e74206f662061637469766520776f726b6572732e3c4170706c69636174696f6e4279496400010402289d09040004c8204d617073206964656e74696669657220746f20776f726b6572206170706c69636174696f6e206f6e206f70656e696e672e444e6578744170706c69636174696f6e496401002820000000000000000004c8204e657874206964656e7469666965722076616c756520666f72206e657720776f726b6572206170706c69636174696f6e2e304e657874576f726b657249640100282000000000000000000488204e657874206964656e74696669657220666f722061206e657720776f726b65722e28576f726b6572427949640001040228a109040004a4204d617073206964656e74696669657220746f20636f72726573706f6e64696e6720776f726b65722e2c43757272656e744c656164000028040004502043757272656e742067726f7570206c6561642e18427564676574010018400000000000000000000000000000000004782042756467657420666f722074686520776f726b696e672067726f75702e38537461747573546578744861736801002c800000000000000000000000000000000000000000000000000000000000000000044820537461747573207465787420686173682e01750601990318504d6178576f726b65724e756d6265724c696d697410101e0000000838204578706f72747320636f6e73749c204d61782073696d756c74616e656f75732061637469766520776f726b6572206e756d6265722e5c4d696e556e7374616b696e67506572696f644c696d697410100065040004ac20446566696e6573206d696e20756e7374616b696e6720706572696f6420696e207468652067726f75702e5c4d696e696d756d4170706c69636174696f6e5374616b6518404835261a08030000000000000000000004d4204d696e696d756d207374616b6520726571756972656420666f72206170706c79696e6720696e746f20616e206f70656e696e672e484c65616465724f70656e696e675374616b651840680abf82280f00000000000000000000048c205374616b65206e656564656420746f2063726561746520616e206f70656e696e672e30526577617264506572696f6410105e38000004d420446566696e65732074686520706572696f6420657665727920776f726b65722067657473207061696420696e20626c6f636b732e505374616b696e6748616e646c65724c6f636b496425042077672d636f6e74740464205374616b696e672068616e646c6572206c6f636b2069642e01ad09226c4f7065726174696f6e73576f726b696e6747726f7570416c7068610154496e7374616e636534576f726b696e6747726f757028344e6578744f70656e696e67496401002820000000000000000004ac204e657874206964656e7469666965722076616c756520666f72206e6577206a6f62206f70656e696e672e2c4f70656e696e674279496401010402289909290101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000480204d617073206964656e74696669657220746f206a6f62206f70656e696e672e44416374697665576f726b6572436f756e740100101000000000046420436f756e74206f662061637469766520776f726b6572732e3c4170706c69636174696f6e4279496400010402289d09040004c8204d617073206964656e74696669657220746f20776f726b6572206170706c69636174696f6e206f6e206f70656e696e672e444e6578744170706c69636174696f6e496401002820000000000000000004c8204e657874206964656e7469666965722076616c756520666f72206e657720776f726b6572206170706c69636174696f6e2e304e657874576f726b657249640100282000000000000000000488204e657874206964656e74696669657220666f722061206e657720776f726b65722e28576f726b6572427949640001040228a109040004a4204d617073206964656e74696669657220746f20636f72726573706f6e64696e6720776f726b65722e2c43757272656e744c656164000028040004502043757272656e742067726f7570206c6561642e18427564676574010018400000000000000000000000000000000004782042756467657420666f722074686520776f726b696e672067726f75702e38537461747573546578744861736801002c800000000000000000000000000000000000000000000000000000000000000000044820537461747573207465787420686173682e01790601a10318504d6178576f726b65724e756d6265724c696d697410101e0000000838204578706f72747320636f6e73749c204d61782073696d756c74616e656f75732061637469766520776f726b6572206e756d6265722e5c4d696e556e7374616b696e67506572696f644c696d697410100065040004ac20446566696e6573206d696e20756e7374616b696e6720706572696f6420696e207468652067726f75702e5c4d696e696d756d4170706c69636174696f6e5374616b6518404835261a08030000000000000000000004d4204d696e696d756d207374616b6520726571756972656420666f72206170706c79696e6720696e746f20616e206f70656e696e672e484c65616465724f70656e696e675374616b651840680abf82280f00000000000000000000048c205374616b65206e656564656420746f2063726561746520616e206f70656e696e672e30526577617264506572696f6410107c38000004d420446566696e65732074686520706572696f6420657665727920776f726b65722067657473207061696420696e20626c6f636b732e505374616b696e6748616e646c65724c6f636b496425042077672d6f706572610464205374616b696e672068616e646c6572206c6f636b2069642e01b109233c417070576f726b696e6747726f75700154496e7374616e636535576f726b696e6747726f757028344e6578744f70656e696e67496401002820000000000000000004ac204e657874206964656e7469666965722076616c756520666f72206e6577206a6f62206f70656e696e672e2c4f70656e696e674279496401010402289909290101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000480204d617073206964656e74696669657220746f206a6f62206f70656e696e672e44416374697665576f726b6572436f756e740100101000000000046420436f756e74206f662061637469766520776f726b6572732e3c4170706c69636174696f6e4279496400010402289d09040004c8204d617073206964656e74696669657220746f20776f726b6572206170706c69636174696f6e206f6e206f70656e696e672e444e6578744170706c69636174696f6e496401002820000000000000000004c8204e657874206964656e7469666965722076616c756520666f72206e657720776f726b6572206170706c69636174696f6e2e304e657874576f726b657249640100282000000000000000000488204e657874206964656e74696669657220666f722061206e657720776f726b65722e28576f726b6572427949640001040228a109040004a4204d617073206964656e74696669657220746f20636f72726573706f6e64696e6720776f726b65722e2c43757272656e744c656164000028040004502043757272656e742067726f7570206c6561642e18427564676574010018400000000000000000000000000000000004782042756467657420666f722074686520776f726b696e672067726f75702e38537461747573546578744861736801002c800000000000000000000000000000000000000000000000000000000000000000044820537461747573207465787420686173682e017d0601a90318504d6178576f726b65724e756d6265724c696d697410101e0000000838204578706f72747320636f6e73749c204d61782073696d756c74616e656f75732061637469766520776f726b6572206e756d6265722e5c4d696e556e7374616b696e67506572696f644c696d697410100065040004ac20446566696e6573206d696e20756e7374616b696e6720706572696f6420696e207468652067726f75702e5c4d696e696d756d4170706c69636174696f6e5374616b6518404835261a08030000000000000000000004d4204d696e696d756d207374616b6520726571756972656420666f72206170706c79696e6720696e746f20616e206f70656e696e672e484c65616465724f70656e696e675374616b651840680abf82280f00000000000000000000048c205374616b65206e656564656420746f2063726561746520616e206f70656e696e672e30526577617264506572696f6410107238000004d420446566696e65732074686520706572696f6420657665727920776f726b65722067657473207061696420696e20626c6f636b732e505374616b696e6748616e646c65724c6f636b496425042077672d6170706c690464205374616b696e672068616e646c6572206c6f636b2069642e01b50924584d656d62657273686970576f726b696e6747726f75700154496e7374616e636536576f726b696e6747726f757028344e6578744f70656e696e67496401002820000000000000000004ac204e657874206964656e7469666965722076616c756520666f72206e6577206a6f62206f70656e696e672e2c4f70656e696e674279496401010402289909290101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000480204d617073206964656e74696669657220746f206a6f62206f70656e696e672e44416374697665576f726b6572436f756e740100101000000000046420436f756e74206f662061637469766520776f726b6572732e3c4170706c69636174696f6e4279496400010402289d09040004c8204d617073206964656e74696669657220746f20776f726b6572206170706c69636174696f6e206f6e206f70656e696e672e444e6578744170706c69636174696f6e496401002820000000000000000004c8204e657874206964656e7469666965722076616c756520666f72206e657720776f726b6572206170706c69636174696f6e2e304e657874576f726b657249640100282000000000000000000488204e657874206964656e74696669657220666f722061206e657720776f726b65722e28576f726b6572427949640001040228a109040004a4204d617073206964656e74696669657220746f20636f72726573706f6e64696e6720776f726b65722e2c43757272656e744c656164000028040004502043757272656e742067726f7570206c6561642e18427564676574010018400000000000000000000000000000000004782042756467657420666f722074686520776f726b696e672067726f75702e38537461747573546578744861736801002c800000000000000000000000000000000000000000000000000000000000000000044820537461747573207465787420686173682e01810601b10318504d6178576f726b65724e756d6265724c696d697410101e0000000838204578706f72747320636f6e73749c204d61782073696d756c74616e656f75732061637469766520776f726b6572206e756d6265722e5c4d696e556e7374616b696e67506572696f644c696d697410100065040004ac20446566696e6573206d696e20756e7374616b696e6720706572696f6420696e207468652067726f75702e5c4d696e696d756d4170706c69636174696f6e5374616b6518404835261a08030000000000000000000004d4204d696e696d756d207374616b6520726571756972656420666f72206170706c79696e6720696e746f20616e206f70656e696e672e484c65616465724f70656e696e675374616b651840680abf82280f00000000000000000000048c205374616b65206e656564656420746f2063726561746520616e206f70656e696e672e30526577617264506572696f6410106838000004d420446566696e65732074686520706572696f6420657665727920776f726b65722067657473207061696420696e20626c6f636b732e505374616b696e6748616e646c65724c6f636b496425042077672d6d656d62720464205374616b696e672068616e646c6572206c6f636b2069642e01b90925684f7065726174696f6e73576f726b696e6747726f7570426574610154496e7374616e636537576f726b696e6747726f757028344e6578744f70656e696e67496401002820000000000000000004ac204e657874206964656e7469666965722076616c756520666f72206e6577206a6f62206f70656e696e672e2c4f70656e696e674279496401010402289909290101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000480204d617073206964656e74696669657220746f206a6f62206f70656e696e672e44416374697665576f726b6572436f756e740100101000000000046420436f756e74206f662061637469766520776f726b6572732e3c4170706c69636174696f6e4279496400010402289d09040004c8204d617073206964656e74696669657220746f20776f726b6572206170706c69636174696f6e206f6e206f70656e696e672e444e6578744170706c69636174696f6e496401002820000000000000000004c8204e657874206964656e7469666965722076616c756520666f72206e657720776f726b6572206170706c69636174696f6e2e304e657874576f726b657249640100282000000000000000000488204e657874206964656e74696669657220666f722061206e657720776f726b65722e28576f726b6572427949640001040228a109040004a4204d617073206964656e74696669657220746f20636f72726573706f6e64696e6720776f726b65722e2c43757272656e744c656164000028040004502043757272656e742067726f7570206c6561642e18427564676574010018400000000000000000000000000000000004782042756467657420666f722074686520776f726b696e672067726f75702e38537461747573546578744861736801002c800000000000000000000000000000000000000000000000000000000000000000044820537461747573207465787420686173682e01850601b90318504d6178576f726b65724e756d6265724c696d697410101e0000000838204578706f72747320636f6e73749c204d61782073696d756c74616e656f75732061637469766520776f726b6572206e756d6265722e5c4d696e556e7374616b696e67506572696f644c696d697410100065040004ac20446566696e6573206d696e20756e7374616b696e6720706572696f6420696e207468652067726f75702e5c4d696e696d756d4170706c69636174696f6e5374616b6518404835261a08030000000000000000000004d4204d696e696d756d207374616b6520726571756972656420666f72206170706c79696e6720696e746f20616e206f70656e696e672e484c65616465724f70656e696e675374616b651840680abf82280f00000000000000000000048c205374616b65206e656564656420746f2063726561746520616e206f70656e696e672e30526577617264506572696f6410108638000004d420446566696e65732074686520706572696f6420657665727920776f726b65722067657473207061696420696e20626c6f636b732e505374616b696e6748616e646c65724c6f636b496425042077672d6f706572620464205374616b696e672068616e646c6572206c6f636b2069642e01bd09266c4f7065726174696f6e73576f726b696e6747726f757047616d6d610154496e7374616e636538576f726b696e6747726f757028344e6578744f70656e696e67496401002820000000000000000004ac204e657874206964656e7469666965722076616c756520666f72206e6577206a6f62206f70656e696e672e2c4f70656e696e674279496401010402289909290101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000480204d617073206964656e74696669657220746f206a6f62206f70656e696e672e44416374697665576f726b6572436f756e740100101000000000046420436f756e74206f662061637469766520776f726b6572732e3c4170706c69636174696f6e4279496400010402289d09040004c8204d617073206964656e74696669657220746f20776f726b6572206170706c69636174696f6e206f6e206f70656e696e672e444e6578744170706c69636174696f6e496401002820000000000000000004c8204e657874206964656e7469666965722076616c756520666f72206e657720776f726b6572206170706c69636174696f6e2e304e657874576f726b657249640100282000000000000000000488204e657874206964656e74696669657220666f722061206e657720776f726b65722e28576f726b6572427949640001040228a109040004a4204d617073206964656e74696669657220746f20636f72726573706f6e64696e6720776f726b65722e2c43757272656e744c656164000028040004502043757272656e742067726f7570206c6561642e18427564676574010018400000000000000000000000000000000004782042756467657420666f722074686520776f726b696e672067726f75702e38537461747573546578744861736801002c800000000000000000000000000000000000000000000000000000000000000000044820537461747573207465787420686173682e01890601c10318504d6178576f726b65724e756d6265724c696d697410101e0000000838204578706f72747320636f6e73749c204d61782073696d756c74616e656f75732061637469766520776f726b6572206e756d6265722e5c4d696e556e7374616b696e67506572696f644c696d697410100065040004ac20446566696e6573206d696e20756e7374616b696e6720706572696f6420696e207468652067726f75702e5c4d696e696d756d4170706c69636174696f6e5374616b6518404835261a08030000000000000000000004d4204d696e696d756d207374616b6520726571756972656420666f72206170706c79696e6720696e746f20616e206f70656e696e672e484c65616465724f70656e696e675374616b651840680abf82280f00000000000000000000048c205374616b65206e656564656420746f2063726561746520616e206f70656e696e672e30526577617264506572696f6410109038000004d420446566696e65732074686520706572696f6420657665727920776f726b65722067657473207061696420696e20626c6f636b732e505374616b696e6748616e646c65724c6f636b496425042077672d6f706572670464205374616b696e672068616e646c6572206c6f636b2069642e01c1092760446973747269627574696f6e576f726b696e6747726f75700154496e7374616e636539576f726b696e6747726f757028344e6578744f70656e696e67496401002820000000000000000004ac204e657874206964656e7469666965722076616c756520666f72206e6577206a6f62206f70656e696e672e2c4f70656e696e674279496401010402289909290101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000480204d617073206964656e74696669657220746f206a6f62206f70656e696e672e44416374697665576f726b6572436f756e740100101000000000046420436f756e74206f662061637469766520776f726b6572732e3c4170706c69636174696f6e4279496400010402289d09040004c8204d617073206964656e74696669657220746f20776f726b6572206170706c69636174696f6e206f6e206f70656e696e672e444e6578744170706c69636174696f6e496401002820000000000000000004c8204e657874206964656e7469666965722076616c756520666f72206e657720776f726b6572206170706c69636174696f6e2e304e657874576f726b657249640100282000000000000000000488204e657874206964656e74696669657220666f722061206e657720776f726b65722e28576f726b6572427949640001040228a109040004a4204d617073206964656e74696669657220746f20636f72726573706f6e64696e6720776f726b65722e2c43757272656e744c656164000028040004502043757272656e742067726f7570206c6561642e18427564676574010018400000000000000000000000000000000004782042756467657420666f722074686520776f726b696e672067726f75702e38537461747573546578744861736801002c800000000000000000000000000000000000000000000000000000000000000000044820537461747573207465787420686173682e018d0601c90318504d6178576f726b65724e756d6265724c696d697410101e0000000838204578706f72747320636f6e73749c204d61782073696d756c74616e656f75732061637469766520776f726b6572206e756d6265722e5c4d696e556e7374616b696e67506572696f644c696d697410100065040004ac20446566696e6573206d696e20756e7374616b696e6720706572696f6420696e207468652067726f75702e5c4d696e696d756d4170706c69636174696f6e5374616b6518404835261a08030000000000000000000004d4204d696e696d756d207374616b6520726571756972656420666f72206170706c79696e6720696e746f20616e206f70656e696e672e484c65616465724f70656e696e675374616b651840680abf82280f00000000000000000000048c205374616b65206e656564656420746f2063726561746520616e206f70656e696e672e30526577617264506572696f6410109a38000004d420446566696e65732074686520706572696f6420657665727920776f726b65722067657473207061696420696e20626c6f636b732e505374616b696e6748616e646c65724c6f636b496425042077672d64697374720464205374616b696e672068616e646c6572206c6f636b2069642e01c50928c909042048436865636b4e6f6e5a65726f53656e646572dd097c40436865636b5370656356657273696f6ee1091038436865636b547856657273696f6ee5091030436865636b47656e65736973e9092c38436865636b4d6f7274616c697479ed092c28436865636b4e6f6e6365f5097c2c436865636b576569676874f9097c604368617267655472616e73616374696f6e5061796d656e74fd097c010a","id":"1"} \ No newline at end of file diff --git a/query-node/chain-metadata/2002.json b/query-node/chain-metadata/2002.json new file mode 100644 index 0000000000..2269ed0b5f --- /dev/null +++ b/query-node/chain-metadata/2002.json @@ -0,0 +1 @@ +{"jsonrpc":"2.0","result":"0x6d6574610e050a000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f0814496e64657801102c4163636f756e74446174610114001401146e6f6e6365100114496e646578000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e7444617461000010000005050014083c70616c6c65745f62616c616e6365732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500012c6d6973635f66726f7a656e18011c42616c616e63650001286665655f66726f7a656e18011c42616c616e636500001800000507001c0c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540120000c01186e6f726d616c2001045400012c6f7065726174696f6e616c200104540001246d616e6461746f7279200104540000200c2873705f77656967687473247765696768745f76321857656967687400000801207265665f74696d6524010c75363400012870726f6f665f73697a6524010c75363400002400000628002800000506002c083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d000030000002080034102873705f72756e74696d651c67656e65726963186469676573741844696765737400000401106c6f677338013c5665633c4469676573744974656d3e0000380000023c003c102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0001142850726552756e74696d650800400144436f6e73656e737573456e67696e654964000030011c5665633c75383e00060024436f6e73656e7375730800400144436f6e73656e737573456e67696e654964000030011c5665633c75383e000400105365616c0800400144436f6e73656e737573456e67696e654964000030011c5665633c75383e000500144f74686572040030011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e745570646174656400080000400000030400000008004400000248004808306672616d655f73797374656d2c4576656e745265636f7264080445014c0454012c000c01147068617365d103011450686173650001146576656e744c010445000118746f70696373d50301185665633c543e00004c08586a6f7973747265616d5f6e6f64655f72756e74696d653052756e74696d654576656e7400018c1853797374656d04005001706672616d655f73797374656d3a3a4576656e743c52756e74696d653e0000001c5574696c69747904007401607375627374726174655f7574696c6974793a3a4576656e740001002042616c616e636573040080017c70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e000500485472616e73616374696f6e5061796d656e7404008801a870616c6c65745f7472616e73616374696f6e5f7061796d656e743a3a4576656e743c52756e74696d653e00060068456c656374696f6e50726f76696465724d756c7469506861736504008c01d070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173653a3a4576656e743c52756e74696d653e0007001c5374616b696e670400a8017870616c6c65745f7374616b696e673a3a4576656e743c52756e74696d653e0008001c53657373696f6e0400bc015470616c6c65745f73657373696f6e3a3a4576656e740009001c4772616e6470610400c0015470616c6c65745f6772616e6470613a3a4576656e74000b0020496d4f6e6c696e650400d4018070616c6c65745f696d5f6f6e6c696e653a3a4576656e743c52756e74696d653e000d00204f6666656e6365730400f8015870616c6c65745f6f6666656e6365733a3a4576656e74000e0020426167734c6973740400010101f470616c6c65745f626167735f6c6973743a3a4576656e743c52756e74696d652c2070616c6c65745f626167735f6c6973743a3a496e7374616e6365313e0010001c56657374696e6704000501017870616c6c65745f76657374696e673a3a4576656e743c52756e74696d653e001100204d756c746973696704000901017c70616c6c65745f6d756c74697369673a3a4576656e743c52756e74696d653e0012001c436f756e63696c04001101015c636f756e63696c3a3a4576656e743c52756e74696d653e001300285265666572656e64756d0400190101c47265666572656e64756d3a3a4576656e743c52756e74696d652c207265666572656e64756d3a3a496e7374616e6365313e0014001c4d656d626572730400290101686d656d626572736869703a3a4576656e743c52756e74696d653e00150014466f72756d040051010154666f72756d3a3a4576656e743c52756e74696d653e00160030436f6e737469747574696f6e04006d01018c70616c6c65745f636f6e737469747574696f6e3a3a4576656e743c52756e74696d653e00170018426f756e7479040071010158626f756e74793a3a4576656e743c52756e74696d653e001800404a6f7973747265616d5574696c6974790400950101846a6f7973747265616d5f7574696c6974793a3a4576656e743c52756e74696d653e0019001c436f6e74656e740400a101015c636f6e74656e743a3a4576656e743c52756e74696d653e001a001c53746f7261676504008d02015c73746f726167653a3a4576656e743c52756e74696d653e001b003050726f6a656374546f6b656e0400c102017470726f6a6563745f746f6b656e3a3a4576656e743c52756e74696d653e001c003c50726f706f73616c73456e67696e6504002903018070726f706f73616c735f656e67696e653a3a4576656e743c52756e74696d653e001d004c50726f706f73616c7344697363757373696f6e04004103019070726f706f73616c735f64697363757373696f6e3a3a4576656e743c52756e74696d653e001e003850726f706f73616c73436f64657804004903017c70726f706f73616c735f636f6465783a3a4576656e743c52756e74696d653e001f0044466f72756d576f726b696e6747726f757004006d0301dc776f726b696e675f67726f75703a3a4576656e743c52756e74696d652c20776f726b696e675f67726f75703a3a496e7374616e6365313e0020004c53746f72616765576f726b696e6747726f75700400910301dc776f726b696e675f67726f75703a3a4576656e743c52756e74696d652c20776f726b696e675f67726f75703a3a496e7374616e6365323e0021004c436f6e74656e74576f726b696e6747726f75700400990301dc776f726b696e675f67726f75703a3a4576656e743c52756e74696d652c20776f726b696e675f67726f75703a3a496e7374616e6365333e0022006c4f7065726174696f6e73576f726b696e6747726f7570416c7068610400a10301dc776f726b696e675f67726f75703a3a4576656e743c52756e74696d652c20776f726b696e675f67726f75703a3a496e7374616e6365343e0023003c417070576f726b696e6747726f75700400a90301dc776f726b696e675f67726f75703a3a4576656e743c52756e74696d652c20776f726b696e675f67726f75703a3a496e7374616e6365353e002400584d656d62657273686970576f726b696e6747726f75700400b10301dc776f726b696e675f67726f75703a3a4576656e743c52756e74696d652c20776f726b696e675f67726f75703a3a496e7374616e6365363e002500684f7065726174696f6e73576f726b696e6747726f7570426574610400b90301dc776f726b696e675f67726f75703a3a4576656e743c52756e74696d652c20776f726b696e675f67726f75703a3a496e7374616e6365373e0026006c4f7065726174696f6e73576f726b696e6747726f757047616d6d610400c10301dc776f726b696e675f67726f75703a3a4576656e743c52756e74696d652c20776f726b696e675f67726f75703a3a496e7374616e6365383e00270060446973747269627574696f6e576f726b696e6747726f75700400c90301dc776f726b696e675f67726f75703a3a4576656e743c52756e74696d652c20776f726b696e675f67726f75703a3a496e7374616e6365393e00280000500c306672616d655f73797374656d1870616c6c6574144576656e740404540001184045787472696e7369635375636365737304013464697370617463685f696e666f5401304469737061746368496e666f00000490416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656408013864697370617463685f6572726f7260013444697370617463684572726f7200013464697370617463685f696e666f5401304469737061746368496e666f00010450416e2065787472696e736963206661696c65642e2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e7404011c6163636f756e74000130543a3a4163636f756e7449640003046841206e6577206163636f756e742077617320637265617465642e344b696c6c65644163636f756e7404011c6163636f756e74000130543a3a4163636f756e74496400040458416e206163636f756e7420776173207265617065642e2052656d61726b656408011873656e646572000130543a3a4163636f756e744964000110686173682c011c543a3a48617368000504704f6e206f6e2d636861696e2072656d61726b2068617070656e65642e04704576656e7420666f72207468652053797374656d2070616c6c65742e540c346672616d655f737570706f7274206469737061746368304469737061746368496e666f00000c0118776569676874200118576569676874000114636c6173735801344469737061746368436c617373000120706179735f6665655c0110506179730000580c346672616d655f737570706f7274206469737061746368344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f7279000200005c0c346672616d655f737570706f727420646973706174636810506179730001080c596573000000084e6f0001000060082873705f72756e74696d653444697370617463684572726f72000134144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c65040064012c4d6f64756c654572726f7200030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050040546f6f4d616e79436f6e73756d65727300060014546f6b656e0400680128546f6b656e4572726f720007002841726974686d6574696304006c013c41726974686d657469634572726f72000800345472616e73616374696f6e616c04007001485472616e73616374696f6e616c4572726f7200090024457868617573746564000a0028436f7272757074696f6e000b002c556e617661696c61626c65000c000064082873705f72756e74696d652c4d6f64756c654572726f720000080114696e64657808010875380001146572726f7240018c5b75383b204d41585f4d4f44554c455f4552524f525f454e434f4445445f53495a455d000068082873705f72756e74696d6528546f6b656e4572726f7200011c1c4e6f46756e647300000020576f756c644469650001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f72746564000600006c083473705f61726974686d657469633c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f0002000070082873705f72756e74696d65485472616e73616374696f6e616c4572726f72000108304c696d6974526561636865640000001c4e6f4c6179657200010000740c3870616c6c65745f7574696c6974791870616c6c6574144576656e74000118404261746368496e746572727570746564080114696e64657810010c7533320001146572726f7260013444697370617463684572726f7200000855014261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c2061734877656c6c20617320746865206572726f722e384261746368436f6d706c65746564000104c84261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e604261746368436f6d706c65746564576974684572726f7273000204b44261746368206f66206469737061746368657320636f6d706c657465642062757420686173206572726f72732e344974656d436f6d706c657465640003041d01412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206e6f206572726f722e284974656d4661696c65640401146572726f7260013444697370617463684572726f720004041101412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206572726f722e30446973706174636865644173040118726573756c747801384469737061746368526573756c7400050458412063616c6c2077617320646973706174636865642e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a090909780418526573756c74080454017c044501600108084f6b04007c000000000c45727204006000000100007c0000040000800c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001281c456e646f77656408011c6163636f756e74000130543a3a4163636f756e744964000130667265655f62616c616e6365180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f737408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742c78726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e736665720c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2842616c616e63655365740c010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e63650001207265736572766564180128543a3a42616c616e636500030468412062616c616e6365207761732073657420627920726f6f742e20526573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e726573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000504e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656410011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014864657374696e6174696f6e5f7374617475738401185374617475730006084d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652e1c4465706f73697408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000704d8536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e20576974686472617708010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008041d01536f6d6520616d6f756e74207761732077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650009040101536f6d6520616d6f756e74207761732072656d6f7665642066726f6d20746865206163636f756e742028652e672e20666f72206d69736265686176696f72292e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a0909098414346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e6365537461747573000108104672656500000020526573657276656400010000880c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741870616c6c6574144576656e74040454000104485472616e73616374696f6e466565506169640c010c77686f000130543a3a4163636f756e74496400012861637475616c5f66656518013042616c616e63654f663c543e00010c74697018013042616c616e63654f663c543e000008590141207472616e73616374696f6e20666565206061637475616c5f666565602c206f662077686963682060746970602077617320616464656420746f20746865206d696e696d756d20696e636c7573696f6e206665652c5c686173206265656e2070616964206279206077686f602e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a0909098c0c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173651870616c6c6574144576656e7404045400011838536f6c7574696f6e53746f7265640c011c636f6d7075746590013c456c656374696f6e436f6d707574650001186f726967696e9401504f7074696f6e3c543a3a4163636f756e7449643e000130707265765f656a6563746564980110626f6f6c00001cb44120736f6c7574696f6e207761732073746f72656420776974682074686520676976656e20636f6d707574652e00510154686520606f726967696e6020696e6469636174657320746865206f726967696e206f662074686520736f6c7574696f6e2e20496620606f726967696e602069732060536f6d65284163636f756e74496429602c55017468652073746f72656420736f6c7574696f6e20776173207375626d6974656420696e20746865207369676e65642070686173652062792061206d696e657220776974682074686520604163636f756e744964602e25014f74686572776973652c2074686520736f6c7574696f6e207761732073746f7265642065697468657220647572696e672074686520756e7369676e6564207068617365206f722062794d0160543a3a466f7263654f726967696e602e205468652060626f6f6c6020697320607472756560207768656e20612070726576696f757320736f6c7574696f6e2077617320656a656374656420746f206d616b6548726f6f6d20666f722074686973206f6e652e44456c656374696f6e46696e616c697a656408011c636f6d7075746590013c456c656374696f6e436f6d7075746500011473636f72659c0134456c656374696f6e53636f7265000104190154686520656c656374696f6e20686173206265656e2066696e616c697a65642c20776974682074686520676976656e20636f6d7075746174696f6e20616e642073636f72652e38456c656374696f6e4661696c656400020c4c416e20656c656374696f6e206661696c65642e0001014e6f74206d7563682063616e20626520736169642061626f757420776869636820636f6d7075746573206661696c656420696e207468652070726f636573732e20526577617264656408011c6163636f756e740001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e74496400011476616c756518013042616c616e63654f663c543e0003042501416e206163636f756e7420686173206265656e20726577617264656420666f72207468656972207369676e6564207375626d697373696f6e206265696e672066696e616c697a65642e1c536c617368656408011c6163636f756e740001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e74496400011476616c756518013042616c616e63654f663c543e0004042101416e206163636f756e7420686173206265656e20736c617368656420666f72207375626d697474696e6720616e20696e76616c6964207369676e6564207375626d697373696f6e2e4450686173655472616e736974696f6e65640c011066726f6da0015450686173653c543a3a426c6f636b4e756d6265723e000108746fa0015450686173653c543a3a426c6f636b4e756d6265723e000114726f756e6410010c753332000504b85468657265207761732061207068617365207472616e736974696f6e20696e206120676976656e20726f756e642e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a09090990089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173653c456c656374696f6e436f6d707574650001141c4f6e436861696e000000185369676e656400010020556e7369676e65640002002046616c6c6261636b00030024456d657267656e6379000400009404184f7074696f6e04045401000108104e6f6e6500000010536f6d6504000000000100009800000500009c084473705f6e706f735f656c656374696f6e7334456c656374696f6e53636f726500000c01346d696e696d616c5f7374616b6518013c457874656e64656442616c616e636500012473756d5f7374616b6518013c457874656e64656442616c616e636500014473756d5f7374616b655f7371756172656418013c457874656e64656442616c616e63650000a0089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173651450686173650408426e011001100c4f6666000000185369676e656400010020556e7369676e65640400a4012828626f6f6c2c20426e2900020024456d657267656e637900030000a400000408981000a8103870616c6c65745f7374616b696e671870616c6c65741870616c6c6574144576656e7404045400013c1c457261506169640c01246572615f696e646578100120457261496e64657800014076616c696461746f725f7061796f757418013042616c616e63654f663c543e00012472656d61696e64657218013042616c616e63654f663c543e000008550154686520657261207061796f757420686173206265656e207365743b207468652066697273742062616c616e6365206973207468652076616c696461746f722d7061796f75743b20746865207365636f6e64206973c07468652072656d61696e6465722066726f6d20746865206d6178696d756d20616d6f756e74206f66207265776172642e2052657761726465640801147374617368000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000104bc546865206e6f6d696e61746f7220686173206265656e207265776172646564206279207468697320616d6f756e742e1c536c61736865640801187374616b6572000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e0002041d0141207374616b6572202876616c696461746f72206f72206e6f6d696e61746f722920686173206265656e20736c61736865642062792074686520676976656e20616d6f756e742e34536c6173685265706f727465640c012476616c696461746f72000130543a3a4163636f756e7449640001206672616374696f6eac011c50657262696c6c000124736c6173685f657261100120457261496e64657800030859014120736c61736820666f722074686520676976656e2076616c696461746f722c20666f722074686520676976656e2070657263656e74616765206f66207468656972207374616b652c2061742074686520676976656e54657261206173206265656e207265706f727465642e684f6c64536c617368696e675265706f727444697363617264656404013473657373696f6e5f696e64657810013053657373696f6e496e6465780004081901416e206f6c6420736c617368696e67207265706f72742066726f6d2061207072696f72206572612077617320646973636172646564206265636175736520697420636f756c64446e6f742062652070726f6365737365642e385374616b657273456c65637465640005048441206e657720736574206f66207374616b6572732077617320656c65637465642e18426f6e6465640801147374617368000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000610d0416e206163636f756e742068617320626f6e646564207468697320616d6f756e742e205c5b73746173682c20616d6f756e745c5d004d014e4f54453a2054686973206576656e74206973206f6e6c7920656d6974746564207768656e2066756e64732061726520626f6e64656420766961206120646973706174636861626c652e204e6f7461626c792c210169742077696c6c206e6f7420626520656d697474656420666f72207374616b696e672072657761726473207768656e20746865792061726520616464656420746f207374616b652e20556e626f6e6465640801147374617368000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e00070490416e206163636f756e742068617320756e626f6e646564207468697320616d6f756e742e2457697468647261776e0801147374617368000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e0008085901416e206163636f756e74206861732063616c6c6564206077697468647261775f756e626f6e6465646020616e642072656d6f76656420756e626f6e64696e67206368756e6b7320776f727468206042616c616e6365606466726f6d2074686520756e6c6f636b696e672071756575652e184b69636b65640801246e6f6d696e61746f72000130543a3a4163636f756e7449640001147374617368000130543a3a4163636f756e744964000904b441206e6f6d696e61746f7220686173206265656e206b69636b65642066726f6d20612076616c696461746f722e545374616b696e67456c656374696f6e4661696c6564000a04ac54686520656c656374696f6e206661696c65642e204e6f206e65772065726120697320706c616e6e65642e1c4368696c6c65640401147374617368000130543a3a4163636f756e744964000b042101416e206163636f756e74206861732073746f707065642070617274696369706174696e672061732065697468657220612076616c696461746f72206f72206e6f6d696e61746f722e345061796f7574537461727465640801246572615f696e646578100120457261496e64657800013c76616c696461746f725f7374617368000130543a3a4163636f756e744964000c0498546865207374616b657273272072657761726473206172652067657474696e6720706169642e4456616c696461746f7250726566735365740801147374617368000130543a3a4163636f756e7449640001147072656673b0013856616c696461746f725072656673000d0498412076616c696461746f72206861732073657420746865697220707265666572656e6365732e20466f7263654572610401106d6f6465b8011c466f7263696e67000e047441206e657720666f72636520657261206d6f646520776173207365742e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a090909ac0c3473705f61726974686d65746963287065725f7468696e67731c50657262696c6c0000040010010c7533320000b0083870616c6c65745f7374616b696e673856616c696461746f7250726566730000080128636f6d6d697373696f6eb4011c50657262696c6c00011c626c6f636b6564980110626f6f6c0000b4000006ac00b8083870616c6c65745f7374616b696e671c466f7263696e67000110284e6f74466f7263696e6700000020466f7263654e657700010024466f7263654e6f6e650002002c466f726365416c7761797300030000bc0c3870616c6c65745f73657373696f6e1870616c6c6574144576656e74000104284e657753657373696f6e04013473657373696f6e5f696e64657810013053657373696f6e496e64657800000839014e65772073657373696f6e206861732068617070656e65642e204e6f746520746861742074686520617267756d656e74206973207468652073657373696f6e20696e6465782c206e6f74207468659c626c6f636b206e756d626572206173207468652074797065206d6967687420737567676573742e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a090909c00c3870616c6c65745f6772616e6470611870616c6c6574144576656e7400010c384e6577417574686f726974696573040134617574686f726974795f736574c40134417574686f726974794c6973740000048c4e657720617574686f726974792073657420686173206265656e206170706c6965642e185061757365640001049843757272656e7420617574686f726974792073657420686173206265656e207061757365642e1c526573756d65640002049c43757272656e7420617574686f726974792073657420686173206265656e20726573756d65642e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a090909c4000002c800c800000408cc2800cc0c4c73705f66696e616c6974795f6772616e6470610c617070185075626c696300000400d0013c656432353531393a3a5075626c69630000d00c1c73705f636f72651c65643235353139185075626c6963000004000401205b75383b2033325d0000d40c4070616c6c65745f696d5f6f6e6c696e651870616c6c6574144576656e7404045400010c444865617274626561745265636569766564040130617574686f726974795f6964d80138543a3a417574686f726974794964000004c041206e657720686561727462656174207761732072656365697665642066726f6d2060417574686f726974794964602e1c416c6c476f6f64000104d041742074686520656e64206f66207468652073657373696f6e2c206e6f206f6666656e63652077617320636f6d6d69747465642e2c536f6d654f66666c696e6504011c6f66666c696e65e0016c5665633c4964656e74696669636174696f6e5475706c653c543e3e000204290141742074686520656e64206f66207468652073657373696f6e2c206174206c65617374206f6e652076616c696461746f722077617320666f756e6420746f206265206f66666c696e652e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a090909d8104070616c6c65745f696d5f6f6e6c696e651c737232353531392c6170705f73723235353139185075626c696300000400dc013c737232353531393a3a5075626c69630000dc0c1c73705f636f72651c73723235353139185075626c6963000004000401205b75383b2033325d0000e0000002e400e40000040800e800e8083870616c6c65745f7374616b696e67204578706f7375726508244163636f756e74496401001c42616c616e63650118000c0114746f74616cec011c42616c616e636500010c6f776eec011c42616c616e63650001186f7468657273f001ac5665633c496e646976696475616c4578706f737572653c4163636f756e7449642c2042616c616e63653e3e0000ec0000061800f0000002f400f4083870616c6c65745f7374616b696e6748496e646976696475616c4578706f7375726508244163636f756e74496401001c42616c616e636501180008010c77686f0001244163636f756e74496400011476616c7565ec011c42616c616e63650000f80c3c70616c6c65745f6f6666656e6365731870616c6c6574144576656e740001041c4f6666656e63650801106b696e64fc01104b696e6400012074696d65736c6f743001384f706171756554696d65536c6f7400000c5101546865726520697320616e206f6666656e6365207265706f72746564206f662074686520676976656e20606b696e64602068617070656e656420617420746865206073657373696f6e5f696e6465786020616e643501286b696e642d7370656369666963292074696d6520736c6f742e2054686973206576656e74206973206e6f74206465706f736974656420666f72206475706c696361746520736c61736865732e4c5c5b6b696e642c2074696d65736c6f745c5d2e04304576656e747320747970652efc00000310000000080001010c4070616c6c65745f626167735f6c6973741870616c6c6574144576656e740804540004490001082052656261676765640c010c77686f000130543a3a4163636f756e74496400011066726f6d280120543a3a53636f7265000108746f280120543a3a53636f7265000004a44d6f76656420616e206163636f756e742066726f6d206f6e652062616720746f20616e6f746865722e3053636f72655570646174656408010c77686f000130543a3a4163636f756e7449640001246e65775f73636f7265280120543a3a53636f7265000104d855706461746564207468652073636f7265206f6620736f6d65206163636f756e7420746f2074686520676976656e20616d6f756e742e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a09090905010c3870616c6c65745f76657374696e671870616c6c6574144576656e740404540001083856657374696e675570646174656408011c6163636f756e74000130543a3a4163636f756e744964000120756e76657374656418013042616c616e63654f663c543e000008510154686520616d6f756e742076657374656420686173206265656e20757064617465642e205468697320636f756c6420696e6469636174652061206368616e676520696e2066756e647320617661696c61626c652e25015468652062616c616e636520676976656e2069732074686520616d6f756e74207768696368206973206c65667420756e7665737465642028616e642074687573206c6f636b6564292e4056657374696e67436f6d706c6574656404011c6163636f756e74000130543a3a4163636f756e7449640001049c416e205c5b6163636f756e745c5d20686173206265636f6d652066756c6c79207665737465642e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a09090909010c3c70616c6c65745f6d756c74697369671870616c6c6574144576656e740404540001102c4e65774d756c74697369670c0124617070726f76696e67000130543a3a4163636f756e7449640001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c486173680000048c41206e6577206d756c7469736967206f7065726174696f6e2068617320626567756e2e404d756c7469736967417070726f76616c100124617070726f76696e67000130543a3a4163636f756e74496400012474696d65706f696e740d01016454696d65706f696e743c543a3a426c6f636b4e756d6265723e0001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c48617368000104c841206d756c7469736967206f7065726174696f6e20686173206265656e20617070726f76656420627920736f6d656f6e652e404d756c74697369674578656375746564140124617070726f76696e67000130543a3a4163636f756e74496400012474696d65706f696e740d01016454696d65706f696e743c543a3a426c6f636b4e756d6265723e0001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c48617368000118726573756c747801384469737061746368526573756c740002049c41206d756c7469736967206f7065726174696f6e20686173206265656e2065786563757465642e444d756c746973696743616e63656c6c656410012863616e63656c6c696e67000130543a3a4163636f756e74496400012474696d65706f696e740d01016454696d65706f696e743c543a3a426c6f636b4e756d6265723e0001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c48617368000304a041206d756c7469736967206f7065726174696f6e20686173206265656e2063616e63656c6c65642e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a0909090d01083c70616c6c65745f6d756c74697369672454696d65706f696e74042c426c6f636b4e756d62657201100008011868656967687410012c426c6f636b4e756d626572000114696e64657810010c75333200001101083870616c6c65745f636f756e63696c205261774576656e74101c42616c616e636501182c426c6f636b4e756d6265720110204d656d62657249640128244163636f756e7449640100014c5c416e6e6f756e63696e67506572696f6453746172746564040010012c426c6f636b4e756d6265720000045c4e657720636f756e63696c2077617320656c65637465644c4e6f74456e6f75676843616e64696461746573040010012c426c6f636b4e756d6265720001041d01416e6e6f756e63696e6720706572696f642063616e27742066696e6973682062656361757365206f6620696e73756666696369656e742063616e6469647461746520636f756e744c566f74696e67506572696f6453746172746564040010010c753332000204a843616e646964617465732061726520616e6e6f756e63656420616e6420766f74696e6720737461727473304e657743616e64696461746510002801204d656d626572496400000001244163636f756e74496400000001244163636f756e744964000018011c42616c616e63650003045c4e65772063616e64696461746520616e6e6f756e636564444e6577436f756e63696c456c65637465640800150101345665633c4d656d62657249643e000010012c426c6f636b4e756d626572000404944e657720636f756e63696c2077617320656c656374656420616e64206170706f696e746564504e6577436f756e63696c4e6f74456c6563746564040010012c426c6f636b4e756d6265720005046c4e657720636f756e63696c20776173206e6f7420656c65637465645443616e6469646163795374616b6552656c6561736504002801204d656d6265724964000604d843616e646964616379207374616b65207468617420776173206e6f206c6f6e676572206e6565646564207761732072656c65617365644443616e646964616379576974686472617704002801204d656d62657249640007049443616e646964617465206861732077697468647261776e206869732063616e6469646163794043616e6469646163794e6f746553657408002801204d656d6265724964000030011c5665633c75383e000804d05468652063616e64696461746520686173207365742061206e6577206e6f746520666f722074686569722063616e646964616379345265776172645061796d656e7410002801204d656d626572496400000001244163636f756e744964000018011c42616c616e6365000018011c42616c616e6365000904c05468652077686f6c652072657761726420776173207061696420746f2074686520636f756e63696c206d656d6265722e4042756467657442616c616e6365536574040018011c42616c616e6365000a049c4275646765742062616c616e636520776173206368616e6765642062792074686520726f6f742e30427564676574526566696c6c040018011c42616c616e6365000b04c44275646765742062616c616e63652077617320696e63726561736564206279206175746f6d6174696320726566696c6c2e4c427564676574526566696c6c506c616e6e6564040010012c426c6f636b4e756d626572000c048c546865206e6578742062756467657420726566696c6c2077617320706c616e6e65642e58427564676574496e6372656d656e7455706461746564040018011c42616c616e6365000d048842756467657420696e6372656d656e7420686173206265656e20757064617465642e58436f756e63696c6f7252657761726455706461746564040018011c42616c616e6365000e0488436f756e63696c6f722072657761726420686173206265656e20757064617465642e345265717565737446756e64656408000001244163636f756e744964000018011c42616c616e6365000f045c5265717565737420686173206265656e2066756e6465644c436f756e63696c42756467657446756e6465640c002801204d656d6265724964000018011c42616c616e6365000030011c5665633c75383e0010146046756e642074686520636f756e63696c206275646765742e1c506172616d733a2c2d204d656d6265722049444c2d20416d6f756e74206f662062616c616e63652c2d20526174696f6e616c6544436f756e63696c6f7252656d61726b656408002801204d656d6265724964000030011c5665633c75383e00110460436f756e63696c6f722072656d61726b206d6573736167654443616e64696461746552656d61726b656408002801204d656d6265724964000030011c5665633c75383e0012046043616e6469646174652072656d61726b206d657373616765085c4576656e747320666f722074686973206d6f64756c652e00150100000228001901084470616c6c65745f7265666572656e64756d205261774576656e741c2c426c6f636b4e756d62657201101c42616c616e636501181048617368012c244163636f756e744964010024566f7465506f7765720118204d656d626572496401280449011d010120445265666572656e64756d53746172746564080010010c753332000010012c426c6f636b4e756d626572000004485265666572656e64756d20737461727465646c5265666572656e64756d53746172746564466f72636566756c6c79080010010c753332000010012c426c6f636b4e756d626572000104485265666572656e64756d20737461727465645452657665616c696e67537461676553746172746564040010012c426c6f636b4e756d6265720002046452657665616c696e672070686173652068617320626567756e485265666572656e64756d46696e69736865640400210101985665633c4f7074696f6e526573756c743c4d656d62657249642c20566f7465506f7765723e3e000304c05265666572656e64756d20656e64656420616e642077696e6e696e67206f7074696f6e207761732073656c656374656420566f7465436173740c000001244163636f756e74496400002c011048617368000018011c42616c616e636500040478557365722063617374206120766f746520696e207265666572656e64756d30566f746552657665616c65640c000001244163636f756e74496400002801204d656d6265724964000030011c5665633c75383e00050458557365722072657665616c65642068697320766f7465345374616b6552656c656173656404000001244163636f756e7449640006045c557365722072656c656173656420686973207374616b655c4163636f756e744f707465644f75744f66566f74696e6704000001244163636f756e744964000704d84163636f756e74207065726d616e656e746c79206f70746564206f7574206f6620766f74696e6720696e207265666572656e64756d2e085c4576656e747320666f722074686973206d6f64756c652e001d01084470616c6c65745f7265666572656e64756d24496e7374616e6365310000000021010000022501002501084470616c6c65745f7265666572656e64756d304f7074696f6e526573756c7408204d656d6265724964012824566f7465506f7765720118000801246f7074696f6e5f69642801204d656d6265724964000128766f74655f706f776572180124566f7465506f77657200002901084470616c6c65745f6d656d62657273686970205261774576656e7420204d656d626572496401281c42616c616e63650118244163636f756e74496401005c4275794d656d62657273686970506172616d6574657273012d011c4163746f724964012868496e766974654d656d62657273686970506172616d6574657273013901584372656174654d656d626572506172616d6574657273013d0160476966744d656d62657273686970506172616d65746572730141010144344d656d626572496e76697465640c002801204d656d6265724964000039010168496e766974654d656d62657273686970506172616d6574657273000018011c42616c616e6365000000404d656d6265727368697047696674656408002801204d656d6265724964000041010160476966744d656d62657273686970506172616d6574657273000100404d656d62657273686970426f756768740c002801204d656d626572496400002d01015c4275794d656d62657273686970506172616d6574657273000010010c753332000200504d656d62657250726f66696c65557064617465640c002801204d656d626572496400003101013c4f7074696f6e3c5665633c75383e3e00003101013c4f7074696f6e3c5665633c75383e3e000300544d656d6265724163636f756e7473557064617465640c002801204d656d626572496400009401444f7074696f6e3c4163636f756e7449643e00009401444f7074696f6e3c4163636f756e7449643e0004007c4d656d626572566572696669636174696f6e537461747573557064617465640c002801204d656d62657249640000980110626f6f6c000028011c4163746f72496400050048526566657272616c437574557064617465640400080108753800060048496e76697465735472616e736665727265640c002801204d656d626572496400002801204d656d6265724964000010010c753332000700584d656d62657273686970507269636555706461746564040018011c42616c616e63650008007c496e697469616c496e7669746174696f6e42616c616e636555706461746564040018011c42616c616e6365000900704c6561646572496e7669746174696f6e51756f746155706461746564040010010c753332000a0074496e697469616c496e7669746174696f6e436f756e7455706461746564040010010c753332000b004c5374616b696e674163636f756e74416464656408000001244163636f756e74496400002801204d656d6265724964000c00545374616b696e674163636f756e7452656d6f76656408000001244163636f756e74496400002801204d656d6265724964000d005c5374616b696e674163636f756e74436f6e6669726d656408000001244163636f756e74496400002801204d656d6265724964000e00384d656d62657252656d61726b65640c002801204d656d6265724964000030011c5665633c75383e0000490101704f7074696f6e3c284163636f756e7449642c2042616c616e6365293e000f00344d656d626572437265617465640c002801204d656d626572496400003d0101584372656174654d656d626572506172616d6574657273000010010c753332001000085c4576656e747320666f722074686973206d6f64756c652e002d01084470616c6c65745f6d656d626572736869705c4275794d656d62657273686970506172616d657465727308244163636f756e7449640100204d656d6265724964012800140130726f6f745f6163636f756e740001244163636f756e744964000148636f6e74726f6c6c65725f6163636f756e740001244163636f756e74496400011868616e646c653101013c4f7074696f6e3c5665633c75383e3e0001206d6574616461746130011c5665633c75383e00012c72656665727265725f6964350101404f7074696f6e3c4d656d62657249643e0000310104184f7074696f6e04045401300108104e6f6e6500000010536f6d650400300000010000350104184f7074696f6e04045401280108104e6f6e6500000010536f6d6504002800000100003901084470616c6c65745f6d656d6265727368697068496e766974654d656d62657273686970506172616d657465727308244163636f756e7449640100204d656d6265724964012800140148696e766974696e675f6d656d6265725f69642801204d656d6265724964000130726f6f745f6163636f756e740001244163636f756e744964000148636f6e74726f6c6c65725f6163636f756e740001244163636f756e74496400011868616e646c653101013c4f7074696f6e3c5665633c75383e3e0001206d6574616461746130011c5665633c75383e00003d01084470616c6c65745f6d656d62657273686970584372656174654d656d626572506172616d657465727304244163636f756e744964010000140130726f6f745f6163636f756e740001244163636f756e744964000148636f6e74726f6c6c65725f6163636f756e740001244163636f756e74496400011868616e646c6530011c5665633c75383e0001206d6574616461746130011c5665633c75383e00014869735f666f756e64696e675f6d656d626572980110626f6f6c00004101084470616c6c65745f6d656d6265727368697060476966744d656d62657273686970506172616d657465727308244163636f756e74496401001c42616c616e6365011800200130726f6f745f6163636f756e740001244163636f756e744964000148636f6e74726f6c6c65725f6163636f756e740001244163636f756e74496400011868616e646c653101013c4f7074696f6e3c5665633c75383e3e0001206d6574616461746130011c5665633c75383e0001646372656469745f636f6e74726f6c6c65725f6163636f756e7418011c42616c616e63650001a06170706c795f636f6e74726f6c6c65725f6163636f756e745f696e7669746174696f6e5f6c6f636b4501013c4f7074696f6e3c42616c616e63653e00014c6372656469745f726f6f745f6163636f756e7418011c42616c616e63650001886170706c795f726f6f745f6163636f756e745f696e7669746174696f6e5f6c6f636b4501013c4f7074696f6e3c42616c616e63653e0000450104184f7074696f6e04045401180108104e6f6e6500000010536f6d650400180000010000490104184f7074696f6e040454014d010108104e6f6e6500000010536f6d6504004d0100000100004d01000004080018005101083070616c6c65745f666f72756d205261774576656e74202843617465676f7279496401282c4d6f64657261746f7249640128205468726561644964012818506f7374496401281048617368012c2c466f72756d55736572496401283c50726976696c656765644163746f7201550138457874656e646564506f7374496401590101443c43617465676f727943726561746564100028012843617465676f727949640000350101484f7074696f6e3c43617465676f727949643e000030011c5665633c75383e000030011c5665633c75383e00000464412063617465676f72792077617320696e74726f64756365647443617465676f7279417263686976616c537461747573557064617465640c0028012843617465676f727949640000980110626f6f6c00005501013c50726976696c656765644163746f72000108e0416e206172686963616c20737461747573206f662063617465676f7279207769746820676976656e2069642077617320757064617465642e1501546865207365636f6e6420617267756d656e74207265666c6563747320746865206e657720617263686976616c20737461747573206f66207468652063617465676f72792e5043617465676f72795469746c65557064617465640c0028012843617465676f7279496400002c01104861736800005501013c50726976696c656765644163746f72000208b841207469746c65206f662063617465676f7279207769746820676976656e2069642077617320757064617465642e0101546865207365636f6e6420617267756d656e74207265666c6563747320746865206e6577207469746c652068617368206f66207468652063617465676f72792e6843617465676f72794465736372697074696f6e557064617465640c0028012843617465676f7279496400002c01104861736800005501013c50726976696c656765644163746f72000308d041206469736372697074696f6e206f662063617465676f7279207769746820676976656e2069642077617320757064617465642e1901546865207365636f6e6420617267756d656e74207265666c6563747320746865206e6577206465736372697074696f6e2068617368206f66207468652063617465676f72792e3c43617465676f727944656c65746564080028012843617465676f7279496400005501013c50726976696c656765644163746f7200040458412063617465676f7279207761732064656c657465643454687265616443726561746564180028012843617465676f72794964000028012054687265616449640000280118506f73744964000028012c466f72756d557365724964000030011c5665633c75383e000030011c5665633c75383e0005088c4120746872656164207769746820676976656e2069642077617320637265617465642ef04120746869726420617267756d656e74207265666c656374732074686520696e697469616c20706f7374206964206f6620746865207468726561642e3c5468726561644d6f6465726174656410002801205468726561644964000030011c5665633c75383e00005501013c50726976696c656765644163746f72000028012843617465676f72794964000604944120746872656164207769746820676976656e20696420776173206d6f646572617465642e3454687265616455706461746564100028012054687265616449640000980110626f6f6c00005501013c50726976696c656765644163746f72000028012843617465676f727949640007088c4120746872656164207769746820676976656e2069642077617320757064617465642e0d01546865207365636f6e6420617267756d656e74207265666c6563747320746865206e657720617263686976616c20737461747573206f6620746865207468726561642e545468726561644d657461646174615570646174656410002801205468726561644964000028012c466f72756d557365724964000028012843617465676f72794964000030011c5665633c75383e0008049c4120746872656164206d6574616461746120676976656e2069642077617320757064617465642e3454687265616444656c6574656410002801205468726561644964000028012c466f72756d557365724964000028012843617465676f727949640000980110626f6f6c000904544120746872656164207761732064656c657465642e2c5468726561644d6f76656410002801205468726561644964000028012843617465676f7279496400005501013c50726976696c656765644163746f72000028012843617465676f72794964000a0488412074687265616420776173206d6f76656420746f206e65772063617465676f727924506f737441646465641800280118506f73744964000028012c466f72756d557365724964000028012843617465676f7279496400002801205468726561644964000030011c5665633c75383e0000980110626f6f6c000b047c506f7374207769746820676976656e2069642077617320637265617465642e34506f73744d6f646572617465641400280118506f73744964000030011c5665633c75383e00005501013c50726976696c656765644163746f72000028012843617465676f7279496400002801205468726561644964000c0484506f73742077697468206769766e6520696420776173206d6f646572617465642e2c506f737444656c657465640c0030011c5665633c75383e000028012c466f72756d55736572496400005d01017842547265654d61703c457874656e646564506f737449642c20626f6f6c3e000d047c506f73742077697468206769766e65206964207761732064656c657465642e3c506f737454657874557064617465641400280118506f73744964000028012c466f72756d557365724964000028012843617465676f7279496400002801205468726561644964000030011c5665633c75383e000e08a0506f7374207769746820676976656e2069642068616420697473207465787420757064617465642e4d01546865207365636f6e6420617267756d656e74207265666c6563747320746865206e756d626572206f6620746f74616c206564697473207768656e20746865207465787420757064617465206f63637572732e6843617465676f7279537469636b795468726561645570646174650c0028012843617465676f7279496400006901014842547265655365743c54687265616449643e00005501013c50726976696c656765644163746f72000f0488537469636b7920746872656164207570646174656420666f722063617465676f72799043617465676f72794d656d626572736869704f664d6f64657261746f72557064617465640c0028012c4d6f64657261746f724964000028012843617465676f727949640000980110626f6f6c0010042501416e206d6f64657261746f72206162696c69747920746f206d6f64657261746520612063617465676f727920616e64206974732073756263617465676f726965732075706461746564085c4576656e747320666f722074686973206d6f64756c652e005501083070616c6c65745f666f72756d3c50726976696c656765644163746f72040454000108104c656164000000244d6f64657261746f7204002801384d6f64657261746f7249643c543e000100005901083070616c6c65745f666f72756d50457874656e646564506f737449644f626a6563740c2843617465676f727949640128205468726561644964012818506f737449640128000c012c63617465676f72795f696428012843617465676f727949640001247468726561645f6964280120546872656164496400011c706f73745f6964280118506f7374496400005d01042042547265654d617008044b015901045601980004006101000000610100000265010065010000040859019800690104204254726565536574040454012800040015010000006d01084c70616c6c65745f636f6e737469747574696f6e205261774576656e74041048617368012c010444436f6e73747574696f6e416d656e64656408002c011048617368000030011c5665633c75383e00001080456d697473206f6e20636f6e737469747574696f6e20616d656e646d656e742e2c506172616d65746572733a602d20636f6e737469747574696f6e207465787420686173684c2d20636f6e737469747574696f6e2074657874085c4576656e747320666f722074686973206d6f64756c652e007101083470616c6c65745f626f756e7479205261774576656e741c20426f756e7479496401281c456e747279496401281c42616c616e63650118204d656d62657249640128244163636f756e744964010060426f756e74794372656174696f6e506172616d6574657273017501384f7261636c654a7564676d656e74018501015c34426f756e7479437265617465640c00280120426f756e74794964000075010160426f756e74794372656174696f6e506172616d6574657273000030011c5665633c75383e000014544120626f756e74792077617320637265617465642e1c506172616d733a2c2d20626f756e7479204944542d206372656174696f6e20706172616d6574657273442d20626f756e7479206d6574616461746150426f756e74794f7261636c6553776974636865641000280120426f756e74794964000079010154426f756e74794163746f723c4d656d62657249643e000079010154426f756e74794163746f723c4d656d62657249643e000079010154426f756e74794163746f723c4d656d62657249643e000118d0426f756e7479204f7261636c652053776974636865642062792063757272656e74206f7261636c65206f7220636f756e63696c2e1c506172616d733a2c2d20626f756e7479204944282d207377697463686572442d2063757272656e745f6f7261636c652c302d206e6577206f7261636c6540426f756e74795465726d696e617465641000280120426f756e74794964000079010154426f756e74794163746f723c4d656d62657249643e000079010154426f756e74794163746f723c4d656d62657249643e000079010154426f756e74794163746f723c4d656d62657249643e0002188c4120626f756e747920776173207465726d696e6174656420627920636f756e63696c2e1c506172616d733a2c2d20626f756e74792049444c2d20626f756e7479207465726d696e61746f72402d20626f756e74792063726561746f723c2d20626f756e7479206f7261636c6530426f756e747946756e6465640c00280120426f756e74794964000079010154426f756e74794163746f723c4d656d62657249643e000018011c42616c616e6365000314b44120626f756e7479207761732066756e6465642062792061206d656d626572206f72206120636f756e63696c2e1c506172616d733a2c2d20626f756e74792049443c2d20626f756e74792066756e646572402d2066756e64696e6720616d6f756e745c426f756e74794d617846756e64696e67526561636865640400280120426f756e7479496400040cbc4120626f756e747920686173207265616368656420697473207461726765742066756e64696e6720616d6f756e742e1c506172616d733a2c2d20626f756e74792049445c426f756e747946756e64696e675769746864726177616c0800280120426f756e74794964000079010154426f756e74794163746f723c4d656d62657249643e000510c041206d656d626572206f72206120636f756e63696c206861732077697468647261776e207468652066756e64696e672e1c506172616d733a2c2d20626f756e74792049443c2d20626f756e74792066756e64657274426f756e747943726561746f724368657272795769746864726177616c0800280120426f756e74794964000079010154426f756e74794163746f723c4d656d62657249643e000610f84120626f756e74792063726561746f72206861732077697468647261776e207468652063686572727920286d656d626572206f7220636f756e63696c292e1c506172616d733a2c2d20626f756e7479204944402d20626f756e74792063726561746f728c426f756e747943726561746f724f7261636c655265776172645769746864726177616c0800280120426f756e74794964000079010154426f756e74794163746f723c4d656d62657249643e00071015014120626f756e74792063726561746f72206861732077697468647261776e20746865206f7261636c652072657761726420286d656d626572206f7220636f756e63696c292e1c506172616d733a2c2d20626f756e7479204944402d20626f756e74792063726561746f7270426f756e74794f7261636c655265776172645769746864726177616c0c00280120426f756e74794964000079010154426f756e74794163746f723c4d656d62657249643e000018011c42616c616e6365000814f441204f7261636c65206861732077697468647261776e20746865206f7261636c652072657761726420286d656d626572206f7220636f756e63696c292e1c506172616d733a2c2d20626f756e7479204944402d20626f756e74792063726561746f723c2d204f7261636c652052657761726434426f756e747952656d6f7665640400280120426f756e7479496400090c544120626f756e7479207761732072656d6f7665642e1c506172616d733a2c2d20626f756e747920494448576f726b456e747279416e6e6f756e6365641400280120426f756e74794964000028011c456e747279496400002801204d656d626572496400000001244163636f756e744964000030011c5665633c75383e000a1c64576f726b20656e7472792077617320616e6e6f756e6365642e1c506172616d733a2c2d20626f756e7479204944482d206372656174656420656e7472792049444c2d20656e7472616e74206d656d626572204944502d207374616b696e67206163636f756e74204944482d20776f726b206465736372697074696f6e34576f726b5375626d69747465641000280120426f756e74794964000028011c456e747279496400002801204d656d6265724964000030011c5665633c75383e000b18305375626d697420776f726b2e1c506172616d733a2c2d20626f756e7479204944482d206372656174656420656e7472792049444c2d20656e7472616e74206d656d626572204944a82d20776f726b206461746120286465736372697074696f6e2c2055524c2c20424c4f422c206574632e295c4f7261636c654a7564676d656e745375626d69747465641000280120426f756e74794964000079010154426f756e74794163746f723c4d656d62657249643e0000850101384f7261636c654a7564676d656e74000030011c5665633c75383e000c185c5375626d6974206f7261636c65206a7564676d656e742e1c506172616d733a2c2d20626f756e7479204944202d206f7261636c653c2d206a7564676d656e7420646174612c2d20726174696f6e616c6564576f726b456e7472616e7446756e647357697468647261776e0c00280120426f756e74794964000028011c456e747279496400002801204d656d6265724964000d145c576f726b20656e7472792077617320736c61736865642e1c506172616d733a2c2d20626f756e7479204944282d20656e7472792049444c2d20656e7472616e74206d656d62657220494464426f756e7479436f6e7472696275746f7252656d61726b65640c0079010154426f756e74794163746f723c4d656d62657249643e0000280120426f756e74794964000030011c5665633c75383e000e14a0426f756e747920636f6e7472696275746f72206d6164652061206d6573736167652072656d61726b1c506172616d733a342d20636f6e7472696275746f722c2d20626f756e7479206964242d206d65737361676550426f756e74794f7261636c6552656d61726b65640c0079010154426f756e74794163746f723c4d656d62657249643e0000280120426f756e74794964000030011c5665633c75383e000f148c426f756e7479206f7261636c65206d6164652061206d6573736167652072656d61726b1c506172616d733a202d206f7261636c652c2d20626f756e7479206964242d206d65737361676554426f756e7479456e7472616e7452656d61726b656410002801204d656d62657249640000280120426f756e74794964000028011c456e7472794964000030011c5665633c75383e00101890426f756e747920656e7472616e74206d6164652061206d6573736167652072656d61726b1c506172616d733a302d20656e7472616e745f69642c2d20626f756e7479206964282d20656e747279206964242d206d65737361676554426f756e747943726561746f7252656d61726b65640c0079010154426f756e74794163746f723c4d656d62657249643e0000280120426f756e74794964000030011c5665633c75383e00111490426f756e74792063726561746f72206d6164652061206d6573736167652072656d61726b1c506172616d733a242d2063726561746f722c2d20626f756e7479206964242d206d65737361676564576f726b5375626d697373696f6e506572696f64456e6465640800280120426f756e74794964000079010154426f756e74794163746f723c4d656d62657249643e0012105c576f726b20656e7472792077617320736c61736865642e1c506172616d733a2c2d20626f756e7479204944442d206f7261636c65202863616c6c65722960576f726b456e7472616e745374616b65556e6c6f636b65640c00280120426f756e74794964000028011c456e747279496400000001244163636f756e74496400131468576f726b20656e747279207374616b6520756e6c6f636b65642e1c506172616d733a2c2d20626f756e7479204944282d20656e7472792049443c2d207374616b65206163636f756e745c576f726b456e7472616e745374616b65536c61736865641000280120426f756e74794964000028011c456e747279496400000001244163636f756e744964000018011c42616c616e636500141864576f726b20656e747279207374616b6520736c61736865642e1c506172616d733a2c2d20626f756e7479204944282d20656e7472792049443c2d207374616b65206163636f756e74402d20736c617368656420616d6f756e747446756e6465725374617465426c6f6174426f6e6457697468647261776e0c00280120426f756e74794964000079010154426f756e74794163746f723c4d656d62657249643e000018011c42616c616e63650015141d0141206d656d626572206f72206120636f756e63696c2066756e646572206861732077697468647261776e207468652066756e64657220737461746520626c6f617420626f6e642e1c506172616d733a2c2d20626f756e74792049443c2d20626f756e74792066756e646572802d2066756e64657220537461746520626c6f617420626f6e6420616d6f756e747843726561746f725374617465426c6f6174426f6e6457697468647261776e0c00280120426f756e74794964000079010154426f756e74794163746f723c4d656d62657249643e000018011c42616c616e6365001614250141206d656d626572206f72206120636f756e63696c2063726561746f72206861732077697468647261776e207468652063726561746f7220737461746520626c6f617420626f6e642e1c506172616d733a2c2d20626f756e7479204944402d20626f756e74792063726561746f72842d2043726561746f7220537461746520626c6f617420626f6e6420616d6f756e74085c4576656e747320666f722074686973206d6f64756c652e007501083470616c6c65745f626f756e747940426f756e7479506172616d6574657273101c42616c616e636501182c426c6f636b4e756d6265720110204d656d626572496401285c436c6f736564436f6e747261637457686974656c697374016901001c01186f7261636c6579010154426f756e74794163746f723c4d656d62657249643e000134636f6e74726163745f747970657d0101b84173737572616e6365436f6e7472616374547970653c436c6f736564436f6e747261637457686974656c6973743e00011c63726561746f7279010154426f756e74794163746f723c4d656d62657249643e00011863686572727918011c42616c616e63650001346f7261636c655f72657761726418011c42616c616e6365000134656e7472616e745f7374616b6518011c42616c616e636500013066756e64696e675f747970658101018446756e64696e67547970653c426c6f636b4e756d6265722c2042616c616e63653e00007901083470616c6c65745f626f756e74792c426f756e74794163746f7204204d656d6265724964012801081c436f756e63696c000000184d656d62657204002801204d656d6265724964000100007d01083470616c6c65745f626f756e7479544173737572616e6365436f6e747261637454797065045c436c6f736564436f6e747261637457686974656c6973740169010108104f70656e00000018436c6f73656404006901015c436c6f736564436f6e747261637457686974656c697374000100008101083470616c6c65745f626f756e74792c46756e64696e6754797065082c426c6f636b4e756d62657201101c42616c616e6365011801082450657270657475616c04011874617267657418011c42616c616e63650000001c4c696d6974656408011874617267657418011c42616c616e636500013866756e64696e675f706572696f6410012c426c6f636b4e756d626572000100008501042042547265654d617008044b012804560189010004008d010000008901083470616c6c65745f626f756e74795c4f7261636c65576f726b456e7472794a7564676d656e74041c42616c616e6365011801081857696e6e657204011872657761726418011c42616c616e63650000002052656a6563746564080138736c617368696e675f7368617265ac011c50657262696c6c000150616374696f6e5f6a757374696669636174696f6e30011c5665633c75383e000100008d01000002910100910100000408288901009501086070616c6c65745f6a6f7973747265616d5f7574696c697479205261774576656e74081c42616c616e63650118244163636f756e74496401000110205369676e616c6564040030011c5665633c75383e00000c7841207369676e616c2070726f706f73616c207761732065786563757465641c506172616d733adc2d205369676e616c20676976656e207768656e206372656174696e672074686520636f72726573706f6e64696e672070726f706f73616c3c52756e74696d655570677261646564040030011c5665633c75383e00010c78412072756e74696d652075706772616465207761732065786563757465641c506172616d733a6c2d204e657720636f646520656e636f64656420696e2062797465736455706461746564576f726b696e6747726f75704275646765740c0099010130576f726b696e6747726f7570000018011c42616c616e636500009d01012c42616c616e63654b696e64000218d8416e206055706461746520576f726b696e672047726f757020427564676574602070726f706f73616c207761732065786563757465641c506172616d733ab42d20576f726b696e672067726f757020776869636820627564676574206973206265696e6720757064617465647c2d20416d6f756e74206f662062616c616e6365206265696e67206d6f7665645d012d20456e756d2076617269616e74207769746820706f73697469766520696e6469636174696e672066756e6473206d6f76656420746f72776172647320776f726b696e672067726f757020616e64206e65676174697665c0616e64206e656761746976652066756e6473206d6f76696e672066726f6d2074686520776f726b696e672067726f757030546f6b656e734275726e656408000001244163636f756e744964000018011c42616c616e636500031060416e206163636f756e74206275726e656420746f6b656e731c506172616d733a882d204163636f756e74204964206f6620746865206275726e696e6720746f6b656e73882d2042616c616e6365206275726e65642066726f6d2074686174206163636f756e74085c4576656e747320666f722074686973206d6f64756c652e009901103470616c6c65745f636f6d6d6f6e34776f726b696e675f67726f7570386974657261626c655f656e756d7330576f726b696e6747726f757000012414466f72756d0000001c53746f726167650001001c436f6e74656e740002003c4f7065726174696f6e73416c7068610003000c41707000040030446973747269627574696f6e000500384f7065726174696f6e73426574610006003c4f7065726174696f6e7347616d6d61000700284d656d62657273686970000800009d01083470616c6c65745f636f6d6d6f6e2c42616c616e63654b696e6400010820506f736974697665000000204e6567617469766500010000a101083870616c6c65745f636f6e74656e74205261774576656e746430436f6e74656e744163746f7201a501204d656d626572496401283843757261746f7247726f7570496401282443757261746f72496401281c566964656f49640128244368616e6e656c496401281c4368616e6e656c01a90130446174614f626a6563744964012850456e676c69736841756374696f6e506172616d7301fd01444f70656e41756374696f6e506172616d73010502344f70656e41756374696f6e49640128544e667449737375616e6365506172616d65746572730109021c42616c616e63650118644368616e6e656c4372656174696f6e506172616d65746572730115025c4368616e6e656c557064617465506172616d65746572730141025c566964656f4372656174696f6e506172616d657465727301490254566964656f557064617465506172616d6574657273015102544368616e6e656c50726976696c6567654c6576656c0108704d6f6465726174696f6e5065726d697373696f6e7342794c6576656c015502645472616e73666572436f6d6d69746d656e745769746e657373016d023c50656e64696e675472616e7366657201ed01244163636f756e7449640100785570646174654368616e6e656c5061796f757473506172616d65746572730171021c546f6b656e496401285c4368616e6e656c46756e647344657374696e6174696f6e01850201d84c43757261746f7247726f757043726561746564040028013843757261746f7247726f757049640000007843757261746f7247726f75705065726d697373696f6e7355706461746564080028013843757261746f7247726f757049640000550201704d6f6465726174696f6e5065726d697373696f6e7342794c6576656c0001005443757261746f7247726f7570537461747573536574080028013843757261746f7247726f757049640000980110626f6f6c0002003043757261746f7241646465640c0028013843757261746f7247726f75704964000028012443757261746f7249640000bd01015c4368616e6e656c4167656e745065726d697373696f6e730003003843757261746f7252656d6f766564080028013843757261746f7247726f75704964000028012443757261746f724964000400384368616e6e656c4372656174656410002801244368616e6e656c49640000a901011c4368616e6e656c0000150201644368616e6e656c4372656174696f6e506172616d657465727300000001244163636f756e744964000500384368616e6e656c557064617465641000a5010130436f6e74656e744163746f7200002801244368616e6e656c496400004102015c4368616e6e656c557064617465506172616d657465727300006901015842547265655365743c446174614f626a65637449643e000600704368616e6e656c50726976696c6567654c6576656c5570646174656408002801244368616e6e656c496400000801544368616e6e656c50726976696c6567654c6576656c000700844368616e6e656c5374617465426c6f6174426f6e6456616c756555706461746564040018011c42616c616e63650008007c566964656f5374617465426c6f6174426f6e6456616c756555706461746564040018011c42616c616e6365000900504368616e6e656c41737365747352656d6f7665641000a5010130436f6e74656e744163746f7200002801244368616e6e656c496400006901015842547265655365743c446174614f626a65637449643e0000a901011c4368616e6e656c000a00384368616e6e656c44656c657465640800a5010130436f6e74656e744163746f7200002801244368616e6e656c4964000b00644368616e6e656c44656c6574656442794d6f64657261746f720c00a5010130436f6e74656e744163746f7200002801244368616e6e656c4964000030011c5665633c75383e000c007c4368616e6e656c5669736962696c69747953657442794d6f64657261746f721000a5010130436f6e74656e744163746f7200002801244368616e6e656c49640000980110626f6f6c000030011c5665633c75383e000d009c4368616e6e656c50617573656446656174757265735570646174656442794d6f64657261746f721000a5010130436f6e74656e744163746f7200002801244368616e6e656c49640000d901018042547265655365743c5061757361626c654368616e6e656c466561747572653e000030011c5665633c75383e000e007c4368616e6e656c41737365747344656c6574656442794d6f64657261746f721000a5010130436f6e74656e744163746f7200002801244368616e6e656c496400006901015842547265655365743c446174614f626a65637449643e000030011c5665633c75383e000f00544368616e6e656c46756e647357697468647261776e1000a5010130436f6e74656e744163746f7200002801244368616e6e656c4964000018011c42616c616e636500008502015c4368616e6e656c46756e647344657374696e6174696f6e001000804368616e6e656c526577617264436c61696d6564416e6457697468647261776e1000a5010130436f6e74656e744163746f7200002801244368616e6e656c4964000018011c42616c616e636500008502015c4368616e6e656c46756e647344657374696e6174696f6e00110030566964656f437265617465641400a5010130436f6e74656e744163746f7200002801244368616e6e656c4964000028011c566964656f496400004902015c566964656f4372656174696f6e506172616d657465727300006901015842547265655365743c446174614f626a65637449643e00120030566964656f557064617465641000a5010130436f6e74656e744163746f72000028011c566964656f4964000051020154566964656f557064617465506172616d657465727300006901015842547265655365743c446174614f626a65637449643e00130030566964656f44656c657465640800a5010130436f6e74656e744163746f72000028011c566964656f49640014005c566964656f44656c6574656442794d6f64657261746f720c00a5010130436f6e74656e744163746f72000028011c566964656f4964000030011c5665633c75383e00150074566964656f5669736962696c69747953657442794d6f64657261746f721000a5010130436f6e74656e744163746f72000028011c566964656f49640000980110626f6f6c000030011c5665633c75383e00160074566964656f41737365747344656c6574656442794d6f64657261746f721400a5010130436f6e74656e744163746f72000028011c566964656f496400006901015842547265655365743c446174614f626a65637449643e0000980110626f6f6c000030011c5665633c75383e001700544368616e6e656c5061796f757473557064617465640c00710201785570646174654368616e6e656c5061796f757473506172616d65746572730000350101504f7074696f6e3c446174614f626a65637449643e00000001244163636f756e744964001800504368616e6e656c526577617264557064617465640c0018011c42616c616e6365000018011c42616c616e636500002801244368616e6e656c496400190054456e676c69736841756374696f6e537461727465640c00a5010130436f6e74656e744163746f72000028011c566964656f49640000fd010150456e676c69736841756374696f6e506172616d73001a00484f70656e41756374696f6e537461727465641000a5010130436f6e74656e744163746f72000028011c566964656f49640000050201444f70656e41756374696f6e506172616d7300002801344f70656e41756374696f6e4964001b00244e66744973737565640c00a5010130436f6e74656e744163746f72000028011c566964656f49640000090201544e667449737375616e6365506172616d6574657273001c00304e667444657374726f7965640800a5010130436f6e74656e744163746f72000028011c566964656f4964001d003841756374696f6e4269644d61646510002801204d656d6265724964000028011c566964656f4964000018011c42616c616e63650000350101404f7074696f6e3c4d656d62657249643e001e004841756374696f6e42696443616e63656c656408002801204d656d6265724964000028011c566964656f4964001f003c41756374696f6e43616e63656c65640800a5010130436f6e74656e744163746f72000028011c566964656f496400200054456e676c69736841756374696f6e536574746c65640c002801204d656d626572496400000001244163636f756e744964000028011c566964656f4964002100604269644d616465436f6d706c6574696e6741756374696f6e0c002801204d656d6265724964000028011c566964656f49640000350101404f7074696f6e3c4d656d62657249643e002200584f70656e41756374696f6e42696441636365707465641000a5010130436f6e74656e744163746f72000028011c566964656f496400002801204d656d6265724964000018011c42616c616e6365002300304f6666657253746172746564100028011c566964656f49640000a5010130436f6e74656e744163746f7200002801204d656d626572496400004501013c4f7074696f6e3c42616c616e63653e002400344f666665724163636570746564040028011c566964656f4964002500344f6666657243616e63656c6564080028011c566964656f49640000a5010130436f6e74656e744163746f72002600404e667453656c6c4f726465724d6164650c0028011c566964656f49640000a5010130436f6e74656e744163746f72000018011c42616c616e6365002700244e6674426f75676874080028011c566964656f496400002801204d656d6265724964002800384275794e6f7743616e63656c6564080028011c566964656f49640000a5010130436f6e74656e744163746f72002900484275794e6f775072696365557064617465640c0028011c566964656f49640000a5010130436f6e74656e744163746f72000018011c42616c616e6365002a00844e6674536c696e6765644261636b546f5468654f726967696e616c417274697374080028011c566964656f49640000a5010130436f6e74656e744163746f72002b00504368616e6e656c4f776e657252656d61726b656408002801244368616e6e656c4964000030011c5665633c75383e002c046c4d65746170726f746f636f6c732072656c61746564206576656e74504368616e6e656c4167656e7452656d61726b65640c00a5010130436f6e74656e744163746f7200002801244368616e6e656c4964000030011c5665633c75383e002d00404e66744f776e657252656d61726b65640c00a5010130436f6e74656e744163746f72000028011c566964656f4964000030011c5665633c75383e002e0068496e697469616c697a65644368616e6e656c5472616e736665720c002801244368616e6e656c49640000a5010130436f6e74656e744163746f720000ed01013c50656e64696e675472616e73666572002f005443616e63656c4368616e6e656c5472616e7366657208002801244368616e6e656c49640000a5010130436f6e74656e744163746f720030005c4368616e6e656c5472616e73666572416363657074656408002801244368616e6e656c496400006d0201645472616e73666572436f6d6d69746d656e745769746e65737300310054476c6f62616c4e66744c696d6974557064617465640800890201384e66744c696d6974506572696f64000028010c753634003200584368616e6e656c4e66744c696d6974557064617465641000a5010130436f6e74656e744163746f720000890201384e66744c696d6974506572696f6400002801244368616e6e656c4964000028010c75363400330040546f67676c65644e66744c696d6974730400980110626f6f6c0034004843726561746f72546f6b656e4973737565640c00a5010130436f6e74656e744163746f7200002801244368616e6e656c4964000028011c546f6b656e4964003500085c4576656e747320666f722074686973206d6f64756c652e00a5010c3870616c6c65745f636f6e74656e742c7065726d697373696f6e7330436f6e74656e744163746f720c3843757261746f7247726f7570496401282443757261746f7249640128204d656d62657249640128010c1c43757261746f72080028013843757261746f7247726f75704964000028012443757261746f724964000000184d656d62657204002801204d656d6265724964000100104c65616400020000a9010c3870616c6c65745f636f6e74656e74147479706573344368616e6e656c5265636f72642c204d656d626572496401283843757261746f7247726f7570496401281c42616c616e63650118544368616e6e656c50726976696c6567654c6576656c01082c426c6f636b4e756d62657201101c546f6b656e49640128285472616e7366657249640128404368616e6e656c41737365747353657401ad015c4368616e6e656c436f6c6c61626f7261746f72734d617001b10144506175736564466561747572657353657401d10148526570617961626c65426c6f6174426f6e6401e101003801146f776e6572e50101984368616e6e656c4f776e65723c4d656d62657249642c2043757261746f7247726f757049643e0001286e756d5f766964656f7328010c753634000134636f6c6c61626f7261746f7273b101015c4368616e6e656c436f6c6c61626f7261746f72734d617000016463756d756c61746976655f7265776172645f636c61696d656418011c42616c616e636500013c70726976696c6567655f6c6576656c0801544368616e6e656c50726976696c6567654c6576656c00013c7061757365645f6665617475726573d1010144506175736564466561747572657353657400013c7472616e736665725f737461747573e9010179014368616e6e656c5472616e736665725374617475733c4d656d62657249642c2043757261746f7247726f757049642c2042616c616e63652c205472616e7366657249642c0a4368616e6e656c436f6c6c61626f7261746f72734d61702c3e000130646174615f6f626a65637473ad0101404368616e6e656c41737365747353657400013c6461696c795f6e66745f6c696d6974f501016c4c696d6974506572506572696f643c426c6f636b4e756d6265723e0001407765656b6c795f6e66745f6c696d6974f501016c4c696d6974506572506572696f643c426c6f636b4e756d6265723e0001446461696c795f6e66745f636f756e746572f901015c4e6674436f756e7465723c426c6f636b4e756d6265723e0001487765656b6c795f6e66745f636f756e746572f901015c4e6674436f756e7465723c426c6f636b4e756d6265723e00014063726561746f725f746f6b656e5f69643501013c4f7074696f6e3c546f6b656e49643e0001606368616e6e656c5f73746174655f626c6f61745f626f6e64e1010148526570617961626c65426c6f6174426f6e640000ad010c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401280453000004006901012c42547265655365743c543e0000b1010c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b0128045601b501045300000400c501013842547265654d61703c4b2c20563e0000b5010c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401b901045300000400bd01012c42547265655365743c543e0000b901103870616c6c65745f636f6e74656e74147479706573386974657261626c655f656e756d735c4368616e6e656c416374696f6e5065726d697373696f6e000154545570646174654368616e6e656c4d657461646174610000006c4d616e6167654e6f6e566964656f4368616e6e656c417373657473000100684d616e6167654368616e6e656c436f6c6c61626f7261746f72730002004c557064617465566964656f4d6574616461746100030020416464566964656f000400444d616e616765566964656f4173736574730005003444656c6574654368616e6e656c0006002c44656c657465566964656f0007003c4d616e616765566964656f4e6674730008002c4167656e7452656d61726b0009003c5472616e736665724368616e6e656c000a0048436c61696d4368616e6e656c526577617264000b0068576974686472617746726f6d4368616e6e656c42616c616e6365000c0044497373756543726561746f72546f6b656e000d0068436c61696d43726561746f72546f6b656e506174726f6e616765000e0074496e6974416e644d616e61676543726561746f72546f6b656e53616c65000f006843726561746f72546f6b656e4973737565725472616e73666572001000784d616b6543726561746f72546f6b656e5065726d697373696f6e6c6573730011007c52656475636543726561746f72546f6b656e506174726f6e616765526174650012004c4d616e616765526576656e756553706c6974730013004c4465697373756543726561746f72546f6b656e00140000bd010420425472656553657404045401b901000400c101000000c101000002b90100c501042042547265654d617008044b0128045601b501000400c901000000c901000002cd0100cd010000040828b50100d1010c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401d501045300000400d901012c42547265655365743c543e0000d501143870616c6c65745f636f6e74656e742c7065726d697373696f6e733463757261746f725f67726f7570386974657261626c655f656e756d73585061757361626c654368616e6e656c4665617475726500011c504368616e6e656c46756e64735472616e736665720000003843726561746f72436173686f757400010040566964656f4e667449737375616e636500020034566964656f4372656174696f6e0003002c566964656f557064617465000400344368616e6e656c5570646174650005005043726561746f72546f6b656e49737375616e636500060000d9010420425472656553657404045401d501000400dd01000000dd01000002d50100e1010c3470616c6c65745f636f6d6d6f6e28626c6f61745f626f6e6448526570617961626c65426c6f6174426f6e6408244163636f756e74496401001c42616c616e636501180008015c72657061796d656e745f726573747269637465645f746f9401444f7074696f6e3c4163636f756e7449643e000118616d6f756e7418011c42616c616e63650000e5010c3870616c6c65745f636f6e74656e74147479706573304368616e6e656c4f776e657208204d656d626572496401283843757261746f7247726f7570496401280108184d656d62657204002801204d656d62657249640000003043757261746f7247726f7570040028013843757261746f7247726f7570496400010000e9010c3870616c6c65745f636f6e74656e74147479706573544368616e6e656c5472616e7366657253746174757314204d656d626572496401283843757261746f7247726f7570496401281c42616c616e63650118285472616e73666572496401285c4368616e6e656c436f6c6c61626f7261746f72734d617001b1010108404e6f4163746976655472616e736665720000003c50656e64696e675472616e736665720400ed01015d0150656e64696e675472616e736665723c4d656d62657249642c2043757261746f7247726f757049642c2042616c616e63652c205472616e7366657249642c0a4368616e6e656c436f6c6c61626f7261746f72734d61703e00010000ed010c3870616c6c65745f636f6e74656e741474797065733c50656e64696e675472616e7366657214204d656d626572496401283843757261746f7247726f7570496401281c42616c616e63650118285472616e73666572496401285c4368616e6e656c436f6c6c61626f7261746f72734d617001b101000801246e65775f6f776e6572e50101984368616e6e656c4f776e65723c4d656d62657249642c2043757261746f7247726f757049643e00013c7472616e736665725f706172616d73f1010129015472616e73666572436f6d6d69746d656e74506172616d65746572733c4368616e6e656c436f6c6c61626f7261746f72734d61702c2042616c616e63652c205472616e7366657249643e0000f1010c3870616c6c65745f636f6e74656e74147479706573705472616e73666572436f6d6d69746d656e74506172616d65746572730c5c4368616e6e656c436f6c6c61626f7261746f72734d617001b1011c42616c616e63650118285472616e7366657249640128000c01446e65775f636f6c6c61626f7261746f7273b101015c4368616e6e656c436f6c6c61626f7261746f72734d6170000114707269636518011c42616c616e636500012c7472616e736665725f69642801285472616e7366657249640000f5010c3870616c6c65745f636f6e74656e74147479706573384c696d6974506572506572696f64042c426c6f636b4e756d6265720110000801146c696d697428010c75363400014c626c6f636b5f6e756d6265725f706572696f6410012c426c6f636b4e756d6265720000f9010c3870616c6c65745f636f6e74656e74147479706573284e6674436f756e746572042c426c6f636b4e756d62657201100008011c636f756e74657228010c7536340001306c6173745f7570646174656410012c426c6f636b4e756d6265720000fd01103870616c6c65745f636f6e74656e740c6e667414747970657368456e676c69736841756374696f6e506172616d735265636f72640c2c426c6f636b4e756d62657201101c42616c616e63650118204d656d62657249640128001c01387374617274696e675f707269636518011c42616c616e63650001346275795f6e6f775f70726963654501013c4f7074696f6e3c42616c616e63653e00012477686974656c6973746901014842547265655365743c4d656d62657249643e0001247374617274735f61740102014c4f7074696f6e3c426c6f636b4e756d6265723e0001206475726174696f6e10012c426c6f636b4e756d626572000140657874656e73696f6e5f706572696f6410012c426c6f636b4e756d6265720001306d696e5f6269645f7374657018011c42616c616e63650000010204184f7074696f6e04045401100108104e6f6e6500000010536f6d6504001000000100000502103870616c6c65745f636f6e74656e740c6e66741474797065735c4f70656e41756374696f6e506172616d735265636f72640c2c426c6f636b4e756d62657201101c42616c616e63650118204d656d62657249640128001401387374617274696e675f707269636518011c42616c616e63650001346275795f6e6f775f70726963654501013c4f7074696f6e3c42616c616e63653e0001247374617274735f61740102014c4f7074696f6e3c426c6f636b4e756d6265723e00012477686974656c6973746901014842547265655365743c4d656d62657249643e0001446269645f6c6f636b5f6475726174696f6e10012c426c6f636b4e756d62657200000902103870616c6c65745f636f6e74656e740c6e66741474797065736c4e667449737375616e6365506172616d65746572735265636f726408204d656d626572496401285c496e69745472616e73616374696f6e616c537461747573010d020010011c726f79616c74791102013c4f7074696f6e3c526f79616c74793e0001306e66745f6d6574616461746130012c4e66744d657461646174610001446e6f6e5f6368616e6e656c5f6f776e6572350101404f7074696f6e3c4d656d62657249643e000164696e69745f7472616e73616374696f6e616c5f7374617475730d02015c496e69745472616e73616374696f6e616c53746174757300000d02103870616c6c65745f636f6e74656e740c6e667414747970657374496e69745472616e73616374696f6e616c5374617475735265636f72641050456e676c69736841756374696f6e506172616d7301fd01444f70656e41756374696f6e506172616d73010502204d656d626572496401281c42616c616e6365011801141049646c65000000184275794e6f77040018011c42616c616e636500010058496e697469617465644f66666572546f4d656d62657208002801204d656d626572496400004501013c4f7074696f6e3c42616c616e63653e00020038456e676c69736841756374696f6e0400fd010150456e676c69736841756374696f6e506172616d730003002c4f70656e41756374696f6e0400050201444f70656e41756374696f6e506172616d7300040000110204184f7074696f6e04045401ac0108104e6f6e6500000010536f6d650400ac000001000015020c3870616c6c65745f636f6e74656e741474797065737c4368616e6e656c4372656174696f6e506172616d65746572735265636f7264143453746f72616765417373657473011902204d656d626572496401283c53746f726167654275636b65744964012850446973747269627574696f6e4275636b657449640125021c42616c616e63650118001c0118617373657473290201544f7074696f6e3c53746f726167654173736574733e0001106d6574613101013c4f7074696f6e3c5665633c75383e3e000134636f6c6c61626f7261746f72732d0201ac42547265654d61703c4d656d62657249642c204368616e6e656c4167656e745065726d697373696f6e733e00013c73746f726167655f6275636b6574736901016442547265655365743c53746f726167654275636b657449643e000150646973747269627574696f6e5f6275636b6574733902017842547265655365743c446973747269627574696f6e4275636b657449643e00018465787065637465645f6368616e6e656c5f73746174655f626c6f61745f626f6e6418011c42616c616e636500019465787065637465645f646174615f6f626a6563745f73746174655f626c6f61745f626f6e6418011c42616c616e6365000019020c3870616c6c65745f636f6e74656e741474797065734c53746f726167654173736574735265636f7264041c42616c616e63650118000801506f626a6563745f6372656174696f6e5f6c6973741d0201845665633c446174614f626a6563744372656174696f6e506172616d65746572733e00015865787065637465645f646174615f73697a655f66656518011c42616c616e636500001d020000022102002102083870616c6c65745f73746f7261676570446174614f626a6563744372656174696f6e506172616d6574657273000008011073697a6528010c75363400013c697066735f636f6e74656e745f696430011c5665633c75383e00002502083870616c6c65745f73746f7261676568446973747269627574696f6e4275636b657449645265636f72640868446973747269627574696f6e4275636b657446616d696c79496401285c446973747269627574696f6e4275636b6574496e646578012800080174646973747269627574696f6e5f6275636b65745f66616d696c795f6964280168446973747269627574696f6e4275636b657446616d696c794964000164646973747269627574696f6e5f6275636b65745f696e64657828015c446973747269627574696f6e4275636b6574496e6465780000290204184f7074696f6e0404540119020108104e6f6e6500000010536f6d650400190200000100002d02042042547265654d617008044b0128045601bd010004003102000000310200000235020035020000040828bd01003902042042547265655365740404540125020004003d020000003d0200000225020041020c3870616c6c65745f636f6e74656e74147479706573744368616e6e656c557064617465506172616d65746572735265636f7264103453746f7261676541737365747301190230446174614f626a65637449640128204d656d626572496401281c42616c616e63650118001801406173736574735f746f5f75706c6f6164290201544f7074696f6e3c53746f726167654173736574733e0001206e65775f6d6574613101013c4f7074696f6e3c5665633c75383e3e0001406173736574735f746f5f72656d6f76656901015842547265655365743c446174614f626a65637449643e000134636f6c6c61626f7261746f7273450201cc4f7074696f6e3c42547265654d61703c4d656d62657249642c204368616e6e656c4167656e745065726d697373696f6e733e3e00019465787065637465645f646174615f6f626a6563745f73746174655f626c6f61745f626f6e6418011c42616c616e636500016c73746f726167655f6275636b6574735f6e756d5f7769746e6573730102012c4f7074696f6e3c7533323e0000450204184f7074696f6e040454012d020108104e6f6e6500000010536f6d6504002d02000001000049020c3870616c6c65745f636f6e74656e7414747970657374566964656f4372656174696f6e506172616d65746572735265636f72640c3453746f72616765417373657473011902544e667449737375616e6365506172616d65746572730109021c42616c616e6365011800180118617373657473290201544f7074696f6e3c53746f726167654173736574733e0001106d6574613101013c4f7074696f6e3c5665633c75383e3e0001386175746f5f69737375655f6e66744d0201744f7074696f6e3c4e667449737375616e6365506172616d65746572733e00017c65787065637465645f766964656f5f73746174655f626c6f61745f626f6e6418011c42616c616e636500019465787065637465645f646174615f6f626a6563745f73746174655f626c6f61745f626f6e6418011c42616c616e636500016c73746f726167655f6275636b6574735f6e756d5f7769746e65737310010c75333200004d0204184f7074696f6e0404540109020108104e6f6e6500000010536f6d6504000902000001000051020c3870616c6c65745f636f6e74656e741474797065736c566964656f557064617465506172616d65746572735265636f7264103453746f7261676541737365747301190230446174614f626a65637449640128544e667449737375616e6365506172616d65746572730109021c42616c616e63650118001801406173736574735f746f5f75706c6f6164290201544f7074696f6e3c53746f726167654173736574733e0001206e65775f6d6574613101013c4f7074696f6e3c5665633c75383e3e0001406173736574735f746f5f72656d6f76656901015842547265655365743c446174614f626a65637449643e0001386175746f5f69737375655f6e66744d0201744f7074696f6e3c4e667449737375616e6365506172616d65746572733e00019465787065637465645f646174615f6f626a6563745f73746174655f626c6f61745f626f6e6418011c42616c616e636500016c73746f726167655f6275636b6574735f6e756d5f7769746e6573730102012c4f7074696f6e3c7533323e00005502042042547265654d617008044b010804560159020004006502000000590204204254726565536574040454015d0200040061020000005d02143870616c6c65745f636f6e74656e742c7065726d697373696f6e733463757261746f725f67726f7570386974657261626c655f656e756d735c436f6e74656e744d6f6465726174696f6e416374696f6e0001202448696465566964656f0000002c486964654368616e6e656c000100684368616e67654368616e6e656c466561747572655374617475730400d50101585061757361626c654368616e6e656c466561747572650002002c44656c657465566964656f0003003444656c6574654368616e6e656c0004004444656c657465566964656f4173736574730400980110626f6f6c0005006c44656c6574654e6f6e566964656f4368616e6e656c417373657473000600585570646174654368616e6e656c4e66744c696d6974730007000061020000025d02006502000002690200690200000408085902006d020c3870616c6c65745f636f6e74656e74147479706573705472616e73666572436f6d6d69746d656e74506172616d65746572730c5c4368616e6e656c436f6c6c61626f7261746f72734d6170012d021c42616c616e63650118285472616e7366657249640128000c01446e65775f636f6c6c61626f7261746f72732d02015c4368616e6e656c436f6c6c61626f7261746f72734d6170000114707269636518011c42616c616e636500012c7472616e736665725f69642801285472616e736665724964000071020c3870616c6c65745f636f6e74656e74147479706573905570646174654368616e6e656c5061796f757473506172616d65746572735265636f72640c7c4368616e6e656c5061796f7574735061796c6f6164506172616d65746572730175021c42616c616e636501181048617368012c00140128636f6d6d69746d656e74790201304f7074696f6e3c486173683e00011c7061796c6f61647d02019c4f7074696f6e3c4368616e6e656c5061796f7574735061796c6f6164506172616d65746572733e00014c6d696e5f636173686f75745f616c6c6f7765644501013c4f7074696f6e3c42616c616e63653e00014c6d61785f636173686f75745f616c6c6f7765644501013c4f7074696f6e3c42616c616e63653e0001606368616e6e656c5f636173686f7574735f656e61626c6564810201304f7074696f6e3c626f6f6c3e000075020c3870616c6c65745f636f6e74656e74147479706573944368616e6e656c5061796f7574735061796c6f6164506172616d65746572735265636f7264041c42616c616e63650118000c01586f626a6563745f6372656174696f6e5f706172616d7321020170446174614f626a6563744372656174696f6e506172616d657465727300015865787065637465645f646174615f73697a655f66656518011c42616c616e636500019465787065637465645f646174615f6f626a6563745f73746174655f626c6f61745f626f6e6418011c42616c616e63650000790204184f7074696f6e040454012c0108104e6f6e6500000010536f6d6504002c00000100007d0204184f7074696f6e0404540175020108104e6f6e6500000010536f6d65040075020000010000810204184f7074696f6e04045401980108104e6f6e6500000010536f6d65040098000001000085020c3870616c6c65745f636f6e74656e741474797065735c4368616e6e656c46756e647344657374696e6174696f6e04244163636f756e74496401000108244163636f756e74496404000001244163636f756e74496400000034436f756e63696c4275646765740001000089020c3870616c6c65745f636f6e74656e74147479706573384e66744c696d6974506572696f64000108144461696c79000000185765656b6c79000100008d02083870616c6c65745f73746f72616765205261774576656e74303c53746f726167654275636b65744964012820576f726b65724964012830446174614f626a656374496401284055706c6f6164506172616d65746572730191021442616749640195023044796e616d69634261674964019d02244163636f756e74496401001c42616c616e6365011868446973747269627574696f6e4275636b657446616d696c794964012850446973747269627574696f6e4275636b657449640125025c446973747269627574696f6e4275636b6574496e64657801287044796e616d69634261674372656174696f6e506172616d657465727301a10201a85053746f726167654275636b657443726561746564140028013c53746f726167654275636b657449640000350101404f7074696f6e3c576f726b657249643e0000980110626f6f6c000028010c753634000028010c75363400001c94456d697473206f6e206372656174696e67207468652073746f72616765206275636b65742e18506172616d734c2d2073746f72616765206275636b6574204944402d20696e766974656420776f726b65726c2d20666c61672022616363657074696e675f6e65775f6261677322642d2073697a65206c696d697420666f7220766f75636865722c702d206f626a65637473206c696d697420666f7220766f75636865722c7c53746f726167654275636b6574496e7669746174696f6e41636365707465640c0028013c53746f726167654275636b657449640000280120576f726b6572496400000001244163636f756e744964000114c4456d697473206f6e20616363657074696e67207468652073746f72616765206275636b657420696e7669746174696f6e2e18506172616d734c2d2073746f72616765206275636b65742049444c2d20696e766974656420776f726b65722049445c2d207472616e736163746f72206163636f756e742049446c53746f726167654275636b65747355706461746564466f724261670c0095020114426167496400006901016442547265655365743c53746f726167654275636b657449643e00006901016442547265655365743c53746f726167654275636b657449643e000214a8456d697473206f6e207570646174696e672073746f72616765206275636b65747320666f72206261672e18506172616d73202d20626167204944982d2073746f72616765206275636b65747320746f2061646420494420636f6c6c656374696f6ea42d2073746f72616765206275636b65747320746f2072656d6f766520494420636f6c6c656374696f6e4c446174614f626a6563747355706c6f616465640c006901015842547265655365743c446174614f626a65637449643e00009102014055706c6f6164506172616d6574657273000018011c42616c616e636500031480456d697473206f6e2075706c6f6164696e672064617461206f626a656374732e18506172616d73482d2064617461206f626a6563747320494473782d20696e697469616c2075706c6f6164696e6720706172616d6574657273782d20737461746520626c6f617420626f6e6420666f72206f626a656374736853746f726167654f70657261746f724d657461646174615365740c0028013c53746f726167654275636b657449640000280120576f726b65724964000030011c5665633c75383e000414bc456d697473206f6e2073657474696e67207468652073746f72616765206f70657261746f72206d657461646174612e18506172616d734c2d2073746f72616765206275636b65742049444c2d20696e766974656420776f726b6572204944282d206d657461646174617453746f726167654275636b6574566f75636865724c696d6974735365740c0028013c53746f726167654275636b65744964000028010c753634000028010c753634000514cc456d697473206f6e2073657474696e67207468652073746f72616765206275636b657420766f7563686572206c696d6974732e18506172616d734c2d2073746f72616765206275636b6574204944782d206e657720746f74616c206f626a656374732073697a65206c696d6974802d206e657720746f74616c206f626a65637473206e756d626572206c696d69746850656e64696e67446174614f626a656374734163636570746564100028013c53746f726167654275636b657449640000280120576f726b65724964000095020114426167496400006901015842547265655365743c446174614f626a65637449643e000618a0456d697473206f6e20616363657074696e672070656e64696e672064617461206f626a656374732e18506172616d734c2d2073746f72616765206275636b6574204944842d20776f726b6572204944202873746f726167652070726f766964657220494429202d20626167204944582d2070656e64696e672064617461206f626a656374738053746f726167654275636b6574496e7669746174696f6e43616e63656c6c6564040028013c53746f726167654275636b6574496400070cc8456d697473206f6e2063616e63656c6c696e67207468652073746f72616765206275636b657420696e7669746174696f6e2e18506172616d734c2d2073746f72616765206275636b65742049447053746f726167654275636b65744f70657261746f72496e7669746564080028013c53746f726167654275636b657449640000280120576f726b65724964000810c0456d697473206f6e207468652073746f72616765206275636b6574206f70657261746f7220696e7669746174696f6e2e18506172616d734c2d2073746f72616765206275636b6574204944a82d206f70657261746f7220776f726b6572204944202873746f726167652070726f7669646572204944297053746f726167654275636b65744f70657261746f7252656d6f766564040028013c53746f726167654275636b6574496400090cb4456d697473206f6e207468652073746f72616765206275636b6574206f70657261746f722072656d6f76616c2e18506172616d734c2d2073746f72616765206275636b65742049446c55706c6f6164696e67426c6f636b537461747573557064617465640400980110626f6f6c000a0c0501456d697473206f6e206368616e67696e67207468652073697a652d62617365642070726963696e67206f66206e6577206f626a656374732075706c6f616465642e18506172616d73302d206e6577207374617475737c446174614f626a6563745065724d6567616279746546656555706461746564040018011c42616c616e6365000b0c0501456d697473206f6e206368616e67696e67207468652073697a652d62617365642070726963696e67206f66206e6577206f626a656374732075706c6f616465642e18506172616d734c2d206e657720646174612073697a65206665658053746f726167654275636b6574735065724261674c696d697455706461746564040010010c753332000c0cf4456d697473206f6e206368616e67696e6720746865202253746f72616765206275636b657473207065722062616722206e756d626572206c696d69742e18506172616d732c2d206e6577206c696d69749453746f726167654275636b657473566f75636865724d61784c696d69747355706461746564080028010c753634000028010c753634000d10ec456d697473206f6e206368616e67696e6720746865202253746f72616765206275636b65747320766f7563686572206d6178206c696d697473222e18506172616d73602d206e6577206f626a656374732073697a65206c696d6974682d206e6577206f626a65637473206e756d626572206c696d697440446174614f626a656374734d6f7665640c00950201144261674964000095020114426167496400006901015842547265655365743c446174614f626a65637449643e000e14a8456d697473206f6e206d6f76696e672064617461206f626a65637473206265747765656e20626167732e18506172616d733c2d20736f7572636520626167204944502d2064657374696e6174696f6e20626167204944442d2064617461206f626a6563742049447348446174614f626a6563747344656c657465640c000001244163636f756e744964000095020114426167496400006901015842547265655365743c446174614f626a65637449643e000f14a4456d697473206f6e2064617461206f626a656374732064656c6574696f6e2066726f6d20626167732e18506172616d73942d206163636f756e7420494420666f722074686520737461746520626c6f617420626f6e64202d20626167204944442d2064617461206f626a656374204944736853746f726167654275636b657453746174757355706461746564080028013c53746f726167654275636b657449640000980110626f6f6c00101098456d697473206f6e2073746f72616765206275636b657420737461747573207570646174652e18506172616d734c2d2073746f72616765206275636b6574204944302d206e6577207374617475733c557064617465426c61636b6c6973740800a502014442547265655365743c5665633c75383e3e0000a502014442547265655365743c5665633c75383e3e001110c4456d697473206f6e207570646174696e672074686520626c61636b6c69737420776974682064617461206861736865732e18506172616d73942d2068617368657320746f2072656d6f76652066726f6d2074686520626c61636b6c697374802d2068617368657320746f2061646420746f2074686520626c61636b6c6973744444796e616d696342616744656c6574656404009d02013044796e616d6963426167496400120c80456d697473206f6e2064656c6574696e6720612064796e616d6963206261672e18506172616d73402d2064796e616d6963206261672049444444796e616d6963426167437265617465640800a102017044796e616d69634261674372656174696f6e506172616d657465727300006901015842547265655365743c446174614f626a65637449643e00131080456d697473206f6e206372656174696e6720612064796e616d6963206261672e18506172616d73842d2064796e616d696320626167206372656174696f6e20706172616d65746572736c2d2075706c6f616465642064617461206f626a656374732069647338566f75636865724368616e676564080028013c53746f726167654275636b657449640000ad02011c566f7563686572001410cc456d697473206f6e206368616e67696e672074686520766f756368657220666f7220612073746f72616765206275636b65742e18506172616d734c2d2073746f72616765206275636b6574204944342d206e657720766f75636865725053746f726167654275636b657444656c65746564040028013c53746f726167654275636b6574496400150c84456d697473206f6e2073746f72616765206275636b65742064656c6574696e672e18506172616d734c2d2073746f72616765206275636b6574204944dc4e756d6265724f6653746f726167654275636b657473496e44796e616d69634261674372656174696f6e506f6c696379557064617465640800b102013844796e616d696342616754797065000010010c7533320016103d01456d697473206f6e207570646174696e6720746865206e756d626572206f662073746f72616765206275636b65747320696e2064796e616d696320626167206372656174696f6e20706f6c6963792e18506172616d73482d2064796e616d69632062616720747970657c2d206e6577206e756d626572206f662073746f72616765206275636b6574737c446973747269627574696f6e4275636b657446616d696c79437265617465640400280168446973747269627574696f6e4275636b657446616d696c79496400170cb4456d697473206f6e206372656174696e6720646973747269627574696f6e206275636b65742066616d696c792e18506172616d737c2d20646973747269627574696f6e2066616d696c79206275636b65742049447c446973747269627574696f6e4275636b657446616d696c7944656c657465640400280168446973747269627574696f6e4275636b657446616d696c79496400180cb4456d697473206f6e2064656c6574696e6720646973747269627574696f6e206275636b65742066616d696c792e18506172616d737c2d20646973747269627574696f6e2066616d696c79206275636b657420494464446973747269627574696f6e4275636b6574437265617465640c00280168446973747269627574696f6e4275636b657446616d696c7949640000980110626f6f6c000025020150446973747269627574696f6e4275636b6574496400191498456d697473206f6e206372656174696e6720646973747269627574696f6e206275636b65742e18506172616d737c2d20646973747269627574696f6e206275636b65742066616d696c79204944502d20616363657074696e67206e65772062616773602d20646973747269627574696f6e206275636b65742049447c446973747269627574696f6e4275636b657453746174757355706461746564080025020150446973747269627574696f6e4275636b657449640000980110626f6f6c001a10ec456d697473206f6e2073746f72616765206275636b657420737461747573207570646174652028616363657074696e67206e65772062616773292e18506172616d73602d20646973747269627574696f6e206275636b6574204944842d206e6577207374617475732028616363657074696e67206e657720626167732964446973747269627574696f6e4275636b657444656c65746564040025020150446973747269627574696f6e4275636b65744964001b0c98456d697473206f6e2064656c6574696e6720646973747269627574696f6e206275636b65742e18506172616d73602d20646973747269627574696f6e206275636b657420494480446973747269627574696f6e4275636b65747355706461746564466f7242616710009502011442616749640000280168446973747269627574696f6e4275636b657446616d696c79496400006901018442547265655365743c446973747269627574696f6e4275636b6574496e6465783e00006901018442547265655365743c446973747269627574696f6e4275636b6574496e6465783e001c14bc456d697473206f6e207570646174696e6720646973747269627574696f6e206275636b65747320666f72206261672e18506172616d73202d20626167204944982d2073746f72616765206275636b65747320746f2061646420494420636f6c6c656374696f6ea42d2073746f72616765206275636b65747320746f2072656d6f766520494420636f6c6c656374696f6e94446973747269627574696f6e4275636b6574735065724261674c696d697455706461746564040010010c753332001d0c0901456d697473206f6e206368616e67696e67207468652022446973747269627574696f6e206275636b657473207065722062616722206e756d626572206c696d69742e18506172616d732c2d206e6577206c696d697474446973747269627574696f6e4275636b65744d6f646555706461746564080025020150446973747269627574696f6e4275636b657449640000980110626f6f6c001e10e0456d697473206f6e2073746f72616765206275636b6574206d6f6465207570646174652028646973747269627574696e6720666c6167292e18506172616d73602d20646973747269627574696f6e206275636b6574204944382d20646973747269627574696e67a446616d696c696573496e44796e616d69634261674372656174696f6e506f6c696379557064617465640800b102013844796e616d6963426167547970650000b50201a442547265654d61703c446973747269627574696f6e4275636b657446616d696c7949642c207533323e001f102d01456d697473206f6e2064796e616d696320626167206372656174696f6e20706f6c696379207570646174652028646973747269627574696f6e206275636b65742066616d696c696573292e18506172616d73482d2064796e616d6963206261672074797065742d2066616d696c69657320616e64206275636b6574206e756d6265727384446973747269627574696f6e4275636b65744f70657261746f72496e7669746564080025020150446973747269627574696f6e4275636b657449640000280120576f726b657249640020101101456d697473206f6e206372656174696e67206120646973747269627574696f6e206275636b657420696e7669746174696f6e20666f7220746865206f70657261746f722e18506172616d73602d20646973747269627574696f6e206275636b65742049442c2d20776f726b657220494494446973747269627574696f6e4275636b6574496e7669746174696f6e43616e63656c6c6564080025020150446973747269627574696f6e4275636b657449640000280120576f726b657249640021101501456d697473206f6e2063616e63656c696e67206120646973747269627574696f6e206275636b657420696e7669746174696f6e20666f7220746865206f70657261746f722e18506172616d73602d20646973747269627574696f6e206275636b6574204944502d206f70657261746f7220776f726b657220494490446973747269627574696f6e4275636b6574496e7669746174696f6e41636365707465640800280120576f726b65724964000025020150446973747269627574696f6e4275636b657449640022101501456d697473206f6e20616363657074696e67206120646973747269627574696f6e206275636b657420696e7669746174696f6e20666f7220746865206f70657261746f722e18506172616d732c2d20776f726b6572204944602d20646973747269627574696f6e206275636b657420494474446973747269627574696f6e4275636b65744d657461646174615365740c00280120576f726b65724964000025020150446973747269627574696f6e4275636b65744964000030011c5665633c75383e0023140101456d697473206f6e2073657474696e6720746865206d65746164617461206279206120646973747269627574696f6e206275636b6574206f70657261746f722e18506172616d732c2d20776f726b6572204944602d20646973747269627574696f6e206275636b6574204944282d206d6574616461746184446973747269627574696f6e4275636b65744f70657261746f7252656d6f766564080025020150446973747269627574696f6e4275636b657449640000280120576f726b65724964002410c8456d697473206f6e2074686520646973747269627574696f6e206275636b6574206f70657261746f722072656d6f76616c2e18506172616d73602d20646973747269627574696f6e206275636b6574204944842d20646973747269627574696f6e206275636b6574206f70657261746f722049448c446973747269627574696f6e4275636b657446616d696c794d657461646174615365740800280168446973747269627574696f6e4275636b657446616d696c794964000030011c5665633c75383e002510f8456d697473206f6e2073657474696e6720746865206d65746164617461206279206120646973747269627574696f6e206275636b65742066616d696c792e18506172616d737c2d20646973747269627574696f6e206275636b65742066616d696c79204944282d206d6574616461746190446174614f626a6563745374617465426c6f6174426f6e6456616c756555706461746564040018011c42616c616e636500260ccc456d697473206f6e207570646174696e67207468652064617461206f626a65637420737461746520626c6f617420626f6e642e18506172616d73602d20737461746520626c6f617420626f6e642076616c756548446174614f626a65637473557064617465640c009102014055706c6f6164506172616d657465727300006901015842547265655365743c446174614f626a65637449643e00006901015842547265655365743c446174614f626a65637449643e0027140d01456d697473206f6e2073746f7261676520617373657473206265696e672075706c6f6164656420616e642064656c65746564206174207468652073616d652074696d6518506172616d73482d2055706c6f6164506172616d6574657273742d20496473206f66207468652075706c6f61646564206f626a65637473702d20496473206f66207468652072656d6f766564206f626a656374735c53746f726167654f70657261746f7252656d61726b65640c00280120576f726b65724964000028013c53746f726167654275636b65744964000030011c5665633c75383e002814a4456d697473206f6e2053746f72616765204f70657261746f72206d616b696e6720612072656d61726b18506172616d73582d206f70657261746f72277320776f726b65722069644c2d2073746f72616765206275636b6574206964402d2072656d61726b206d65737361676570446973747269627574696f6e4f70657261746f7252656d61726b65640c00280120576f726b65724964000025020150446973747269627574696f6e4275636b65744964000030011c5665633c75383e002914b8456d697473206f6e20446973747269627574696f6e204f70657261746f72206d616b696e6720612072656d61726b18506172616d73582d206f70657261746f72277320776f726b6572206964602d20646973747269627574696f6e206275636b6574206964402d2072656d61726b206d6573736167650c5c4576656e747320666f722074686973206d6f64756c652e003853746f72616765206576656e74739102083870616c6c65745f73746f726167655855706c6f6164506172616d65746572735265636f72640c144261674964019502244163636f756e74496401001c42616c616e63650118001401186261675f69649502011442616749640001506f626a6563745f6372656174696f6e5f6c6973741d0201845665633c446174614f626a6563744372656174696f6e506172616d65746572733e00018873746174655f626c6f61745f626f6e645f736f757263655f6163636f756e745f69640001244163636f756e74496400015865787065637465645f646174615f73697a655f66656518011c42616c616e636500019465787065637465645f646174615f6f626a6563745f73746174655f626c6f61745f626f6e6418011c42616c616e636500009502083870616c6c65745f73746f726167652442616749645479706508204d656d62657249640128244368616e6e656c4964012801081853746174696304009902012c53746174696342616749640000001c44796e616d696304009d02019444796e616d69634261674964547970653c4d656d62657249642c204368616e6e656c49643e000100009902083870616c6c65745f73746f726167652c53746174696342616749640001081c436f756e63696c00000030576f726b696e6747726f7570040099010130576f726b696e6747726f7570000100009d02083870616c6c65745f73746f726167654044796e616d696342616749645479706508204d656d62657249640128244368616e6e656c496401280108184d656d62657204002801204d656d62657249640000001c4368616e6e656c04002801244368616e6e656c496400010000a102083870616c6c65745f73746f726167657844796e4261674372656174696f6e506172616d65746572735265636f726414144261674964019d02244163636f756e74496401001c42616c616e636501183c53746f726167654275636b65744964012850446973747269627574696f6e4275636b65744964012502001c01186261675f69649d02011442616749640001506f626a6563745f6372656174696f6e5f6c6973741d0201845665633c446174614f626a6563744372656174696f6e506172616d65746572733e00018873746174655f626c6f61745f626f6e645f736f757263655f6163636f756e745f69640001244163636f756e74496400015865787065637465645f646174615f73697a655f66656518011c42616c616e636500019465787065637465645f646174615f6f626a6563745f73746174655f626c6f61745f626f6e6418011c42616c616e636500013c73746f726167655f6275636b6574736901016442547265655365743c53746f726167654275636b657449643e000150646973747269627574696f6e5f6275636b6574733902017842547265655365743c446973747269627574696f6e4275636b657449643e0000a502042042547265655365740404540130000400a902000000a9020000023000ad02083870616c6c65745f73746f726167651c566f7563686572000010012873697a655f6c696d697428010c7536340001346f626a656374735f6c696d697428010c75363400012473697a655f7573656428010c7536340001306f626a656374735f7573656428010c7536340000b102083870616c6c65745f73746f726167653844796e616d696342616754797065000108184d656d6265720000001c4368616e6e656c00010000b502042042547265654d617008044b012804560110000400b902000000b902000002bd0200bd0200000408281000c1020c5070616c6c65745f70726f6a6563745f746f6b656e186576656e7473205261774576656e74281c42616c616e63650118284a6f7942616c616e636501181c546f6b656e49640128244163636f756e7449640100204d656d626572496401282c426c6f636b4e756d6265720110385472616e73666572506f6c69637901c5025c546f6b656e49737375616e6365506172616d657465727301c9024856616c6964617465645472616e736665727301fd0224546f6b656e53616c65012103014858546f6b656e416d6f756e745472616e73666572726564100028011c546f6b656e496400002801204d656d62657249640000fd02014856616c6964617465645472616e7366657273000030011c5665633c75383e000018ac546f6b656e20616d6f756e74206973207472616e736665727265642066726f6d2073726320746f206473741c506172616d733a482d20746f6b656e206964656e746966696572482d20736f75726365206d656d62657220696459012d206d617020636f6e7461696e696e672076616c696461746564206f7574707574732028616d6f756e7420696e646578656420627920286d656d6265725f6964202b206163636f756e74206578697374616e63652929542d207472616e736665722773206d6574616461746178546f6b656e416d6f756e745472616e736665727265644279497373756572100028011c546f6b656e496400002801204d656d62657249640000fd02014856616c6964617465645472616e7366657273000030011c5665633c75383e00012088546f6b656e20616d6f756e74207472616e73666572726564206279206973737565721c506172616d733a482d20746f6b656e206964656e7469666965726c2d20736f75726365202869737375657229206d656d626572206964882d206d617020636f6e7461696e696e672076616c696461746564206f7574707574732d01202028616d6f756e742c206f70742e2076657374696e67207363686564756c652c206f70742e2076657374696e6720636c65616e7570206b657929206461746120696e6465786564206279882020286163636f756e745f6964202b206163636f756e74206578697374616e636529542d207472616e736665722773206d6574616461746160506174726f6e61676552617465446563726561736564546f080028011c546f6b656e496400002503012c5065727175696e74696c6c00021060506174726f6e6167652072617465206465637265617365641c506172616d733a482d20746f6b656e206964656e746966696572502d206e657720706174726f6e616765207261746558506174726f6e616765437265646974436c61696d65640c0028011c546f6b656e4964000018011c42616c616e636500002801204d656d62657249640003148c506174726f6e6167652063726564697420636c61696d65642062792063726561746f721c506172616d733a482d20746f6b656e206964656e7469666965723c2d2063726564697420616d6f756e742c2d206d656d62657220696448526576656e756553706c6974497373756564100028011c546f6b656e4964000010012c426c6f636b4e756d626572000010012c426c6f636b4e756d62657200001801284a6f7942616c616e636500041850526576656e75652053706c6974206973737565641c506172616d733a482d20746f6b656e206964656e746966696572782d207374617274696e6720626c6f636b20666f72207468652073706c69745c2d206475726174696f6e206f66207468652073706c6974742d204a4f5920616c6c6f636174656420666f72207468652073706c697454526576656e756553706c697446696e616c697a65640c0028011c546f6b656e496400000001244163636f756e74496400001801284a6f7942616c616e63650005145c526576656e75652053706c69742066696e616c697a65641c506172616d733a482d20746f6b656e206964656e746966696572a42d207265636f76657279206163636f756e7420666f7220746865206c6566746f7665722066756e6473402d206c6566746f7665722066756e64735c55736572506172746963697061746564496e53706c6974140028011c546f6b656e496400002801204d656d6265724964000018011c42616c616e636500001801284a6f7942616c616e63650000100138526576656e756553706c6974496400061c8855736572207061727469706174656420696e206120726576656e75652073706c69741c506172616d733a482d20746f6b656e206964656e746966696572642d207061727469636970616e742773206d656d6265722069647c2d207573657220616c6c6f6361746564207374616b65642062616c616e63657c2d206469766964656e6420616d6f756e7420284a4f5929206772616e746564682d20726576656e75652073706c6974206964656e74696669657240526576656e756553706c69744c6566740c0028011c546f6b656e496400002801204d656d6265724964000018011c42616c616e63650007145c55736572206c65667420726576656e75652073706c69741c506172616d733a482d20746f6b656e206964656e746966696572702d2065782d7061727469636970616e742773206d656d626572206964442d20616d6f756e7420756e7374616b6564544d656d6265724a6f696e656457686974656c6973740c0028011c546f6b656e496400002801204d656d62657249640000c50201385472616e73666572506f6c6963790008145c4d656d626572206a6f696e65642077686974656c6973741c506172616d733a482d20746f6b656e206964656e7469666965722c2d206d656d626572206964642d206f6e676f696e67207472616e7366657220706f6c6963793c4163636f756e744475737465644279100028011c546f6b656e496400002801204d656d626572496400000001244163636f756e7449640000c50201385472616e73666572506f6c696379000918384163636f756e74204475737465641c506172616d733a482d20746f6b656e206964656e7469666965729c2d206964206f662074686520647573746564206163636f756e74206f776e6572206d656d6265728c2d206163636f756e7420746861742063616c6c6564207468652065787472696e736963402d206f6e676f696e6720706f6c69637934546f6b656e4465697373756564040028011c546f6b656e4964000a0c38546f6b656e2044656973737565641c506172616d733a282d20746f6b656e2069642c546f6b656e497373756564080028011c546f6b656e49640000c902015c546f6b656e49737375616e6365506172616d6574657273000b1030546f6b656e204973737565641c506172616d733a282d20746f6b656e2069646c2d20746f6b656e2069737375616e636520706172616d657465727350546f6b656e53616c65496e697469616c697a6564100028011c546f6b656e4964000010012c546f6b656e53616c654964000021030124546f6b656e53616c6500003101013c4f7074696f6e3c5665633c75383e3e000c1864546f6b652053616c652077617320496e697469616c697a65641c506172616d733a282d20746f6b656e2069643c2d20746f6b656e2073616c65206964442d20746f6b656e2073616c652064617461542d20746f6b656e2073616c65206d65746164617461605570636f6d696e67546f6b656e53616c6555706461746564100028011c546f6b656e4964000010012c546f6b656e53616c65496400000102014c4f7074696f6e3c426c6f636b4e756d6265723e00000102014c4f7074696f6e3c426c6f636b4e756d6265723e000d187c5570636f6d696e6720546f6b656e2053616c652077617320557064617465641c506172616d733a282d20746f6b656e2069643c2d20746f6b656e2073616c65206964582d206e65772073616c6520737461727420626c6f636b4c2d206e65772073616c65206475726174696f6e54546f6b656e735075726368617365644f6e53616c65100028011c546f6b656e4964000010012c546f6b656e53616c654964000018011c42616c616e636500002801204d656d6265724964000e1860546f6b656e7320507572636861736564204f6e2053616c651c506172616d733a282d20746f6b656e2069643c2d20746f6b656e2073616c65206964702d20616d6f756e74206f6620746f6b656e73207075726368617365644c2d2062757965722773206d656d62657220696448546f6b656e53616c6546696e616c697a6564100028011c546f6b656e4964000010012c546f6b656e53616c654964000018011c42616c616e636500001801284a6f7942616c616e6365000f1850546f6b656e2053616c652046696e616c697a65641c506172616d733a282d20746f6b656e2069643c2d20746f6b656e2073616c652069648c2d20616d6f756e74206f6620756e736f6c6420746f6b656e73207265636f7665726564642d20616d6f756e74206f66204a4f5920636f6c6c6563746564945472616e73666572506f6c6963794368616e676564546f5065726d697373696f6e6c657373040028011c546f6b656e496400100ca45472616e7366657220506f6c696379204368616e67656420546f205065726d697373696f6e6c6573731c506172616d733a282d20746f6b656e20696430546f6b656e734275726e65640c0028011c546f6b656e496400002801204d656d6265724964000018011c42616c616e636500111434546f6b656e73204275726e65641c506172616d733a282d20746f6b656e2069642c2d206d656d626572206964642d206e756d626572206f6620746f6b656e73206275726e6564085c4576656e747320666f722074686973206d6f64756c652e00c5020c5070616c6c65745f70726f6a6563745f746f6b656e147479706573385472616e73666572506f6c696379041048617368012c0108385065726d697373696f6e6c657373000000305065726d697373696f6e656404002c01104861736800010000c9020c5070616c6c65745f70726f6a6563745f746f6b656e1474797065735c546f6b656e49737375616e6365506172616d6574657273101048617368012c3c546f6b656e416c6c6f636174696f6e01cd02505472616e73666572506f6c696379506172616d7301dd02204d656d6265724964012800140148696e697469616c5f616c6c6f636174696f6eed02018c42547265654d61703c4d656d62657249642c20546f6b656e416c6c6f636174696f6e3e00011873796d626f6c2c01104861736800013c7472616e736665725f706f6c696379dd0201505472616e73666572506f6c696379506172616d73000138706174726f6e6167655f72617465f9020128596561726c7952617465000148726576656e75655f73706c69745f72617465d502011c5065726d696c6c0000cd020c5070616c6c65745f70726f6a6563745f746f6b656e1474797065733c546f6b656e416c6c6f636174696f6e081c42616c616e636501185456657374696e675363686564756c65506172616d7301d10200080118616d6f756e7418011c42616c616e636500015c76657374696e675f7363686564756c655f706172616d73d90201744f7074696f6e3c56657374696e675363686564756c65506172616d733e0000d1020c5070616c6c65745f70726f6a6563745f746f6b656e1474797065735456657374696e675363686564756c65506172616d73042c426c6f636b4e756d6265720110000c015c6c696e6561725f76657374696e675f6475726174696f6e10012c426c6f636b4e756d62657200014c626c6f636b735f6265666f72655f636c69666610012c426c6f636b4e756d62657200015c636c6966665f616d6f756e745f70657263656e74616765d502011c5065726d696c6c0000d5020c3473705f61726974686d65746963287065725f7468696e67731c5065726d696c6c0000040010010c7533320000d90204184f7074696f6e04045401d1020108104e6f6e6500000010536f6d650400d1020000010000dd020c5070616c6c65745f70726f6a6563745f746f6b656e147479706573505472616e73666572506f6c696379506172616d73043c57686974656c697374506172616d7301e1020108385065726d697373696f6e6c657373000000305065726d697373696f6e65640400e102013c57686974656c697374506172616d7300010000e1020c5070616c6c65745f70726f6a6563745f746f6b656e1474797065733c57686974656c697374506172616d73081048617368012c7053696e676c65446174614f626a65637455706c6f6164506172616d7301e50200080128636f6d6d69746d656e742c01104861736800011c7061796c6f6164e90201904f7074696f6e3c53696e676c65446174614f626a65637455706c6f6164506172616d733e0000e5020c5070616c6c65745f70726f6a6563745f746f6b656e1474797065737053696e676c65446174614f626a65637455706c6f6164506172616d7304284a6f7942616c616e63650118000c01586f626a6563745f6372656174696f6e5f706172616d7321020170446174614f626a6563744372656174696f6e506172616d657465727300015865787065637465645f646174615f73697a655f6665651801284a6f7942616c616e636500019465787065637465645f646174615f6f626a6563745f73746174655f626c6f61745f626f6e641801284a6f7942616c616e63650000e90204184f7074696f6e04045401e5020108104e6f6e6500000010536f6d650400e5020000010000ed02042042547265654d617008044b0128045601cd02000400f102000000f102000002f50200f5020000040828cd0200f9020c5070616c6c65745f70726f6a6563745f746f6b656e14747970657328596561726c795261746500000400d502011c5065726d696c6c0000fd020c5070616c6c65745f70726f6a6563745f746f6b656e147479706573245472616e736665727308204d656d62657249640101031c5061796d656e740105030004001503016c42547265654d61703c4d656d62657249642c205061796d656e743e000001030c5070616c6c65745f70726f6a6563745f746f6b656e1474797065732456616c69646174656404204d656d626572496401280108204578697374696e6704002801204d656d62657249640000002c4e6f6e4578697374696e6704002801204d656d62657249640001000005030c5070616c6c65745f70726f6a6563745f746f6b656e1474797065734056616c6964617465645061796d656e7404485061796d656e745769746856657374696e670109030008011c7061796d656e74090301485061796d656e745769746856657374696e6700016476657374696e675f636c65616e75705f63616e6469646174650d0301544f7074696f6e3c56657374696e67536f757263653e000009030c5070616c6c65745f70726f6a6563745f746f6b656e147479706573485061796d656e745769746856657374696e67081c42616c616e636501185456657374696e675363686564756c65506172616d7301d10200080118616d6f756e7418011c42616c616e636500014076657374696e675f7363686564756c65d90201744f7074696f6e3c56657374696e675363686564756c65506172616d733e00000d0304184f7074696f6e0404540111030108104e6f6e6500000010536f6d6504001103000001000011030c5070616c6c65745f70726f6a6563745f746f6b656e1474797065733456657374696e67536f7572636500010c3c496e697469616c49737375616e63650000001053616c65040010012c546f6b656e53616c654964000100384973737565725472616e73666572040028010c753634000200001503042042547265654d617008044b0101030456010503000400190300000019030000021d03001d0300000408010305030021030c5070616c6c65745f70726f6a6563745f746f6b656e14747970657324546f6b656e53616c6518284a6f7942616c616e636501181c42616c616e636501182c426c6f636b4e756d62657201105456657374696e675363686564756c65506172616d7301d102204d656d62657249640128244163636f756e744964010000280128756e69745f70726963651801284a6f7942616c616e63650001347175616e746974795f6c65667418011c42616c616e636500013c66756e64735f636f6c6c65637465641801284a6f7942616c616e6365000134746f6b656e735f736f757263652801204d656d62657249640001506561726e696e67735f64657374696e6174696f6e9401444f7074696f6e3c4163636f756e7449643e00012c73746172745f626c6f636b10012c426c6f636b4e756d6265720001206475726174696f6e10012c426c6f636b4e756d62657200015c76657374696e675f7363686564756c655f706172616d73d90201744f7074696f6e3c56657374696e675363686564756c65506172616d733e0001386361705f7065725f6d656d6265724501013c4f7074696f6e3c42616c616e63653e0001346175746f5f66696e616c697a65980110626f6f6c000025030c3473705f61726974686d65746963287065725f7468696e67732c5065727175696e74696c6c0000040028010c75363400002903085c70616c6c65745f70726f706f73616c735f656e67696e65205261774576656e740c2850726f706f73616c49640110204d656d626572496401282c426c6f636b4e756d626572011001185450726f706f73616c53746174757355706461746564080010012850726f706f73616c496400002d03016c50726f706f73616c5374617475733c426c6f636b4e756d6265723e0000106c456d697473206f6e2070726f706f73616c206372656174696f6e2e1c506172616d733a4c2d204964206f6620612070726f706f73616c2e582d204e65772070726f706f73616c207374617475732e5050726f706f73616c4465636973696f6e4d616465080010012850726f706f73616c496400003103014050726f706f73616c4465636973696f6e000110b0456d697473206f6e2067657474696e6720612070726f706f73616c20737461747573206465636973696f6e2e1c506172616d733a4c2d204964206f6620612070726f706f73616c2e4c2d2050726f706f73616c206465636973696f6e4050726f706f73616c4578656375746564080010012850726f706f73616c496400003903013c457865637574696f6e53746174757300021070456d697473206f6e2070726f706f73616c20657865637574696f6e2e1c506172616d733a6c2d204964206f66206120757064617465642070726f706f73616c2e702d2050726f706f73616c20657865637574696f6e207374617475732e14566f74656410002801204d656d6265724964000010012850726f706f73616c496400003d030120566f74654b696e64000030011c5665633c75383e00031880456d697473206f6e20766f74696e6720666f72207468652070726f706f73616c1c506172616d733a7c2d20566f746572202d206d656d626572206964206f66206120766f7465722e4c2d204964206f6620612070726f706f73616c2e3c2d204b696e64206f6620766f74652e302d20526174696f6e616c652e4450726f706f73616c43616e63656c6c656408002801204d656d6265724964000010012850726f706f73616c49640004108c456d697473206f6e20612070726f706f73616c206265696e672063616e63656c6c65641c506172616d733a6c2d204d656d626572204964206f66207468652070726f706f736572502d204964206f66207468652070726f706f73616c4050726f706f73657252656d61726b65640c002801204d656d6265724964000010012850726f706f73616c4964000030011c5665633c75383e00051084456d697473206f6e2070726f706f736572206d616b696e6720612072656d61726b342d2070726f706f736572206964342d2070726f706f73616c206964242d206d6573736167650c5c4576656e747320666f722074686973206d6f64756c652e005c50726f706f73616c7320656e67696e65206576656e74732d03105c70616c6c65745f70726f706f73616c735f656e67696e651474797065734470726f706f73616c5f73746174757365733850726f706f73616c537461747573042c426c6f636b4e756d6265720110010c184163746976650000004050656e64696e67457865637574696f6e040010012c426c6f636b4e756d6265720001006050656e64696e67436f6e737469747574696f6e616c697479000200003103105c70616c6c65745f70726f706f73616c735f656e67696e651474797065734470726f706f73616c5f73746174757365734050726f706f73616c4465636973696f6e00011c2043616e63656c65640000004443616e63656c6564427952756e74696d65000100185665746f65640002002052656a65637465640003001c536c61736865640004001c4578706972656400050020417070726f766564040035030160417070726f76656450726f706f73616c4465636973696f6e000600003503105c70616c6c65745f70726f706f73616c735f656e67696e651474797065734470726f706f73616c5f737461747573657360417070726f76656450726f706f73616c4465636973696f6e0001084050656e64696e67457865637574696f6e0000006050656e64696e67436f6e737469747574696f6e616c697479000100003903105c70616c6c65745f70726f706f73616c735f656e67696e651474797065734470726f706f73616c5f73746174757365733c457865637574696f6e5374617475730001082045786563757465640000003c457865637574696f6e4661696c65640401146572726f7230011c5665633c75383e000100003d030c5c70616c6c65745f70726f706f73616c735f656e67696e6514747970657320566f74654b696e640001101c417070726f76650000001852656a65637400010014536c6173680002001c4162737461696e000300004103086c70616c6c65745f70726f706f73616c735f64697363757373696f6e205261774576656e740c2054687265616449640128204d656d6265724964012818506f737449640128011434546872656164437265617465640800280120546872656164496400002801204d656d626572496400000464456d697473206f6e20746872656164206372656174696f6e2e2c506f7374437265617465641400280118506f7374496400002801204d656d626572496400002801205468726561644964000030011c5665633c75383e0000980110626f6f6c0001045c456d697473206f6e20706f7374206372656174696f6e2e2c506f7374557064617465641000280118506f7374496400002801204d656d626572496400002801205468726561644964000030011c5665633c75383e00020454456d697473206f6e20706f7374207570646174652e445468726561644d6f64654368616e6765640c0028012054687265616449640000450301785468726561644d6f64653c42547265655365743c4d656d62657249643e3e00002801204d656d626572496400030470456d697473206f6e20746872656164206d6f6465206368616e67652e2c506f737444656c6574656410002801204d656d6265724964000028012054687265616449640000280118506f737449640000980110626f6f6c00040454456d697473206f6e20706f73742064656c657465640c5c4576656e747320666f722074686973206d6f64756c652e005c50726f706f73616c7320656e67696e65206576656e747345030c6c70616c6c65745f70726f706f73616c735f64697363757373696f6e147479706573285468726561644d6f6465043c54687265616457686974656c6973740169010108104f70656e00000018436c6f73656404006901013c54687265616457686974656c697374000100004903085870616c6c65745f70726f706f73616c735f636f646578205261774576656e74106447656e6572616c50726f706f73616c506172616d6574657273014d034450726f706f73616c44657461696c734f660151032850726f706f73616c49640110205468726561644964012801043c50726f706f73616c43726561746564100010012850726f706f73616c496400004d03016447656e6572616c50726f706f73616c506172616d657465727300005103014450726f706f73616c44657461696c734f660000280120546872656164496400001858412070726f706f73616c2077617320637265617465641c506172616d733afc2d204964206f662061206e65776c7920637265617465642070726f706f73616c2061667465722069742077617320736176656420696e2073746f726167652e01012d2047656e6572616c2070726f706f73616c20706172616d657465722e20506172616d65746572732073686172656420627920616c6c2070726f706f73616c7349012d2050726f706f73616c2044657461696c732e20506172616d65746572206f662070726f706f73616c207769746820612076617269616e7420666f722065616368206b696e64206f662070726f706f73616c9c2d204964206f662061206e65776c7920637265617465642070726f706f73616c20746872656164085c4576656e747320666f722074686973206d6f64756c652e004d030c5870616c6c65745f70726f706f73616c735f636f6465781474797065735447656e6572616c50726f706f73616c506172616d730c204d656d62657249640128244163636f756e74496401002c426c6f636b4e756d6265720110001401246d656d6265725f69642801204d656d62657249640001147469746c6530011c5665633c75383e00012c6465736372697074696f6e30011c5665633c75383e0001487374616b696e675f6163636f756e745f69649401444f7074696f6e3c4163636f756e7449643e00015465786163745f657865637574696f6e5f626c6f636b0102014c4f7074696f6e3c426c6f636b4e756d6265723e000051030c5870616c6c65745f70726f706f73616c735f636f6465781474797065733c50726f706f73616c44657461696c731c1c42616c616e636501182c426c6f636b4e756d6265720110244163636f756e744964010020576f726b657249640128244f70656e696e67496401282850726f706f73616c49640110785570646174654368616e6e656c5061796f757473506172616d6574657273017102015c185369676e616c040030011c5665633c75383e0000003852756e74696d6555706772616465040030011c5665633c75383e0001003846756e64696e67526571756573740400550301c45665633c46756e64696e6752657175657374506172616d65746572733c42616c616e63652c204163636f756e7449643e3e000200505365744d617856616c696461746f72436f756e74040010010c75333200030074437265617465576f726b696e6747726f75704c6561644f70656e696e6704005d0301b44372656174654f70656e696e67506172616d65746572733c426c6f636b4e756d6265722c2042616c616e63653e0004006c46696c6c576f726b696e6747726f75704c6561644f70656e696e6704006503015446696c6c4f70656e696e67506172616d657465727300050060557064617465576f726b696e6747726f75704275646765740c0018011c42616c616e6365000099010130576f726b696e6747726f757000009d01012c42616c616e63654b696e64000600744465637265617365576f726b696e6747726f75704c6561645374616b650c00280120576f726b65724964000018011c42616c616e6365000099010130576f726b696e6747726f757000070054536c617368576f726b696e6747726f75704c6561640c00280120576f726b65724964000018011c42616c616e6365000099010130576f726b696e6747726f757000080064536574576f726b696e6747726f75704c6561645265776172640c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e000099010130576f726b696e6747726f7570000900645465726d696e617465576f726b696e6747726f75704c6561640400690301a85465726d696e617465526f6c65506172616d65746572733c576f726b657249642c2042616c616e63653e000a0044416d656e64436f6e737469747574696f6e040030011c5665633c75383e000b007443616e63656c576f726b696e6747726f75704c6561644f70656e696e6708002801244f70656e696e674964000099010130576f726b696e6747726f7570000c00485365744d656d626572736869705072696365040018011c42616c616e6365000d0064536574436f756e63696c427564676574496e6372656d656e74040018011c42616c616e6365000e0048536574436f756e63696c6f72526577617264040018011c42616c616e6365000f006c536574496e697469616c496e7669746174696f6e42616c616e6365040018011c42616c616e636500100064536574496e697469616c496e7669746174696f6e436f756e74040010010c753332001100805365744d656d626572736869704c656164496e7669746174696f6e51756f7461040010010c75333200120038536574526566657272616c43757404000801087538001300305665746f50726f706f73616c040010012850726f706f73616c496400140050557064617465476c6f62616c4e66744c696d69740800890201384e66744c696d6974506572696f64000028010c753634001500505570646174654368616e6e656c5061796f7574730400710201785570646174654368616e6e656c5061796f757473506172616d65746572730016000055030000025903005903083470616c6c65745f636f6d6d6f6e6046756e64696e6752657175657374506172616d6574657273081c42616c616e63650118244163636f756e74496401000008011c6163636f756e740001244163636f756e744964000118616d6f756e7418011c42616c616e636500005d030c5870616c6c65745f70726f706f73616c735f636f6465781474797065735c4372656174654f70656e696e67506172616d6574657273082c426c6f636b4e756d62657201101c42616c616e636501180010012c6465736372697074696f6e30011c5665633c75383e0001307374616b655f706f6c696379610301845374616b65506f6c6963793c426c6f636b4e756d6265722c2042616c616e63653e0001407265776172645f7065725f626c6f636b4501013c4f7074696f6e3c42616c616e63653e00011467726f757099010130576f726b696e6747726f7570000061030c5070616c6c65745f776f726b696e675f67726f75701474797065732c5374616b65506f6c696379082c426c6f636b4e756d62657201101c42616c616e63650118000801307374616b655f616d6f756e7418011c42616c616e63650001606c656176696e675f756e7374616b696e675f706572696f6410012c426c6f636b4e756d626572000065030c5870616c6c65745f70726f706f73616c735f636f6465781474797065735446696c6c4f70656e696e67506172616d657465727300000c01286f70656e696e675f6964280160776f726b696e675f67726f75703a3a4f70656e696e6749640001386170706c69636174696f6e5f6964280170776f726b696e675f67726f75703a3a4170706c69636174696f6e4964000134776f726b696e675f67726f757099010130576f726b696e6747726f7570000069030c5870616c6c65745f70726f706f73616c735f636f6465781474797065735c5465726d696e617465526f6c65506172616d65746572730820576f726b6572496401281c42616c616e63650118000c0124776f726b65725f6964280120576f726b6572496400013c736c617368696e675f616d6f756e744501013c4f7074696f6e3c42616c616e63653e00011467726f757099010130576f726b696e6747726f757000006d03085070616c6c65745f776f726b696e675f67726f7570205261774576656e7430244f70656e696e6749640128344170706c69636174696f6e49640128684170706c69636174696f6e4964546f576f726b657249644d617001710320576f726b657249640128244163636f756e74496401001c42616c616e636501182c4f70656e696e6754797065017d032c5374616b65506f6c696379016103604170706c794f6e4f70656e696e67506172616d6574657273018103204d656d626572496401281048617368012c04490189030164304f70656e696e67416464656414002801244f70656e696e674964000030011c5665633c75383e00007d03012c4f70656e696e675479706500006103012c5374616b65506f6c69637900004501013c4f7074696f6e3c42616c616e63653e00001c80456d697473206f6e20616464696e67206e6577206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e67206964342d204465736372697074696f6e782d204f70656e696e672054797065284c656164206f7220576f726b657229782d205374616b6520506f6c69637920666f7220746865206f70656e696e67482d205265776172642070657220626c6f636b404170706c6965644f6e4f70656e696e670800810301604170706c794f6e4f70656e696e67506172616d657465727300002801344170706c69636174696f6e4964000110dc456d697473206f6e20616464696e6720746865206170706c69636174696f6e20666f722074686520776f726b6572206f70656e696e672e1c506172616d733a542d204f70656e696e6720706172616d657465726573402d204170706c69636174696f6e206964344f70656e696e6746696c6c65640c002801244f70656e696e6749640000710301684170706c69636174696f6e4964546f576f726b657249644d617000006901015c42547265655365743c4170706c69636174696f6e49643e00021484456d697473206f6e2066696c6c696e6720746865206a6f62206f70656e696e672e1c506172616d733a4c2d20576f726b6572206f70656e696e67206964cc2d20576f726b6572206170706c69636174696f6e20696420746f2074686520776f726b65722069642064696374696f6e617279ac2d204170706c69636174696f6e6420696473207573656420746f2066696c6c20746865206f70656e696e67244c65616465725365740400280120576f726b6572496400030c88456d697473206f6e2073657474696e67207468652067726f7570206c65616465722e1c506172616d733a482d2047726f757020776f726b65722069642e60576f726b6572526f6c654163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964000410c4456d697473206f6e207570646174696e672074686520726f6c65206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e802d20526f6c65206163636f756e74206964206f662074686520776f726b65722e2c4c6561646572556e7365740005047c456d697473206f6e20756e2d73657474696e6720746865206c65616465722e30576f726b65724578697465640400280120576f726b6572496400061070456d697473206f6e2065786974696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e302d20526174696f6e616c652e50576f726b6572537461727465644c656176696e670800280120576f726b6572496400003101013c4f7074696f6e3c5665633c75383e3e000710b4456d697473207768656e20776f726b65722073746172746564206c656176696e6720746865697220726f6c652e1c506172616d733a302d20576f726b65722069642e302d20526174696f6e616c652e405465726d696e61746564576f726b65720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00081480456d697473206f6e207465726d696e6174696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e405465726d696e617465644c65616465720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00091480456d697473206f6e207465726d696e6174696e6720746865206c65616465722e1c506172616d733a4c2d206c656164657220776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e305374616b65536c61736865641000280120576f726b65724964000018011c42616c616e6365000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e000a18c0456d697473206f6e20736c617368696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e642d2061637475616c20736c61736865642062616c616e63652e702d2052657175657374656420736c61736865642062616c616e63652e302d20526174696f6e616c652e385374616b654465637265617365640800280120576f726b65724964000018011c42616c616e6365000b10c8456d697473206f6e2064656372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74385374616b65496e637265617365640800280120576f726b65724964000018011c42616c616e6365000c10c8456d697473206f6e20696e6372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74504170706c69636174696f6e57697468647261776e04002801344170706c69636174696f6e4964000d0c2501456d697473206f6e207769746864726177696e6720746865206170706c69636174696f6e20666f722074686520726567756c617220776f726b65722f6c656164206f70656e696e672e1c506172616d733a502d204a6f62206170706c69636174696f6e2069643c4f70656e696e6743616e63656c656404002801244f70656e696e674964000e0c8c456d697473206f6e2063616e63656c696e6720746865206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e6720696424427564676574536574040018011c42616c616e6365000f0cc8456d697473206f6e2073657474696e67207468652062756467657420666f722074686520776f726b696e672067726f75702e1c506172616d733a302d206e65772062756467657468576f726b65725265776172644163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964001010cc456d697473206f6e207570646174696e672074686520726577617264206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e882d20526577617264206163636f756e74206964206f662074686520776f726b65722e64576f726b6572526577617264416d6f756e74557064617465640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e001110c8456d697473206f6e207570646174696e67207468652072657761726420616d6f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e482d205265776172642070657220626c6f636b44537461747573546578744368616e67656408002c01104861736800003101013c4f7074696f6e3c5665633c75383e3e001210dc456d697473206f6e207570646174696e6720746865207374617475732074657874206f662074686520776f726b696e672067726f75702e1c506172616d733a482d2073746174757320746578742068617368342d207374617475732074657874384275646765745370656e64696e670c000001244163636f756e744964000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e001314c8456d697473206f6e206275646765742066726f6d2074686520776f726b696e672067726f7570206265696e67207370656e741c506172616d733a582d205265636569766572204163636f756e742049642e402d2042616c616e6365207370656e742e302d20526174696f6e616c652e28526577617264506169641000280120576f726b6572496400000001244163636f756e744964000018011c42616c616e636500008d0301445265776172645061796d656e74547970650014186c456d697473206f6e20706179696e6720746865207265776172642e1c506172616d733a4c2d204964206f662074686520776f726b65722e582d205265636569766572204163636f756e742049642e202d20526577617264b42d205061796d656e74207479706520286d697373656420726577617264206f7220726567756c6172206f6e65296c4e65774d69737365645265776172644c6576656c526561636865640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00151090456d697473206f6e207265616368696e67206e6577206d6973736564207265776172642e1c506172616d733a302d20576f726b65722049442ee82d204d69737365642072657761726420286f7074696f6e616c292e204e6f6e65206d65616e7320276e6f206d697373656420726577617264272e60576f726b696e6747726f757042756467657446756e6465640c002801204d656d6265724964000018011c42616c616e6365000030011c5665633c75383e0016147846756e642074686520776f726b696e672067726f7570206275646765742e1c506172616d733a2c2d204d656d6265722049444c2d20416d6f756e74206f662062616c616e63652c2d20526174696f6e616c65304c65616452656d61726b6564040030011c5665633c75383e00170c94456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a242d206d65737361676538576f726b657252656d61726b65640800280120576f726b65724964000030011c5665633c75383e00181094456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a202d20776f726b6572242d206d6573736167650c5c4576656e747320666f722074686973206d6f64756c652e00385f47726f75705f206576656e74737103042042547265654d617008044b012804560128000400750300000075030000027903007903000004082828007d030c5070616c6c65745f776f726b696e675f67726f75701474797065732c4f70656e696e6754797065000108184c65616465720000001c526567756c61720001000081030c5070616c6c65745f776f726b696e675f67726f7570147479706573504170706c794f6e4f70656e696e67506172616d7310204d656d62657249640128244f70656e696e6749640128244163636f756e74496401001c42616c616e63650118001801246d656d6265725f69642801204d656d62657249640001286f70656e696e675f69642801244f70656e696e67496400013c726f6c655f6163636f756e745f69640001244163636f756e7449640001447265776172645f6163636f756e745f69640001244163636f756e74496400012c6465736372697074696f6e30011c5665633c75383e0001407374616b655f706172616d65746572738503018c5374616b65506172616d65746572733c4163636f756e7449642c2042616c616e63653e000085030c5070616c6c65745f776f726b696e675f67726f75701474797065733c5374616b65506172616d657465727308244163636f756e74496401001c42616c616e63650118000801147374616b6518011c42616c616e63650001487374616b696e675f6163636f756e745f69640001244163636f756e74496400008903085070616c6c65745f776f726b696e675f67726f757024496e7374616e636531000000008d030c5070616c6c65745f776f726b696e675f67726f7570147479706573445265776172645061796d656e7454797065000108304d697373656452657761726400000034526567756c6172526577617264000100009103085070616c6c65745f776f726b696e675f67726f7570205261774576656e7430244f70656e696e6749640128344170706c69636174696f6e49640128684170706c69636174696f6e4964546f576f726b657249644d617001710320576f726b657249640128244163636f756e74496401001c42616c616e636501182c4f70656e696e6754797065017d032c5374616b65506f6c696379016103604170706c794f6e4f70656e696e67506172616d6574657273018103204d656d626572496401281048617368012c04490195030164304f70656e696e67416464656414002801244f70656e696e674964000030011c5665633c75383e00007d03012c4f70656e696e675479706500006103012c5374616b65506f6c69637900004501013c4f7074696f6e3c42616c616e63653e00001c80456d697473206f6e20616464696e67206e6577206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e67206964342d204465736372697074696f6e782d204f70656e696e672054797065284c656164206f7220576f726b657229782d205374616b6520506f6c69637920666f7220746865206f70656e696e67482d205265776172642070657220626c6f636b404170706c6965644f6e4f70656e696e670800810301604170706c794f6e4f70656e696e67506172616d657465727300002801344170706c69636174696f6e4964000110dc456d697473206f6e20616464696e6720746865206170706c69636174696f6e20666f722074686520776f726b6572206f70656e696e672e1c506172616d733a542d204f70656e696e6720706172616d657465726573402d204170706c69636174696f6e206964344f70656e696e6746696c6c65640c002801244f70656e696e6749640000710301684170706c69636174696f6e4964546f576f726b657249644d617000006901015c42547265655365743c4170706c69636174696f6e49643e00021484456d697473206f6e2066696c6c696e6720746865206a6f62206f70656e696e672e1c506172616d733a4c2d20576f726b6572206f70656e696e67206964cc2d20576f726b6572206170706c69636174696f6e20696420746f2074686520776f726b65722069642064696374696f6e617279ac2d204170706c69636174696f6e6420696473207573656420746f2066696c6c20746865206f70656e696e67244c65616465725365740400280120576f726b6572496400030c88456d697473206f6e2073657474696e67207468652067726f7570206c65616465722e1c506172616d733a482d2047726f757020776f726b65722069642e60576f726b6572526f6c654163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964000410c4456d697473206f6e207570646174696e672074686520726f6c65206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e802d20526f6c65206163636f756e74206964206f662074686520776f726b65722e2c4c6561646572556e7365740005047c456d697473206f6e20756e2d73657474696e6720746865206c65616465722e30576f726b65724578697465640400280120576f726b6572496400061070456d697473206f6e2065786974696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e302d20526174696f6e616c652e50576f726b6572537461727465644c656176696e670800280120576f726b6572496400003101013c4f7074696f6e3c5665633c75383e3e000710b4456d697473207768656e20776f726b65722073746172746564206c656176696e6720746865697220726f6c652e1c506172616d733a302d20576f726b65722069642e302d20526174696f6e616c652e405465726d696e61746564576f726b65720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00081480456d697473206f6e207465726d696e6174696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e405465726d696e617465644c65616465720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00091480456d697473206f6e207465726d696e6174696e6720746865206c65616465722e1c506172616d733a4c2d206c656164657220776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e305374616b65536c61736865641000280120576f726b65724964000018011c42616c616e6365000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e000a18c0456d697473206f6e20736c617368696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e642d2061637475616c20736c61736865642062616c616e63652e702d2052657175657374656420736c61736865642062616c616e63652e302d20526174696f6e616c652e385374616b654465637265617365640800280120576f726b65724964000018011c42616c616e6365000b10c8456d697473206f6e2064656372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74385374616b65496e637265617365640800280120576f726b65724964000018011c42616c616e6365000c10c8456d697473206f6e20696e6372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74504170706c69636174696f6e57697468647261776e04002801344170706c69636174696f6e4964000d0c2501456d697473206f6e207769746864726177696e6720746865206170706c69636174696f6e20666f722074686520726567756c617220776f726b65722f6c656164206f70656e696e672e1c506172616d733a502d204a6f62206170706c69636174696f6e2069643c4f70656e696e6743616e63656c656404002801244f70656e696e674964000e0c8c456d697473206f6e2063616e63656c696e6720746865206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e6720696424427564676574536574040018011c42616c616e6365000f0cc8456d697473206f6e2073657474696e67207468652062756467657420666f722074686520776f726b696e672067726f75702e1c506172616d733a302d206e65772062756467657468576f726b65725265776172644163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964001010cc456d697473206f6e207570646174696e672074686520726577617264206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e882d20526577617264206163636f756e74206964206f662074686520776f726b65722e64576f726b6572526577617264416d6f756e74557064617465640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e001110c8456d697473206f6e207570646174696e67207468652072657761726420616d6f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e482d205265776172642070657220626c6f636b44537461747573546578744368616e67656408002c01104861736800003101013c4f7074696f6e3c5665633c75383e3e001210dc456d697473206f6e207570646174696e6720746865207374617475732074657874206f662074686520776f726b696e672067726f75702e1c506172616d733a482d2073746174757320746578742068617368342d207374617475732074657874384275646765745370656e64696e670c000001244163636f756e744964000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e001314c8456d697473206f6e206275646765742066726f6d2074686520776f726b696e672067726f7570206265696e67207370656e741c506172616d733a582d205265636569766572204163636f756e742049642e402d2042616c616e6365207370656e742e302d20526174696f6e616c652e28526577617264506169641000280120576f726b6572496400000001244163636f756e744964000018011c42616c616e636500008d0301445265776172645061796d656e74547970650014186c456d697473206f6e20706179696e6720746865207265776172642e1c506172616d733a4c2d204964206f662074686520776f726b65722e582d205265636569766572204163636f756e742049642e202d20526577617264b42d205061796d656e74207479706520286d697373656420726577617264206f7220726567756c6172206f6e65296c4e65774d69737365645265776172644c6576656c526561636865640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00151090456d697473206f6e207265616368696e67206e6577206d6973736564207265776172642e1c506172616d733a302d20576f726b65722049442ee82d204d69737365642072657761726420286f7074696f6e616c292e204e6f6e65206d65616e7320276e6f206d697373656420726577617264272e60576f726b696e6747726f757042756467657446756e6465640c002801204d656d6265724964000018011c42616c616e6365000030011c5665633c75383e0016147846756e642074686520776f726b696e672067726f7570206275646765742e1c506172616d733a2c2d204d656d6265722049444c2d20416d6f756e74206f662062616c616e63652c2d20526174696f6e616c65304c65616452656d61726b6564040030011c5665633c75383e00170c94456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a242d206d65737361676538576f726b657252656d61726b65640800280120576f726b65724964000030011c5665633c75383e00181094456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a202d20776f726b6572242d206d6573736167650c5c4576656e747320666f722074686973206d6f64756c652e00385f47726f75705f206576656e74739503085070616c6c65745f776f726b696e675f67726f757024496e7374616e636532000000009903085070616c6c65745f776f726b696e675f67726f7570205261774576656e7430244f70656e696e6749640128344170706c69636174696f6e49640128684170706c69636174696f6e4964546f576f726b657249644d617001710320576f726b657249640128244163636f756e74496401001c42616c616e636501182c4f70656e696e6754797065017d032c5374616b65506f6c696379016103604170706c794f6e4f70656e696e67506172616d6574657273018103204d656d626572496401281048617368012c0449019d030164304f70656e696e67416464656414002801244f70656e696e674964000030011c5665633c75383e00007d03012c4f70656e696e675479706500006103012c5374616b65506f6c69637900004501013c4f7074696f6e3c42616c616e63653e00001c80456d697473206f6e20616464696e67206e6577206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e67206964342d204465736372697074696f6e782d204f70656e696e672054797065284c656164206f7220576f726b657229782d205374616b6520506f6c69637920666f7220746865206f70656e696e67482d205265776172642070657220626c6f636b404170706c6965644f6e4f70656e696e670800810301604170706c794f6e4f70656e696e67506172616d657465727300002801344170706c69636174696f6e4964000110dc456d697473206f6e20616464696e6720746865206170706c69636174696f6e20666f722074686520776f726b6572206f70656e696e672e1c506172616d733a542d204f70656e696e6720706172616d657465726573402d204170706c69636174696f6e206964344f70656e696e6746696c6c65640c002801244f70656e696e6749640000710301684170706c69636174696f6e4964546f576f726b657249644d617000006901015c42547265655365743c4170706c69636174696f6e49643e00021484456d697473206f6e2066696c6c696e6720746865206a6f62206f70656e696e672e1c506172616d733a4c2d20576f726b6572206f70656e696e67206964cc2d20576f726b6572206170706c69636174696f6e20696420746f2074686520776f726b65722069642064696374696f6e617279ac2d204170706c69636174696f6e6420696473207573656420746f2066696c6c20746865206f70656e696e67244c65616465725365740400280120576f726b6572496400030c88456d697473206f6e2073657474696e67207468652067726f7570206c65616465722e1c506172616d733a482d2047726f757020776f726b65722069642e60576f726b6572526f6c654163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964000410c4456d697473206f6e207570646174696e672074686520726f6c65206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e802d20526f6c65206163636f756e74206964206f662074686520776f726b65722e2c4c6561646572556e7365740005047c456d697473206f6e20756e2d73657474696e6720746865206c65616465722e30576f726b65724578697465640400280120576f726b6572496400061070456d697473206f6e2065786974696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e302d20526174696f6e616c652e50576f726b6572537461727465644c656176696e670800280120576f726b6572496400003101013c4f7074696f6e3c5665633c75383e3e000710b4456d697473207768656e20776f726b65722073746172746564206c656176696e6720746865697220726f6c652e1c506172616d733a302d20576f726b65722069642e302d20526174696f6e616c652e405465726d696e61746564576f726b65720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00081480456d697473206f6e207465726d696e6174696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e405465726d696e617465644c65616465720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00091480456d697473206f6e207465726d696e6174696e6720746865206c65616465722e1c506172616d733a4c2d206c656164657220776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e305374616b65536c61736865641000280120576f726b65724964000018011c42616c616e6365000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e000a18c0456d697473206f6e20736c617368696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e642d2061637475616c20736c61736865642062616c616e63652e702d2052657175657374656420736c61736865642062616c616e63652e302d20526174696f6e616c652e385374616b654465637265617365640800280120576f726b65724964000018011c42616c616e6365000b10c8456d697473206f6e2064656372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74385374616b65496e637265617365640800280120576f726b65724964000018011c42616c616e6365000c10c8456d697473206f6e20696e6372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74504170706c69636174696f6e57697468647261776e04002801344170706c69636174696f6e4964000d0c2501456d697473206f6e207769746864726177696e6720746865206170706c69636174696f6e20666f722074686520726567756c617220776f726b65722f6c656164206f70656e696e672e1c506172616d733a502d204a6f62206170706c69636174696f6e2069643c4f70656e696e6743616e63656c656404002801244f70656e696e674964000e0c8c456d697473206f6e2063616e63656c696e6720746865206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e6720696424427564676574536574040018011c42616c616e6365000f0cc8456d697473206f6e2073657474696e67207468652062756467657420666f722074686520776f726b696e672067726f75702e1c506172616d733a302d206e65772062756467657468576f726b65725265776172644163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964001010cc456d697473206f6e207570646174696e672074686520726577617264206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e882d20526577617264206163636f756e74206964206f662074686520776f726b65722e64576f726b6572526577617264416d6f756e74557064617465640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e001110c8456d697473206f6e207570646174696e67207468652072657761726420616d6f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e482d205265776172642070657220626c6f636b44537461747573546578744368616e67656408002c01104861736800003101013c4f7074696f6e3c5665633c75383e3e001210dc456d697473206f6e207570646174696e6720746865207374617475732074657874206f662074686520776f726b696e672067726f75702e1c506172616d733a482d2073746174757320746578742068617368342d207374617475732074657874384275646765745370656e64696e670c000001244163636f756e744964000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e001314c8456d697473206f6e206275646765742066726f6d2074686520776f726b696e672067726f7570206265696e67207370656e741c506172616d733a582d205265636569766572204163636f756e742049642e402d2042616c616e6365207370656e742e302d20526174696f6e616c652e28526577617264506169641000280120576f726b6572496400000001244163636f756e744964000018011c42616c616e636500008d0301445265776172645061796d656e74547970650014186c456d697473206f6e20706179696e6720746865207265776172642e1c506172616d733a4c2d204964206f662074686520776f726b65722e582d205265636569766572204163636f756e742049642e202d20526577617264b42d205061796d656e74207479706520286d697373656420726577617264206f7220726567756c6172206f6e65296c4e65774d69737365645265776172644c6576656c526561636865640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00151090456d697473206f6e207265616368696e67206e6577206d6973736564207265776172642e1c506172616d733a302d20576f726b65722049442ee82d204d69737365642072657761726420286f7074696f6e616c292e204e6f6e65206d65616e7320276e6f206d697373656420726577617264272e60576f726b696e6747726f757042756467657446756e6465640c002801204d656d6265724964000018011c42616c616e6365000030011c5665633c75383e0016147846756e642074686520776f726b696e672067726f7570206275646765742e1c506172616d733a2c2d204d656d6265722049444c2d20416d6f756e74206f662062616c616e63652c2d20526174696f6e616c65304c65616452656d61726b6564040030011c5665633c75383e00170c94456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a242d206d65737361676538576f726b657252656d61726b65640800280120576f726b65724964000030011c5665633c75383e00181094456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a202d20776f726b6572242d206d6573736167650c5c4576656e747320666f722074686973206d6f64756c652e00385f47726f75705f206576656e74739d03085070616c6c65745f776f726b696e675f67726f757024496e7374616e63653300000000a103085070616c6c65745f776f726b696e675f67726f7570205261774576656e7430244f70656e696e6749640128344170706c69636174696f6e49640128684170706c69636174696f6e4964546f576f726b657249644d617001710320576f726b657249640128244163636f756e74496401001c42616c616e636501182c4f70656e696e6754797065017d032c5374616b65506f6c696379016103604170706c794f6e4f70656e696e67506172616d6574657273018103204d656d626572496401281048617368012c044901a5030164304f70656e696e67416464656414002801244f70656e696e674964000030011c5665633c75383e00007d03012c4f70656e696e675479706500006103012c5374616b65506f6c69637900004501013c4f7074696f6e3c42616c616e63653e00001c80456d697473206f6e20616464696e67206e6577206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e67206964342d204465736372697074696f6e782d204f70656e696e672054797065284c656164206f7220576f726b657229782d205374616b6520506f6c69637920666f7220746865206f70656e696e67482d205265776172642070657220626c6f636b404170706c6965644f6e4f70656e696e670800810301604170706c794f6e4f70656e696e67506172616d657465727300002801344170706c69636174696f6e4964000110dc456d697473206f6e20616464696e6720746865206170706c69636174696f6e20666f722074686520776f726b6572206f70656e696e672e1c506172616d733a542d204f70656e696e6720706172616d657465726573402d204170706c69636174696f6e206964344f70656e696e6746696c6c65640c002801244f70656e696e6749640000710301684170706c69636174696f6e4964546f576f726b657249644d617000006901015c42547265655365743c4170706c69636174696f6e49643e00021484456d697473206f6e2066696c6c696e6720746865206a6f62206f70656e696e672e1c506172616d733a4c2d20576f726b6572206f70656e696e67206964cc2d20576f726b6572206170706c69636174696f6e20696420746f2074686520776f726b65722069642064696374696f6e617279ac2d204170706c69636174696f6e6420696473207573656420746f2066696c6c20746865206f70656e696e67244c65616465725365740400280120576f726b6572496400030c88456d697473206f6e2073657474696e67207468652067726f7570206c65616465722e1c506172616d733a482d2047726f757020776f726b65722069642e60576f726b6572526f6c654163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964000410c4456d697473206f6e207570646174696e672074686520726f6c65206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e802d20526f6c65206163636f756e74206964206f662074686520776f726b65722e2c4c6561646572556e7365740005047c456d697473206f6e20756e2d73657474696e6720746865206c65616465722e30576f726b65724578697465640400280120576f726b6572496400061070456d697473206f6e2065786974696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e302d20526174696f6e616c652e50576f726b6572537461727465644c656176696e670800280120576f726b6572496400003101013c4f7074696f6e3c5665633c75383e3e000710b4456d697473207768656e20776f726b65722073746172746564206c656176696e6720746865697220726f6c652e1c506172616d733a302d20576f726b65722069642e302d20526174696f6e616c652e405465726d696e61746564576f726b65720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00081480456d697473206f6e207465726d696e6174696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e405465726d696e617465644c65616465720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00091480456d697473206f6e207465726d696e6174696e6720746865206c65616465722e1c506172616d733a4c2d206c656164657220776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e305374616b65536c61736865641000280120576f726b65724964000018011c42616c616e6365000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e000a18c0456d697473206f6e20736c617368696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e642d2061637475616c20736c61736865642062616c616e63652e702d2052657175657374656420736c61736865642062616c616e63652e302d20526174696f6e616c652e385374616b654465637265617365640800280120576f726b65724964000018011c42616c616e6365000b10c8456d697473206f6e2064656372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74385374616b65496e637265617365640800280120576f726b65724964000018011c42616c616e6365000c10c8456d697473206f6e20696e6372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74504170706c69636174696f6e57697468647261776e04002801344170706c69636174696f6e4964000d0c2501456d697473206f6e207769746864726177696e6720746865206170706c69636174696f6e20666f722074686520726567756c617220776f726b65722f6c656164206f70656e696e672e1c506172616d733a502d204a6f62206170706c69636174696f6e2069643c4f70656e696e6743616e63656c656404002801244f70656e696e674964000e0c8c456d697473206f6e2063616e63656c696e6720746865206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e6720696424427564676574536574040018011c42616c616e6365000f0cc8456d697473206f6e2073657474696e67207468652062756467657420666f722074686520776f726b696e672067726f75702e1c506172616d733a302d206e65772062756467657468576f726b65725265776172644163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964001010cc456d697473206f6e207570646174696e672074686520726577617264206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e882d20526577617264206163636f756e74206964206f662074686520776f726b65722e64576f726b6572526577617264416d6f756e74557064617465640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e001110c8456d697473206f6e207570646174696e67207468652072657761726420616d6f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e482d205265776172642070657220626c6f636b44537461747573546578744368616e67656408002c01104861736800003101013c4f7074696f6e3c5665633c75383e3e001210dc456d697473206f6e207570646174696e6720746865207374617475732074657874206f662074686520776f726b696e672067726f75702e1c506172616d733a482d2073746174757320746578742068617368342d207374617475732074657874384275646765745370656e64696e670c000001244163636f756e744964000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e001314c8456d697473206f6e206275646765742066726f6d2074686520776f726b696e672067726f7570206265696e67207370656e741c506172616d733a582d205265636569766572204163636f756e742049642e402d2042616c616e6365207370656e742e302d20526174696f6e616c652e28526577617264506169641000280120576f726b6572496400000001244163636f756e744964000018011c42616c616e636500008d0301445265776172645061796d656e74547970650014186c456d697473206f6e20706179696e6720746865207265776172642e1c506172616d733a4c2d204964206f662074686520776f726b65722e582d205265636569766572204163636f756e742049642e202d20526577617264b42d205061796d656e74207479706520286d697373656420726577617264206f7220726567756c6172206f6e65296c4e65774d69737365645265776172644c6576656c526561636865640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00151090456d697473206f6e207265616368696e67206e6577206d6973736564207265776172642e1c506172616d733a302d20576f726b65722049442ee82d204d69737365642072657761726420286f7074696f6e616c292e204e6f6e65206d65616e7320276e6f206d697373656420726577617264272e60576f726b696e6747726f757042756467657446756e6465640c002801204d656d6265724964000018011c42616c616e6365000030011c5665633c75383e0016147846756e642074686520776f726b696e672067726f7570206275646765742e1c506172616d733a2c2d204d656d6265722049444c2d20416d6f756e74206f662062616c616e63652c2d20526174696f6e616c65304c65616452656d61726b6564040030011c5665633c75383e00170c94456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a242d206d65737361676538576f726b657252656d61726b65640800280120576f726b65724964000030011c5665633c75383e00181094456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a202d20776f726b6572242d206d6573736167650c5c4576656e747320666f722074686973206d6f64756c652e00385f47726f75705f206576656e7473a503085070616c6c65745f776f726b696e675f67726f757024496e7374616e63653400000000a903085070616c6c65745f776f726b696e675f67726f7570205261774576656e7430244f70656e696e6749640128344170706c69636174696f6e49640128684170706c69636174696f6e4964546f576f726b657249644d617001710320576f726b657249640128244163636f756e74496401001c42616c616e636501182c4f70656e696e6754797065017d032c5374616b65506f6c696379016103604170706c794f6e4f70656e696e67506172616d6574657273018103204d656d626572496401281048617368012c044901ad030164304f70656e696e67416464656414002801244f70656e696e674964000030011c5665633c75383e00007d03012c4f70656e696e675479706500006103012c5374616b65506f6c69637900004501013c4f7074696f6e3c42616c616e63653e00001c80456d697473206f6e20616464696e67206e6577206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e67206964342d204465736372697074696f6e782d204f70656e696e672054797065284c656164206f7220576f726b657229782d205374616b6520506f6c69637920666f7220746865206f70656e696e67482d205265776172642070657220626c6f636b404170706c6965644f6e4f70656e696e670800810301604170706c794f6e4f70656e696e67506172616d657465727300002801344170706c69636174696f6e4964000110dc456d697473206f6e20616464696e6720746865206170706c69636174696f6e20666f722074686520776f726b6572206f70656e696e672e1c506172616d733a542d204f70656e696e6720706172616d657465726573402d204170706c69636174696f6e206964344f70656e696e6746696c6c65640c002801244f70656e696e6749640000710301684170706c69636174696f6e4964546f576f726b657249644d617000006901015c42547265655365743c4170706c69636174696f6e49643e00021484456d697473206f6e2066696c6c696e6720746865206a6f62206f70656e696e672e1c506172616d733a4c2d20576f726b6572206f70656e696e67206964cc2d20576f726b6572206170706c69636174696f6e20696420746f2074686520776f726b65722069642064696374696f6e617279ac2d204170706c69636174696f6e6420696473207573656420746f2066696c6c20746865206f70656e696e67244c65616465725365740400280120576f726b6572496400030c88456d697473206f6e2073657474696e67207468652067726f7570206c65616465722e1c506172616d733a482d2047726f757020776f726b65722069642e60576f726b6572526f6c654163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964000410c4456d697473206f6e207570646174696e672074686520726f6c65206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e802d20526f6c65206163636f756e74206964206f662074686520776f726b65722e2c4c6561646572556e7365740005047c456d697473206f6e20756e2d73657474696e6720746865206c65616465722e30576f726b65724578697465640400280120576f726b6572496400061070456d697473206f6e2065786974696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e302d20526174696f6e616c652e50576f726b6572537461727465644c656176696e670800280120576f726b6572496400003101013c4f7074696f6e3c5665633c75383e3e000710b4456d697473207768656e20776f726b65722073746172746564206c656176696e6720746865697220726f6c652e1c506172616d733a302d20576f726b65722069642e302d20526174696f6e616c652e405465726d696e61746564576f726b65720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00081480456d697473206f6e207465726d696e6174696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e405465726d696e617465644c65616465720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00091480456d697473206f6e207465726d696e6174696e6720746865206c65616465722e1c506172616d733a4c2d206c656164657220776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e305374616b65536c61736865641000280120576f726b65724964000018011c42616c616e6365000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e000a18c0456d697473206f6e20736c617368696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e642d2061637475616c20736c61736865642062616c616e63652e702d2052657175657374656420736c61736865642062616c616e63652e302d20526174696f6e616c652e385374616b654465637265617365640800280120576f726b65724964000018011c42616c616e6365000b10c8456d697473206f6e2064656372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74385374616b65496e637265617365640800280120576f726b65724964000018011c42616c616e6365000c10c8456d697473206f6e20696e6372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74504170706c69636174696f6e57697468647261776e04002801344170706c69636174696f6e4964000d0c2501456d697473206f6e207769746864726177696e6720746865206170706c69636174696f6e20666f722074686520726567756c617220776f726b65722f6c656164206f70656e696e672e1c506172616d733a502d204a6f62206170706c69636174696f6e2069643c4f70656e696e6743616e63656c656404002801244f70656e696e674964000e0c8c456d697473206f6e2063616e63656c696e6720746865206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e6720696424427564676574536574040018011c42616c616e6365000f0cc8456d697473206f6e2073657474696e67207468652062756467657420666f722074686520776f726b696e672067726f75702e1c506172616d733a302d206e65772062756467657468576f726b65725265776172644163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964001010cc456d697473206f6e207570646174696e672074686520726577617264206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e882d20526577617264206163636f756e74206964206f662074686520776f726b65722e64576f726b6572526577617264416d6f756e74557064617465640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e001110c8456d697473206f6e207570646174696e67207468652072657761726420616d6f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e482d205265776172642070657220626c6f636b44537461747573546578744368616e67656408002c01104861736800003101013c4f7074696f6e3c5665633c75383e3e001210dc456d697473206f6e207570646174696e6720746865207374617475732074657874206f662074686520776f726b696e672067726f75702e1c506172616d733a482d2073746174757320746578742068617368342d207374617475732074657874384275646765745370656e64696e670c000001244163636f756e744964000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e001314c8456d697473206f6e206275646765742066726f6d2074686520776f726b696e672067726f7570206265696e67207370656e741c506172616d733a582d205265636569766572204163636f756e742049642e402d2042616c616e6365207370656e742e302d20526174696f6e616c652e28526577617264506169641000280120576f726b6572496400000001244163636f756e744964000018011c42616c616e636500008d0301445265776172645061796d656e74547970650014186c456d697473206f6e20706179696e6720746865207265776172642e1c506172616d733a4c2d204964206f662074686520776f726b65722e582d205265636569766572204163636f756e742049642e202d20526577617264b42d205061796d656e74207479706520286d697373656420726577617264206f7220726567756c6172206f6e65296c4e65774d69737365645265776172644c6576656c526561636865640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00151090456d697473206f6e207265616368696e67206e6577206d6973736564207265776172642e1c506172616d733a302d20576f726b65722049442ee82d204d69737365642072657761726420286f7074696f6e616c292e204e6f6e65206d65616e7320276e6f206d697373656420726577617264272e60576f726b696e6747726f757042756467657446756e6465640c002801204d656d6265724964000018011c42616c616e6365000030011c5665633c75383e0016147846756e642074686520776f726b696e672067726f7570206275646765742e1c506172616d733a2c2d204d656d6265722049444c2d20416d6f756e74206f662062616c616e63652c2d20526174696f6e616c65304c65616452656d61726b6564040030011c5665633c75383e00170c94456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a242d206d65737361676538576f726b657252656d61726b65640800280120576f726b65724964000030011c5665633c75383e00181094456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a202d20776f726b6572242d206d6573736167650c5c4576656e747320666f722074686973206d6f64756c652e00385f47726f75705f206576656e7473ad03085070616c6c65745f776f726b696e675f67726f757024496e7374616e63653500000000b103085070616c6c65745f776f726b696e675f67726f7570205261774576656e7430244f70656e696e6749640128344170706c69636174696f6e49640128684170706c69636174696f6e4964546f576f726b657249644d617001710320576f726b657249640128244163636f756e74496401001c42616c616e636501182c4f70656e696e6754797065017d032c5374616b65506f6c696379016103604170706c794f6e4f70656e696e67506172616d6574657273018103204d656d626572496401281048617368012c044901b5030164304f70656e696e67416464656414002801244f70656e696e674964000030011c5665633c75383e00007d03012c4f70656e696e675479706500006103012c5374616b65506f6c69637900004501013c4f7074696f6e3c42616c616e63653e00001c80456d697473206f6e20616464696e67206e6577206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e67206964342d204465736372697074696f6e782d204f70656e696e672054797065284c656164206f7220576f726b657229782d205374616b6520506f6c69637920666f7220746865206f70656e696e67482d205265776172642070657220626c6f636b404170706c6965644f6e4f70656e696e670800810301604170706c794f6e4f70656e696e67506172616d657465727300002801344170706c69636174696f6e4964000110dc456d697473206f6e20616464696e6720746865206170706c69636174696f6e20666f722074686520776f726b6572206f70656e696e672e1c506172616d733a542d204f70656e696e6720706172616d657465726573402d204170706c69636174696f6e206964344f70656e696e6746696c6c65640c002801244f70656e696e6749640000710301684170706c69636174696f6e4964546f576f726b657249644d617000006901015c42547265655365743c4170706c69636174696f6e49643e00021484456d697473206f6e2066696c6c696e6720746865206a6f62206f70656e696e672e1c506172616d733a4c2d20576f726b6572206f70656e696e67206964cc2d20576f726b6572206170706c69636174696f6e20696420746f2074686520776f726b65722069642064696374696f6e617279ac2d204170706c69636174696f6e6420696473207573656420746f2066696c6c20746865206f70656e696e67244c65616465725365740400280120576f726b6572496400030c88456d697473206f6e2073657474696e67207468652067726f7570206c65616465722e1c506172616d733a482d2047726f757020776f726b65722069642e60576f726b6572526f6c654163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964000410c4456d697473206f6e207570646174696e672074686520726f6c65206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e802d20526f6c65206163636f756e74206964206f662074686520776f726b65722e2c4c6561646572556e7365740005047c456d697473206f6e20756e2d73657474696e6720746865206c65616465722e30576f726b65724578697465640400280120576f726b6572496400061070456d697473206f6e2065786974696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e302d20526174696f6e616c652e50576f726b6572537461727465644c656176696e670800280120576f726b6572496400003101013c4f7074696f6e3c5665633c75383e3e000710b4456d697473207768656e20776f726b65722073746172746564206c656176696e6720746865697220726f6c652e1c506172616d733a302d20576f726b65722069642e302d20526174696f6e616c652e405465726d696e61746564576f726b65720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00081480456d697473206f6e207465726d696e6174696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e405465726d696e617465644c65616465720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00091480456d697473206f6e207465726d696e6174696e6720746865206c65616465722e1c506172616d733a4c2d206c656164657220776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e305374616b65536c61736865641000280120576f726b65724964000018011c42616c616e6365000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e000a18c0456d697473206f6e20736c617368696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e642d2061637475616c20736c61736865642062616c616e63652e702d2052657175657374656420736c61736865642062616c616e63652e302d20526174696f6e616c652e385374616b654465637265617365640800280120576f726b65724964000018011c42616c616e6365000b10c8456d697473206f6e2064656372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74385374616b65496e637265617365640800280120576f726b65724964000018011c42616c616e6365000c10c8456d697473206f6e20696e6372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74504170706c69636174696f6e57697468647261776e04002801344170706c69636174696f6e4964000d0c2501456d697473206f6e207769746864726177696e6720746865206170706c69636174696f6e20666f722074686520726567756c617220776f726b65722f6c656164206f70656e696e672e1c506172616d733a502d204a6f62206170706c69636174696f6e2069643c4f70656e696e6743616e63656c656404002801244f70656e696e674964000e0c8c456d697473206f6e2063616e63656c696e6720746865206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e6720696424427564676574536574040018011c42616c616e6365000f0cc8456d697473206f6e2073657474696e67207468652062756467657420666f722074686520776f726b696e672067726f75702e1c506172616d733a302d206e65772062756467657468576f726b65725265776172644163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964001010cc456d697473206f6e207570646174696e672074686520726577617264206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e882d20526577617264206163636f756e74206964206f662074686520776f726b65722e64576f726b6572526577617264416d6f756e74557064617465640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e001110c8456d697473206f6e207570646174696e67207468652072657761726420616d6f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e482d205265776172642070657220626c6f636b44537461747573546578744368616e67656408002c01104861736800003101013c4f7074696f6e3c5665633c75383e3e001210dc456d697473206f6e207570646174696e6720746865207374617475732074657874206f662074686520776f726b696e672067726f75702e1c506172616d733a482d2073746174757320746578742068617368342d207374617475732074657874384275646765745370656e64696e670c000001244163636f756e744964000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e001314c8456d697473206f6e206275646765742066726f6d2074686520776f726b696e672067726f7570206265696e67207370656e741c506172616d733a582d205265636569766572204163636f756e742049642e402d2042616c616e6365207370656e742e302d20526174696f6e616c652e28526577617264506169641000280120576f726b6572496400000001244163636f756e744964000018011c42616c616e636500008d0301445265776172645061796d656e74547970650014186c456d697473206f6e20706179696e6720746865207265776172642e1c506172616d733a4c2d204964206f662074686520776f726b65722e582d205265636569766572204163636f756e742049642e202d20526577617264b42d205061796d656e74207479706520286d697373656420726577617264206f7220726567756c6172206f6e65296c4e65774d69737365645265776172644c6576656c526561636865640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00151090456d697473206f6e207265616368696e67206e6577206d6973736564207265776172642e1c506172616d733a302d20576f726b65722049442ee82d204d69737365642072657761726420286f7074696f6e616c292e204e6f6e65206d65616e7320276e6f206d697373656420726577617264272e60576f726b696e6747726f757042756467657446756e6465640c002801204d656d6265724964000018011c42616c616e6365000030011c5665633c75383e0016147846756e642074686520776f726b696e672067726f7570206275646765742e1c506172616d733a2c2d204d656d6265722049444c2d20416d6f756e74206f662062616c616e63652c2d20526174696f6e616c65304c65616452656d61726b6564040030011c5665633c75383e00170c94456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a242d206d65737361676538576f726b657252656d61726b65640800280120576f726b65724964000030011c5665633c75383e00181094456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a202d20776f726b6572242d206d6573736167650c5c4576656e747320666f722074686973206d6f64756c652e00385f47726f75705f206576656e7473b503085070616c6c65745f776f726b696e675f67726f757024496e7374616e63653600000000b903085070616c6c65745f776f726b696e675f67726f7570205261774576656e7430244f70656e696e6749640128344170706c69636174696f6e49640128684170706c69636174696f6e4964546f576f726b657249644d617001710320576f726b657249640128244163636f756e74496401001c42616c616e636501182c4f70656e696e6754797065017d032c5374616b65506f6c696379016103604170706c794f6e4f70656e696e67506172616d6574657273018103204d656d626572496401281048617368012c044901bd030164304f70656e696e67416464656414002801244f70656e696e674964000030011c5665633c75383e00007d03012c4f70656e696e675479706500006103012c5374616b65506f6c69637900004501013c4f7074696f6e3c42616c616e63653e00001c80456d697473206f6e20616464696e67206e6577206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e67206964342d204465736372697074696f6e782d204f70656e696e672054797065284c656164206f7220576f726b657229782d205374616b6520506f6c69637920666f7220746865206f70656e696e67482d205265776172642070657220626c6f636b404170706c6965644f6e4f70656e696e670800810301604170706c794f6e4f70656e696e67506172616d657465727300002801344170706c69636174696f6e4964000110dc456d697473206f6e20616464696e6720746865206170706c69636174696f6e20666f722074686520776f726b6572206f70656e696e672e1c506172616d733a542d204f70656e696e6720706172616d657465726573402d204170706c69636174696f6e206964344f70656e696e6746696c6c65640c002801244f70656e696e6749640000710301684170706c69636174696f6e4964546f576f726b657249644d617000006901015c42547265655365743c4170706c69636174696f6e49643e00021484456d697473206f6e2066696c6c696e6720746865206a6f62206f70656e696e672e1c506172616d733a4c2d20576f726b6572206f70656e696e67206964cc2d20576f726b6572206170706c69636174696f6e20696420746f2074686520776f726b65722069642064696374696f6e617279ac2d204170706c69636174696f6e6420696473207573656420746f2066696c6c20746865206f70656e696e67244c65616465725365740400280120576f726b6572496400030c88456d697473206f6e2073657474696e67207468652067726f7570206c65616465722e1c506172616d733a482d2047726f757020776f726b65722069642e60576f726b6572526f6c654163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964000410c4456d697473206f6e207570646174696e672074686520726f6c65206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e802d20526f6c65206163636f756e74206964206f662074686520776f726b65722e2c4c6561646572556e7365740005047c456d697473206f6e20756e2d73657474696e6720746865206c65616465722e30576f726b65724578697465640400280120576f726b6572496400061070456d697473206f6e2065786974696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e302d20526174696f6e616c652e50576f726b6572537461727465644c656176696e670800280120576f726b6572496400003101013c4f7074696f6e3c5665633c75383e3e000710b4456d697473207768656e20776f726b65722073746172746564206c656176696e6720746865697220726f6c652e1c506172616d733a302d20576f726b65722069642e302d20526174696f6e616c652e405465726d696e61746564576f726b65720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00081480456d697473206f6e207465726d696e6174696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e405465726d696e617465644c65616465720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00091480456d697473206f6e207465726d696e6174696e6720746865206c65616465722e1c506172616d733a4c2d206c656164657220776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e305374616b65536c61736865641000280120576f726b65724964000018011c42616c616e6365000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e000a18c0456d697473206f6e20736c617368696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e642d2061637475616c20736c61736865642062616c616e63652e702d2052657175657374656420736c61736865642062616c616e63652e302d20526174696f6e616c652e385374616b654465637265617365640800280120576f726b65724964000018011c42616c616e6365000b10c8456d697473206f6e2064656372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74385374616b65496e637265617365640800280120576f726b65724964000018011c42616c616e6365000c10c8456d697473206f6e20696e6372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74504170706c69636174696f6e57697468647261776e04002801344170706c69636174696f6e4964000d0c2501456d697473206f6e207769746864726177696e6720746865206170706c69636174696f6e20666f722074686520726567756c617220776f726b65722f6c656164206f70656e696e672e1c506172616d733a502d204a6f62206170706c69636174696f6e2069643c4f70656e696e6743616e63656c656404002801244f70656e696e674964000e0c8c456d697473206f6e2063616e63656c696e6720746865206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e6720696424427564676574536574040018011c42616c616e6365000f0cc8456d697473206f6e2073657474696e67207468652062756467657420666f722074686520776f726b696e672067726f75702e1c506172616d733a302d206e65772062756467657468576f726b65725265776172644163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964001010cc456d697473206f6e207570646174696e672074686520726577617264206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e882d20526577617264206163636f756e74206964206f662074686520776f726b65722e64576f726b6572526577617264416d6f756e74557064617465640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e001110c8456d697473206f6e207570646174696e67207468652072657761726420616d6f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e482d205265776172642070657220626c6f636b44537461747573546578744368616e67656408002c01104861736800003101013c4f7074696f6e3c5665633c75383e3e001210dc456d697473206f6e207570646174696e6720746865207374617475732074657874206f662074686520776f726b696e672067726f75702e1c506172616d733a482d2073746174757320746578742068617368342d207374617475732074657874384275646765745370656e64696e670c000001244163636f756e744964000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e001314c8456d697473206f6e206275646765742066726f6d2074686520776f726b696e672067726f7570206265696e67207370656e741c506172616d733a582d205265636569766572204163636f756e742049642e402d2042616c616e6365207370656e742e302d20526174696f6e616c652e28526577617264506169641000280120576f726b6572496400000001244163636f756e744964000018011c42616c616e636500008d0301445265776172645061796d656e74547970650014186c456d697473206f6e20706179696e6720746865207265776172642e1c506172616d733a4c2d204964206f662074686520776f726b65722e582d205265636569766572204163636f756e742049642e202d20526577617264b42d205061796d656e74207479706520286d697373656420726577617264206f7220726567756c6172206f6e65296c4e65774d69737365645265776172644c6576656c526561636865640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00151090456d697473206f6e207265616368696e67206e6577206d6973736564207265776172642e1c506172616d733a302d20576f726b65722049442ee82d204d69737365642072657761726420286f7074696f6e616c292e204e6f6e65206d65616e7320276e6f206d697373656420726577617264272e60576f726b696e6747726f757042756467657446756e6465640c002801204d656d6265724964000018011c42616c616e6365000030011c5665633c75383e0016147846756e642074686520776f726b696e672067726f7570206275646765742e1c506172616d733a2c2d204d656d6265722049444c2d20416d6f756e74206f662062616c616e63652c2d20526174696f6e616c65304c65616452656d61726b6564040030011c5665633c75383e00170c94456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a242d206d65737361676538576f726b657252656d61726b65640800280120576f726b65724964000030011c5665633c75383e00181094456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a202d20776f726b6572242d206d6573736167650c5c4576656e747320666f722074686973206d6f64756c652e00385f47726f75705f206576656e7473bd03085070616c6c65745f776f726b696e675f67726f757024496e7374616e63653700000000c103085070616c6c65745f776f726b696e675f67726f7570205261774576656e7430244f70656e696e6749640128344170706c69636174696f6e49640128684170706c69636174696f6e4964546f576f726b657249644d617001710320576f726b657249640128244163636f756e74496401001c42616c616e636501182c4f70656e696e6754797065017d032c5374616b65506f6c696379016103604170706c794f6e4f70656e696e67506172616d6574657273018103204d656d626572496401281048617368012c044901c5030164304f70656e696e67416464656414002801244f70656e696e674964000030011c5665633c75383e00007d03012c4f70656e696e675479706500006103012c5374616b65506f6c69637900004501013c4f7074696f6e3c42616c616e63653e00001c80456d697473206f6e20616464696e67206e6577206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e67206964342d204465736372697074696f6e782d204f70656e696e672054797065284c656164206f7220576f726b657229782d205374616b6520506f6c69637920666f7220746865206f70656e696e67482d205265776172642070657220626c6f636b404170706c6965644f6e4f70656e696e670800810301604170706c794f6e4f70656e696e67506172616d657465727300002801344170706c69636174696f6e4964000110dc456d697473206f6e20616464696e6720746865206170706c69636174696f6e20666f722074686520776f726b6572206f70656e696e672e1c506172616d733a542d204f70656e696e6720706172616d657465726573402d204170706c69636174696f6e206964344f70656e696e6746696c6c65640c002801244f70656e696e6749640000710301684170706c69636174696f6e4964546f576f726b657249644d617000006901015c42547265655365743c4170706c69636174696f6e49643e00021484456d697473206f6e2066696c6c696e6720746865206a6f62206f70656e696e672e1c506172616d733a4c2d20576f726b6572206f70656e696e67206964cc2d20576f726b6572206170706c69636174696f6e20696420746f2074686520776f726b65722069642064696374696f6e617279ac2d204170706c69636174696f6e6420696473207573656420746f2066696c6c20746865206f70656e696e67244c65616465725365740400280120576f726b6572496400030c88456d697473206f6e2073657474696e67207468652067726f7570206c65616465722e1c506172616d733a482d2047726f757020776f726b65722069642e60576f726b6572526f6c654163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964000410c4456d697473206f6e207570646174696e672074686520726f6c65206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e802d20526f6c65206163636f756e74206964206f662074686520776f726b65722e2c4c6561646572556e7365740005047c456d697473206f6e20756e2d73657474696e6720746865206c65616465722e30576f726b65724578697465640400280120576f726b6572496400061070456d697473206f6e2065786974696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e302d20526174696f6e616c652e50576f726b6572537461727465644c656176696e670800280120576f726b6572496400003101013c4f7074696f6e3c5665633c75383e3e000710b4456d697473207768656e20776f726b65722073746172746564206c656176696e6720746865697220726f6c652e1c506172616d733a302d20576f726b65722069642e302d20526174696f6e616c652e405465726d696e61746564576f726b65720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00081480456d697473206f6e207465726d696e6174696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e405465726d696e617465644c65616465720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00091480456d697473206f6e207465726d696e6174696e6720746865206c65616465722e1c506172616d733a4c2d206c656164657220776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e305374616b65536c61736865641000280120576f726b65724964000018011c42616c616e6365000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e000a18c0456d697473206f6e20736c617368696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e642d2061637475616c20736c61736865642062616c616e63652e702d2052657175657374656420736c61736865642062616c616e63652e302d20526174696f6e616c652e385374616b654465637265617365640800280120576f726b65724964000018011c42616c616e6365000b10c8456d697473206f6e2064656372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74385374616b65496e637265617365640800280120576f726b65724964000018011c42616c616e6365000c10c8456d697473206f6e20696e6372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74504170706c69636174696f6e57697468647261776e04002801344170706c69636174696f6e4964000d0c2501456d697473206f6e207769746864726177696e6720746865206170706c69636174696f6e20666f722074686520726567756c617220776f726b65722f6c656164206f70656e696e672e1c506172616d733a502d204a6f62206170706c69636174696f6e2069643c4f70656e696e6743616e63656c656404002801244f70656e696e674964000e0c8c456d697473206f6e2063616e63656c696e6720746865206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e6720696424427564676574536574040018011c42616c616e6365000f0cc8456d697473206f6e2073657474696e67207468652062756467657420666f722074686520776f726b696e672067726f75702e1c506172616d733a302d206e65772062756467657468576f726b65725265776172644163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964001010cc456d697473206f6e207570646174696e672074686520726577617264206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e882d20526577617264206163636f756e74206964206f662074686520776f726b65722e64576f726b6572526577617264416d6f756e74557064617465640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e001110c8456d697473206f6e207570646174696e67207468652072657761726420616d6f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e482d205265776172642070657220626c6f636b44537461747573546578744368616e67656408002c01104861736800003101013c4f7074696f6e3c5665633c75383e3e001210dc456d697473206f6e207570646174696e6720746865207374617475732074657874206f662074686520776f726b696e672067726f75702e1c506172616d733a482d2073746174757320746578742068617368342d207374617475732074657874384275646765745370656e64696e670c000001244163636f756e744964000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e001314c8456d697473206f6e206275646765742066726f6d2074686520776f726b696e672067726f7570206265696e67207370656e741c506172616d733a582d205265636569766572204163636f756e742049642e402d2042616c616e6365207370656e742e302d20526174696f6e616c652e28526577617264506169641000280120576f726b6572496400000001244163636f756e744964000018011c42616c616e636500008d0301445265776172645061796d656e74547970650014186c456d697473206f6e20706179696e6720746865207265776172642e1c506172616d733a4c2d204964206f662074686520776f726b65722e582d205265636569766572204163636f756e742049642e202d20526577617264b42d205061796d656e74207479706520286d697373656420726577617264206f7220726567756c6172206f6e65296c4e65774d69737365645265776172644c6576656c526561636865640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00151090456d697473206f6e207265616368696e67206e6577206d6973736564207265776172642e1c506172616d733a302d20576f726b65722049442ee82d204d69737365642072657761726420286f7074696f6e616c292e204e6f6e65206d65616e7320276e6f206d697373656420726577617264272e60576f726b696e6747726f757042756467657446756e6465640c002801204d656d6265724964000018011c42616c616e6365000030011c5665633c75383e0016147846756e642074686520776f726b696e672067726f7570206275646765742e1c506172616d733a2c2d204d656d6265722049444c2d20416d6f756e74206f662062616c616e63652c2d20526174696f6e616c65304c65616452656d61726b6564040030011c5665633c75383e00170c94456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a242d206d65737361676538576f726b657252656d61726b65640800280120576f726b65724964000030011c5665633c75383e00181094456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a202d20776f726b6572242d206d6573736167650c5c4576656e747320666f722074686973206d6f64756c652e00385f47726f75705f206576656e7473c503085070616c6c65745f776f726b696e675f67726f757024496e7374616e63653800000000c903085070616c6c65745f776f726b696e675f67726f7570205261774576656e7430244f70656e696e6749640128344170706c69636174696f6e49640128684170706c69636174696f6e4964546f576f726b657249644d617001710320576f726b657249640128244163636f756e74496401001c42616c616e636501182c4f70656e696e6754797065017d032c5374616b65506f6c696379016103604170706c794f6e4f70656e696e67506172616d6574657273018103204d656d626572496401281048617368012c044901cd030164304f70656e696e67416464656414002801244f70656e696e674964000030011c5665633c75383e00007d03012c4f70656e696e675479706500006103012c5374616b65506f6c69637900004501013c4f7074696f6e3c42616c616e63653e00001c80456d697473206f6e20616464696e67206e6577206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e67206964342d204465736372697074696f6e782d204f70656e696e672054797065284c656164206f7220576f726b657229782d205374616b6520506f6c69637920666f7220746865206f70656e696e67482d205265776172642070657220626c6f636b404170706c6965644f6e4f70656e696e670800810301604170706c794f6e4f70656e696e67506172616d657465727300002801344170706c69636174696f6e4964000110dc456d697473206f6e20616464696e6720746865206170706c69636174696f6e20666f722074686520776f726b6572206f70656e696e672e1c506172616d733a542d204f70656e696e6720706172616d657465726573402d204170706c69636174696f6e206964344f70656e696e6746696c6c65640c002801244f70656e696e6749640000710301684170706c69636174696f6e4964546f576f726b657249644d617000006901015c42547265655365743c4170706c69636174696f6e49643e00021484456d697473206f6e2066696c6c696e6720746865206a6f62206f70656e696e672e1c506172616d733a4c2d20576f726b6572206f70656e696e67206964cc2d20576f726b6572206170706c69636174696f6e20696420746f2074686520776f726b65722069642064696374696f6e617279ac2d204170706c69636174696f6e6420696473207573656420746f2066696c6c20746865206f70656e696e67244c65616465725365740400280120576f726b6572496400030c88456d697473206f6e2073657474696e67207468652067726f7570206c65616465722e1c506172616d733a482d2047726f757020776f726b65722069642e60576f726b6572526f6c654163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964000410c4456d697473206f6e207570646174696e672074686520726f6c65206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e802d20526f6c65206163636f756e74206964206f662074686520776f726b65722e2c4c6561646572556e7365740005047c456d697473206f6e20756e2d73657474696e6720746865206c65616465722e30576f726b65724578697465640400280120576f726b6572496400061070456d697473206f6e2065786974696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e302d20526174696f6e616c652e50576f726b6572537461727465644c656176696e670800280120576f726b6572496400003101013c4f7074696f6e3c5665633c75383e3e000710b4456d697473207768656e20776f726b65722073746172746564206c656176696e6720746865697220726f6c652e1c506172616d733a302d20576f726b65722069642e302d20526174696f6e616c652e405465726d696e61746564576f726b65720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00081480456d697473206f6e207465726d696e6174696e672074686520776f726b65722e1c506172616d733a302d20776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e405465726d696e617465644c65616465720c00280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00003101013c4f7074696f6e3c5665633c75383e3e00091480456d697473206f6e207465726d696e6174696e6720746865206c65616465722e1c506172616d733a4c2d206c656164657220776f726b65722069642e282d2050656e616c74792e302d20526174696f6e616c652e305374616b65536c61736865641000280120576f726b65724964000018011c42616c616e6365000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e000a18c0456d697473206f6e20736c617368696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e642d2061637475616c20736c61736865642062616c616e63652e702d2052657175657374656420736c61736865642062616c616e63652e302d20526174696f6e616c652e385374616b654465637265617365640800280120576f726b65724964000018011c42616c616e6365000b10c8456d697473206f6e2064656372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74385374616b65496e637265617365640800280120576f726b65724964000018011c42616c616e6365000c10c8456d697473206f6e20696e6372656173696e672074686520726567756c617220776f726b65722f6c656164207374616b652e1c506172616d733a642d20726567756c617220776f726b65722f6c6561642069642e502d207374616b652064656c746120616d6f756e74504170706c69636174696f6e57697468647261776e04002801344170706c69636174696f6e4964000d0c2501456d697473206f6e207769746864726177696e6720746865206170706c69636174696f6e20666f722074686520726567756c617220776f726b65722f6c656164206f70656e696e672e1c506172616d733a502d204a6f62206170706c69636174696f6e2069643c4f70656e696e6743616e63656c656404002801244f70656e696e674964000e0c8c456d697473206f6e2063616e63656c696e6720746865206a6f62206f70656e696e672e1c506172616d733a302d204f70656e696e6720696424427564676574536574040018011c42616c616e6365000f0cc8456d697473206f6e2073657474696e67207468652062756467657420666f722074686520776f726b696e672067726f75702e1c506172616d733a302d206e65772062756467657468576f726b65725265776172644163636f756e74557064617465640800280120576f726b6572496400000001244163636f756e744964001010cc456d697473206f6e207570646174696e672074686520726577617264206163636f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e882d20526577617264206163636f756e74206964206f662074686520776f726b65722e64576f726b6572526577617264416d6f756e74557064617465640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e001110c8456d697473206f6e207570646174696e67207468652072657761726420616d6f756e74206f662074686520776f726b65722e1c506172616d733a4c2d204964206f662074686520776f726b65722e482d205265776172642070657220626c6f636b44537461747573546578744368616e67656408002c01104861736800003101013c4f7074696f6e3c5665633c75383e3e001210dc456d697473206f6e207570646174696e6720746865207374617475732074657874206f662074686520776f726b696e672067726f75702e1c506172616d733a482d2073746174757320746578742068617368342d207374617475732074657874384275646765745370656e64696e670c000001244163636f756e744964000018011c42616c616e636500003101013c4f7074696f6e3c5665633c75383e3e001314c8456d697473206f6e206275646765742066726f6d2074686520776f726b696e672067726f7570206265696e67207370656e741c506172616d733a582d205265636569766572204163636f756e742049642e402d2042616c616e6365207370656e742e302d20526174696f6e616c652e28526577617264506169641000280120576f726b6572496400000001244163636f756e744964000018011c42616c616e636500008d0301445265776172645061796d656e74547970650014186c456d697473206f6e20706179696e6720746865207265776172642e1c506172616d733a4c2d204964206f662074686520776f726b65722e582d205265636569766572204163636f756e742049642e202d20526577617264b42d205061796d656e74207479706520286d697373656420726577617264206f7220726567756c6172206f6e65296c4e65774d69737365645265776172644c6576656c526561636865640800280120576f726b6572496400004501013c4f7074696f6e3c42616c616e63653e00151090456d697473206f6e207265616368696e67206e6577206d6973736564207265776172642e1c506172616d733a302d20576f726b65722049442ee82d204d69737365642072657761726420286f7074696f6e616c292e204e6f6e65206d65616e7320276e6f206d697373656420726577617264272e60576f726b696e6747726f757042756467657446756e6465640c002801204d656d6265724964000018011c42616c616e6365000030011c5665633c75383e0016147846756e642074686520776f726b696e672067726f7570206275646765742e1c506172616d733a2c2d204d656d6265722049444c2d20416d6f756e74206f662062616c616e63652c2d20526174696f6e616c65304c65616452656d61726b6564040030011c5665633c75383e00170c94456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a242d206d65737361676538576f726b657252656d61726b65640800280120576f726b65724964000030011c5665633c75383e00181094456d697473206f6e204c656164206d616b696e6720612072656d61726b206d6573736167651c506172616d733a202d20776f726b6572242d206d6573736167650c5c4576656e747320666f722074686973206d6f64756c652e00385f47726f75705f206576656e7473cd03085070616c6c65745f776f726b696e675f67726f757024496e7374616e63653900000000d10308306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e00020000d5030000022c00d903000002dd0300dd0300000408101000e10308306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6ee503014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d65e903016473705f72756e74696d653a3a52756e74696d65537472696e670000e5030000061000e9030000050200ed030c306672616d655f73797374656d1870616c6c65741043616c6c0404540001201872656d61726b04011872656d61726b30011c5665633c75383e000010684d616b6520736f6d65206f6e2d636861696e2072656d61726b2e0034232320436f6d706c6578697479202d20604f28312960387365745f686561705f7061676573040114706167657328010c753634000104f853657420746865206e756d626572206f6620706167657320696e2074686520576562417373656d626c7920656e7669726f6e6d656e74277320686561702e207365745f636f6465040110636f646530011c5665633c75383e0002106453657420746865206e65772072756e74696d6520636f64652e0034232320436f6d706c657869747931012d20604f2843202b2053296020776865726520604360206c656e677468206f662060636f64656020616e642060536020636f6d706c6578697479206f66206063616e5f7365745f636f6465605c7365745f636f64655f776974686f75745f636865636b73040110636f646530011c5665633c75383e000310190153657420746865206e65772072756e74696d6520636f646520776974686f757420646f696e6720616e7920636865636b73206f662074686520676976656e2060636f6465602e0034232320436f6d706c65786974798c2d20604f2843296020776865726520604360206c656e677468206f662060636f6465602c7365745f73746f726167650401146974656d73f10301345665633c4b657956616c75653e0004046853657420736f6d65206974656d73206f662073746f726167652e306b696c6c5f73746f726167650401106b657973a90201205665633c4b65793e000504744b696c6c20736f6d65206974656d732066726f6d2073746f726167652e2c6b696c6c5f70726566697808011870726566697830010c4b657900011c7375626b65797310010c75333200061011014b696c6c20616c6c2073746f72616765206974656d7320776974682061206b657920746861742073746172747320776974682074686520676976656e207072656669782e0039012a2a4e4f54453a2a2a2057652072656c79206f6e2074686520526f6f74206f726967696e20746f2070726f7669646520757320746865206e756d626572206f66207375626b65797320756e6465723d0174686520707265666978207765206172652072656d6f76696e6720746f2061636375726174656c792063616c63756c6174652074686520776569676874206f6620746869732066756e6374696f6e2e4472656d61726b5f776974685f6576656e7404011872656d61726b30011c5665633c75383e000704a44d616b6520736f6d65206f6e2d636861696e2072656d61726b20616e6420656d6974206576656e742e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ef103000002f50300f50300000408303000f9030c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2001185765696768740001246d61785f626c6f636b2001185765696768740001247065725f636c617373fd0301845065724469737061746368436c6173733c57656967687473506572436c6173733e0000fd030c346672616d655f737570706f7274206469737061746368405065724469737061746368436c617373040454010104000c01186e6f726d616c010401045400012c6f7065726174696f6e616c01040104540001246d616e6461746f72790104010454000001040c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632001185765696768740001346d61785f65787472696e736963050401384f7074696f6e3c5765696768743e0001246d61785f746f74616c050401384f7074696f6e3c5765696768743e0001207265736572766564050401384f7074696f6e3c5765696768743e0000050404184f7074696f6e04045401200108104e6f6e6500000010536f6d65040020000001000009040c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d61780d0401545065724469737061746368436c6173733c7533323e00000d040c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f72791001045400001104082873705f776569676874733c52756e74696d65446257656967687400000801107265616428010c753634000114777269746528010c75363400001504082873705f76657273696f6e3852756e74696d6556657273696f6e0000200124737065635f6e616d65e903013452756e74696d65537472696e67000124696d706c5f6e616d65e903013452756e74696d65537472696e67000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c753332000110617069731904011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c75333200013473746174655f76657273696f6e080108753800001904040c436f77040454011d040004001d040000001d04000002210400210400000408250410002504000003080000000800290400000504002d040c306672616d655f73797374656d1870616c6c6574144572726f720404540001183c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e3043616c6c46696c7465726564000504d0546865206f726967696e2066696c7465722070726576656e74207468652063616c6c20746f20626520646973706174636865642e046c4572726f7220666f72207468652053797374656d2070616c6c657431040c3870616c6c65745f7574696c6974791870616c6c65741043616c6c04045400011814626174636804011463616c6c733504017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0000487c53656e642061206261746368206f662064697370617463682063616c6c732e00b04d61792062652063616c6c65642066726f6d20616e79206f726967696e2065786365707420604e6f6e65602e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e0055014966206f726967696e20697320726f6f74207468656e207468652063616c6c7320617265206469737061746368656420776974686f757420636865636b696e67206f726967696e2066696c7465722e202854686973ec696e636c7564657320627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e0034232320436f6d706c6578697479d02d204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e005501546869732077696c6c2072657475726e20604f6b6020696e20616c6c2063697263756d7374616e6365732e20546f2064657465726d696e65207468652073756363657373206f66207468652062617463682c20616e31016576656e74206973206465706f73697465642e20496620612063616c6c206661696c656420616e64207468652062617463682077617320696e7465727275707465642c207468656e207468655501604261746368496e74657272757074656460206576656e74206973206465706f73697465642c20616c6f6e67207769746820746865206e756d626572206f66207375636365737366756c2063616c6c73206d6164654d01616e6420746865206572726f72206f6620746865206661696c65642063616c6c2e20496620616c6c2077657265207375636365737366756c2c207468656e2074686520604261746368436f6d706c65746564604c6576656e74206973206465706f73697465642e3461735f64657269766174697665080114696e6465782904010c75313600011063616c6c3904017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000134dc53656e6420612063616c6c207468726f75676820616e20696e64657865642070736575646f6e796d206f66207468652073656e6465722e00550146696c7465722066726f6d206f726967696e206172652070617373656420616c6f6e672e205468652063616c6c2077696c6c2062652064697370617463686564207769746820616e206f726967696e207768696368bc757365207468652073616d652066696c74657220617320746865206f726967696e206f6620746869732063616c6c2e0045014e4f54453a20496620796f75206e65656420746f20656e73757265207468617420616e79206163636f756e742d62617365642066696c746572696e67206973206e6f7420686f6e6f7265642028692e652e61016265636175736520796f7520657870656374206070726f78796020746f2068617665206265656e2075736564207072696f7220696e207468652063616c6c20737461636b20616e6420796f7520646f206e6f742077616e7451017468652063616c6c207265737472696374696f6e7320746f206170706c7920746f20616e79207375622d6163636f756e7473292c207468656e20757365206061735f6d756c74695f7468726573686f6c645f31607c696e20746865204d756c74697369672070616c6c657420696e73746561642e00f44e4f54453a205072696f7220746f2076657273696f6e202a31322c2074686973207761732063616c6c6564206061735f6c696d697465645f737562602e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e2462617463685f616c6c04011463616c6c733504017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000234ec53656e642061206261746368206f662064697370617463682063616c6c7320616e642061746f6d6963616c6c792065786563757465207468656d2e21015468652077686f6c65207472616e73616374696f6e2077696c6c20726f6c6c6261636b20616e64206661696c20696620616e79206f66207468652063616c6c73206661696c65642e00b04d61792062652063616c6c65642066726f6d20616e79206f726967696e2065786365707420604e6f6e65602e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e0055014966206f726967696e20697320726f6f74207468656e207468652063616c6c7320617265206469737061746368656420776974686f757420636865636b696e67206f726967696e2066696c7465722e202854686973ec696e636c7564657320627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e0034232320436f6d706c6578697479d02d204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e2c64697370617463685f617308012461735f6f726967696e91060154426f783c543a3a50616c6c6574734f726967696e3e00011063616c6c3904017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000318c84469737061746368657320612066756e6374696f6e2063616c6c207769746820612070726f7669646564206f726967696e2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e0034232320436f6d706c65786974791c2d204f2831292e2c666f7263655f626174636804011463616c6c733504017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0004347c53656e642061206261746368206f662064697370617463682063616c6c732ed4556e6c696b6520606261746368602c20697420616c6c6f7773206572726f727320616e6420776f6e277420696e746572727570742e00b04d61792062652063616c6c65642066726f6d20616e79206f726967696e2065786365707420604e6f6e65602e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e004d014966206f726967696e20697320726f6f74207468656e207468652063616c6c732061726520646973706174636820776974686f757420636865636b696e67206f726967696e2066696c7465722e202854686973ec696e636c7564657320627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e0034232320436f6d706c6578697479d02d204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e2c776974685f77656967687408011063616c6c3904017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000118776569676874200118576569676874000518c4446973706174636820612066756e6374696f6e2063616c6c2077697468206120737065636966696564207765696768742e002d01546869732066756e6374696f6e20646f6573206e6f7420636865636b2074686520776569676874206f66207468652063616c6c2c20616e6420696e737465616420616c6c6f777320746865b8526f6f74206f726967696e20746f20737065636966792074686520776569676874206f66207468652063616c6c2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e3504000002390400390408586a6f7973747265616d5f6e6f64655f72756e74696d652c52756e74696d6543616c6c00018c1853797374656d0400ed0301ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e0000001c5574696c6974790400310401b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5574696c6974792c2052756e74696d653e000100104261626504003d0401a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c426162652c2052756e74696d653e0002002454696d657374616d700400610401b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e0003002042616c616e6365730400650401b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e00050068456c656374696f6e50726f76696465724d756c746950686173650400690401fd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c456c656374696f6e50726f76696465724d756c746950686173652c2052756e74696d653e0007001c5374616b696e670400550501b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5374616b696e672c2052756e74696d653e0008001c53657373696f6e0400790501b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53657373696f6e2c2052756e74696d653e0009001c4772616e6470610400850501b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4772616e6470612c2052756e74696d653e000b0020496d4f6e6c696e650400b50501b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c496d4f6e6c696e652c2052756e74696d653e000d0020426167734c6973740400d50501b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c426167734c6973742c2052756e74696d653e0010001c56657374696e670400d90501b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c56657374696e672c2052756e74696d653e001100204d756c74697369670400e10501b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d756c74697369672c2052756e74696d653e0012001c436f756e63696c0400e90501b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f756e63696c2c2052756e74696d653e001300285265666572656e64756d0400ed0501bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5265666572656e64756d2c2052756e74696d653e0014001c4d656d626572730400f10501b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d656d626572732c2052756e74696d653e00150014466f72756d0400f50501a90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c466f72756d2c2052756e74696d653e00160030436f6e737469747574696f6e0400f90501c50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f6e737469747574696f6e2c2052756e74696d653e00170018426f756e74790400fd0501ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c426f756e74792c2052756e74696d653e001800404a6f7973747265616d5574696c6974790400010601d50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4a6f7973747265616d5574696c6974792c2052756e74696d653e0019001c436f6e74656e740400050601b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f6e74656e742c2052756e74696d653e001a001c53746f726167650400350601b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53746f726167652c2052756e74696d653e001b003050726f6a656374546f6b656e0400390601c50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50726f6a656374546f6b656e2c2052756e74696d653e001c003c50726f706f73616c73456e67696e650400610601d10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50726f706f73616c73456e67696e652c2052756e74696d653e001d004c50726f706f73616c7344697363757373696f6e0400650601e10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50726f706f73616c7344697363757373696f6e2c2052756e74696d653e001e003850726f706f73616c73436f6465780400690601cd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50726f706f73616c73436f6465782c2052756e74696d653e001f0044466f72756d576f726b696e6747726f757004006d0601d90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c466f72756d576f726b696e6747726f75702c2052756e74696d653e0020004c53746f72616765576f726b696e6747726f75700400710601e10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53746f72616765576f726b696e6747726f75702c2052756e74696d653e0021004c436f6e74656e74576f726b696e6747726f75700400750601e10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f6e74656e74576f726b696e6747726f75702c2052756e74696d653e0022006c4f7065726174696f6e73576f726b696e6747726f7570416c7068610400790601010273656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4f7065726174696f6e73576f726b696e6747726f7570416c7068612c2052756e74696d653e0023003c417070576f726b696e6747726f757004007d0601d10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c417070576f726b696e6747726f75702c2052756e74696d653e002400584d656d62657273686970576f726b696e6747726f75700400810601ed0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d656d62657273686970576f726b696e6747726f75702c2052756e74696d653e002500684f7065726174696f6e73576f726b696e6747726f7570426574610400850601fd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4f7065726174696f6e73576f726b696e6747726f7570426574612c2052756e74696d653e0026006c4f7065726174696f6e73576f726b696e6747726f757047616d6d610400890601010273656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4f7065726174696f6e73576f726b696e6747726f757047616d6d612c2052756e74696d653e00270060446973747269627574696f6e576f726b696e6747726f757004008d0601f50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c446973747269627574696f6e576f726b696e6747726f75702c2052756e74696d653e002800003d040c2c70616c6c65745f626162651870616c6c65741043616c6c04045400010c4c7265706f72745f65717569766f636174696f6e08014865717569766f636174696f6e5f70726f6f6641040184426f783c45717569766f636174696f6e50726f6f663c543a3a4865616465723e3e00013c6b65795f6f776e65725f70726f6f6655040140543a3a4b65794f776e657250726f6f6600001009015265706f727420617574686f726974792065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667905017468652065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f660d01616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c306265207265706f727465642e707265706f72745f65717569766f636174696f6e5f756e7369676e656408014865717569766f636174696f6e5f70726f6f6641040184426f783c45717569766f636174696f6e50726f6f663c543a3a4865616465723e3e00013c6b65795f6f776e65725f70726f6f6655040140543a3a4b65794f776e657250726f6f6600012009015265706f727420617574686f726974792065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667905017468652065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f660d01616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c306265207265706f727465642e0d01546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c791501626c6f636b20617574686f72732077696c6c2063616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c2061732073756368150169662074686520626c6f636b20617574686f7220697320646566696e65642069742077696c6c20626520646566696e6564206173207468652065717569766f636174696f6e247265706f727465722e48706c616e5f636f6e6669675f6368616e6765040118636f6e666967590401504e657874436f6e66696744657363726970746f720002105d01506c616e20616e2065706f636820636f6e666967206368616e67652e205468652065706f636820636f6e666967206368616e6765206973207265636f7264656420616e642077696c6c20626520656e6163746564206f6e5101746865206e6578742063616c6c20746f2060656e6163745f65706f63685f6368616e6765602e2054686520636f6e6669672077696c6c20626520616374697661746564206f6e652065706f63682061667465722e59014d756c7469706c652063616c6c7320746f2074686973206d6574686f642077696c6c207265706c61636520616e79206578697374696e6720706c616e6e656420636f6e666967206368616e6765207468617420686164546e6f74206265656e20656e6163746564207965742e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e4104084873705f636f6e73656e7375735f736c6f74734445717569766f636174696f6e50726f6f660818486561646572014504084964014d04001001206f6666656e6465724d0401084964000110736c6f7451040110536c6f7400013066697273745f686561646572450401184865616465720001347365636f6e645f6865616465724504011848656164657200004504102873705f72756e74696d651c67656e65726963186865616465721848656164657208184e756d626572011010486173680149040014012c706172656e745f686173682c0130486173683a3a4f75747075740001186e756d626572e50301184e756d62657200012873746174655f726f6f742c0130486173683a3a4f757470757400013c65787472696e736963735f726f6f742c0130486173683a3a4f7574707574000118646967657374340118446967657374000049040c2873705f72756e74696d65187472616974732c426c616b6554776f323536000000004d040c4473705f636f6e73656e7375735f626162650c617070185075626c696300000400dc013c737232353531393a3a5075626c696300005104084873705f636f6e73656e7375735f736c6f747310536c6f740000040028010c75363400005504082873705f73657373696f6e3c4d656d6265727368697050726f6f6600000c011c73657373696f6e10013053657373696f6e496e646578000128747269655f6e6f646573a90201305665633c5665633c75383e3e00013c76616c696461746f725f636f756e7410013856616c696461746f72436f756e74000059040c4473705f636f6e73656e7375735f626162651c64696765737473504e657874436f6e66696744657363726970746f720001040856310801046379030128287536342c2075363429000134616c6c6f7765645f736c6f74735d040130416c6c6f776564536c6f7473000100005d04084473705f636f6e73656e7375735f6261626530416c6c6f776564536c6f747300010c305072696d617279536c6f7473000000745072696d617279416e645365636f6e64617279506c61696e536c6f74730001006c5072696d617279416e645365636f6e64617279565246536c6f74730002000061040c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f77240124543a3a4d6f6d656e7400003c54536574207468652063757272656e742074696d652e005501546869732063616c6c2073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6ed470686173652c20696620746869732063616c6c206861736e2774206265656e20696e766f6b656420627920746861742074696d652e0041015468652074696d657374616d702073686f756c642062652067726561746572207468616e207468652070726576696f7573206f6e652062792074686520616d6f756e742073706563696669656420627940604d696e696d756d506572696f64602e00d4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060496e686572656e74602e0034232320436f6d706c657869747931012d20604f2831296020284e6f7465207468617420696d706c656d656e746174696f6e73206f6620604f6e54696d657374616d7053657460206d75737420616c736f20626520604f283129602961012d20312073746f72616765207265616420616e6420312073746f72616765206d75746174696f6e2028636f64656320604f28312960292e202862656361757365206f6620604469645570646174653a3a74616b656020696e402020606f6e5f66696e616c697a656029d42d2031206576656e742068616e646c657220606f6e5f74696d657374616d705f736574602e204d75737420626520604f283129602e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e65040c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c080454000449000118207472616e73666572080110646573740001504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565ec0128543a3a42616c616e6365000058d45472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572206163636f756e742e000501607472616e73666572602077696c6c207365742074686520604672656542616c616e636560206f66207468652073656e64657220616e642072656365697665722e11014966207468652073656e6465722773206163636f756e742069732062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c74b06f6620746865207472616e736665722c20746865206163636f756e742077696c6c206265207265617065642e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520605369676e65646020627920746865207472616e736163746f722e0034232320436f6d706c657869747961012d20446570656e64656e74206f6e20617267756d656e747320627574206e6f7420637269746963616c2c20676976656e2070726f70657220696d706c656d656e746174696f6e7320666f7220696e70757420636f6e66696794202074797065732e205365652072656c617465642066756e6374696f6e732062656c6f772e31012d20497420636f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e642077726974657320696e7465726e616c6c7920616e64206e6f20636f6d706c6578382020636f6d7075746174696f6e2e004852656c617465642066756e6374696f6e733a004d0120202d2060656e737572655f63616e5f77697468647261776020697320616c776179732063616c6c656420696e7465726e616c6c792062757420686173206120626f756e64656420636f6d706c65786974792e290120202d205472616e7366657272696e672062616c616e63657320746f206163636f756e7473207468617420646964206e6f74206578697374206265666f72652077696c6c206361757365cc2020202060543a3a4f6e4e65774163636f756e743a3a6f6e5f6e65775f6163636f756e746020746f2062652063616c6c65642e5d0120202d2052656d6f76696e6720656e6f7567682066756e64732066726f6d20616e206163636f756e742077696c6c20747269676765722060543a3a4475737452656d6f76616c3a3a6f6e5f756e62616c616e636564602e5d0120202d20607472616e736665725f6b6565705f616c6976656020776f726b73207468652073616d652077617920617320607472616e73666572602c206275742068617320616e206164646974696f6e616c20636865636bdc202020207468617420746865207472616e736665722077696c6c206e6f74206b696c6c20746865206f726967696e206163636f756e742e2c7365745f62616c616e63650c010c77686f0001504163636f756e7449644c6f6f6b75704f663c543e0001206e65775f66726565ec0128543a3a42616c616e63650001306e65775f7265736572766564ec0128543a3a42616c616e636500012090536574207468652062616c616e636573206f66206120676976656e206163636f756e742e001d01546869732077696c6c20616c74657220604672656542616c616e63656020616e642060526573657276656442616c616e63656020696e2073746f726167652e2069742077696c6c3101616c736f20616c7465722074686520746f74616c2069737375616e6365206f66207468652073797374656d202860546f74616c49737375616e6365602920617070726f7072696174656c792e1501496620746865206e65772066726565206f722072657365727665642062616c616e63652069732062656c6f7720746865206578697374656e7469616c206465706f7369742cfc69742077696c6c20726573657420746865206163636f756e74206e6f6e63652028606672616d655f73797374656d3a3a4163636f756e744e6f6e636560292e00b0546865206469737061746368206f726967696e20666f7220746869732063616c6c2069732060726f6f74602e38666f7263655f7472616e736665720c0118736f757263650001504163636f756e7449644c6f6f6b75704f663c543e000110646573740001504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565ec0128543a3a42616c616e63650002144d0145786163746c7920617320607472616e73666572602c2065786365707420746865206f726967696e206d75737420626520726f6f7420616e642074686520736f75726365206163636f756e74206d6179206265287370656369666965642e34232320436f6d706c65786974794d012d2053616d65206173207472616e736665722c20627574206164646974696f6e616c207265616420616e6420777269746520626563617573652074686520736f75726365206163636f756e74206973206e6f747c2020617373756d656420746f20626520696e20746865206f7665726c61792e4c7472616e736665725f6b6565705f616c697665080110646573740001504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565ec0128543a3a42616c616e63650003184d0153616d6520617320746865205b607472616e73666572605d2063616c6c2c206275742077697468206120636865636b207468617420746865207472616e736665722077696c6c206e6f74206b696c6c207468653c6f726967696e206163636f756e742e00b8393925206f66207468652074696d6520796f752077616e74205b607472616e73666572605d20696e73746561642e00c05b607472616e73666572605d3a207374727563742e50616c6c65742e68746d6c236d6574686f642e7472616e73666572307472616e736665725f616c6c080110646573740001504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c697665980110626f6f6c00044005015472616e736665722074686520656e74697265207472616e7366657261626c652062616c616e63652066726f6d207468652063616c6c6572206163636f756e742e0059014e4f54453a20546869732066756e6374696f6e206f6e6c7920617474656d70747320746f207472616e73666572205f7472616e7366657261626c655f2062616c616e6365732e2054686973206d65616e7320746861746101616e79206c6f636b65642c2072657365727665642c206f72206578697374656e7469616c206465706f7369747320287768656e20606b6565705f616c6976656020697320607472756560292c2077696c6c206e6f742062655d017472616e7366657272656420627920746869732066756e6374696f6e2e20546f20656e73757265207468617420746869732066756e6374696f6e20726573756c747320696e2061206b696c6c6564206163636f756e742c4501796f75206d69676874206e65656420746f207072657061726520746865206163636f756e742062792072656d6f76696e6720616e79207265666572656e636520636f756e746572732c2073746f72616765406465706f736974732c206574632e2e2e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205369676e65642e00a02d206064657374603a2054686520726563697069656e74206f6620746865207472616e736665722e59012d20606b6565705f616c697665603a204120626f6f6c65616e20746f2064657465726d696e652069662074686520607472616e736665725f616c6c60206f7065726174696f6e2073686f756c642073656e6420616c6c4d0120206f66207468652066756e647320746865206163636f756e74206861732c2063617573696e67207468652073656e646572206163636f756e7420746f206265206b696c6c6564202866616c7365292c206f72590120207472616e736665722065766572797468696e6720657863657074206174206c6561737420746865206578697374656e7469616c206465706f7369742c2077686963682077696c6c2067756172616e74656520746fd420206b656570207468652073656e646572206163636f756e7420616c697665202874727565292e20232320436f6d706c657869747939012d204f2831292e204a757374206c696b65207472616e736665722c206275742072656164696e672074686520757365722773207472616e7366657261626c652062616c616e63652066697273742e3c666f7263655f756e7265736572766508010c77686f0001504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74180128543a3a42616c616e636500050cb0556e7265736572766520736f6d652062616c616e63652066726f6d2061207573657220627920666f7263652e006c43616e206f6e6c792062652063616c6c656420627920524f4f542e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e69040c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173651870616c6c65741043616c6c0404540001143c7375626d69745f756e7369676e65640801307261775f736f6c7574696f6e6d0401b0426f783c526177536f6c7574696f6e3c536f6c7574696f6e4f663c543a3a4d696e6572436f6e6669673e3e3e00011c7769746e6573733d050158536f6c7574696f6e4f72536e617073686f7453697a65000038a45375626d6974206120736f6c7574696f6e20666f722074686520756e7369676e65642070686173652e00c8546865206469737061746368206f726967696e20666f20746869732063616c6c206d757374206265205f5f6e6f6e655f5f2e003d0154686973207375626d697373696f6e20697320636865636b6564206f6e2074686520666c792e204d6f72656f7665722c207468697320756e7369676e656420736f6c7574696f6e206973206f6e6c79550176616c696461746564207768656e207375626d697474656420746f2074686520706f6f6c2066726f6d20746865202a2a6c6f63616c2a2a206e6f64652e204566666563746976656c792c2074686973206d65616e735d0174686174206f6e6c79206163746976652076616c696461746f72732063616e207375626d69742074686973207472616e73616374696f6e207768656e20617574686f72696e67206120626c6f636b202873696d696c617240746f20616e20696e686572656e74292e005901546f2070726576656e7420616e7920696e636f727265637420736f6c7574696f6e2028616e642074687573207761737465642074696d652f776569676874292c2074686973207472616e73616374696f6e2077696c6c4d0170616e69632069662074686520736f6c7574696f6e207375626d6974746564206279207468652076616c696461746f7220697320696e76616c696420696e20616e79207761792c206566666563746976656c799c70757474696e6720746865697220617574686f72696e6720726577617264206174207269736b2e00e04e6f206465706f736974206f7220726577617264206973206173736f63696174656420776974682074686973207375626d697373696f6e2e6c7365745f6d696e696d756d5f756e747275737465645f73636f72650401406d617962655f6e6578745f73636f7265410501544f7074696f6e3c456c656374696f6e53636f72653e000114b05365742061206e65772076616c756520666f7220604d696e696d756d556e7472757374656453636f7265602e00d84469737061746368206f726967696e206d75737420626520616c69676e656420776974682060543a3a466f7263654f726967696e602e00f05468697320636865636b2063616e206265207475726e6564206f66662062792073657474696e67207468652076616c756520746f20604e6f6e65602e747365745f656d657267656e63795f656c656374696f6e5f726573756c74040120737570706f72747345050158537570706f7274733c543a3a4163636f756e7449643e0002205901536574206120736f6c7574696f6e20696e207468652071756575652c20746f2062652068616e646564206f757420746f2074686520636c69656e74206f6620746869732070616c6c657420696e20746865206e6578748863616c6c20746f2060456c656374696f6e50726f76696465723a3a656c656374602e004501546869732063616e206f6e6c79206265207365742062792060543a3a466f7263654f726967696e602c20616e64206f6e6c79207768656e207468652070686173652069732060456d657267656e6379602e00610154686520736f6c7574696f6e206973206e6f7420636865636b656420666f7220616e7920666561736962696c69747920616e6420697320617373756d656420746f206265207472757374776f727468792c20617320616e795101666561736962696c69747920636865636b20697473656c662063616e20696e207072696e6369706c652063617573652074686520656c656374696f6e2070726f6365737320746f206661696c202864756520746f686d656d6f72792f77656967687420636f6e73747261696e73292e187375626d69740401307261775f736f6c7574696f6e6d0401b0426f783c526177536f6c7574696f6e3c536f6c7574696f6e4f663c543a3a4d696e6572436f6e6669673e3e3e0003249c5375626d6974206120736f6c7574696f6e20666f7220746865207369676e65642070686173652e00d0546865206469737061746368206f726967696e20666f20746869732063616c6c206d757374206265205f5f7369676e65645f5f2e005d0154686520736f6c7574696f6e20697320706f74656e7469616c6c79207175657565642c206261736564206f6e2074686520636c61696d65642073636f726520616e642070726f6365737365642061742074686520656e64506f6620746865207369676e65642070686173652e005d0141206465706f73697420697320726573657276656420616e64207265636f7264656420666f722074686520736f6c7574696f6e2e204261736564206f6e20746865206f7574636f6d652c2074686520736f6c7574696f6e15016d696768742062652072657761726465642c20736c61736865642c206f722067657420616c6c206f7220612070617274206f6620746865206465706f736974206261636b2e4c676f7665726e616e63655f66616c6c6261636b0801406d617962655f6d61785f766f746572730102012c4f7074696f6e3c7533323e0001446d617962655f6d61785f746172676574730102012c4f7074696f6e3c7533323e00041080547269676765722074686520676f7665726e616e63652066616c6c6261636b2e004901546869732063616e206f6e6c792062652063616c6c6564207768656e205b6050686173653a3a456d657267656e6379605d20697320656e61626c65642c20617320616e20616c7465726e617469766520746fc063616c6c696e67205b6043616c6c3a3a7365745f656d657267656e63795f656c656374696f6e5f726573756c74605d2e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e6d04089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173652c526177536f6c7574696f6e040453017104000c0120736f6c7574696f6e710401045300011473636f72659c0134456c656374696f6e53636f7265000114726f756e6410010c7533320000710408586a6f7973747265616d5f6e6f64655f72756e74696d65384e706f73536f6c7574696f6e31360000400118766f74657331750400000118766f74657332810400000118766f74657333950400000118766f74657334a10400000118766f74657335ad0400000118766f74657336b90400000118766f74657337c50400000118766f74657338d10400000118766f74657339dd040000011c766f7465733130e9040000011c766f7465733131f5040000011c766f746573313201050000011c766f74657331330d050000011c766f746573313419050000011c766f746573313525050000011c766f746573313631050000007504000002790400790400000408e5037d04007d04000006290400810400000285040085040000040ce50389047d04008904000004087d048d04008d0400000691040091040c3473705f61726974686d65746963287065725f7468696e677318506572553136000004002904010c7531360000950400000299040099040000040ce5039d047d04009d0400000302000000890400a104000002a50400a5040000040ce503a9047d0400a90400000303000000890400ad04000002b10400b1040000040ce503b5047d0400b50400000304000000890400b904000002bd0400bd040000040ce503c1047d0400c10400000305000000890400c504000002c90400c9040000040ce503cd047d0400cd0400000306000000890400d104000002d50400d5040000040ce503d9047d0400d90400000307000000890400dd04000002e10400e1040000040ce503e5047d0400e50400000308000000890400e904000002ed0400ed040000040ce503f1047d0400f10400000309000000890400f504000002f90400f9040000040ce503fd047d0400fd040000030a000000890400010500000205050005050000040ce50309057d040009050000030b0000008904000d0500000211050011050000040ce50315057d040015050000030c00000089040019050000021d05001d050000040ce50321057d040021050000030d000000890400250500000229050029050000040ce5032d057d04002d050000030e000000890400310500000235050035050000040ce50339057d040039050000030f0000008904003d05089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f706861736558536f6c7574696f6e4f72536e617073686f7453697a650000080118766f74657273e503010c75333200011c74617267657473e503010c7533320000410504184f7074696f6e040454019c0108104e6f6e6500000010536f6d6504009c00000100004505000002490500490500000408004d05004d05084473705f6e706f735f656c656374696f6e731c537570706f727404244163636f756e744964010000080114746f74616c18013c457874656e64656442616c616e6365000118766f74657273510501845665633c284163636f756e7449642c20457874656e64656442616c616e6365293e000051050000024d01005505103870616c6c65745f7374616b696e671870616c6c65741870616c6c65741043616c6c04045400016810626f6e640c0128636f6e74726f6c6c65720001504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565ec013042616c616e63654f663c543e00011470617965655905017c52657761726444657374696e6174696f6e3c543a3a4163636f756e7449643e00003c610154616b6520746865206f726967696e206163636f756e74206173206120737461736820616e64206c6f636b207570206076616c756560206f66206974732062616c616e63652e2060636f6e74726f6c6c6572602077696c6c80626520746865206163636f756e74207468617420636f6e74726f6c732069742e002d016076616c756560206d757374206265206d6f7265207468616e2074686520606d696e696d756d5f62616c616e636560207370656369666965642062792060543a3a43757272656e6379602e002101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20627920746865207374617368206163636f756e742e003c456d6974732060426f6e646564602e34232320436f6d706c6578697479d02d20496e646570656e64656e74206f662074686520617267756d656e74732e204d6f64657261746520636f6d706c65786974792e1c2d204f2831292e642d20546872656520657874726120444220656e74726965732e004d014e4f54453a2054776f206f66207468652073746f726167652077726974657320286053656c663a3a626f6e646564602c206053656c663a3a7061796565602920617265205f6e657665725f20636c65616e65643d01756e6c6573732074686520606f726967696e602066616c6c732062656c6f77205f6578697374656e7469616c206465706f7369745f20616e6420676574732072656d6f76656420617320647573742e28626f6e645f65787472610401386d61785f6164646974696f6e616cec013042616c616e63654f663c543e000138610141646420736f6d6520657874726120616d6f756e742074686174206861766520617070656172656420696e207468652073746173682060667265655f62616c616e63656020696e746f207468652062616c616e636520757030666f72207374616b696e672e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c65722e004d01557365207468697320696620746865726520617265206164646974696f6e616c2066756e647320696e20796f7572207374617368206163636f756e74207468617420796f75207769736820746f20626f6e642e5501556e6c696b65205b60626f6e64605d2853656c663a3a626f6e6429206f72205b60756e626f6e64605d2853656c663a3a756e626f6e642920746869732066756e6374696f6e20646f6573206e6f7420696d706f7365bc616e79206c696d69746174696f6e206f6e2074686520616d6f756e7420746861742063616e2062652061646465642e003c456d6974732060426f6e646564602e0034232320436f6d706c6578697479e42d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e1c2d204f2831292e18756e626f6e6404011476616c7565ec013042616c616e63654f663c543e00024c51015363686564756c65206120706f7274696f6e206f662074686520737461736820746f20626520756e6c6f636b656420726561647920666f72207472616e73666572206f75742061667465722074686520626f6e64fc706572696f6420656e64732e2049662074686973206c656176657320616e20616d6f756e74206163746976656c7920626f6e646564206c657373207468616e2101543a3a43757272656e63793a3a6d696e696d756d5f62616c616e636528292c207468656e20697420697320696e6372656173656420746f207468652066756c6c20616d6f756e742e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0045014f6e63652074686520756e6c6f636b20706572696f6420697320646f6e652c20796f752063616e2063616c6c206077697468647261775f756e626f6e6465646020746f2061637475616c6c79206d6f7665bc7468652066756e6473206f7574206f66206d616e6167656d656e7420726561647920666f72207472616e736665722e0031014e6f206d6f7265207468616e2061206c696d69746564206e756d626572206f6620756e6c6f636b696e67206368756e6b73202873656520604d6178556e6c6f636b696e674368756e6b736029410163616e20636f2d657869737473206174207468652073616d652074696d652e20496620746865726520617265206e6f20756e6c6f636b696e67206368756e6b7320736c6f747320617661696c61626c6545015b6043616c6c3a3a77697468647261775f756e626f6e646564605d2069732063616c6c656420746f2072656d6f766520736f6d65206f6620746865206368756e6b732028696620706f737369626c65292e00390149662061207573657220656e636f756e74657273207468652060496e73756666696369656e74426f6e6460206572726f72207768656e2063616c6c696e6720746869732065787472696e7369632c1901746865792073686f756c642063616c6c20606368696c6c6020666972737420696e206f7264657220746f206672656520757020746865697220626f6e6465642066756e64732e0044456d6974732060556e626f6e646564602e009453656520616c736f205b6043616c6c3a3a77697468647261775f756e626f6e646564605d2e4477697468647261775f756e626f6e6465640401486e756d5f736c617368696e675f7370616e7310010c753332000338290152656d6f766520616e7920756e6c6f636b6564206368756e6b732066726f6d207468652060756e6c6f636b696e67602071756575652066726f6d206f7572206d616e6167656d656e742e0031015468697320657373656e7469616c6c7920667265657320757020746861742062616c616e636520746f206265207573656420627920746865207374617368206163636f756e7420746f20646f4877686174657665722069742077616e74732e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722e0048456d697473206057697468647261776e602e006853656520616c736f205b6043616c6c3a3a756e626f6e64605d2e0034232320436f6d706c6578697479d84f285329207768657265205320697320746865206e756d626572206f6620736c617368696e67207370616e7320746f2072656d6f766509014e4f54453a2057656967687420616e6e6f746174696f6e20697320746865206b696c6c207363656e6172696f2c20776520726566756e64206f74686572776973652e2076616c69646174650401147072656673b0013856616c696461746f725072656673000414e44465636c617265207468652064657369726520746f2076616c696461746520666f7220746865206f726967696e20636f6e74726f6c6c65722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e206e6f6d696e61746504011c746172676574735d0501645665633c4163636f756e7449644c6f6f6b75704f663c543e3e0005280d014465636c617265207468652064657369726520746f206e6f6d696e6174652060746172676574736020666f7220746865206f726967696e20636f6e74726f6c6c65722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0034232320436f6d706c65786974792d012d20546865207472616e73616374696f6e277320636f6d706c65786974792069732070726f706f7274696f6e616c20746f207468652073697a65206f662060746172676574736020284e29050177686963682069732063617070656420617420436f6d7061637441737369676e6d656e74733a3a4c494d49542028543a3a4d61784e6f6d696e6174696f6e73292ed42d20426f74682074686520726561647320616e642077726974657320666f6c6c6f7720612073696d696c6172207061747465726e2e146368696c6c000628c44465636c617265206e6f2064657369726520746f206569746865722076616c6964617465206f72206e6f6d696e6174652e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0034232320436f6d706c6578697479e42d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e502d20436f6e7461696e73206f6e6520726561642ec42d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e247365745f706179656504011470617965655905017c52657761726444657374696e6174696f6e3c543a3a4163636f756e7449643e000730b42852652d2973657420746865207061796d656e742074617267657420666f72206120636f6e74726f6c6c65722e005101456666656374732077696c6c2062652066656c7420696e7374616e746c792028617320736f6f6e20617320746869732066756e6374696f6e20697320636f6d706c65746564207375636365737366756c6c79292e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0034232320436f6d706c6578697479182d204f283129e42d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e942d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec42d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e242d2d2d2d2d2d2d2d2d387365745f636f6e74726f6c6c6572040128636f6e74726f6c6c65720001504163636f756e7449644c6f6f6b75704f663c543e00082c8c2852652d297365742074686520636f6e74726f6c6c6572206f6620612073746173682e005101456666656374732077696c6c2062652066656c7420696e7374616e746c792028617320736f6f6e20617320746869732066756e6374696f6e20697320636f6d706c65746564207375636365737366756c6c79292e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c65722e0034232320436f6d706c6578697479104f283129e42d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e942d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec42d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e4c7365745f76616c696461746f725f636f756e7404010c6e6577e503010c75333200091890536574732074686520696465616c206e756d626572206f662076616c696461746f72732e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e0034232320436f6d706c6578697479104f28312960696e6372656173655f76616c696461746f725f636f756e740401286164646974696f6e616ce503010c753332000a1ce4496e6372656d656e74732074686520696465616c206e756d626572206f662076616c696461746f7273207570746f206d6178696d756d206f668c60456c656374696f6e50726f7669646572426173653a3a4d617857696e6e657273602e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e0034232320436f6d706c65786974799853616d65206173205b6053656c663a3a7365745f76616c696461746f725f636f756e74605d2e547363616c655f76616c696461746f725f636f756e74040118666163746f726105011c50657263656e74000b1c0d015363616c652075702074686520696465616c206e756d626572206f662076616c696461746f7273206279206120666163746f72207570746f206d6178696d756d206f668c60456c656374696f6e50726f7669646572426173653a3a4d617857696e6e657273602e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e0034232320436f6d706c65786974799853616d65206173205b6053656c663a3a7365745f76616c696461746f725f636f756e74605d2e34666f7263655f6e6f5f65726173000c34ac466f72636520746865726520746f206265206e6f206e6577206572617320696e646566696e6974656c792e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002423205761726e696e6700190154686520656c656374696f6e2070726f6365737320737461727473206d756c7469706c6520626c6f636b73206265666f72652074686520656e64206f6620746865206572612e3901546875732074686520656c656374696f6e2070726f63657373206d6179206265206f6e676f696e67207768656e20746869732069732063616c6c65642e20496e2074686973206361736520746865dc656c656374696f6e2077696c6c20636f6e74696e756520756e74696c20746865206e65787420657261206973207472696767657265642e0034232320436f6d706c65786974793c2d204e6f20617267756d656e74732e382d205765696768743a204f28312934666f7263655f6e65775f657261000d384901466f72636520746865726520746f2062652061206e6577206572612061742074686520656e64206f6620746865206e6578742073657373696f6e2e20416674657220746869732c2069742077696c6c2062659c726573657420746f206e6f726d616c20286e6f6e2d666f7263656429206265686176696f75722e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002423205761726e696e6700190154686520656c656374696f6e2070726f6365737320737461727473206d756c7469706c6520626c6f636b73206265666f72652074686520656e64206f6620746865206572612e4901496620746869732069732063616c6c6564206a757374206265666f72652061206e657720657261206973207472696767657265642c2074686520656c656374696f6e2070726f63657373206d6179206e6f748c6861766520656e6f75676820626c6f636b7320746f20676574206120726573756c742e0034232320436f6d706c65786974793c2d204e6f20617267756d656e74732e382d205765696768743a204f283129447365745f696e76756c6e657261626c6573040134696e76756c6e657261626c65735d0501445665633c543a3a4163636f756e7449643e000e0cc8536574207468652076616c696461746f72732077686f2063616e6e6f7420626520736c61736865642028696620616e79292e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e34666f7263655f756e7374616b650801147374617368000130543a3a4163636f756e7449640001486e756d5f736c617368696e675f7370616e7310010c753332000f0c0901466f72636520612063757272656e74207374616b657220746f206265636f6d6520636f6d706c6574656c7920756e7374616b65642c20696d6d6564696174656c792e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e50666f7263655f6e65775f6572615f616c776179730010240101466f72636520746865726520746f2062652061206e6577206572612061742074686520656e64206f662073657373696f6e7320696e646566696e6974656c792e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002423205761726e696e6700190154686520656c656374696f6e2070726f6365737320737461727473206d756c7469706c6520626c6f636b73206265666f72652074686520656e64206f6620746865206572612e4901496620746869732069732063616c6c6564206a757374206265666f72652061206e657720657261206973207472696767657265642c2074686520656c656374696f6e2070726f63657373206d6179206e6f748c6861766520656e6f75676820626c6f636b7320746f20676574206120726573756c742e5463616e63656c5f64656665727265645f736c61736808010c657261100120457261496e646578000134736c6173685f696e6469636573650501205665633c7533323e0011149443616e63656c20656e6163746d656e74206f66206120646566657272656420736c6173682e009843616e2062652063616c6c6564206279207468652060543a3a41646d696e4f726967696e602e000101506172616d65746572733a2065726120616e6420696e6469636573206f662074686520736c617368657320666f7220746861742065726120746f206b696c6c2e387061796f75745f7374616b65727308013c76616c696461746f725f7374617368000130543a3a4163636f756e74496400010c657261100120457261496e64657800122c0d01506179206f757420616c6c20746865207374616b65727320626568696e6420612073696e676c652076616c696461746f7220666f7220612073696e676c65206572612e0049012d206076616c696461746f725f73746173686020697320746865207374617368206163636f756e74206f66207468652076616c696461746f722e205468656972206e6f6d696e61746f72732c20757020746f2501202060543a3a4d61784e6f6d696e61746f72526577617264656450657256616c696461746f72602c2077696c6c20616c736f207265636569766520746865697220726577617264732e31012d206065726160206d617920626520616e7920657261206265747765656e20605b63757272656e745f657261202d20686973746f72795f64657074683b2063757272656e745f6572615d602e005501546865206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e20416e79206163636f756e742063616e2063616c6c20746869732066756e6374696f6e2c206576656e206966746974206973206e6f74206f6e65206f6620746865207374616b6572732e0034232320436f6d706c6578697479b82d204174206d6f7374204f284d61784e6f6d696e61746f72526577617264656450657256616c696461746f72292e187265626f6e6404011476616c7565ec013042616c616e63654f663c543e00131cdc5265626f6e64206120706f7274696f6e206f6620746865207374617368207363686564756c656420746f20626520756e6c6f636b65642e00d4546865206469737061746368206f726967696e206d757374206265207369676e65642062792074686520636f6e74726f6c6c65722e0034232320436f6d706c6578697479d02d2054696d6520636f6d706c65786974793a204f284c292c207768657265204c20697320756e6c6f636b696e67206368756e6b73882d20426f756e64656420627920604d6178556e6c6f636b696e674368756e6b73602e28726561705f73746173680801147374617368000130543a3a4163636f756e7449640001486e756d5f736c617368696e675f7370616e7310010c7533320014305d0152656d6f766520616c6c2064617461207374727563747572657320636f6e6365726e696e672061207374616b65722f7374617368206f6e636520697420697320617420612073746174652077686572652069742063616e0501626520636f6e736964657265642060647573746020696e20746865207374616b696e672073797374656d2e2054686520726571756972656d656e7473206172653a000501312e207468652060746f74616c5f62616c616e636560206f66207468652073746173682069732062656c6f77206578697374656e7469616c206465706f7369742e1101322e206f722c2074686520606c65646765722e746f74616c60206f66207468652073746173682069732062656c6f77206578697374656e7469616c206465706f7369742e00550154686520666f726d65722063616e2068617070656e20696e206361736573206c696b65206120736c6173683b20746865206c6174746572207768656e20612066756c6c7920756e626f6e646564206163636f756e7409016973207374696c6c20726563656976696e67207374616b696e67207265776172647320696e206052657761726444657374696e6174696f6e3a3a5374616b6564602e00310149742063616e2062652063616c6c656420627920616e796f6e652c206173206c6f6e672061732060737461736860206d65657473207468652061626f766520726571756972656d656e74732e00dc526566756e647320746865207472616e73616374696f6e20666565732075706f6e207375636365737366756c20657865637574696f6e2e106b69636b04010c77686f5d0501645665633c4163636f756e7449644c6f6f6b75704f663c543e3e00152ce052656d6f76652074686520676976656e206e6f6d696e6174696f6e732066726f6d207468652063616c6c696e672076616c696461746f722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e004d012d206077686f603a2041206c697374206f66206e6f6d696e61746f72207374617368206163636f756e74732077686f20617265206e6f6d696e6174696e6720746869732076616c696461746f72207768696368c0202073686f756c64206e6f206c6f6e676572206265206e6f6d696e6174696e6720746869732076616c696461746f722e0055014e6f74653a204d616b696e6720746869732063616c6c206f6e6c79206d616b65732073656e736520696620796f7520666972737420736574207468652076616c696461746f7220707265666572656e63657320746f78626c6f636b20616e792066757274686572206e6f6d696e6174696f6e732e4c7365745f7374616b696e675f636f6e666967731801486d696e5f6e6f6d696e61746f725f626f6e6469050158436f6e6669674f703c42616c616e63654f663c543e3e0001486d696e5f76616c696461746f725f626f6e6469050158436f6e6669674f703c42616c616e63654f663c543e3e00014c6d61785f6e6f6d696e61746f725f636f756e746d050134436f6e6669674f703c7533323e00014c6d61785f76616c696461746f725f636f756e746d050134436f6e6669674f703c7533323e00013c6368696c6c5f7468726573686f6c6471050144436f6e6669674f703c50657263656e743e0001386d696e5f636f6d6d697373696f6e75050144436f6e6669674f703c50657262696c6c3e001644ac5570646174652074686520766172696f7573207374616b696e6720636f6e66696775726174696f6e73202e0025012a20606d696e5f6e6f6d696e61746f725f626f6e64603a20546865206d696e696d756d2061637469766520626f6e64206e656564656420746f2062652061206e6f6d696e61746f722e25012a20606d696e5f76616c696461746f725f626f6e64603a20546865206d696e696d756d2061637469766520626f6e64206e656564656420746f20626520612076616c696461746f722e55012a20606d61785f6e6f6d696e61746f725f636f756e74603a20546865206d6178206e756d626572206f662075736572732077686f2063616e2062652061206e6f6d696e61746f72206174206f6e63652e205768656e98202073657420746f20604e6f6e65602c206e6f206c696d697420697320656e666f726365642e55012a20606d61785f76616c696461746f725f636f756e74603a20546865206d6178206e756d626572206f662075736572732077686f2063616e20626520612076616c696461746f72206174206f6e63652e205768656e98202073657420746f20604e6f6e65602c206e6f206c696d697420697320656e666f726365642e59012a20606368696c6c5f7468726573686f6c64603a2054686520726174696f206f6620606d61785f6e6f6d696e61746f725f636f756e7460206f7220606d61785f76616c696461746f725f636f756e74602077686963681901202073686f756c642062652066696c6c656420696e206f7264657220666f722074686520606368696c6c5f6f7468657260207472616e73616374696f6e20746f20776f726b2e61012a20606d696e5f636f6d6d697373696f6e603a20546865206d696e696d756d20616d6f756e74206f6620636f6d6d697373696f6e207468617420656163682076616c696461746f7273206d757374206d61696e7461696e2e550120205468697320697320636865636b6564206f6e6c792075706f6e2063616c6c696e67206076616c6964617465602e204578697374696e672076616c696461746f727320617265206e6f742061666665637465642e00c452756e74696d654f726967696e206d75737420626520526f6f7420746f2063616c6c20746869732066756e6374696f6e2e0035014e4f54453a204578697374696e67206e6f6d696e61746f727320616e642076616c696461746f72732077696c6c206e6f742062652061666665637465642062792074686973207570646174652e1101746f206b69636b2070656f706c6520756e64657220746865206e6577206c696d6974732c20606368696c6c5f6f74686572602073686f756c642062652063616c6c65642e2c6368696c6c5f6f74686572040128636f6e74726f6c6c6572000130543a3a4163636f756e74496400176841014465636c61726520612060636f6e74726f6c6c65726020746f2073746f702070617274696369706174696e672061732065697468657220612076616c696461746f72206f72206e6f6d696e61746f722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e004101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2c206275742063616e2062652063616c6c656420627920616e796f6e652e0059014966207468652063616c6c6572206973207468652073616d652061732074686520636f6e74726f6c6c6572206265696e672074617267657465642c207468656e206e6f206675727468657220636865636b7320617265d8656e666f726365642c20616e6420746869732066756e6374696f6e2062656861766573206a757374206c696b6520606368696c6c602e005d014966207468652063616c6c657220697320646966666572656e74207468616e2074686520636f6e74726f6c6c6572206265696e672074617267657465642c2074686520666f6c6c6f77696e6720636f6e646974696f6e73306d757374206265206d65743a001d012a2060636f6e74726f6c6c657260206d7573742062656c6f6e6720746f2061206e6f6d696e61746f722077686f20686173206265636f6d65206e6f6e2d6465636f6461626c652c000c4f723a003d012a204120604368696c6c5468726573686f6c6460206d7573742062652073657420616e6420636865636b656420776869636820646566696e657320686f7720636c6f736520746f20746865206d6178550120206e6f6d696e61746f7273206f722076616c696461746f7273207765206d757374207265616368206265666f72652075736572732063616e207374617274206368696c6c696e67206f6e652d616e6f746865722e59012a204120604d61784e6f6d696e61746f72436f756e746020616e6420604d617856616c696461746f72436f756e7460206d75737420626520736574207768696368206973207573656420746f2064657465726d696e65902020686f7720636c6f73652077652061726520746f20746865207468726573686f6c642e5d012a204120604d696e4e6f6d696e61746f72426f6e646020616e6420604d696e56616c696461746f72426f6e6460206d7573742062652073657420616e6420636865636b65642c2077686963682064657465726d696e65735101202069662074686973206973206120706572736f6e20746861742073686f756c64206265206368696c6c6564206265636175736520746865792068617665206e6f74206d657420746865207468726573686f6c64402020626f6e642072657175697265642e005501546869732063616e2062652068656c7066756c20696620626f6e6420726571756972656d656e74732061726520757064617465642c20616e64207765206e65656420746f2072656d6f7665206f6c642075736572739877686f20646f206e6f74207361746973667920746865736520726571756972656d656e74732e68666f7263655f6170706c795f6d696e5f636f6d6d697373696f6e04013c76616c696461746f725f7374617368000130543a3a4163636f756e74496400180c4501466f72636520612076616c696461746f7220746f2068617665206174206c6561737420746865206d696e696d756d20636f6d6d697373696f6e2e20546869732077696c6c206e6f74206166666563742061610176616c696461746f722077686f20616c726561647920686173206120636f6d6d697373696f6e2067726561746572207468616e206f7220657175616c20746f20746865206d696e696d756d2e20416e79206163636f756e743863616e2063616c6c20746869732e487365745f6d696e5f636f6d6d697373696f6e04010c6e6577ac011c50657262696c6c00191025015365747320746865206d696e696d756d20616d6f756e74206f6620636f6d6d697373696f6e207468617420656163682076616c696461746f7273206d757374206d61696e7461696e2e005901546869732063616c6c20686173206c6f7765722070726976696c65676520726571756972656d656e7473207468616e20607365745f7374616b696e675f636f6e6669676020616e642063616e2062652063616c6c6564cc6279207468652060543a3a41646d696e4f726967696e602e20526f6f742063616e20616c776179732063616c6c20746869732e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e5905083870616c6c65745f7374616b696e674452657761726444657374696e6174696f6e04244163636f756e74496401000114185374616b656400000014537461736800010028436f6e74726f6c6c65720002001c4163636f756e7404000001244163636f756e744964000300104e6f6e65000400005d05000002000061050c3473705f61726974686d65746963287065725f7468696e67731c50657263656e740000040008010875380000650500000210006905103870616c6c65745f7374616b696e671870616c6c65741870616c6c657420436f6e6669674f700404540118010c104e6f6f700000000c5365740400180104540001001852656d6f7665000200006d05103870616c6c65745f7374616b696e671870616c6c65741870616c6c657420436f6e6669674f700404540110010c104e6f6f700000000c5365740400100104540001001852656d6f7665000200007105103870616c6c65745f7374616b696e671870616c6c65741870616c6c657420436f6e6669674f70040454016105010c104e6f6f700000000c536574040061050104540001001852656d6f7665000200007505103870616c6c65745f7374616b696e671870616c6c65741870616c6c657420436f6e6669674f7004045401ac010c104e6f6f700000000c5365740400ac0104540001001852656d6f76650002000079050c3870616c6c65745f73657373696f6e1870616c6c65741043616c6c040454000108207365745f6b6579730801106b6579737d05011c543a3a4b65797300011470726f6f6630011c5665633c75383e000024e453657473207468652073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c657220746f20606b657973602e1d01416c6c6f777320616e206163636f756e7420746f20736574206974732073657373696f6e206b6579207072696f7220746f206265636f6d696e6720612076616c696461746f722ec05468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e00d0546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265207369676e65642e0034232320436f6d706c657869747959012d20604f283129602e2041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f662060543a3a4b6579733a3a6b65795f69647328296020776869636820697320202066697865642e2870757267655f6b657973000130c852656d6f76657320616e792073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c65722e00c05468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e005501546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265205369676e656420616e6420746865206163636f756e74206d757374206265206569746865722062655d01636f6e7665727469626c6520746f20612076616c696461746f72204944207573696e672074686520636861696e2773207479706963616c2061646472657373696e672073797374656d20287468697320757375616c6c7951016d65616e73206265696e67206120636f6e74726f6c6c6572206163636f756e7429206f72206469726563746c7920636f6e7665727469626c6520696e746f20612076616c696461746f722049442028776869636894757375616c6c79206d65616e73206265696e672061207374617368206163636f756e74292e0034232320436f6d706c65786974793d012d20604f2831296020696e206e756d626572206f66206b65792074797065732e2041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f6698202060543a3a4b6579733a3a6b65795f6964732829602077686963682069732066697865642e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e7d0508586a6f7973747265616d5f6e6f64655f72756e74696d652c53657373696f6e4b657973000010011c6772616e647061cc01d03c4772616e647061206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c6963000110626162654d0401c43c42616265206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c6963000124696d5f6f6e6c696e65d801d43c496d4f6e6c696e65206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c696300014c617574686f726974795f646973636f76657279810501fc3c417574686f72697479446973636f76657279206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c6963000081050c5873705f617574686f726974795f646973636f766572790c617070185075626c696300000400dc013c737232353531393a3a5075626c6963000085050c3870616c6c65745f6772616e6470611870616c6c65741043616c6c04045400010c4c7265706f72745f65717569766f636174696f6e08014865717569766f636174696f6e5f70726f6f66890501bc426f783c45717569766f636174696f6e50726f6f663c543a3a486173682c20543a3a426c6f636b4e756d6265723e3e00013c6b65795f6f776e65725f70726f6f6655040140543a3a4b65794f776e657250726f6f6600001009015265706f727420766f7465722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667920746865f465717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66f8616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63654477696c6c206265207265706f727465642e707265706f72745f65717569766f636174696f6e5f756e7369676e656408014865717569766f636174696f6e5f70726f6f66890501bc426f783c45717569766f636174696f6e50726f6f663c543a3a486173682c20543a3a426c6f636b4e756d6265723e3e00013c6b65795f6f776e65725f70726f6f6655040140543a3a4b65794f776e657250726f6f6600012409015265706f727420766f7465722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667920746865f465717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66f8616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63654477696c6c206265207265706f727465642e000d01546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c791501626c6f636b20617574686f72732077696c6c2063616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c2061732073756368150169662074686520626c6f636b20617574686f7220697320646566696e65642069742077696c6c20626520646566696e6564206173207468652065717569766f636174696f6e247265706f727465722e306e6f74655f7374616c6c656408011464656c6179100138543a3a426c6f636b4e756d62657200016c626573745f66696e616c697a65645f626c6f636b5f6e756d626572100138543a3a426c6f636b4e756d6265720002303d014e6f74652074686174207468652063757272656e7420617574686f7269747920736574206f6620746865204752414e4450412066696e616c6974792067616467657420686173207374616c6c65642e006101546869732077696c6c2074726967676572206120666f7263656420617574686f7269747920736574206368616e67652061742074686520626567696e6e696e67206f6620746865206e6578742073657373696f6e2c20746f6101626520656e6163746564206064656c61796020626c6f636b7320616674657220746861742e20546865206064656c6179602073686f756c64206265206869676820656e6f75676820746f20736166656c7920617373756d654901746861742074686520626c6f636b207369676e616c6c696e672074686520666f72636564206368616e67652077696c6c206e6f742062652072652d6f7267656420652e672e203130303020626c6f636b732e5d0154686520626c6f636b2070726f64756374696f6e207261746520287768696368206d617920626520736c6f77656420646f776e2062656361757365206f662066696e616c697479206c616767696e67292073686f756c64510162652074616b656e20696e746f206163636f756e74207768656e2063686f6f73696e6720746865206064656c6179602e20546865204752414e44504120766f74657273206261736564206f6e20746865206e65775501617574686f726974792077696c6c20737461727420766f74696e67206f6e20746f70206f662060626573745f66696e616c697a65645f626c6f636b5f6e756d6265726020666f72206e65772066696e616c697a65644d01626c6f636b732e2060626573745f66696e616c697a65645f626c6f636b5f6e756d626572602073686f756c64206265207468652068696768657374206f6620746865206c61746573742066696e616c697a6564c4626c6f636b206f6620616c6c2076616c696461746f7273206f6620746865206e657720617574686f72697479207365742e00584f6e6c792063616c6c61626c6520627920726f6f742e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e8905084c73705f66696e616c6974795f6772616e6470614445717569766f636174696f6e50726f6f66080448012c044e0110000801187365745f6964280114536574496400013065717569766f636174696f6e8d05014845717569766f636174696f6e3c482c204e3e00008d05084c73705f66696e616c6974795f6772616e6470613045717569766f636174696f6e080448012c044e011001081c507265766f7465040091050139016772616e6470613a3a45717569766f636174696f6e3c417574686f7269747949642c206772616e6470613a3a507265766f74653c482c204e3e2c0a417574686f726974795369676e61747572653e00000024507265636f6d6d69740400a9050141016772616e6470613a3a45717569766f636174696f6e3c417574686f7269747949642c206772616e6470613a3a507265636f6d6d69743c482c204e3e2c0a417574686f726974795369676e61747572653e000100009105084066696e616c6974795f6772616e6470613045717569766f636174696f6e0c08496401cc0456019505045301990500100130726f756e645f6e756d62657228010c7536340001206964656e74697479cc010849640001146669727374a505011828562c2053290001187365636f6e64a505011828562c20532900009505084066696e616c6974795f6772616e6470611c507265766f7465080448012c044e01100008012c7461726765745f686173682c0104480001347461726765745f6e756d6265721001044e000099050c4c73705f66696e616c6974795f6772616e6470610c617070245369676e6174757265000004009d050148656432353531393a3a5369676e617475726500009d050c1c73705f636f72651c65643235353139245369676e617475726500000400a10501205b75383b2036345d0000a105000003400000000800a505000004089505990500a905084066696e616c6974795f6772616e6470613045717569766f636174696f6e0c08496401cc045601ad05045301990500100130726f756e645f6e756d62657228010c7536340001206964656e74697479cc010849640001146669727374b105011828562c2053290001187365636f6e64b105011828562c2053290000ad05084066696e616c6974795f6772616e64706124507265636f6d6d6974080448012c044e01100008012c7461726765745f686173682c0104480001347461726765745f6e756d6265721001044e0000b10500000408ad05990500b5050c4070616c6c65745f696d5f6f6e6c696e651870616c6c65741043616c6c04045400010424686561727462656174080124686561727462656174b90501644865617274626561743c543a3a426c6f636b4e756d6265723e0001247369676e6174757265cd0501bc3c543a3a417574686f7269747949642061732052756e74696d654170705075626c69633e3a3a5369676e617475726500001438232320436f6d706c65786974793a59012d20604f284b202b20452960207768657265204b206973206c656e677468206f6620604b6579736020286865617274626561742e76616c696461746f72735f6c656e2920616e642045206973206c656e677468206f66b02020606865617274626561742e6e6574776f726b5f73746174652e65787465726e616c5f61646472657373608820202d20604f284b29603a206465636f64696e67206f66206c656e67746820604b60ac20202d20604f284529603a206465636f64696e672f656e636f64696e67206f66206c656e67746820604560042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632eb905084070616c6c65745f696d5f6f6e6c696e6524486561727462656174042c426c6f636b4e756d626572011000140130626c6f636b5f6e756d62657210012c426c6f636b4e756d6265720001346e6574776f726b5f7374617465bd0501484f70617175654e6574776f726b537461746500013473657373696f6e5f696e64657810013053657373696f6e496e64657800013c617574686f726974795f696e64657810012441757468496e64657800013876616c696461746f72735f6c656e10010c7533320000bd050c1c73705f636f7265206f6666636861696e484f70617175654e6574776f726b5374617465000008011c706565725f6964c10501304f706171756550656572496400014865787465726e616c5f616464726573736573c50501505665633c4f70617175654d756c7469616464723e0000c105081c73705f636f7265304f70617175655065657249640000040030011c5665633c75383e0000c505000002c90500c9050c1c73705f636f7265206f6666636861696e3c4f70617175654d756c7469616464720000040030011c5665633c75383e0000cd05104070616c6c65745f696d5f6f6e6c696e651c737232353531392c6170705f73723235353139245369676e617475726500000400d1050148737232353531393a3a5369676e61747572650000d1050c1c73705f636f72651c73723235353139245369676e617475726500000400a10501205b75383b2036345d0000d5050c4070616c6c65745f626167735f6c6973741870616c6c65741043616c6c0804540004490001081472656261670401286469736c6f63617465640001504163636f756e7449644c6f6f6b75704f663c543e00002859014465636c617265207468617420736f6d6520606469736c6f636174656460206163636f756e74206861732c207468726f7567682072657761726473206f722070656e616c746965732c2073756666696369656e746c7951016368616e676564206974732073636f726520746861742069742073686f756c642070726f7065726c792066616c6c20696e746f206120646966666572656e7420626167207468616e206974732063757272656e74106f6e652e001d01416e796f6e652063616e2063616c6c20746869732066756e6374696f6e2061626f757420616e7920706f74656e7469616c6c79206469736c6f6361746564206163636f756e742e00490157696c6c20616c7761797320757064617465207468652073746f7265642073636f7265206f6620606469736c6f63617465646020746f2074686520636f72726563742073636f72652c206261736564206f6e406053636f726550726f7669646572602e00d4496620606469736c6f63617465646020646f6573206e6f74206578697374732c2069742072657475726e7320616e206572726f722e3c7075745f696e5f66726f6e745f6f6604011c6c6967687465720001504163636f756e7449644c6f6f6b75704f663c543e000120d04d6f7665207468652063616c6c65722773204964206469726563746c7920696e2066726f6e74206f6620606c696768746572602e005901546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642063616e206f6e6c792062652063616c6c656420627920746865204964206f66a0746865206163636f756e7420676f696e6720696e2066726f6e74206f6620606c696768746572602e00344f6e6c7920776f726b73206966942d20626f7468206e6f646573206172652077697468696e207468652073616d65206261672cd02d20616e6420606f726967696e602068617320612067726561746572206053636f726560207468616e20606c696768746572602e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ed9050c3870616c6c65745f76657374696e671870616c6c65741043616c6c0404540001141076657374000024b8556e6c6f636b20616e79207665737465642066756e6473206f66207468652073656e646572206163636f756e742e005d01546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652066756e6473207374696c6c646c6f636b656420756e64657220746869732070616c6c65742e00d0456d69747320656974686572206056657374696e67436f6d706c6574656460206f72206056657374696e6755706461746564602e0034232320436f6d706c6578697479242d20604f283129602e28766573745f6f746865720401187461726765740001504163636f756e7449644c6f6f6b75704f663c543e00012cb8556e6c6f636b20616e79207665737465642066756e6473206f662061206074617267657460206163636f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0051012d2060746172676574603a20546865206163636f756e742077686f7365207665737465642066756e64732073686f756c6420626520756e6c6f636b65642e204d75737420686176652066756e6473207374696c6c646c6f636b656420756e64657220746869732070616c6c65742e00d0456d69747320656974686572206056657374696e67436f6d706c6574656460206f72206056657374696e6755706461746564602e0034232320436f6d706c6578697479242d20604f283129602e3c7665737465645f7472616e736665720801187461726765740001504163636f756e7449644c6f6f6b75704f663c543e0001207363686564756c65dd0501a456657374696e67496e666f3c42616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e00023464437265617465206120766573746564207472616e736665722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00cc2d2060746172676574603a20546865206163636f756e7420726563656976696e6720746865207665737465642066756e64732ef02d20607363686564756c65603a205468652076657374696e67207363686564756c6520617474616368656420746f20746865207472616e736665722e005c456d697473206056657374696e6743726561746564602e00fc4e4f54453a20546869732077696c6c20756e6c6f636b20616c6c207363686564756c6573207468726f756768207468652063757272656e7420626c6f636b2e0034232320436f6d706c6578697479242d20604f283129602e54666f7263655f7665737465645f7472616e736665720c0118736f757263650001504163636f756e7449644c6f6f6b75704f663c543e0001187461726765740001504163636f756e7449644c6f6f6b75704f663c543e0001207363686564756c65dd0501a456657374696e67496e666f3c42616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e00033860466f726365206120766573746564207472616e736665722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e00e82d2060736f75726365603a20546865206163636f756e742077686f73652066756e64732073686f756c64206265207472616e736665727265642e11012d2060746172676574603a20546865206163636f756e7420746861742073686f756c64206265207472616e7366657272656420746865207665737465642066756e64732ef02d20607363686564756c65603a205468652076657374696e67207363686564756c6520617474616368656420746f20746865207472616e736665722e005c456d697473206056657374696e6743726561746564602e00fc4e4f54453a20546869732077696c6c20756e6c6f636b20616c6c207363686564756c6573207468726f756768207468652063757272656e7420626c6f636b2e0034232320436f6d706c6578697479242d20604f283129602e3c6d657267655f7363686564756c657308013c7363686564756c65315f696e64657810010c75333200013c7363686564756c65325f696e64657810010c7533320004545d014d657267652074776f2076657374696e67207363686564756c657320746f6765746865722c206372656174696e672061206e65772076657374696e67207363686564756c65207468617420756e6c6f636b73206f7665725501746865206869676865737420706f737369626c6520737461727420616e6420656e6420626c6f636b732e20496620626f7468207363686564756c6573206861766520616c7265616479207374617274656420746865590163757272656e7420626c6f636b2077696c6c206265207573656420617320746865207363686564756c652073746172743b207769746820746865206361766561742074686174206966206f6e65207363686564756c655d0169732066696e6973686564206279207468652063757272656e7420626c6f636b2c20746865206f746865722077696c6c206265207472656174656420617320746865206e6577206d6572676564207363686564756c652c2c756e6d6f6469666965642e00f84e4f54453a20496620607363686564756c65315f696e646578203d3d207363686564756c65325f696e6465786020746869732069732061206e6f2d6f702e41014e4f54453a20546869732077696c6c20756e6c6f636b20616c6c207363686564756c6573207468726f756768207468652063757272656e7420626c6f636b207072696f7220746f206d657267696e672e61014e4f54453a20496620626f7468207363686564756c6573206861766520656e646564206279207468652063757272656e7420626c6f636b2c206e6f206e6577207363686564756c652077696c6c206265206372656174656464616e6420626f74682077696c6c2062652072656d6f7665642e006c4d6572676564207363686564756c6520617474726962757465733a35012d20607374617274696e675f626c6f636b603a20604d4158287363686564756c65312e7374617274696e675f626c6f636b2c207363686564756c6564322e7374617274696e675f626c6f636b2c48202063757272656e745f626c6f636b29602e21012d2060656e64696e675f626c6f636b603a20604d4158287363686564756c65312e656e64696e675f626c6f636b2c207363686564756c65322e656e64696e675f626c6f636b29602e59012d20606c6f636b6564603a20607363686564756c65312e6c6f636b65645f61742863757272656e745f626c6f636b29202b207363686564756c65322e6c6f636b65645f61742863757272656e745f626c6f636b29602e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00e82d20607363686564756c65315f696e646578603a20696e646578206f6620746865206669727374207363686564756c6520746f206d657267652eec2d20607363686564756c65325f696e646578603a20696e646578206f6620746865207365636f6e64207363686564756c6520746f206d657267652e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632edd050c3870616c6c65745f76657374696e673076657374696e675f696e666f2c56657374696e67496e666f081c42616c616e636501182c426c6f636b4e756d6265720110000c01186c6f636b656418011c42616c616e63650001247065725f626c6f636b18011c42616c616e63650001387374617274696e675f626c6f636b10012c426c6f636b4e756d6265720000e1050c3c70616c6c65745f6d756c74697369671870616c6c65741043616c6c0404540001105061735f6d756c74695f7468726573686f6c645f310801446f746865725f7369676e61746f726965735d0501445665633c543a3a4163636f756e7449643e00011063616c6c3904017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0000305101496d6d6564696174656c792064697370617463682061206d756c74692d7369676e61747572652063616c6c207573696e6720612073696e676c6520617070726f76616c2066726f6d207468652063616c6c65722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003d012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f206172652070617274206f662074686501016d756c74692d7369676e61747572652c2062757420646f206e6f7420706172746963697061746520696e2074686520617070726f76616c2070726f636573732e882d206063616c6c603a205468652063616c6c20746f2062652065786563757465642e00b8526573756c74206973206571756976616c656e7420746f20746865206469737061746368656420726573756c742e0034232320436f6d706c657869747919014f285a202b204329207768657265205a20697320746865206c656e677468206f66207468652063616c6c20616e6420432069747320657865637574696f6e207765696768742e2061735f6d756c74691401247468726573686f6c642904010c7531360001446f746865725f7369676e61746f726965735d0501445665633c543a3a4163636f756e7449643e00013c6d617962655f74696d65706f696e74e50501844f7074696f6e3c54696d65706f696e743c543a3a426c6f636b4e756d6265723e3e00011063616c6c3904017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0001286d61785f77656967687420011857656967687400019c5501526567697374657220617070726f76616c20666f72206120646973706174636820746f206265206d6164652066726f6d20612064657465726d696e697374696320636f6d706f73697465206163636f756e74206966f8617070726f766564206279206120746f74616c206f6620607468726573686f6c64202d203160206f6620606f746865725f7369676e61746f72696573602e00b049662074686572652061726520656e6f7567682c207468656e206469737061746368207468652063616c6c2e002d015061796d656e743a20604465706f73697442617365602077696c6c20626520726573657276656420696620746869732069732074686520666972737420617070726f76616c2c20706c75733d01607468726573686f6c64602074696d657320604465706f736974466163746f72602e2049742069732072657475726e6564206f6e636520746869732064697370617463682068617070656e73206f723469732063616e63656c6c65642e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0055012d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e41012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f766520746869736c64697370617463682e204d6179206e6f7420626520656d7074792e59012d20606d617962655f74696d65706f696e74603a20496620746869732069732074686520666972737420617070726f76616c2c207468656e2074686973206d75737420626520604e6f6e65602e20496620697420697351016e6f742074686520666972737420617070726f76616c2c207468656e206974206d7573742062652060536f6d65602c2077697468207468652074696d65706f696e742028626c6f636b206e756d62657220616e64d47472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c207472616e73616374696f6e2e882d206063616c6c603a205468652063616c6c20746f2062652065786563757465642e001d014e4f54453a20556e6c6573732074686973206973207468652066696e616c20617070726f76616c2c20796f752077696c6c2067656e6572616c6c792077616e7420746f20757365190160617070726f76655f61735f6d756c74696020696e73746561642c2073696e6365206974206f6e6c7920726571756972657320612068617368206f66207468652063616c6c2e005901526573756c74206973206571756976616c656e7420746f20746865206469737061746368656420726573756c7420696620607468726573686f6c64602069732065786163746c79206031602e204f746865727769736555016f6e20737563636573732c20726573756c7420697320604f6b6020616e642074686520726573756c742066726f6d2074686520696e746572696f722063616c6c2c206966206974207761732065786563757465642cdc6d617920626520666f756e6420696e20746865206465706f736974656420604d756c7469736967457865637574656460206576656e742e0034232320436f6d706c6578697479502d20604f2853202b205a202b2043616c6c29602ecc2d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e3d012d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f66450120207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2e21012d204f6e652063616c6c20656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285a296020776865726520605a602069732074782d6c656e2ebc2d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602ed42d20557020746f206f6e652062696e6172792073656172636820616e6420696e736572742028604f286c6f6753202b20532960292ef82d20492f4f3a2031207265616420604f285329602c20757020746f2031206d757461746520604f285329602e20557020746f206f6e652072656d6f76652e302d204f6e65206576656e742e6c2d2054686520776569676874206f6620746865206063616c6c602e4d012d2053746f726167653a20696e7365727473206f6e65206974656d2c2076616c75652073697a6520626f756e64656420627920604d61785369676e61746f72696573602c20776974682061206465706f7369741901202074616b656e20666f7220697473206c69666574696d65206f6620604465706f73697442617365202b207468726573686f6c64202a204465706f736974466163746f72602e40617070726f76655f61735f6d756c74691401247468726573686f6c642904010c7531360001446f746865725f7369676e61746f726965735d0501445665633c543a3a4163636f756e7449643e00013c6d617962655f74696d65706f696e74e50501844f7074696f6e3c54696d65706f696e743c543a3a426c6f636b4e756d6265723e3e00012463616c6c5f686173680401205b75383b2033325d0001286d61785f7765696768742001185765696768740002785501526567697374657220617070726f76616c20666f72206120646973706174636820746f206265206d6164652066726f6d20612064657465726d696e697374696320636f6d706f73697465206163636f756e74206966f8617070726f766564206279206120746f74616c206f6620607468726573686f6c64202d203160206f6620606f746865725f7369676e61746f72696573602e002d015061796d656e743a20604465706f73697442617365602077696c6c20626520726573657276656420696620746869732069732074686520666972737420617070726f76616c2c20706c75733d01607468726573686f6c64602074696d657320604465706f736974466163746f72602e2049742069732072657475726e6564206f6e636520746869732064697370617463682068617070656e73206f723469732063616e63656c6c65642e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0055012d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e41012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f766520746869736c64697370617463682e204d6179206e6f7420626520656d7074792e59012d20606d617962655f74696d65706f696e74603a20496620746869732069732074686520666972737420617070726f76616c2c207468656e2074686973206d75737420626520604e6f6e65602e20496620697420697351016e6f742074686520666972737420617070726f76616c2c207468656e206974206d7573742062652060536f6d65602c2077697468207468652074696d65706f696e742028626c6f636b206e756d62657220616e64d47472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c207472616e73616374696f6e2ecc2d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f2062652065786563757465642e0035014e4f54453a2049662074686973206973207468652066696e616c20617070726f76616c2c20796f752077696c6c2077616e7420746f20757365206061735f6d756c74696020696e73746561642e0034232320436f6d706c6578697479242d20604f285329602ecc2d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e3d012d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f66450120207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2ebc2d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602ed42d20557020746f206f6e652062696e6172792073656172636820616e6420696e736572742028604f286c6f6753202b20532960292ef82d20492f4f3a2031207265616420604f285329602c20757020746f2031206d757461746520604f285329602e20557020746f206f6e652072656d6f76652e302d204f6e65206576656e742e4d012d2053746f726167653a20696e7365727473206f6e65206974656d2c2076616c75652073697a6520626f756e64656420627920604d61785369676e61746f72696573602c20776974682061206465706f7369741901202074616b656e20666f7220697473206c69666574696d65206f6620604465706f73697442617365202b207468726573686f6c64202a204465706f736974466163746f72602e3c63616e63656c5f61735f6d756c74691001247468726573686f6c642904010c7531360001446f746865725f7369676e61746f726965735d0501445665633c543a3a4163636f756e7449643e00012474696d65706f696e740d01016454696d65706f696e743c543a3a426c6f636b4e756d6265723e00012463616c6c5f686173680401205b75383b2033325d000354550143616e63656c2061207072652d6578697374696e672c206f6e2d676f696e67206d756c7469736967207472616e73616374696f6e2e20416e79206465706f7369742072657365727665642070726576696f75736c79c4666f722074686973206f7065726174696f6e2077696c6c20626520756e7265736572766564206f6e20737563636573732e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0055012d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e41012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f766520746869736c64697370617463682e204d6179206e6f7420626520656d7074792e5d012d206074696d65706f696e74603a205468652074696d65706f696e742028626c6f636b206e756d62657220616e64207472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c787472616e73616374696f6e20666f7220746869732064697370617463682ecc2d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f2062652065786563757465642e0034232320436f6d706c6578697479242d20604f285329602ecc2d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e3d012d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f66450120207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2ebc2d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602e302d204f6e65206576656e742e842d20492f4f3a2031207265616420604f285329602c206f6e652072656d6f76652e702d2053746f726167653a2072656d6f766573206f6e65206974656d2e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ee50504184f7074696f6e040454010d010108104e6f6e6500000010536f6d6504000d010000010000e905083870616c6c65745f636f756e63696c1043616c6c04045400013048616e6e6f756e63655f63616e6469646163791001346d656d626572736869705f696428012c543a3a4d656d62657249640001487374616b696e675f6163636f756e745f6964000130543a3a4163636f756e7449640001447265776172645f6163636f756e745f6964000130543a3a4163636f756e7449640001147374616b6518012842616c616e63653c543e0000244c5375627363726962652063616e646964617465002823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5c72656c656173655f63616e6469646163795f7374616b650401346d656d626572736869705f696428012c543a3a4d656d6265724964000124c452656c656173652063616e646964616379207374616b652074686174206973206e6f206c6f6e676572206e65656465642e002823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e4877697468647261775f63616e6469646163790401346d656d626572736869705f696428012c543a3a4d656d6265724964000224bc57697468647261772063616e64696461637920616e642072656c656173652063616e646964616379207374616b652e002823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e487365745f63616e6469646163795f6e6f74650801346d656d626572736869705f696428012c543a3a4d656d62657249640001106e6f746530011c5665633c75383e00032879015365742073686f7274206465736372697074696f6e20666f7220746865207573657227732063616e6469646163792e2043616e2062652063616c6c656420616e7974696d6520647572696e67207573657227732063616e6469646163792e002823203c7765696768743e002423232077656967687438604f20284e29602077686572653a98604e60206973207468652073697a65206f6620606e6f74656020696e206b696c6f6279746573142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e287365745f62756467657404011c62616c616e636518012842616c616e63653c543e000424605365747320746865206275646765742062616c616e63652e002823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e48706c616e5f6275646765745f726566696c6c04012c6e6578745f726566696c6c100138543a3a426c6f636b4e756d62657200052470506c616e20746865206e6578742062756467657420726566696c6c2e002823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e507365745f6275646765745f696e6372656d656e740401406275646765745f696e6372656d656e7418012842616c616e63653c543e0006247453657473207468652062756467657420726566696c6c20616d6f756e74002823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e507365745f636f756e63696c6f725f726577617264040140636f756e63696c6f725f72657761726418012842616c616e63653c543e0007248c536574732074686520636f756e63696c6f72207265776172642070657220626c6f636b002823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3c66756e64696e675f7265717565737404014066756e64696e675f7265717565737473550301dc5665633c46756e64696e6752657175657374506172616d65746572733c42616c616e63653c543e2c20543a3a4163636f756e7449643e3e000828b85472616e73666572732066756e64732066726f6d20636f756e63696c2062756467657420746f206163636f756e74002823203c7765696768743e002423232077656967687438604f20284629602077686572653a9c60466020697320746865206c656e677468206f66206066756e64696e675f726571756573747360142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e4c66756e645f636f756e63696c5f6275646765740c01246d656d6265725f696428012c4d656d62657249643c543e000118616d6f756e7418012842616c616e63653c543e000124726174696f6e616c6530011c5665633c75383e0009209046756e642074686520636f756e63696c206275646765742062792061206d656d6265722e203c7765696768743e0024232320576569676874c4604f202831296020446f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e40636f756e63696c6f725f72656d61726b080130636f756e63696c6f725f696428012c543a3a4d656d626572496400010c6d736730011c5665633c75383e000a2480436f756e63696c6f72206d616b657320612072656d61726b206d657373616765002823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e4063616e6469646174655f72656d61726b08013063616e6469646174655f696428012c543a3a4d656d626572496400010c6d736730011c5665633c75383e000b248043616e646964617465206d616b657320612072656d61726b206d657373616765002823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652eed05084470616c6c65745f7265666572656e64756d1043616c6c08045400044900011010766f7465080128636f6d6d69746d656e742c011c543a3a486173680001147374616b6518013042616c616e63654f663c543e00002494436173742061207365616c656420766f746520696e20746865207265666572656e64756d2e002823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c72657665616c5f766f746508011073616c7430011c5665633c75383e000138766f74655f6f7074696f6e5f69642801d03c5420617320636f6d6d6f6e3a3a6d656d626572736869703a3a4d656d6265727368697054797065733e3a3a4d656d626572496400012c9c52657665616c2061207365616c656420766f746520696e20746865207265666572656e64756d2e002823203c7765696768743e002423232057656967687438604f20285729602077686572653a0d012d2060576020697320746865206e756d626572206f662060696e7465726d6564696174655f77696e6e657273602073746f72656420696e207468652063757272656e7468202020206053746167653a3a3c542c20493e3a3a676574282960142d2044423ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e4872656c656173655f766f74655f7374616b650002205c52656c656173652061206c6f636b6564207374616b652e2823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e446f70745f6f75745f6f665f766f74696e67000324cc5065726d616e656e746c79206f7074206f7574206f6620766f74696e672066726f6d206120676976656e206163636f756e742e002823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652ef105084470616c6c65745f6d656d626572736869701043616c6c040454000144386275795f6d656d62657273686970040118706172616d732d0101c84275794d656d62657273686970506172616d65746572733c543a3a4163636f756e7449642c20543a3a4d656d62657249643e00002c7c4e6f6e2d6d656d626572732063616e20627579206d656d626572736869702e00203c7765696768743e002423232057656967687448604f202857202b204d29602077686572653a942d20605760206973207468652068616e646c652073697a6520696e206b696c6f62797465739c2d20604d6020697320746865206d657461646174612073697a6520696e206b696c6f6279746573142d2044423a242020202d204f2831292c23203c2f7765696768743e387570646174655f70726f66696c650c01246d656d6265725f696428012c543a3a4d656d626572496400011868616e646c653101013c4f7074696f6e3c5665633c75383e3e0001206d657461646174613101013c4f7074696f6e3c5665633c75383e3e0001300d01557064617465206d656d626572277320616c6c206f7220736f6d65206f66206e616d652c2068616e646c652c2061766174617220616e642061626f757420746578742e7c4e6f20656666656374206966206e6f206368616e676564206669656c64732e00203c7765696768743e002423232057656967687448604f202857202b204d29602077686572653a942d20605760206973207468652068616e646c652073697a6520696e206b696c6f62797465739c2d20604d6020697320746865206d657461646174612073697a6520696e206b696c6f6279746573142d2044423a242020202d204f2831292c23203c2f7765696768743e3c7570646174655f6163636f756e74730c01246d656d6265725f696428012c543a3a4d656d62657249640001406e65775f726f6f745f6163636f756e749401504f7074696f6e3c543a3a4163636f756e7449643e0001586e65775f636f6e74726f6c6c65725f6163636f756e749401504f7074696f6e3c543a3a4163636f756e7449643e00022c550155706461746573206d656d62657220726f6f74206f7220636f6e74726f6c6c6572206163636f756e74732e204e6f2065666665637420696620626f7468206e6577206163636f756e74732061726520656d7074792e00203c7765696768743e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6c7570646174655f70726f66696c655f766572696669636174696f6e0c0124776f726b65725f6964280128543a3a4163746f7249640001407461726765745f6d656d6265725f696428012c543a3a4d656d626572496400012c69735f7665726966696564980110626f6f6c000324450155706461746573206d656d6265722070726f66696c6520766572696669636174696f6e207374617475732e20526571756972657320776f726b696e672067726f7570206d656d626572206f726967696e2e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e407365745f726566657272616c5f63757404013470657263656e745f76616c75650801087538000424110155706461746573206d656d6265727368697020726566657272616c206375742070657263656e742076616c75652e20526571756972657320726f6f74206f726967696e2e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e407472616e736665725f696e76697465730c0140736f757263655f6d656d6265725f696428012c543a3a4d656d62657249640001407461726765745f6d656d6265725f696428012c543a3a4d656d62657249640001446e756d6265725f6f665f696e766974657310010c753332000524b45472616e736665727320696e76697465732066726f6d206f6e65206d656d62657220746f20616e6f746865722e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e34696e766974655f6d656d626572040118706172616d73390101d4496e766974654d656d62657273686970506172616d65746572733c543a3a4163636f756e7449642c20543a3a4d656d62657249643e00062c50496e766974652061206e6577206d656d6265722e00203c7765696768743e002423232057656967687448604f202857202b204d29602077686572653a942d20605760206973207468652068616e646c652073697a6520696e206b696c6f62797465739c2d20604d6020697320746865206d657461646174612073697a6520696e206b696c6f6279746573142d2044423a242020202d204f2831292c23203c2f7765696768743e3c676966745f6d656d62657273686970040118706172616d73410101d0476966744d656d62657273686970506172616d65746572733c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e00070c1d01476966742061206d656d62657273686970207573696e67206f776e2066756e64732e2047696674657220646f6573206e6f74206e65656420746f2062652061206d656d6265722e5d0143616e206f7074696e616c6c79206170706c792061206c6f636b206f6e206120706f7274696f6e206f66207468652066756e6473207472616e7366657272656420746f20726f6f7420616e6420636f6e74726f6c6c6572b86163636f756e74732e2047696674657220616c736f207061797320746865206d656d62657273686970206665652e507365745f6d656d626572736869705f70726963650401246e65775f707269636518013042616c616e63654f663c543e000824bc55706461746573206d656d626572736869702070726963652e20526571756972657320726f6f74206f726967696e2e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6c7365745f6c65616465725f696e7669746174696f6e5f71756f7461040140696e7669746174696f6e5f71756f746110010c753332000924d855706461746573206c656164657220696e7669746174696f6e2071756f74612e20526571756972657320726f6f74206f726967696e2e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e787365745f696e697469616c5f696e7669746174696f6e5f62616c616e636504014c6e65775f696e697469616c5f62616c616e636518013042616c616e63654f663c543e000a2439015570646174657320696e697469616c20696e7669746174696f6e2062616c616e636520666f72206120696e7669746564206d656d6265722e20526571756972657320726f6f74206f726967696e2e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e707365745f696e697469616c5f696e7669746174696f6e5f636f756e740401506e65775f696e7669746174696f6e5f636f756e7410010c753332000b2411015570646174657320696e697469616c20696e7669746174696f6e20636f756e7420666f722061206d656d6265722e20526571756972657320726f6f74206f726967696e2e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e746164645f7374616b696e675f6163636f756e745f63616e6469646174650401246d656d6265725f696428012c543a3a4d656d6265724964000c28ac416464207374616b696e67206163636f756e742063616e64696461746520666f722061206d656d6265722eb8546865206d656d62657273686970206d75737420626520636f6e6669726d6564206265666f72652075736167652e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5872656d6f76655f7374616b696e675f6163636f756e740401246d656d6265725f696428012c543a3a4d656d6265724964000d249052656d6f7665207374616b696e67206163636f756e7420666f722061206d656d6265722e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5c636f6e6669726d5f7374616b696e675f6163636f756e740801246d656d6265725f696428012c543a3a4d656d62657249640001487374616b696e675f6163636f756e745f6964000130543a3a4163636f756e744964000e24bc436f6e6669726d207374616b696e67206163636f756e742063616e64696461746520666f722061206d656d6265722e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e346d656d6265725f72656d61726b0c01246d656d6265725f696428012c543a3a4d656d626572496400010c6d736730011c5665633c75383e00011c7061796d656e74490101884f7074696f6e3c28543a3a4163636f756e7449642c20543a3a42616c616e6365293e000f24544d656d626572206d616b657320612072656d61726b00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e346372656174655f6d656d626572040118706172616d733d0101904372656174654d656d626572506172616d65746572733c543a3a4163636f756e7449643e00102c804372656174652061206d656d6265722070726f66696c6520617320726f6f742e00203c7765696768743e002423232057656967687448604f202849202b204a29602077686572653a942d20604960206973207468652068616e646c652073697a6520696e206b696c6f62797465739c2d20604a6020697320746865206d657461646174612073697a6520696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652ef505083070616c6c65745f666f72756d1043616c6c0404540001409c7570646174655f63617465676f72795f6d656d626572736869705f6f665f6d6f64657261746f720c01306d6f64657261746f725f69642801384d6f64657261746f7249643c543e00012c63617465676f72795f6964280134543a3a43617465676f727949640001246e65775f76616c7565980110626f6f6c0000240901456e61626c652061206d6f64657261746f722063616e206d6f64657261746520612063617465676f727920616e6420697473207375622063617465676f726965732e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3c6372656174655f63617465676f72790c0148706172656e745f63617465676f72795f6964350101544f7074696f6e3c543a3a43617465676f727949643e0001147469746c6530011c5665633c75383e00012c6465736372697074696f6e30011c5665633c75383e0001304c4164642061206e65772063617465676f72792e00203c7765696768743e002423232057656967687458604f202857202b2056202b205829602077686572653a6c2d20605760206973207468652063617465676f7279206465707468d42d20605660206973207468652073697a65206f66207468652063617465676f7279207469746c6520696e206b696c6f62797465732eec2d20605860206973207468652073697a65206f66207468652063617465676f7279206465736372697074696f6e20696e206b696c6f62797465732e142d2044423a242020202d204f2857292c23203c2f7765696768743e7c7570646174655f63617465676f72795f617263686976616c5f7374617475730c01146163746f725501014850726976696c656765644163746f723c543e00012c63617465676f72795f6964280134543a3a43617465676f7279496400014c6e65775f617263686976616c5f737461747573980110626f6f6c0002285855706461746520617263686976616c2073746174757300203c7765696768743e002423232057656967687438604f20285729602077686572653a6c2d20605760206973207468652063617465676f7279206465707468142d2044423a242020202d204f2857292c23203c2f7765696768743e547570646174655f63617465676f72795f7469746c650c01146163746f725501014850726976696c656765644163746f723c543e00012c63617465676f72795f6964280134543a3a43617465676f727949640001147469746c6530011c5665633c75383e00032c545570646174652063617465676f7279207469746c6500203c7765696768743e002423232057656967687448604f202857202b205629602077686572653a6c2d20605760206973207468652063617465676f7279206465707468d42d20605660206973207468652073697a65206f66207468652063617465676f7279207469746c6520696e206b696c6f62797465732e142d2044423a242020202d204f2857292c23203c2f7765696768743e6c7570646174655f63617465676f72795f6465736372697074696f6e0c01146163746f725501014850726976696c656765644163746f723c543e00012c63617465676f72795f6964280134543a3a43617465676f7279496400012c6465736372697074696f6e30011c5665633c75383e00042c6c5570646174652063617465676f7279206465736372697074696f6e00203c7765696768743e002423232057656967687438604f20285729602077686572653a6c2d20605760206973207468652063617465676f7279206465707468ec2d20605660206973207468652073697a65206f66207468652063617465676f7279206465736372697074696f6e20696e206b696c6f62797465732e142d2044423a242020202d204f2857292c23203c2f7765696768743e3c64656c6574655f63617465676f72790801146163746f725501014850726976696c656765644163746f723c543e00012c63617465676f72795f6964280134543a3a43617465676f727949640005283c44656c6574652063617465676f727900203c7765696768743e002423232057656967687438604f20285729602077686572653a6c2d20605760206973207468652063617465676f7279206465707468142d2044423a242020202d204f2857292c23203c2f7765696768743e346372656174655f746872656164100134666f72756d5f757365725f6964280138466f72756d5573657249643c543e00012c63617465676f72795f6964280134543a3a43617465676f727949640001206d6574616461746130011c5665633c75383e0001107465787430011c5665633c75383e00063074437265617465206e65772074687265616420696e2063617465676f727900203c7765696768743e002423232057656967687458604f202857202b2056202b205829602077686572653a6c2d20605760206973207468652063617465676f7279206465707468cc2d20605660206973207468652073697a65206f662074686520746872656164207469746c6520696e206b696c6f62797465732ec82d20605860206973207468652073697a65206f662074686520746872656164207465787420696e206b696c6f62797465732e142d2044423a242020202d204f2857292c23203c2f7765696768743e50656469745f7468726561645f6d65746164617461100134666f72756d5f757365725f6964280138466f72756d5573657249643c543e00012c63617465676f72795f6964280134543a3a43617465676f727949640001247468726561645f696428012c543a3a54687265616449640001306e65775f6d6574616461746130011c5665633c75383e00072c504564697420746872656164206d6574616461746100203c7765696768743e002423232057656967687448604f202857202b205629602077686572653a6c2d20605760206973207468652063617465676f7279206465707468d82d20605660206973207468652073697a65206f662074686520746872656164206d6574616461746120696e206b696c6f62797465732e142d2044423a242020202d204f2857292c23203c2f7765696768743e3464656c6574655f746872656164100134666f72756d5f757365725f6964280138466f72756d5573657249643c543e00012c63617465676f72795f6964280134543a3a43617465676f727949640001247468726561645f696428012c543a3a546872656164496400011068696465980110626f6f6c0008283444656c6574652074687265616400203c7765696768743e002423232057656967687438604f20285729602077686572653a6c2d20605760206973207468652063617465676f7279206465707468142d2044423a242020202d204f2857292c23203c2f7765696768743e5c6d6f76655f7468726561645f746f5f63617465676f72791001146163746f725501014850726976696c656765644163746f723c543e00012c63617465676f72795f6964280134543a3a43617465676f727949640001247468726561645f696428012c543a3a546872656164496400013c6e65775f63617465676f72795f6964280134543a3a43617465676f727949640009287c4d6f76652074687265616420746f20616e6f746865722063617465676f727900203c7765696768743e002423232057656967687438604f20285729602077686572653a6c2d20605760206973207468652063617465676f7279206465707468142d2044423a242020202d204f2857292c23203c2f7765696768743e3c6d6f6465726174655f7468726561641001146163746f725501014850726976696c656765644163746f723c543e00012c63617465676f72795f6964280134543a3a43617465676f727949640001247468726561645f696428012c543a3a5468726561644964000124726174696f6e616c6530011c5665633c75383e000a303c4d6f6465726174652074687265616400203c7765696768743e002423232057656967687458604f202857202b2056202b205829602077686572653a702d20605760206973207468652063617465676f72792064657074682c902d2060566020697320746865206e756d626572206f662074687265616420706f7374732cbc2d20605860206973207468652073697a65206f662074686520726174696f6e616c6520696e206b696c6f6279746573142d2044423a342020202d204f2857202b2056292c23203c2f7765696768743e206164645f706f7374140134666f72756d5f757365725f6964280138466f72756d5573657249643c543e00012c63617465676f72795f6964280134543a3a43617465676f727949640001247468726561645f696428012c543a3a54687265616449640001107465787430011c5665633c75383e0001206564697461626c65980110626f6f6c000b2c2041646420706f737400203c7765696768743e002423232057656967687448604f202857202b205629602077686572653a702d20605760206973207468652063617465676f72792064657074682ca82d20605660206973207468652073697a65206f6620746865207465787420696e206b696c6f6279746573142d2044423a242020202d204f2857292c23203c2f7765696768743e38656469745f706f73745f74657874140134666f72756d5f757365725f6964280138466f72756d5573657249643c543e00012c63617465676f72795f6964280134543a3a43617465676f727949640001247468726561645f696428012c543a3a546872656164496400011c706f73745f6964280124543a3a506f737449640001206e65775f7465787430011c5665633c75383e000c2c384564697420706f7374207465787400203c7765696768743e002423232057656967687448604f202857202b205629602077686572653a702d20605760206973207468652063617465676f72792064657074682cb82d20605660206973207468652073697a65206f6620746865206e6577207465787420696e206b696c6f6279746573142d2044423a242020202d204f2857292c23203c2f7765696768743e346d6f6465726174655f706f73741401146163746f725501014850726976696c656765644163746f723c543e00012c63617465676f72795f6964280134543a3a43617465676f727949640001247468726561645f696428012c543a3a546872656164496400011c706f73745f6964280124543a3a506f73744964000124726174696f6e616c6530011c5665633c75383e000d2c344d6f64657261746520706f737400203c7765696768743e002423232057656967687448604f202857202b205629602077686572653a702d20605760206973207468652063617465676f72792064657074682cbc2d20605660206973207468652073697a65206f662074686520726174696f6e616c6520696e206b696c6f6279746573142d2044423a242020202d204f2857292c23203c2f7765696768743e3064656c6574655f706f7374730c0134666f72756d5f757365725f6964280138466f72756d5573657249643c543e000114706f7374735d01018442547265654d61703c457874656e646564506f737449643c543e2c20626f6f6c3e000124726174696f6e616c6530011c5665633c75383e000e346444656c65746520706f73742066726f6d2073746f726167652eec596f75206e65656420746f2070726f76696465206120766563746f72206f6620706f73747320746f2064656c65746520696e2074686520666f726db428543a3a43617465676f727949642c20543a3a54687265616449642c20543a3a506f737449642c20626f6f6c292501776865726520746865206c61737420626f6f6c206973207768657468657220796f752077616e7420746f20686964652069742061706172742066726f6d2064656c6574696e67206974002423232057656967687458604f202857202b2056202b205029602077686572653a702d20605760206973207468652063617465676f72792064657074682cbc2d20605660206973207468652073697a65206f662074686520726174696f6e616c6520696e206b696c6f6279746573982d2060506020697320746865206e756d626572206f6620706f73747320746f2064656c657465142d2044423a342020202d204f2857202b2050292c23203c2f7765696768743e507365745f737469636b6965645f746872656164730c01146163746f725501014850726976696c656765644163746f723c543e00012c63617465676f72795f6964280134543a3a43617465676f72794964000130737469636b6965645f6964736901015442547265655365743c543a3a54687265616449643e000f2c8453657420737469636b696564207468726561647320666f722063617465676f727900203c7765696768743e002423232057656967687448604f202857202b205629602077686572653a702d20605760206973207468652063617465676f72792064657074682c9c2d2060566020697320746865206c656e677468206f662074686520737469636b6965645f696473142d2044423a342020202d204f2857202b2056292c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652ef905084c70616c6c65745f636f6e737469747574696f6e1043616c6c04045400010448616d656e645f636f6e737469747574696f6e040144636f6e737469747574696f6e5f7465787430011c5665633c75383e000018e453657473207468652063757272656e7420636f6e737469747574696f6e20686173682e20526571756972657320726f6f74206f726967696e2e2823203c7765696768743e11012d20436f6d706c65786974793a20604f28432960207768657265204320697320746865206c656e677468206f662074686520636f6e737469747574696f6e20746578742e342d2044622072656164733a20307c2d204462207772697465733a20312028636f6e7374616e742076616c7565292c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652efd05083470616c6c65745f626f756e74791043616c6c04045400013c346372656174655f626f756e7479080118706172616d737501016c426f756e74794372656174696f6e506172616d65746572733c543e0001206d6574616461746130011c5665633c75383e000028490143726561746573206120626f756e74792e204d657461646174612073746f72656420696e20746865207472616e73616374696f6e206c6f67206275742064697363617264656420616674657220746861742e203c7765696768743e002423232057656967687438604f20285729602077686572653aa42d2060576020697320746865205f6d657461646174612073697a6520696e206b696c6f62797465732eb02d20604d6020697320636c6f73656420636f6e7472616374206d656d626572206c697374206c656e6774682e142d2044423a842020202d204f284d2920284f283129206f6e206f70656e20636f6e7472616374292c23203c2f7765696768743e2c66756e645f626f756e74790c011866756e64657279010160426f756e74794163746f723c4d656d62657249643c543e3e000124626f756e74795f696428012c543a3a426f756e74794964000118616d6f756e7418013042616c616e63654f663c543e0001206050726f766964657320626f756e74792066756e64696e672e2823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e407465726d696e6174655f626f756e7479040124626f756e74795f696428012c543a3a426f756e74794964000224c05465726d696e61746573206120626f756e747920696e2066756e64696e672c2066756e64696e6720657870697265642c7c776f726b7375626d697373696f6e2c206a756467696e6720706572696f642e2823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e347377697463685f6f7261636c650801286e65775f6f7261636c6579010160426f756e74794163746f723c4d656d62657249643c543e3e000124626f756e74795f696428012c543a3a426f756e74794964000324904f7261636c652073776974636865732068696d73656c6620746f2061206e6577206f6e652823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e004077697468647261775f66756e64696e6708011866756e64657279010160426f756e74794163746f723c4d656d62657249643c543e3e000124626f756e74795f696428012c543a3a426f756e74794964000420c4576974686472617720626f756e74792066756e64696e672062792061206d656d626572206f72206120636f756e63696c2e2823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e4c616e6e6f756e63655f776f726b5f656e7472791001246d656d6265725f696428012c4d656d62657249643c543e000124626f756e74795f696428012c543a3a426f756e747949640001487374616b696e675f6163636f756e745f6964000130543a3a4163636f756e744964000140776f726b5f6465736372697074696f6e30011c5665633c75383e000528b0416e6e6f756e636520776f726b20656e74727920666f722061207375636365737366756c20626f756e74792e2823203c7765696768743e002423232077656967687448604f202857202b204d29602077686572653ac02d206057602069732074686520776f726b5f6465736372697074696f6e2073697a6520696e206b696c6f62797465732eb02d20604d6020697320636c6f73656420636f6e7472616374206d656d626572206c697374206c656e6774682e142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c7375626d69745f776f726b1001246d656d6265725f696428012c4d656d62657249643c543e000124626f756e74795f696428012c543a3a426f756e74794964000120656e7472795f6964280128543a3a456e7472794964000124776f726b5f6461746130011c5665633c75383e000624645375626d697420776f726b20666f72206120626f756e74792e2823203c7765696768743e00242323207765696768741c604f20284e2960a42d20604e602069732074686520776f726b5f646174612073697a6520696e206b696c6f62797465732c142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e48656e645f776f726b696e675f706572696f64040124626f756e74795f696428012c543a3a426f756e7479496400072068656e6420626f756e747920776f726b696e6720706572696f642e2823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e587375626d69745f6f7261636c655f6a7564676d656e740c0124626f756e74795f696428012c543a3a426f756e747949640001206a7564676d656e74850101a04f7261636c654a7564676d656e743c543a3a456e74727949642c2042616c616e63654f663c543e3e000124726174696f6e616c6530011c5665633c75383e00083819015375626d69747320616e206f7261636c65206a7564676d656e7420666f72206120626f756e74792c20736c617368696e672074686520656e74726965732072656a65637465642d01627920616e206172626974726172792070657263656e7461676520616e6420726577617264696e67207468652077696e6e65727320627920616e2061726269747261727920616d6f756e7498286e6f742073757270617373696e672074686520746f74616c2066756e6420616d6f756e74292823203c7765696768743e00242323207765696768744c604f20284a202b204b202b2057202b20522960942d20604a6020697320726174696f6e616c652073697a6520696e206b696c6f62797465732c61012d20604b60206973207468652073756d206f6620616c6c20616374696f6e5f6a757374696669636174696f6e2073697a65732028696e206b696c6f62797465732920696e73696465204f7261636c654a7564676d656e742cac2d20605760206973206e756d626572206f662077696e6e6572206a7564676d656e7420656e74726965732cb42d20605260206973206e756d626572206f662072656a6563746564206a7564676d656e7420656e74726965732c142d2064623a3c2020202d20604f2857202b205229602c23203c2f7765696768743e5877697468647261775f656e7472616e745f7374616b650c01246d656d6265725f696428012c4d656d62657249643c543e000124626f756e74795f696428012c543a3a426f756e74794964000120656e7472795f6964280128543a3a456e7472794964000928a4556e6c6f636b7320746865207374616b652072656c6174656420746f206120776f726b20656e747279a901416674657220746865206f7261636c65206d616b657320746865206a7564676d656e74206f722074686520636f756e63696c207465726d696e617465732074686520626f756e74792062792063616c6c696e67207465726d696e6174655f626f756e7479282e2e2e292c51016561636820776f726b65722077686f736520656e74727920686173206e6f74206265656e206a75646765642c2063616e20756e6c6f636b2074686520746f74616c697479206f66207468656972207374616b652e2823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5877697468647261775f6f7261636c655f726577617264040124626f756e74795f696428012c543a3a426f756e74794964000a2890576974687261777320746865206f7261636c652072657761726420746f206f7261636c651101496620626f756e7479206973207375636365737366756c6c792c204661696c6564206f722043616e63656c6c6564206f7261636c65206d7573742063616c6c2074686973a065787472696e73696320746f20776974686472617720746865206f7261636c65207265776172642c2823203c7765696768743e00242323207765696768741c604f2028312960142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e48636f6e7472696275746f725f72656d61726b0c012c636f6e7472696275746f7279010160426f756e74794163746f723c4d656d62657249643c543e3e000124626f756e74795f696428012c543a3a426f756e7479496400010c6d736730011c5665633c75383e000b2880426f756e747920436f6e7472696275746f72206d61646520612072656d61726b002823203c7765696768743e00242323207765696768741c604f20284e2960782d20604e60206973206d73672073697a6520696e206b696c6f6279746573142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e346f7261636c655f72656d61726b0c01186f7261636c6579010160426f756e74794163746f723c4d656d62657249643c543e3e000124626f756e74795f696428012c543a3a426f756e7479496400010c6d736730011c5665633c75383e000c286c426f756e7479204f7261636c65206d61646520612072656d61726b002823203c7765696768743e00242323207765696768741c604f20284e2960782d20604e60206973206d73672073697a6520696e206b696c6f6279746573142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e38656e7472616e745f72656d61726b100128656e7472616e745f696428012c4d656d62657249643c543e000124626f756e74795f696428012c543a3a426f756e74794964000120656e7472795f6964280128543a3a456e747279496400010c6d736730011c5665633c75383e000d288c426f756e747920456e7472616e7420576f726b6572206d61646520612072656d61726b002823203c7765696768743e00242323207765696768741c604f20284e2960782d20604e60206973206d73672073697a6520696e206b696c6f6279746573142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3863726561746f725f72656d61726b0c011c63726561746f7279010160426f756e74794163746f723c4d656d62657249643c543e3e000124626f756e74795f696428012c543a3a426f756e7479496400010c6d736730011c5665633c75383e000e286c426f756e7479204f7261636c65206d61646520612072656d61726b002823203c7765696768743e00242323207765696768741c604f20284e2960782d20604e60206973206d73672073697a6520696e206b696c6f6279746573142d2064623ad42020202d20604f2831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e0106086070616c6c65745f6a6f7973747265616d5f7574696c6974791043616c6c0404540001105c657865637574655f7369676e616c5f70726f706f73616c0401187369676e616c30011c5665633c75383e00002871015369676e616c2070726f706f73616c2065787472696e7369632e2053686f756c6420626520757365642061732063616c6c61626c65206f626a65637420746f207061737320746f207468652060656e67696e6560206d6f64756c652e00203c7765696768743e002423232057656967687438604f20285329602077686572653ab02d20605360206973207468652073697a65206f6620746865207369676e616c20696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e80657865637574655f72756e74696d655f757067726164655f70726f706f73616c0401107761736d30011c5665633c75383e0001288c52756e74696d6520757067726164652070726f706f73616c2065787472696e7369632e050153686f756c6420626520757365642061732063616c6c61626c65206f626a65637420746f207061737320746f207468652060656e67696e6560206d6f64756c652e203c7765696768743e002423232057656967687438604f20284329602077686572653a742d2060436020697320746865206c656e677468206f6620607761736d603d01486f77657665722c207765207472656174207468697320617320612066756c6c20626c6f636b20617320606672616d655f73797374656d3a3a4d6f64756c653a3a7365745f636f64656020646f65732c23203c2f7765696768743ebd01235b776569676874203d2028543a3a426c6f636b576569676874733a3a67657428292e676574284469737061746368436c6173733a3a4f7065726174696f6e616c292e626173655f65787472696e7369632c204469737061746368436c6173733a3a4f7065726174696f6e616c295d6c7570646174655f776f726b696e675f67726f75705f6275646765740c0134776f726b696e675f67726f757099010130576f726b696e6747726f7570000118616d6f756e7418013042616c616e63654f663c543e00013062616c616e63655f6b696e649d01012c42616c616e63654b696e640002206c55706461746520776f726b696e672067726f757020627564676574203c7765696768743e0024232320576569676874c4604f202831296020446f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e4c6275726e5f6163636f756e745f746f6b656e73040118616d6f756e7418013042616c616e63654f663c543e000320784275726e7320746f6b656e20666f722063616c6c6572206163636f756e74203c7765696768743e0024232320576569676874c4604f202831296020446f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e0506083870616c6c65745f636f6e74656e741043616c6c04045400010101506372656174655f63757261746f725f67726f757008012469735f616374697665980110626f6f6c0001507065726d697373696f6e735f62795f6c6576656c5502017c4d6f6465726174696f6e5065726d697373696f6e7342794c6576656c3c543e000028a0416464206e65772063757261746f722067726f757020746f2072756e74696d652073746f7261676500203c7765696768743e002423232057656967687438604f20284129602077686572653af02d2060416020697320746865206e756d626572206f6620656e747269657320696e20607065726d697373696f6e735f62795f6c6576656c60206d6170142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e807570646174655f63757261746f725f67726f75705f7065726d697373696f6e7308014063757261746f725f67726f75705f6964280144543a3a43757261746f7247726f757049640001507065726d697373696f6e735f62795f6c6576656c5502017c4d6f6465726174696f6e5065726d697373696f6e7342794c6576656c3c543e000128ac557064617465206578697374696e672063757261746f722067726f75702773207065726d697373696f6e7300203c7765696768743e002423232057656967687438604f20284129602077686572653af02d2060416020697320746865206e756d626572206f6620656e747269657320696e20607065726d697373696f6e735f62795f6c6576656c60206d6170142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e607365745f63757261746f725f67726f75705f73746174757308014063757261746f725f67726f75705f6964280144543a3a43757261746f7247726f7570496400012469735f616374697665980110626f6f6c0002241d01536574206069735f616374697665602073746174757320666f722063757261746f722067726f757020756e64657220676976656e206063757261746f725f67726f75705f69646000203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e506164645f63757261746f725f746f5f67726f75700c014063757261746f725f67726f75705f6964280144543a3a43757261746f7247726f7570496400012863757261746f725f6964280130543a3a43757261746f72496400012c7065726d697373696f6e73bd01015c4368616e6e656c4167656e745065726d697373696f6e73000324ec4164642063757261746f7220746f2063757261746f722067726f757020756e64657220676976656e206063757261746f725f67726f75705f69646000203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6472656d6f76655f63757261746f725f66726f6d5f67726f757008014063757261746f725f67726f75705f6964280144543a3a43757261746f7247726f7570496400012863757261746f725f6964280130543a3a43757261746f724964000424a452656d6f76652063757261746f722066726f6d206120676976656e2063757261746f722067726f757000203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e386372656174655f6368616e6e656c0801346368616e6e656c5f6f776e6572e50101b04368616e6e656c4f776e65723c543a3a4d656d62657249642c20543a3a43757261746f7247726f757049643e000118706172616d73150201704368616e6e656c4372656174696f6e506172616d65746572733c543e000530203c7765696768743e002423232057656967687478604f202841202b2042202b2043202b2044202b204529602077686572653ae02d2060416020697320746865206e756d626572206f6620656e747269657320696e2060706172616d732e636f6c6c61626f7261746f727360e02d2060426020697320746865206e756d626572206f66206974656d7320696e2060706172616d732e73746f726167655f6275636b65747360f42d2060436020697320746865206e756d626572206f66206974656d7320696e2060706172616d732e646973747269627574696f6e5f6275636b6574736011012d2060446020697320746865206e756d626572206f66206974656d7320696e2060706172616d732e6173736574732e6f626a6563745f6372656174696f6e5f6c69737460c02d20604560206973207468652073697a65206f66202060706172616d732e6d6574616020696e206b696c6f6279746573142d2044423ae02020202d20604f2841202b2042202b2043202b20442960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e387570646174655f6368616e6e656c0c01146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c4964000118706172616d73410201684368616e6e656c557064617465506172616d65746572733c543e000630203c7765696768743e002423232057656967687478604f202841202b2042202b2043202b2044202b204529602077686572653ae02d2060416020697320746865206e756d626572206f6620656e747269657320696e2060706172616d732e636f6c6c61626f7261746f72736071012d2060426020697320746865206e756d626572206f66206974656d7320696e2060706172616d732e6173736574735f746f5f75706c6f61642e6f626a6563745f6372656174696f6e5f6c69737460202869662070726f766964656429e42d2060436020697320746865206e756d626572206f66206974656d7320696e2060706172616d732e6173736574735f746f5f72656d6f766560cc2d20604460206973207468652073697a65206f662060706172616d732e6e65775f6d6574616020696e206b696c6f6279746573ec2d206045602069732060706172616d732e73746f726167655f6275636b6574735f6e756d5f7769746e65737360202869662070726f766964656429142d2044423ae02020202d20604f2841202b2042202b2043202b20452960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e787570646174655f6368616e6e656c5f70726976696c6567655f6c6576656c0801286368616e6e656c5f6964280130543a3a4368616e6e656c496400014c6e65775f70726976696c6567655f6c6576656c080160543a3a4368616e6e656c50726976696c6567654c6576656c000724150145787472696e73696320666f72207570646174696e67206368616e6e656c2070726976696c656765206c6576656c20287265717569726573206c656164206163636573732900203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743ea07365745f6368616e6e656c5f7061757365645f66656174757265735f61735f6d6f64657261746f721001146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c496400014c6e65775f7061757365645f6665617475726573d901018042547265655365743c5061757361626c654368616e6e656c466561747572653e000124726174696f6e616c6530011c5665633c75383e000828c845787472696e73696320666f722070617573696e672f72652d656e61626c696e67206368616e6e656c20666561747572657300203c7765696768743e002423232057656967687438604f20284129602077686572653ab42d20604160206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3864656c6574655f6368616e6e656c1001146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c496400014c6368616e6e656c5f6261675f7769746e657373090601444368616e6e656c4261675769746e6573730001546e756d5f6f626a656374735f746f5f64656c65746528010c753634000928203c7765696768743e002423232057656967687458604f202841202b2042202b204329602077686572653a802d2060416020697320606e756d5f6f626a656374735f746f5f64656c65746560c82d2060426020697320606368616e6e656c5f6261675f7769746e6573732e73746f726167655f6275636b6574735f6e756d60dc2d2060436020697320606368616e6e656c5f6261675f7769746e6573732e646973747269627574696f6e5f6275636b6574735f6e756d60142d2044423ad02020202d20604f2841202b2042202b20432960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e8864656c6574655f6368616e6e656c5f6173736574735f61735f6d6f64657261746f721401146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c49640001406173736574735f746f5f72656d6f76656901016442547265655365743c446174614f626a65637449643c543e3e00016c73746f726167655f6275636b6574735f6e756d5f7769746e65737310010c753332000124726174696f6e616c6530011c5665633c75383e000a28203c7765696768743e002423232057656967687458604f202841202b2042202b204329602077686572653aa42d2060416020697320746865206c656e677468206f6620606173736574735f746f5f72656d6f766560cc2d20604260206973207468652076616c7565206f66206073746f726167655f6275636b6574735f6e756d5f7769746e65737360b42d20604360206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423ac02020202d20604f2841202b20422960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e6c64656c6574655f6368616e6e656c5f61735f6d6f64657261746f721401146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c496400014c6368616e6e656c5f6261675f7769746e657373090601444368616e6e656c4261675769746e6573730001546e756d5f6f626a656374735f746f5f64656c65746528010c753634000124726174696f6e616c6530011c5665633c75383e000b008c7365745f6368616e6e656c5f7669736962696c6974795f61735f6d6f64657261746f721001146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c496400012469735f68696464656e980110626f6f6c000124726174696f6e616c6530011c5665633c75383e000c28350145787472696e73696320666f722073657474696e67206368616e6e656c207669736962696c69747920737461747573202868696464656e2f76697369626c6529206279206d6f64657261746f7200203c7765696768743e002423232057656967687438604f20284129602077686572653ab42d20604160206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e306372656174655f766964656f0c01146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c4964000118706172616d7349020168566964656f4372656174696f6e506172616d65746572733c543e000d2c203c7765696768743e002423232057656967687468604f202841202b2042202b2043202b204429602077686572653a11012d2060416020697320746865206e756d626572206f66206974656d7320696e2060706172616d732e6173736574732e6f626a6563745f6372656174696f6e5f6c69737460b42d206042602069732060706172616d732e73746f726167655f6275636b6574735f6e756d5f7769746e6573736035012d2060436020697320746865206c656e677468206f66206f70656e2061756374696f6e202f20656e676c6973682061756374696f6e2077686974656c697374202869662070726f766964656429f42d20604460206973207468652073697a65206f662060706172616d732e6d6574616020696e206b696c6f6279746573202869662070726f766964656429142d2044423ad02020202d20604f2841202b2042202b20432960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e307570646174655f766964656f0c01146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f4964000118706172616d7351020160566964656f557064617465506172616d65746572733c543e000e30203c7765696768743e002423232057656967687478604f202841202b2042202b2043202b2044202b204529602077686572653a25012d2060416020697320706172616d732e6173736574735f746f5f75706c6f61642e6f626a6563745f6372656174696f6e5f6c6973742e6c656e2829202869662070726f766964656429982d2060426020697320706172616d732e6173736574735f746f5f72656d6f76652e6c656e2829ec2d206043602069732060706172616d732e73746f726167655f6275636b6574735f6e756d5f7769746e65737360202869662070726f76696465642935012d2060446020697320746865206c656e677468206f66206f70656e2061756374696f6e202f20656e676c6973682061756374696f6e2077686974656c697374202869662070726f76696465642905012d20604560206973207468652073697a65206f662060706172616d732e6e65775f6d6574616020696e206b696c6f6279746573202869662070726f766964656429142d2044423ae02020202d20604f2841202b2042202b2043202b20442960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e3064656c6574655f766964656f1001146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f49640001546e756d5f6f626a656374735f746f5f64656c65746528010c75363400016c73746f726167655f6275636b6574735f6e756d5f7769746e6573730102012c4f7074696f6e3c7533323e000f24203c7765696768743e002423232057656967687448604f202841202b204229602077686572653a782d20604160206973206e756d5f6f626a656374735f746f5f64656c657465ec2d206042602069732060706172616d732e73746f726167655f6275636b6574735f6e756d5f7769746e65737360202869662070726f766964656429142d2044423ac02020202d20604f2841202b20422960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e8064656c6574655f766964656f5f6173736574735f61735f6d6f64657261746f721401146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f496400016c73746f726167655f6275636b6574735f6e756d5f7769746e65737310010c7533320001406173736574735f746f5f72656d6f76656901016442547265655365743c446174614f626a65637449643c543e3e000124726174696f6e616c6530011c5665633c75383e001028203c7765696768743e002423232057656967687458604f202841202b2042202b204329602077686572653aa42d2060416020697320746865206c656e677468206f6620606173736574735f746f5f72656d6f766560cc2d20604260206973207468652076616c7565206f66206073746f726167655f6275636b6574735f6e756d5f7769746e65737360b42d20604360206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423ac02020202d20604f2841202b20422960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e6464656c6574655f766964656f5f61735f6d6f64657261746f721401146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f496400016c73746f726167655f6275636b6574735f6e756d5f7769746e6573730102012c4f7074696f6e3c7533323e0001546e756d5f6f626a656374735f746f5f64656c65746528010c753634000124726174696f6e616c6530011c5665633c75383e001128203c7765696768743e002423232057656967687458604f202841202b2042202b204329602077686572653ab42d20604160206973207468652076616c7565206f6620606e756d5f6f626a656374735f746f5f64656c65746560cc2d20604260206973207468652076616c7565206f66206073746f726167655f6275636b6574735f6e756d5f7769746e65737360b42d20604360206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423ac02020202d20604f2841202b20422960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e847365745f766964656f5f7669736962696c6974795f61735f6d6f64657261746f721001146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f496400012469735f68696464656e980110626f6f6c000124726174696f6e616c6530011c5665633c75383e0012282d0145787472696e73696320666f7220766964656f207669736962696c69747920737461747573202868696464656e2f76697369626c65292073657474696e67206279206d6f64657261746f7200203c7765696768743e002423232057656967687438604f20284129602077686572653ab42d20604160206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e587570646174655f6368616e6e656c5f7061796f757473080118706172616d73710201845570646174654368616e6e656c5061796f757473506172616d65746572733c543e00014075706c6f616465725f6163636f756e74000130543a3a4163636f756e74496400132458557064617465206368616e6e656c207061796f75747300203c7765696768743e002423232057656967687438604f20283129602077686572653a142d2044423a182d204f2831292c23203c2f7765696768743e50636c61696d5f6368616e6e656c5f7265776172640c01146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e00011470726f6f660d0601505665633c50726f6f66456c656d656e743c543e3e0001106974656d1906013850756c6c5061796d656e743c543e001428a0436c61696d2072657761726420696e204a4f592066726f6d206368616e6e656c206163636f756e7400203c7765696768743e002423232057656967687438604f20284829602077686572653ac82d2060486020697320746865206c656e676874206f66207468652070726f7669646564206d65726b6c65206070726f6f6660142d2044423a242020202d204f2831292c23203c2f7765696768743e7477697468647261775f66726f6d5f6368616e6e656c5f62616c616e63650c01146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c4964000118616d6f756e7418013042616c616e63654f663c543e001524845769746864726177204a4f592066726f6d206368616e6e656c206163636f756e7400203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e7c7570646174655f6368616e6e656c5f73746174655f626c6f61745f626f6e640401706e65775f6368616e6e656c5f73746174655f626c6f61745f626f6e6418013042616c616e63654f663c543e0016289c55706461746573206368616e6e656c20737461746520626c6f617420626f6e642076616c75652e7c4f6e6c79206c6561642063616e2075706c6f616420746869732076616c756500203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e747570646174655f766964656f5f73746174655f626c6f61745f626f6e640401686e65775f766964656f5f73746174655f626c6f61745f626f6e6418013042616c616e63654f663c543e001728945570646174657320766964656f20737461746520626c6f617420626f6e642076616c75652e7c4f6e6c79206c6561642063616e2075706c6f616420746869732076616c756500203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e84636c61696d5f616e645f77697468647261775f6368616e6e656c5f7265776172640c01146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e00011470726f6f660d0601505665633c50726f6f66456c656d656e743c543e3e0001106974656d1906013850756c6c5061796d656e743c543e001828d4436c61696d20616e642077697468647261772072657761726420696e204a4f592066726f6d206368616e6e656c206163636f756e7400203c7765696768743e002423232057656967687438604f20284829602077686572653ac82d2060486020697320746865206c656e676874206f66207468652070726f7669646564206d65726b6c65206070726f6f6660142d2044423a242020202d204f2831292c23203c2f7765696768743e2469737375655f6e66740c01146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f4964000118706172616d73090201604e667449737375616e6365506172616d65746572733c543e001930244973737565204e465400203c7765696768743e00242323205765696768742c604f202857202b20422960142d2044423a242020202d204f2857291877686572653a19012020202d2057203a206d656d6265722077686974656c697374206c656e67746820696e2063617365206e667420696e697469616c207374617475732069732061756374696f6ec02020202d2042203a2073697a65206f66206d6574616461746120706172616d6574657220696e206b696c6f62797465732c23203c2f7765696768743e2c64657374726f795f6e66740801146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f4964001a242c44657374726f79204e465400203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e4873746172745f6f70656e5f61756374696f6e0c01206f776e65725f6964a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f496400013861756374696f6e5f706172616d73050201504f70656e41756374696f6e506172616d733c543e001b2470537461727420766964656f206e6674206f70656e2061756374696f6e203c7765696768743e002423232057656967687438604f20285729602077686572653a742d2057203a206d656d6265722077686974656c697374206c656e677468142d2044423a242020202d204f2857292c23203c2f7765696768743e5473746172745f656e676c6973685f61756374696f6e0c01206f776e65725f6964a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f496400013861756374696f6e5f706172616d73fd01015c456e676c69736841756374696f6e506172616d733c543e001c247c537461727420766964656f206e667420656e676c6973682061756374696f6e203c7765696768743e002423232057656967687438604f20285729602077686572653a882d2057203a2077686974656c697374206d656d626572206c697374206c656e677468142d2044423a242020202d204f2857292c23203c2f7765696768743e5863616e63656c5f656e676c6973685f61756374696f6e0801206f776e65725f6964a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f4964001d208043616e63656c20766964656f206e667420656e676c6973682061756374696f6e203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e4c63616e63656c5f6f70656e5f61756374696f6e0801206f776e65725f6964a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f4964001e207443616e63656c20766964656f206e6674206f70656e2061756374696f6e203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e3063616e63656c5f6f666665720801206f776e65725f6964a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f4964001f244043616e63656c204e6674206f6666657200203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e3863616e63656c5f6275795f6e6f770801206f776e65725f6964a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f49640020245443616e63656c204e66742073656c6c206f7264657200203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f283129243c2f7765696768743e507570646174655f6275795f6e6f775f70726963650c01206f776e65725f6964a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f49640001246e65775f707269636518013042616c616e63654f663c543e0021246055706461746520427579206e6f77206e667420707269636500203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e546d616b655f6f70656e5f61756374696f6e5f6269640c01387061727469636970616e745f696428012c543a3a4d656d6265724964000120766964656f5f6964280128543a3a566964656f49640001286269645f616d6f756e7418013042616c616e63654f663c543e002220404d616b652061756374696f6e20626964203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e606d616b655f656e676c6973685f61756374696f6e5f6269640c01387061727469636970616e745f696428012c543a3a4d656d6265724964000120766964656f5f6964280128543a3a566964656f49640001286269645f616d6f756e7418013042616c616e63654f663c543e002320604d616b6520656e676c6973682061756374696f6e20626964203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e5c63616e63656c5f6f70656e5f61756374696f6e5f6269640801387061727469636970616e745f696428012c543a3a4d656d6265724964000120766964656f5f6964280128543a3a566964656f49640024205c43616e63656c206f70656e2061756374696f6e20626964203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e58736574746c655f656e676c6973685f61756374696f6e040120766964656f5f6964280128543a3a566964656f496400252464436c61696d20776f6e20656e676c6973682061756374696f6e5c43616e2062652063616c6c656420627920616e796f6e65203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e607069636b5f6f70656e5f61756374696f6e5f77696e6e65721001206f776e65725f6964a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f496400012477696e6e65725f696428012c543a3a4d656d6265724964000118636f6d6d697418013042616c616e63654f663c543e0026245c416363657074206f70656e2061756374696f6e206269648c53686f756c64206f6e6c792062652063616c6c65642062792061756374696f6e656572203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e246f666665725f6e6674100120766964656f5f6964280128543a3a566964656f49640001206f776e65725f6964a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000108746f28012c543a3a4d656d62657249640001147072696365450101504f7074696f6e3c42616c616e63654f663c543e3e002724244f66666572204e667400203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e38736c696e675f6e66745f6261636b080120766964656f5f6964280128543a3a566964656f49640001206f776e65725f6964a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e002824c452657475726e204e6674206261636b20746f20746865206f726967696e616c20617274697374206174206e6f20636f737400203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e546163636570745f696e636f6d696e675f6f66666572080120766964656f5f6964280128543a3a566964656f49640001347769746e6573735f7072696365450101a04f7074696f6e3c3c542061732062616c616e6365733a3a436f6e6669673e3a3a42616c616e63653e0029246441636365707420696e636f6d696e67204e6674206f6666657200203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e2073656c6c5f6e66740c0120766964656f5f6964280128543a3a566964656f49640001206f776e65725f6964a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000114707269636518013042616c616e63654f663c543e002a202053656c6c204e6674203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e1c6275795f6e66740c0120766964656f5f6964280128543a3a566964656f49640001387061727469636970616e745f696428012c543a3a4d656d62657249640001347769746e6573735f707269636518013042616c616e63654f663c543e002b241c427579204e667400203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e44746f67676c655f6e66745f6c696d69747304011c656e61626c6564980110626f6f6c002c20dc4f6e6c7920436f756e63696c2063616e20746f67676c65206e66742069737375616e6365206c696d69747320636f6e73747261696e7473203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e506368616e6e656c5f6f776e65725f72656d61726b0801286368616e6e656c5f6964280130543a3a4368616e6e656c496400010c6d736730011c5665633c75383e002d28504368616e6e656c206f776e65722072656d61726b203c7765696768743e00242323205765696768741c604f2028422960142d2044423a242020202d204f2831291877686572653a8c2d204220697320746865206b696c6f62797465206c656e676874206f6620606d7367602c23203c2f7765696768743e506368616e6e656c5f6167656e745f72656d61726b0c01146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c496400010c6d736730011c5665633c75383e002e286c4368616e6e656c20636f6c6c61626f7261746f722072656d61726b203c7765696768743e00242323205765696768741c604f2028422960142d2044423a242020202d204f2831291877686572653a8420202d2042206973207468652062797465206c656e676874206f6620606d7367602c23203c2f7765696768743e406e66745f6f776e65725f72656d61726b0c01146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e000120766964656f5f6964280128543a3a566964656f496400010c6d736730011c5665633c75383e002f28404e4654206f776e65722072656d61726b203c7765696768743e00242323205765696768741c604f2028422960142d2044423a2020202d204f2831291877686572653a8420202d2042206973207468652062797465206c656e676874206f6620606d7367602c23203c2f7765696768743e6c696e697469616c697a655f6368616e6e656c5f7472616e736665720c01286368616e6e656c5f6964280130543a3a4368616e6e656c49640001146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e00013c7472616e736665725f706172616d731d06016c496e69745472616e73666572506172616d65746572734f663c543e003028dc53746172742061206368616e6e656c207472616e736665722077697468207370656369666965642063686172616374657269737469637300203c7765696768743e002423232057656967687438604f20284129602077686572653a25012d2060416020697320746865206e756d626572206f6620656e747269657320696e20607472616e736665725f706172616d732e6e65775f636f6c6c61626f7261746f727360206d6170142d2044423aa82020202d204f284129202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e5c63616e63656c5f6368616e6e656c5f7472616e736665720801286368616e6e656c5f6964280130543a3a4368616e6e656c49640001146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0031245c63616e63656c206368616e6e656c207472616e7366657200203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5c6163636570745f6368616e6e656c5f7472616e736665720801286368616e6e656c5f6964280130543a3a4368616e6e656c4964000144636f6d6d69746d656e745f706172616d736d0201785472616e73666572436f6d6d69746d656e745769746e6573734f663c543e00322c6441636365707473206368616e6e656c207472616e736665722e310160636f6d6d69746d656e745f706172616d736020697320726571756972656420746f2070726576656e74206368616e67696e6720746865207472616e7366657220636f6e646974696f6e732e00203c7765696768743e002423232057656967687438604f20284129602077686572653a2d012d2060416020697320746865206e756d626572206f6620656e747269657320696e2060636f6d6d69746d656e745f706172616d732e6e65775f636f6c6c61626f7261746f727360206d6170142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5c7570646174655f676c6f62616c5f6e66745f6c696d69740801406e66745f6c696d69745f706572696f64890201384e66744c696d6974506572696f640001146c696d697428010c753634003320605570646174657320676c6f62616c204e4654206c696d6974203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e607570646174655f6368616e6e656c5f6e66745f6c696d69741001146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001406e66745f6c696d69745f706572696f64890201384e66744c696d6974506572696f640001286368616e6e656c5f6964280130543a3a4368616e6e656c49640001146c696d697428010c7536340034207055706461746573206368616e6e656c2773204e4654206c696d69742e203c7765696768743e00242323205765696768741c604f2028312960142d2044423a242020202d204f2831292c23203c2f7765696768743e4c69737375655f63726561746f725f746f6b656e0c01146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c4964000118706172616d73c9020170546f6b656e49737375616e6365506172616d65746572734f663c543e0035284c49737375652063726561746f7220746f6b656e00203c7765696768743e002423232057656967687438604f20284129602077686572653a05012d2060416020697320746865206e756d626572206f6620656e747269657320696e2060706172616d732e696e697469616c5f616c6c6f636174696f6e60206d6170142d2044423ab02020202d20604f28412960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e5c696e69745f63726561746f725f746f6b656e5f73616c650c01146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c4964000118706172616d7321060150546f6b656e53616c65506172616d734f663c543e00362874496e697469616c697a652063726561746f7220746f6b656e2073616c6500203c7765696768743e002423232057656967687438604f20284129602077686572653a29012d20604160206973207468652073697a65206f662060706172616d732e6d657461646174616020696e206b696c6f627974657320286f722030206966206e6f742070726f766964656429142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e887570646174655f7570636f6d696e675f63726561746f725f746f6b656e5f73616c651001146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c496400013c6e65775f73746172745f626c6f636b010201584f7074696f6e3c543a3a426c6f636b4e756d6265723e0001306e65775f6475726174696f6e010201584f7074696f6e3c543a3a426c6f636b4e756d6265723e00372488557064617465207570636f6d696e672063726561746f7220746f6b656e2073616c6500203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e7463726561746f725f746f6b656e5f6973737565725f7472616e736665721001146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c496400011c6f757470757473250601645472616e73666572735769746856657374696e674f663c543e0001206d6574616461746130011c5665633c75383e00382cc8506572666f726d207472616e73666572206f6620746f6b656e732061732063726561746f7220746f6b656e2069737375657200203c7765696768743e002423232057656967687448604f202841202b204229602077686572653aac2d2060416020697320746865206e756d626572206f6620656e747269657320696e20606f75747075747360c02d20604260206973207468652073697a65206f662074686520606d657461646174616020696e206b696c6f6279746573142d2044423ab02020202d20604f28412960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e846d616b655f63726561746f725f746f6b656e5f7065726d697373696f6e6c6573730801146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c4964003924ac4d616b65206368616e6e656c27732063726561746f7220746f6b656e207065726d697373696f6e6c65737300203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e987265647563655f63726561746f725f746f6b656e5f706174726f6e6167655f726174655f746f0c01146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c496400012c7461726765745f72617465f9020128596561726c7952617465003a24f0526564756365206368616e6e656c27732063726561746f7220746f6b656e20706174726f6e616765207261746520746f20676976656e2076616c756500203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e90636c61696d5f63726561746f725f746f6b656e5f706174726f6e6167655f6372656469740801146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c4964003b24b8436c61696d206368616e6e656c27732063726561746f7220746f6b656e20706174726f6e6167652063726564697400203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e4c69737375655f726576656e75655f73706c69741001146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c49640001147374617274010201584f7074696f6e3c543a3a426c6f636b4e756d6265723e0001206475726174696f6e100138543a3a426c6f636b4e756d626572003c2484497373756520726576656e75652073706c697420666f722061206368616e6e656c00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5866696e616c697a655f726576656e75655f73706c69740801146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c4964003d247c46696e616c697a6520616e20656e64656420726576656e75652073706c697400203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6c66696e616c697a655f63726561746f725f746f6b656e5f73616c650801146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c4964003e249046696e616c697a6520616e20656e6465642063726561746f7220746f6b656e2073616c6500203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e54646569737375655f63726561746f725f746f6b656e0801146163746f72a50101e8436f6e74656e744163746f723c543a3a43757261746f7247726f757049642c20543a3a43757261746f7249642c20543a3a4d656d62657249643e0001286368616e6e656c5f6964280130543a3a4368616e6e656c4964003f247c44656973737565206368616e6e656c27732063726561746f7220746f6b656e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e09060c3870616c6c65745f636f6e74656e74147479706573444368616e6e656c4261675769746e657373000008014c73746f726167655f6275636b6574735f6e756d10010c753332000160646973747269627574696f6e5f6275636b6574735f6e756d10010c75333200000d0600000211060011060c3470616c6c65745f636f6d6d6f6e2c6d65726b6c655f747265654850726f6f66456c656d656e745265636f7264081048617368012c105369646501150600080110686173682c011048617368000110736964651506011053696465000015060c3470616c6c65745f636f6d6d6f6e2c6d65726b6c655f747265651053696465000108104c6566740000001452696768740001000019060c3870616c6c65745f636f6e74656e741474797065734850756c6c5061796d656e74456c656d656e740c244368616e6e656c496401281c42616c616e636501181048617368012c000c01286368616e6e656c5f69642801244368616e6e656c496400016063756d756c61746976655f7265776172645f6561726e656418011c42616c616e6365000118726561736f6e2c01104861736800001d060c3870616c6c65745f636f6e74656e7414747970657358496e69745472616e73666572506172616d65746572730c204d656d626572496401283843757261746f7247726f7570496401281c42616c616e63650118000c01446e65775f636f6c6c61626f7261746f72732d0201ac42547265654d61703c4d656d62657249642c204368616e6e656c4167656e745065726d697373696f6e733e000114707269636518011c42616c616e63650001246e65775f6f776e6572e50101984368616e6e656c4f776e65723c4d656d62657249642c2043757261746f7247726f757049643e000021060c5070616c6c65745f70726f6a6563745f746f6b656e1474797065733c546f6b656e53616c65506172616d7310284a6f7942616c616e636501181c42616c616e636501182c426c6f636b4e756d62657201105456657374696e675363686564756c65506172616d7301d102001c0128756e69745f70726963651801284a6f7942616c616e636500015075707065725f626f756e645f7175616e7469747918011c42616c616e63650001247374617274735f61740102014c4f7074696f6e3c426c6f636b4e756d6265723e0001206475726174696f6e10012c426c6f636b4e756d62657200015c76657374696e675f7363686564756c655f706172616d73d90201744f7074696f6e3c56657374696e675363686564756c65506172616d733e0001386361705f7065725f6d656d6265724501013c4f7074696f6e3c42616c616e63653e0001206d657461646174613101013c4f7074696f6e3c5665633c75383e3e000025060c5070616c6c65745f70726f6a6563745f746f6b656e147479706573245472616e736665727308204d656d626572496401281c5061796d656e740109030004002906016c42547265654d61703c4d656d62657249642c205061796d656e743e00002906042042547265654d617008044b012804560109030004002d060000002d06000002310600310600000408280903003506083870616c6c65745f73746f726167651043616c6c04045400018c5464656c6574655f73746f726167655f6275636b657404014473746f726167655f6275636b65745f6964280148543a3a53746f726167654275636b657449640000201d0144656c6574652073746f72616765206275636b65742e204d75737420626520656d7074792e2053746f72616765206f70657261746f72206d757374206265206d697373696e672e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e7c7570646174655f75706c6f6164696e675f626c6f636b65645f7374617475730401286e65775f737461747573980110626f6f6c000120785570646174657320676c6f62616c2075706c6f6164696e6720666c61672e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e507570646174655f646174615f73697a655f6665650401446e65775f646174615f73697a655f66656518013042616c616e63654f663c543e000220cc557064617465732073697a652d62617365642070726963696e67206f66206e6577206f626a656374732075706c6f616465642e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e907570646174655f73746f726167655f6275636b6574735f7065725f6261675f6c696d69740401246e65775f6c696d697410010c753332000320bc55706461746573202253746f72616765206275636b657473207065722062616722206e756d626572206c696d69742e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743ea47570646174655f73746f726167655f6275636b6574735f766f75636865725f6d61785f6c696d6974730801406e65775f6f626a656374735f73697a6528010c7536340001486e65775f6f626a656374735f6e756d62657228010c753634000420b455706461746573202253746f72616765206275636b65747320766f7563686572206d6178206c696d697473222e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e8c7570646174655f646174615f6f626a6563745f73746174655f626c6f61745f626f6e6404014073746174655f626c6f61745f626f6e6418013042616c616e63654f663c543e000520ac557064617465732064617461206f626a65637420737461746520626c6f617420626f6e642076616c75652e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743efc7570646174655f6e756d6265725f6f665f73746f726167655f6275636b6574735f696e5f64796e616d69635f6261675f6372656174696f6e5f706f6c69637908014064796e616d69635f6261675f74797065b102013844796e616d6963426167547970650001646e756d6265725f6f665f73746f726167655f6275636b65747310010c7533320006202d01557064617465206e756d626572206f662073746f72616765206275636b657473207573656420696e20676976656e2064796e616d696320626167206372656174696f6e20706f6c6963792e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e407570646174655f626c61636b6c69737408013472656d6f76655f686173686573a502014442547265655365743c5665633c75383e3e0001286164645f686173686573a502014442547265655365743c5665633c75383e3e000728bc41646420616e642072656d6f76652068617368657320746f207468652063757272656e7420626c61636b6c6973742e203c7765696768743e002423232057656967687448604f202857202b205629602077686572653abc2d2060576020697320746865206e756d626572206f66206974656d7320696e206072656d6f76655f68617368657360b02d2060566020697320746865206e756d626572206f66206974656d7320696e20606164645f68617368657360142d2044423ab02020202d20604f28572960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e546372656174655f73746f726167655f6275636b6574100134696e766974655f776f726b65723501014c4f7074696f6e3c576f726b657249643c543e3e000148616363657074696e675f6e65775f62616773980110626f6f6c00012873697a655f6c696d697428010c7536340001346f626a656374735f6c696d697428010c753634000820584372656174652073746f72616765206275636b65742e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e787570646174655f73746f726167655f6275636b6574735f666f725f6261670c01186261675f69649502012042616749643c543e00012c6164645f6275636b6574736901017042547265655365743c543a3a53746f726167654275636b657449643e00013872656d6f76655f6275636b6574736901017042547265655365743c543a3a53746f726167654275636b657449643e00092888557064617465732073746f72616765206275636b65747320666f722061206261672e203c7765696768743e002423232057656967687448604f202857202b205629602077686572653ab42d2060576020697320746865206e756d626572206f66206974656d7320696e20606164645f6275636b65747360c02d2060566020697320746865206e756d626572206f66206974656d7320696e206072656d6f76655f6275636b65747360142d2044423ac02020202d20604f2856202b20572960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e9463616e63656c5f73746f726167655f6275636b65745f6f70657261746f725f696e7669746504014473746f726167655f6275636b65745f6964280148543a3a53746f726167654275636b65744964000a20110143616e63656c2070656e64696e672073746f72616765206275636b657420696e766974652e20416e20696e7669746174696f6e206d7573742062652070656e64696e672e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e78696e766974655f73746f726167655f6275636b65745f6f70657261746f7208014473746f726167655f6275636b65745f6964280148543a3a53746f726167654275636b6574496400012c6f70657261746f725f696428012c576f726b657249643c543e000b20c0496e766974652073746f72616765206275636b6574206f70657261746f722e204d757374206265206d697373696e672e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e7872656d6f76655f73746f726167655f6275636b65745f6f70657261746f7204014473746f726167655f6275636b65745f6964280148543a3a53746f726167654275636b65744964000c208052656d6f7665732073746f72616765206275636b6574206f70657261746f722e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e707570646174655f73746f726167655f6275636b65745f73746174757308014473746f726167655f6275636b65745f6964280148543a3a53746f726167654275636b65744964000148616363657074696e675f6e65775f62616773980110626f6f6c000d20dc5570646174652077686574686572206e6577206261677320617265206265696e6720616363657074656420666f722073746f726167652e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e847365745f73746f726167655f6275636b65745f766f75636865725f6c696d6974730c014473746f726167655f6275636b65745f6964280148543a3a53746f726167654275636b657449640001586e65775f6f626a656374735f73697a655f6c696d697428010c7536340001606e65775f6f626a656374735f6e756d6265725f6c696d697428010c753634000e208c536574732073746f72616765206275636b657420766f7563686572206c696d6974732e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e806163636570745f73746f726167655f6275636b65745f696e7669746174696f6e0c0124776f726b65725f696428012c576f726b657249643c543e00014473746f726167655f6275636b65745f6964280148543a3a53746f726167654275636b657449640001547472616e736163746f725f6163636f756e745f6964000130543a3a4163636f756e744964000f285d01416363657074207468652073746f72616765206275636b657420696e7669746174696f6e2e20416e20696e7669746174696f6e206d757374206d617463682074686520776f726b65725f696420706172616d657465722e59014974206163636570747320616e206164646974696f6e616c206163636f756e7420494420287472616e736163746f722920666f7220616363657074696e672064617461206f626a6563747320746f2070726576656e74747472616e73616374696f6e206e6f6e636520636f6c6c6973696f6e732e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e747365745f73746f726167655f6f70657261746f725f6d657461646174610c0124776f726b65725f696428012c576f726b657249643c543e00014473746f726167655f6275636b65745f6964280148543a3a53746f726167654275636b657449640001206d6574616461746130011c5665633c75383e001024dc536574732073746f72616765206f70657261746f72206d65746164617461202865672e3a2073746f72616765206e6f64652055524c292e203c7765696768743e002423232057656967687438604f20285729602077686572653aa02d206057602069732073697a65206f6620606d657461646174616020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6c6163636570745f70656e64696e675f646174615f6f626a65637473100124776f726b65725f696428012c576f726b657249643c543e00014473746f726167655f6275636b65745f6964280148543a3a53746f726167654275636b657449640001186261675f69649502012042616749643c543e000130646174615f6f626a656374736901016442547265655365743c543a3a446174614f626a65637449643e0011246501412073746f726167652070726f7669646572207369676e616c732074686174207468652064617461206f626a65637420776173207375636365737366756c6c792075706c6f6164656420746f206974732073746f726167652e203c7765696768743e00242323205765696768743c604f2028572029602077686572653ab82d2060576020697320746865206e756d626572206f66206974656d7320696e2060646174615f6f626a6563747360142d2044423ab02020202d20604f28572960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e846372656174655f646973747269627574696f6e5f6275636b65745f66616d696c7900122090437265617465206120646973747269627574696f6e206275636b65742066616d696c792e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e8464656c6574655f646973747269627574696f6e5f6275636b65745f66616d696c7904012466616d696c795f6964280174543a3a446973747269627574696f6e4275636b657446616d696c7949640013209444656c65746573206120646973747269627574696f6e206275636b65742066616d696c792e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e686372656174655f646973747269627574696f6e5f6275636b657408012466616d696c795f6964280174543a3a446973747269627574696f6e4275636b657446616d696c794964000148616363657074696e675f6e65775f62616773980110626f6f6c00142074437265617465206120646973747269627574696f6e206275636b65742e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e847570646174655f646973747269627574696f6e5f6275636b65745f7374617475730801246275636b65745f69642502015c446973747269627574696f6e4275636b657449643c543e000148616363657074696e675f6e65775f62616773980110626f6f6c001520d855706461746573206120646973747269627574696f6e206275636b6574202761636365707473206e657720626167732720666c61672e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6864656c6574655f646973747269627574696f6e5f6275636b65740401246275636b65745f69642502015c446973747269627574696f6e4275636b657449643c543e001620a844656c65746520646973747269627574696f6e206275636b65742e204d75737420626520656d7074792e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e8c7570646174655f646973747269627574696f6e5f6275636b6574735f666f725f6261671001186261675f69649502012042616749643c543e00012466616d696c795f6964280174543a3a446973747269627574696f6e4275636b657446616d696c79496400014c6164645f6275636b6574735f696e64696365736901019042547265655365743c543a3a446973747269627574696f6e4275636b6574496e6465783e00015872656d6f76655f6275636b6574735f696e64696365736901019042547265655365743c543a3a446973747269627574696f6e4275636b6574496e6465783e0017289c5570646174657320646973747269627574696f6e206275636b65747320666f722061206261672e203c7765696768743e002423232057656967687448604f202857202b205629602077686572653ad42d2060576020697320746865206e756d626572206f66206974656d7320696e20606164645f6275636b6574735f696e646963657360e02d2060566020697320746865206e756d626572206f66206974656d7320696e206072656d6f76655f6275636b6574735f696e646963657360142d2044423ac02020202d20604f2856202b20572960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743ea47570646174655f646973747269627574696f6e5f6275636b6574735f7065725f6261675f6c696d69740401246e65775f6c696d697410010c753332001820d0557064617465732022446973747269627574696f6e206275636b657473207065722062616722206e756d626572206c696d69742e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e7c7570646174655f646973747269627574696f6e5f6275636b65745f6d6f64650801246275636b65745f69642502015c446973747269627574696f6e4275636b657449643c543e000130646973747269627574696e67980110626f6f6c001920d8557064617465732027646973747269627574696e672720666c616720666f722074686520646973747269627574696e6720666c61672e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743eb87570646174655f66616d696c6965735f696e5f64796e616d69635f6261675f6372656174696f6e5f706f6c69637908014064796e616d69635f6261675f74797065b102013844796e616d69634261675479706500012066616d696c696573b50201b042547265654d61703c543a3a446973747269627574696f6e4275636b657446616d696c7949642c207533323e001a283d01557064617465206e756d626572206f66206469737472696275746564206275636b657473207573656420696e20676976656e2064796e616d696320626167206372656174696f6e20706f6c6963792e9c5570646174657320646973747269627574696f6e206275636b65747320666f722061206261672e203c7765696768743e002423232057656967687438604f20285729602077686572653aa82d2060576020697320746865206e756d626572206f66206974656d7320696e206066616d696c69657360142d2044423ab02020202d20604f28572960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e8c696e766974655f646973747269627574696f6e5f6275636b65745f6f70657261746f720801246275636b65745f69642502015c446973747269627574696f6e4275636b657449643c543e0001486f70657261746f725f776f726b65725f696428012c576f726b657249643c543e001b2090496e7669746520616e206f70657261746f722e204d757374206265206d697373696e672e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743ea863616e63656c5f646973747269627574696f6e5f6275636b65745f6f70657261746f725f696e766974650801246275636b65745f69642502015c446973747269627574696f6e4275636b657449643c543e0001486f70657261746f725f776f726b65725f696428012c576f726b657249643c543e001c209c43616e63656c2070656e64696e6720696e766974652e204d7573742062652070656e64696e672e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e8c72656d6f76655f646973747269627574696f6e5f6275636b65745f6f70657261746f720801246275636b65745f69642502015c446973747269627574696f6e4275636b657449643c543e0001486f70657261746f725f776f726b65725f696428012c576f726b657249643c543e001d209452656d6f76657320646973747269627574696f6e206275636b6574206f70657261746f722e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e9c7365745f646973747269627574696f6e5f6275636b65745f66616d696c795f6d6574616461746108012466616d696c795f6964280174543a3a446973747269627574696f6e4275636b657446616d696c7949640001206d6574616461746130011c5665633c75383e001e24a053657420646973747269627574696f6e206275636b65742066616d696c79206d657461646174612e203c7765696768743e002423232057656967687438604f20285729602077686572653aa02d206057602069732073697a65206f6620606d657461646174616020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e946163636570745f646973747269627574696f6e5f6275636b65745f696e7669746174696f6e080124776f726b65725f696428012c576f726b657249643c543e0001246275636b65745f69642502015c446973747269627574696f6e4275636b657449643c543e001f20584163636570742070656e64696e6720696e766974652e203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e887365745f646973747269627574696f6e5f6f70657261746f725f6d657461646174610c0124776f726b65725f696428012c576f726b657249643c543e0001246275636b65745f69642502015c446973747269627574696f6e4275636b657449643c543e0001206d6574616461746130011c5665633c75383e002024fc53657420646973747269627574696f6e206f70657261746f72206d6574616461746120666f722074686520646973747269627574696f6e206275636b65742e203c7765696768743e002423232057656967687438604f20285729602077686572653aa02d206057602069732073697a65206f6620606d657461646174616020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5c73746f726167655f6f70657261746f725f72656d61726b0c0124776f726b65725f696428012c576f726b657249643c543e00014473746f726167655f6275636b65745f6964280148543a3a53746f726167654275636b6574496400010c6d736730011c5665633c75383e0021289c4465706f73697420612053746f726167654f70657261746f7252656d61726b6564206576656e7474636f6e7461696e696e6720612067656e65726963206d6573736167652e203c7765696768743e002423232057656967687438604f20285729602077686572653a9c2d206057602069732073697a65206f6620606d6573736167656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e70646973747269627574696f6e5f6f70657261746f725f72656d61726b0c0124776f726b65725f696428012c576f726b657249643c543e000158646973747269627574696f6e5f6275636b65745f69642502015c446973747269627574696f6e4275636b657449643c543e00010c6d736730011c5665633c75383e0022249c43726561746520612064796e616d6963206261672e20446576656c6f706d656e74206d6f64652e203c7765696768743e002423232057656967687438604f20285729602077686572653a9c2d206057602069732073697a65206f6620606d6573736167656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e3906085070616c6c65745f70726f6a6563745f746f6b656e1043616c6c04045400011c207472616e736665721001347372635f6d656d6265725f696428012c543a3a4d656d6265724964000120746f6b656e5f6964280128543a3a546f6b656e496400011c6f7574707574733d0601385472616e73666572734f663c543e0001206d6574616461746130011c5665633c75383e0000685501416c6c6f7720746f207472616e736665722066726f6d20607372635f6d656d6265725f696460206163636f756e7420746f2074686520766172696f757320606f757470757473602062656e6566696369617269657364696e207468652073706563696669656420616d6f756e74732e0038507265636f6e646974696f6e733ae82d206f726967696e207369676e6572206d75737420626520607372635f6d656d6265725f69646020636f6e74726f6c6c6572206163636f756e74842d20746f6b656e2062792060746f6b656e5f696460206d75737420657869737473d82d206163636f756e74206f6620607372635f6d656d6265725f696460206d75737420657869737420666f722060746f6b656e5f69646041012d2073656e646572206d757374206861766520656e6f756768204a4f597320746f20636f7665722074686520746f74616c20626c6f617420626f6e6420726571756972656420696e2063617365206f6678202064657374696e6174696f6e287329206e6f74206578697374696e672e29012d20736f75726365206163636f756e74206d757374206861766520656e6f75676820746f6b656e2066756e647320746f20636f76657220616c6c20746865207472616e7366657228732941012d20606f75747075747360206d7573742064657369676e617465206578697374696e672064657374696e6174696f6e28732920666f7220225065726d697373696f6e656422207472616e73666572732e3c506f7374636f6e646974696f6e733ae82d20736f75726365206163636f756e74277320746f6b656e7320616d6f756e74206973206465637265617365642062792060616d6f756e74602e49012d20746f74616c20626c6f617420626f6e64207472616e736665727265642066726f6d2073656e6465722773204a4f592062616c616e636520696e746f20746865207472656173757279206163636f756e74cc2020696e20636173652064657374696e6174696f6e2873292068617665206265656e20616464656420746f2073746f72616765ec2d20606f7574707574732e62656e65666963696172796020746f6b656e7320616d6f756e7420696e637265617365642062792060616d6f756e746000203c7765696768743e002423232057656967687448604f202854202b204d29602077686572653a802d2060546020697320746865206c656e677468206f6620606f75747075747360b02d20604d60206973207468652073697a65206f6620606d657461646174616020696e206b696c6f6279746573142d2044423aac20202d20604f28542960202d2066726f6d20746865207468652067656e65726174656420776569676874732c23203c2f7765696768743e106275726e0c0120746f6b656e5f6964280128543a3a546f6b656e49640001246d656d6265725f696428012c543a3a4d656d6265724964000118616d6f756e74180144546f6b656e42616c616e63654f663c543e000178884275726e20746f6b656e732066726f6d20737065636966696564206163636f756e740038507265636f6e646974696f6e733a442d2060616d6f756e7460206973203e2030f42d206f726967696e207369676e6572206973206120636f6e74726f6c6c6572206163636f756e74206f6620606d656d6265725f696460206d656d626572702d20746f6b656e2062792060746f6b656e5f69646020657869737473c02d20616e206163636f756e742065786973747320666f722060746f6b656e5f696460207820606d656d6265725f696460a02d206163636f756e74277320746f6b656e7320616d6f756e74206973203e3d2060616d6f756e746005012d20746f6b656e20737570706c792063616e206265206d6f64696669656420287468657265206973206e6f2061637469766520726576656e75652073706c697429003c506f7374636f6e646974696f6e733a4d012d207374617274696e6720776974682060756e70726f6365737365646020626565696e6720657175616c20746f2060616d6f756e74602c206163636f756e7427732076657374696e67207363686564756c6573602020617265206974657261746564206f76657220616e643a5d0120202d2075706461746564207769746820606275726e65645f616d6f756e74202b3d207570726f636573736564602069662076657374696e67207363686564756c65277320756e76657374656420616d6f756e74206973742020202067726561746572207468616e20607570726f636573736564605420202d2072656d6f766564206f746865727769736545012020286166746572206561636820697465726174696f6e2060756e70726f6365737365646020697320726564756365642062792074686520616d6f756e74206f6620756e76657374656420746f6b656e737c20206275726e656420647572696e67207468617420697465726174696f6e2949012d20696620746865206163636f756e742068617320616e79206073706c69745f7374616b696e675f737461747573602c20746865206073706c69745f7374616b696e675f7374617475732e616d6f756e7460e820206973207265647563656420627920606d696e28616d6f756e742c2073706c69745f7374616b696e675f7374617475732e616d6f756e742960a42d20606163636f756e742e616d6f756e746020697320726564756365642062792060616d6f756e7460942d20746f6b656e20737570706c7920697320726564756365642062792060616d6f756e746000203c7765696768743e00242323205765696768741c604f2028312960142d2044423ad820202d20604f28312960202d20646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e30647573745f6163636f756e74080120746f6b656e5f6964280128543a3a546f6b656e49640001246d656d6265725f696428012c543a3a4d656d62657249640002508c416c6c6f7720616e79207573657220746f2072656d6f766520616e206163636f756e740038507265636f6e646974696f6e733a802d20746f6b656e2062792060746f6b656e5f696460206d757374206578697374d02d20616e206163636f756e74206d75737420657869737420666f722060746f6b656e5f696460207820606d656d6265725f69646015012d206966205065726d697373696f6e656420746f6b656e3a20606f726967696e60207369676e6572206d75737420626520606d656d6265725f696460206d656d6265722773502020636f6e74726f6c6c6572206163636f756e74ec2d2060746f6b656e5f696460207820606d656d6265725f696460206163636f756e74206d75737420626520616e20656d707479206163636f756e7478202028606163636f756e745f646174612e616d6f756e7460203d3d2030293c506f7374636f6e646974696f6e733a1d012d204163636f756e7420696e666f726d6174696f6e20666f722060746f6b656e5f696460207820606d656d6265725f6964602072656d6f7665642066726f6d2073746f72616765dc2d20626c6f617420626f6e6420726566756e64656420746f20606d656d6265725f69646020636f6e74726f6c6c6572206163636f756e74cc2020286f722060626c6f61745f626f6e642e72657061796d656e745f726573747269637465645f746f60206163636f756e742900203c7765696768743e001c604f2028312960142d2044423ad820202d20604f28312960202d20646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e386a6f696e5f77686974656c6973740c01246d656d6265725f696428012c543a3a4d656d6265724964000120746f6b656e5f6964280128543a3a546f6b656e496400011470726f6f66510601404d65726b6c6550726f6f664f663c543e00034c11014a6f696e2077686974656c69737420666f72207065726d697373696f6e656420636173653a207573656420746f20616464206163636f756e747320666f7220746f6b656e38507265636f6e646974696f6e733a682d2027746f6b656e5f696427206d7573742062652076616c6964f42d20606f726967696e60207369676e6572206d757374206265206120636f6e74726f6c6c6572206163636f756e74206f6620606d656d6265725f696460c02d206163636f756e7420666f7220606d656d6265725f696460206d757374206e6f7420616c726561647920657869737409012d207472616e7366657220706f6c69637920697320605065726d697373696f6e65646020616e64206d65726b6c652070726f6f66206d7573742062652076616c6964003c506f7374636f6e646974696f6e733af42d206163636f756e7420666f7220606d656d6265725f696460206372656174656420616e6420616464656420746f2070616c6c65742073746f72616765e82d2060626c6f61745f626f6e6460207472616e736665727265642066726f6d2073656e64657220746f207472656173757279206163636f756e7400203c7765696768743e002423232057656967687438604f20284829602077686572653a802d2060486020697320746865206c656e677468206f66206070726f6f662e3060142d2044423ad820202d20604f28312960202d20646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5c70757263686173655f746f6b656e735f6f6e5f73616c650c0120746f6b656e5f6964280128543a3a546f6b656e49640001246d656d6265725f696428012c543a3a4d656d6265724964000118616d6f756e74180144546f6b656e42616c616e63654f663c543e0004ec94507572636861736520746f6b656e73206f6e2061637469766520746f6b656e2073616c652e0038507265636f6e646974696f6e733a802d20746f6b656e2062792060746f6b656e5f696460206d757374206578697374d02d20746f6b656e2062792060746f6b656e5f696460206d75737420626520696e204f66666572696e6753746174653a3a53616c65ec2d2060616d6f756e74602063616e6e6f7420657863656564206e756d626572206f6620746f6b656e732072656d61696e696e67206f6e2073616c6509012d20606f726967696e60207369676e6572206d75737420626520636f6e74726f6c6c6572206163636f756e74206f6620606d656d6265725f696460206d656d626572a42d2073656e646572277320617661696c61626c65204a4f592062616c616e6365206d7573742062653aec20202d203e3d20606a6f795f6578697374656e7469616c5f6465706f736974202b20616d6f756e74202a2073616c652e756e69745f70726963656080202020206966204163636f756e744461746120616c7265616479206578697374210120202d203e3d20606a6f795f6578697374656e7469616c5f6465706f736974202b20616d6f756e74202a2073616c652e756e69745f7072696365202b20626c6f61745f626f6e646084202020206966204163636f756e744461746120646f6573206e6f7420657869737435012d206c657420606665655f616d6f756e7460206265206073616c655f706c6174666f726d5f6665652e6d756c5f666c6f6f7228616d6f756e74202a2073616c652e756e69745f7072696365296059012d206966206073616c652e6561726e696e67735f64657374696e6174696f6e2e69735f736f6d6528296020616e64206073616c652e6561726e696e67735f64657374696e6174696f6e60206163636f756e74206861733c20207a65726f2062616c616e63653a390120202d2074686520616d6f756e7420746f206265207472616e736665727265642066726f6d206073656e6465726020746f206073616c652e6561726e696e67735f64657374696e6174696f6e602c4d0120202020776869636820697320657175616c20746f2060616d6f756e74202a2073616c652e756e69745f7072696365202d206665655f616d6f756e74602c206d7573742062652067726561746572207468616e7420202020606a6f795f6578697374656e7469616c5f6465706f7369746031012d20746f74616c206e756d626572206f6620746f6b656e7320616c72656164792070757263686173656420627920746865206d656d626572206f6e207468652063757272656e742073616c65f82020504c55532060616d6f756e7460206d757374206e6f74206578636565642073616c6527732070757263686173652063617020706572206d656d626572602d206966205065726d697373696f6e656420746f6b656e3a010120202d204163636f756e74496e666f4279546f6b656e416e644d656d62657228746f6b656e5f69642c20266d656d6265725f696429206d7573742065786973749c2d206966206073616c652e76657374696e675f7363686564756c652e69735f736f6d652829603ae020202d206e756d626572206f662073656e646572206163636f756e742773206f6e676f696e672076657374696e67207363686564756c6573cc202020206d757374206265203c204d617856657374696e675363686564756c65735065724163636f756e74506572546f6b656e003c506f7374636f6e646974696f6e733aac2d206966206073616c652e6561726e696e67735f64657374696e6174696f6e2e69735f736f6d652829603a4d0120202d2060616d6f756e74202a2073616c652e756e69745f7072696365202d206665655f616d6f756e7460204a4f5920746f6b656e7320617265207472616e7366657265642066726f6d206073656e646572608820202020746f206073616c652e6561726e696e67735f64657374696e6174696f6e60d420202d20606665655f616d6f756e7460204a4f5920697320736c61736865642066726f6d206073656e646572602062616c616e6365ac2d206966206073616c652e6561726e696e67735f64657374696e6174696f6e2e69735f6e6f6e652829603a0d0120202d2060616d6f756e74202a2073616c652e756e69745f707269636560204a4f5920697320736c61736865642066726f6d206073656e646572602062616c616e636549012d206966206e657720746f6b656e206163636f756e7420637265617465643a2060626c6f61745f626f6e6460207472616e736665727265642066726f6d206073656e6465726020746f2074726561737572799c2d206966206073616c652e76657374696e675f7363686564756c652e69735f736f6d652829603a0d0120202d20696620627579657220686173206e6f206076657374696e675f7363686564756c65602072656c6174656420746f207468652063757272656e742073616c653a5d01202020202d2061206e65772076657374696e67207363686564756c6520286073616c652e6765745f76657374696e675f7363686564756c652870757263686173655f616d6f756e7429602920697320616464656420746f80202020202020627579657227732060766573696e675f7363686564756c6573605501202020202d20736f6d652066696e69736865642076657374696e67207363686564756c652069732072656d6f7665642066726f6d2062757965722773206163636f756e745f6461746120696e20636173652074686559012020202020206e756d626572206f6620627579657227732076657374696e675f7363686564756c657320776173203d3d204d617856657374696e675363686564756c65735065724163636f756e74506572546f6b656e290120202d20696620627579657220616c7265616479206861732061206076657374696e675f7363686564756c65602072656c6174656420746f207468652063757272656e742073616c653afc202020202d2063757272656e742076657374696e67207363686564756c6527732060636c6966665f616d6f756e746020697320696e63726561736564206279fc2020202020206073616c652e6765745f76657374696e675f7363686564756c652870757263686173655f616d6f756e74292e636c6966665f616d6f756e74602901202020202d2063757272656e742076657374696e67207363686564756c6527732060706f73745f636c6966665f746f74616c5f616d6f756e746020697320696e6372656173656420627929012020202020206073616c652e6765745f76657374696e675f7363686564756c652870757263686173655f616d6f756e74292e706f73745f636c6966665f746f74616c5f616d6f756e74609c2d206966206073616c652e76657374696e675f7363686564756c652e69735f6e6f6e652829603ad820202d2062757965722773206163636f756e7420746f6b656e20616d6f756e7420696e637265617365642062792060616d6f756e746055012d2069662060746f6b656e5f646174612e73616c652e7175616e746974795f6c656674202d20616d6f756e74203d3d20306020616e64206073616c652e6175746f5f66696e616c697a6560206973206074727565604101202060746f6b656e5f646174612e73616c65602069732073657420746f204e6f6e652c206f74686572776973652060746f6b656e5f646174612e73616c652e7175616e746974795f6c65667460206973350120206465637265617365642062792060616d6f756e746020616e642060746f6b656e5f646174612e73616c652e66756e64735f636f6c6c65637465646020696e20696e6372656173656420627970202060616d6f756e74202a2073616c652e756e69745f70726963656000203c7765696768743e00242323205765696768741c604f2028312960142d2044423ad820202d20604f28312960202d20646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5070617274696369706174655f696e5f73706c69740c0120746f6b656e5f6964280128543a3a546f6b656e49640001246d656d6265725f696428012c543a3a4d656d6265724964000118616d6f756e74180144546f6b656e42616c616e63654f663c543e000568f0506172746963697061746520696e20746865202a6c61746573742a20746f6b656e20726576656e75652073706c697420286966206f6e676f696e672938507265636f6e646974696f6e733a8c2d2060746f6b656e60206d75737420657869737420666f722060746f6b656e5f696460fc2d20606f726967696e60207369676e6572206d75737420626520606d656d6265725f696460206d656d62657220636f6e74726f6c6c6572206163636f756e74582d2060616d6f756e7460206d757374206265203e2030cc2d20606163636f756e7460206d7573742065786973742020666f72206028746f6b656e5f69642c206d656d6265725f69642960fc2d2060746f6b656e2e73706c69745f73746174757360206d7573742062652061637469766520414e44205448454e2063757272656e745f626c6f636b20696eb82020205b73706c69742e73746172742c2073706c69742e7374617274202b2073706c69745f6475726174696f6e2981012d20606163636f756e742e7374616b696e675f7374617475732e69735f6e6f6e65282960204f5220606163636f756e742e7374616b696e675f7374617475732e73706c69745f6964602072656665727320746f206120706173742073706c6974782d20606163636f756e742e616d6f756e7460203e3d2060616d6f756e74602d012d206c657420606469766964656e64203d2073706c69745f616c6c6f636174696f6e202a206163636f756e742e7374616b65645f616d6f756e74202f20746f6b656e2e737570706c79606015012020207468656e2060747265617375727960206d7573742062652061626c6520746f207472616e7366657220606469766964656e646020616d6f756e74206f66204a4f592eec202020285468697320636f6e646974696f6e20746563686e6963616c6c792c2073686f756c6420616c7761797320626520736174697366696564290038506f7374636f6e646974696f6e732d012d20606469766964656e646020616d6f756e74206f66204a4f5973207472616e736665727265642066726f6d206074726561737572795f6163636f756e746020746f206073656e6465726045012d2060746f6b656e6020726576656e75652073706c6974206469766964656e647320706179656420747261636b696e67207661726961626c6520696e6372656173656420627920606469766964656e646045012d20606163636f756e742e7374616b696e675f737461747573602073657420746f20536f6d65282e2e2920776974682060616d6f756e746020616e642060746f6b656e2e6c61746573745f73706c69746000203c7765696768743e00242323205765696768741c604f2028312960142d2044423ad820202d20604f28312960202d20646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e48657869745f726576656e75655f73706c6974080120746f6b656e5f6964280128543a3a546f6b656e49640001246d656d6265725f696428012c543a3a4d656d626572496400064cb453706c69742d70617274696369706174696e672075736572206c656176657320726576656e75652073706c697434507265636f6e646974696f6e738c2d2060746f6b656e60206d75737420657869737420666f722060746f6b656e5f696460fc2d20606f726967696e60207369676e6572206d75737420626520606d656d6265725f696460206d656d62657220636f6e74726f6c6c6572206163636f756e74c82d20606163636f756e7460206d75737420657869737420666f72206028746f6b656e5f69642c206d656d6265725f69642960902d20606163636f756e742e7374616b696e67207374617475732e69735f736f6d6528292729012d2069662060286163636f756e742e7374616b696e675f7374617475732e73706c69745f6964203d3d20746f6b656e2e6e6578745f726576656e75655f73706c69745f6964202d2031604101202020414e442060746f6b656e2e726576656e75655f73706c6974602069732061637469766529205448454e2073706c6974207374616b696e6720706572696f6420206d75737420626520656e6465640038506f7374636f6e646974696f6e73982d20606163636f756e742e7374616b696e675f737461747573602073657420746f204e6f6e6500203c7765696768743e00242323205765696768741c604f2028312960142d2044423ad820202d20604f28312960202d20646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e3d060c5070616c6c65745f70726f6a6563745f746f6b656e147479706573245472616e736665727308204d656d626572496401281c5061796d656e740141060004004506016c42547265654d61703c4d656d62657249642c205061796d656e743e000041060c5070616c6c65745f70726f6a6563745f746f6b656e1474797065731c5061796d656e74041c42616c616e6365011800040118616d6f756e7418011c42616c616e636500004506042042547265654d617008044b01280456014106000400490600000049060000024d06004d06000004082841060051060c5070616c6c65745f70726f6a6563745f746f6b656e1474797065732c4d65726b6c6550726f6f660418486173686572014904000400550601845665633c284861736865723a3a4f75747075742c204d65726b6c6553696465293e000055060000025906005906000004082c5d06005d060c5070616c6c65745f70726f6a6563745f746f6b656e147479706573284d65726b6c6553696465000108145269676874000000104c656674000100006106085c70616c6c65745f70726f706f73616c735f656e67696e651043616c6c04045400011010766f7465100120766f7465725f696428012c4d656d62657249643c543e00012c70726f706f73616c5f6964100134543a3a50726f706f73616c4964000110766f74653d030120566f74654b696e64000124726174696f6e616c6530011c5665633c75383e000028d4566f74652065787472696e7369632e20436f6e646974696f6e733a20206f726967696e206d75737420616c6c6f7720766f7465732e00203c7765696768743e002423232057656967687438604f20285229602077686572653ab42d20605260206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f722070617261656d746572732c23203c2f7765696768743e3c63616e63656c5f70726f706f73616c08012c70726f706f7365725f696428012c4d656d62657249643c543e00012c70726f706f73616c5f6964100134543a3a50726f706f73616c4964000128ac43616e63656c20612070726f706f73616c20627920697473206f726967696e616c2070726f706f7365722e00203c7765696768743e002423232057656967687438604f20284c29602077686572653ac02d20604c602069732074686520746f74616c206e756d626572206f66206c6f636b7320696e206042616c616e63657360142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e347665746f5f70726f706f73616c04012c70726f706f73616c5f6964100134543a3a50726f706f73616c4964000224785665746f20612070726f706f73616c2e204d75737420626520726f6f742e00203c7765696768743e0024232320576569676874c4604f202831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3c70726f706f7365725f72656d61726b0c012c70726f706f73616c5f6964100134543a3a50726f706f73616c496400012c70726f706f7365725f696428012c4d656d62657249643c543e00010c6d736730011c5665633c75383e0003243c50726f706f7365722052656d61726b00203c7765696768743e0024232320576569676874c4604f202831296020646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e6506086c70616c6c65745f70726f706f73616c735f64697363757373696f6e1043616c6c040454000110206164645f706f7374100138706f73745f617574686f725f696428012c4d656d62657249643c543e0001247468726561645f696428012c543a3a54687265616449640001107465787430011c5665633c75383e0001206564697461626c65980110626f6f6c0000289441646473206120706f7374207769746820617574686f72206f726967696e20636865636b2e00203c7765696768743e002423232057656967687438604f20284c29602077686572653aa02d20604c60206973207468652073697a65206f662060746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c64656c6574655f706f737410012864656c657465725f696428012c4d656d62657249643c543e00011c706f73745f6964280124543a3a506f737449640001247468726561645f696428012c543a3a546872656164496400011068696465980110626f6f6c000128510152656d6f766520706f73742066726f6d2073746f726167652c207769746820746865206c61737420706172616d6574657220696e6469636174696e67207768657468657220746f20616c736f206869646520697428696e207468652055492e00203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c7570646174655f706f73740c01247468726561645f696428012c543a3a546872656164496400011c706f73745f6964280124543a3a506f737449640001107465787430011c5665633c75383e0002282d0155706461746573206120706f7374207769746820617574686f72206f726967696e20636865636b2e2055706461746520617474656d707473206e756d626572206973206c696d697465642e00203c7765696768743e002423232057656967687438604f20284c29602077686572653aa02d20604c60206973207468652073697a65206f662060746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e486368616e67655f7468726561645f6d6f64650c01246d656d6265725f696428012c4d656d62657249643c543e0001247468726561645f696428012c543a3a54687265616449640001106d6f6465450301d85468726561644d6f64653c42547265655365743c3c54206173204d656d6265727368697054797065733e3a3a4d656d62657249643e3e0003287c4368616e67657320746872656164207065726d697373696f6e206d6f64652e00203c7765696768743e0024232320576569676874dc604f2028572960206966205468726561644d6f646520697320636c6f7365206f72204f283129206f74686572776973652077686572653ad02d2060576020697320746865206e756d626572206f662077686974656c6973746564206d656d6265727320696e20606d6f646560142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e6906085870616c6c65745f70726f706f73616c735f636f6465781043616c6c0404540001043c6372656174655f70726f706f73616c08016c67656e6572616c5f70726f706f73616c5f706172616d65746572734d03017047656e6572616c50726f706f73616c506172616d65746572733c543e00014070726f706f73616c5f64657461696c735103015050726f706f73616c44657461696c734f663c543e000034450143726561746520612070726f706f73616c2c207468652074797065206f662070726f706f73616c20646570656e6473206f6e20746865206070726f706f73616c5f64657461696c73602076617269616e7400203c7765696768743e002423232057656967687458604f202854202b2044202b204929602077686572653a902d2060546020697320746865207469746c652073697a6520696e206b696c6f6279746573a82d2060446020697320746865206465736372697074696f6e2073697a6520696e206b696c6f6279746573e02d20604960206973207468652073697a65206f6620616e7920706172616d6574657220696e206070726f706f73616c5f64657461696c736084202028696e206b696c6f62797465732069662069742773206d6574616461746129142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e6d06085070616c6c65745f776f726b696e675f67726f75701043616c6c08045400044900014c2c6164645f6f70656e696e6710012c6465736372697074696f6e30011c5665633c75383e0001306f70656e696e675f747970657d03012c4f70656e696e67547970650001307374616b655f706f6c696379610301a45374616b65506f6c6963793c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e3e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e00002cc44164642061206a6f62206f70656e696e6720666f72206120726567756c617220776f726b65722f6c65616420726f6c652e490152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20616464206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e002423232057656967687438604f20284429602077686572653abc2d20604460206973207468652073697a65206f6620606465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e406170706c795f6f6e5f6f70656e696e67040104708103016c4170706c794f6e4f70656e696e67506172616d65746572733c543e000128684170706c79206f6e206120776f726b6572206f70656e696e672e002823203c7765696768743e002423232057656967687438604f20284429602077686572653ac42d20604460206973207468652073697a65206f662060702e6465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3066696c6c5f6f70656e696e670801286f70656e696e675f69642801244f70656e696e6749640001687375636365737366756c5f6170706c69636174696f6e5f6964736901015c42547265655365743c4170706c69636174696f6e49643e000228ac46696c6c206f70656e696e6720666f722074686520726567756c61722f6c65616420706f736974696f6e2e4d0152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2066696c6c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e2823203c7765696768743e002423232057656967687438604f20284129602077686572653acc2d2060416020697320746865206c656e677468206f6620607375636365737366756c5f6170706c69636174696f6e5f69647360142d2044423a242020202d204f2841292c23203c2f7765696768743e4c7570646174655f726f6c655f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e00014c6e65775f726f6c655f6163636f756e745f6964000130543a3a4163636f756e744964000324150155706461746520746865206173736f63696174656420726f6c65206163636f756e74206f66207468652061637469766520726567756c617220776f726b65722f6c6561642e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e286c656176655f726f6c65080124776f726b65725f696428012c576f726b657249643c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000424904c656176652074686520726f6c65206279207468652061637469766520776f726b65722e2823203c7765696768743e002423232057656967687438604f20285229602077686572653ab42d20605260206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e387465726d696e6174655f726f6c650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c7479450101504f7074696f6e3c42616c616e63654f663c543e3e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000528a05465726d696e617465207468652061637469766520776f726b657220627920746865206c6561642e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f207465726d696e61746520746865206c656164657220726f6c65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ad82d20605060206973207468652073697a65206070656e616c74792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c736c6173685f7374616b650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c747918013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e00062c7d01536c61736865732074686520726567756c617220776f726b6572207374616b652c2064656d616e64732061206c6561646572206f726967696e2e204e6f206c696d6974732c206e6f20616374696f6e73206f6e207a65726f207374616b652e3d01496620736c617368696e672062616c616e63652067726561746572207468616e20746865206578697374696e67207374616b65202d207374616b6520697320736c617368656420746f207a65726f2e19015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20736c61736820746865206c6561646572207374616b65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ae82d20605060206973207468652073697a65206f66206070656e616c6974792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3864656372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e00073021014465637265617365732074686520726567756c617220776f726b65722f6c656164207374616b6520616e642072657475726e73207468652072656d61696e64657220746f207468653901776f726b6572207374616b696e675f6163636f756e745f69642e2043616e2062652064656372656173656420746f207a65726f2c206e6f20616374696f6e73206f6e207a65726f207374616b652e944163636570747320746865207374616b6520616d6f756e7420746f2064656372656173652e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20646563726561736520746865206c6561646572207374616b65292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e38696e6372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e0008280501496e637265617365732074686520726567756c617220776f726b65722f6c656164207374616b652c2064656d616e6473206120776f726b6572206f726967696e2e6d014c6f636b7320746f6b656e732066726f6d2074686520776f726b6572207374616b696e675f6163636f756e745f696420657175616c20746f206e6577207374616b652e204e6f206c696d697473206f6e20746865207374616b652e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5077697468647261775f6170706c69636174696f6e0401386170706c69636174696f6e5f69642801344170706c69636174696f6e4964000924010157697468647261772074686520776f726b6572206170706c69636174696f6e2e2043616e20626520646f6e652062792074686520776f726b6572206f6e6c792e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3863616e63656c5f6f70656e696e670401286f70656e696e675f69642801244f70656e696e674964000a28dc43616e63656c20616e206f70656e696e6720666f722074686520726567756c617220776f726b65722f6c65616420706f736974696f6e2e550152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2063616e63656c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e287365745f6275646765740401286e65775f62756467657418013042616c616e63654f663c543e000b28a0536574732061206e65772062756467657420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e547570646174655f7265776172645f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e0001546e65775f7265776172645f6163636f756e745f6964000130543a3a4163636f756e744964000c2469015570646174652074686520726577617264206163636f756e74206173736f6369617465642077697468206120736574207265776172642072656c6174696f6e7368697020666f72207468652061637469766520776f726b65722e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e507570646174655f7265776172645f616d6f756e74080124776f726b65725f696428012c576f726b657249643c543e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e000d28c855706461746520746865207265776172642070657220626c6f636b20666f72207468652061637469766520776f726b65722e310152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20757064617465206c656164657227732072657761726420616d6f756e74292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3c7365745f7374617475735f7465787404012c7374617475735f746578743101013c4f7074696f6e3c5665633c75383e3e000e30b4536574732061206e657720737461747573207465787420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e002423232057656967687438604f20285329602077686572653a4d012d20605360206973207468652073697a65206f662074686520636f6e74656e7473206f6620607374617475735f746578746020696e206b696c6f6279746573207768656e206974206973206e6f74206e6f6e6500142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e447370656e645f66726f6d5f6275646765740c01286163636f756e745f6964000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000f28a85472616e73666572732073706563696669656420616d6f756e7420746f20616e79206163636f756e742e5c5265717569726573206c6561646572206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6466756e645f776f726b696e675f67726f75705f6275646765740c01246d656d6265725f696428012c4d656d62657249643c543e000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c6530011c5665633c75383e0010209846756e6420776f726b696e672067726f7570206275646765742062792061206d656d6265722e203c7765696768743e0024232320576569676874c4604f202831296020446f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c6c6561645f72656d61726b04010c6d736730011c5665633c75383e0011284c4c6561642072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e34776f726b65725f72656d61726b080124776f726b65725f696428012c576f726b657249643c543e00010c6d736730011c5665633c75383e00122854576f726b65722072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e7106085070616c6c65745f776f726b696e675f67726f75701043616c6c08045400044900014c2c6164645f6f70656e696e6710012c6465736372697074696f6e30011c5665633c75383e0001306f70656e696e675f747970657d03012c4f70656e696e67547970650001307374616b655f706f6c696379610301a45374616b65506f6c6963793c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e3e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e00002cc44164642061206a6f62206f70656e696e6720666f72206120726567756c617220776f726b65722f6c65616420726f6c652e490152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20616464206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e002423232057656967687438604f20284429602077686572653abc2d20604460206973207468652073697a65206f6620606465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e406170706c795f6f6e5f6f70656e696e67040104708103016c4170706c794f6e4f70656e696e67506172616d65746572733c543e000128684170706c79206f6e206120776f726b6572206f70656e696e672e002823203c7765696768743e002423232057656967687438604f20284429602077686572653ac42d20604460206973207468652073697a65206f662060702e6465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3066696c6c5f6f70656e696e670801286f70656e696e675f69642801244f70656e696e6749640001687375636365737366756c5f6170706c69636174696f6e5f6964736901015c42547265655365743c4170706c69636174696f6e49643e000228ac46696c6c206f70656e696e6720666f722074686520726567756c61722f6c65616420706f736974696f6e2e4d0152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2066696c6c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e2823203c7765696768743e002423232057656967687438604f20284129602077686572653acc2d2060416020697320746865206c656e677468206f6620607375636365737366756c5f6170706c69636174696f6e5f69647360142d2044423a242020202d204f2841292c23203c2f7765696768743e4c7570646174655f726f6c655f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e00014c6e65775f726f6c655f6163636f756e745f6964000130543a3a4163636f756e744964000324150155706461746520746865206173736f63696174656420726f6c65206163636f756e74206f66207468652061637469766520726567756c617220776f726b65722f6c6561642e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e286c656176655f726f6c65080124776f726b65725f696428012c576f726b657249643c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000424904c656176652074686520726f6c65206279207468652061637469766520776f726b65722e2823203c7765696768743e002423232057656967687438604f20285229602077686572653ab42d20605260206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e387465726d696e6174655f726f6c650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c7479450101504f7074696f6e3c42616c616e63654f663c543e3e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000528a05465726d696e617465207468652061637469766520776f726b657220627920746865206c6561642e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f207465726d696e61746520746865206c656164657220726f6c65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ad82d20605060206973207468652073697a65206070656e616c74792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c736c6173685f7374616b650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c747918013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e00062c7d01536c61736865732074686520726567756c617220776f726b6572207374616b652c2064656d616e64732061206c6561646572206f726967696e2e204e6f206c696d6974732c206e6f20616374696f6e73206f6e207a65726f207374616b652e3d01496620736c617368696e672062616c616e63652067726561746572207468616e20746865206578697374696e67207374616b65202d207374616b6520697320736c617368656420746f207a65726f2e19015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20736c61736820746865206c6561646572207374616b65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ae82d20605060206973207468652073697a65206f66206070656e616c6974792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3864656372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e00073021014465637265617365732074686520726567756c617220776f726b65722f6c656164207374616b6520616e642072657475726e73207468652072656d61696e64657220746f207468653901776f726b6572207374616b696e675f6163636f756e745f69642e2043616e2062652064656372656173656420746f207a65726f2c206e6f20616374696f6e73206f6e207a65726f207374616b652e944163636570747320746865207374616b6520616d6f756e7420746f2064656372656173652e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20646563726561736520746865206c6561646572207374616b65292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e38696e6372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e0008280501496e637265617365732074686520726567756c617220776f726b65722f6c656164207374616b652c2064656d616e6473206120776f726b6572206f726967696e2e6d014c6f636b7320746f6b656e732066726f6d2074686520776f726b6572207374616b696e675f6163636f756e745f696420657175616c20746f206e6577207374616b652e204e6f206c696d697473206f6e20746865207374616b652e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5077697468647261775f6170706c69636174696f6e0401386170706c69636174696f6e5f69642801344170706c69636174696f6e4964000924010157697468647261772074686520776f726b6572206170706c69636174696f6e2e2043616e20626520646f6e652062792074686520776f726b6572206f6e6c792e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3863616e63656c5f6f70656e696e670401286f70656e696e675f69642801244f70656e696e674964000a28dc43616e63656c20616e206f70656e696e6720666f722074686520726567756c617220776f726b65722f6c65616420706f736974696f6e2e550152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2063616e63656c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e287365745f6275646765740401286e65775f62756467657418013042616c616e63654f663c543e000b28a0536574732061206e65772062756467657420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e547570646174655f7265776172645f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e0001546e65775f7265776172645f6163636f756e745f6964000130543a3a4163636f756e744964000c2469015570646174652074686520726577617264206163636f756e74206173736f6369617465642077697468206120736574207265776172642072656c6174696f6e7368697020666f72207468652061637469766520776f726b65722e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e507570646174655f7265776172645f616d6f756e74080124776f726b65725f696428012c576f726b657249643c543e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e000d28c855706461746520746865207265776172642070657220626c6f636b20666f72207468652061637469766520776f726b65722e310152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20757064617465206c656164657227732072657761726420616d6f756e74292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3c7365745f7374617475735f7465787404012c7374617475735f746578743101013c4f7074696f6e3c5665633c75383e3e000e30b4536574732061206e657720737461747573207465787420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e002423232057656967687438604f20285329602077686572653a4d012d20605360206973207468652073697a65206f662074686520636f6e74656e7473206f6620607374617475735f746578746020696e206b696c6f6279746573207768656e206974206973206e6f74206e6f6e6500142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e447370656e645f66726f6d5f6275646765740c01286163636f756e745f6964000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000f28a85472616e73666572732073706563696669656420616d6f756e7420746f20616e79206163636f756e742e5c5265717569726573206c6561646572206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6466756e645f776f726b696e675f67726f75705f6275646765740c01246d656d6265725f696428012c4d656d62657249643c543e000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c6530011c5665633c75383e0010209846756e6420776f726b696e672067726f7570206275646765742062792061206d656d6265722e203c7765696768743e0024232320576569676874c4604f202831296020446f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c6c6561645f72656d61726b04010c6d736730011c5665633c75383e0011284c4c6561642072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e34776f726b65725f72656d61726b080124776f726b65725f696428012c576f726b657249643c543e00010c6d736730011c5665633c75383e00122854576f726b65722072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e7506085070616c6c65745f776f726b696e675f67726f75701043616c6c08045400044900014c2c6164645f6f70656e696e6710012c6465736372697074696f6e30011c5665633c75383e0001306f70656e696e675f747970657d03012c4f70656e696e67547970650001307374616b655f706f6c696379610301a45374616b65506f6c6963793c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e3e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e00002cc44164642061206a6f62206f70656e696e6720666f72206120726567756c617220776f726b65722f6c65616420726f6c652e490152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20616464206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e002423232057656967687438604f20284429602077686572653abc2d20604460206973207468652073697a65206f6620606465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e406170706c795f6f6e5f6f70656e696e67040104708103016c4170706c794f6e4f70656e696e67506172616d65746572733c543e000128684170706c79206f6e206120776f726b6572206f70656e696e672e002823203c7765696768743e002423232057656967687438604f20284429602077686572653ac42d20604460206973207468652073697a65206f662060702e6465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3066696c6c5f6f70656e696e670801286f70656e696e675f69642801244f70656e696e6749640001687375636365737366756c5f6170706c69636174696f6e5f6964736901015c42547265655365743c4170706c69636174696f6e49643e000228ac46696c6c206f70656e696e6720666f722074686520726567756c61722f6c65616420706f736974696f6e2e4d0152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2066696c6c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e2823203c7765696768743e002423232057656967687438604f20284129602077686572653acc2d2060416020697320746865206c656e677468206f6620607375636365737366756c5f6170706c69636174696f6e5f69647360142d2044423a242020202d204f2841292c23203c2f7765696768743e4c7570646174655f726f6c655f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e00014c6e65775f726f6c655f6163636f756e745f6964000130543a3a4163636f756e744964000324150155706461746520746865206173736f63696174656420726f6c65206163636f756e74206f66207468652061637469766520726567756c617220776f726b65722f6c6561642e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e286c656176655f726f6c65080124776f726b65725f696428012c576f726b657249643c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000424904c656176652074686520726f6c65206279207468652061637469766520776f726b65722e2823203c7765696768743e002423232057656967687438604f20285229602077686572653ab42d20605260206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e387465726d696e6174655f726f6c650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c7479450101504f7074696f6e3c42616c616e63654f663c543e3e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000528a05465726d696e617465207468652061637469766520776f726b657220627920746865206c6561642e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f207465726d696e61746520746865206c656164657220726f6c65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ad82d20605060206973207468652073697a65206070656e616c74792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c736c6173685f7374616b650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c747918013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e00062c7d01536c61736865732074686520726567756c617220776f726b6572207374616b652c2064656d616e64732061206c6561646572206f726967696e2e204e6f206c696d6974732c206e6f20616374696f6e73206f6e207a65726f207374616b652e3d01496620736c617368696e672062616c616e63652067726561746572207468616e20746865206578697374696e67207374616b65202d207374616b6520697320736c617368656420746f207a65726f2e19015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20736c61736820746865206c6561646572207374616b65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ae82d20605060206973207468652073697a65206f66206070656e616c6974792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3864656372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e00073021014465637265617365732074686520726567756c617220776f726b65722f6c656164207374616b6520616e642072657475726e73207468652072656d61696e64657220746f207468653901776f726b6572207374616b696e675f6163636f756e745f69642e2043616e2062652064656372656173656420746f207a65726f2c206e6f20616374696f6e73206f6e207a65726f207374616b652e944163636570747320746865207374616b6520616d6f756e7420746f2064656372656173652e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20646563726561736520746865206c6561646572207374616b65292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e38696e6372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e0008280501496e637265617365732074686520726567756c617220776f726b65722f6c656164207374616b652c2064656d616e6473206120776f726b6572206f726967696e2e6d014c6f636b7320746f6b656e732066726f6d2074686520776f726b6572207374616b696e675f6163636f756e745f696420657175616c20746f206e6577207374616b652e204e6f206c696d697473206f6e20746865207374616b652e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5077697468647261775f6170706c69636174696f6e0401386170706c69636174696f6e5f69642801344170706c69636174696f6e4964000924010157697468647261772074686520776f726b6572206170706c69636174696f6e2e2043616e20626520646f6e652062792074686520776f726b6572206f6e6c792e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3863616e63656c5f6f70656e696e670401286f70656e696e675f69642801244f70656e696e674964000a28dc43616e63656c20616e206f70656e696e6720666f722074686520726567756c617220776f726b65722f6c65616420706f736974696f6e2e550152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2063616e63656c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e287365745f6275646765740401286e65775f62756467657418013042616c616e63654f663c543e000b28a0536574732061206e65772062756467657420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e547570646174655f7265776172645f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e0001546e65775f7265776172645f6163636f756e745f6964000130543a3a4163636f756e744964000c2469015570646174652074686520726577617264206163636f756e74206173736f6369617465642077697468206120736574207265776172642072656c6174696f6e7368697020666f72207468652061637469766520776f726b65722e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e507570646174655f7265776172645f616d6f756e74080124776f726b65725f696428012c576f726b657249643c543e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e000d28c855706461746520746865207265776172642070657220626c6f636b20666f72207468652061637469766520776f726b65722e310152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20757064617465206c656164657227732072657761726420616d6f756e74292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3c7365745f7374617475735f7465787404012c7374617475735f746578743101013c4f7074696f6e3c5665633c75383e3e000e30b4536574732061206e657720737461747573207465787420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e002423232057656967687438604f20285329602077686572653a4d012d20605360206973207468652073697a65206f662074686520636f6e74656e7473206f6620607374617475735f746578746020696e206b696c6f6279746573207768656e206974206973206e6f74206e6f6e6500142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e447370656e645f66726f6d5f6275646765740c01286163636f756e745f6964000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000f28a85472616e73666572732073706563696669656420616d6f756e7420746f20616e79206163636f756e742e5c5265717569726573206c6561646572206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6466756e645f776f726b696e675f67726f75705f6275646765740c01246d656d6265725f696428012c4d656d62657249643c543e000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c6530011c5665633c75383e0010209846756e6420776f726b696e672067726f7570206275646765742062792061206d656d6265722e203c7765696768743e0024232320576569676874c4604f202831296020446f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c6c6561645f72656d61726b04010c6d736730011c5665633c75383e0011284c4c6561642072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e34776f726b65725f72656d61726b080124776f726b65725f696428012c576f726b657249643c543e00010c6d736730011c5665633c75383e00122854576f726b65722072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e7906085070616c6c65745f776f726b696e675f67726f75701043616c6c08045400044900014c2c6164645f6f70656e696e6710012c6465736372697074696f6e30011c5665633c75383e0001306f70656e696e675f747970657d03012c4f70656e696e67547970650001307374616b655f706f6c696379610301a45374616b65506f6c6963793c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e3e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e00002cc44164642061206a6f62206f70656e696e6720666f72206120726567756c617220776f726b65722f6c65616420726f6c652e490152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20616464206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e002423232057656967687438604f20284429602077686572653abc2d20604460206973207468652073697a65206f6620606465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e406170706c795f6f6e5f6f70656e696e67040104708103016c4170706c794f6e4f70656e696e67506172616d65746572733c543e000128684170706c79206f6e206120776f726b6572206f70656e696e672e002823203c7765696768743e002423232057656967687438604f20284429602077686572653ac42d20604460206973207468652073697a65206f662060702e6465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3066696c6c5f6f70656e696e670801286f70656e696e675f69642801244f70656e696e6749640001687375636365737366756c5f6170706c69636174696f6e5f6964736901015c42547265655365743c4170706c69636174696f6e49643e000228ac46696c6c206f70656e696e6720666f722074686520726567756c61722f6c65616420706f736974696f6e2e4d0152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2066696c6c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e2823203c7765696768743e002423232057656967687438604f20284129602077686572653acc2d2060416020697320746865206c656e677468206f6620607375636365737366756c5f6170706c69636174696f6e5f69647360142d2044423a242020202d204f2841292c23203c2f7765696768743e4c7570646174655f726f6c655f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e00014c6e65775f726f6c655f6163636f756e745f6964000130543a3a4163636f756e744964000324150155706461746520746865206173736f63696174656420726f6c65206163636f756e74206f66207468652061637469766520726567756c617220776f726b65722f6c6561642e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e286c656176655f726f6c65080124776f726b65725f696428012c576f726b657249643c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000424904c656176652074686520726f6c65206279207468652061637469766520776f726b65722e2823203c7765696768743e002423232057656967687438604f20285229602077686572653ab42d20605260206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e387465726d696e6174655f726f6c650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c7479450101504f7074696f6e3c42616c616e63654f663c543e3e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000528a05465726d696e617465207468652061637469766520776f726b657220627920746865206c6561642e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f207465726d696e61746520746865206c656164657220726f6c65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ad82d20605060206973207468652073697a65206070656e616c74792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c736c6173685f7374616b650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c747918013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e00062c7d01536c61736865732074686520726567756c617220776f726b6572207374616b652c2064656d616e64732061206c6561646572206f726967696e2e204e6f206c696d6974732c206e6f20616374696f6e73206f6e207a65726f207374616b652e3d01496620736c617368696e672062616c616e63652067726561746572207468616e20746865206578697374696e67207374616b65202d207374616b6520697320736c617368656420746f207a65726f2e19015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20736c61736820746865206c6561646572207374616b65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ae82d20605060206973207468652073697a65206f66206070656e616c6974792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3864656372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e00073021014465637265617365732074686520726567756c617220776f726b65722f6c656164207374616b6520616e642072657475726e73207468652072656d61696e64657220746f207468653901776f726b6572207374616b696e675f6163636f756e745f69642e2043616e2062652064656372656173656420746f207a65726f2c206e6f20616374696f6e73206f6e207a65726f207374616b652e944163636570747320746865207374616b6520616d6f756e7420746f2064656372656173652e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20646563726561736520746865206c6561646572207374616b65292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e38696e6372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e0008280501496e637265617365732074686520726567756c617220776f726b65722f6c656164207374616b652c2064656d616e6473206120776f726b6572206f726967696e2e6d014c6f636b7320746f6b656e732066726f6d2074686520776f726b6572207374616b696e675f6163636f756e745f696420657175616c20746f206e6577207374616b652e204e6f206c696d697473206f6e20746865207374616b652e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5077697468647261775f6170706c69636174696f6e0401386170706c69636174696f6e5f69642801344170706c69636174696f6e4964000924010157697468647261772074686520776f726b6572206170706c69636174696f6e2e2043616e20626520646f6e652062792074686520776f726b6572206f6e6c792e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3863616e63656c5f6f70656e696e670401286f70656e696e675f69642801244f70656e696e674964000a28dc43616e63656c20616e206f70656e696e6720666f722074686520726567756c617220776f726b65722f6c65616420706f736974696f6e2e550152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2063616e63656c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e287365745f6275646765740401286e65775f62756467657418013042616c616e63654f663c543e000b28a0536574732061206e65772062756467657420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e547570646174655f7265776172645f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e0001546e65775f7265776172645f6163636f756e745f6964000130543a3a4163636f756e744964000c2469015570646174652074686520726577617264206163636f756e74206173736f6369617465642077697468206120736574207265776172642072656c6174696f6e7368697020666f72207468652061637469766520776f726b65722e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e507570646174655f7265776172645f616d6f756e74080124776f726b65725f696428012c576f726b657249643c543e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e000d28c855706461746520746865207265776172642070657220626c6f636b20666f72207468652061637469766520776f726b65722e310152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20757064617465206c656164657227732072657761726420616d6f756e74292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3c7365745f7374617475735f7465787404012c7374617475735f746578743101013c4f7074696f6e3c5665633c75383e3e000e30b4536574732061206e657720737461747573207465787420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e002423232057656967687438604f20285329602077686572653a4d012d20605360206973207468652073697a65206f662074686520636f6e74656e7473206f6620607374617475735f746578746020696e206b696c6f6279746573207768656e206974206973206e6f74206e6f6e6500142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e447370656e645f66726f6d5f6275646765740c01286163636f756e745f6964000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000f28a85472616e73666572732073706563696669656420616d6f756e7420746f20616e79206163636f756e742e5c5265717569726573206c6561646572206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6466756e645f776f726b696e675f67726f75705f6275646765740c01246d656d6265725f696428012c4d656d62657249643c543e000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c6530011c5665633c75383e0010209846756e6420776f726b696e672067726f7570206275646765742062792061206d656d6265722e203c7765696768743e0024232320576569676874c4604f202831296020446f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c6c6561645f72656d61726b04010c6d736730011c5665633c75383e0011284c4c6561642072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e34776f726b65725f72656d61726b080124776f726b65725f696428012c576f726b657249643c543e00010c6d736730011c5665633c75383e00122854576f726b65722072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e7d06085070616c6c65745f776f726b696e675f67726f75701043616c6c08045400044900014c2c6164645f6f70656e696e6710012c6465736372697074696f6e30011c5665633c75383e0001306f70656e696e675f747970657d03012c4f70656e696e67547970650001307374616b655f706f6c696379610301a45374616b65506f6c6963793c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e3e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e00002cc44164642061206a6f62206f70656e696e6720666f72206120726567756c617220776f726b65722f6c65616420726f6c652e490152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20616464206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e002423232057656967687438604f20284429602077686572653abc2d20604460206973207468652073697a65206f6620606465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e406170706c795f6f6e5f6f70656e696e67040104708103016c4170706c794f6e4f70656e696e67506172616d65746572733c543e000128684170706c79206f6e206120776f726b6572206f70656e696e672e002823203c7765696768743e002423232057656967687438604f20284429602077686572653ac42d20604460206973207468652073697a65206f662060702e6465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3066696c6c5f6f70656e696e670801286f70656e696e675f69642801244f70656e696e6749640001687375636365737366756c5f6170706c69636174696f6e5f6964736901015c42547265655365743c4170706c69636174696f6e49643e000228ac46696c6c206f70656e696e6720666f722074686520726567756c61722f6c65616420706f736974696f6e2e4d0152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2066696c6c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e2823203c7765696768743e002423232057656967687438604f20284129602077686572653acc2d2060416020697320746865206c656e677468206f6620607375636365737366756c5f6170706c69636174696f6e5f69647360142d2044423a242020202d204f2841292c23203c2f7765696768743e4c7570646174655f726f6c655f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e00014c6e65775f726f6c655f6163636f756e745f6964000130543a3a4163636f756e744964000324150155706461746520746865206173736f63696174656420726f6c65206163636f756e74206f66207468652061637469766520726567756c617220776f726b65722f6c6561642e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e286c656176655f726f6c65080124776f726b65725f696428012c576f726b657249643c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000424904c656176652074686520726f6c65206279207468652061637469766520776f726b65722e2823203c7765696768743e002423232057656967687438604f20285229602077686572653ab42d20605260206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e387465726d696e6174655f726f6c650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c7479450101504f7074696f6e3c42616c616e63654f663c543e3e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000528a05465726d696e617465207468652061637469766520776f726b657220627920746865206c6561642e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f207465726d696e61746520746865206c656164657220726f6c65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ad82d20605060206973207468652073697a65206070656e616c74792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c736c6173685f7374616b650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c747918013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e00062c7d01536c61736865732074686520726567756c617220776f726b6572207374616b652c2064656d616e64732061206c6561646572206f726967696e2e204e6f206c696d6974732c206e6f20616374696f6e73206f6e207a65726f207374616b652e3d01496620736c617368696e672062616c616e63652067726561746572207468616e20746865206578697374696e67207374616b65202d207374616b6520697320736c617368656420746f207a65726f2e19015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20736c61736820746865206c6561646572207374616b65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ae82d20605060206973207468652073697a65206f66206070656e616c6974792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3864656372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e00073021014465637265617365732074686520726567756c617220776f726b65722f6c656164207374616b6520616e642072657475726e73207468652072656d61696e64657220746f207468653901776f726b6572207374616b696e675f6163636f756e745f69642e2043616e2062652064656372656173656420746f207a65726f2c206e6f20616374696f6e73206f6e207a65726f207374616b652e944163636570747320746865207374616b6520616d6f756e7420746f2064656372656173652e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20646563726561736520746865206c6561646572207374616b65292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e38696e6372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e0008280501496e637265617365732074686520726567756c617220776f726b65722f6c656164207374616b652c2064656d616e6473206120776f726b6572206f726967696e2e6d014c6f636b7320746f6b656e732066726f6d2074686520776f726b6572207374616b696e675f6163636f756e745f696420657175616c20746f206e6577207374616b652e204e6f206c696d697473206f6e20746865207374616b652e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5077697468647261775f6170706c69636174696f6e0401386170706c69636174696f6e5f69642801344170706c69636174696f6e4964000924010157697468647261772074686520776f726b6572206170706c69636174696f6e2e2043616e20626520646f6e652062792074686520776f726b6572206f6e6c792e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3863616e63656c5f6f70656e696e670401286f70656e696e675f69642801244f70656e696e674964000a28dc43616e63656c20616e206f70656e696e6720666f722074686520726567756c617220776f726b65722f6c65616420706f736974696f6e2e550152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2063616e63656c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e287365745f6275646765740401286e65775f62756467657418013042616c616e63654f663c543e000b28a0536574732061206e65772062756467657420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e547570646174655f7265776172645f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e0001546e65775f7265776172645f6163636f756e745f6964000130543a3a4163636f756e744964000c2469015570646174652074686520726577617264206163636f756e74206173736f6369617465642077697468206120736574207265776172642072656c6174696f6e7368697020666f72207468652061637469766520776f726b65722e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e507570646174655f7265776172645f616d6f756e74080124776f726b65725f696428012c576f726b657249643c543e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e000d28c855706461746520746865207265776172642070657220626c6f636b20666f72207468652061637469766520776f726b65722e310152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20757064617465206c656164657227732072657761726420616d6f756e74292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3c7365745f7374617475735f7465787404012c7374617475735f746578743101013c4f7074696f6e3c5665633c75383e3e000e30b4536574732061206e657720737461747573207465787420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e002423232057656967687438604f20285329602077686572653a4d012d20605360206973207468652073697a65206f662074686520636f6e74656e7473206f6620607374617475735f746578746020696e206b696c6f6279746573207768656e206974206973206e6f74206e6f6e6500142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e447370656e645f66726f6d5f6275646765740c01286163636f756e745f6964000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000f28a85472616e73666572732073706563696669656420616d6f756e7420746f20616e79206163636f756e742e5c5265717569726573206c6561646572206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6466756e645f776f726b696e675f67726f75705f6275646765740c01246d656d6265725f696428012c4d656d62657249643c543e000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c6530011c5665633c75383e0010209846756e6420776f726b696e672067726f7570206275646765742062792061206d656d6265722e203c7765696768743e0024232320576569676874c4604f202831296020446f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c6c6561645f72656d61726b04010c6d736730011c5665633c75383e0011284c4c6561642072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e34776f726b65725f72656d61726b080124776f726b65725f696428012c576f726b657249643c543e00010c6d736730011c5665633c75383e00122854576f726b65722072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e8106085070616c6c65745f776f726b696e675f67726f75701043616c6c08045400044900014c2c6164645f6f70656e696e6710012c6465736372697074696f6e30011c5665633c75383e0001306f70656e696e675f747970657d03012c4f70656e696e67547970650001307374616b655f706f6c696379610301a45374616b65506f6c6963793c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e3e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e00002cc44164642061206a6f62206f70656e696e6720666f72206120726567756c617220776f726b65722f6c65616420726f6c652e490152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20616464206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e002423232057656967687438604f20284429602077686572653abc2d20604460206973207468652073697a65206f6620606465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e406170706c795f6f6e5f6f70656e696e67040104708103016c4170706c794f6e4f70656e696e67506172616d65746572733c543e000128684170706c79206f6e206120776f726b6572206f70656e696e672e002823203c7765696768743e002423232057656967687438604f20284429602077686572653ac42d20604460206973207468652073697a65206f662060702e6465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3066696c6c5f6f70656e696e670801286f70656e696e675f69642801244f70656e696e6749640001687375636365737366756c5f6170706c69636174696f6e5f6964736901015c42547265655365743c4170706c69636174696f6e49643e000228ac46696c6c206f70656e696e6720666f722074686520726567756c61722f6c65616420706f736974696f6e2e4d0152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2066696c6c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e2823203c7765696768743e002423232057656967687438604f20284129602077686572653acc2d2060416020697320746865206c656e677468206f6620607375636365737366756c5f6170706c69636174696f6e5f69647360142d2044423a242020202d204f2841292c23203c2f7765696768743e4c7570646174655f726f6c655f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e00014c6e65775f726f6c655f6163636f756e745f6964000130543a3a4163636f756e744964000324150155706461746520746865206173736f63696174656420726f6c65206163636f756e74206f66207468652061637469766520726567756c617220776f726b65722f6c6561642e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e286c656176655f726f6c65080124776f726b65725f696428012c576f726b657249643c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000424904c656176652074686520726f6c65206279207468652061637469766520776f726b65722e2823203c7765696768743e002423232057656967687438604f20285229602077686572653ab42d20605260206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e387465726d696e6174655f726f6c650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c7479450101504f7074696f6e3c42616c616e63654f663c543e3e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000528a05465726d696e617465207468652061637469766520776f726b657220627920746865206c6561642e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f207465726d696e61746520746865206c656164657220726f6c65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ad82d20605060206973207468652073697a65206070656e616c74792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c736c6173685f7374616b650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c747918013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e00062c7d01536c61736865732074686520726567756c617220776f726b6572207374616b652c2064656d616e64732061206c6561646572206f726967696e2e204e6f206c696d6974732c206e6f20616374696f6e73206f6e207a65726f207374616b652e3d01496620736c617368696e672062616c616e63652067726561746572207468616e20746865206578697374696e67207374616b65202d207374616b6520697320736c617368656420746f207a65726f2e19015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20736c61736820746865206c6561646572207374616b65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ae82d20605060206973207468652073697a65206f66206070656e616c6974792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3864656372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e00073021014465637265617365732074686520726567756c617220776f726b65722f6c656164207374616b6520616e642072657475726e73207468652072656d61696e64657220746f207468653901776f726b6572207374616b696e675f6163636f756e745f69642e2043616e2062652064656372656173656420746f207a65726f2c206e6f20616374696f6e73206f6e207a65726f207374616b652e944163636570747320746865207374616b6520616d6f756e7420746f2064656372656173652e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20646563726561736520746865206c6561646572207374616b65292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e38696e6372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e0008280501496e637265617365732074686520726567756c617220776f726b65722f6c656164207374616b652c2064656d616e6473206120776f726b6572206f726967696e2e6d014c6f636b7320746f6b656e732066726f6d2074686520776f726b6572207374616b696e675f6163636f756e745f696420657175616c20746f206e6577207374616b652e204e6f206c696d697473206f6e20746865207374616b652e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5077697468647261775f6170706c69636174696f6e0401386170706c69636174696f6e5f69642801344170706c69636174696f6e4964000924010157697468647261772074686520776f726b6572206170706c69636174696f6e2e2043616e20626520646f6e652062792074686520776f726b6572206f6e6c792e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3863616e63656c5f6f70656e696e670401286f70656e696e675f69642801244f70656e696e674964000a28dc43616e63656c20616e206f70656e696e6720666f722074686520726567756c617220776f726b65722f6c65616420706f736974696f6e2e550152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2063616e63656c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e287365745f6275646765740401286e65775f62756467657418013042616c616e63654f663c543e000b28a0536574732061206e65772062756467657420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e547570646174655f7265776172645f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e0001546e65775f7265776172645f6163636f756e745f6964000130543a3a4163636f756e744964000c2469015570646174652074686520726577617264206163636f756e74206173736f6369617465642077697468206120736574207265776172642072656c6174696f6e7368697020666f72207468652061637469766520776f726b65722e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e507570646174655f7265776172645f616d6f756e74080124776f726b65725f696428012c576f726b657249643c543e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e000d28c855706461746520746865207265776172642070657220626c6f636b20666f72207468652061637469766520776f726b65722e310152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20757064617465206c656164657227732072657761726420616d6f756e74292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3c7365745f7374617475735f7465787404012c7374617475735f746578743101013c4f7074696f6e3c5665633c75383e3e000e30b4536574732061206e657720737461747573207465787420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e002423232057656967687438604f20285329602077686572653a4d012d20605360206973207468652073697a65206f662074686520636f6e74656e7473206f6620607374617475735f746578746020696e206b696c6f6279746573207768656e206974206973206e6f74206e6f6e6500142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e447370656e645f66726f6d5f6275646765740c01286163636f756e745f6964000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000f28a85472616e73666572732073706563696669656420616d6f756e7420746f20616e79206163636f756e742e5c5265717569726573206c6561646572206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6466756e645f776f726b696e675f67726f75705f6275646765740c01246d656d6265725f696428012c4d656d62657249643c543e000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c6530011c5665633c75383e0010209846756e6420776f726b696e672067726f7570206275646765742062792061206d656d6265722e203c7765696768743e0024232320576569676874c4604f202831296020446f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c6c6561645f72656d61726b04010c6d736730011c5665633c75383e0011284c4c6561642072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e34776f726b65725f72656d61726b080124776f726b65725f696428012c576f726b657249643c543e00010c6d736730011c5665633c75383e00122854576f726b65722072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e8506085070616c6c65745f776f726b696e675f67726f75701043616c6c08045400044900014c2c6164645f6f70656e696e6710012c6465736372697074696f6e30011c5665633c75383e0001306f70656e696e675f747970657d03012c4f70656e696e67547970650001307374616b655f706f6c696379610301a45374616b65506f6c6963793c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e3e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e00002cc44164642061206a6f62206f70656e696e6720666f72206120726567756c617220776f726b65722f6c65616420726f6c652e490152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20616464206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e002423232057656967687438604f20284429602077686572653abc2d20604460206973207468652073697a65206f6620606465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e406170706c795f6f6e5f6f70656e696e67040104708103016c4170706c794f6e4f70656e696e67506172616d65746572733c543e000128684170706c79206f6e206120776f726b6572206f70656e696e672e002823203c7765696768743e002423232057656967687438604f20284429602077686572653ac42d20604460206973207468652073697a65206f662060702e6465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3066696c6c5f6f70656e696e670801286f70656e696e675f69642801244f70656e696e6749640001687375636365737366756c5f6170706c69636174696f6e5f6964736901015c42547265655365743c4170706c69636174696f6e49643e000228ac46696c6c206f70656e696e6720666f722074686520726567756c61722f6c65616420706f736974696f6e2e4d0152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2066696c6c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e2823203c7765696768743e002423232057656967687438604f20284129602077686572653acc2d2060416020697320746865206c656e677468206f6620607375636365737366756c5f6170706c69636174696f6e5f69647360142d2044423a242020202d204f2841292c23203c2f7765696768743e4c7570646174655f726f6c655f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e00014c6e65775f726f6c655f6163636f756e745f6964000130543a3a4163636f756e744964000324150155706461746520746865206173736f63696174656420726f6c65206163636f756e74206f66207468652061637469766520726567756c617220776f726b65722f6c6561642e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e286c656176655f726f6c65080124776f726b65725f696428012c576f726b657249643c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000424904c656176652074686520726f6c65206279207468652061637469766520776f726b65722e2823203c7765696768743e002423232057656967687438604f20285229602077686572653ab42d20605260206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e387465726d696e6174655f726f6c650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c7479450101504f7074696f6e3c42616c616e63654f663c543e3e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000528a05465726d696e617465207468652061637469766520776f726b657220627920746865206c6561642e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f207465726d696e61746520746865206c656164657220726f6c65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ad82d20605060206973207468652073697a65206070656e616c74792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c736c6173685f7374616b650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c747918013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e00062c7d01536c61736865732074686520726567756c617220776f726b6572207374616b652c2064656d616e64732061206c6561646572206f726967696e2e204e6f206c696d6974732c206e6f20616374696f6e73206f6e207a65726f207374616b652e3d01496620736c617368696e672062616c616e63652067726561746572207468616e20746865206578697374696e67207374616b65202d207374616b6520697320736c617368656420746f207a65726f2e19015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20736c61736820746865206c6561646572207374616b65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ae82d20605060206973207468652073697a65206f66206070656e616c6974792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3864656372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e00073021014465637265617365732074686520726567756c617220776f726b65722f6c656164207374616b6520616e642072657475726e73207468652072656d61696e64657220746f207468653901776f726b6572207374616b696e675f6163636f756e745f69642e2043616e2062652064656372656173656420746f207a65726f2c206e6f20616374696f6e73206f6e207a65726f207374616b652e944163636570747320746865207374616b6520616d6f756e7420746f2064656372656173652e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20646563726561736520746865206c6561646572207374616b65292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e38696e6372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e0008280501496e637265617365732074686520726567756c617220776f726b65722f6c656164207374616b652c2064656d616e6473206120776f726b6572206f726967696e2e6d014c6f636b7320746f6b656e732066726f6d2074686520776f726b6572207374616b696e675f6163636f756e745f696420657175616c20746f206e6577207374616b652e204e6f206c696d697473206f6e20746865207374616b652e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5077697468647261775f6170706c69636174696f6e0401386170706c69636174696f6e5f69642801344170706c69636174696f6e4964000924010157697468647261772074686520776f726b6572206170706c69636174696f6e2e2043616e20626520646f6e652062792074686520776f726b6572206f6e6c792e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3863616e63656c5f6f70656e696e670401286f70656e696e675f69642801244f70656e696e674964000a28dc43616e63656c20616e206f70656e696e6720666f722074686520726567756c617220776f726b65722f6c65616420706f736974696f6e2e550152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2063616e63656c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e287365745f6275646765740401286e65775f62756467657418013042616c616e63654f663c543e000b28a0536574732061206e65772062756467657420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e547570646174655f7265776172645f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e0001546e65775f7265776172645f6163636f756e745f6964000130543a3a4163636f756e744964000c2469015570646174652074686520726577617264206163636f756e74206173736f6369617465642077697468206120736574207265776172642072656c6174696f6e7368697020666f72207468652061637469766520776f726b65722e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e507570646174655f7265776172645f616d6f756e74080124776f726b65725f696428012c576f726b657249643c543e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e000d28c855706461746520746865207265776172642070657220626c6f636b20666f72207468652061637469766520776f726b65722e310152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20757064617465206c656164657227732072657761726420616d6f756e74292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3c7365745f7374617475735f7465787404012c7374617475735f746578743101013c4f7074696f6e3c5665633c75383e3e000e30b4536574732061206e657720737461747573207465787420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e002423232057656967687438604f20285329602077686572653a4d012d20605360206973207468652073697a65206f662074686520636f6e74656e7473206f6620607374617475735f746578746020696e206b696c6f6279746573207768656e206974206973206e6f74206e6f6e6500142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e447370656e645f66726f6d5f6275646765740c01286163636f756e745f6964000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000f28a85472616e73666572732073706563696669656420616d6f756e7420746f20616e79206163636f756e742e5c5265717569726573206c6561646572206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6466756e645f776f726b696e675f67726f75705f6275646765740c01246d656d6265725f696428012c4d656d62657249643c543e000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c6530011c5665633c75383e0010209846756e6420776f726b696e672067726f7570206275646765742062792061206d656d6265722e203c7765696768743e0024232320576569676874c4604f202831296020446f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c6c6561645f72656d61726b04010c6d736730011c5665633c75383e0011284c4c6561642072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e34776f726b65725f72656d61726b080124776f726b65725f696428012c576f726b657249643c543e00010c6d736730011c5665633c75383e00122854576f726b65722072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e8906085070616c6c65745f776f726b696e675f67726f75701043616c6c08045400044900014c2c6164645f6f70656e696e6710012c6465736372697074696f6e30011c5665633c75383e0001306f70656e696e675f747970657d03012c4f70656e696e67547970650001307374616b655f706f6c696379610301a45374616b65506f6c6963793c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e3e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e00002cc44164642061206a6f62206f70656e696e6720666f72206120726567756c617220776f726b65722f6c65616420726f6c652e490152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20616464206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e002423232057656967687438604f20284429602077686572653abc2d20604460206973207468652073697a65206f6620606465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e406170706c795f6f6e5f6f70656e696e67040104708103016c4170706c794f6e4f70656e696e67506172616d65746572733c543e000128684170706c79206f6e206120776f726b6572206f70656e696e672e002823203c7765696768743e002423232057656967687438604f20284429602077686572653ac42d20604460206973207468652073697a65206f662060702e6465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3066696c6c5f6f70656e696e670801286f70656e696e675f69642801244f70656e696e6749640001687375636365737366756c5f6170706c69636174696f6e5f6964736901015c42547265655365743c4170706c69636174696f6e49643e000228ac46696c6c206f70656e696e6720666f722074686520726567756c61722f6c65616420706f736974696f6e2e4d0152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2066696c6c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e2823203c7765696768743e002423232057656967687438604f20284129602077686572653acc2d2060416020697320746865206c656e677468206f6620607375636365737366756c5f6170706c69636174696f6e5f69647360142d2044423a242020202d204f2841292c23203c2f7765696768743e4c7570646174655f726f6c655f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e00014c6e65775f726f6c655f6163636f756e745f6964000130543a3a4163636f756e744964000324150155706461746520746865206173736f63696174656420726f6c65206163636f756e74206f66207468652061637469766520726567756c617220776f726b65722f6c6561642e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e286c656176655f726f6c65080124776f726b65725f696428012c576f726b657249643c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000424904c656176652074686520726f6c65206279207468652061637469766520776f726b65722e2823203c7765696768743e002423232057656967687438604f20285229602077686572653ab42d20605260206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e387465726d696e6174655f726f6c650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c7479450101504f7074696f6e3c42616c616e63654f663c543e3e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000528a05465726d696e617465207468652061637469766520776f726b657220627920746865206c6561642e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f207465726d696e61746520746865206c656164657220726f6c65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ad82d20605060206973207468652073697a65206070656e616c74792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c736c6173685f7374616b650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c747918013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e00062c7d01536c61736865732074686520726567756c617220776f726b6572207374616b652c2064656d616e64732061206c6561646572206f726967696e2e204e6f206c696d6974732c206e6f20616374696f6e73206f6e207a65726f207374616b652e3d01496620736c617368696e672062616c616e63652067726561746572207468616e20746865206578697374696e67207374616b65202d207374616b6520697320736c617368656420746f207a65726f2e19015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20736c61736820746865206c6561646572207374616b65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ae82d20605060206973207468652073697a65206f66206070656e616c6974792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3864656372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e00073021014465637265617365732074686520726567756c617220776f726b65722f6c656164207374616b6520616e642072657475726e73207468652072656d61696e64657220746f207468653901776f726b6572207374616b696e675f6163636f756e745f69642e2043616e2062652064656372656173656420746f207a65726f2c206e6f20616374696f6e73206f6e207a65726f207374616b652e944163636570747320746865207374616b6520616d6f756e7420746f2064656372656173652e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20646563726561736520746865206c6561646572207374616b65292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e38696e6372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e0008280501496e637265617365732074686520726567756c617220776f726b65722f6c656164207374616b652c2064656d616e6473206120776f726b6572206f726967696e2e6d014c6f636b7320746f6b656e732066726f6d2074686520776f726b6572207374616b696e675f6163636f756e745f696420657175616c20746f206e6577207374616b652e204e6f206c696d697473206f6e20746865207374616b652e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5077697468647261775f6170706c69636174696f6e0401386170706c69636174696f6e5f69642801344170706c69636174696f6e4964000924010157697468647261772074686520776f726b6572206170706c69636174696f6e2e2043616e20626520646f6e652062792074686520776f726b6572206f6e6c792e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3863616e63656c5f6f70656e696e670401286f70656e696e675f69642801244f70656e696e674964000a28dc43616e63656c20616e206f70656e696e6720666f722074686520726567756c617220776f726b65722f6c65616420706f736974696f6e2e550152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2063616e63656c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e287365745f6275646765740401286e65775f62756467657418013042616c616e63654f663c543e000b28a0536574732061206e65772062756467657420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e547570646174655f7265776172645f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e0001546e65775f7265776172645f6163636f756e745f6964000130543a3a4163636f756e744964000c2469015570646174652074686520726577617264206163636f756e74206173736f6369617465642077697468206120736574207265776172642072656c6174696f6e7368697020666f72207468652061637469766520776f726b65722e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e507570646174655f7265776172645f616d6f756e74080124776f726b65725f696428012c576f726b657249643c543e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e000d28c855706461746520746865207265776172642070657220626c6f636b20666f72207468652061637469766520776f726b65722e310152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20757064617465206c656164657227732072657761726420616d6f756e74292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3c7365745f7374617475735f7465787404012c7374617475735f746578743101013c4f7074696f6e3c5665633c75383e3e000e30b4536574732061206e657720737461747573207465787420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e002423232057656967687438604f20285329602077686572653a4d012d20605360206973207468652073697a65206f662074686520636f6e74656e7473206f6620607374617475735f746578746020696e206b696c6f6279746573207768656e206974206973206e6f74206e6f6e6500142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e447370656e645f66726f6d5f6275646765740c01286163636f756e745f6964000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000f28a85472616e73666572732073706563696669656420616d6f756e7420746f20616e79206163636f756e742e5c5265717569726573206c6561646572206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6466756e645f776f726b696e675f67726f75705f6275646765740c01246d656d6265725f696428012c4d656d62657249643c543e000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c6530011c5665633c75383e0010209846756e6420776f726b696e672067726f7570206275646765742062792061206d656d6265722e203c7765696768743e0024232320576569676874c4604f202831296020446f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c6c6561645f72656d61726b04010c6d736730011c5665633c75383e0011284c4c6561642072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e34776f726b65725f72656d61726b080124776f726b65725f696428012c576f726b657249643c543e00010c6d736730011c5665633c75383e00122854576f726b65722072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e8d06085070616c6c65745f776f726b696e675f67726f75701043616c6c08045400044900014c2c6164645f6f70656e696e6710012c6465736372697074696f6e30011c5665633c75383e0001306f70656e696e675f747970657d03012c4f70656e696e67547970650001307374616b655f706f6c696379610301a45374616b65506f6c6963793c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e3e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e00002cc44164642061206a6f62206f70656e696e6720666f72206120726567756c617220776f726b65722f6c65616420726f6c652e490152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20616464206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e002423232057656967687438604f20284429602077686572653abc2d20604460206973207468652073697a65206f6620606465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e406170706c795f6f6e5f6f70656e696e67040104708103016c4170706c794f6e4f70656e696e67506172616d65746572733c543e000128684170706c79206f6e206120776f726b6572206f70656e696e672e002823203c7765696768743e002423232057656967687438604f20284429602077686572653ac42d20604460206973207468652073697a65206f662060702e6465736372697074696f6e6020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3066696c6c5f6f70656e696e670801286f70656e696e675f69642801244f70656e696e6749640001687375636365737366756c5f6170706c69636174696f6e5f6964736901015c42547265655365743c4170706c69636174696f6e49643e000228ac46696c6c206f70656e696e6720666f722074686520726567756c61722f6c65616420706f736974696f6e2e4d0152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2066696c6c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e2823203c7765696768743e002423232057656967687438604f20284129602077686572653acc2d2060416020697320746865206c656e677468206f6620607375636365737366756c5f6170706c69636174696f6e5f69647360142d2044423a242020202d204f2841292c23203c2f7765696768743e4c7570646174655f726f6c655f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e00014c6e65775f726f6c655f6163636f756e745f6964000130543a3a4163636f756e744964000324150155706461746520746865206173736f63696174656420726f6c65206163636f756e74206f66207468652061637469766520726567756c617220776f726b65722f6c6561642e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e286c656176655f726f6c65080124776f726b65725f696428012c576f726b657249643c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000424904c656176652074686520726f6c65206279207468652061637469766520776f726b65722e2823203c7765696768743e002423232057656967687438604f20285229602077686572653ab42d20605260206973207468652073697a65206f662060726174696f6e616c656020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e387465726d696e6174655f726f6c650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c7479450101504f7074696f6e3c42616c616e63654f663c543e3e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000528a05465726d696e617465207468652061637469766520776f726b657220627920746865206c6561642e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f207465726d696e61746520746865206c656164657220726f6c65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ad82d20605060206973207468652073697a65206070656e616c74792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c736c6173685f7374616b650c0124776f726b65725f696428012c576f726b657249643c543e00011c70656e616c747918013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e00062c7d01536c61736865732074686520726567756c617220776f726b6572207374616b652c2064656d616e64732061206c6561646572206f726967696e2e204e6f206c696d6974732c206e6f20616374696f6e73206f6e207a65726f207374616b652e3d01496620736c617368696e672062616c616e63652067726561746572207468616e20746865206578697374696e67207374616b65202d207374616b6520697320736c617368656420746f207a65726f2e19015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20736c61736820746865206c6561646572207374616b65292e2823203c7765696768743e002423232057656967687438604f20285029602077686572653ae82d20605060206973207468652073697a65206f66206070656e616c6974792e736c617368696e675f746578746020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3864656372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e00073021014465637265617365732074686520726567756c617220776f726b65722f6c656164207374616b6520616e642072657475726e73207468652072656d61696e64657220746f207468653901776f726b6572207374616b696e675f6163636f756e745f69642e2043616e2062652064656372656173656420746f207a65726f2c206e6f20616374696f6e73206f6e207a65726f207374616b652e944163636570747320746865207374616b6520616d6f756e7420746f2064656372656173652e25015265717569726573207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20646563726561736520746865206c6561646572207374616b65292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e38696e6372656173655f7374616b65080124776f726b65725f696428012c576f726b657249643c543e00014c7374616b655f62616c616e63655f64656c746118013042616c616e63654f663c543e0008280501496e637265617365732074686520726567756c617220776f726b65722f6c656164207374616b652c2064656d616e6473206120776f726b6572206f726967696e2e6d014c6f636b7320746f6b656e732066726f6d2074686520776f726b6572207374616b696e675f6163636f756e745f696420657175616c20746f206e6577207374616b652e204e6f206c696d697473206f6e20746865207374616b652e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e5077697468647261775f6170706c69636174696f6e0401386170706c69636174696f6e5f69642801344170706c69636174696f6e4964000924010157697468647261772074686520776f726b6572206170706c69636174696f6e2e2043616e20626520646f6e652062792074686520776f726b6572206f6e6c792e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3863616e63656c5f6f70656e696e670401286f70656e696e675f69642801244f70656e696e674964000a28dc43616e63656c20616e206f70656e696e6720666f722074686520726567756c617220776f726b65722f6c65616420706f736974696f6e2e550152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f2063616e63656c206f70656e696e6720666f7220746865206c656164657220706f736974696f6e292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e287365745f6275646765740401286e65775f62756467657418013042616c616e63654f663c543e000b28a0536574732061206e65772062756467657420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e547570646174655f7265776172645f6163636f756e74080124776f726b65725f696428012c576f726b657249643c543e0001546e65775f7265776172645f6163636f756e745f6964000130543a3a4163636f756e744964000c2469015570646174652074686520726577617264206163636f756e74206173736f6369617465642077697468206120736574207265776172642072656c6174696f6e7368697020666f72207468652061637469766520776f726b65722e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e507570646174655f7265776172645f616d6f756e74080124776f726b65725f696428012c576f726b657249643c543e0001407265776172645f7065725f626c6f636b450101504f7074696f6e3c42616c616e63654f663c543e3e000d28c855706461746520746865207265776172642070657220626c6f636b20666f72207468652061637469766520776f726b65722e310152657175697265207369676e6564206c6561646572206f726967696e206f722074686520726f6f742028746f20757064617465206c656164657227732072657761726420616d6f756e74292e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e3c7365745f7374617475735f7465787404012c7374617475735f746578743101013c4f7074696f6e3c5665633c75383e3e000e30b4536574732061206e657720737461747573207465787420666f722074686520776f726b696e672067726f75702e54526571756972657320726f6f74206f726967696e2e002823203c7765696768743e002423232057656967687438604f20285329602077686572653a4d012d20605360206973207468652073697a65206f662074686520636f6e74656e7473206f6620607374617475735f746578746020696e206b696c6f6279746573207768656e206974206973206e6f74206e6f6e6500142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e447370656e645f66726f6d5f6275646765740c01286163636f756e745f6964000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c653101013c4f7074696f6e3c5665633c75383e3e000f28a85472616e73666572732073706563696669656420616d6f756e7420746f20616e79206163636f756e742e5c5265717569726573206c6561646572206f726967696e2e002823203c7765696768743e00242323205765696768741c604f2028312960142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e6466756e645f776f726b696e675f67726f75705f6275646765740c01246d656d6265725f696428012c4d656d62657249643c543e000118616d6f756e7418013042616c616e63654f663c543e000124726174696f6e616c6530011c5665633c75383e0010209846756e6420776f726b696e672067726f7570206275646765742062792061206d656d6265722e203c7765696768743e0024232320576569676874c4604f202831296020446f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d6574657273142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e2c6c6561645f72656d61726b04010c6d736730011c5665633c75383e0011284c4c6561642072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e34776f726b65725f72656d61726b080124776f726b65725f696428012c576f726b657249643c543e00010c6d736730011c5665633c75383e00122854576f726b65722072656d61726b206d657373616765002823203c7765696768743e002423232057656967687438604f20284d29602077686572653a9c2d20604d60206973207468652073697a65206f6620606d73676020696e206b696c6f6279746573142d2044423acc2020202d204f28312920646f65736e277420646570656e64206f6e20746865207374617465206f7220706172616d65746572732c23203c2f7765696768743e0c4c446973706174636861626c652063616c6c732e005501456163682076617269616e74206f66207468697320656e756d206d61707320746f206120646973706174636861626c652066756e6374696f6e2066726f6d20746865206173736f636961746564206d6f64756c652e910608586a6f7973747265616d5f6e6f64655f72756e74696d65304f726967696e43616c6c65720001081873797374656d0400950601746672616d655f73797374656d3a3a4f726967696e3c52756e74696d653e00000010566f69640400990601110173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a566f69640001000095060c346672616d655f737570706f7274206469737061746368245261774f726967696e04244163636f756e7449640100010c10526f6f74000000185369676e656404000001244163636f756e744964000100104e6f6e65000200009906081c73705f636f726510566f6964000100009d060c3870616c6c65745f7574696c6974791870616c6c6574144572726f7204045400010430546f6f4d616e7943616c6c730000045c546f6f206d616e792063616c6c7320626174636865642e04b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a090909a1060c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401a506045300000400a90601185665633c543e0000a506000004084d042800a906000002a50600ad060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540104045300000400b10601185665633c543e0000b1060000020400b50604184f7074696f6e04045401b9060108104e6f6e6500000010536f6d650400b9060000010000b9060c4473705f636f6e73656e7375735f626162651c646967657374732450726544696765737400010c1c5072696d6172790400bd0601405072696d617279507265446967657374000100385365636f6e64617279506c61696e0400c106015c5365636f6e64617279506c61696e507265446967657374000200305365636f6e646172795652460400c50601545365636f6e6461727956524650726544696765737400030000bd060c4473705f636f6e73656e7375735f626162651c64696765737473405072696d617279507265446967657374000010013c617574686f726974795f696e64657810015473757065723a3a417574686f72697479496e646578000110736c6f7451040110536c6f740001287672665f6f75747075740401245652464f75747075740001247672665f70726f6f66a105012056524650726f6f660000c1060c4473705f636f6e73656e7375735f626162651c646967657374735c5365636f6e64617279506c61696e507265446967657374000008013c617574686f726974795f696e64657810015473757065723a3a417574686f72697479496e646578000110736c6f7451040110536c6f740000c5060c4473705f636f6e73656e7375735f626162651c64696765737473545365636f6e64617279565246507265446967657374000010013c617574686f726974795f696e64657810015473757065723a3a417574686f72697479496e646578000110736c6f7451040110536c6f740001287672665f6f75747075740401245652464f75747075740001247672665f70726f6f66a105012056524650726f6f660000c90604184f7074696f6e04045401040108104e6f6e6500000010536f6d650400040000010000cd06084473705f636f6e73656e7375735f62616265584261626545706f6368436f6e66696775726174696f6e00000801046379030128287536342c2075363429000134616c6c6f7765645f736c6f74735d040130416c6c6f776564536c6f74730000d1060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401bd02045300000400b90201185665633c543e0000d5060c2c70616c6c65745f626162651870616c6c6574144572726f7204045400011060496e76616c696445717569766f636174696f6e50726f6f660000043101416e2065717569766f636174696f6e2070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e60496e76616c69644b65794f776e65727368697050726f6f66000104310141206b6579206f776e6572736869702070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e584475706c69636174654f6666656e63655265706f727400020415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e50496e76616c6964436f6e66696775726174696f6e0003048c5375626d697474656420636f6e66696775726174696f6e20697320696e76616c69642e04b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a090909d9060c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401dd06045300000400e50601185665633c543e0000dd06083c70616c6c65745f62616c616e6365732c42616c616e63654c6f636b041c42616c616e63650118000c01086964250401384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e73e106011c526561736f6e730000e106083c70616c6c65745f62616c616e6365731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c00020000e506000002dd0600e9060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401ed06045300000400f10601185665633c543e0000ed06083c70616c6c65745f62616c616e6365732c52657365727665446174610844526573657276654964656e7469666965720125041c42616c616e6365011800080108696425040144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e63650000f106000002ed0600f5060c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001203856657374696e6742616c616e63650000049856657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c7565544c69717569646974795265737472696374696f6e73000104c44163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c4c496e73756666696369656e7442616c616e63650002047842616c616e636520746f6f206c6f7720746f2073656e642076616c75652e484578697374656e7469616c4465706f736974000304e856616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f736974244b656570416c6976650004048c5472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e745c4578697374696e6756657374696e675363686564756c65000504c8412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742c446561644163636f756e740006048842656e6566696369617279206163636f756e74206d757374207072652d65786973743c546f6f4d616e795265736572766573000704ac4e756d626572206f66206e616d656420726573657276657320657863656564204d6178526573657276657304b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a090909f9060c3473705f61726974686d657469632c66697865645f706f696e742446697865645531323800000400180110753132380000fd06086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e74000000085632000100000107089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f7068617365345265616479536f6c7574696f6e04045400000c0120737570706f727473050701b0426f756e646564537570706f7274733c543a3a4163636f756e7449642c20543a3a4d617857696e6e6572733e00011473636f72659c0134456c656374696f6e53636f726500011c636f6d7075746590013c456c656374696f6e436f6d70757465000005070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014905045300000400450501185665633c543e00000907089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f706861736534526f756e64536e617073686f740404540000080118766f746572730d07013c5665633c566f7465724f663c543e3e00011c746172676574735d0501445665633c543a3a4163636f756e7449643e00000d0700000211070011070000040c002815070015070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401000453000004005d0501185665633c543e000019070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454011d07045300000400210701185665633c543e00001d070000040c9c10100021070000021d070025070c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f7068617365187369676e6564405369676e65645375626d697373696f6e0c244163636f756e74496401001c42616c616e6365011820536f6c7574696f6e0171040010010c77686f0001244163636f756e74496400011c6465706f73697418011c42616c616e63650001307261775f736f6c7574696f6e6d040154526177536f6c7574696f6e3c536f6c7574696f6e3e00012063616c6c5f66656518011c42616c616e6365000029070c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173651870616c6c6574144572726f720404540001386850726544697370617463684561726c795375626d697373696f6e000004645375626d697373696f6e2077617320746f6f206561726c792e6c507265446973706174636857726f6e6757696e6e6572436f756e740001048857726f6e67206e756d626572206f662077696e6e6572732070726573656e7465642e6450726544697370617463685765616b5375626d697373696f6e000204905375626d697373696f6e2077617320746f6f207765616b2c2073636f72652d776973652e3c5369676e6564517565756546756c6c0003044901546865207175657565207761732066756c6c2c20616e642074686520736f6c7574696f6e20776173206e6f7420626574746572207468616e20616e79206f6620746865206578697374696e67206f6e65732e585369676e656443616e6e6f745061794465706f73697400040494546865206f726967696e206661696c656420746f2070617920746865206465706f7369742e505369676e6564496e76616c69645769746e657373000504a05769746e657373206461746120746f20646973706174636861626c6520697320696e76616c69642e4c5369676e6564546f6f4d756368576569676874000604b8546865207369676e6564207375626d697373696f6e20636f6e73756d657320746f6f206d756368207765696768743c4f637743616c6c57726f6e67457261000704984f4357207375626d697474656420736f6c7574696f6e20666f722077726f6e6720726f756e645c4d697373696e67536e617073686f744d65746164617461000804a8536e617073686f74206d657461646174612073686f756c6420657869737420627574206469646e27742e58496e76616c69645375626d697373696f6e496e646578000904d06053656c663a3a696e736572745f7375626d697373696f6e602072657475726e656420616e20696e76616c696420696e6465782e3843616c6c4e6f74416c6c6f776564000a04985468652063616c6c206973206e6f7420616c6c6f776564206174207468697320706f696e742e3846616c6c6261636b4661696c6564000b044c5468652066616c6c6261636b206661696c65642c426f756e644e6f744d6574000c0448536f6d6520626f756e64206e6f74206d657438546f6f4d616e7957696e6e657273000d049c5375626d697474656420736f6c7574696f6e2068617320746f6f206d616e792077696e6e657273040d014572726f72206f66207468652070616c6c657420746861742063616e2062652072657475726e656420696e20726573706f6e736520746f20646973706174636865732e2d07083870616c6c65745f7374616b696e67345374616b696e674c656467657204045400001401147374617368000130543a3a4163636f756e744964000114746f74616cec013042616c616e63654f663c543e000118616374697665ec013042616c616e63654f663c543e000124756e6c6f636b696e67310701f0426f756e6465645665633c556e6c6f636b4368756e6b3c42616c616e63654f663c543e3e2c20543a3a4d6178556e6c6f636b696e674368756e6b733e00013c636c61696d65645f726577617264733d070194426f756e6465645665633c457261496e6465782c20543a3a486973746f727944657074683e000031070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454013507045300000400390701185665633c543e00003507083870616c6c65745f7374616b696e672c556e6c6f636b4368756e6b041c42616c616e636501180008011476616c7565ec011c42616c616e636500010c657261e5030120457261496e646578000039070000023507003d070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540110045300000400650501185665633c543e00004107083870616c6c65745f7374616b696e672c4e6f6d696e6174696f6e7304045400000c011c74617267657473150701ac426f756e6465645665633c543a3a4163636f756e7449642c20543a3a4d61784e6f6d696e6174696f6e733e0001307375626d69747465645f696e100120457261496e64657800012873757070726573736564980110626f6f6c00004507083870616c6c65745f7374616b696e6734416374697665457261496e666f0000080114696e646578100120457261496e64657800011473746172743501012c4f7074696f6e3c7536343e00004907000004081000004d07083870616c6c65745f7374616b696e673c457261526577617264506f696e747304244163636f756e744964010000080114746f74616c10012c526577617264506f696e74000128696e646976696475616c5107018042547265654d61703c4163636f756e7449642c20526577617264506f696e743e00005107042042547265654d617008044b010004560110000400550700000055070000025907005907000004080010005d070000026107006107083870616c6c65745f7374616b696e6738556e6170706c696564536c61736808244163636f756e74496401001c42616c616e636501180014012476616c696461746f720001244163636f756e74496400010c6f776e18011c42616c616e63650001186f7468657273510501645665633c284163636f756e7449642c2042616c616e6365293e0001247265706f72746572735d0501385665633c4163636f756e7449643e0001187061796f757418011c42616c616e63650000650700000408ac180069070c3870616c6c65745f7374616b696e6720736c617368696e6734536c617368696e675370616e7300001001287370616e5f696e6465781001245370616e496e6465780001286c6173745f7374617274100120457261496e6465780001486c6173745f6e6f6e7a65726f5f736c617368100120457261496e6465780001147072696f72650501345665633c457261496e6465783e00006d070c3870616c6c65745f7374616b696e6720736c617368696e67285370616e5265636f7264041c42616c616e636501180008011c736c617368656418011c42616c616e6365000120706169645f6f757418011c42616c616e6365000071070000027507007507000004081098007907103870616c6c65745f7374616b696e671870616c6c65741870616c6c6574144572726f72040454000168344e6f74436f6e74726f6c6c6572000004644e6f74206120636f6e74726f6c6c6572206163636f756e742e204e6f745374617368000104504e6f742061207374617368206163636f756e742e34416c7265616479426f6e64656400020460537461736820697320616c726561647920626f6e6465642e34416c726561647950616972656400030474436f6e74726f6c6c657220697320616c7265616479207061697265642e30456d7074795461726765747300040460546172676574732063616e6e6f7420626520656d7074792e384475706c6963617465496e646578000504404475706c696361746520696e6465782e44496e76616c6964536c617368496e64657800060484536c617368207265636f726420696e646578206f7574206f6620626f756e64732e40496e73756666696369656e74426f6e6400070c590143616e6e6f74206861766520612076616c696461746f72206f72206e6f6d696e61746f7220726f6c652c20776974682076616c7565206c657373207468616e20746865206d696e696d756d20646566696e65642062793d01676f7665726e616e6365202873656520604d696e56616c696461746f72426f6e646020616e6420604d696e4e6f6d696e61746f72426f6e6460292e20496620756e626f6e64696e67206973207468651501696e74656e74696f6e2c20606368696c6c6020666972737420746f2072656d6f7665206f6e65277320726f6c652061732076616c696461746f722f6e6f6d696e61746f722e304e6f4d6f72654368756e6b730008049043616e206e6f74207363686564756c65206d6f726520756e6c6f636b206368756e6b732e344e6f556e6c6f636b4368756e6b000904a043616e206e6f74207265626f6e6420776974686f757420756e6c6f636b696e67206368756e6b732e3046756e646564546172676574000a04c8417474656d7074696e6720746f2074617267657420612073746173682074686174207374696c6c206861732066756e64732e48496e76616c6964457261546f526577617264000b0458496e76616c69642065726120746f207265776172642e68496e76616c69644e756d6265724f664e6f6d696e6174696f6e73000c0478496e76616c6964206e756d626572206f66206e6f6d696e6174696f6e732e484e6f74536f72746564416e64556e69717565000d04804974656d7320617265206e6f7420736f7274656420616e6420756e697175652e38416c7265616479436c61696d6564000e0409015265776172647320666f72207468697320657261206861766520616c7265616479206265656e20636c61696d656420666f7220746869732076616c696461746f722e54496e636f7272656374486973746f72794465707468000f04c0496e636f72726563742070726576696f757320686973746f727920646570746820696e7075742070726f76696465642e58496e636f7272656374536c617368696e675370616e73001004b0496e636f7272656374206e756d626572206f6620736c617368696e67207370616e732070726f76696465642e2042616453746174650011043901496e7465726e616c20737461746520686173206265636f6d6520736f6d65686f7720636f7272757074656420616e6420746865206f7065726174696f6e2063616e6e6f7420636f6e74696e75652e38546f6f4d616e795461726765747300120494546f6f206d616e79206e6f6d696e6174696f6e207461726765747320737570706c6965642e244261645461726765740013043d0141206e6f6d696e6174696f6e207461726765742077617320737570706c69656420746861742077617320626c6f636b6564206f72206f7468657277697365206e6f7420612076616c696461746f722e4043616e6e6f744368696c6c4f74686572001404550154686520757365722068617320656e6f75676820626f6e6420616e6420746875732063616e6e6f74206265206368696c6c656420666f72636566756c6c7920627920616e2065787465726e616c20706572736f6e2e44546f6f4d616e794e6f6d696e61746f72730015084d0154686572652061726520746f6f206d616e79206e6f6d696e61746f727320696e207468652073797374656d2e20476f7665726e616e6365206e6565647320746f2061646a75737420746865207374616b696e67b473657474696e677320746f206b656570207468696e6773207361666520666f72207468652072756e74696d652e44546f6f4d616e7956616c696461746f7273001608550154686572652061726520746f6f206d616e792076616c696461746f722063616e6469646174657320696e207468652073797374656d2e20476f7665726e616e6365206e6565647320746f2061646a75737420746865d47374616b696e672073657474696e677320746f206b656570207468696e6773207361666520666f72207468652072756e74696d652e40436f6d6d697373696f6e546f6f4c6f77001704e0436f6d6d697373696f6e20697320746f6f206c6f772e204d757374206265206174206c6561737420604d696e436f6d6d697373696f6e602e2c426f756e644e6f744d657400180458536f6d6520626f756e64206973206e6f74206d65742e44426f6e64696e6752657374726963746564001904e045787465726e616c207265737472696374696f6e2070726576656e747320626f6e64696e67207769746820676976656e206163636f756e7404b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a0909097d07000002810700810700000408007d05008507000004088907300089070c1c73705f636f72651863727970746f244b65795479706549640000040040011c5b75383b20345d00008d070c3870616c6c65745f73657373696f6e1870616c6c6574144572726f7204045400011430496e76616c696450726f6f6600000460496e76616c6964206f776e6572736869702070726f6f662e5c4e6f4173736f63696174656456616c696461746f7249640001049c4e6f206173736f6369617465642076616c696461746f7220494420666f72206163636f756e742e344475706c6963617465644b65790002046452656769737465726564206475706c6963617465206b65792e184e6f4b657973000304a44e6f206b65797320617265206173736f63696174656420776974682074686973206163636f756e742e244e6f4163636f756e7400040419014b65792073657474696e67206163636f756e74206973206e6f74206c6976652c20736f206974277320696d706f737369626c6520746f206173736f6369617465206b6579732e04744572726f7220666f72207468652073657373696f6e2070616c6c65742e9107000004082c10009507083870616c6c65745f6772616e6470612c53746f726564537461746504044e01100110104c6976650000003050656e64696e6750617573650801307363686564756c65645f61741001044e00011464656c61791001044e000100185061757365640002003450656e64696e67526573756d650801307363686564756c65645f61741001044e00011464656c61791001044e000300009907083870616c6c65745f6772616e6470614c53746f72656450656e64696e674368616e676508044e0110144c696d697400001001307363686564756c65645f61741001044e00011464656c61791001044e0001406e6578745f617574686f7269746965739d07016c426f756e646564417574686f726974794c6973743c4c696d69743e000118666f72636564010201244f7074696f6e3c4e3e00009d070c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401c8045300000400c401185665633c543e0000a1070c3870616c6c65745f6772616e6470611870616c6c6574144572726f7204045400011c2c50617573654661696c65640000080501417474656d707420746f207369676e616c204752414e445041207061757365207768656e2074686520617574686f72697479207365742069736e2774206c697665a42865697468657220706175736564206f7220616c72656164792070656e64696e67207061757365292e30526573756d654661696c65640001081101417474656d707420746f207369676e616c204752414e44504120726573756d65207768656e2074686520617574686f72697479207365742069736e277420706175736564a028656974686572206c697665206f7220616c72656164792070656e64696e6720726573756d65292e344368616e676550656e64696e67000204e8417474656d707420746f207369676e616c204752414e445041206368616e67652077697468206f6e6520616c72656164792070656e64696e672e1c546f6f536f6f6e000304bc43616e6e6f74207369676e616c20666f72636564206368616e676520736f20736f6f6e206166746572206c6173742e60496e76616c69644b65794f776e65727368697050726f6f66000404310141206b6579206f776e6572736869702070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e60496e76616c696445717569766f636174696f6e50726f6f660005043101416e2065717569766f636174696f6e2070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e584475706c69636174654f6666656e63655265706f727400060415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e04b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a090909a5070c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e646564566563080454018105045300000400a90701185665633c543e0000a907000002810500ad070c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401d8045300000400b10701185665633c543e0000b107000002d800b50710346672616d655f737570706f727418747261697473106d69736334577261707065724f706171756504045401b907000800e503000000b9070104540000b907084070616c6c65745f696d5f6f6e6c696e6564426f756e6465644f70617175654e6574776f726b53746174650c4c506565724964456e636f64696e674c696d697400584d756c746941646472456e636f64696e674c696d697400384164647265737365734c696d6974000008011c706565725f6964bd07019c5765616b426f756e6465645665633c75382c20506565724964456e636f64696e674c696d69743e00014865787465726e616c5f616464726573736573c107012d015765616b426f756e6465645665633c5765616b426f756e6465645665633c75382c204d756c746941646472456e636f64696e674c696d69743e2c204164647265737365734c696d69740a3e0000bd070c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401080453000004003001185665633c543e0000c1070c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401bd07045300000400c50701185665633c543e0000c507000002bd0700c9070c4070616c6c65745f696d5f6f6e6c696e651870616c6c6574144572726f7204045400010828496e76616c69644b6579000004604e6f6e206578697374656e74207075626c6963206b65792e4c4475706c696361746564486561727462656174000104544475706c696361746564206865617274626561742e04b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a090909cd070c2873705f7374616b696e671c6f6666656e6365384f6666656e636544657461696c7308205265706f727465720100204f6666656e64657201e4000801206f6666656e646572e401204f6666656e6465720001247265706f72746572735d0501345665633c5265706f727465723e0000d10700000408fc3000d5070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454012c045300000400d50301185665633c543e0000d9070c4070616c6c65745f626167735f6c697374106c697374104e6f646508045400044900001401086964000130543a3a4163636f756e744964000110707265769401504f7074696f6e3c543a3a4163636f756e7449643e0001106e6578749401504f7074696f6e3c543a3a4163636f756e7449643e0001246261675f7570706572280120543a3a53636f726500011473636f7265280120543a3a53636f72650000dd070c4070616c6c65745f626167735f6c697374106c6973740c4261670804540004490000080110686561649401504f7074696f6e3c543a3a4163636f756e7449643e0001107461696c9401504f7074696f6e3c543a3a4163636f756e7449643e0000e1070c4070616c6c65745f626167735f6c6973741870616c6c6574144572726f72080454000449000104104c6973740400e50701244c6973744572726f72000004b441206572726f7220696e20746865206c69737420696e7465726661636520696d706c656d656e746174696f6e2e04b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a090909e5070c4070616c6c65745f626167735f6c697374106c697374244c6973744572726f72000110244475706c6963617465000000284e6f7448656176696572000100304e6f74496e53616d65426167000200304e6f64654e6f74466f756e6400030000e9070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401dd05045300000400ed0701185665633c543e0000ed07000002dd0500f107083870616c6c65745f76657374696e672052656c656173657300010808563000000008563100010000f5070c3870616c6c65745f76657374696e671870616c6c6574144572726f72040454000114284e6f7456657374696e6700000484546865206163636f756e7420676976656e206973206e6f742076657374696e672e5441744d617856657374696e675363686564756c65730001082501546865206163636f756e7420616c72656164792068617320604d617856657374696e675363686564756c65736020636f756e74206f66207363686564756c657320616e642074687573510163616e6e6f742061646420616e6f74686572206f6e652e20436f6e7369646572206d657267696e67206578697374696e67207363686564756c657320696e206f7264657220746f2061646420616e6f746865722e24416d6f756e744c6f770002040501416d6f756e74206265696e67207472616e7366657272656420697320746f6f206c6f7720746f2063726561746520612076657374696e67207363686564756c652e605363686564756c65496e6465784f75744f66426f756e6473000304d0416e20696e64657820776173206f7574206f6620626f756e6473206f66207468652076657374696e67207363686564756c65732e54496e76616c69645363686564756c65506172616d730004040d014661696c656420746f206372656174652061206e6577207363686564756c65206265636175736520736f6d6520706172616d657465722077617320696e76616c69642e04744572726f7220666f72207468652076657374696e672070616c6c65742ef90700000408000400fd07083c70616c6c65745f6d756c7469736967204d756c7469736967102c426c6f636b4e756d62657201101c42616c616e63650118244163636f756e7449640100304d6178417070726f76616c7300001001107768656e0d01015854696d65706f696e743c426c6f636b4e756d6265723e00011c6465706f73697418011c42616c616e63650001246465706f7369746f720001244163636f756e744964000124617070726f76616c730108018c426f756e6465645665633c4163636f756e7449642c204d6178417070726f76616c733e000001080c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401000453000004005d0501185665633c543e000005080c3c70616c6c65745f6d756c74697369671870616c6c6574144572726f72040454000138404d696e696d756d5468726573686f6c640000047c5468726573686f6c64206d7573742062652032206f7220677265617465722e3c416c7265616479417070726f766564000104ac43616c6c20697320616c726561647920617070726f7665642062792074686973207369676e61746f72792e444e6f417070726f76616c734e65656465640002049c43616c6c20646f65736e2774206e65656420616e7920286d6f72652920617070726f76616c732e44546f6f4665775369676e61746f72696573000304a854686572652061726520746f6f20666577207369676e61746f7269657320696e20746865206c6973742e48546f6f4d616e795369676e61746f72696573000404ac54686572652061726520746f6f206d616e79207369676e61746f7269657320696e20746865206c6973742e545369676e61746f726965734f75744f664f726465720005040d01546865207369676e61746f7269657320776572652070726f7669646564206f7574206f66206f726465723b20746865792073686f756c64206265206f7264657265642e4c53656e646572496e5369676e61746f726965730006040d015468652073656e6465722077617320636f6e7461696e656420696e20746865206f74686572207369676e61746f726965733b2069742073686f756c646e27742062652e204e6f74466f756e64000704dc4d756c7469736967206f7065726174696f6e206e6f7420666f756e64207768656e20617474656d7074696e6720746f2063616e63656c2e204e6f744f776e65720008042d014f6e6c7920746865206163636f756e742074686174206f726967696e616c6c79206372656174656420746865206d756c74697369672069732061626c6520746f2063616e63656c2069742e2c4e6f54696d65706f696e740009041d014e6f2074696d65706f696e742077617320676976656e2c2079657420746865206d756c7469736967206f7065726174696f6e20697320616c726561647920756e6465727761792e3857726f6e6754696d65706f696e74000a042d014120646966666572656e742074696d65706f696e742077617320676976656e20746f20746865206d756c7469736967206f7065726174696f6e207468617420697320756e6465727761792e4c556e657870656374656454696d65706f696e74000b04f4412074696d65706f696e742077617320676976656e2c20796574206e6f206d756c7469736967206f7065726174696f6e20697320756e6465727761792e3c4d6178576569676874546f6f4c6f77000c04d0546865206d6178696d756d2077656967687420696e666f726d6174696f6e2070726f76696465642077617320746f6f206c6f772e34416c726561647953746f726564000d04a0546865206461746120746f2062652073746f72656420697320616c72656164792073746f7265642e04b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a0909090908083870616c6c65745f636f756e63696c48436f756e63696c5374616765557064617465042c426c6f636b4e756d62657201100008011473746167650d080164436f756e63696c53746167653c426c6f636b4e756d6265723e0001286368616e6765645f617410012c426c6f636b4e756d62657200000d08083870616c6c65745f636f756e63696c30436f756e63696c5374616765042c426c6f636b4e756d6265720110010c28416e6e6f756e63696e6704001108018c436f756e63696c5374616765416e6e6f756e63696e673c426c6f636b4e756d6265723e00000020456c656374696f6e040015080150436f756e63696c5374616765456c656374696f6e0001001049646c65040019080174436f756e63696c537461676549646c653c426c6f636b4e756d6265723e000200001108083870616c6c65745f636f756e63696c58436f756e63696c5374616765416e6e6f756e63696e67042c426c6f636b4e756d62657201100008014063616e646964617465735f636f756e7410010c75333200011c656e64735f617410012c426c6f636b4e756d62657200001508083870616c6c65745f636f756e63696c50436f756e63696c5374616765456c656374696f6e000004014063616e646964617465735f636f756e7410010c75333200001908083870616c6c65745f636f756e63696c40436f756e63696c537461676549646c65042c426c6f636b4e756d62657201100004011c656e64735f617410012c426c6f636b4e756d62657200001d080c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e646564566563080454012108045300000400250801185665633c543e00002108083870616c6c65745f636f756e63696c34436f756e63696c4d656d62657210244163636f756e7449640100204d656d626572496401281c42616c616e636501182c426c6f636b4e756d6265720110001801487374616b696e675f6163636f756e745f69640001244163636f756e7449640001447265776172645f6163636f756e745f69640001244163636f756e7449640001346d656d626572736869705f69642801204d656d62657249640001147374616b6518011c42616c616e63650001486c6173745f7061796d656e745f626c6f636b10012c426c6f636b4e756d626572000134756e706169645f72657761726418011c42616c616e6365000025080000022108002908083870616c6c65745f636f756e63696c2443616e64696461746510244163636f756e74496401001c42616c616e636501181048617368012c24566f7465506f7765720118001801487374616b696e675f6163636f756e745f69640001244163636f756e7449640001447265776172645f6163636f756e745f69640001244163636f756e7449640001206379636c655f696428010c7536340001147374616b6518011c42616c616e6365000128766f74655f706f776572180124566f7465506f7765720001246e6f74655f68617368790201304f7074696f6e3c486173683e00002d08083870616c6c65745f636f756e63696c144572726f720404540001603c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f7729244261644f726967696e000104484f726967696e20697320696e76616c69642e4043616e7443616e6469646174654e6f7700020439015573657220747269656420746f20616e6e6f756e63652063616e646964616379206f757473696465206f66207468652063616e64696461637920616e6e6f756e63656d656e7420706572696f642e4c43616e7452656c656173655374616b654e6f77000304f05573657220747269656420746f2072656c65617365207374616b65206f757473696465206f66207468652072657665616c696e6720706572696f642e5043616e6469646163795374616b65546f6f4c6f77000404b043616e64696461746520686176656e27742070726f76696465642073756666696369656e74207374616b652e4843616e7443616e6469646174655477696365000504f45573657220747269656420746f20616e6e6f756e63652063616e64696461637920747769636520696e207468652073616d6520656c656374696f6e732e40436f6e666c696374696e675374616b650006085d015573657220747269656420746f20616e6e6f756e63652063616e646964616379207769746820616e206163636f756e742074686174206861732074686520636f6e666c696374696e672074797065206f66207374616b653901776974682063616e646964616379207374616b6520616e6420686173206e6f7420656e6f7567682062616c616e636520666f72207374616b696e6720666f7220626f746820707572706f7365732e405374616b655374696c6c4e6565646564000704dc436f756e63696c206d656d62657220616e642063616e646964617465732063616e2774207769746864726177207374616b65207965742e1c4e6f5374616b65000804c45573657220747269656420746f2072656c65617365207374616b65207768656e206e6f207374616b65206578697374732e74496e73756666696369656e7442616c616e6365466f725374616b696e67000904ac496e73756666696369656e742062616c616e636520666f722063616e646964616379207374616b696e672e4c43616e74566f7465466f72596f757273656c66000a048443616e6469646174652063616e277420766f746520666f722068696d73656c662e5c4d656d62657249644e6f744d617463684163636f756e74000b044c496e76616c6964206d656d626572736869702e68496e76616c69644163636f756e74546f5374616b655265757365000c08510154686520636f6d62696e6174696f6e206f66206d656d6265727368697020696420616e64206163636f756e7420696420697320696e76616c696420666f7220756e7374616b696e6720616e206578697374696e674063616e646964616379207374616b652e444e6f7443616e6469646174696e674e6f77000d04d85573657220747269656420746f2077697468647261772063616e646964616379207768656e206e6f742063616e6469646174696e672e6043616e74576974686472617743616e6469646163794e6f77000e04190143616e27742077697468647261772063616e646964616379206f757473696465206f66207468652063616e64696461637920616e6e6f756e63656d656e7420706572696f642e304e6f74436f756e63696c6f72000f0478546865206d656d626572206973206e6f74206120636f756e63696c6f722e88496e73756666696369656e7446756e6473466f7246756e64696e6752657175657374001004f0496e737566666963656e742066756e647320696e20636f756e63696c20666f7220657865637574696e67202746756e64696e67205265717565737427585a65726f42616c616e636546756e64526571756573740011045c46756e642072657175657374206e6f2062616c616e636568526570656174656446756e64526571756573744163636f756e74001204fc5468652073616d65206163636f756e7420697320726563696576696e672066756e64732066726f6d207468652073616d65207265717565737420747769636550456d70747946756e64696e675265717565737473001304ac46756e64696e6720726571756573747320776974686f757420726563696576696e67206163636f756e747370496e73756666696369656e74546f6b656e73466f7246756e64696e67001404f8496e73756666696369656e7420746f6b656e7320666f722066756e64696e6720286f6e206d656d62657220636f6e74726f6c6c6572206163636f756e7429445a65726f546f6b656e7346756e64696e670015047c547279696e6720746f2066756e642077697468207a65726f20746f6b656e735443616e646964617465446f65734e6f7445786973740016045843616e646964617465206964206e6f7420666f756e6478496e73756666696369656e7442616c616e6365466f725472616e73666572001704b443616e6e6f742077697468647261773a20696e73756666696369656e74206275646765742062616c616e63652e0438436f756e63696c206572726f72733108084470616c6c65745f7265666572656e64756d3c5265666572656e64756d5374616765082c426c6f636b4e756d62657201104c496e7465726d65646961746557696e6e657273013508010c20496e61637469766500000018566f74696e670400390801885265666572656e64756d5374616765566f74696e673c426c6f636b4e756d6265723e0001002452657665616c696e6704003d0801e85265666572656e64756d537461676552657665616c696e673c426c6f636b4e756d6265722c20496e7465726d65646961746557696e6e6572733e0002000035080c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e646564566563080454012501045300000400210101185665633c543e00003908084470616c6c65745f7265666572656e64756d545265666572656e64756d5374616765566f74696e67042c426c6f636b4e756d62657201100010011c7374617274656410012c426c6f636b4e756d62657200015077696e6e696e675f7461726765745f636f756e7410010c75333200014063757272656e745f6379636c655f696428010c75363400011c656e64735f617410012c426c6f636b4e756d62657200003d08084470616c6c65745f7265666572656e64756d605265666572656e64756d537461676552657665616c696e67082c426c6f636b4e756d62657201104c496e7465726d65646961746557696e6e6572730135080014011c7374617274656410012c426c6f636b4e756d62657200015077696e6e696e675f7461726765745f636f756e7410010c753332000150696e7465726d6564696174655f77696e6e6572733508014c496e7465726d65646961746557696e6e65727300014063757272656e745f6379636c655f696428010c75363400011c656e64735f617410012c426c6f636b4e756d62657200004108084470616c6c65745f7265666572656e64756d2043617374566f74650c1048617368012c2043757272656e63790118204d656d6265724964012800100128636f6d6d69746d656e742c0110486173680001206379636c655f696428010c7536340001147374616b6518012043757272656e6379000120766f74655f666f72350101404f7074696f6e3c4d656d62657249643e00004508084470616c6c65745f7265666572656e64756d144572726f72080454000449000138244261644f726967696e000004444f726967696e20697320696e76616c6964505265666572656e64756d4e6f7452756e6e696e67000104a85265666572656e64756d206973206e6f742072756e6e696e67207768656e20657870656374656420746f5852657665616c696e674e6f74496e50726f6772657373000204b052657665616c696e67207374616765206973206e6f7420696e2070726f6772657373207269676874206e6f775c436f6e666c6963745374616b65734f6e4163636f756e74000304b05374616b696e67206163636f756e7420636f6e7461696e7320636f6e666c696374696e67207374616b65732e68496e73756666696369656e7442616c616e6365546f5374616b650004049c4163636f756e7420496e73756666696369656e7420467265652042616c616e636520286e6f772944496e73756666696369656e745374616b65000504a8496e73756666696369656e74207374616b652070726f766964656420746f2063617374206120766f746534496e76616c696452657665616c000604190153616c7420616e64207265666572656e64756d206f7074696f6e2070726f766964656420646f6e277420636f72726573706f6e6420746f2074686520636f6d6d69746d656e742c496e76616c6964566f7465000704a4566f746520666f72206e6f74206578697374696e67206f7074696f6e207761732072657665616c65643c566f74654e6f744578697374696e670008049c547279696e6720746f2072657665616c20766f7465207468617420776173206e6f74206361737454416c7265616479566f746564546869734379636c65000904b8547279696e6720746f20766f7465206d756c7469706c652074696d6520696e207468652073616d65206379636c6560556e7374616b696e67566f7465496e53616d654379636c65000a04a0496e76616c69642074696d6520746f2072656c6561736520746865206c6f636b6564207374616b652c53616c74546f6f4c6f6e67000b044053616c7420697320746f6f206c6f6e6748556e7374616b696e67466f7262696464656e000c04f0556e7374616b696e6720686173206265656e20666f7262696464656e20666f7220746865207573657220286174206c6561737420666f72206e6f7729784163636f756e74416c72656164794f707465644f75744f66566f74696e67000d041d014120766f74652063616e6e6f7420626520636173742066726f6d20616e206163636f756e74207468617420616c7265616479206f70746564206f7574206f6620766f74696e672e04445265666572656e64756d206572726f72734908084470616c6c65745f6d656d62657273686970404d656d626572736869704f626a65637408244163636f756e74496401001048617368012c0014012c68616e646c655f686173682c011048617368000130726f6f745f6163636f756e740001244163636f756e744964000148636f6e74726f6c6c65725f6163636f756e740001244163636f756e7449640001207665726966696564980110626f6f6c00011c696e766974657310010c75333200004d08084470616c6c65745f6d656d626572736869706c5374616b696e674163636f756e744d656d62657242696e64696e6704204d656d62657249640128000801246d656d6265725f69642801204d656d6265724964000124636f6e6669726d6564980110626f6f6c00005108084470616c6c65745f6d656d62657273686970144572726f720404540001587c4e6f74456e6f75676842616c616e6365546f4275794d656d62657273686970000004944e6f7420656e6f7567682062616c616e636520746f20627579206d656d626572736869702e64436f6e74726f6c6c65724163636f756e74526571756972656400010470436f6e74726f6c6c6572206163636f756e742072657175697265642e4c526f6f744163636f756e74526571756972656400020458526f6f74206163636f756e742072657175697265642e38556e7369676e65644f726967696e00030440556e7369676e6564206f726967696e2e544d656d62657250726f66696c654e6f74466f756e64000404b44d656d6265722070726f66696c65206e6f7420666f756e642028696e76616c6964206d656d626572206964292e5c48616e646c65416c7265616479526567697374657265640005046848616e646c6520616c726561647920726567697374657265642e9848616e646c654d757374426550726f7669646564447572696e67526567697374726174696f6e000604b048616e646c65206d7573742062652070726f766964656420647572696e6720726567697374726174696f6e2e4c526566657272657249734e6f744d656d626572000704d043616e6e6f742066696e642061206d656d6265727368697020666f7220612070726f76696465642072656665727265722069642e8443616e6e6f745472616e73666572496e7669746573466f724e6f744d656d6265720008049853686f756c642062652061206d656d62657220746f207265636569766520696e76697465732e404e6f74456e6f756768496e7669746573000904ac4e6f7420656e6f75676820696e766974657320746f20706572666f726d20616e206f7065726174696f6e2e60576f726b696e6747726f75704c65616465724e6f74536574000a04ac4d656d6265727368697020776f726b696e672067726f7570206c6561646572206973206e6f74207365742e845374616b696e674163636f756e744973416c726561647952656769737465726564000b04b85374616b696e67206163636f756e74206973207265676973746572656420666f7220736f6d65206d656d6265722e645374616b696e674163636f756e74446f65736e744578697374000c04b45374616b696e67206163636f756e7420666f72206d656d6265727368697020646f65736e27742065786973742e785374616b696e674163636f756e74416c7265616479436f6e6669726d6564000d04ac5374616b696e67206163636f756e742068617320616c7265616479206265656e20636f6e6669726d65642eb0576f726b696e6747726f757042756467657449734e6f7453756666696369656e74466f72496e766974696e67000e08490143616e6e6f7420696e766974652061206d656d6265722e20576f726b696e672067726f75702062616c616e6365206973206e6f742073756666696369656e7420746f20736574207468652064656661756c742062616c616e63652e3c436f6e666c696374696e674c6f636b000f04410143616e6e6f7420696e766974652061206d656d6265722e2054686520636f6e74726f6c6c6572206163636f756e742068617320616e206578697374696e6720636f6e666c696374696e67206c6f636b2e8c43616e6e6f74457863656564526566657272616c43757450657263656e744c696d6974001004010143616e6e6f7420736574206120726566657272616c206375742070657263656e742076616c75652e20546865206c696d6974207761732065786365656465642e5c436f6e666c6963745374616b65734f6e4163636f756e74001104b05374616b696e67206163636f756e7420636f6e7461696e7320636f6e666c696374696e67207374616b65732e7c496e73756666696369656e7442616c616e6365546f436f7665725374616b6500120490496e73756666696369656e742062616c616e636520746f20636f766572207374616b652e504769664c6f636b45786365656473437265646974001304ac4c6f636b656420616d6f756e742069732067726561746572207468616e2063726564697420616d6f756e7464496e73756666696369656e7442616c616e6365546f47696674001404c047696674657220646f65736e277420686176652073756666696369656e742062616c616e636520746f2063726564697484496e73756666696369656e7442616c616e6365546f436f7665725061796d656e7400150498496e73756666696369656e742062616c616e636520746f20636f766572207061796d656e742e048c4d656d62657273686970206d6f64756c6520707265646566696e6564206572726f72735508083070616c6c65745f666f72756d2043617465676f72790c2843617465676f7279496401281048617368012c44537469636b696564546872656164496473015908002001287469746c655f686173682c0110486173680001406465736372697074696f6e5f686173682c0110486173680001206172636869766564980110626f6f6c0001606e756d5f6469726563745f73756263617465676f7269657310010c7533320001486e756d5f6469726563745f7468726561647310010c7533320001546e756d5f6469726563745f6d6f64657261746f727310010c753332000148706172656e745f63617465676f72795f6964350101484f7074696f6e3c43617465676f727949643e000144737469636b795f7468726561645f69647359080144537469636b696564546872656164496473000059080c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401280453000004006901012c42547265655365743c543e00005d08083070616c6c65745f666f72756d185468726561640c2c466f72756d55736572496401282843617465676f72794964012848526570617961626c65426c6f6174426f6e6401e1010010012c63617465676f72795f696428012843617465676f72794964000124617574686f725f696428012c466f72756d55736572496400013c636c65616e75705f7061795f6f6666e1010148526570617961626c65426c6f6174426f6e640001606e756d6265725f6f665f6564697461626c655f706f7374732801344e756d6265724f66506f73747300006108083070616c6c65745f666f72756d10506f7374142c466f72756d557365724964012820546872656164496401281048617368012c2c426c6f636b4e756d626572011048526570617961626c65426c6f6174426f6e6401e101001401247468726561645f69642801205468726561644964000124746578745f686173682c011048617368000124617574686f725f696428012c466f72756d55736572496400013c636c65616e75705f7061795f6f6666e1010148526570617961626c65426c6f6174426f6e6400012c6c6173745f65646974656410012c426c6f636b4e756d62657200006508083070616c6c65745f666f72756d144572726f7204045400016c3c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f7729484f726967696e4e6f74466f72756d4c656164000104b44f726967696e20646f65736e277420636f72726573706f6e6420746f20616e79206c656164206163636f756e7468466f72756d5573657249644e6f744d617463684163636f756e7400020490466f72756d2075736572206964206e6f74206d6174636820697473206163636f756e742e684d6f64657261746f7249644e6f744d617463684163636f756e740003048c4d6f64657261746f72206964206e6f74206d6174636820697473206163636f756e742e7c4163636f756e74446f65734e6f744d61746368546872656164417574686f7200040498546872656164206e6f7420617574686f7265642062792074686520676976656e20757365722e48546872656164446f65734e6f7445786973740005045454687265616420646f6573206e6f742065786973747c4d6f64657261746f724d6f6465726174654f726967696e43617465676f7279000604d04d6f64657261746f722063616e2774206d6f6465726174652063617465676f727920636f6e7461696e696e67207468726561642e904d6f64657261746f724d6f64657261746544657374696e6174696f6e43617465676f7279000704b84d6f64657261746f722063616e2774206d6f6465726174652064657374696e6174696f6e2063617465676f72792e445468726561644d6f7665496e76616c6964000804984f726967696e206973207468652073616d65206173207468652064657374696e6174696f6e2e545468726561644e6f744265696e675570646174656400090464546872656164206e6f74206265696e6720757064617465642e90496e73756666696369656e7442616c616e6365466f725468726561644372656174696f6e000a048c4e6f7420656e6f7567682062616c616e636520746f20637265617465207468726561649843616e6e6f7444656c657465546872656164576974684f75747374616e64696e67506f737473000b04c441207468726561642077697468206f75747374616e64696e6720706f7374732063616e6e6f742062652072656d6f76656440506f7374446f65734e6f744578697374000c0450506f737420646f6573206e6f742065786973742e744163636f756e74446f65734e6f744d61746368506f7374417574686f72000d048c4163636f756e7420646f6573206e6f74206d6174636820706f737420617574686f722e68496e73756666696369656e7442616c616e6365466f72506f7374000e04684e6f7420656e6f7567682062616c616e636520746f20706f73745c43617465676f72794e6f744265696e6755706461746564000f046c43617465676f7279206e6f74206265696e6720757064617465642e64416e636573746f7243617465676f7279496d6d757461626c65001004d4416e636573746f722063617465676f727920696d6d757461626c652c20692e652e2064656c65746564206f72206172636869766564744d617856616c696443617465676f727944657074684578636565646564001104984d6178696d756d2076616c69642063617465676f72792064657074682065786365656465642e5043617465676f7279446f65734e6f7445786973740012046043617465676f727920646f6573206e6f742065786973742e7443617465676f72794d6f64657261746f72446f65734e6f744578697374001304c850726f7669646564206d6f64657261746f72206973206e6f7420676976656e2063617465676f7279206d6f64657261746f725c43617465676f72794e6f74456d707479546872656164730014049443617465676f7279207374696c6c20636f6e7461696e7320736f6d6520746872656164732e6843617465676f72794e6f74456d70747943617465676f72696573001504ac43617465676f7279207374696c6c20636f6e7461696e7320736f6d652073756263617465676f726965732e6c4d6f64657261746f7243616e7444656c65746543617465676f7279001604884e6f207065726d697373696f6e7320746f2064656c6574652063617465676f72792e6c4d6f64657261746f7243616e7455706461746543617465676f7279001704884e6f207065726d697373696f6e7320746f207570646174652063617465676f72792e304d617053697a654c696d6974001804904d6178696d756d2073697a65206f662073746f72616765206d617020657863656564656484506174684c656e67746853686f756c644265477265617465725468616e5a65726f001904b443617465676f72792070617468206c656e2073686f756c642062652067726561746572207468616e207a65726f884d61784e756d6265724f66537469636b696564546872656164734578636565646564001a04e04d6178696d756d206e756d626572206f6620737469636b6965642074687265616473207065722063617465676f7279206578636565646564045c466f72756d20707265646566696e6564206572726f72736908084c70616c6c65745f636f6e737469747574696f6e40436f6e737469747574696f6e496e666f041048617368012c00040124746578745f686173682c01104861736800006d08083470616c6c65745f626f756e747930426f756e74795265636f7264101c42616c616e636501182c426c6f636b4e756d6265720110204d656d626572496401285c436c6f736564436f6e747261637457686974656c6973740171080014013c6372656174696f6e5f706172616d737508012501426f756e7479506172616d65746572733c42616c616e63652c20426c6f636b4e756d6265722c204d656d62657249642c20436c6f736564436f6e747261637457686974656c6973743e000134746f74616c5f66756e64696e6718011c42616c616e63650001246d696c6573746f6e657d080170426f756e74794d696c6573746f6e653c426c6f636b4e756d6265723e00015c6163746976655f776f726b5f656e7472795f636f756e7410010c7533320001606861735f756e706169645f6f7261636c655f726577617264980110626f6f6c000071080c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401280453000004006901012c42547265655365743c543e00007508083470616c6c65745f626f756e747940426f756e7479506172616d6574657273101c42616c616e636501182c426c6f636b4e756d6265720110204d656d626572496401285c436c6f736564436f6e747261637457686974656c697374017108001c01186f7261636c6579010154426f756e74794163746f723c4d656d62657249643e000134636f6e74726163745f74797065790801b84173737572616e6365436f6e7472616374547970653c436c6f736564436f6e747261637457686974656c6973743e00011c63726561746f7279010154426f756e74794163746f723c4d656d62657249643e00011863686572727918011c42616c616e63650001346f7261636c655f72657761726418011c42616c616e6365000134656e7472616e745f7374616b6518011c42616c616e636500013066756e64696e675f747970658101018446756e64696e67547970653c426c6f636b4e756d6265722c2042616c616e63653e00007908083470616c6c65745f626f756e7479544173737572616e6365436f6e747261637454797065045c436c6f736564436f6e747261637457686974656c6973740171080108104f70656e00000018436c6f73656404007108015c436c6f736564436f6e747261637457686974656c697374000100007d08083470616c6c65745f626f756e74793c426f756e74794d696c6573746f6e65042c426c6f636b4e756d626572011001141c43726561746564080128637265617465645f617410012c426c6f636b4e756d6265720001446861735f636f6e747269627574696f6e73980110626f6f6c0000005c426f756e74794d617846756e64696e675265616368656400010034576f726b5375626d6974746564000200285465726d696e61746564000300444a7564676d656e745375626d69747465640401447375636365737366756c5f626f756e7479980110626f6f6c00040000810800000408287901008508083470616c6c65745f626f756e747930436f6e747269627574696f6e0404540000080118616d6f756e7418013042616c616e63654f663c543e00017866756e6465725f73746174655f626c6f61745f626f6e645f616d6f756e7418013042616c616e63654f663c543e00008908083470616c6c65745f626f756e74792c456e7472795265636f72640c244163636f756e7449640100204d656d626572496401282c426c6f636b4e756d6265720110001001246d656d6265725f69642801204d656d62657249640001487374616b696e675f6163636f756e745f69640001244163636f756e7449640001307375626d69747465645f617410012c426c6f636b4e756d626572000138776f726b5f7375626d6974746564980110626f6f6c00008d08083470616c6c65745f626f756e7479144572726f7204045400018c3c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f7729b04d696e46756e64696e67416d6f756e7443616e6e6f744265477265617465725468616e4d6178416d6f756e74000104d44d696e2066756e64696e6720616d6f756e742063616e6e6f742062652067726561746572207468616e206d617820616d6f756e742e44426f756e7479446f65736e74457869737400020450426f756e747920646f65736e742065786973742e605377697463684f7261636c654f726967696e4973526f6f7400030489014f726967696e20697320726f6f742c20736f20737769746368696e67206f7261636c65206973206e6f7420616c6c6f77656420696e20746869732065787472696e7369632e202863616c6c207377697463685f6f7261636c655f61735f726f6f742974496e76616c69645374616765556e657870656374656446756e64696e67000404c8556e657870656374656420626f756e747920737461676520666f7220616e206f7065726174696f6e3a2046756e64696e672ea8496e76616c69645374616765556e65787065637465644e6f46756e64696e67436f6e7472696275746564000504fc556e657870656374656420626f756e747920737461676520666f7220616e206f7065726174696f6e3a204e6f46756e64696e67436f6e74726962757465642e7c496e76616c69645374616765556e657870656374656443616e63656c6c6564000604d0556e657870656374656420626f756e747920737461676520666f7220616e206f7065726174696f6e3a2043616e63656c6c65642e90496e76616c69645374616765556e6578706563746564576f726b5375626d697373696f6e000704e4556e657870656374656420626f756e747920737461676520666f7220616e206f7065726174696f6e3a20576f726b5375626d697373696f6e2e78496e76616c69645374616765556e65787065637465644a7564676d656e74000804cc556e657870656374656420626f756e747920737461676520666f7220616e206f7065726174696f6e3a204a7564676d656e742ec0496e76616c69645374616765556e65787065637465645375636365737366756c426f756e74795769746864726177616c0009041501556e657870656374656420626f756e747920737461676520666f7220616e206f7065726174696f6e3a205375636365737366756c426f756e74795769746864726177616c2eb0496e76616c69645374616765556e65787065637465644661696c6564426f756e74795769746864726177616c000a040501556e657870656374656420626f756e747920737461676520666f7220616e206f7065726174696f6e3a204661696c6564426f756e74795769746864726177616c2e70496e73756666696369656e7442616c616e6365466f72426f756e7479000b04a4496e73756666696369656e742062616c616e636520666f72206120626f756e7479206368657272792e644e6f426f756e7479436f6e747269627574696f6e466f756e64000c048443616e6e6f7420666f756e6420626f756e747920636f6e747269627574696f6e2e6c496e73756666696369656e7442616c616e6365466f725374616b65000d04a05468657265206973206e6f7420656e6f7567682062616c616e636520666f722061207374616b652e44436f6e666c696374696e675374616b6573000e04bc54686520636f6e666c696374696e67207374616b6520646973636f76657265642e2043616e6e6f74207374616b652e50576f726b456e747279446f65736e744578697374000f0460576f726b20656e74727920646f65736e742065786973742e704368657272794c6573735468656e4d696e696d756d416c6c6f77656400100484436865727279206c657373207468616e206d696e696d756d20616c6c6f7765642e9843616e6e6f745375626d6974576f726b546f436c6f736564436f6e7472616374426f756e74790011085101496e636f6d70617469626c65206173737572616e636520636f6e7472616374207479706520666f722061206d656d6265723a2063616e6e6f74207375626d697420776f726b20746f207468652027636c6f7365646c6173737572616e63652720626f756e747920636f6e74726163742e7c436c6f736564436f6e74726163744d656d6265724c6973744973456d707479001204290143616e6e6f742063726561746520612027636c6f736564206173737572616e636520636f6e74726163742720626f756e7479207769746820656d707479206d656d626572206c6973742e88436c6f736564436f6e74726163744d656d6265724c6973744973546f6f4c61726765001308290143616e6e6f742063726561746520612027636c6f736564206173737572616e636520636f6e74726163742720626f756e74792077697468206d656d626572206c697374206c6172676572887468616e20616c6c6f776564206d617820776f726b20656e747279206c696d69742e70436c6f736564436f6e74726163744d656d6265724e6f74466f756e64001404410127636c6f736564206173737572616e636520636f6e74726163742720626f756e7479206d656d626572206c6973742063616e206f6e6c7920696e636c756465206578697374696e67206d656d6265727354496e76616c69644f7261636c654d656d6265724964001504fc50726f7669646564206f7261636c65206d656d62657220696420646f6573206e6f742062656c6f6e6720746f20616e206578697374696e67206d656d62657278496e76616c69645374616b696e674163636f756e74466f724d656d626572001604ac5374616b696e67206163636f756e7420646f65736e27742062656c6f6e6720746f2061206d656d6265722e405a65726f57696e6e65725265776172640017048c43616e6e6f7420736574207a65726f2072657761726420666f722077696e6e6572732e98546f74616c52657761726453686f756c644265457175616c546f546f74616c46756e64696e67001804150154686520746f74616c2072657761726420666f722077696e6e6572732073686f756c6420626520657175616c20746f20746f74616c20626f756e74792066756e64696e672e74456e7472616e745374616b6549734c6573735468616e4d696e696e756d0019042d0143616e6e6f7420637265617465206120626f756e7479207769746820616e20656e7472616e74207374616b65206973206c657373207468616e207265717569726564206d696e696d756d2e6446756e64696e67416d6f756e7443616e6e6f7442655a65726f001a04e843616e6e6f7420637265617465206120626f756e74792077697468207a65726f2066756e64696e6720616d6f756e7420706172616d657465722e6446756e64696e67506572696f6443616e6e6f7442655a65726f001b04e843616e6e6f7420637265617465206120626f756e74792077697468207a65726f2066756e64696e6720706572696f6420706172616d657465722e7457696e6e657253686f756c64486173576f726b5375626d697373696f6e001c04f0496e76616c6964206a7564676d656e74202d20616c6c2077696e6e6572732073686f756c64206861766520776f726b207375626d697373696f6e732e80496e76616c6964436f6e7472696275746f724163746f72537065636966696564001d0470426f756e747920636f6e7472696275746f72206e6f7420666f756e646c496e76616c69644f7261636c654163746f72537065636966696564001e045c426f756e7479206f7261636c65206e6f7420666f756e6474496e76616c6964456e7472616e74576f726b6572537065636966696564001f04a44d656d62657220737065636966696564206973206e6f7420616e20656e7472616e7420776f726b657270496e76616c696443726561746f724163746f72537065636966696564002004a8496e76616c69642043726561746f72204163746f7220666f7220426f756e74792073706563696669656474576f726b456e747279446f65736e7442656c6f6e67546f576f726b6572002104f8576f726b657220747269656420746f20616363657373206120776f726b20656e747279207468617420646f65736e27742062656c6f6e6720746f2068696d704f7261636c65526577617264416c726561647957697468647261776e002204884f7261636c65206861766520616c7265616479206265656e2077697468647261776e047c426f756e74792070616c6c657420707265646566696e6564206572726f72739108086070616c6c65745f6a6f7973747265616d5f7574696c697479144572726f7204045400010c80496e73756666696369656e7446756e6473466f724275646765745570646174650000041d01496e73756666696369656e742066756e647320666f72202755706461746520576f726b696e672047726f757020427564676574272070726f706f73616c20657865637574696f6e385a65726f546f6b656e734275726e00010468547279696e6720746f206275726e207a65726f20746f6b656e7360496e73756666696369656e7446756e6473466f724275726e00020478496e73756666696369656e742066756e647320666f72206275726e696e670478436f646578206d6f64756c6520707265646566696e6564206572726f727395080c3870616c6c65745f636f6e74656e741474797065732c566964656f5265636f726410244368616e6e656c49640128204f776e65644e667401990838566964656f41737365747353657401b90848526570617961626c65426c6f6174426f6e6401e10100100128696e5f6368616e6e656c2801244368616e6e656c49640001286e66745f737461747573bd0801404f7074696f6e3c4f776e65644e66743e000130646174615f6f626a65637473b9080138566964656f417373657473536574000158766964656f5f73746174655f626c6f61745f626f6e64e1010148526570617961626c65426c6f6174426f6e6400009908103870616c6c65745f636f6e74656e740c6e6674147479706573204f776e65644e66740c4c5472616e73616374696f6e616c537461747573019d08204d656d626572496401282441756374696f6e49640128001001146f776e6572b50801484e66744f776e65723c4d656d62657249643e0001507472616e73616374696f6e616c5f7374617475739d08014c5472616e73616374696f6e616c53746174757300013c63726561746f725f726f79616c74791102013c4f7074696f6e3c526f79616c74793e00014c6f70656e5f61756374696f6e735f6e6f6e636528012441756374696f6e496400009d08103870616c6c65745f636f6e74656e740c6e6674147479706573645472616e73616374696f6e616c5374617475735265636f726410204d656d626572496401281c42616c616e6365011848456e676c69736841756374696f6e5479706501a1083c4f70656e41756374696f6e5479706501b10801141049646c6500000058496e697469617465644f66666572546f4d656d62657208002801204d656d626572496400004501013c4f7074696f6e3c42616c616e63653e00010038456e676c69736841756374696f6e0400a1080148456e676c69736841756374696f6e547970650002002c4f70656e41756374696f6e0400b108013c4f70656e41756374696f6e54797065000300184275794e6f77040018011c42616c616e636500040000a108103870616c6c65745f636f6e74656e740c6e667414747970657350456e676c69736841756374696f6e5265636f7264102c426c6f636b4e756d62657201101c42616c616e63650118204d656d626572496401284c4e667441756374696f6e57686974656c69737401a508002001387374617274696e675f707269636518011c42616c616e63650001346275795f6e6f775f70726963654501013c4f7074696f6e3c42616c616e63653e00012477686974656c697374a508014c4e667441756374696f6e57686974656c69737400010c656e6410012c426c6f636b4e756d626572000114737461727410012c426c6f636b4e756d626572000140657874656e73696f6e5f706572696f6410012c426c6f636b4e756d6265720001306d696e5f6269645f7374657018011c42616c616e636500011c746f705f626964a90801b04f7074696f6e3c456e676c69736841756374696f6e4269643c42616c616e63652c204d656d62657249643e3e0000a5080c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401280453000004006901012c42547265655365743c543e0000a90804184f7074696f6e04045401ad080108104e6f6e6500000010536f6d650400ad080000010000ad08103870616c6c65745f636f6e74656e740c6e667414747970657344456e676c69736841756374696f6e426964081c42616c616e63650118204d656d6265724964012800080118616d6f756e7418011c42616c616e63650001246269646465725f69642801204d656d62657249640000b108103870616c6c65745f636f6e74656e740c6e6674147479706573444f70656e41756374696f6e5265636f7264102c426c6f636b4e756d62657201102441756374696f6e496401281c42616c616e636501184c4e667441756374696f6e57686974656c69737401a508001801387374617274696e675f707269636518011c42616c616e63650001346275795f6e6f775f70726963654501013c4f7074696f6e3c42616c616e63653e00012477686974656c697374a508014c4e667441756374696f6e57686974656c6973740001446269645f6c6f636b5f6475726174696f6e10012c426c6f636b4e756d62657200012861756374696f6e5f696428012441756374696f6e4964000114737461727410012c426c6f636b4e756d6265720000b508103870616c6c65745f636f6e74656e740c6e6674147479706573204e66744f776e657204204d656d626572496401280108304368616e6e656c4f776e6572000000184d656d62657204002801204d656d626572496400010000b9080c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401280453000004006901012c42547265655365743c543e0000bd0804184f7074696f6e0404540199080108104e6f6e6500000010536f6d65040099080000010000c108103870616c6c65745f636f6e74656e742c7065726d697373696f6e733463757261746f725f67726f75704843757261746f7247726f75705265636f7264085c43757261746f7247726f757043757261746f72734d617001c508704d6f6465726174696f6e5065726d697373696f6e7342794c6576656c01c908000c012063757261746f7273c508015c43757261746f7247726f757043757261746f72734d6170000118616374697665980110626f6f6c0001507065726d697373696f6e735f62795f6c6576656cc90801704d6f6465726174696f6e5065726d697373696f6e7342794c6576656c0000c5080c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b0128045601b501045300000400c501013842547265654d61703c4b2c20563e0000c9080c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b0108045601cd08045300000400d108013842547265654d61703c4b2c20563e0000cd080c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e6465644254726565536574080454015d020453000004005902012c42547265655365743c543e0000d108042042547265654d617008044b0108045601cd08000400d508000000d508000002d90800d9080000040808cd0800dd08103870616c6c65745f636f6e74656e740c6e6674147479706573504f70656e41756374696f6e4269645265636f72640c1c42616c616e636501182c426c6f636b4e756d62657201102441756374696f6e49640128000c0118616d6f756e7418011c42616c616e63650001346d6164655f61745f626c6f636b10012c426c6f636b4e756d62657200012861756374696f6e5f696428012441756374696f6e49640000e1080c3870616c6c65745f636f6e74656e74186572726f7273144572726f7204045400010102704368616e6e656c5374617465426c6f6174426f6e644368616e676564000004e4496e76616c69642065787472696e7369632063616c6c3a204368616e6e656c20737461746520626c6f617420626f6e64206368616e6765642e68566964656f5374617465426c6f6174426f6e644368616e676564000104dc496e76616c69642065787472696e7369632063616c6c3a20766964656f20737461746520626c6f617420626f6e64206368616e6765642e544d696e436173686f757456616c7565546f6f4c6f77000204d8417474656d707420746f20736574206d696e696d756d20636173686f757420616c6c6f7765642062656c6f7720746865206c696d6974584d6178436173686f757456616c7565546f6f48696768000304d8417474656d707420746f20736574206d696e696d756d20636173686f757420616c6c6f7765642061626f766520746865206c696d69749c4d61784e756d6265724f664368616e6e656c436f6c6c61626f7261746f7273457863656564656400040429014e756d626572206f66206368616e6e656c20636f6c6c61626f7261746f72732065786365656473204d61784e756d6265724f66436f6c6c61626f7261746f72735065724368616e6e656c804d61784e756d6265724f664368616e6e656c4173736574734578636565646564000504f04e756d626572206f66206368616e6e656c206173736574732065786365656473204d61784e756d6265724f664173736574735065724368616e6e656c784d61784e756d6265724f66566964656f4173736574734578636565646564000604ec4e756d626572206f6620766964656f206173736574732065786365656473204d61784d61784e756d6265724f66417373657473506572566964656fa84d61784e756d6265724f664368616e6e656c4167656e745065726d697373696f6e73457863656564656400070419014d6178696d756d206e756d626572206f66206368616e6e656c206167656e74207065726d697373696f6e7320666f72206368616e6e656c206167656e74206578636565646564ac4d61784e756d6265724f6650617573656446656174757265735065724368616e6e656c4578636565646564000804d84d6178696d756d206e756d626572206f662070617573656420666561747572657320706572206368616e6e656c20657863656564656480496e76616c69644368616e6e656c4261675769746e65737350726f766964656400090411014368616e6e656c20626167207769746e65737320706172616d657465727320646f6e2774206d61746368207468652063757272656e742072756e74696d652073746174659c496e76616c696453746f726167654275636b6574734e756d5769746e65737350726f7669646564000a04450153746f72616765206275636b657473206e756d626572207769746e65737320706172616d6574657220646f6573206e6f74206d61746368207468652063757272656e742072756e74696d652073746174657c4d697373696e6753746f726167654275636b6574734e756d5769746e657373000b084d0153746f72616765206275636b657473206e756d626572207769746e65737320706172616d65746572206d7573742062652070726f7669646564207768656e206368616e6e656c2f766964656f2061737365747348617265206265696e6720757064617465642e784368616e6e656c4f776e65724d656d626572446f65734e6f744578697374000c04b850726f7669646564206368616e6e656c206f776e657220286d656d6265722920646f6573206e6f74206578697374904368616e6e656c4f776e657243757261746f7247726f7570446f65734e6f744578697374000d04d450726f7669646564206368616e6e656c206f776e6572202863757261746f722067726f75702920646f6573206e6f74206578697374b04368616e6e656c5374617465426c6f6174426f6e6442656c6f774578697374656e7469616c4465706f736974000e0809014368616e6e656c20737461746520626c6f617420626f6e642063616e6e6f74206265206c6f776572207468616e206578697374656e7469616c206465706f7369742c050162656361757365206974206d7573742073656375726520746865206368616e6e656c206d6f64756c65206163636f756e7420616761696e73742064757374696e67704e756d6265724f66417373657473546f52656d6f766549735a65726f000f04a90144656c657465206368616e6e656c20616e642061737365747320616e642064656c65746520766964656f20617373657473206d75737420686176652061206e756d626572206f662061737365747320746f2072656d6f76652067726561746572207468616e207a65726f9843757261746f7249734e6f74414d656d6265724f66476976656e43757261746f7247726f7570001004450143757261746f7220756e6465722070726f76696465642063757261746f72206964206973206e6f742061206d656d626572206f662063757261726f722067726f757020756e64657220676976656e206964a843757261746f724973416c7265616479414d656d6265724f66476976656e43757261746f7247726f7570001104550143757261746f7220756e6465722070726f76696465642063757261746f7220696420697320616c72656164792061206d656d626572206f662063757261726f722067726f757020756e64657220676976656e2069646043757261746f7247726f7570446f65734e6f74457869737400120488476976656e2063757261746f722067726f757020646f6573206e6f742065786973747043757261746f727350657247726f75704c696d697452656163686564001304b84d6178206e756d626572206f662063757261746f7273207065722067726f7570206c696d697420726561636865645c43757261746f7247726f757049734e6f744163746976650014046c43757261746f722067726f7570206973206e6f74206163746976654043757261746f724964496e76616c6964001504d843757261746f72206964206973206e6f74206120776f726b657220696420696e20636f6e74656e7420776f726b696e672067726f7570384c656164417574684661696c6564001604684c6561642061757468656e7469636174696f6e206661696c6564404d656d626572417574684661696c6564001704704d656d6265722061757468656e7469636174696f6e206661696c65644443757261746f72417574684661696c65640018047443757261746f722061757468656e7469636174696f6e206661696c6564244261644f726967696e00190478457870656374656420726f6f74206f72207369676e6564206f726967696e484163746f724e6f74417574686f72697a6564001a04b04f7065726174696f6e2063616e6e6f7420626520706572666f6d656420776974682074686973204163746f725043617465676f7279446f65734e6f744578697374001b04ac41204368616e6e656c206f7220566964656f2043617465676f727920646f6573206e6f742065786973742e4c4368616e6e656c446f65734e6f744578697374001c04584368616e6e656c20646f6573206e6f7420657869737444566964656f446f65734e6f744578697374001d0450566964656f20646f6573206e6f7420657869737434566964656f496e536561736f6e001e04f4566664656f20696e20736561736f6e2063616e60742062652072656d6f766564202862656361757365206f7264657220697320696d706f7274616e7429444163746f7243616e6e6f7442654c656164001f04c84163746f722063616e6e6f7420617574686f72697a65206173206c65616420666f7220676976656e2065787472696e736963544163746f7243616e6e6f744f776e4368616e6e656c002004604163746f722063616e6e6f74204f776e206368616e6e656c604e6674416c72656164794f776e656442794368616e6e656c002104a4417474656d707420746f20736c696e67206261636b2061206368616e6e656c206f776e6564206e6674404e6674416c7265616479457869737473002204944e667420666f7220676976656e20766964656f20696420616c7265616479206578697374733c4e6674446f65734e6f744578697374002304944e667420666f7220676976656e20766964656f20696420646f6573206e6f742065786973746c4f766572666c6f774f72556e646572666c6f7748617070656e6564002404904f766572666c6f77206f7220756e646572666c6f77206572726f722068617070656e656434446f65734e6f744f776e4e667400250474476976656e206f726967696e20646f6573206e6f74206f776e206e667464526f79616c74795570706572426f756e64457863656564656400260470526f79616c747920557070657220426f756e6420457863656564656464526f79616c74794c6f776572426f756e64457863656564656400270470526f79616c7479204c6f77657220426f756e642045786365656465648441756374696f6e4475726174696f6e5570706572426f756e6445786365656465640028049441756374696f6e206475726174696f6e20757070657220626f756e642065786365656465648441756374696f6e4475726174696f6e4c6f776572426f756e6445786365656465640029049441756374696f6e206475726174696f6e206c6f77657220626f756e6420657863656564656484457874656e73696f6e506572696f645570706572426f756e644578636565646564002a04b441756374696f6e20657874656e73696f6e20706572696f6420757070657220626f756e6420657863656564656484457874656e73696f6e506572696f644c6f776572426f756e644578636565646564002b04b441756374696f6e20657874656e73696f6e20706572696f64206c6f77657220626f756e64206578636565646564844269644c6f636b4475726174696f6e5570706572426f756e644578636565646564002c0498426964206c6f636b206475726174696f6e20757070657220626f756e64206578636565646564844269644c6f636b4475726174696f6e4c6f776572426f756e644578636565646564002d0498426964206c6f636b206475726174696f6e206c6f77657220626f756e642065786365656465647c5374617274696e6750726963655570706572426f756e644578636565646564002e048c5374617274696e6720707269636520757070657220626f756e642065786365656465647c5374617274696e6750726963654c6f776572426f756e644578636565646564002f048c5374617274696e67207072696365206c6f77657220626f756e642065786365656465648041756374696f6e426964537465705570706572426f756e6445786365656465640030049441756374696f6e20626964207374657020757070657220626f756e642065786365656465648041756374696f6e426964537465704c6f776572426f756e6445786365656465640031049441756374696f6e206269642073746570206c6f77657220626f756e642065786365656465644c496e73756666696369656e7442616c616e636500320450496e73756666696369656e742062616c616e63656442696453746570436f6e73747261696e7456696f6c61746564003304b44d696e696d616c2061756374696f6e20626964207374657020636f6e73747261696e742076696f6c617465642e64496e76616c6964426964416d6f756e7453706563696669656400340488436f6d6d697420766572696669636174696f6e20666f722062696420616d6f756e747c5374617274696e675072696365436f6e73747261696e7456696f6c61746564003504ac41756374696f6e207374617274696e6720707269636520636f6e73747261696e742076696f6c617465642e50416374696f6e48617342696473416c7265616479003604a8416c7265616479206163746976652061756374696f6e2063616e6e6f742062652063616e63656c6c6564304e667449734e6f7449646c65003704990143616e206e6f74206372656174652061756374696f6e20666f72204e66742c2069662061756374696f6e2068617665206265656e20616c72656164792073746172746564206f72206e6674206973206c6f636b656420666f7220746865207472616e736665726050656e64696e674f66666572446f65734e6f7445786973740038047c4e6f2070656e64696e67206f666665727320666f7220676976656e204e6674545265776172644163636f756e7449734e6f74536574003904c843726561746f7220726f79616c747920726571756972657320726577617264206163636f756e7420746f206265207365742e404163746f7249734e6f74426964646572003a04684163746f72206973206e6f742061206c617374206269646465726041756374696f6e43616e6e6f744265436f6d706c65746564003b046c41756374696f6e2063616e6e6f7420626520636f6d706c657465643c426964446f65734e6f744578697374003c046841756374696f6e20646f6573206e6f74206861766520626964734c4269644973466f725061737441756374696f6e003d049453656c65637465642042696420697320666f722070617374206f70656e2061756374696f6e6853746172747341744c6f776572426f756e644578636565646564003e049841756374696f6e20737461727473206174206c6f77657220626f756e642065786365656465646853746172747341745570706572426f756e644578636565646564003f049841756374696f6e2073746172747320617420757070657220626f756e642065786365656465644841756374696f6e4469644e6f7453746172740040045c41756374696f6e20646964206e6f742073746172746564444e6f74496e41756374696f6e53746174650041046c4e6674206973206e6f7420696e2061756374696f6e2073746174657c4d656d62657249734e6f74416c6c6f776564546f5061727469636970617465004204bc4d656d626572206973206e6f7420616c6c6f77656420746f20706172746963697061746520696e2061756374696f6e544d656d62657250726f66696c654e6f74466f756e64004304604d656d6265722070726f66696c65206e6f7420666f756e644c4e66744e6f74496e4275794e6f7753746174650044049c476976656e20766964656f206e6674206973206e6f7420696e20627579206e6f7720737461746584496e76616c69644275794e6f775769746e657373507269636550726f76696465640045045501607769746e6573735f7072696365602070726f766964656420746f20606275795f6e6f77602065787472696e73696320646f6573206e6f74206d61746368207468652063757272656e742073656c6c2070726963655049734e6f744f70656e41756374696f6e547970650046046841756374696f6e2074797065206973206e6f7420604f70656e605c49734e6f74456e676c69736841756374696f6e547970650047047441756374696f6e2074797065206973206e6f742060456e676c697368606c4269644c6f636b4475726174696f6e49734e6f744578706972656400480480426964206c6f636b206475726174696f6e206973206e6f742065787069726564684e667441756374696f6e4973416c726561647945787069726564004904784e66742061756374696f6e20697320616c72656164792065787069726564904275794e6f774d7573744265477265617465725468616e5374617274696e675072696365004a04ac41756374696f6e20627579206e6f77206973206c657373207468656e207374617274696e67207072696365605461726765744d656d626572446f65734e6f744578697374004b04984e6674206f6666657220746172676574206d656d62657220646f6573206e6f742065786973748c496e76616c69644e66744f666665725769746e657373507269636550726f7669646564004c040d0143757272656e74206e6674206f6666657220707269636520646f6573206e6f74206d61746368207468652070726f766964656420607769746e6573735f707269636560ac4d617841756374696f6e57686974654c6973744c656e6774685570706572426f756e644578636565646564004d04c44d61782061756374696f6e2077686974656c697374206c656e67746820757070657220626f756e642065786365656465646457686974656c6973744861734f6e6c794f6e654d656d626572004e049441756374696f6e2077686974656c69737420686173206f6e6c79206f6e65206d656d6265727457686974656c69737465644d656d626572446f65734e6f744578697374004f04d84174206c65617374206f6e65206f66207468652077686974656c6973746564206d656d6265727320646f6573206e6f74206578697374784e66744e6f6e4368616e6e656c4f776e6572446f65734e6f744578697374005004f84e6f6e2d6368616e6e656c206f776e65722073706563696669656420647572696e67206e66742069737375616e636520646f6573206e6f74206578697374ac457874656e73696f6e506572696f644973477265617465725468656e41756374696f6e4475726174696f6e005104c4457874656e73696f6e20706572696f642069732067726561746572207468656e2061756374696f6e206475726174696f6e444e6f417373657473537065636966696564005204ac4e6f2061737365747320746f2062652072656d6f7665642068617665206265656e2073706563696669656454496e76616c696441737365747350726f7669646564005304684368616e6e656c2061737365747320666561736962696c697479544368616e6e656c436f6e7461696e73566964656f73005404584368616e6e656c20436f6e7461696e7320566964656f544368616e6e656c436f6e7461696e734173736574730055045c4368616e6e656c20436f6e7461696e73204173736574735c496e76616c696442616753697a655370656369666965640056047c4261672053697a6520737065636966696564206973206e6f742076616c6964504d6967726174696f6e4e6f7446696e6973686564005704584d6967726174696f6e206e6f7420646f6e6520796574445265706c79446f65734e6f7445786973740058046c5061727465636970616e74206973206e6f742061206d656d6265724c556e73756666696369656e7442616c616e636500590450496e73756666696369656e742062616c616e63656c496e73756666696369656e74547265617375727942616c616e6365005a0474496e73756666696369656e742074726561737572792062616c616e636554496e76616c69644d656d62657250726f7669646564005b0470496e76616c6964206d656d62657220696420207370656369666965643c4163746f724e6f74414d656d626572005c04544163746f72206973206e6f742041204d656d626572785061796d656e7450726f6f66566572696669636174696f6e4661696c6564005d04845061796d656e742050726f6f6620766572696669636174696f6e206661696c656484436173686f7574416d6f756e74457863656564734d6178696d756d416d6f756e74005e04c04368616e6e656c20636173686f757420616d6f756e7420697320746f6f206869676820746f20626520636c61696d65647c436173686f7574416d6f756e7442656c6f774d696e696d756d416d6f756e74005f04bc4368616e6e656c20636173686f757420616d6f756e7420697320746f6f206c6f7720746f20626520636c61696d6564e05769746864726177616c416d6f756e74457863656564734368616e6e656c4163636f756e74576974686472617761626c6542616c616e63650060085901416e20617474656d707420746f2077697468647261772066756e64732066726f6d206368616e6e656c206163636f756e74206661696c65642c2062656361757365207468652073706563696669656420616d6f756e744901657863656564732074686520776974686472617761626c6520616d6f756e7420286368616e6e656c206163636f756e742062616c616e6365206d696e7573206368616e6e656c20626c6f617420626f6e64297c576974686472617746726f6d4368616e6e656c416d6f756e7449735a65726f0061085901416e20617474656d707420746f2077697468647261772066756e64732066726f6d206368616e6e656c206163636f756e74206661696c65642c2062656361757365207468652073706563696669656420616d6f756e741c6973207a65726f5c4368616e6e656c436173686f75747344697361626c65640062049c4368616e6e656c20636173686f757473206172652063757272656e746c792064697361626c6564a44d696e436173686f7574416c6c6f776564457863656564734d6178436173686f7574416c6c6f77656400630809014e65772076616c75657320666f72206d696e5f636173686f75745f616c6c6f7765642f6d61785f636173686f75745f616c6c6f7765642061726520696e76616c6964d46d696e5f636173686f75745f616c6c6f7765642063616e6e6f7420657863656564206d61785f636173686f75745f616c6c6f7765648443757261746f724d6f6465726174696f6e416374696f6e4e6f74416c6c6f776564006404110143757261746f7220646f6573206e6f742068617665207065726d697373696f6e7320746f20706572666f726d20676976656e206d6f6465726174696f6e20616374696f6e944d617843757261746f725065726d697373696f6e735065724c6576656c457863656564656400650441014d6178696d756d206e756d626572206f662063757261746f72207065726d697373696f6e732070657220676976656e206368616e6e656c2070726976696c656765206c6576656c206578636565646564c043757261746f7247726f75704d61785065726d697373696f6e7342794c6576656c4d617053697a654578636565646564006604290143757261746f722067726f75702773207065726d697373696f6e73206279206c6576656c206d617020657863656564656420746865206d6178696d756d20616c6c6f7765642073697a65504368616e6e656c466561747572655061757365640067045d014f7065726174696f6e2063616e6e6f742062652065786563757465642c20626563617573652074686973206368616e6e656c206665617475726520686173206265656e2070617573656420627920612063757261746f72444368616e6e656c4261674d697373696e670068042d01556e65787065637465642072756e74696d652073746174653a206d697373696e67206368616e6e656c2062616720647572696e672064656c6574655f6368616e6e656c20617474656d70748c417373657473546f52656d6f76654265796f6e64456e74697479417373657473536574006904f5014c697374206f662061737365747320746f2072656d6f76652070726f766964656420666f72207570646174655f6368616e6e656c202f207570646174655f766964656f20636f6e7461696e7320617373657473207468617420646f6e27742062656c6f6e6720746f207468652073706563696669656420656e7469747990496e76616c6964566964656f446174614f626a65637473436f756e7450726f7669646564006a04f4496e76616c6964206e756d626572206f66206f626a6563747320746f2064656c6574652070726f766964656420666f722064656c6574655f766964656f70496e76616c69644368616e6e656c5472616e73666572537461747573006b04bc496e76616c6964206368616e6e656c207472616e736665722073746174757320666f72206f7065726174696f6e732e78496e76616c69644368616e6e656c5472616e736665724163636570746f72006c04d4496e636f7272656374206163746f7220747269657320746f2061636365707420746865206368616e6e656c207472616e736665722e98496e76616c69644368616e6e656c5472616e73666572436f6d6d69746d656e74506172616d73006d08550143616e6e6f742061636365707420746865206368616e6e656c207472616e736665723a2070726f766964656420636f6d6d69746d656e7420706172616d657465727320646f65736e2774206d617463682077697468906368616e6e656c2070656e64696e67207472616e7366657220706172616d65746572732e8c4368616e6e656c4167656e74496e73756666696369656e745065726d697373696f6e73006e004c496e76616c69644368616e6e656c4f776e6572006f04a4496e636f7272656374206368616e6e656c206f776e657220666f7220616e206f7065726174696f6e2e285a65726f5265776172640070046443616e6e6f7420636c61696d207a65726f207265776172642e78496e73756666696369656e7442616c616e6365466f725472616e73666572007104510143616e6e6f74207472616e7366657220746865206368616e6e656c3a206368616e6e656c206f776e65722068617320696e73756666696369656e742062616c616e6365202862756467657420666f72205747732994496e73756666696369656e7442616c616e6365466f724368616e6e656c4372656174696f6e0072080d0143616e6e6f742063726561746520746865206368616e6e656c3a206368616e6e656c2063726561746f722068617320696e73756666696369656e742062616c616e6365e9012862756467657420666f72206368616e6e656c20737461746520626c6f617420626f6e64202b206368616e6e656c2064617461206f626a7320737461746520626c6f617420626f6e6473202b2064617461206f626a732073746f726167652066656573202b206578697374656e7469616c206465706f736974298c496e73756666696369656e7442616c616e6365466f72566964656f4372656174696f6e007308fc43616e6e6f74206372656174652074686520766964656f3a20766964656f2063726561746f722068617320696e73756666696369656e742062616c616e6365d9012862756467657420666f7220766964656f20737461746520626c6f617420626f6e64202b20766964656f2064617461206f626a7320737461746520626c6f617420626f6e6473202b2064617461206f626a732073746f726167652066656573202b206578697374656e7469616c206465706f7369742964496e73756666696369656e74436f756e63696c4275646765740074006c476c6f62616c4e66744461696c794c696d6974457863656564656400750070476c6f62616c4e66745765656b6c794c696d69744578636565646564007600704368616e6e656c4e66744461696c794c696d69744578636565646564007700744368616e6e656c4e66745765656b6c794c696d697445786365656465640078006443726561746f72546f6b656e416c7265616479497373756564007904c443726561746f7220746f6b656e2077617320616c72656164792069737375656420666f722074686973206368616e6e656c5443726561746f72546f6b656e4e6f74497373756564007a04b043726561746f7220746f6b656e207761736e27742069737375656420666f722074686973206368616e6e656c884d656d6265724964436f756c644e6f7442654465726976656446726f6d4163746f72007b0415014d656d62657220696420636f756c64206e6f7420626520646572697665642066726f6d207468652070726f766964656420436f6e74656e744163746f7220636f6e74657874bc43616e6e6f74576974686472617746726f6d4368616e6e656c5769746843726561746f72546f6b656e497373756564007c08290143616e6e6f74206469726563746c792077697468647261772066756e64732066726f6d2061206368616e6e656c206163636f756e74207768656e20746865206368616e6e656c2068617358612063726561746f7220746f6b656e20697373756564bc506174726f6e61676543616e4f6e6c794265436c61696d6564466f724d656d6265724f776e65644368616e6e656c73007d04f4506174726f6e6167652063616e206f6e6c7920626520636c61696d6564206966206368616e6e656c206973206f776e65642062792061206d656d626572a84368616e6e656c5472616e7366657273426c6f636b6564447572696e67526576656e756553706c697473007e04cc4368616e6e656c205472616e73666572732061726520626c6f636b656420647572696e6720726576656e75652073706c6974739c4368616e6e656c5472616e7366657273426c6f636b6564447572696e67546f6b656e53616c6573007f04c04368616e6e656c205472616e73666572732061726520626c6f636b656420647572696e6720746f6b656e2073616c65730460436f6e74656e74206469726563746f7279206572726f7273e508083870616c6c65745f73746f72616765244261675265636f7264084c53746f726167654275636b657449647353657401e90860446973747269627574696f6e4275636b657449647353657401ed080010012473746f7265645f6279e908014c53746f726167654275636b657449647353657400013864697374726962757465645f6279ed080160446973747269627574696f6e4275636b65744964735365740001486f626a656374735f746f74616c5f73697a6528010c7536340001386f626a656374735f6e756d62657228010c7536340000e9080c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401280453000004006901012c42547265655365743c543e0000ed080c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e64656442547265655365740804540125020453000004003902012c42547265655365743c543e0000f108083870616c6c65745f73746f726167654c53746f726167654275636b65745265636f72640820576f726b657249640128244163636f756e74496401000010013c6f70657261746f725f737461747573f50801c053746f726167654275636b65744f70657261746f725374617475733c576f726b657249642c204163636f756e7449643e000148616363657074696e675f6e65775f62616773980110626f6f6c00011c766f7563686572ad02011c566f756368657200013461737369676e65645f6261677328010c7536340000f508083870616c6c65745f73746f726167656c53746f726167654275636b65744f70657261746f725374617475730820576f726b657249640128244163636f756e7449640100010c1c4d697373696e6700000050496e766974656453746f72616765576f726b65720400280120576f726b657249640001003453746f72616765576f726b65720800280120576f726b6572496400000001244163636f756e74496400020000f9080c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003001185665633c543e0000fd08083870616c6c65745f73746f726167656044796e616d69634261674372656174696f6e506f6c69637904b0446973747269627574696f6e4275636b657446616d696c79546f4e756d6265724f664275636b6574734d6170010109000801646e756d6265725f6f665f73746f726167655f6275636b65747310010c75333200012066616d696c696573010901b0446973747269627574696f6e4275636b657446616d696c79546f4e756d6265724f664275636b6574734d6170000001090c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b012804560110045300000400b502013842547265654d61703c4b2c20563e0000050900000408950228000909083870616c6c65745f73746f7261676528446174614f626a6563740448526570617961626c65426c6f6174426f6e6401e101001001206163636570746564980110626f6f6c00014073746174655f626c6f61745f626f6e64e1010148526570617961626c65426c6f6174426f6e6400011073697a6528010c75363400013c697066735f636f6e74656e745f6964f908013c4261736535384d756c74696861736800000d09083870616c6c65745f73746f7261676578446973747269627574696f6e4275636b657446616d696c795265636f7264045c446973747269627574696f6e4275636b6574496e6465780128000401786e6578745f646973747269627574696f6e5f6275636b65745f696e64657828015c446973747269627574696f6e4275636b6574496e64657800001109083870616c6c65745f73746f7261676560446973747269627574696f6e4275636b65745265636f72640888446973747269627574696f6e4275636b6574496e76697465644f70657261746f72730115096c446973747269627574696f6e4275636b65744f70657261746f727301190900140148616363657074696e675f6e65775f62616773980110626f6f6c000130646973747269627574696e67980110626f6f6c00014c70656e64696e675f696e7669746174696f6e7315090188446973747269627574696f6e4275636b6574496e76697465644f70657261746f72730001246f70657261746f72731909016c446973747269627574696f6e4275636b65744f70657261746f727300013461737369676e65645f6261677328010c753634000015090c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401280453000004006901012c42547265655365743c543e000019090c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401280453000004006901012c42547265655365743c543e00001d09083870616c6c65745f73746f72616765144572726f72040454000105013c41726974686d657469634572726f72000004f447656e657269632041726974686d65746963204572726f722064756520746f20696e7465726e616c206163636f756e74696e67206f7065726174696f6e40496e76616c69644369644c656e67746800010494496e76616c696420434944206c656e67746820286d75737420626520343620627974657329444e6f4f626a656374734f6e55706c6f6164000204a0456d707479202264617461206f626a656374206372656174696f6e2220636f6c6c656374696f6e2e6053746f726167654275636b6574446f65736e744578697374000304ac546865207265717565737465642073746f72616765206275636b657420646f65736e27742065786973742e7053746f726167654275636b657449734e6f74426f756e64546f426167000404cc546865207265717565737465642073746f72616765206275636b6574206973206e6f7420626f756e6420746f2061206261672e6453746f726167654275636b65744973426f756e64546f426167000504dc546865207265717565737465642073746f72616765206275636b657420697320616c726561647920626f756e6420746f2061206261672e644e6f53746f726167654275636b6574496e7669746174696f6e0006041901496e76616c6964206f7065726174696f6e207769746820696e76697465733a207468657265206973206e6f2073746f72616765206275636b657420696e7669746174696f6e2e6453746f7261676550726f7669646572416c72656164795365740007040501496e76616c6964206f7065726174696f6e207769746820696e76697465733a2073746f726167652070726f76696465722077617320616c7265616479207365742e6053746f7261676550726f76696465724d75737442655365740008047453746f726167652070726f7669646572206d757374206265207365742e7c446966666572656e7453746f7261676550726f7669646572496e76697465640009041501496e76616c6964206f7065726174696f6e207769746820696e76697465733a20616e6f746865722073746f726167652070726f76696465722077617320696e76697465642e58496e766974656453746f7261676550726f7669646572000a041501496e76616c6964206f7065726174696f6e207769746820696e76697465733a2073746f726167652070726f76696465722077617320616c726561647920696e76697465642e8853746f726167654275636b65744964436f6c6c656374696f6e73417265456d707479000b04a053746f72616765206275636b657420696420636f6c6c656374696f6e732061726520656d7074792ed053746f726167654275636b6574734e756d62657256696f6c6174657344796e616d69634261674372656174696f6e506f6c696379000c08290153746f72616765206275636b657420696420636f6c6c656374696f6e2070726f766964656420636f6e747261646963747320746865206578697374696e672064796e616d696320626167406372656174696f6e20706f6c6963792ecc446973747269627574696f6e4275636b65747356696f6c6174657344796e616d69634261674372656174696f6e506f6c696379000d083d01446973747269627574696f6e206275636b657420696420636f6c6c656374696f6e2070726f766964656420636f6e747261646963747320746865206578697374696e672064796e616d696320626167406372656174696f6e20706f6c6963792e38456d707479436f6e74656e744964000e04b455706c6f61642064617461206572726f723a20656d70747920636f6e74656e742049442070726f76696465642e385a65726f4f626a65637453697a65000f049055706c6f61642064617461206572726f723a207a65726f206f626a6563742073697a652e88496e76616c69645374617465426c6f6174426f6e64536f757263654163636f756e74001004ec55706c6f61642064617461206572726f723a20696e76616c696420737461746520626c6f617420626f6e6420736f75726365206163636f756e742e58496e76616c696453746f7261676550726f766964657200110490496e76616c69642073746f726167652070726f766964657220666f72206275636b65742e4c496e73756666696369656e7442616c616e636500120498496e73756666696369656e742062616c616e636520666f7220616e206f7065726174696f6e2e54446174614f626a656374446f65736e7445786973740013046844617461206f626a65637420646f65736e27742065786973742e4055706c6f6164696e67426c6f636b65640014049c55706c6f6164696e67206f6620746865206e6577206f626a65637420697320626c6f636b65642e74446174614f626a6563744964436f6c6c656374696f6e4973456d7074790015048c44617461206f626a65637420696420636f6c6c656374696f6e20697320656d7074792e80536f75726365416e6444657374696e6174696f6e42616773417265457175616c001604a043616e6e6f74206d6f7665206f626a656374732077697468696e207468652073616d65206261672e54446174614f626a656374426c61636b6c6973746564001704a844617461206f626a65637420686173682069732070617274206f662074686520626c61636b6c6973742e68426c61636b6c69737453697a654c696d6974457863656564656400180478426c61636b6c6973742073697a65206c696d69742065786365656465642e84566f75636865724d61784f626a65637453697a654c696d69744578636565646564001904ac4d6178206f626a6563742073697a65206c696d697420657863656564656420666f7220766f75636865722e8c566f75636865724d61784f626a6563744e756d6265724c696d69744578636565646564001a04b44d6178206f626a656374206e756d626572206c696d697420657863656564656420666f7220766f75636865722e9453746f726167654275636b65744f626a6563744e756d6265724c696d697452656163686564001b04cc4f626a656374206e756d626572206c696d697420666f72207468652073746f72616765206275636b657420726561636865642e8c53746f726167654275636b65744f626a65637453697a654c696d697452656163686564001c04e04f626a6563747320746f74616c2073697a65206c696d697420666f72207468652073746f72616765206275636b657420726561636865642e6c496e73756666696369656e74547265617375727942616c616e6365001d04d8496e73756666696369656e74206d6f64756c652074726561737572792062616c616e636520666f7220616e206f7065726174696f6e2e8443616e6e6f7444656c6574654e6f6e456d70747953746f726167654275636b6574001e04a443616e6e6f742064656c6574652061206e6f6e2d656d7074792073746f72616765206275636b65742e68446174614f626a6563744964506172616d73417265456d707479001f04f85468652060646174615f6f626a6563745f696473602065787472696e73696320706172616d6574657220636f6c6c656374696f6e20697320656d7074792e7c53746f726167654275636b6574735065724261674c696d6974546f6f4c6f77002004d8546865206e6577206053746f726167654275636b6574735065724261674c696d697460206e756d62657220697320746f6f206c6f772e8053746f726167654275636b6574735065724261674c696d6974546f6f48696768002104dc546865206e6577206053746f726167654275636b6574735065724261674c696d697460206e756d62657220697320746f6f20686967682e8053746f726167654275636b65745065724261674c696d69744578636565646564002204cc6053746f726167654275636b6574735065724261674c696d6974602077617320657863656564656420666f722061206261672e8053746f726167654275636b6574446f65736e744163636570744e657742616773002304ac5468652073746f72616765206275636b657420646f65736e277420616363657074206e657720626167732e4044796e616d6963426167457869737473002404c843616e6e6f7420637265617465207468652064796e616d6963206261673a2064796e616d696320626167206578697374732e5444796e616d6963426167446f65736e7445786973740025046844796e616d69632062616720646f65736e27742065786973742e8853746f7261676550726f76696465724f70657261746f72446f65736e744578697374002604a053746f726167652070726f7669646572206f70657261746f7220646f65736e27742065786973742e484461746153697a654665654368616e676564002704b8496e76616c69642065787472696e7369632063616c6c3a20646174612073697a6520666565206368616e6765642e7c446174614f626a6563745374617465426c6f6174426f6e644368616e676564002804f4496e76616c69642065787472696e7369632063616c6c3a2064617461206f626a65637420737461746520626c6f617420626f6e64206368616e6765642e7843616e6e6f7444656c6574654e6f6e456d70747944796e616d69634261670029049043616e6e6f742064656c657465206e6f6e20656d7074792064796e616d6963206261672eb84d6178446973747269627574696f6e4275636b657446616d696c794e756d6265724c696d69744578636565646564002a04d44d617820646973747269627574696f6e206275636b65742066616d696c79206e756d626572206c696d69742065786365656465642e8c446973747269627574696f6e4275636b657446616d696c79446f65736e744578697374002b04a4446973747269627574696f6e206275636b65742066616d696c7920646f65736e27742065786973742e74446973747269627574696f6e4275636b6574446f65736e744578697374002c0488446973747269627574696f6e206275636b657420646f65736e27742065786973742e9c446973747269627574696f6e4275636b65744964436f6c6c656374696f6e73417265456d707479002d04b4446973747269627574696f6e206275636b657420696420636f6c6c656374696f6e732061726520656d7074792e94446973747269627574696f6e4275636b6574446f65736e744163636570744e657742616773002e04b0446973747269627574696f6e206275636b657420646f65736e277420616363657074206e657720626167732eb84d6178446973747269627574696f6e4275636b65744e756d6265725065724261674c696d69744578636565646564002f04d84d617820646973747269627574696f6e206275636b6574206e756d6265722070657220626167206c696d69742065786365656465642e84446973747269627574696f6e4275636b657449734e6f74426f756e64546f426167003004a8446973747269627574696f6e206275636b6574206973206e6f7420626f756e6420746f2061206261672e78446973747269627574696f6e4275636b65744973426f756e64546f42616700310498446973747269627574696f6e206275636b657420697320626f756e6420746f2061206261672e90446973747269627574696f6e4275636b6574735065724261674c696d6974546f6f4c6f77003204ec546865206e65772060446973747269627574696f6e4275636b6574735065724261674c696d697460206e756d62657220697320746f6f206c6f772e94446973747269627574696f6e4275636b6574735065724261674c696d6974546f6f48696768003304f0546865206e65772060446973747269627574696f6e4275636b6574735065724261674c696d697460206e756d62657220697320746f6f20686967682e9c446973747269627574696f6e50726f76696465724f70657261746f72446f65736e744578697374003404b4446973747269627574696f6e2070726f7669646572206f70657261746f7220646f65736e27742065786973742ea8446973747269627574696f6e50726f76696465724f70657261746f72416c7265616479496e7669746564003504bc446973747269627574696f6e2070726f7669646572206f70657261746f7220616c726561647920696e76697465642e7c446973747269627574696f6e50726f76696465724f70657261746f72536574003604ac446973747269627574696f6e2070726f7669646572206f70657261746f7220616c7265616479207365742e784e6f446973747269627574696f6e4275636b6574496e7669746174696f6e003704884e6f20646973747269627574696f6e206275636b657420696e7669746174696f6e2eac4d7573744265446973747269627574696f6e50726f76696465724f70657261746f72466f724275636b65740038042901496e76616c6964206f7065726174696f6e733a206d757374206265206120646973747269627574696f6e2070726f7669646572206f70657261746f7220666f722061206275636b65742ef84d61784e756d6265724f6650656e64696e67496e7669746174696f6e734c696d6974466f72446973747269627574696f6e4275636b65745265616368656400390429014d6178206e756d626572206f662070656e64696e6720696e7669746174696f6e73206c696d697420666f72206120646973747269627574696f6e206275636b657420726561636865642ec04d61784e756d6265724f664f70657261746f7273506572446973747269627574696f6e4275636b657452656163686564003a04e84d6178206e756d626572206f66206f70657261746f727320666f72206120646973747269627574696f6e206275636b657420726561636865642ea8446973747269627574696f6e46616d696c79426f756e64546f4261674372656174696f6e506f6c696379003b04cc446973747269627574696f6e2066616d696c7920626f756e6420746f206120626167206372656174696f6e20706f6c6963792e644d6178446174614f626a65637453697a654578636565646564003c04784d61782064617461206f626a6563742073697a652065786365656465642e60496e76616c69645472616e736163746f724163636f756e74003d04b8496e76616c6964207472616e736163746f72206163636f756e7420494420666f722074686973206275636b65742ec04e756d6265724f6653746f726167654275636b6574734f7574736964654f66416c6c6f776564436f6e747261696e7473003e049c4e6f7420616c6c6f77656420276e756d626572206f662073746f72616765206275636b65747327d44e756d6265724f66446973747269627574696f6e4275636b6574734f7574736964654f66416c6c6f776564436f6e747261696e7473003f04b04e6f7420616c6c6f77656420276e756d626572206f6620646973747269627574696f6e206275636b657473273043616c6c44697361626c65640040043443616c6c2044697361626c6564048053746f72616765206d6f64756c6520707265646566696e6564206572726f727321090c5070616c6c65745f70726f6a6563745f746f6b656e1474797065732c4163636f756e7444617461101c42616c616e63650118345374616b696e6753746174757301250948526570617961626c65426c6f6174426f6e6401e1014056657374696e675363686564756c65730129090018014476657374696e675f7363686564756c65732909014056657374696e675363686564756c6573000118616d6f756e7418011c42616c616e636500015073706c69745f7374616b696e675f7374617475733d0901544f7074696f6e3c5374616b696e675374617475733e000128626c6f61745f626f6e64e1010148526570617961626c65426c6f6174426f6e640001606e6578745f76657374696e675f7472616e736665725f696428010c7536340001806c6173745f73616c655f746f74616c5f7075726368617365645f616d6f756e74410901784f7074696f6e3c28546f6b656e53616c6549642c2042616c616e6365293e000025090c5070616c6c65745f70726f6a6563745f746f6b656e147479706573345374616b696e67537461747573041c42616c616e636501180008012073706c69745f6964100138526576656e756553706c69744964000118616d6f756e7418011c42616c616e6365000029090c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b0111030456012d090453000004003109013842547265654d61703c4b2c20563e00002d090c5070616c6c65745f70726f6a6563745f746f6b656e1474797065733c56657374696e675363686564756c65082c426c6f636b4e756d62657201101c42616c616e63650118001401686c696e6561725f76657374696e675f73746172745f626c6f636b10012c426c6f636b4e756d62657200015c6c696e6561725f76657374696e675f6475726174696f6e10012c426c6f636b4e756d626572000130636c6966665f616d6f756e7418011c42616c616e636500015c706f73745f636c6966665f746f74616c5f616d6f756e7418011c42616c616e63650001346275726e65645f616d6f756e7418011c42616c616e636500003109042042547265654d617008044b0111030456012d090004003509000000350900000239090039090000040811032d09003d0904184f7074696f6e0404540125090108104e6f6e6500000010536f6d65040025090000010000410904184f7074696f6e0404540145090108104e6f6e6500000010536f6d6504004509000001000045090000040810180049090c5070616c6c65745f70726f6a6563745f746f6b656e14747970657324546f6b656e44617461141c42616c616e636501181048617368012c2c426c6f636b4e756d626572011024546f6b656e53616c6501210344526576656e756553706c69745374617465014d09002c0130746f74616c5f737570706c7918011c42616c616e6365000134746f6b656e735f69737375656418011c42616c616e63650001306e6578745f73616c655f696410012c546f6b656e53616c65496400011073616c65590901444f7074696f6e3c546f6b656e53616c653e00013c7472616e736665725f706f6c696379c50201505472616e73666572506f6c6963793c486173683e00011873796d626f6c2c011048617368000138706174726f6e6167655f696e666f5d09018c506174726f6e616765446174613c42616c616e63652c20426c6f636b4e756d6265723e00013c6163636f756e74735f6e756d62657228010c753634000148726576656e75655f73706c69745f72617465d502011c5065726d696c6c000134726576656e75655f73706c69744d090144526576656e756553706c697453746174650001546e6578745f726576656e75655f73706c69745f6964100138526576656e756553706c6974496400004d090c5070616c6c65745f70726f6a6563745f746f6b656e14747970657344526576656e756553706c6974537461746508284a6f7942616c616e636501182c426c6f636b4e756d6265720110010820496e616374697665000000184163746976650400510901a4526576656e756553706c6974496e666f3c4a6f7942616c616e63652c20426c6f636b4e756d6265723e0001000051090c5070616c6c65745f70726f6a6563745f746f6b656e14747970657340526576656e756553706c6974496e666f08284a6f7942616c616e636501182c426c6f636b4e756d6265720110000c0128616c6c6f636174696f6e1801284a6f7942616c616e636500012074696d656c696e655509015454696d656c696e653c426c6f636b4e756d6265723e0001446469766964656e64735f636c61696d65641801284a6f7942616c616e6365000055090c5070616c6c65745f70726f6a6563745f746f6b656e1474797065732054696d656c696e65042c426c6f636b4e756d626572011000080114737461727410012c426c6f636b4e756d6265720001206475726174696f6e10012c426c6f636b4e756d6265720000590904184f7074696f6e0404540121030108104e6f6e6500000010536f6d650400210300000100005d090c5070616c6c65745f70726f6a6563745f746f6b656e14747970657334506174726f6e61676544617461081c42616c616e636501182c426c6f636b4e756d6265720110000c01107261746561090124426c6f636b52617465000180756e636c61696d65645f706174726f6e6167655f74616c6c795f616d6f756e7418011c42616c616e63650001906c6173745f756e636c61696d65645f706174726f6e6167655f74616c6c795f626c6f636b10012c426c6f636b4e756d626572000061090c5070616c6c65745f70726f6a6563745f746f6b656e14747970657324426c6f636b52617465000004002503012c5065727175696e74696c6c000065090c5070616c6c65745f70726f6a6563745f746f6b656e186572726f7273144572726f720404540001c43c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f772980496e73756666696369656e745472616e736665727261626c6542616c616e636500010481014163636f756e742773207472616e736665727261626c652062616c616e636520697320696e73756666696369656e7420746f20706572666f726d20746865207472616e73666572206f7220696e697469616c697a6520746f6b656e2073616c6544546f6b656e446f65734e6f7445786973740002047852657175657374656420746f6b656e20646f6573206e6f74206578697374784163636f756e74496e666f726d6174696f6e446f65734e6f74457869737400030494526571756573746564206163636f756e74206461746120646f6573206e6f74206578697374945472616e7366657244657374696e6174696f6e4d656d626572446f65734e6f74457869737400040419014174206c65617374206f6e65206f6620746865207472616e736665722064657374696e6174696f6e73206973206e6f7420616e206578697374696e67206d656d626572206964784d65726b6c6550726f6f66566572696669636174696f6e4661696c757265000504804d65726b6c652070726f6f6620766572696669636174696f6e206661696c6564a8546172676574506174726f6e6167655261746549734869676865725468616e43757272656e7452617465000604c4546172676574205261746520697320686967686572207468616e2063757272656e7420706174726f6e61676520726174655c546f6b656e53796d626f6c416c7265616479496e5573650007045453796d626f6c20616c726561647920696e2075736590496e697469616c416c6c6f636174696f6e546f4e6f6e4578697374696e674d656d62657200080441014174206c65617374206f6e65206f6620746865206d656d626572732070726f76696465642061732070617274206f6620496e697469616c416c6c6f636174696f6e20646f6573206e6f74206578697374504163636f756e74416c7265616479457869737473000904584163636f756e7420416c7265616479206578697374736c546f6b656e49737375616e63654e6f74496e49646c655374617465000a04a8546f6b656e27732063757272656e74206f66666572696e67207374617465206973206e6f742049646c6558496e73756666696369656e744a6f7942616c616e6365000b04dc496e73756666696369656e74204a4f592042616c616e636520746f20636f76657220746865207472616e73616374696f6e20636f7374736c4a6f795472616e736665725375626a656374546f44757374696e67000c045d0154686520616d6f756e74206f66204a4f5920746f206265207472616e73666572726564206973206e6f7420656e6f75676820746f206b656570207468652064657374696e6174696f6e206163636f756e7420616c697665cc417474656d7074546f52656d6f76654e6f6e4f776e65644163636f756e74556e6465725065726d697373696f6e65644d6f6465000d04ec417474656d707420746f2072656d6f7665206e6f6e206f776e6564206163636f756e7420756e646572207065726d697373696f6e6564206d6f646578417474656d7074546f52656d6f76654e6f6e456d7074794163636f756e74000e04e4417474656d707420746f2072656d6f766520616e206163636f756e74207769746820736f6d65206f75747374616e64696e6720746f6b656e739c43616e6e6f744a6f696e57686974656c697374496e5065726d697373696f6e6c6573734d6f6465000f04b043616e6e6f74206a6f696e2077686974656c69737420696e207065726d697373696f6e6c657373206d6f6465a443616e6e6f7444656973737565546f6b656e576974684f75747374616e64696e674163636f756e7473001004b843616e6e6f74204465697373756520546f6b656e2077697468206f75747374616e64696e67206163636f756e7473384e6f5570636f6d696e6753616c650011047854686520746f6b656e20686173206e6f207570636f6d696e672073616c65304e6f41637469766553616c65001204a854686520746f6b656e20686173206e6f206163746976652073616c6520617420746865206d6f6d656e748c496e73756666696369656e7442616c616e6365466f72546f6b656e507572636861736500130401014163636f756e742773204a4f592062616c616e636520697320696e73756666696369656e7420746f206d616b652074686520746f6b656e207075726368617365544e6f74456e6f756768546f6b656e734f6e53616c650014047d01416d6f756e74206f6620746f6b656e7320746f207075726368617365206f6e2073616c65206578636565647320746865207175616e74697479206f6620746f6b656e73207374696c6c20617661696c61626c65206f6e207468652073616c656853616c655374617274696e67426c6f636b496e54686550617374001504b05370656369666965642073616c65207374617274696e6720626c6f636b20697320696e2074686520706173745c53616c6541636365737350726f6f66526571756972656400160481014f6e6c792077686974656c6973746564207061727469636970616e74732061726520616c6c6f77656420746f20616363657373207468652073616c652c207468657265666f7265206163636573732070726f6f662069732072657175697265649453616c6541636365737350726f6f665061727469636970616e7449734e6f7453656e64657200170829015061727469636970616e7420696e2073616c65206163636573732070726f6f662070726f766964656420647572696e67206070757263686173655f746f6b656e735f6f6e5f73616c656084646f6573206e6f74206d61746368207468652073656e646572206163636f756e745c53616c6550757263686173654361704578636565646564001808610153616c65207061727469636970616e742773206361702028656974686572206361705f7065725f6d656d626572206f722077686974656c6973746564207061727469636970616e742773207370656369666963206361702978776173206578636565646564207769746820746865207075726368617365b04d617856657374696e675363686564756c65735065724163636f756e74506572546f6b656e52656163686564001908c843616e6e6f742061646420616e6f746865722076657374696e67207363686564756c6520746f20616e206163636f756e742e31014d6178696d756d206e756d626572206f662076657374696e67207363686564756c657320666f722074686973206163636f756e742d746f6b656e20706169722077617320726561636865642e6050726576696f757353616c654e6f7446696e616c697a6564001a04e450726576696f75732073616c6520776173207374696c6c206e6f742066696e616c697a65642c2066696e616c697a652069742066697273742e444e6f546f6b656e73546f5265636f766572001b041501546865726520617265206e6f2072656d61696e696e6720746f6b657320746f207265636f7665722066726f6d207468652070726576696f757320746f6b656e2073616c652e5053616c654475726174696f6e546f6f53686f7274001c04dc5370656369666965642073616c65206475726174696f6e2069732073686f72746572207468616e204d696e53616c654475726174696f6e4853616c654475726174696f6e49735a65726f001d047053616c65206475726174696f6e2063616e6e6f74206265207a65726f7053616c655570706572426f756e645175616e7469747949735a65726f001e048c557070657220626f756e64207175616e746974792063616e6e6f74206265207a65726f5853616c654361705065724d656d62657249735a65726f001f049850757263686173652063617020706572206d656d6265722063616e6e6f74206265207a65726f4c53616c65556e6974507269636549735a65726f00200484546f6b656e277320756e69742070726963652063616e6e6f74206265207a65726f6053616c655075726368617365416d6f756e7449735a65726f002104cc416d6f756e74206f6620746f6b656e7320746f207075726368617365206f6e2073616c652063616e6e6f74206265207a65726f7c526576656e756553706c697454696d65546f5374617274546f6f53686f7274002204d453706563696669656420726576656e75652073706c6974207374617274696e6720626c6f636b20697320696e20746865207061737470526576656e756553706c69744475726174696f6e546f6f53686f72740023048c526576656e75652053706c6974206475726174696f6e20697320746f6f2073686f727484526576656e756553706c6974416c7265616479416374697665466f72546f6b656e002404a8417474656d707420746f2061637469766174652073706c69742077697468206f6e65206f6e676f696e6774526576656e756553706c69744e6f74416374697665466f72546f6b656e0025043501417474656d707420746f206d616b6520726576656e75652073706c6974206f7065726174696f6e73207769746820746f6b656e206e6f7420696e206163746976652073706c697420737461746554526576656e756553706c69744469644e6f74456e640026047c526576656e75652053706c697420686173206e6f7420656e6465642079657458526576656e756553706c69744e6f744f6e676f696e67002704bc526576656e75652053706c697420666f7220746f6b656e206163746976652c20627574206e6f74206f6e676f696e676055736572416c726561647950617274696369706174696e67002804bc5573657220616c72656164792070617274696369706174696e6720696e2074686520726576656e75652073706c6974a0496e73756666696369656e7442616c616e6365466f7253706c697450617274696369706174696f6e0029041d015573657220646f6573206e6f7420706f7373657320656e6f7567682062616c616e636520746f20706172746963697061746520696e2074686520726576656e75652073706c69747c557365724e6f745061727469636970616e74696e67496e416e7953706c6974002a049855736572206973206e6f742070617274696369706174696e6720696e20616e792073706c69749843616e6e6f745061727469636970617465496e53706c6974576974685a65726f416d6f756e74002b04e8417474656d707420746f20706172746963697061746520696e20612073706c69742077697468207a65726f20746f6b656e20746f207374616b65a043616e6e6f74497373756553706c6974576974685a65726f416c6c6f636174696f6e416d6f756e74002c04dc417474656d707420746f20697373756520696e20612073706c69742077697468207a65726f20616c6c6f636174696f6e20616d6f756e74b043616e6e6f744d6f64696679537570706c795768656e526576656e756553706c697473417265416374697665002d04d4417474656d707420746f206d6f6469667920737570706c79207768656e20726576656e75652073706c69742069732061637469766558526576656e756553706c69745261746549735a65726f002e0478526576656e75652073706c697420726174652063616e6e6f742062652030404275726e416d6f756e7449735a65726f002f047c50726f766964656420616d6f756e7420746f206275726e206973203d3d2030a04275726e416d6f756e74477265617465725468616e4163636f756e74546f6b656e73416d6f756e740030043101416d6f756e74206f6620746f6b656e7320746f206275726e206578636565647320746f74616c20616d6f756e74206f6620746f6b656e73206f776e656420627920746865206163636f756e740069090c5c70616c6c65745f70726f706f73616c735f656e67696e651474797065732050726f706f73616c102c426c6f636b4e756d62657201102850726f706f736572496401281c42616c616e63650118244163636f756e744964010000200128706172616d65746572736d0901a050726f706f73616c506172616d65746572733c426c6f636b4e756d6265722c2042616c616e63653e00012c70726f706f7365725f696428012850726f706f73657249640001306163746976617465645f617410012c426c6f636b4e756d6265720001187374617475732d03016c50726f706f73616c5374617475733c426c6f636b4e756d6265723e000138766f74696e675f726573756c747371090134566f74696e67526573756c747300015465786163745f657865637574696f6e5f626c6f636b0102014c4f7074696f6e3c426c6f636b4e756d6265723e00016c6e725f6f665f636f756e63696c5f636f6e6669726d6174696f6e7310010c7533320001487374616b696e675f6163636f756e745f69649401444f7074696f6e3c4163636f756e7449643e00006d090c5c70616c6c65745f70726f706f73616c735f656e67696e651474797065734850726f706f73616c506172616d6574657273082c426c6f636b4e756d62657201101c42616c616e6365011800200134766f74696e675f706572696f6410012c426c6f636b4e756d62657200013067726163655f706572696f6410012c426c6f636b4e756d626572000168617070726f76616c5f71756f72756d5f70657263656e7461676510010c753332000174617070726f76616c5f7468726573686f6c645f70657263656e7461676510010c753332000168736c617368696e675f71756f72756d5f70657263656e7461676510010c753332000174736c617368696e675f7468726573686f6c645f70657263656e7461676510010c75333200013872657175697265645f7374616b654501013c4f7074696f6e3c42616c616e63653e000144636f6e737469747574696f6e616c69747910010c753332000071090c5c70616c6c65745f70726f706f73616c735f656e67696e6514747970657334566f74696e67526573756c7473000010012c61627374656e74696f6e7310010c753332000124617070726f76616c7310010c75333200012872656a656374696f6e7310010c75333200011c736c617368657310010c753332000075090c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003001185665633c543e00007909000004081028007d09085c70616c6c65745f70726f706f73616c735f656e67696e65144572726f7204045400015c3c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f772948456d7074795469746c6550726f76696465640001049050726f706f73616c2063616e6e6f74206861766520616e20656d707479207469746c652260456d7074794465736372697074696f6e50726f76696465640002048850726f706f73616c2063616e6e6f74206861766520616e20656d70747920626f6479385469746c654973546f6f4c6f6e67000304445469746c6520697320746f6f206c6f6e67504465736372697074696f6e4973546f6f4c6f6e670004045c4465736372697074696f6e20697320746f6f206c6f6e674050726f706f73616c4e6f74466f756e640005046c5468652070726f706f73616c20646f6573206e6f742065786973744450726f706f73616c46696e616c697a65640006047450726f706f73616c2069732066696e616c697a656420616c726561647930416c7265616479566f7465640007049c5468652070726f706f73616c2068617665206265656e20616c726561647920766f746564206f6e244e6f74417574686f72000804344e6f7420616e20617574686f727c4d617841637469766550726f706f73616c4e756d6265724578636565646564000904904d6178206163746976652070726f706f73616c73206e756d62657220657863656564656428456d7074795374616b65000a04a05374616b652063616e6e6f7420626520656d707479207769746820746869732070726f706f73616c485374616b6553686f756c644265456d707479000b049c5374616b652073686f756c6420626520656d70747920666f7220746869732070726f706f73616c605374616b654469666665727346726f6d5265717569726564000c04b05374616b6520646966666572732066726f6d207468652070726f706f73616c20726571756972656d656e747384496e76616c6964506172616d65746572417070726f76616c5468726573686f6c64000d0484417070726f76616c207468726573686f6c642063616e6e6f74206265207a65726f84496e76616c6964506172616d65746572536c617368696e675468726573686f6c64000e0484536c617368696e67207468726573686f6c642063616e6e6f74206265207a65726f4452657175697265526f6f744f726967696e000f04845265717569726520726f6f74206f726967696e20696e2065787472696e736963734050726f706f73616c486173566f746573001004f4446973616c6c6f7720746f2063616e63656c207468652070726f706f73616c2069662074686572652061726520616e7920766f746573206f6e2069742e5c5a65726f4578616374457865637574696f6e426c6f636b00110494457861637420657865637574696f6e20626c6f636b2063616e6e6f74206265207a65726f2e68496e76616c69644578616374457865637574696f6e426c6f636b001204e0457861637420657865637574696f6e20626c6f636b2063616e6e6f74206265206c657373207468616e2063757272656e745f626c6f636b2e6c496e73756666696369656e7442616c616e6365466f725374616b65001304a05468657265206973206e6f7420656e6f7567682062616c616e636520666f722061207374616b652e44436f6e666c696374696e675374616b6573001404bc54686520636f6e666c696374696e67207374616b6520646973636f76657265642e2043616e6e6f74207374616b652e78496e76616c69645374616b696e674163636f756e74466f724d656d626572001504ac5374616b696e67206163636f756e7420646f65736e27742062656c6f6e6720746f2061206d656d6265722e8c4d6178446973706174636861626c6543616c6c436f646553697a6545786365656465640016043d015468652073697a65206f6620656e636f64656420646973706174636861626c652063616c6c20746f206265206578656375746564206279207468652070726f706f73616c20697320746f6f20626967047c456e67696e65206d6f64756c6520707265646566696e6564206572726f727381090c6c70616c6c65745f70726f706f73616c735f64697363757373696f6e1474797065734044697363757373696f6e5468726561640c204d656d626572496401282c426c6f636b4e756d62657201103c54687265616457686974656c697374018509000c01306163746976617465645f617410012c426c6f636b4e756d626572000124617574686f725f69642801204d656d62657249640001106d6f64658909016c5468726561644d6f64653c54687265616457686974656c6973743e000085090c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401280453000004006901012c42547265655365743c543e000089090c6c70616c6c65745f70726f706f73616c735f64697363757373696f6e147479706573285468726561644d6f6465043c54687265616457686974656c6973740185090108104f70656e00000018436c6f73656404008509013c54687265616457686974656c697374000100008d090c6c70616c6c65745f70726f706f73616c735f64697363757373696f6e1474797065733844697363757373696f6e506f73740c204d656d626572496401282c426c6f636b4e756d626572011048526570617961626c65426c6f6174426f6e6401e101000c0124617574686f725f69642801204d656d626572496400013c636c65616e75705f7061795f6f6666e1010148526570617961626c65426c6f6174426f6e6400012c6c6173745f65646974656410012c426c6f636b4e756d62657200009109086c70616c6c65745f70726f706f73616c735f64697363757373696f6e144572726f720404540001283c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f772944546872656164446f65736e7445786973740001045054687265616420646f65736e27742065786973743c506f7374446f65736e74457869737400020448506f737420646f65736e27742065786973744452657175697265526f6f744f726967696e000304845265717569726520726f6f74206f726967696e20696e2065787472696e736963736043616e6e6f74506f73744f6e436c6f7365645468726561640004046501546865207468726561642068617320436c6f736564206d6f64652e20416e6420706f737420617574686f7220646f65736e27742062656c6f6e6720746f20636f756e63696c206f7220616c6c6f776564206d656d626572732e504e6f74417574686f724f72436f756e63696c6f720005049453686f756c642062652074687265616420617574686f72206f7220636f756e63696c6f722e604d617857686974654c69737453697a654578636565646564000604a04d617820616c6c6f77656420617574686f7273206c697374206c696d69742065786365656465642e7457686974656c69737465644d656d626572446f65734e6f74457869737400070849014174206c65617374206f6e65206f6620746865206d656d626572206964732070726f76696465642061732070617274206f6620636c6f736564207468726561642077686974656c6973742062656c6f6e677364746f2061206e6f6e2d6578697374696e67206d656d6265722e68496e73756666696369656e7442616c616e6365466f72506f7374000804c44163636f756e742068617320696e73756666696369656e742062616c616e636520746f20637265617465206120706f73744043616e6e6f7444656c657465506f73740009049c4163636f756e742063616e27742064656c65746520706f737420617420746865206d6f6d656e74048c44697363757373696f6e206d6f64756c6520707265646566696e6564206572726f72739509085870616c6c65745f70726f706f73616c735f636f646578144572726f72040454000168545369676e616c50726f706f73616c4973456d707479000004a050726f7669646564207465787420666f7220746578742070726f706f73616c20697320656d7074795852756e74696d6550726f706f73616c4973456d707479000104f050726f7669646564205741534d20636f646520666f72207468652072756e74696d6520757067726164652070726f706f73616c20697320656d70747990496e76616c696446756e64696e675265717565737450726f706f73616c42616c616e6365000204bc496e76616c69642062616c616e63652076616c756520666f7220746865207370656e64696e672070726f706f73616c54496e76616c696456616c696461746f72436f756e74000304f8496e76616c69642076616c696461746f7220636f756e7420666f722074686520277365742076616c696461746f7220636f756e74272070726f706f73616c4452657175697265526f6f744f726967696e000404845265717569726520726f6f74206f726967696e20696e2065787472696e73696373a8496e76616c6964436f756e63696c456c656374696f6e506172616d65746572436f756e63696c53697a65000504c4496e76616c696420636f756e63696c20656c656374696f6e20706172616d65746572202d20636f756e63696c5f73697a65b4496e76616c6964436f756e63696c456c656374696f6e506172616d6574657243616e6469646163794c696d6974000604d0496e76616c696420636f756e63696c20656c656374696f6e20706172616d65746572202d2063616e6469646163792d6c696d6974b4496e76616c6964436f756e63696c456c656374696f6e506172616d657465724d696e566f74696e675374616b65000704d4496e76616c696420636f756e63696c20656c656374696f6e20706172616d65746572202d206d696e2d766f74696e675f7374616b65b8496e76616c6964436f756e63696c456c656374696f6e506172616d657465724e65775465726d4475726174696f6e000804d8496e76616c696420636f756e63696c20656c656374696f6e20706172616d65746572202d206e65775f7465726d5f6475726174696f6eb8496e76616c6964436f756e63696c456c656374696f6e506172616d657465724d696e436f756e63696c5374616b65000904d8496e76616c696420636f756e63696c20656c656374696f6e20706172616d65746572202d206d696e5f636f756e63696c5f7374616b65b8496e76616c6964436f756e63696c456c656374696f6e506172616d6574657252657665616c696e67506572696f64000a04d4496e76616c696420636f756e63696c20656c656374696f6e20706172616d65746572202d2072657665616c696e675f706572696f64ac496e76616c6964436f756e63696c456c656374696f6e506172616d65746572566f74696e67506572696f64000b04c8496e76616c696420636f756e63696c20656c656374696f6e20706172616d65746572202d20766f74696e675f706572696f64bc496e76616c6964436f756e63696c456c656374696f6e506172616d65746572416e6e6f756e63696e67506572696f64000c04d8496e76616c696420636f756e63696c20656c656374696f6e20706172616d65746572202d20616e6e6f756e63696e675f706572696f6484496e76616c6964576f726b696e6747726f75704275646765744361706163697479000d04bc496e76616c696420776f726b696e672067726f75702062756467657420636170616369747920706172616d65746572a0496e76616c69645365744c656164506172616d6574657243616e6e6f744265436f756e63696c6f72000e042d01496e76616c69642027736574206c6561642070726f706f73616c2720706172616d65746572202d2070726f706f736564206c6561642063616e6e6f74206265206120636f756e63696c6f724c536c617368696e675374616b6549735a65726f000f042101496e76616c69642027736c617368207374616b652070726f706f73616c2720706172616d65746572202d2063616e6e6f7420736c617368206279207a65726f2062616c616e63652e5444656372656173696e675374616b6549735a65726f0010043901496e76616c696420276465637265617365207374616b652070726f706f73616c2720706172616d65746572202d2063616e6e6f74206465637265617365206279207a65726f2062616c616e63652e80496e73756666696369656e7446756e6473466f724275646765745570646174650011041d01496e73756666696369656e742066756e647320666f72202755706461746520576f726b696e672047726f757020427564676574272070726f706f73616c20657865637574696f6eb0496e76616c696446756e64696e675265717565737450726f706f73616c4e756d6265724f664163636f756e740012045101496e76616c6964206e756d626572206f66206163636f756e747320726563696576696e672066756e64696e67207265717565737420666f72202746756e64696e672052657175657374272070726f706f73616c2eb0496e76616c696446756e64696e675265717565737450726f706f73616c52657065617465644163636f756e74001304bc5265706561746564206163636f756e7420696e202746756e64696e672052657175657374272070726f706f73616c2ee0496e76616c69644368616e6e656c5061796f75747350726f706f73616c4d696e436173686f7574457863656564734d6178436173686f7574001404e50154686520737065636966696564206d696e206368616e6e656c20636173686f75742069732067726561746572207468616e2074686520737065636966696564206d6178206368616e6e656c20636173686f757420696e2060557064617465204368616e6e656c205061796f757473602070726f706f73616c2e4c496e76616c69644c656164576f726b657249640015049050726f7669646564206c65616420776f726b6572206964206973206e6f742076616c696450496e76616c69644c6561644f70656e696e6749640016049450726f7669646564206c656164206f70656e696e67206964206973206e6f742076616c696460496e76616c69644c6561644170706c69636174696f6e4964001704a450726f7669646564206c656164206170706c69636174696f6e206964206973206e6f742076616c696444496e76616c696450726f706f73616c49640018048450726f76696465642070726f706f73616c206964206973206e6f742076616c69643c41726974686d657469634572726f720019043c41726974686d656963204572726f720478436f646578206d6f64756c6520707265646566696e6564206572726f727399090c5070616c6c65745f776f726b696e675f67726f75701474797065731c4f70656e696e670c2c426c6f636b4e756d62657201101c42616c616e636501181048617368012c001801306f70656e696e675f747970657d03012c4f70656e696e675479706500011c6372656174656410012c426c6f636b4e756d6265720001406465736372697074696f6e5f686173682c0110486173680001307374616b655f706f6c696379610301845374616b65506f6c6963793c426c6f636b4e756d6265722c2042616c616e63653e0001407265776172645f7065725f626c6f636b4501013c4f7074696f6e3c42616c616e63653e0001386372656174696f6e5f7374616b6518011c42616c616e636500009d090c5070616c6c65745f776f726b696e675f67726f7570147479706573384a6f624170706c69636174696f6e0c244163636f756e7449640100204d656d626572496401281048617368012c0018013c726f6c655f6163636f756e745f69640001244163636f756e7449640001447265776172645f6163636f756e745f69640001244163636f756e7449640001487374616b696e675f6163636f756e745f69640001244163636f756e7449640001246d656d6265725f69642801204d656d62657249640001406465736372697074696f6e5f686173682c0110486173680001286f70656e696e675f69642801244f70656e696e6749640000a1090c5070616c6c65745f776f726b696e675f67726f75701474797065732c47726f7570576f726b657210244163636f756e7449640100204d656d626572496401282c426c6f636b4e756d62657201101c42616c616e63650118002401246d656d6265725f69642801204d656d626572496400013c726f6c655f6163636f756e745f69640001244163636f756e7449640001487374616b696e675f6163636f756e745f69640001244163636f756e7449640001447265776172645f6163636f756e745f69640001244163636f756e744964000148737461727465645f6c656176696e675f61740102014c4f7074696f6e3c426c6f636b4e756d6265723e0001506a6f625f756e7374616b696e675f706572696f6410012c426c6f636b4e756d6265720001407265776172645f7065725f626c6f636b4501013c4f7074696f6e3c42616c616e63653e0001346d69737365645f7265776172644501013c4f7074696f6e3c42616c616e63653e000128637265617465645f617410012c426c6f636b4e756d6265720000a5090c5070616c6c65745f776f726b696e675f67726f7570186572726f7273144572726f720804540004490001803c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f7729605374616b6542616c616e636543616e6e6f7442655a65726f0001049850726f7669646564207374616b652062616c616e63652063616e6e6f74206265207a65726f2e4c4f70656e696e67446f65734e6f7445786973740002045c4f70656e696e6720646f6573206e6f742065786973742e6443616e6e6f74486972654d756c7469706c654c656164657273000304bc43616e6e6f742066696c6c206f70656e696e672077697468206d756c7469706c65206170706c69636174696f6e732e74576f726b65724170706c69636174696f6e446f65734e6f74457869737400040488576f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e744d6178416374697665576f726b65724e756d626572457863656564656400050488576f726b696e672067726f75702073697a65206c696d69742065786365656465642e9c5375636365737366756c576f726b65724170706c69636174696f6e446f65734e6f744578697374000604b45375636365737366756c20776f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e8043616e6e6f74486972654c65616465725768656e4c6561646572457869737473000704c45468657265206973206c656164657220616c72656164792c2063616e6e6f74206869726520616e6f74686572206f6e652e4049734e6f744c6561644163636f756e740008044c4e6f742061206c656164206163636f756e742e4443757272656e744c6561644e6f745365740009046043757272656e74206c656164206973206e6f74207365742e48576f726b6572446f65734e6f744578697374000a0458576f726b657220646f6573206e6f742065786973742e4c496e76616c69644d656d6265724f726967696e000b0470496e76616c6964206f726967696e20666f722061206d656d6265722e705369676e657249734e6f74576f726b6572526f6c654163636f756e74000c04885369676e6572206973206e6f7420776f726b657220726f6c65206163636f756e742e4842656c6f774d696e696d756d5374616b6573000d04885374616b696e67206c657373207468616e20746865206c6f77657220626f756e642e7c496e73756666696369656e7442616c616e6365546f436f7665725374616b65000e0490496e73756666696369656e742062616c616e636520746f20636f766572207374616b652e884170706c69636174696f6e5374616b65446f65736e744d617463684f70656e696e67000f04d84170706c69636174696f6e207374616b65206973206c657373207468616e207265717569726564206f70656e696e67207374616b652e504f726967696e49734e6f744170706c6963616e74001004604f726967696e206973206e6f74206170706c6963616e742e3c576f726b657249734c656176696e6700110498496e76616c6964206f7065726174696f6e202d20776f726b6572206973206c656176696e672e5043616e6e6f74526577617264576974685a65726f0012046452657761726420636f756c64206e6f74206265207a65726f2e78496e76616c69645374616b696e674163636f756e74466f724d656d626572001304ac5374616b696e67206163636f756e7420646f65736e27742062656c6f6e6720746f2061206d656d6265722e5c436f6e666c6963745374616b65734f6e4163636f756e74001404b05374616b696e67206163636f756e7420636f6e7461696e7320636f6e666c696374696e67207374616b65732e44576f726b65724861734e6f5265776172640015047c576f726b657220686173206e6f20726563757272696e67207265776172642e78556e7374616b696e67506572696f644c6573735468616e4d696e696d756d001604090153706563696669656420756e7374616b696e6720706572696f64206973206c657373207468656e206d696e696d756d2073657420666f72207468652067726f75702e3c43616e6e6f745370656e645a65726f00170460496e76616c6964207370656e64696e6720616d6f756e742e74496e73756666696369656e74427564676574466f725370656e64696e67001804a449742773206e6f7420656e6f7567682062756467657420666f722074686973207370656e64696e672e584e6f4170706c69636174696f6e7350726f7669646564001904bc43616e6e6f742066696c6c206f70656e696e67202d206e6f206170706c69636174696f6e732070726f76696465642ea043616e6e6f7444656372656173655374616b6544656c7461477265617465725468616e5374616b65001a04fc43616e6e6f74206465637265617365207374616b65202d207374616b652064656c74612067726561746572207468616e20696e697469616c207374616b652e644170706c69636174696f6e734e6f74466f724f70656e696e67001b04f0547279696e6720746f2066696c6c206f70656e696e67207769746820616e206170706c69636174696f6e20666f72206f74686572206f70656e696e6764576f726b657253746f7261676556616c7565546f6f4c6f6e67001c0480576f726b65722073746f72616765207465787420697320746f6f206c6f6e672e70496e73756666696369656e74546f6b656e73466f7246756e64696e67001d04f8496e73756666696369656e7420746f6b656e7320666f722066756e64696e6720286f6e206d656d62657220636f6e74726f6c6c6572206163636f756e7429445a65726f546f6b656e7346756e64696e67001e047c547279696e6720746f2066756e642077697468207a65726f20746f6b656e7378496e73756666696369656e7442616c616e6365466f725472616e73666572001f04b443616e6e6f742077697468647261773a20696e73756666696369656e74206275646765742062616c616e63652e048c44697363757373696f6e206d6f64756c6520707265646566696e6564206572726f7273a9090c5070616c6c65745f776f726b696e675f67726f7570186572726f7273144572726f720804540004490001803c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f7729605374616b6542616c616e636543616e6e6f7442655a65726f0001049850726f7669646564207374616b652062616c616e63652063616e6e6f74206265207a65726f2e4c4f70656e696e67446f65734e6f7445786973740002045c4f70656e696e6720646f6573206e6f742065786973742e6443616e6e6f74486972654d756c7469706c654c656164657273000304bc43616e6e6f742066696c6c206f70656e696e672077697468206d756c7469706c65206170706c69636174696f6e732e74576f726b65724170706c69636174696f6e446f65734e6f74457869737400040488576f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e744d6178416374697665576f726b65724e756d626572457863656564656400050488576f726b696e672067726f75702073697a65206c696d69742065786365656465642e9c5375636365737366756c576f726b65724170706c69636174696f6e446f65734e6f744578697374000604b45375636365737366756c20776f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e8043616e6e6f74486972654c65616465725768656e4c6561646572457869737473000704c45468657265206973206c656164657220616c72656164792c2063616e6e6f74206869726520616e6f74686572206f6e652e4049734e6f744c6561644163636f756e740008044c4e6f742061206c656164206163636f756e742e4443757272656e744c6561644e6f745365740009046043757272656e74206c656164206973206e6f74207365742e48576f726b6572446f65734e6f744578697374000a0458576f726b657220646f6573206e6f742065786973742e4c496e76616c69644d656d6265724f726967696e000b0470496e76616c6964206f726967696e20666f722061206d656d6265722e705369676e657249734e6f74576f726b6572526f6c654163636f756e74000c04885369676e6572206973206e6f7420776f726b657220726f6c65206163636f756e742e4842656c6f774d696e696d756d5374616b6573000d04885374616b696e67206c657373207468616e20746865206c6f77657220626f756e642e7c496e73756666696369656e7442616c616e6365546f436f7665725374616b65000e0490496e73756666696369656e742062616c616e636520746f20636f766572207374616b652e884170706c69636174696f6e5374616b65446f65736e744d617463684f70656e696e67000f04d84170706c69636174696f6e207374616b65206973206c657373207468616e207265717569726564206f70656e696e67207374616b652e504f726967696e49734e6f744170706c6963616e74001004604f726967696e206973206e6f74206170706c6963616e742e3c576f726b657249734c656176696e6700110498496e76616c6964206f7065726174696f6e202d20776f726b6572206973206c656176696e672e5043616e6e6f74526577617264576974685a65726f0012046452657761726420636f756c64206e6f74206265207a65726f2e78496e76616c69645374616b696e674163636f756e74466f724d656d626572001304ac5374616b696e67206163636f756e7420646f65736e27742062656c6f6e6720746f2061206d656d6265722e5c436f6e666c6963745374616b65734f6e4163636f756e74001404b05374616b696e67206163636f756e7420636f6e7461696e7320636f6e666c696374696e67207374616b65732e44576f726b65724861734e6f5265776172640015047c576f726b657220686173206e6f20726563757272696e67207265776172642e78556e7374616b696e67506572696f644c6573735468616e4d696e696d756d001604090153706563696669656420756e7374616b696e6720706572696f64206973206c657373207468656e206d696e696d756d2073657420666f72207468652067726f75702e3c43616e6e6f745370656e645a65726f00170460496e76616c6964207370656e64696e6720616d6f756e742e74496e73756666696369656e74427564676574466f725370656e64696e67001804a449742773206e6f7420656e6f7567682062756467657420666f722074686973207370656e64696e672e584e6f4170706c69636174696f6e7350726f7669646564001904bc43616e6e6f742066696c6c206f70656e696e67202d206e6f206170706c69636174696f6e732070726f76696465642ea043616e6e6f7444656372656173655374616b6544656c7461477265617465725468616e5374616b65001a04fc43616e6e6f74206465637265617365207374616b65202d207374616b652064656c74612067726561746572207468616e20696e697469616c207374616b652e644170706c69636174696f6e734e6f74466f724f70656e696e67001b04f0547279696e6720746f2066696c6c206f70656e696e67207769746820616e206170706c69636174696f6e20666f72206f74686572206f70656e696e6764576f726b657253746f7261676556616c7565546f6f4c6f6e67001c0480576f726b65722073746f72616765207465787420697320746f6f206c6f6e672e70496e73756666696369656e74546f6b656e73466f7246756e64696e67001d04f8496e73756666696369656e7420746f6b656e7320666f722066756e64696e6720286f6e206d656d62657220636f6e74726f6c6c6572206163636f756e7429445a65726f546f6b656e7346756e64696e67001e047c547279696e6720746f2066756e642077697468207a65726f20746f6b656e7378496e73756666696369656e7442616c616e6365466f725472616e73666572001f04b443616e6e6f742077697468647261773a20696e73756666696369656e74206275646765742062616c616e63652e048c44697363757373696f6e206d6f64756c6520707265646566696e6564206572726f7273ad090c5070616c6c65745f776f726b696e675f67726f7570186572726f7273144572726f720804540004490001803c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f7729605374616b6542616c616e636543616e6e6f7442655a65726f0001049850726f7669646564207374616b652062616c616e63652063616e6e6f74206265207a65726f2e4c4f70656e696e67446f65734e6f7445786973740002045c4f70656e696e6720646f6573206e6f742065786973742e6443616e6e6f74486972654d756c7469706c654c656164657273000304bc43616e6e6f742066696c6c206f70656e696e672077697468206d756c7469706c65206170706c69636174696f6e732e74576f726b65724170706c69636174696f6e446f65734e6f74457869737400040488576f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e744d6178416374697665576f726b65724e756d626572457863656564656400050488576f726b696e672067726f75702073697a65206c696d69742065786365656465642e9c5375636365737366756c576f726b65724170706c69636174696f6e446f65734e6f744578697374000604b45375636365737366756c20776f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e8043616e6e6f74486972654c65616465725768656e4c6561646572457869737473000704c45468657265206973206c656164657220616c72656164792c2063616e6e6f74206869726520616e6f74686572206f6e652e4049734e6f744c6561644163636f756e740008044c4e6f742061206c656164206163636f756e742e4443757272656e744c6561644e6f745365740009046043757272656e74206c656164206973206e6f74207365742e48576f726b6572446f65734e6f744578697374000a0458576f726b657220646f6573206e6f742065786973742e4c496e76616c69644d656d6265724f726967696e000b0470496e76616c6964206f726967696e20666f722061206d656d6265722e705369676e657249734e6f74576f726b6572526f6c654163636f756e74000c04885369676e6572206973206e6f7420776f726b657220726f6c65206163636f756e742e4842656c6f774d696e696d756d5374616b6573000d04885374616b696e67206c657373207468616e20746865206c6f77657220626f756e642e7c496e73756666696369656e7442616c616e6365546f436f7665725374616b65000e0490496e73756666696369656e742062616c616e636520746f20636f766572207374616b652e884170706c69636174696f6e5374616b65446f65736e744d617463684f70656e696e67000f04d84170706c69636174696f6e207374616b65206973206c657373207468616e207265717569726564206f70656e696e67207374616b652e504f726967696e49734e6f744170706c6963616e74001004604f726967696e206973206e6f74206170706c6963616e742e3c576f726b657249734c656176696e6700110498496e76616c6964206f7065726174696f6e202d20776f726b6572206973206c656176696e672e5043616e6e6f74526577617264576974685a65726f0012046452657761726420636f756c64206e6f74206265207a65726f2e78496e76616c69645374616b696e674163636f756e74466f724d656d626572001304ac5374616b696e67206163636f756e7420646f65736e27742062656c6f6e6720746f2061206d656d6265722e5c436f6e666c6963745374616b65734f6e4163636f756e74001404b05374616b696e67206163636f756e7420636f6e7461696e7320636f6e666c696374696e67207374616b65732e44576f726b65724861734e6f5265776172640015047c576f726b657220686173206e6f20726563757272696e67207265776172642e78556e7374616b696e67506572696f644c6573735468616e4d696e696d756d001604090153706563696669656420756e7374616b696e6720706572696f64206973206c657373207468656e206d696e696d756d2073657420666f72207468652067726f75702e3c43616e6e6f745370656e645a65726f00170460496e76616c6964207370656e64696e6720616d6f756e742e74496e73756666696369656e74427564676574466f725370656e64696e67001804a449742773206e6f7420656e6f7567682062756467657420666f722074686973207370656e64696e672e584e6f4170706c69636174696f6e7350726f7669646564001904bc43616e6e6f742066696c6c206f70656e696e67202d206e6f206170706c69636174696f6e732070726f76696465642ea043616e6e6f7444656372656173655374616b6544656c7461477265617465725468616e5374616b65001a04fc43616e6e6f74206465637265617365207374616b65202d207374616b652064656c74612067726561746572207468616e20696e697469616c207374616b652e644170706c69636174696f6e734e6f74466f724f70656e696e67001b04f0547279696e6720746f2066696c6c206f70656e696e67207769746820616e206170706c69636174696f6e20666f72206f74686572206f70656e696e6764576f726b657253746f7261676556616c7565546f6f4c6f6e67001c0480576f726b65722073746f72616765207465787420697320746f6f206c6f6e672e70496e73756666696369656e74546f6b656e73466f7246756e64696e67001d04f8496e73756666696369656e7420746f6b656e7320666f722066756e64696e6720286f6e206d656d62657220636f6e74726f6c6c6572206163636f756e7429445a65726f546f6b656e7346756e64696e67001e047c547279696e6720746f2066756e642077697468207a65726f20746f6b656e7378496e73756666696369656e7442616c616e6365466f725472616e73666572001f04b443616e6e6f742077697468647261773a20696e73756666696369656e74206275646765742062616c616e63652e048c44697363757373696f6e206d6f64756c6520707265646566696e6564206572726f7273b1090c5070616c6c65745f776f726b696e675f67726f7570186572726f7273144572726f720804540004490001803c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f7729605374616b6542616c616e636543616e6e6f7442655a65726f0001049850726f7669646564207374616b652062616c616e63652063616e6e6f74206265207a65726f2e4c4f70656e696e67446f65734e6f7445786973740002045c4f70656e696e6720646f6573206e6f742065786973742e6443616e6e6f74486972654d756c7469706c654c656164657273000304bc43616e6e6f742066696c6c206f70656e696e672077697468206d756c7469706c65206170706c69636174696f6e732e74576f726b65724170706c69636174696f6e446f65734e6f74457869737400040488576f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e744d6178416374697665576f726b65724e756d626572457863656564656400050488576f726b696e672067726f75702073697a65206c696d69742065786365656465642e9c5375636365737366756c576f726b65724170706c69636174696f6e446f65734e6f744578697374000604b45375636365737366756c20776f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e8043616e6e6f74486972654c65616465725768656e4c6561646572457869737473000704c45468657265206973206c656164657220616c72656164792c2063616e6e6f74206869726520616e6f74686572206f6e652e4049734e6f744c6561644163636f756e740008044c4e6f742061206c656164206163636f756e742e4443757272656e744c6561644e6f745365740009046043757272656e74206c656164206973206e6f74207365742e48576f726b6572446f65734e6f744578697374000a0458576f726b657220646f6573206e6f742065786973742e4c496e76616c69644d656d6265724f726967696e000b0470496e76616c6964206f726967696e20666f722061206d656d6265722e705369676e657249734e6f74576f726b6572526f6c654163636f756e74000c04885369676e6572206973206e6f7420776f726b657220726f6c65206163636f756e742e4842656c6f774d696e696d756d5374616b6573000d04885374616b696e67206c657373207468616e20746865206c6f77657220626f756e642e7c496e73756666696369656e7442616c616e6365546f436f7665725374616b65000e0490496e73756666696369656e742062616c616e636520746f20636f766572207374616b652e884170706c69636174696f6e5374616b65446f65736e744d617463684f70656e696e67000f04d84170706c69636174696f6e207374616b65206973206c657373207468616e207265717569726564206f70656e696e67207374616b652e504f726967696e49734e6f744170706c6963616e74001004604f726967696e206973206e6f74206170706c6963616e742e3c576f726b657249734c656176696e6700110498496e76616c6964206f7065726174696f6e202d20776f726b6572206973206c656176696e672e5043616e6e6f74526577617264576974685a65726f0012046452657761726420636f756c64206e6f74206265207a65726f2e78496e76616c69645374616b696e674163636f756e74466f724d656d626572001304ac5374616b696e67206163636f756e7420646f65736e27742062656c6f6e6720746f2061206d656d6265722e5c436f6e666c6963745374616b65734f6e4163636f756e74001404b05374616b696e67206163636f756e7420636f6e7461696e7320636f6e666c696374696e67207374616b65732e44576f726b65724861734e6f5265776172640015047c576f726b657220686173206e6f20726563757272696e67207265776172642e78556e7374616b696e67506572696f644c6573735468616e4d696e696d756d001604090153706563696669656420756e7374616b696e6720706572696f64206973206c657373207468656e206d696e696d756d2073657420666f72207468652067726f75702e3c43616e6e6f745370656e645a65726f00170460496e76616c6964207370656e64696e6720616d6f756e742e74496e73756666696369656e74427564676574466f725370656e64696e67001804a449742773206e6f7420656e6f7567682062756467657420666f722074686973207370656e64696e672e584e6f4170706c69636174696f6e7350726f7669646564001904bc43616e6e6f742066696c6c206f70656e696e67202d206e6f206170706c69636174696f6e732070726f76696465642ea043616e6e6f7444656372656173655374616b6544656c7461477265617465725468616e5374616b65001a04fc43616e6e6f74206465637265617365207374616b65202d207374616b652064656c74612067726561746572207468616e20696e697469616c207374616b652e644170706c69636174696f6e734e6f74466f724f70656e696e67001b04f0547279696e6720746f2066696c6c206f70656e696e67207769746820616e206170706c69636174696f6e20666f72206f74686572206f70656e696e6764576f726b657253746f7261676556616c7565546f6f4c6f6e67001c0480576f726b65722073746f72616765207465787420697320746f6f206c6f6e672e70496e73756666696369656e74546f6b656e73466f7246756e64696e67001d04f8496e73756666696369656e7420746f6b656e7320666f722066756e64696e6720286f6e206d656d62657220636f6e74726f6c6c6572206163636f756e7429445a65726f546f6b656e7346756e64696e67001e047c547279696e6720746f2066756e642077697468207a65726f20746f6b656e7378496e73756666696369656e7442616c616e6365466f725472616e73666572001f04b443616e6e6f742077697468647261773a20696e73756666696369656e74206275646765742062616c616e63652e048c44697363757373696f6e206d6f64756c6520707265646566696e6564206572726f7273b5090c5070616c6c65745f776f726b696e675f67726f7570186572726f7273144572726f720804540004490001803c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f7729605374616b6542616c616e636543616e6e6f7442655a65726f0001049850726f7669646564207374616b652062616c616e63652063616e6e6f74206265207a65726f2e4c4f70656e696e67446f65734e6f7445786973740002045c4f70656e696e6720646f6573206e6f742065786973742e6443616e6e6f74486972654d756c7469706c654c656164657273000304bc43616e6e6f742066696c6c206f70656e696e672077697468206d756c7469706c65206170706c69636174696f6e732e74576f726b65724170706c69636174696f6e446f65734e6f74457869737400040488576f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e744d6178416374697665576f726b65724e756d626572457863656564656400050488576f726b696e672067726f75702073697a65206c696d69742065786365656465642e9c5375636365737366756c576f726b65724170706c69636174696f6e446f65734e6f744578697374000604b45375636365737366756c20776f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e8043616e6e6f74486972654c65616465725768656e4c6561646572457869737473000704c45468657265206973206c656164657220616c72656164792c2063616e6e6f74206869726520616e6f74686572206f6e652e4049734e6f744c6561644163636f756e740008044c4e6f742061206c656164206163636f756e742e4443757272656e744c6561644e6f745365740009046043757272656e74206c656164206973206e6f74207365742e48576f726b6572446f65734e6f744578697374000a0458576f726b657220646f6573206e6f742065786973742e4c496e76616c69644d656d6265724f726967696e000b0470496e76616c6964206f726967696e20666f722061206d656d6265722e705369676e657249734e6f74576f726b6572526f6c654163636f756e74000c04885369676e6572206973206e6f7420776f726b657220726f6c65206163636f756e742e4842656c6f774d696e696d756d5374616b6573000d04885374616b696e67206c657373207468616e20746865206c6f77657220626f756e642e7c496e73756666696369656e7442616c616e6365546f436f7665725374616b65000e0490496e73756666696369656e742062616c616e636520746f20636f766572207374616b652e884170706c69636174696f6e5374616b65446f65736e744d617463684f70656e696e67000f04d84170706c69636174696f6e207374616b65206973206c657373207468616e207265717569726564206f70656e696e67207374616b652e504f726967696e49734e6f744170706c6963616e74001004604f726967696e206973206e6f74206170706c6963616e742e3c576f726b657249734c656176696e6700110498496e76616c6964206f7065726174696f6e202d20776f726b6572206973206c656176696e672e5043616e6e6f74526577617264576974685a65726f0012046452657761726420636f756c64206e6f74206265207a65726f2e78496e76616c69645374616b696e674163636f756e74466f724d656d626572001304ac5374616b696e67206163636f756e7420646f65736e27742062656c6f6e6720746f2061206d656d6265722e5c436f6e666c6963745374616b65734f6e4163636f756e74001404b05374616b696e67206163636f756e7420636f6e7461696e7320636f6e666c696374696e67207374616b65732e44576f726b65724861734e6f5265776172640015047c576f726b657220686173206e6f20726563757272696e67207265776172642e78556e7374616b696e67506572696f644c6573735468616e4d696e696d756d001604090153706563696669656420756e7374616b696e6720706572696f64206973206c657373207468656e206d696e696d756d2073657420666f72207468652067726f75702e3c43616e6e6f745370656e645a65726f00170460496e76616c6964207370656e64696e6720616d6f756e742e74496e73756666696369656e74427564676574466f725370656e64696e67001804a449742773206e6f7420656e6f7567682062756467657420666f722074686973207370656e64696e672e584e6f4170706c69636174696f6e7350726f7669646564001904bc43616e6e6f742066696c6c206f70656e696e67202d206e6f206170706c69636174696f6e732070726f76696465642ea043616e6e6f7444656372656173655374616b6544656c7461477265617465725468616e5374616b65001a04fc43616e6e6f74206465637265617365207374616b65202d207374616b652064656c74612067726561746572207468616e20696e697469616c207374616b652e644170706c69636174696f6e734e6f74466f724f70656e696e67001b04f0547279696e6720746f2066696c6c206f70656e696e67207769746820616e206170706c69636174696f6e20666f72206f74686572206f70656e696e6764576f726b657253746f7261676556616c7565546f6f4c6f6e67001c0480576f726b65722073746f72616765207465787420697320746f6f206c6f6e672e70496e73756666696369656e74546f6b656e73466f7246756e64696e67001d04f8496e73756666696369656e7420746f6b656e7320666f722066756e64696e6720286f6e206d656d62657220636f6e74726f6c6c6572206163636f756e7429445a65726f546f6b656e7346756e64696e67001e047c547279696e6720746f2066756e642077697468207a65726f20746f6b656e7378496e73756666696369656e7442616c616e6365466f725472616e73666572001f04b443616e6e6f742077697468647261773a20696e73756666696369656e74206275646765742062616c616e63652e048c44697363757373696f6e206d6f64756c6520707265646566696e6564206572726f7273b9090c5070616c6c65745f776f726b696e675f67726f7570186572726f7273144572726f720804540004490001803c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f7729605374616b6542616c616e636543616e6e6f7442655a65726f0001049850726f7669646564207374616b652062616c616e63652063616e6e6f74206265207a65726f2e4c4f70656e696e67446f65734e6f7445786973740002045c4f70656e696e6720646f6573206e6f742065786973742e6443616e6e6f74486972654d756c7469706c654c656164657273000304bc43616e6e6f742066696c6c206f70656e696e672077697468206d756c7469706c65206170706c69636174696f6e732e74576f726b65724170706c69636174696f6e446f65734e6f74457869737400040488576f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e744d6178416374697665576f726b65724e756d626572457863656564656400050488576f726b696e672067726f75702073697a65206c696d69742065786365656465642e9c5375636365737366756c576f726b65724170706c69636174696f6e446f65734e6f744578697374000604b45375636365737366756c20776f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e8043616e6e6f74486972654c65616465725768656e4c6561646572457869737473000704c45468657265206973206c656164657220616c72656164792c2063616e6e6f74206869726520616e6f74686572206f6e652e4049734e6f744c6561644163636f756e740008044c4e6f742061206c656164206163636f756e742e4443757272656e744c6561644e6f745365740009046043757272656e74206c656164206973206e6f74207365742e48576f726b6572446f65734e6f744578697374000a0458576f726b657220646f6573206e6f742065786973742e4c496e76616c69644d656d6265724f726967696e000b0470496e76616c6964206f726967696e20666f722061206d656d6265722e705369676e657249734e6f74576f726b6572526f6c654163636f756e74000c04885369676e6572206973206e6f7420776f726b657220726f6c65206163636f756e742e4842656c6f774d696e696d756d5374616b6573000d04885374616b696e67206c657373207468616e20746865206c6f77657220626f756e642e7c496e73756666696369656e7442616c616e6365546f436f7665725374616b65000e0490496e73756666696369656e742062616c616e636520746f20636f766572207374616b652e884170706c69636174696f6e5374616b65446f65736e744d617463684f70656e696e67000f04d84170706c69636174696f6e207374616b65206973206c657373207468616e207265717569726564206f70656e696e67207374616b652e504f726967696e49734e6f744170706c6963616e74001004604f726967696e206973206e6f74206170706c6963616e742e3c576f726b657249734c656176696e6700110498496e76616c6964206f7065726174696f6e202d20776f726b6572206973206c656176696e672e5043616e6e6f74526577617264576974685a65726f0012046452657761726420636f756c64206e6f74206265207a65726f2e78496e76616c69645374616b696e674163636f756e74466f724d656d626572001304ac5374616b696e67206163636f756e7420646f65736e27742062656c6f6e6720746f2061206d656d6265722e5c436f6e666c6963745374616b65734f6e4163636f756e74001404b05374616b696e67206163636f756e7420636f6e7461696e7320636f6e666c696374696e67207374616b65732e44576f726b65724861734e6f5265776172640015047c576f726b657220686173206e6f20726563757272696e67207265776172642e78556e7374616b696e67506572696f644c6573735468616e4d696e696d756d001604090153706563696669656420756e7374616b696e6720706572696f64206973206c657373207468656e206d696e696d756d2073657420666f72207468652067726f75702e3c43616e6e6f745370656e645a65726f00170460496e76616c6964207370656e64696e6720616d6f756e742e74496e73756666696369656e74427564676574466f725370656e64696e67001804a449742773206e6f7420656e6f7567682062756467657420666f722074686973207370656e64696e672e584e6f4170706c69636174696f6e7350726f7669646564001904bc43616e6e6f742066696c6c206f70656e696e67202d206e6f206170706c69636174696f6e732070726f76696465642ea043616e6e6f7444656372656173655374616b6544656c7461477265617465725468616e5374616b65001a04fc43616e6e6f74206465637265617365207374616b65202d207374616b652064656c74612067726561746572207468616e20696e697469616c207374616b652e644170706c69636174696f6e734e6f74466f724f70656e696e67001b04f0547279696e6720746f2066696c6c206f70656e696e67207769746820616e206170706c69636174696f6e20666f72206f74686572206f70656e696e6764576f726b657253746f7261676556616c7565546f6f4c6f6e67001c0480576f726b65722073746f72616765207465787420697320746f6f206c6f6e672e70496e73756666696369656e74546f6b656e73466f7246756e64696e67001d04f8496e73756666696369656e7420746f6b656e7320666f722066756e64696e6720286f6e206d656d62657220636f6e74726f6c6c6572206163636f756e7429445a65726f546f6b656e7346756e64696e67001e047c547279696e6720746f2066756e642077697468207a65726f20746f6b656e7378496e73756666696369656e7442616c616e6365466f725472616e73666572001f04b443616e6e6f742077697468647261773a20696e73756666696369656e74206275646765742062616c616e63652e048c44697363757373696f6e206d6f64756c6520707265646566696e6564206572726f7273bd090c5070616c6c65745f776f726b696e675f67726f7570186572726f7273144572726f720804540004490001803c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f7729605374616b6542616c616e636543616e6e6f7442655a65726f0001049850726f7669646564207374616b652062616c616e63652063616e6e6f74206265207a65726f2e4c4f70656e696e67446f65734e6f7445786973740002045c4f70656e696e6720646f6573206e6f742065786973742e6443616e6e6f74486972654d756c7469706c654c656164657273000304bc43616e6e6f742066696c6c206f70656e696e672077697468206d756c7469706c65206170706c69636174696f6e732e74576f726b65724170706c69636174696f6e446f65734e6f74457869737400040488576f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e744d6178416374697665576f726b65724e756d626572457863656564656400050488576f726b696e672067726f75702073697a65206c696d69742065786365656465642e9c5375636365737366756c576f726b65724170706c69636174696f6e446f65734e6f744578697374000604b45375636365737366756c20776f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e8043616e6e6f74486972654c65616465725768656e4c6561646572457869737473000704c45468657265206973206c656164657220616c72656164792c2063616e6e6f74206869726520616e6f74686572206f6e652e4049734e6f744c6561644163636f756e740008044c4e6f742061206c656164206163636f756e742e4443757272656e744c6561644e6f745365740009046043757272656e74206c656164206973206e6f74207365742e48576f726b6572446f65734e6f744578697374000a0458576f726b657220646f6573206e6f742065786973742e4c496e76616c69644d656d6265724f726967696e000b0470496e76616c6964206f726967696e20666f722061206d656d6265722e705369676e657249734e6f74576f726b6572526f6c654163636f756e74000c04885369676e6572206973206e6f7420776f726b657220726f6c65206163636f756e742e4842656c6f774d696e696d756d5374616b6573000d04885374616b696e67206c657373207468616e20746865206c6f77657220626f756e642e7c496e73756666696369656e7442616c616e6365546f436f7665725374616b65000e0490496e73756666696369656e742062616c616e636520746f20636f766572207374616b652e884170706c69636174696f6e5374616b65446f65736e744d617463684f70656e696e67000f04d84170706c69636174696f6e207374616b65206973206c657373207468616e207265717569726564206f70656e696e67207374616b652e504f726967696e49734e6f744170706c6963616e74001004604f726967696e206973206e6f74206170706c6963616e742e3c576f726b657249734c656176696e6700110498496e76616c6964206f7065726174696f6e202d20776f726b6572206973206c656176696e672e5043616e6e6f74526577617264576974685a65726f0012046452657761726420636f756c64206e6f74206265207a65726f2e78496e76616c69645374616b696e674163636f756e74466f724d656d626572001304ac5374616b696e67206163636f756e7420646f65736e27742062656c6f6e6720746f2061206d656d6265722e5c436f6e666c6963745374616b65734f6e4163636f756e74001404b05374616b696e67206163636f756e7420636f6e7461696e7320636f6e666c696374696e67207374616b65732e44576f726b65724861734e6f5265776172640015047c576f726b657220686173206e6f20726563757272696e67207265776172642e78556e7374616b696e67506572696f644c6573735468616e4d696e696d756d001604090153706563696669656420756e7374616b696e6720706572696f64206973206c657373207468656e206d696e696d756d2073657420666f72207468652067726f75702e3c43616e6e6f745370656e645a65726f00170460496e76616c6964207370656e64696e6720616d6f756e742e74496e73756666696369656e74427564676574466f725370656e64696e67001804a449742773206e6f7420656e6f7567682062756467657420666f722074686973207370656e64696e672e584e6f4170706c69636174696f6e7350726f7669646564001904bc43616e6e6f742066696c6c206f70656e696e67202d206e6f206170706c69636174696f6e732070726f76696465642ea043616e6e6f7444656372656173655374616b6544656c7461477265617465725468616e5374616b65001a04fc43616e6e6f74206465637265617365207374616b65202d207374616b652064656c74612067726561746572207468616e20696e697469616c207374616b652e644170706c69636174696f6e734e6f74466f724f70656e696e67001b04f0547279696e6720746f2066696c6c206f70656e696e67207769746820616e206170706c69636174696f6e20666f72206f74686572206f70656e696e6764576f726b657253746f7261676556616c7565546f6f4c6f6e67001c0480576f726b65722073746f72616765207465787420697320746f6f206c6f6e672e70496e73756666696369656e74546f6b656e73466f7246756e64696e67001d04f8496e73756666696369656e7420746f6b656e7320666f722066756e64696e6720286f6e206d656d62657220636f6e74726f6c6c6572206163636f756e7429445a65726f546f6b656e7346756e64696e67001e047c547279696e6720746f2066756e642077697468207a65726f20746f6b656e7378496e73756666696369656e7442616c616e6365466f725472616e73666572001f04b443616e6e6f742077697468647261773a20696e73756666696369656e74206275646765742062616c616e63652e048c44697363757373696f6e206d6f64756c6520707265646566696e6564206572726f7273c1090c5070616c6c65745f776f726b696e675f67726f7570186572726f7273144572726f720804540004490001803c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f7729605374616b6542616c616e636543616e6e6f7442655a65726f0001049850726f7669646564207374616b652062616c616e63652063616e6e6f74206265207a65726f2e4c4f70656e696e67446f65734e6f7445786973740002045c4f70656e696e6720646f6573206e6f742065786973742e6443616e6e6f74486972654d756c7469706c654c656164657273000304bc43616e6e6f742066696c6c206f70656e696e672077697468206d756c7469706c65206170706c69636174696f6e732e74576f726b65724170706c69636174696f6e446f65734e6f74457869737400040488576f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e744d6178416374697665576f726b65724e756d626572457863656564656400050488576f726b696e672067726f75702073697a65206c696d69742065786365656465642e9c5375636365737366756c576f726b65724170706c69636174696f6e446f65734e6f744578697374000604b45375636365737366756c20776f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e8043616e6e6f74486972654c65616465725768656e4c6561646572457869737473000704c45468657265206973206c656164657220616c72656164792c2063616e6e6f74206869726520616e6f74686572206f6e652e4049734e6f744c6561644163636f756e740008044c4e6f742061206c656164206163636f756e742e4443757272656e744c6561644e6f745365740009046043757272656e74206c656164206973206e6f74207365742e48576f726b6572446f65734e6f744578697374000a0458576f726b657220646f6573206e6f742065786973742e4c496e76616c69644d656d6265724f726967696e000b0470496e76616c6964206f726967696e20666f722061206d656d6265722e705369676e657249734e6f74576f726b6572526f6c654163636f756e74000c04885369676e6572206973206e6f7420776f726b657220726f6c65206163636f756e742e4842656c6f774d696e696d756d5374616b6573000d04885374616b696e67206c657373207468616e20746865206c6f77657220626f756e642e7c496e73756666696369656e7442616c616e6365546f436f7665725374616b65000e0490496e73756666696369656e742062616c616e636520746f20636f766572207374616b652e884170706c69636174696f6e5374616b65446f65736e744d617463684f70656e696e67000f04d84170706c69636174696f6e207374616b65206973206c657373207468616e207265717569726564206f70656e696e67207374616b652e504f726967696e49734e6f744170706c6963616e74001004604f726967696e206973206e6f74206170706c6963616e742e3c576f726b657249734c656176696e6700110498496e76616c6964206f7065726174696f6e202d20776f726b6572206973206c656176696e672e5043616e6e6f74526577617264576974685a65726f0012046452657761726420636f756c64206e6f74206265207a65726f2e78496e76616c69645374616b696e674163636f756e74466f724d656d626572001304ac5374616b696e67206163636f756e7420646f65736e27742062656c6f6e6720746f2061206d656d6265722e5c436f6e666c6963745374616b65734f6e4163636f756e74001404b05374616b696e67206163636f756e7420636f6e7461696e7320636f6e666c696374696e67207374616b65732e44576f726b65724861734e6f5265776172640015047c576f726b657220686173206e6f20726563757272696e67207265776172642e78556e7374616b696e67506572696f644c6573735468616e4d696e696d756d001604090153706563696669656420756e7374616b696e6720706572696f64206973206c657373207468656e206d696e696d756d2073657420666f72207468652067726f75702e3c43616e6e6f745370656e645a65726f00170460496e76616c6964207370656e64696e6720616d6f756e742e74496e73756666696369656e74427564676574466f725370656e64696e67001804a449742773206e6f7420656e6f7567682062756467657420666f722074686973207370656e64696e672e584e6f4170706c69636174696f6e7350726f7669646564001904bc43616e6e6f742066696c6c206f70656e696e67202d206e6f206170706c69636174696f6e732070726f76696465642ea043616e6e6f7444656372656173655374616b6544656c7461477265617465725468616e5374616b65001a04fc43616e6e6f74206465637265617365207374616b65202d207374616b652064656c74612067726561746572207468616e20696e697469616c207374616b652e644170706c69636174696f6e734e6f74466f724f70656e696e67001b04f0547279696e6720746f2066696c6c206f70656e696e67207769746820616e206170706c69636174696f6e20666f72206f74686572206f70656e696e6764576f726b657253746f7261676556616c7565546f6f4c6f6e67001c0480576f726b65722073746f72616765207465787420697320746f6f206c6f6e672e70496e73756666696369656e74546f6b656e73466f7246756e64696e67001d04f8496e73756666696369656e7420746f6b656e7320666f722066756e64696e6720286f6e206d656d62657220636f6e74726f6c6c6572206163636f756e7429445a65726f546f6b656e7346756e64696e67001e047c547279696e6720746f2066756e642077697468207a65726f20746f6b656e7378496e73756666696369656e7442616c616e6365466f725472616e73666572001f04b443616e6e6f742077697468647261773a20696e73756666696369656e74206275646765742062616c616e63652e048c44697363757373696f6e206d6f64756c6520707265646566696e6564206572726f7273c5090c5070616c6c65745f776f726b696e675f67726f7570186572726f7273144572726f720804540004490001803c41726974686d657469634572726f72000004c8556e65787065637465642061726974686d65746963206572726f7220286f766572666c6f77202f20756e646572666c6f7729605374616b6542616c616e636543616e6e6f7442655a65726f0001049850726f7669646564207374616b652062616c616e63652063616e6e6f74206265207a65726f2e4c4f70656e696e67446f65734e6f7445786973740002045c4f70656e696e6720646f6573206e6f742065786973742e6443616e6e6f74486972654d756c7469706c654c656164657273000304bc43616e6e6f742066696c6c206f70656e696e672077697468206d756c7469706c65206170706c69636174696f6e732e74576f726b65724170706c69636174696f6e446f65734e6f74457869737400040488576f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e744d6178416374697665576f726b65724e756d626572457863656564656400050488576f726b696e672067726f75702073697a65206c696d69742065786365656465642e9c5375636365737366756c576f726b65724170706c69636174696f6e446f65734e6f744578697374000604b45375636365737366756c20776f726b6572206170706c69636174696f6e20646f6573206e6f742065786973742e8043616e6e6f74486972654c65616465725768656e4c6561646572457869737473000704c45468657265206973206c656164657220616c72656164792c2063616e6e6f74206869726520616e6f74686572206f6e652e4049734e6f744c6561644163636f756e740008044c4e6f742061206c656164206163636f756e742e4443757272656e744c6561644e6f745365740009046043757272656e74206c656164206973206e6f74207365742e48576f726b6572446f65734e6f744578697374000a0458576f726b657220646f6573206e6f742065786973742e4c496e76616c69644d656d6265724f726967696e000b0470496e76616c6964206f726967696e20666f722061206d656d6265722e705369676e657249734e6f74576f726b6572526f6c654163636f756e74000c04885369676e6572206973206e6f7420776f726b657220726f6c65206163636f756e742e4842656c6f774d696e696d756d5374616b6573000d04885374616b696e67206c657373207468616e20746865206c6f77657220626f756e642e7c496e73756666696369656e7442616c616e6365546f436f7665725374616b65000e0490496e73756666696369656e742062616c616e636520746f20636f766572207374616b652e884170706c69636174696f6e5374616b65446f65736e744d617463684f70656e696e67000f04d84170706c69636174696f6e207374616b65206973206c657373207468616e207265717569726564206f70656e696e67207374616b652e504f726967696e49734e6f744170706c6963616e74001004604f726967696e206973206e6f74206170706c6963616e742e3c576f726b657249734c656176696e6700110498496e76616c6964206f7065726174696f6e202d20776f726b6572206973206c656176696e672e5043616e6e6f74526577617264576974685a65726f0012046452657761726420636f756c64206e6f74206265207a65726f2e78496e76616c69645374616b696e674163636f756e74466f724d656d626572001304ac5374616b696e67206163636f756e7420646f65736e27742062656c6f6e6720746f2061206d656d6265722e5c436f6e666c6963745374616b65734f6e4163636f756e74001404b05374616b696e67206163636f756e7420636f6e7461696e7320636f6e666c696374696e67207374616b65732e44576f726b65724861734e6f5265776172640015047c576f726b657220686173206e6f20726563757272696e67207265776172642e78556e7374616b696e67506572696f644c6573735468616e4d696e696d756d001604090153706563696669656420756e7374616b696e6720706572696f64206973206c657373207468656e206d696e696d756d2073657420666f72207468652067726f75702e3c43616e6e6f745370656e645a65726f00170460496e76616c6964207370656e64696e6720616d6f756e742e74496e73756666696369656e74427564676574466f725370656e64696e67001804a449742773206e6f7420656e6f7567682062756467657420666f722074686973207370656e64696e672e584e6f4170706c69636174696f6e7350726f7669646564001904bc43616e6e6f742066696c6c206f70656e696e67202d206e6f206170706c69636174696f6e732070726f76696465642ea043616e6e6f7444656372656173655374616b6544656c7461477265617465725468616e5374616b65001a04fc43616e6e6f74206465637265617365207374616b65202d207374616b652064656c74612067726561746572207468616e20696e697469616c207374616b652e644170706c69636174696f6e734e6f74466f724f70656e696e67001b04f0547279696e6720746f2066696c6c206f70656e696e67207769746820616e206170706c69636174696f6e20666f72206f74686572206f70656e696e6764576f726b657253746f7261676556616c7565546f6f4c6f6e67001c0480576f726b65722073746f72616765207465787420697320746f6f206c6f6e672e70496e73756666696369656e74546f6b656e73466f7246756e64696e67001d04f8496e73756666696369656e7420746f6b656e7320666f722066756e64696e6720286f6e206d656d62657220636f6e74726f6c6c6572206163636f756e7429445a65726f546f6b656e7346756e64696e67001e047c547279696e6720746f2066756e642077697468207a65726f20746f6b656e7378496e73756666696369656e7442616c616e6365466f725472616e73666572001f04b443616e6e6f742077697468647261773a20696e73756666696369656e74206275646765742062616c616e63652e048c44697363757373696f6e206d6f64756c6520707265646566696e6564206572726f7273c909102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c4164647265737301001043616c6c013904245369676e617475726501cd0914457874726101d90900040030000000cd09082873705f72756e74696d65384d756c74695369676e617475726500010c1c4564323535313904009d050148656432353531393a3a5369676e61747572650000001c537232353531390400d1050148737232353531393a3a5369676e61747572650001001445636473610400d109014065636473613a3a5369676e617475726500020000d1090c1c73705f636f7265146563647361245369676e617475726500000400d50901205b75383b2036355d0000d509000003410000000800d90900000420dd09e109e509e909ed09f509f909fd0900dd0910306672616d655f73797374656d28657874656e73696f6e7354636865636b5f6e6f6e5f7a65726f5f73656e64657248436865636b4e6f6e5a65726f53656e64657204045400000000e10910306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e04045400000000e50910306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e04045400000000e90910306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e6573697304045400000000ed0910306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c69747904045400000400f109010c4572610000f109102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff0000f50910306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e636504045400000400e5030120543a3a496e6465780000f90910306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b57656967687404045400000000fd09086870616c6c65745f7472616e73616374696f6e5f7061796d656e74604368617267655472616e73616374696f6e5061796d656e7404045400000400ec013042616c616e63654f663c543e0000010a08586a6f7973747265616d5f6e6f64655f72756e74696d651c52756e74696d6500000000a41853797374656d011853797374656d401c4163636f756e7401010402000c4101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e2c426c6f636b57656967687401001c180000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b4861736801010405102c8000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510300400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801002c80000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e18446967657374010034040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301004404001ca0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e001d01204e4f54453a20546865206974656d20697320756e626f756e6420616e642073686f756c64207468657265666f7265206e657665722062652072656164206f6e20636861696e2ed020497420636f756c64206f746865727769736520696e666c6174652074686520506f562073697a65206f66206120626c6f636b2e002d01204576656e747320686176652061206c6172676520696e2d6d656d6f72792073697a652e20426f7820746865206576656e747320746f206e6f7420676f206f75742d6f662d6d656d6f7279fc206a75737420696e206361736520736f6d656f6e65207374696c6c207265616473207468656d2066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f70696373010104022cd9030400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e004d01205468652076616c756520686173207468652074797065206028543a3a426c6f636b4e756d6265722c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000e10304000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e740100980400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e740100980400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e50686173650000d103040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e01ed0301501830426c6f636b57656967687473f903f90162991c85000b00204aa9d10113ffffffffffffffff8211861f00010ba04328a62e011366666666666666a6010b0098f73e5d0113ffffffffffffffbf0100008211861f00010ba0cb7a10a3011366666666666666e6010b00204aa9d10113ffffffffffffffff01070088526a741300000000000000408211861f0000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e67746809043000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e74101060090000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e20446257656967687411044050895d0000000000f812e604000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6e15040103386a6f7973747265616d2d6e6f6465386a6f7973747265616d2d6e6f64650c000000d20700000000000030df6acb689907609b0400000037e397fc7c91f5e40100000040fe3ad401f8959a0600000018ef58a3b67ba77001000000d2bc9897eed08f1503000000f78b278be53f454c02000000ed99c5acb25eedf503000000cbca25e39f14238702000000687ad44ad37f03c201000000bc9d89904f5b923f0100000037c8bb1350a9a2a803000000ab3c0572291feb8b0100000001000000010484204765742074686520636861696e27732063757272656e742076657273696f6e2e28535335385072656669782904087e0014a8205468652064657369676e61746564205353353820707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e012d04001c5574696c697479000131040174044c626174636865645f63616c6c735f6c696d69741010aa2a000004a820546865206c696d6974206f6e20746865206e756d626572206f6620626174636865642063616c6c732e019d06011042616265011042616265442845706f6368496e64657801002820000000000000000004542043757272656e742065706f636820696e6465782e2c417574686f7269746965730100a1060400046c2043757272656e742065706f636820617574686f7269746965732e2c47656e65736973536c6f740100510420000000000000000008f82054686520736c6f74206174207768696368207468652066697273742065706f63682061637475616c6c7920737461727465642e205468697320697320309020756e74696c2074686520666972737420626c6f636b206f662074686520636861696e2e2c43757272656e74536c6f740100510420000000000000000004542043757272656e7420736c6f74206e756d6265722e2852616e646f6d6e65737301000480000000000000000000000000000000000000000000000000000000000000000028b8205468652065706f63682072616e646f6d6e65737320666f7220746865202a63757272656e742a2065706f63682e002c20232053656375726974790005012054686973204d555354204e4f54206265207573656420666f722067616d626c696e672c2061732069742063616e20626520696e666c75656e6365642062792061f8206d616c6963696f75732076616c696461746f7220696e207468652073686f7274207465726d2e204974204d4159206265207573656420696e206d616e7915012063727970746f677261706869632070726f746f636f6c732c20686f77657665722c20736f206c6f6e67206173206f6e652072656d656d6265727320746861742074686973150120286c696b652065766572797468696e6720656c7365206f6e2d636861696e29206974206973207075626c69632e20466f72206578616d706c652c2069742063616e206265050120757365642077686572652061206e756d626572206973206e656564656420746861742063616e6e6f742068617665206265656e2063686f73656e20627920616e0d01206164766572736172792c20666f7220707572706f7365732073756368206173207075626c69632d636f696e207a65726f2d6b6e6f776c656467652070726f6f66732e6050656e64696e6745706f6368436f6e6669674368616e67650000590404000461012050656e64696e672065706f636820636f6e66696775726174696f6e206368616e676520746861742077696c6c206265206170706c696564207768656e20746865206e6578742065706f636820697320656e61637465642e384e65787452616e646f6d6e657373010004800000000000000000000000000000000000000000000000000000000000000000045c204e6578742065706f63682072616e646f6d6e6573732e3c4e657874417574686f7269746965730100a10604000460204e6578742065706f636820617574686f7269746965732e305365676d656e74496e6465780100101000000000247c2052616e646f6d6e65737320756e64657220636f6e737472756374696f6e2e00f8205765206d616b6520612074726164652d6f6666206265747765656e2073746f7261676520616363657373657320616e64206c697374206c656e6774682e01012057652073746f72652074686520756e6465722d636f6e737472756374696f6e2072616e646f6d6e65737320696e207365676d656e7473206f6620757020746f942060554e4445525f434f4e535452554354494f4e5f5345474d454e545f4c454e475448602e00ec204f6e63652061207365676d656e7420726561636865732074686973206c656e6774682c20776520626567696e20746865206e657874206f6e652e090120576520726573657420616c6c207365676d656e747320616e642072657475726e20746f206030602061742074686520626567696e6e696e67206f662065766572791c2065706f63682e44556e646572436f6e737472756374696f6e0101040510ad0604000415012054574f582d4e4f54453a20605365676d656e74496e6465786020697320616e20696e6372656173696e6720696e74656765722c20736f2074686973206973206f6b61792e2c496e697469616c697a65640000b50604000801012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e292077686963682069732060536f6d65601d01206966207065722d626c6f636b20696e697469616c697a6174696f6e2068617320616c7265616479206265656e2063616c6c656420666f722063757272656e7420626c6f636b2e4c417574686f7256726652616e646f6d6e6573730100c90604001015012054686973206669656c642073686f756c6420616c7761797320626520706f70756c6174656420647572696e6720626c6f636b2070726f63657373696e6720756e6c6573731901207365636f6e6461727920706c61696e20736c6f74732061726520656e61626c65642028776869636820646f6e277420636f6e7461696e206120565246206f7574707574292e0049012049742069732073657420696e20606f6e5f66696e616c697a65602c206265666f72652069742077696c6c20636f6e7461696e207468652076616c75652066726f6d20746865206c61737420626c6f636b2e2845706f636853746172740100dd03200000000000000000145d012054686520626c6f636b206e756d62657273207768656e20746865206c61737420616e642063757272656e742065706f6368206861766520737461727465642c20726573706563746976656c7920604e2d316020616e641420604e602e4901204e4f54453a20576520747261636b207468697320697320696e206f7264657220746f20616e6e6f746174652074686520626c6f636b206e756d626572207768656e206120676976656e20706f6f6c206f66590120656e74726f7079207761732066697865642028692e652e20697420776173206b6e6f776e20746f20636861696e206f6273657276657273292e2053696e63652065706f6368732061726520646566696e656420696e590120736c6f74732c207768696368206d617920626520736b69707065642c2074686520626c6f636b206e756d62657273206d6179206e6f74206c696e6520757020776974682074686520736c6f74206e756d626572732e204c6174656e657373010010100000000014d820486f77206c617465207468652063757272656e7420626c6f636b20697320636f6d706172656420746f2069747320706172656e742e001501205468697320656e74727920697320706f70756c617465642061732070617274206f6620626c6f636b20657865637574696f6e20616e6420697320636c65616e65642075701101206f6e20626c6f636b2066696e616c697a6174696f6e2e205175657279696e6720746869732073746f7261676520656e747279206f757473696465206f6620626c6f636bb020657865637574696f6e20636f6e746578742073686f756c6420616c77617973207969656c64207a65726f2e2c45706f6368436f6e6669670000cd0604000861012054686520636f6e66696775726174696f6e20666f72207468652063757272656e742065706f63682e2053686f756c64206e6576657220626520604e6f6e656020617320697420697320696e697469616c697a656420696e242067656e657369732e3c4e65787445706f6368436f6e6669670000cd060400082d012054686520636f6e66696775726174696f6e20666f7220746865206e6578742065706f63682c20604e6f6e65602069662074686520636f6e6669672077696c6c206e6f74206368616e6765e82028796f752063616e2066616c6c6261636b20746f206045706f6368436f6e6669676020696e737465616420696e20746861742063617365292e34536b697070656445706f6368730100d10604002029012041206c697374206f6620746865206c6173742031303020736b69707065642065706f63687320616e642074686520636f72726573706f6e64696e672073657373696f6e20696e64657870207768656e207468652065706f63682077617320736b69707065642e0031012054686973206973206f6e6c79207573656420666f722076616c69646174696e672065717569766f636174696f6e2070726f6f66732e20416e2065717569766f636174696f6e2070726f6f663501206d75737420636f6e7461696e732061206b65792d6f776e6572736869702070726f6f6620666f72206120676976656e2073657373696f6e2c207468657265666f7265207765206e656564206139012077617920746f2074696520746f6765746865722073657373696f6e7320616e642065706f636820696e64696365732c20692e652e207765206e65656420746f2076616c69646174652074686174290120612076616c696461746f722077617320746865206f776e6572206f66206120676976656e206b6579206f6e206120676976656e2073657373696f6e2c20616e64207768617420746865b0206163746976652065706f636820696e6465782077617320647572696e6720746861742073657373696f6e2e013d04000c3445706f63684475726174696f6e282058020000000000000cec2054686520616d6f756e74206f662074696d652c20696e20736c6f74732c207468617420656163682065706f63682073686f756c64206c6173742e1901204e4f54453a2043757272656e746c79206974206973206e6f7420706f737369626c6520746f206368616e6765207468652065706f6368206475726174696f6e20616674657221012074686520636861696e2068617320737461727465642e20417474656d7074696e6720746f20646f20736f2077696c6c20627269636b20626c6f636b2070726f64756374696f6e2e444578706563746564426c6f636b54696d652820701700000000000014050120546865206578706563746564206176657261676520626c6f636b2074696d6520617420776869636820424142452073686f756c64206265206372656174696e67110120626c6f636b732e2053696e636520424142452069732070726f626162696c6973746963206974206973206e6f74207472697669616c20746f20666967757265206f75740501207768617420746865206578706563746564206176657261676520626c6f636b2074696d652073686f756c64206265206261736564206f6e2074686520736c6f740901206475726174696f6e20616e642074686520736563757269747920706172616d657465722060636020287768657265206031202d20636020726570726573656e7473a0207468652070726f626162696c697479206f66206120736c6f74206265696e6720656d707479292e384d6178417574686f7269746965731010a08601000488204d6178206e756d626572206f6620617574686f72697469657320616c6c6f77656401d506022454696d657374616d70012454696d657374616d70080c4e6f7701002820000000000000000004902043757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010098040004b420446964207468652074696d657374616d7020676574207570646174656420696e207468697320626c6f636b3f0161040004344d696e696d756d506572696f642820b80b000000000000104d0120546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e204265776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a5d0120706572696f6420746861742074686520626c6f636b2070726f64756374696f6e206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c5d012067656e6572616c6c7920776f726b2077697468207468697320746f2064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20652e672e20466f7220417572612c2069742077696c6c206265a020646f75626c65207468697320706572696f64206f6e2064656661756c742073657474696e67732e000328417574686f72736869700128417574686f72736869700418417574686f720000000400046420417574686f72206f662063757272656e7420626c6f636b2e00000000042042616c616e636573012042616c616e6365731434546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e40496e61637469766549737375616e636501001840000000000000000000000000000000000409012054686520746f74616c20756e697473206f66206f75747374616e64696e672064656163746976617465642062616c616e636520696e207468652073797374656d2e1c4163636f756e74010104020014010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600901205468652042616c616e6365732070616c6c6574206578616d706c65206f662073746f72696e67207468652062616c616e6365206f6620616e206163636f756e742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b19022020202074797065204163636f756e7453746f7265203d2053746f726167654d61705368696d3c53656c663a3a4163636f756e743c52756e74696d653e2c206672616d655f73797374656d3a3a50726f76696465723c52756e74696d653e2c204163636f756e7449642c2053656c663a3a4163636f756e74446174613c42616c616e63653e3e0c20207d102060606000150120596f752063616e20616c736f2073746f7265207468652062616c616e6365206f6620616e206163636f756e7420696e20746865206053797374656d602070616c6c65742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b7420202074797065204163636f756e7453746f7265203d2053797374656d0c20207d102060606000510120427574207468697320636f6d657320776974682074726164656f6666732c2073746f72696e67206163636f756e742062616c616e63657320696e207468652073797374656d2070616c6c65742073746f7265736d0120606672616d655f73797374656d60206461746120616c6f6e677369646520746865206163636f756e74206461746120636f6e747261727920746f2073746f72696e67206163636f756e742062616c616e63657320696e207468652901206042616c616e636573602070616c6c65742c20776869636820757365732061206053746f726167654d61706020746f2073746f72652062616c616e6365732064617461206f6e6c792e4101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b730101040200d906040008b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e2052657365727665730101040200e906040004a4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e01650401800c484578697374656e7469616c4465706f73697418404002e50f00000000000000000000000004d420546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d61784c6f636b7310103200000008f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e2c4d61785265736572766573101032000000040d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e01f50605485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100f90640000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e0100fd0604000000018804604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c6974706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f7269747960004d0120546869732076616c7565206973206d756c7469706c656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e000668456c656374696f6e50726f76696465724d756c746950686173650168456c656374696f6e50726f76696465724d756c746950686173652814526f756e64010010100100000018ac20496e7465726e616c20636f756e74657220666f7220746865206e756d626572206f6620726f756e64732e00550120546869732069732075736566756c20666f722064652d6475706c69636174696f6e206f66207472616e73616374696f6e73207375626d697474656420746f2074686520706f6f6c2c20616e642067656e6572616c6c20646961676e6f7374696373206f66207468652070616c6c65742e004d012054686973206973206d6572656c7920696e6372656d656e746564206f6e6365207065722065766572792074696d65207468617420616e20757073747265616d2060656c656374602069732063616c6c65642e3043757272656e7450686173650100a00400043c2043757272656e742070686173652e38517565756564536f6c7574696f6e000001070400043d012043757272656e74206265737420736f6c7574696f6e2c207369676e6564206f7220756e7369676e65642c2071756575656420746f2062652072657475726e65642075706f6e2060656c656374602e20536e617073686f740000090704000c7020536e617073686f742064617461206f662074686520726f756e642e005d01205468697320697320637265617465642061742074686520626567696e6e696e67206f6620746865207369676e656420706861736520616e6420636c65617265642075706f6e2063616c6c696e672060656c656374602e38446573697265645461726765747300001004000ccc2044657369726564206e756d626572206f66207461726765747320746f20656c65637420666f72207468697320726f756e642e00a8204f6e6c7920657869737473207768656e205b60536e617073686f74605d2069732070726573656e742e40536e617073686f744d6574616461746100003d0504000c9820546865206d65746164617461206f6620746865205b60526f756e64536e617073686f74605d00a8204f6e6c7920657869737473207768656e205b60536e617073686f74605d2069732070726573656e742e645369676e65645375626d697373696f6e4e657874496e646578010010100000000024010120546865206e65787420696e64657820746f2062652061737369676e656420746f20616e20696e636f6d696e67207369676e6564207375626d697373696f6e2e007501204576657279206163636570746564207375626d697373696f6e2069732061737369676e6564206120756e6971756520696e6465783b207468617420696e64657820697320626f756e6420746f207468617420706172746963756c61726501207375626d697373696f6e20666f7220746865206475726174696f6e206f662074686520656c656374696f6e2e204f6e20656c656374696f6e2066696e616c697a6174696f6e2c20746865206e65787420696e6465782069733020726573657420746f20302e0069012057652063616e2774206a7573742075736520605369676e65645375626d697373696f6e496e64696365732e6c656e2829602c206265636175736520746861742773206120626f756e646564207365743b20706173742069747359012063617061636974792c2069742077696c6c2073696d706c792073617475726174652e2057652063616e2774206a7573742069746572617465206f76657220605369676e65645375626d697373696f6e734d6170602cf4206265636175736520697465726174696f6e20697320736c6f772e20496e73746561642c2077652073746f7265207468652076616c756520686572652e5c5369676e65645375626d697373696f6e496e6469636573010019070400186d01204120736f727465642c20626f756e64656420766563746f72206f6620602873636f72652c20626c6f636b5f6e756d6265722c20696e64657829602c20776865726520656163682060696e6465786020706f696e747320746f2061782076616c756520696e20605369676e65645375626d697373696f6e73602e007101205765206e65766572206e65656420746f2070726f63657373206d6f7265207468616e20612073696e676c65207369676e6564207375626d697373696f6e20617420612074696d652e205369676e6564207375626d697373696f6e7375012063616e206265207175697465206c617267652c20736f2077652772652077696c6c696e6720746f207061792074686520636f7374206f66206d756c7469706c6520646174616261736520616363657373657320746f206163636573732101207468656d206f6e6520617420612074696d6520696e7374656164206f662072656164696e6720616e64206465636f64696e6720616c6c206f66207468656d206174206f6e63652e505369676e65645375626d697373696f6e734d61700001040510250704001c7420556e636865636b65642c207369676e656420736f6c7574696f6e732e00690120546f676574686572207769746820605375626d697373696f6e496e6469636573602c20746869732073746f726573206120626f756e64656420736574206f6620605369676e65645375626d697373696f6e7360207768696c65ec20616c6c6f77696e6720757320746f206b656570206f6e6c7920612073696e676c65206f6e6520696e206d656d6f727920617420612074696d652e0069012054776f78206e6f74653a20746865206b6579206f6620746865206d617020697320616e206175746f2d696e6372656d656e74696e6720696e6465782077686963682075736572732063616e6e6f7420696e7370656374206f72f4206166666563743b2077652073686f756c646e2774206e65656420612063727970746f67726170686963616c6c7920736563757265206861736865722e544d696e696d756d556e7472757374656453636f726500009c0400105d0120546865206d696e696d756d2073636f7265207468617420656163682027756e747275737465642720736f6c7574696f6e206d7573742061747461696e20696e206f7264657220746f20626520636f6e7369646572656428206665617369626c652e00b82043616e206265207365742076696120607365745f6d696e696d756d5f756e747275737465645f73636f7265602e016904018c4c34556e7369676e656450686173651010960000000480204475726174696f6e206f662074686520756e7369676e65642070686173652e2c5369676e656450686173651010960000000478204475726174696f6e206f6620746865207369676e65642070686173652e544265747465725369676e65645468726573686f6c64ac1000000000084d0120546865206d696e696d756d20616d6f756e74206f6620696d70726f76656d656e7420746f2074686520736f6c7574696f6e2073636f7265207468617420646566696e6573206120736f6c7574696f6e2061737820226265747465722220696e20746865205369676e65642070686173652e5c426574746572556e7369676e65645468726573686f6c64ac1020a10700084d0120546865206d696e696d756d20616d6f756e74206f6620696d70726f76656d656e7420746f2074686520736f6c7574696f6e2073636f7265207468617420646566696e6573206120736f6c7574696f6e2061738020226265747465722220696e2074686520556e7369676e65642070686173652e384f6666636861696e52657065617410101200000010b42054686520726570656174207468726573686f6c64206f6620746865206f6666636861696e20776f726b65722e00610120466f72206578616d706c652c20696620697420697320352c2074686174206d65616e732074686174206174206c65617374203520626c6f636b732077696c6c20656c61707365206265747765656e20617474656d7074738420746f207375626d69742074686520776f726b6572277320736f6c7574696f6e2e3c4d696e657254785072696f726974792820feffffffffffff7f04250120546865207072696f72697479206f662074686520756e7369676e6564207472616e73616374696f6e207375626d697474656420696e2074686520756e7369676e65642d7068617365505369676e65644d61785375626d697373696f6e731010100000001ce4204d6178696d756d206e756d626572206f66207369676e6564207375626d697373696f6e7320746861742063616e206265207175657565642e005501204974206973206265737420746f2061766f69642061646a757374696e67207468697320647572696e6720616e20656c656374696f6e2c20617320697420696d706163747320646f776e73747265616d2064617461650120737472756374757265732e20496e20706172746963756c61722c20605369676e65645375626d697373696f6e496e64696365733c543e6020697320626f756e646564206f6e20746869732076616c75652e20496620796f75f42075706461746520746869732076616c756520647572696e6720616e20656c656374696f6e2c20796f75205f6d7573745f20656e7375726520746861744d0120605369676e65645375626d697373696f6e496e64696365732e6c656e282960206973206c657373207468616e206f7220657175616c20746f20746865206e65772076616c75652e204f74686572776973652cf020617474656d70747320746f207375626d6974206e657720736f6c7574696f6e73206d617920636175736520612072756e74696d652070616e69632e3c5369676e65644d617857656967687420400b481de1842e011366666666666666a61494204d6178696d756d20776569676874206f662061207369676e656420736f6c7574696f6e2e005d01204966205b60436f6e6669673a3a4d696e6572436f6e666967605d206973206265696e6720696d706c656d656e74656420746f207375626d6974207369676e656420736f6c7574696f6e7320286f757473696465206f663d0120746869732070616c6c6574292c207468656e205b604d696e6572436f6e6669673a3a736f6c7574696f6e5f776569676874605d206973207573656420746f20636f6d7061726520616761696e73743020746869732076616c75652e405369676e65644d6178526566756e647310100400000004190120546865206d6178696d756d20616d6f756e74206f6620756e636865636b656420736f6c7574696f6e7320746f20726566756e64207468652063616c6c2066656520666f722e405369676e6564526577617264426173651840aa821bce260000000000000000000000048820426173652072657761726420666f722061207369676e656420736f6c7574696f6e445369676e65644465706f736974426173651840a41a130d84010000000000000000000004902042617365206465706f73697420666f722061207369676e656420736f6c7574696f6e2e445369676e65644465706f7369744279746518406a6e190000000000000000000000000004a0205065722d62797465206465706f73697420666f722061207369676e656420736f6c7574696f6e2e4c5369676e65644465706f73697457656967687418400000000000000000000000000000000004a8205065722d776569676874206465706f73697420666f722061207369676e656420736f6c7574696f6e2e444d6178456c656374696e67566f746572731010d43000000c5d0120546865206d6178696d756d206e756d626572206f6620656c656374696e6720766f7465727320746f2070757420696e2074686520736e617073686f742e20417420746865206d6f6d656e742c20736e617073686f7473590120617265206f6e6c79206f76657220612073696e676c6520626c6f636b2c20627574206f6e6365206d756c74692d626c6f636b20656c656374696f6e732061726520696e74726f647563656420746865792077696c6c842074616b6520706c616365206f766572206d756c7469706c6520626c6f636b732e4c4d6178456c65637461626c6554617267657473290408ffff04010120546865206d6178696d756d206e756d626572206f6620656c65637461626c65207461726765747320746f2070757420696e2074686520736e617073686f742e284d617857696e6e65727310109001000010350120546865206d6178696d756d206e756d626572206f662077696e6e65727320746861742063616e20626520656c656374656420627920746869732060456c656374696f6e50726f7669646572604020696d706c656d656e746174696f6e2e005101204e6f74653a2054686973206d75737420616c776179732062652067726561746572206f7220657175616c20746f2060543a3a4461746150726f76696465723a3a646573697265645f746172676574732829602e384d696e65724d61784c656e67746810100000360000384d696e65724d617857656967687420400b481de1842e011366666666666666a600544d696e65724d6178566f746573506572566f74657210101000000000012907071c5374616b696e67011c5374616b696e67943856616c696461746f72436f756e740100101000000000049c2054686520696465616c206e756d626572206f66206163746976652076616c696461746f72732e544d696e696d756d56616c696461746f72436f756e740100101000000000044101204d696e696d756d206e756d626572206f66207374616b696e67207061727469636970616e7473206265666f726520656d657267656e637920636f6e646974696f6e732061726520696d706f7365642e34496e76756c6e657261626c657301005d0504000c590120416e792076616c696461746f72732074686174206d6179206e6576657220626520736c6173686564206f7220666f726369626c79206b69636b65642e20497427732061205665632073696e636520746865792772654d01206561737920746f20696e697469616c697a6520616e642074686520706572666f726d616e636520686974206973206d696e696d616c2028776520657870656374206e6f206d6f7265207468616e20666f7572ac20696e76756c6e657261626c65732920616e64207265737472696374656420746f20746573746e6574732e18426f6e64656400010405000004000c0101204d61702066726f6d20616c6c206c6f636b65642022737461736822206163636f756e747320746f2074686520636f6e74726f6c6c6572206163636f756e742e00d02054574f582d4e4f54453a20534146452073696e636520604163636f756e7449646020697320612073656375726520686173682e404d696e4e6f6d696e61746f72426f6e64010018400000000000000000000000000000000004210120546865206d696e696d756d2061637469766520626f6e6420746f206265636f6d6520616e64206d61696e7461696e2074686520726f6c65206f662061206e6f6d696e61746f722e404d696e56616c696461746f72426f6e64010018400000000000000000000000000000000004210120546865206d696e696d756d2061637469766520626f6e6420746f206265636f6d6520616e64206d61696e7461696e2074686520726f6c65206f6620612076616c696461746f722e484d696e696d756d4163746976655374616b65010018400000000000000000000000000000000004110120546865206d696e696d756d20616374697665206e6f6d696e61746f72207374616b65206f6620746865206c617374207375636365737366756c20656c656374696f6e2e344d696e436f6d6d697373696f6e0100ac10000000000ce820546865206d696e696d756d20616d6f756e74206f6620636f6d6d697373696f6e20746861742076616c696461746f72732063616e207365742e00802049662073657420746f206030602c206e6f206c696d6974206578697374732e184c656467657200010402002d070400044501204d61702066726f6d20616c6c2028756e6c6f636b6564292022636f6e74726f6c6c657222206163636f756e747320746f2074686520696e666f20726567617264696e6720746865207374616b696e672e1450617965650101040500590504000ce42057686572652074686520726577617264207061796d656e742073686f756c64206265206d6164652e204b657965642062792073746173682e00d02054574f582d4e4f54453a20534146452073696e636520604163636f756e7449646020697320612073656375726520686173682e2856616c696461746f72730101040500b00800000c450120546865206d61702066726f6d202877616e6e616265292076616c696461746f72207374617368206b657920746f2074686520707265666572656e636573206f6620746861742076616c696461746f722e00d02054574f582d4e4f54453a20534146452073696e636520604163636f756e7449646020697320612073656375726520686173682e50436f756e746572466f7256616c696461746f7273010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170484d617856616c696461746f7273436f756e7400001004000c310120546865206d6178696d756d2076616c696461746f7220636f756e74206265666f72652077652073746f7020616c6c6f77696e67206e65772076616c696461746f727320746f206a6f696e2e00d0205768656e20746869732076616c7565206973206e6f74207365742c206e6f206c696d6974732061726520656e666f726365642e284e6f6d696e61746f727300010405004107040048750120546865206d61702066726f6d206e6f6d696e61746f72207374617368206b657920746f207468656972206e6f6d696e6174696f6e20707265666572656e6365732c206e616d656c79207468652076616c696461746f72732074686174582074686579207769736820746f20737570706f72742e003901204e6f7465207468617420746865206b657973206f6620746869732073746f72616765206d6170206d69676874206265636f6d65206e6f6e2d6465636f6461626c6520696e2063617365207468656d01205b60436f6e6669673a3a4d61784e6f6d696e6174696f6e73605d20636f6e66696775726174696f6e206973206465637265617365642e20496e2074686973207261726520636173652c207468657365206e6f6d696e61746f7273650120617265207374696c6c206578697374656e7420696e2073746f726167652c207468656972206b657920697320636f727265637420616e64207265747269657661626c652028692e652e2060636f6e7461696e735f6b657960710120696e6469636174657320746861742074686579206578697374292c206275742074686569722076616c75652063616e6e6f74206265206465636f6465642e205468657265666f72652c20746865206e6f6e2d6465636f6461626c656d01206e6f6d696e61746f72732077696c6c206566666563746976656c79206e6f742d65786973742c20756e74696c20746865792072652d7375626d697420746865697220707265666572656e6365732073756368207468617420697401012069732077697468696e2074686520626f756e6473206f6620746865206e65776c79207365742060436f6e6669673a3a4d61784e6f6d696e6174696f6e73602e006101205468697320696d706c696573207468617420603a3a697465725f6b65797328292e636f756e7428296020616e6420603a3a6974657228292e636f756e74282960206d696768742072657475726e20646966666572656e746d012076616c75657320666f722074686973206d61702e204d6f72656f7665722c20746865206d61696e20603a3a636f756e7428296020697320616c69676e656420776974682074686520666f726d65722c206e616d656c79207468656c206e756d626572206f66206b65797320746861742065786973742e006d01204c6173746c792c20696620616e79206f6620746865206e6f6d696e61746f7273206265636f6d65206e6f6e2d6465636f6461626c652c20746865792063616e206265206368696c6c656420696d6d6564696174656c7920766961b8205b6043616c6c3a3a6368696c6c5f6f74686572605d20646973706174636861626c6520627920616e796f6e652e00d02054574f582d4e4f54453a20534146452073696e636520604163636f756e7449646020697320612073656375726520686173682e50436f756e746572466f724e6f6d696e61746f7273010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170484d61784e6f6d696e61746f7273436f756e7400001004000c310120546865206d6178696d756d206e6f6d696e61746f7220636f756e74206265666f72652077652073746f7020616c6c6f77696e67206e65772076616c696461746f727320746f206a6f696e2e00d0205768656e20746869732076616c7565206973206e6f74207365742c206e6f206c696d6974732061726520656e666f726365642e2843757272656e744572610000100400105c205468652063757272656e742065726120696e6465782e006501205468697320697320746865206c617465737420706c616e6e6564206572612c20646570656e64696e67206f6e20686f77207468652053657373696f6e2070616c6c657420717565756573207468652076616c696461746f7280207365742c206974206d6967687420626520616374697665206f72206e6f742e2441637469766545726100004507040010d820546865206163746976652065726120696e666f726d6174696f6e2c20697420686f6c647320696e64657820616e642073746172742e0059012054686520616374697665206572612069732074686520657261206265696e672063757272656e746c792072657761726465642e2056616c696461746f7220736574206f66207468697320657261206d757374206265ac20657175616c20746f205b6053657373696f6e496e746572666163653a3a76616c696461746f7273605d2e5445726173537461727453657373696f6e496e6465780001040510100400103101205468652073657373696f6e20696e646578206174207768696368207468652065726120737461727420666f7220746865206c6173742060484953544f52595f44455054486020657261732e006101204e6f74653a205468697320747261636b7320746865207374617274696e672073657373696f6e2028692e652e2073657373696f6e20696e646578207768656e20657261207374617274206265696e672061637469766529f020666f7220746865206572617320696e20605b43757272656e74457261202d20484953544f52595f44455054482c2043757272656e744572615d602e2c457261735374616b65727301010805054907e80c0000001878204578706f73757265206f662076616c696461746f72206174206572612e0061012054686973206973206b65796564206669727374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00a82049732069742072656d6f7665642061667465722060484953544f52595f44455054486020657261732e4101204966207374616b657273206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e20656d707479206578706f737572652069732072657475726e65642e48457261735374616b657273436c697070656401010805054907e80c0000002c9820436c6970706564204578706f73757265206f662076616c696461746f72206174206572612e00590120546869732069732073696d696c617220746f205b60457261735374616b657273605d20627574206e756d626572206f66206e6f6d696e61746f7273206578706f736564206973207265647563656420746f20746865dc2060543a3a4d61784e6f6d696e61746f72526577617264656450657256616c696461746f72602062696767657374207374616b6572732e1d0120284e6f74653a20746865206669656c642060746f74616c6020616e6420606f776e60206f6620746865206578706f737572652072656d61696e7320756e6368616e676564292ef42054686973206973207573656420746f206c696d69742074686520692f6f20636f737420666f7220746865206e6f6d696e61746f72207061796f75742e005d012054686973206973206b657965642066697374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00a82049732069742072656d6f7665642061667465722060484953544f52595f44455054486020657261732e4101204966207374616b657273206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e20656d707479206578706f737572652069732072657475726e65642e484572617356616c696461746f72507265667301010805054907b00800001411012053696d696c617220746f2060457261735374616b657273602c207468697320686f6c64732074686520707265666572656e636573206f662076616c696461746f72732e0061012054686973206973206b65796564206669727374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00a82049732069742072656d6f7665642061667465722060484953544f52595f44455054486020657261732e4c4572617356616c696461746f7252657761726400010405101804000c09012054686520746f74616c2076616c696461746f7220657261207061796f757420666f7220746865206c6173742060484953544f52595f44455054486020657261732e0021012045726173207468617420686176656e27742066696e697368656420796574206f7220686173206265656e2072656d6f76656420646f65736e27742068617665207265776172642e4045726173526577617264506f696e747301010405104d0714000000000008ac205265776172647320666f7220746865206c6173742060484953544f52595f44455054486020657261732e250120496620726577617264206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e2030207265776172642069732072657475726e65642e3845726173546f74616c5374616b65010104051018400000000000000000000000000000000008ec2054686520746f74616c20616d6f756e74207374616b656420666f7220746865206c6173742060484953544f52595f44455054486020657261732e1d0120496620746f74616c206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e2030207374616b652069732072657475726e65642e20466f7263654572610100b804000454204d6f6465206f662065726120666f7263696e672e4c536c6173685265776172644672616374696f6e0100ac10000000000cf8205468652070657263656e74616765206f662074686520736c617368207468617420697320646973747269627574656420746f207265706f72746572732e00e4205468652072657374206f662074686520736c61736865642076616c75652069732068616e646c6564206279207468652060536c617368602e4c43616e63656c6564536c6173685061796f757401001840000000000000000000000000000000000815012054686520616d6f756e74206f662063757272656e637920676976656e20746f207265706f7274657273206f66206120736c617368206576656e7420776869636820776173ec2063616e63656c65642062792065787472616f7264696e6172792063697263756d7374616e6365732028652e672e20676f7665726e616e6365292e40556e6170706c696564536c617368657301010405105d07040004c420416c6c20756e6170706c69656420736c61736865732074686174206172652071756575656420666f72206c617465722e28426f6e646564457261730100d90304001025012041206d617070696e672066726f6d207374696c6c2d626f6e646564206572617320746f207468652066697273742073657373696f6e20696e646578206f662074686174206572612e00c8204d75737420636f6e7461696e7320696e666f726d6174696f6e20666f72206572617320666f72207468652072616e67653abc20605b6163746976655f657261202d20626f756e64696e675f6475726174696f6e3b206163746976655f6572615d604c56616c696461746f72536c617368496e457261000108050549076507040008450120416c6c20736c617368696e67206576656e7473206f6e2076616c696461746f72732c206d61707065642062792065726120746f20746865206869676865737420736c6173682070726f706f7274696f6e7020616e6420736c6173682076616c7565206f6620746865206572612e4c4e6f6d696e61746f72536c617368496e4572610001080505490718040004610120416c6c20736c617368696e67206576656e7473206f6e206e6f6d696e61746f72732c206d61707065642062792065726120746f20746865206869676865737420736c6173682076616c7565206f6620746865206572612e34536c617368696e675370616e73000104050069070400048c20536c617368696e67207370616e7320666f72207374617368206163636f756e74732e245370616e536c6173680101040559076d07800000000000000000000000000000000000000000000000000000000000000000083d01205265636f72647320696e666f726d6174696f6e2061626f757420746865206d6178696d756d20736c617368206f6620612073746173682077697468696e206120736c617368696e67207370616e2cb82061732077656c6c20617320686f77206d7563682072657761726420686173206265656e2070616964206f75742e5443757272656e74506c616e6e656453657373696f6e01001010000000000ce820546865206c61737420706c616e6e65642073657373696f6e207363686564756c6564206279207468652073657373696f6e2070616c6c65742e0071012054686973206973206261736963616c6c7920696e2073796e632077697468207468652063616c6c20746f205b6070616c6c65745f73657373696f6e3a3a53657373696f6e4d616e616765723a3a6e65775f73657373696f6e605d2e4c4f6666656e64696e6756616c696461746f727301007107040024690120496e6469636573206f662076616c696461746f727320746861742068617665206f6666656e64656420696e20746865206163746976652065726120616e6420776865746865722074686579206172652063757272656e746c79282064697361626c65642e00690120546869732076616c75652073686f756c642062652061207375706572736574206f662064697361626c65642076616c696461746f72732073696e6365206e6f7420616c6c206f6666656e636573206c65616420746f2074686571012076616c696461746f72206265696e672064697361626c65642028696620746865726520776173206e6f20736c617368292e2054686973206973206e656564656420746f20747261636b207468652070657263656e74616765206f6649012076616c696461746f727320746861742068617665206f6666656e64656420696e207468652063757272656e74206572612c20656e737572696e672061206e65772065726120697320666f72636564206966750120604f6666656e64696e6756616c696461746f72735468726573686f6c646020697320726561636865642e205468652076656320697320616c77617973206b65707420736f7274656420736f20746861742077652063616e2066696e6471012077686574686572206120676976656e2076616c696461746f72206861732070726576696f75736c79206f6666656e646564207573696e672062696e617279207365617263682e204974206765747320636c6561726564207768656e38207468652065726120656e64732e384368696c6c5468726573686f6c640000610504000c510120546865207468726573686f6c6420666f72207768656e2075736572732063616e2073746172742063616c6c696e6720606368696c6c5f6f746865726020666f72206f746865722076616c696461746f7273202f5901206e6f6d696e61746f72732e20546865207468726573686f6c6420697320636f6d706172656420746f207468652061637475616c206e756d626572206f662076616c696461746f7273202f206e6f6d696e61746f72732901202860436f756e74466f722a602920696e207468652073797374656d20636f6d706172656420746f2074686520636f6e66696775726564206d61782028604d61782a436f756e7460292e01550501a81c384d61784e6f6d696e6174696f6e7310101000000004b4204d6178696d756d206e756d626572206f66206e6f6d696e6174696f6e7320706572206e6f6d696e61746f722e30486973746f72794465707468101078000000508c204e756d626572206f66206572617320746f206b65657020696e20686973746f72792e00e820466f6c6c6f77696e6720696e666f726d6174696f6e206973206b65707420666f72206572617320696e20605b63757272656e745f657261202d090120486973746f727944657074682c2063757272656e745f6572615d603a2060457261735374616b657273602c2060457261735374616b657273436c6970706564602c050120604572617356616c696461746f725072656673602c20604572617356616c696461746f72526577617264602c206045726173526577617264506f696e7473602cac206045726173546f74616c5374616b65602c206045726173537461727453657373696f6e496e646578602c8420605374616b696e674c65646765722e636c61696d65645f72657761726473602e00e4204d757374206265206d6f7265207468616e20746865206e756d626572206f6620657261732064656c617965642062792073657373696f6e2ef820492e652e2061637469766520657261206d75737420616c7761797320626520696e20686973746f72792e20492e652e20606163746976655f657261203ec42063757272656e745f657261202d20686973746f72795f646570746860206d7573742062652067756172616e746565642e001101204966206d6967726174696e6720616e206578697374696e672070616c6c65742066726f6d2073746f726167652076616c756520746f20636f6e6669672076616c75652cec20746869732073686f756c642062652073657420746f2073616d652076616c7565206f72206772656174657220617320696e2073746f726167652e001501204e6f74653a2060486973746f727944657074686020697320757365642061732074686520757070657220626f756e6420666f72207468652060426f756e646564566563601101206974656d20605374616b696e674c65646765722e636c61696d65645f72657761726473602e2053657474696e6720746869732076616c7565206c6f776572207468616ed820746865206578697374696e672076616c75652063616e206c65616420746f20696e636f6e73697374656e6369657320696e20746865150120605374616b696e674c65646765726020616e642077696c6c206e65656420746f2062652068616e646c65642070726f7065726c7920696e2061206d6967726174696f6e2ef020546865207465737420607265647563696e675f686973746f72795f64657074685f616272757074602073686f77732074686973206566666563742e3853657373696f6e735065724572611010060000000470204e756d626572206f662073657373696f6e7320706572206572612e3c426f6e64696e674475726174696f6e10107000000004e4204e756d626572206f6620657261732074686174207374616b65642066756e6473206d7573742072656d61696e20626f6e64656420666f722e48536c61736844656665724475726174696f6e10106f000000100101204e756d626572206f662065726173207468617420736c6173686573206172652064656665727265642062792c20616674657220636f6d7075746174696f6e2e000d0120546869732073686f756c64206265206c657373207468616e2074686520626f6e64696e67206475726174696f6e2e2053657420746f203020696620736c617368657315012073686f756c64206265206170706c69656420696d6d6564696174656c792c20776974686f7574206f70706f7274756e69747920666f7220696e74657276656e74696f6e2e804d61784e6f6d696e61746f72526577617264656450657256616c696461746f7210100001000010f820546865206d6178696d756d206e756d626572206f66206e6f6d696e61746f727320726577617264656420666f7220656163682076616c696461746f722e00510120466f7220656163682076616c696461746f72206f6e6c79207468652060244d61784e6f6d696e61746f72526577617264656450657256616c696461746f72602062696767657374207374616b6572732063616e390120636c61696d207468656972207265776172642e2054686973207573656420746f206c696d69742074686520692f6f20636f737420666f7220746865206e6f6d696e61746f72207061796f75742e484d6178556e6c6f636b696e674368756e6b7310102000000028050120546865206d6178696d756d206e756d626572206f662060756e6c6f636b696e6760206368756e6b732061205b605374616b696e674c6564676572605d2063616e090120686176652e204566666563746976656c792064657465726d696e657320686f77206d616e7920756e6971756520657261732061207374616b6572206d61792062653820756e626f6e64696e6720696e2e00f8204e6f74653a20604d6178556e6c6f636b696e674368756e6b736020697320757365642061732074686520757070657220626f756e6420666f722074686501012060426f756e64656456656360206974656d20605374616b696e674c65646765722e756e6c6f636b696e67602e2053657474696e6720746869732076616c75650501206c6f776572207468616e20746865206578697374696e672076616c75652063616e206c65616420746f20696e636f6e73697374656e6369657320696e20746865090120605374616b696e674c65646765726020616e642077696c6c206e65656420746f2062652068616e646c65642070726f7065726c7920696e20612072756e74696d650501206d6967726174696f6e2e20546865207465737420607265647563696e675f6d61785f756e6c6f636b696e675f6368756e6b735f616272757074602073686f7773342074686973206566666563742e017907081c53657373696f6e011c53657373696f6e1c2856616c696461746f727301005d050400047c205468652063757272656e7420736574206f662076616c696461746f72732e3043757272656e74496e646578010010100000000004782043757272656e7420696e646578206f66207468652073657373696f6e2e345175657565644368616e676564010098040008390120547275652069662074686520756e6465726c79696e672065636f6e6f6d6963206964656e746974696573206f7220776569676874696e6720626568696e64207468652076616c696461746f7273a420686173206368616e67656420696e20746865207175657565642076616c696461746f72207365742e285175657565644b65797301007d070400083d012054686520717565756564206b65797320666f7220746865206e6578742073657373696f6e2e205768656e20746865206e6578742073657373696f6e20626567696e732c207468657365206b657973e02077696c6c206265207573656420746f2064657465726d696e65207468652076616c696461746f7227732073657373696f6e206b6579732e4844697361626c656456616c696461746f7273010065050400148020496e6469636573206f662064697361626c65642076616c696461746f72732e003d01205468652076656320697320616c77617973206b65707420736f7274656420736f20746861742077652063616e2066696e642077686574686572206120676976656e2076616c696461746f722069733d012064697361626c6564207573696e672062696e617279207365617263682e204974206765747320636c6561726564207768656e20606f6e5f73657373696f6e5f656e64696e67602072657475726e73642061206e657720736574206f66206964656e7469746965732e204e6578744b65797300010405007d050400049c20546865206e6578742073657373696f6e206b65797320666f7220612076616c696461746f722e204b65794f776e657200010405850700040004090120546865206f776e6572206f662061206b65792e20546865206b65792069732074686520604b657954797065496460202b2074686520656e636f646564206b65792e01790501bc00018d070928486973746f726963616c0128486973746f726963616c0848486973746f726963616c53657373696f6e73000104051091070400045d01204d617070696e672066726f6d20686973746f726963616c2073657373696f6e20696e646963657320746f2073657373696f6e2d6461746120726f6f74206861736820616e642076616c696461746f7220636f756e742e2c53746f72656452616e67650000dd03040004e4205468652072616e6765206f6620686973746f726963616c2073657373696f6e732077652073746f72652e205b66697273742c206c61737429000000000a1c4772616e647061011c4772616e647061181453746174650100950704000490205374617465206f66207468652063757272656e7420617574686f72697479207365742e3450656e64696e674368616e676500009907040004c42050656e64696e67206368616e67653a20287369676e616c65642061742c207363686564756c6564206368616e6765292e284e657874466f72636564000010040004bc206e65787420626c6f636b206e756d6265722077686572652077652063616e20666f7263652061206368616e67652e1c5374616c6c65640000dd030400049020607472756560206966207765206172652063757272656e746c79207374616c6c65642e3043757272656e745365744964010028200000000000000000085d0120546865206e756d626572206f66206368616e6765732028626f746820696e207465726d73206f66206b65797320616e6420756e6465726c79696e672065636f6e6f6d696320726573706f6e736962696c697469657329c420696e20746865202273657422206f66204772616e6470612076616c696461746f72732066726f6d2067656e657369732e30536574496453657373696f6e00010405281004002859012041206d617070696e672066726f6d206772616e6470612073657420494420746f2074686520696e646578206f6620746865202a6d6f737420726563656e742a2073657373696f6e20666f722077686963682069747368206d656d62657273207765726520726573706f6e7369626c652e0045012054686973206973206f6e6c79207573656420666f722076616c69646174696e672065717569766f636174696f6e2070726f6f66732e20416e2065717569766f636174696f6e2070726f6f66206d7573744d0120636f6e7461696e732061206b65792d6f776e6572736869702070726f6f6620666f72206120676976656e2073657373696f6e2c207468657265666f7265207765206e65656420612077617920746f20746965450120746f6765746865722073657373696f6e7320616e64204752414e44504120736574206964732c20692e652e207765206e65656420746f2076616c6964617465207468617420612076616c696461746f7241012077617320746865206f776e6572206f66206120676976656e206b6579206f6e206120676976656e2073657373696f6e2c20616e642077686174207468652061637469766520736574204944207761735420647572696e6720746861742073657373696f6e2e00b82054574f582d4e4f54453a2060536574496460206973206e6f7420756e646572207573657220636f6e74726f6c2e01850501c008384d6178417574686f7269746965731010a0860100045c204d617820417574686f72697469657320696e20757365584d6178536574496453657373696f6e456e74726965732820a00200000000000018390120546865206d6178696d756d206e756d626572206f6620656e747269657320746f206b65657020696e207468652073657420696420746f2073657373696f6e20696e646578206d617070696e672e0031012053696e6365207468652060536574496453657373696f6e60206d6170206973206f6e6c79207573656420666f722076616c69646174696e672065717569766f636174696f6e73207468697329012076616c75652073686f756c642072656c61746520746f2074686520626f6e64696e67206475726174696f6e206f66207768617465766572207374616b696e672073797374656d2069733501206265696e6720757365642028696620616e79292e2049662065717569766f636174696f6e2068616e646c696e67206973206e6f7420656e61626c6564207468656e20746869732076616c7565342063616e206265207a65726f2e01a1070b48417574686f72697479446973636f766572790148417574686f72697479446973636f7665727908104b6579730100a5070400048c204b657973206f66207468652063757272656e7420617574686f72697479207365742e204e6578744b6579730100a50704000480204b657973206f6620746865206e65787420617574686f72697479207365742e000000000c20496d4f6e6c696e650120496d4f6e6c696e651038486561727462656174416674657201001010000000002c1d012054686520626c6f636b206e756d6265722061667465722077686963682069742773206f6b20746f2073656e64206865617274626561747320696e207468652063757272656e74242073657373696f6e2e0025012041742074686520626567696e6e696e67206f6620656163682073657373696f6e20776520736574207468697320746f20612076616c756520746861742073686f756c642066616c6c350120726f7567686c7920696e20746865206d6964646c65206f66207468652073657373696f6e206475726174696f6e2e20546865206964656120697320746f206669727374207761697420666f721901207468652076616c696461746f727320746f2070726f64756365206120626c6f636b20696e207468652063757272656e742073657373696f6e2c20736f207468617420746865a820686561727462656174206c61746572206f6e2077696c6c206e6f74206265206e65636573736172792e00390120546869732076616c75652077696c6c206f6e6c79206265207573656420617320612066616c6c6261636b206966207765206661696c20746f2067657420612070726f7065722073657373696f6e2d012070726f677265737320657374696d6174652066726f6d20604e65787453657373696f6e526f746174696f6e602c2061732074686f736520657374696d617465732073686f756c642062650101206d6f7265206163637572617465207468656e207468652076616c75652077652063616c63756c61746520666f7220604865617274626561744166746572602e104b6579730100ad07040004d0205468652063757272656e7420736574206f66206b6579732074686174206d61792069737375652061206865617274626561742e485265636569766564486561727462656174730001080505dd03b5070400083d0120466f7220656163682073657373696f6e20696e6465782c207765206b6565702061206d617070696e67206f66206053657373696f6e496e6465786020616e64206041757468496e6465786020746fb02060577261707065724f70617175653c426f756e6465644f70617175654e6574776f726b53746174653e602e38417574686f726564426c6f636b730101080505490710100000000008150120466f7220656163682073657373696f6e20696e6465782c207765206b6565702061206d617070696e67206f66206056616c696461746f7249643c543e6020746f20746865c8206e756d626572206f6620626c6f636b7320617574686f7265642062792074686520676976656e20617574686f726974792e01b50501d40440556e7369676e65645072696f726974792820ffffffffffffffff10f0204120636f6e66696775726174696f6e20666f722062617365207072696f72697479206f6620756e7369676e6564207472616e73616374696f6e732e0015012054686973206973206578706f73656420736f20746861742069742063616e2062652074756e656420666f7220706172746963756c61722072756e74696d652c207768656eb4206d756c7469706c652070616c6c6574732073656e6420756e7369676e6564207472616e73616374696f6e732e01c9070d204f6666656e63657301204f6666656e6365730c1c5265706f727473000104052ccd07040004490120546865207072696d61727920737472756374757265207468617420686f6c647320616c6c206f6666656e6365207265636f726473206b65796564206279207265706f7274206964656e746966696572732e58436f6e63757272656e745265706f727473496e6465780101080505d107d5030400042901204120766563746f72206f66207265706f727473206f66207468652073616d65206b696e6420746861742068617070656e6564206174207468652073616d652074696d6520736c6f742e485265706f72747342794b696e64496e64657801010405fc30040018110120456e756d65726174657320616c6c207265706f727473206f662061206b696e6420616c6f6e672077697468207468652074696d6520746865792068617070656e65642e00bc20416c6c207265706f7274732061726520736f72746564206279207468652074696d65206f66206f6666656e63652e004901204e6f74652074686174207468652061637475616c2074797065206f662074686973206d617070696e6720697320605665633c75383e602c207468697320697320626563617573652076616c756573206f66690120646966666572656e7420747970657320617265206e6f7420737570706f7274656420617420746865206d6f6d656e7420736f2077652061726520646f696e6720746865206d616e75616c2073657269616c697a6174696f6e2e0001f800000e6052616e646f6d6e657373436f6c6c656374697665466c6970016052616e646f6d6e657373436f6c6c656374697665466c6970043852616e646f6d4d6174657269616c0100d50704000c610120536572696573206f6620626c6f636b20686561646572732066726f6d20746865206c61737420383120626c6f636b73207468617420616374732061732072616e646f6d2073656564206d6174657269616c2e2054686973610120697320617272616e67656420617320612072696e672062756666657220776974682060626c6f636b5f6e756d626572202520383160206265696e672074686520696e64657820696e746f20746865206056656360206f664420746865206f6c6465737420686173682e000000000f20426167734c6973740120426167734c6973740c244c6973744e6f6465730001040500d90704000c8020412073696e676c65206e6f64652c2077697468696e20736f6d65206261672e000501204e6f6465732073746f7265206c696e6b7320666f727761726420616e64206261636b2077697468696e207468656972207265737065637469766520626167732e4c436f756e746572466f724c6973744e6f646573010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170204c697374426167730001040528dd0704000c642041206261672073746f72656420696e2073746f726167652e0019012053746f7265732061206042616760207374727563742c2077686963682073746f726573206865616420616e64207461696c20706f696e7465727320746f20697473656c662e01d50501010104344261675468726573686f6c647315010919210300407a10f35a00006a70ccd4a96000009ef3397fbc660000a907ccd5306d00003d9a67fb0c740000a9bfa275577b0000a6fdf73217830000034f5d91538b0000132445651494000078081001629d00000302f63c45a70000392e6f7fc7b10000f59c23c6f2bc00004ae76aafd1c80000598a64846fd50000129fb243d8e200003f22e1ac18f1000033a4844c3e000100e2e51b895710010076a2c0b0732101006789b407a3330100793ed8d7f646010078131b81815b01000c1cf38a567101004437eeb68a8801009eb56d1434a10100335e9f156abb010067c3c7a545d701003218f340e1f40100de0b230d59140200699c11f5ca350200ad50a2c4565902009ae41c471e7f0200d0244e6745a70200f984ad51f2d10200ace7a7984dff0200a118325b822f0300ffa4c76dbe620300580bfd8532990300a9afce6812d30300109ad81b95100400d9caa519f551040038df488970970400bee1727949e10400cc73401fc62f0500b304f91831830500828bffb4d9db05001235383d143a0600a5b42a473a9e060036662d09ab080700f73aeab4cb790700b87e93d707f20700ffec23c0d1710800b84b0beca2f90800c9dcae7afc89090091752ba867230a0064f1cd4f76c60a003609be76c3730b0078655fdff32b0c00a407f5a5b6ef0c0052f61be7c5bf0d00da71bb70e79c0e000de9127eed870f001477987fb7811000ebee65ef328b11001269fe325ca5120033f8428b3fd113008ba57a13fa0f15001b2b60d0ba6216000d1d37d0c3ca17006c64fa5c6b4919002622c7411de01a00045bb9245c901c00233d83f6c25b1e00c8771c79064420003013fddef64a2200aa8b6e848172240082c096c4b2bc260016a3faebb72b29008296524ae1c12b00a636a865a4812e00d0e2d4509e6d31009c0a9a2796883400e4faafb27fd53700e6e64d367e573b000e4bd66de7113f0088b17db746084300b07def72603e470034de249635b84b00d48bd57b077a5000d0bd20ef5b885500b8f0467801e85a0010f88aee139e60003892925301b066009c95e4fc8e236d00b4126d10dffe730028b43e5976487b00a08a1c7a42078300b09ab083a0428b002846b2f463029400c861a42ade4e9d0050d23d4ae630a700805101a7e1b1b10038e501b2ccdbbc002016527844b9c800388924ba9055d50070ca35a4aebce200805fb1355cfbf0008035685d241f0001a0c3dcd96b361001d07862e87e50210160e852d09f7d330190662c5816cf460110274c3340575b01804be277a22971013082b92dfc5a880180d276075a01a101b0f511592b34bb014031745f580cd701802f6cee59a4f40140ff799b521814026075607d2986350260fde999a60d590200e5e71c91d07e02c0df2575cff2a602a07fd975899ad102a067009d4cf0fe0220dc29a1321f2f0320ff526b0a5562038088caa383c29803e05683fb5c9bd203401dd75d9516100400317e39a06e5104c0b071129de1960480b48c9192b1e00480e8124aad242f05c007ca7082858205007c13c45623db0540836fe869523906c0700f81466c9d0640f09c5017d00707c0e624b301e37807c0332ac78510f10780074ca1e4ca700800d5a9eb8c8bf80800a849588ed3880900804254142c220a80a25170e826c50a00e8d5fafc5e720b801df64e00792a0c80d4fe64f923ee0c006dd038ee19be0d001e90a494209b0e0010bf570e0a860f00da6a9db0b57f1000bf64afd810891100bb5b60cd17a31200f963f3aed6ce1300d5f004766a0d1500e099770202601600103d663bdfc71700de3e2d4158461900ecdbadb2d8dc1a0045c70007e38c1c00b8bde0fc11581e00ba5c2a211a402000407de46dcb462200dea55b03136e2400aaf1f3fcfcb7260014226f63b62629006492803e8fbc2b008486a6c7fc7b2e002cf05fc09b673100da63f7ed32823400f0b13fbdb5ce3700f291c41047503b00422a1a3c3c0a3f002c24212f20004300ac9342d4b6354700cc6ed7a400af4b00c4d022773e70500020017d89f57d5500f86387cef3dc5a008c4c7f7e54926000206207f284a36600cc1e05cb49166d00b42a7a70c4f07300d43a90e278397b0038f461ec53f78200a07264b9b1318b0048c9b3d464f09300007fe998bd3b9d0010058f17921ca70000dfaf7f469cb100e80c880bd6c4bc0058bdcb7ddca0c80038d18d37a03bd50030d55bf01ca1e200704ac01a0fdef0ffffffffffffffffacd020546865206c697374206f66207468726573686f6c64732073657061726174696e672074686520766172696f757320626167732e00490120496473206172652073657061726174656420696e746f20756e736f727465642062616773206163636f7264696e6720746f2074686569722073636f72652e205468697320737065636966696573207468656101207468726573686f6c64732073657061726174696e672074686520626167732e20416e20696427732062616720697320746865206c6172676573742062616720666f722077686963682074686520696427732073636f7265b8206973206c657373207468616e206f7220657175616c20746f20697473207570706572207468726573686f6c642e006501205768656e20696473206172652069746572617465642c2068696768657220626167732061726520697465726174656420636f6d706c6574656c79206265666f7265206c6f77657220626167732e2054686973206d65616e735901207468617420697465726174696f6e206973205f73656d692d736f727465645f3a20696473206f66206869676865722073636f72652074656e6420746f20636f6d65206265666f726520696473206f66206c6f7765722d012073636f72652c206275742070656572206964732077697468696e206120706172746963756c6172206261672061726520736f7274656420696e20696e73657274696f6e206f726465722e006820232045787072657373696e672074686520636f6e7374616e74004d01205468697320636f6e7374616e74206d75737420626520736f7274656420696e207374726963746c7920696e6372656173696e67206f726465722e204475706c6963617465206974656d7320617265206e6f742c207065726d69747465642e00410120546865726520697320616e20696d706c696564207570706572206c696d6974206f66206053636f72653a3a4d4158603b20746861742076616c756520646f6573206e6f74206e65656420746f2062652101207370656369666965642077697468696e20746865206261672e20466f7220616e792074776f207468726573686f6c64206c697374732c206966206f6e6520656e647320776974683101206053636f72653a3a4d4158602c20746865206f74686572206f6e6520646f6573206e6f742c20616e64207468657920617265206f746865727769736520657175616c2c207468652074776f7c206c697374732077696c6c20626568617665206964656e746963616c6c792e003820232043616c63756c6174696f6e005501204974206973207265636f6d6d656e64656420746f2067656e65726174652074686520736574206f66207468726573686f6c647320696e20612067656f6d6574726963207365726965732c2073756368207468617441012074686572652065786973747320736f6d6520636f6e7374616e7420726174696f2073756368207468617420607468726573686f6c645b6b202b20315d203d3d20287468726573686f6c645b6b5d202ad020636f6e7374616e745f726174696f292e6d6178287468726573686f6c645b6b5d202b2031296020666f7220616c6c20606b602e005901205468652068656c7065727320696e2074686520602f7574696c732f6672616d652f67656e65726174652d6261677360206d6f64756c652063616e2073696d706c69667920746869732063616c63756c6174696f6e2e002c2023204578616d706c6573005101202d20496620604261675468726573686f6c64733a3a67657428292e69735f656d7074792829602c207468656e20616c6c20696473206172652070757420696e746f207468652073616d65206261672c20616e64b0202020697465726174696f6e206973207374726963746c7920696e20696e73657274696f6e206f726465722e6101202d20496620604261675468726573686f6c64733a3a67657428292e6c656e2829203d3d203634602c20616e6420746865207468726573686f6c6473206172652064657465726d696e6564206163636f7264696e6720746f11012020207468652070726f63656475726520676976656e2061626f76652c207468656e2074686520636f6e7374616e7420726174696f20697320657175616c20746f20322e6501202d20496620604261675468726573686f6c64733a3a67657428292e6c656e2829203d3d20323030602c20616e6420746865207468726573686f6c6473206172652064657465726d696e6564206163636f7264696e6720746f59012020207468652070726f63656475726520676976656e2061626f76652c207468656e2074686520636f6e7374616e7420726174696f20697320617070726f78696d6174656c7920657175616c20746f20312e3234382e6101202d20496620746865207468726573686f6c64206c69737420626567696e7320605b312c20322c20332c202e2e2e5d602c207468656e20616e20696420776974682073636f72652030206f7220312077696c6c2066616c6cf0202020696e746f2062616720302c20616e20696420776974682073636f726520322077696c6c2066616c6c20696e746f2062616720312c206574632e00302023204d6967726174696f6e00610120496e20746865206576656e7420746861742074686973206c6973742065766572206368616e6765732c206120636f7079206f6620746865206f6c642062616773206c697374206d7573742062652072657461696e65642e5d012057697468207468617420604c6973743a3a6d696772617465602063616e2062652063616c6c65642c2077686963682077696c6c20706572666f726d2074686520617070726f707269617465206d6967726174696f6e2e01e107101c56657374696e67011c56657374696e67081c56657374696e670001040200e907040004d820496e666f726d6174696f6e20726567617264696e67207468652076657374696e67206f66206120676976656e206163636f756e742e3853746f7261676556657273696f6e0100f10704000c7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e003101204e6577206e6574776f726b732073746172742077697468206c61746573742076657273696f6e2c2061732064657465726d696e6564206279207468652067656e65736973206275696c642e01d90501050108444d696e5665737465645472616e736665721840aa821bce26000000000000000000000004e820546865206d696e696d756d20616d6f756e74207472616e7366657272656420746f2063616c6c20607665737465645f7472616e73666572602e4c4d617856657374696e675363686564756c657310101c0000000001f50711204d756c746973696701204d756c746973696704244d756c7469736967730001080502f907fd07040004942054686520736574206f66206f70656e206d756c7469736967206f7065726174696f6e732e01e1050109010c2c4465706f736974426173651840d042de1300000000000000000000000018590120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e672061206d756c746973696720657865637574696f6e206f7220746f842073746f726520612064697370617463682063616c6c20666f72206c617465722e00010120546869732069732068656c6420666f7220616e206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a652069733101206034202b2073697a656f662828426c6f636b4e756d6265722c2042616c616e63652c204163636f756e74496429296020627974657320616e642077686f7365206b65792073697a652069738020603332202b2073697a656f66284163636f756e74496429602062797465732e344465706f736974466163746f72184040cd2d030000000000000000000000000c55012054686520616d6f756e74206f662063757272656e6379206e65656465642070657220756e6974207468726573686f6c64207768656e206372656174696e672061206d756c746973696720657865637574696f6e2e00250120546869732069732068656c6420666f7220616464696e67203332206279746573206d6f726520696e746f2061207072652d6578697374696e672073746f726167652076616c75652e384d61785369676e61746f7269657310106400000004ec20546865206d6178696d756d20616d6f756e74206f66207369676e61746f7269657320616c6c6f77656420696e20746865206d756c74697369672e010508121c436f756e63696c011c436f756e63696c24145374616765010009082402010000000000000004742043757272656e7420636f756e63696c20766f74696e6720737461676538436f756e63696c4d656d6265727301001d08040004602043757272656e7420636f756e63696c206d656d626572732843616e64696461746573000104022829080400041101204d6170206f6620616c6c2063616e64696461746573207468617420657665722063616e6469646174656420616e6420686176656e277420756e7374616b65207965742e50416e6e6f756e63656d656e74506572696f644e72010028200000000000000000085d0120496e646578206f66207468652063757272656e742063616e64696461637920706572696f642e20497420697320696e6372656d656e74656420657665727974696d6520616e6e6f756e63656d656e7420706572696f6420207374617274732e18427564676574010018400000000000000000000000000000000004c82042756467657420666f722074686520636f756e63696c277320656c6563746564206d656d6265727320726577617264732e484e6578745265776172645061796d656e7473010010100000000004290120546865206e65787420626c6f636b20696e2077686963682074686520656c656374656420636f756e63696c206d656d62657220726577617264732077696c6c2062652070617965642e404e657874427564676574526566696c6c010010100000000004d820546865206e65787420626c6f636b20696e20776869636820746865206275646765742077696c6c20626520696e637265617365642e3c427564676574496e6372656d656e74010018400000000000000000000000000000000004d420416d6f756e74206f662062616c616e636520746f20626520726566696c6c65642065766572792062756467657420706572696f643c436f756e63696c6f725265776172640100184000000000000000000000000000000000046c20436f756e63696c6f72207265776172642070657220626c6f636b01e90501110124684d696e4e756d6265724f66457874726143616e64696461746573101000000000080901204d696e696d756d206e756d626572206f662065787472612063616e64696461746573206e656564656420666f72207468652076616c696420656c656374696f6e2e2d01204e756d626572206f6620746f74616c2063616e6469646174657320697320657175616c20746f20636f756e63696c2073697a6520706c75732065787472612063616e646964617465732e2c436f756e63696c53697a65101003000000045420436f756e63696c206d656d62657220636f756e74444d696e43616e6469646174655374616b651840a010a012d3eb050000000000000000000490204d696e696d756d207374616b652063616e6469646174652068617320746f206c6f636b60416e6e6f756e63696e67506572696f644475726174696f6e101040fa01000474204475726174696f6e206f6620616e6e6f6e63696e6720706572696f644849646c65506572696f644475726174696f6e1010010000000460204475726174696f6e206f662069646c6520706572696f6464456c65637465644d656d626572526577617264506572696f6410104038000004a020496e74657276616c20666f72206175746f6d6174696320726577617264207061796d656e74732e48427564676574526566696c6c506572696f6410104038000004ac20496e74657276616c206265747765656e206175746f6d617469632062756467657420726566696c6c732e3c43616e6469646163794c6f636b496425042063616e6469646163048c204578706f72747320636f6e7374202d2063616e646964616379206c6f636b2069642e3c436f756e63696c6f724c6f636b4964250420636f756e63696c6f048c204578706f72747320636f6e7374202d20636f756e63696c6f72206c6f636b2069642e012d0813285265666572656e64756d014c496e7374616e6365315265666572656e64756d0c14537461676501003108040004682043757272656e74207265666572656e64756d2073746167652e14566f74657301010402004108e400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018510120566f746573206361737420696e20746865207265666572656e64756d2e2041206e6577207265636f726420697320616464656420746f2074686973206d6170207768656e20612075736572206361737473206134207365616c656420766f74652e0101204974206973206d6f646966696564207768656e206120757365722072657665616c732074686520766f7465277320636f6d6d69746d656e742070726f6f662e55012041207265636f72642069732066696e616c6c792072656d6f766564207768656e20746865207573657220756e7374616b65732c2077686963682063616e2068617070656e20647572696e67206120766f74696e679c207374616765206f72206166746572207468652063757272656e74206379636c6520656e64732ef82041207374616b6520666f72206120766f74652063616e2062652072657573656420696e20667574757265207265666572656e64756d206379636c65732e404163636f756e74734f707465644f757401010402007c0004f4204163636f756e74732074686174207065726d616e656e746c79206f70746564206f7574206f6620766f74696e6720696e207265666572656e64756d2e01ed0501190114344d617853616c744c656e67746828202000000000000000085d01204d6178696d756d206c656e677468206f6620766f746520636f6d6d69746d656e742073616c742e20557365206c656e677468207468617420656e737572657320756e697175656e65737320666f722068617368696e675020652e672e207374643a3a7536343a3a4d41582e44566f746553746167654475726174696f6e1010c0a8000004b0204475726174696f6e206f6620766f74696e6720737461676520286e756d626572206f6620626c6f636b73294c52657665616c53746167654475726174696f6e1010c0a8000004bc204475726174696f6e206f662072657665616c696e6720737461676520286e756d626572206f6620626c6f636b7329304d696e696d756d5374616b651840a41a130d8401000000000000000000000480204d696e696d756d207374616b65206e656564656420666f7220766f74696e67505374616b696e6748616e646c65724c6f636b4964250420766f74696e67202004a4204578706f72747320636f6e7374202d207374616b696e672068616e646c6572206c6f636b2069642e014508141c4d656d6265727301284d656d6265727368697020304e6578744d656d6265724964010028200000000000000000084501204d656d626572496420746f2061737369676e20746f206e657874206d656d626572207468617420697320616464656420746f207468652072656769737472792c20616e6420697320616c736f20746865e820746f74616c206e756d626572206f66206d656d6265727320637265617465642e204d656d626572496473207374617274206174205a65726f2e384d656d626572736869704279496400010402284908040004d0204d617070696e67206f66206d656d626572277320696420746f207468656972206d656d626572736869702070726f66696c652e504d656d6265724964427948616e646c6548617368010104022c28200000000000000000040501205265676973746572656420756e697175652068616e646c6573206861736820616e64207468656972206d617070696e6720746f207468656972206f776e65722e2c526566657272616c437574010008040004410120526566657272616c206375742070657263656e74206f6620746865206d656d626572736869702066656520746f2072656365697665206f6e20627579696e6720746865206d656d626572736869702e3c4d656d62657273686970507269636501001840aa821bce26000000000000000000000004682043757272656e74206d656d626572736869702070726963652e58496e697469616c496e7669746174696f6e436f756e74010010100000000004e820496e697469616c20696e7669746174696f6e20636f756e7420666f7220746865206e65776c7920626f75676874206d656d626572736869702e60496e697469616c496e7669746174696f6e42616c616e63650100184034c10d6713000000000000000000000004cc20496e697469616c20696e7669746174696f6e2062616c616e636520666f722074686520696e7669746564206d656d6265722e705374616b696e674163636f756e7449644d656d62657253746174757301010402004d082400000000000000000004250120446f75626c65206f662061207374616b696e67206163636f756e7420696420616e64206d656d62657220696420746f2074686520636f6e6669726d6174696f6e207374617475732e01f105012901185844656661756c744d656d6265727368697050726963651840aa821bce26000000000000000000000004a0204578706f72747320636f6e7374202d2064656661756c74206d656d62657273686970206665652e64526566657272616c4375744d6178696d756d50657263656e74080432044901204578706f72747320636f6e7374202d206d6178696d756d2070657263656e742076616c7565206f6620746865206d656d626572736869702066656520666f722074686520726566657272616c206375742e7c44656661756c74496e697469616c496e7669746174696f6e42616c616e6365184034c10d6713000000000000000000000004e0204578706f72747320636f6e7374202d2064656661756c742062616c616e636520666f722074686520696e7669746564206d656d6265722e3843616e6469646174655374616b651840a41a130d84010000000000000000000004f8204578706f72747320636f6e7374202d205374616b65206e656564656420746f2063616e646964617465206173207374616b696e67206163636f756e742e4c496e76697465644d656d6265724c6f636b4964250420696e766974656d6204a0204578706f72747320636f6e7374202d20696e7669746564206d656d626572206c6f636b2069642e585374616b696e6743616e6469646174654c6f636b4964250420626f756e6473746104ac204578706f72747320636f6e7374202d207374616b696e672063616e646964617465206c6f636b2069642e0151081514466f72756d0124466f72756d5f315f31203043617465676f727942794964010104022855083d010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004cc204d61702063617465676f7279206964656e74696669657220746f20636f72726573706f6e64696e672063617465676f72792e384e65787443617465676f727949640100282000000000000000000411012043617465676f7279206964656e7469666965722076616c756520746f206265207573656420666f7220746865206e6578742043617465676f727920637265617465642e3c43617465676f7279436f756e746572010028200000000000000000049420436f756e74657220666f7220616c6c206578697374696e672063617465676f726965732e2854687265616442794964010108020279035d08a4000000000000000000000000000000000000000000000000000000000000000000000000000000000004bc204d617020746872656164206964656e74696669657220746f20636f72726573706f6e64696e67207468726561642e304e657874546872656164496401002820000000000000000004090120546872656164206964656e7469666965722076616c756520746f206265207573656420666f72206e6578742054687265616420696e20746872656164427949642e284e657874506f7374496401002820000000000000000004f020506f7374206964656e7469666965722076616c756520746f206265207573656420666f7220666f72206e65787420706f737420637265617465642e4c43617465676f727942794d6f64657261746f72010108020279037c000480204d6f64657261746f722073657420666f7220656163682043617465676f727920506f737442794964010108020279036108150100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004ac204d617020706f7374206964656e74696669657220746f20636f72726573706f6e64696e6720706f73742e01f505015101102c506f73744465706f7369741840b85c5c730000000000000000000000000838204578706f72747320636f6e737480204465706f736974206e656564656420746f20637265617465206120706f7374345468726561644465706f73697418402b907c6f0000000000000000000000000488204465706f736974206e656564656420746f20637265617465206120746872656164804d617844697265637453756263617465676f72696573496e43617465676f7279282005000000000000000484204d617844697265637453756263617465676f72696573496e43617465676f7279484d6178546f74616c43617465676f7269657328202800000000000000044c204d6178546f74616c43617465676f726965730165081630436f6e737469747574696f6e0130436f6e737469747574696f6e0430436f6e737469747574696f6e010069088000000000000000000000000000000000000000000000000000000000000000000001f905016d0100001718426f756e74790118426f756e74791420426f756e7469657301010402286d087d010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044020426f756e74792073746f726167652e4c426f756e7479436f6e747269627574696f6e7301010802028108850880000000000000000000000000000000000063fa6c000000000000000000000000044d0120446f75626c65206d617020666f7220626f756e74792066756e64696e672e2049742073746f7265732061206d656d626572206f7220636f756e63696c2066756e64696e6720666f7220626f756e746965732e2c426f756e7479436f756e74010010100000000004b820436f756e74206f6620616c6c20626f756e7469657320746861742068617665206265656e20637265617465642e1c456e74726965730001080202790389080400046020576f726b20656e7472792073746f72616765206d61702e28456e747279436f756e74010010100000000004c820436f756e74206f6620616c6c20776f726b20656e747269657320746861742068617665206265656e20637265617465642e01fd05017101105c436c6f736564436f6e747261637453697a654c696d6974101032000000044d01204578706f72747320636f6e7374202d206d617820776f726b20656e747279206e756d62657220666f72206120636c6f736564206173737572616e6365207479706520636f6e747261637420626f756e74792e4c4d696e576f726b456e7472616e745374616b6518409ecc4e6e00000000000000000000000004d4204578706f72747320636f6e7374202d206d696e20776f726b20656e7472616e74207374616b6520666f72206120626f756e74792e6846756e6465725374617465426c6f6174426f6e64416d6f756e7418400063fa6c00000000000000000000000004f4204578706f72747320636f6e7374202d2066756e64657220737461746520626c6f617420626f6e6420616d6f756e7420666f72206120626f756e74792e6c43726561746f725374617465426c6f6174426f6e64416d6f756e7418402211286d00000000000000000000000004f8204578706f72747320636f6e7374202d2063726561746f7220737461746520626c6f617420626f6e6420616d6f756e7420666f72206120626f756e74792e018d0818404a6f7973747265616d5574696c69747901404a6f7973747265616d5574696c6974790001010601950100019108191c436f6e74656e74011c436f6e74656e74842c4368616e6e656c427949640101040228a901a10100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024566964656f42794964010104022895086c00000000000000000000000000000000000000000000000000000000344e6578744368616e6e656c4964010028200000000000000000002c4e657874566964656f496401002820000000000000000000384e6578745472616e73666572496401002820000000000000000000484e65787443757261746f7247726f75704964010028200000000000000000004043757261746f7247726f7570427949640101040228c1080c0000000028436f6d6d69746d656e7401002c80000000000000000000000000000000000000000000000000000000000000000000684368616e6e656c5374617465426c6f6174426f6e6456616c756501001840000000000000000000000000000000000425012054686520737461746520626c6f617420626f6e6420666f7220746865206368616e6e656c202868656c70732070726576656e74696e672074686520737461746520626c6f6174292e60566964656f5374617465426c6f6174426f6e6456616c7565010018400000000000000000000000000000000004190154686520737461746520626c6f617420626f6e6420666f722074686520766964656f202868656c70732070726576656e74696e672074686520737461746520626c6f6174292e444d6178436173686f7574416c6c6f776564010018400000000000000000000000000000000000444d696e436173686f7574416c6c6f776564010018400000000000000000000000000000000000584368616e6e656c436173686f757473456e61626c6564010098040000484d696e41756374696f6e4475726174696f6e01001010000000000454204d696e2061756374696f6e206475726174696f6e484d617841756374696f6e4475726174696f6e01001010000000000454204d61782061756374696f6e206475726174696f6e644d696e41756374696f6e457874656e73696f6e506572696f6401001010000000000474204d696e2061756374696f6e20657874656e73696f6e20706572696f64644d617841756374696f6e457874656e73696f6e506572696f6401001010000000000474204d61782061756374696f6e20657874656e73696f6e20706572696f64484d696e4269644c6f636b4475726174696f6e01001010000000000458204d696e20626964206c6f636b206475726174696f6e484d61784269644c6f636b4475726174696f6e01001010000000000458204d617820626964206c6f636b206475726174696f6e404d696e5374617274696e67507269636501001840000000000000000000000000000000000468204d696e2061756374696f6e2073746172696e67207072696365404d61785374617274696e67507269636501001840000000000000000000000000000000000468204d61782061756374696f6e2073746172696e67207072696365444d696e43726561746f72526f79616c74790100ac1000000000047c204d696e2063726561746f7220726f79616c74792070657263656e74616765444d617843726561746f72526f79616c74790100ac1000000000047c204d61782063726561746f7220726f79616c74792070657263656e74616765284d696e4269645374657001001840000000000000000000000000000000000454204d696e2061756374696f6e206269642073746570284d61784269645374657001001840000000000000000000000000000000000454204d61782061756374696f6e20626964207374657054506c617466726f6d46656550657263656e746167650100ac1000000000046020506c6174666f726d206665652070657263656e746167655c41756374696f6e53746172747341744d617844656c7461010010100000000004b8204d61782064656c7461206265747765656e2063757272656e7420626c6f636b20616e6420737461727473206174784f70656e41756374696f6e4269644279566964656f416e644d656d62657201010802027903dd087000000000000000000000000000000000000000000000000000000000045c204269647320666f72206f70656e2061756374696f6e7354476c6f62616c4461696c794e6674436f756e7465720100f90130000000000000000000000000046820476c6f62616c206461696c79204e465420636f756e7465722e58476c6f62616c5765656b6c794e6674436f756e7465720100f90130000000000000000000000000046c20476c6f62616c207765656b6c79204e465420636f756e7465722e4c476c6f62616c4461696c794e66744c696d69740100f50130000000000000000000000000046020476c6f62616c206461696c79204e4654206c696d69742e50476c6f62616c5765656b6c794e66744c696d69740100f50130000000000000000000000000046420476c6f62616c207765656b6c79204e4654206c696d69742e404e66744c696d697473456e61626c656401009804000868204e4654206c696d69747320656e61626c6564206f72206e6f74a02043616e206265207570646174656420696e20666c696768742062792074686520436f756e63696c01050601a101246c4d61784e756d6265724f6643757261746f727350657247726f757010100a00000004c4204578706f72747320636f6e7374202d206d6178206e756d626572206f662063757261746f7273207065722067726f7570ac4d61784b65797350657243757261746f7247726f75705065726d697373696f6e7342794c6576656c4d6170101019000000045d01204578706f72747320636f6e7374202d206d6178206e756d626572206f66206b657973207065722063757261746f725f67726f75702e7065726d697373696f6e735f62795f6c6576656c206d617020696e7374616e6365704d61784e667441756374696f6e57686974656c6973744c656e67746810101400000004c4204578706f72747320636f6e7374202d206d6178206e66742061756374696f6e2077686974656c697374206c656e6774686844656661756c74476c6f62616c4461696c794e66744c696d6974f5013064000000000000004038000004c0204578706f72747320636f6e7374202d2064656661756c7420676c6f62616c206461696c79204e4654206c696d69742e6c44656661756c74476c6f62616c5765656b6c794e66744c696d6974f501309001000000000000c089010004c4204578706f72747320636f6e7374202d2064656661756c7420676c6f62616c207765656b6c79204e4654206c696d69742e6c44656661756c744368616e6e656c4461696c794e66744c696d6974f501300a000000000000004038000004c4204578706f72747320636f6e7374202d2064656661756c74206368616e6e656c206461696c79204e4654206c696d69742e7044656661756c744368616e6e656c5765656b6c794e66744c696d6974f501302800000000000000c089010004c8204578706f72747320636f6e7374202d2064656661756c74206368616e6e656c207765656b6c79204e4654206c696d69742e684d696e696d756d436173686f7574416c6c6f7765644c696d69741840a41a130d84010000000000000000000004a8204578706f727420636f6e7374202d206d696e20636173686f757420616c6c6f776564206c696d697473684d6178696d756d436173686f7574416c6c6f7765644c696d6974184040a640ba3e363b00000000000000000004a8204578706f727420636f6e7374202d206d617820636173686f757420616c6c6f776564206c696d69747301e1081a1c53746f72616765011c53746f726167654c4055706c6f6164696e67426c6f636b6564010098040004a020446566696e6573207768657468657220616c6c206e65772075706c6f61647320626c6f636b65641042616773010104029502e50848000000000000000000000000000000000000044820426167732073746f72616765206d61702e4c4e65787453746f726167654275636b6574496401002820000000000000000004ac2053746f72616765206275636b657420696420636f756e7465722e20537461727473206174207a65726f2e404e657874446174614f626a656374496401002820000000000000000004a02044617461206f626a65637420696420636f756e7465722e20537461727473206174207a65726f2e4453746f726167654275636b6574427949640001040228f108040004442053746f72616765206275636b6574732e24426c61636b6c69737401010402f9087c00048020426c61636b6c69737465642064617461206f626a656374206861736865732e5043757272656e74426c61636b6c69737453697a65010028200000000000000000047820426c61636b6c69737420636f6c6c656374696f6e20636f756e7465722e60446174614f626a6563745065724d65676162797465466565010018400000000000000000000000000000000004b02053697a652062617365642070726963696e67206f66206e6577206f626a656374732075706c6f616465642e6453746f726167654275636b6574735065724261674c696d6974010010100000000004a0202253746f72616765206275636b657473207065722062616722206e756d626572206c696d69742e68566f75636865724d61784f626a6563747353697a654c696d697401002820000000000000000004f820224d6178206f626a656374732073697a6520666f7220612073746f72616765206275636b657420766f756368657222206e756d626572206c696d69742e70566f75636865724d61784f626a656374734e756d6265724c696d697401002820000000000000000004050120224d6178206f626a65637473206e756d62657220666f7220612073746f7261676520206275636b657420766f756368657222206e756d626572206c696d69742e74446174614f626a6563745374617465426c6f6174426f6e6456616c756501001840000000000000000000000000000000000439012054686520737461746520626c6f617420626f6e6420666f72207468652064617461206f626a65637473202868656c70732070726576656e74696e672074686520737461746520626c6f6174292e6844796e616d69634261674372656174696f6e506f6c696369657301010402b102fd0814000000000004c82044796e616d69634261674372656174696f6e506f6c6963792062792062616720747970652073746f72616765206d61702e3c446174614f626a65637473427949640101080202050909096c00000000000000000000000000000000000000000000000000000004b0202744617461206f626a6563747320666f722062616773272073746f7261676520646f75626c65206d61702e784e657874446973747269627574696f6e4275636b657446616d696c79496401002820000000000000000004dc20446973747269627574696f6e206275636b65742066616d696c7920696420636f756e7465722e20537461727473206174207a65726f2e70446973747269627574696f6e4275636b657446616d696c794279496401010402280d09200000000000000000047820446973747269627574696f6e206275636b65742066616d696c6965732e80446973747269627574696f6e4275636b6574427946616d696c794964427949640101080202790311093000000000000000000000000004a82027446973747269627574696f6e206275636b6574272073746f7261676520646f75626c65206d61702e78446973747269627574696f6e4275636b657446616d696c794e756d62657201002820000000000000000004f020546f74616c206e756d626572206f6620646973747269627574696f6e206275636b65742066616d696c69657320696e207468652073797374656d2e78446973747269627574696f6e4275636b6574735065724261674c696d6974010010100000000004b42022446973747269627574696f6e206275636b657473207065722062616722206e756d626572206c696d69742e013506018d022c48426c61636b6c69737453697a654c696d69742820e803000000000000040501204578706f72747320636f6e7374202d206d6178696d756d2073697a65206f662074686520226861736820626c61636b6c6973742220636f6c6c656374696f6e2e5c4d696e53746f726167654275636b65747350657242616710100300000004ec204578706f72747320636f6e7374202d206d696e696d756d206e756d626572206f662073746f72616765206275636b65747320706572206261672e5c4d617853746f726167654275636b65747350657242616710100d00000004ec204578706f72747320636f6e7374202d206d6178696d756d206e756d626572206f662073746f72616765206275636b65747320706572206261672e704d696e446973747269627574696f6e4275636b657473506572426167101001000000040101204578706f72747320636f6e7374202d206d696e696d756d206e756d626572206f6620646973747269627574696f6e206275636b65747320706572206261672e704d6178446973747269627574696f6e4275636b657473506572426167101033000000040101204578706f72747320636f6e7374202d206d6178696d756d206e756d626572206f6620646973747269627574696f6e206275636b65747320706572206261672eb444656661756c744d656d62657244796e616d69634261674e756d6265724f6653746f726167654275636b657473101005000000085101204578706f72747320636f6e7374202d207468652064656661756c742064796e616d696320626167206372656174696f6e20706f6c69637920666f72206d656d62657273202873746f72616765206275636b657424206e756d626572292eb844656661756c744368616e6e656c44796e616d69634261674e756d6265724f6653746f726167654275636b657473101005000000085501204578706f72747320636f6e7374202d207468652064656661756c742064796e616d696320626167206372656174696f6e20706f6c69637920666f72206368616e6e656c73202873746f72616765206275636b657424206e756d626572292e844d6178446973747269627574696f6e4275636b657446616d696c794e756d6265722820c80000000000000004fc204578706f72747320636f6e7374202d206d617820616c6c6f77656420646973747269627574696f6e206275636b65742066616d696c79206e756d6265722ec84d61784e756d6265724f6650656e64696e67496e7669746174696f6e73506572446973747269627574696f6e4275636b6574101014000000042d01204578706f72747320636f6e7374202d206d6178206e756d626572206f662070656e64696e6720696e7669746174696f6e732070657220646973747269627574696f6e206275636b65742ea44d61784e756d6265724f664f70657261746f7273506572446973747269627574696f6e4275636b6574101014000000040501204578706f72747320636f6e7374202d206d6178206e756d626572206f66206f70657261746f72732070657220646973747269627574696f6e206275636b65742e444d6178446174614f626a65637453697a652820000000000f00000004bc204578706f72747320636f6e7374202d206d61782064617461206f626a6563742073697a6520696e2062797465732e011d091b3050726f6a656374546f6b656e0114546f6b656e246c4163636f756e74496e666f4279546f6b656e416e644d656d626572010108020279032109b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041d0120446f75626c65206d617020546f6b656e49642078204d656d6265724964203d3e204163636f756e744461746120666f72206d616e6167696e67206163636f756e74206461746134546f6b656e496e666f4279496401010402284909cd010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004dc206d617020546f6b656e4964203d3e20546f6b656e4461746120746f20726574726965766520746f6b656e20696e666f726d6174696f6e2c4e657874546f6b656e4964010028200000000000000000043c20546f6b656e204964206e6f6e63652c53796d626f6c7355736564010104022c7c00046c2053657420666f722074686520746f6b656e732073796d626f6c7324426c6f6174426f6e64010018400000000000000000000000000000000004b820426c6f617420426f6e642076616c7565207573656420647572696e67206163636f756e74206372656174696f6e3c4d696e53616c654475726174696f6e01001010000000000484204d696e696d756d206475726174696f6e206f66206120746f6b656e2073616c655c4d696e526576656e756553706c69744475726174696f6e010010100000000004a8204d696e696d756d20726576656e75652073706c6974206475726174696f6e20636f6e73747261696e74684d696e526576656e756553706c697454696d65546f5374617274010010100000000004bc204d696e696d756d20726576656e75652073706c69742074696d6520746f20737461727420636f6e73747261696e743c53616c65506c6174666f726d4665650100d5021000000000044d0120506c6174666f726d20666565202870657263656e74616765292063686172676564206f6e20746f70206f6620656163682073616c652070757263686173652028696e204a4f592920616e64206275726e656401390601c102000165091c3c50726f706f73616c73456e67696e65013850726f706f73616c456e67696e65142450726f706f73616c73010104021069090101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460204d61702070726f706f73616c206279206974732069642e3450726f706f73616c436f756e74010010100000000004bc20436f756e74206f6620616c6c2070726f706f73616c7320746861742068617665206265656e20637265617465642e50446973706174636861626c6543616c6c436f646501010402107509040004b4204d61702070726f706f73616c2065786563757461626c6520636f64652062792070726f706f73616c2069642e4c41637469766550726f706f73616c436f756e740100101000000000046c20436f756e74206f66206163746976652070726f706f73616c732e6c566f7465457869737473427950726f706f73616c4279566f746572010108020279093d03040104290120446f75626c65206d617020666f722070726576656e74696e67206475706c696361746520766f7465732e2053686f756c6420626520636c65616e65642061667465722075736167652e016106012903183c43616e63656c6c6174696f6e4665651840aa821bce260000000000000000000000047901204578706f72747320636f6e7374202d2074686520666565206973206170706c696564207768656e2063616e63656c207468652070726f706f73616c2e20412066656520776f756c6420626520736c617368656420286275726e6564292e3052656a656374696f6e4665651840528d8906c20000000000000000000000084501204578706f72747320636f6e7374202d202074686520666565206973206170706c696564207768656e207468652070726f706f73616c20676574732072656a65637465642e20412066656520776f756c645420626520736c617368656420286275726e6564292e385469746c654d61784c656e67746810102800000004d0204578706f72747320636f6e7374202d20206d617820616c6c6f7765642070726f706f73616c207469746c65206c656e6774682e504465736372697074696f6e4d61784c656e6774681010b80b000004e8204578706f72747320636f6e7374202d20206d617820616c6c6f7765642070726f706f73616c206465736372697074696f6e206c656e6774682e584d617841637469766550726f706f73616c4c696d697410101400000004ec204578706f72747320636f6e7374202d20206d61782073696d756c74616e656f7573206163746976652070726f706f73616c73206e756d6265722e505374616b696e6748616e646c65724c6f636b496425042070726f706f73616c04a4204578706f72747320636f6e7374202d207374616b696e672068616e646c6572206c6f636b2069642e017d091d4c50726f706f73616c7344697363757373696f6e014850726f706f73616c44697363757373696f6e10285468726561644279496401010402288109340000000000000000000000000004bc204d617020746872656164206964656e74696669657220746f20636f72726573706f6e64696e67207468726561642e2c546872656164436f756e7401002820000000000000000004b420436f756e74206f6620616c6c207468726561647320746861742068617665206265656e20637265617465642e50506f737454687265616449644279506f73744964010108020279038d0974000000000000000000000000000000000000000000000000000000000004c4204d61702074687265616420696420616e6420706f737420696420746f20636f72726573706f6e64696e6720706f73742e24506f7374436f756e7401002820000000000000000004ac20436f756e74206f6620616c6c20706f73747320746861742068617665206265656e20637265617465642e0165060141030c404d617857686974654c69737453697a65101014000000040901204578706f72747320636f6e7374202d20617574686f72206c6973742073697a65206c696d697420666f722074686520436c6f7365642064697363757373696f6e2e2c506f73744465706f7369741840052e276d00000000000000000000000004a0204578706f72747320636f6e7374202d2066656520666f72206372656174696e67206120706f737430506f73744c69666554696d65101058020000043d01204578706f72747320636f6e7374202d206d6178696d756d206e756d626572206f6620626c6f636b73206265666f7265206120706f73742063616e2062652065726173656420627920616e796f6e650191091e3850726f706f73616c73436f646578013850726f706f73616c73436f64657804505468726561644964427950726f706f73616c496401010402102820000000000000000004b0204d61702070726f706f73616c20696420746f206974732064697363757373696f6e2074687265616420696401690601490368985365744d617856616c696461746f72436f756e7450726f706f73616c506172616d65746572736d09b4c0890100401901006400000064000000640000006400000001a010a012d3eb050000000000000000000200000004dc204578706f7274732027536574204d61782056616c696461746f7220436f756e74272070726f706f73616c20706172616d65746572732e8052756e74696d655570677261646550726f706f73616c506172616d65746572736d09b4c0890100401901006400000064000000640000006400000001a010a012d3eb050000000000000000000200000004bc204578706f727473202752756e74696d652055706772616465272070726f706f73616c20706172616d65746572732e605369676e616c50726f706f73616c506172616d65746572736d09b4c0a80000b004000064000000640000006400000064000000011068761b959700000000000000000000010000000498204578706f72747320275369676e616c272070726f706f73616c20706172616d65746572732e8046756e64696e675265717565737450726f706f73616c506172616d65746572736d09b4c0a80000b00400004200000042000000640000006400000001a41a130d8401000000000000000000000100000004bc204578706f727473202746756e64696e672052657175657374272070726f706f73616c20706172616d65746572732ebc437265617465576f726b696e6747726f75704c6561644f70656e696e6750726f706f73616c506172616d65746572736d09b4c0a80000b00400004200000042000000640000006400000001680abf82280f0000000000000000000001000000040501204578706f727473202743726561746520576f726b696e672047726f7570204c656164204f70656e696e67272070726f706f73616c20706172616d65746572732ea446696c6c576f726b696e6747726f75704f70656e696e6750726f706f73616c506172616d65746572736d09b4c0a80000b0040000420000004200000064000000640000000134855f419407000000000000000000000100000004fc204578706f727473202746696c6c20576f726b696e672047726f7570204c656164204f70656e696e67272070726f706f73616c20706172616d65746572732ea8557064617465576f726b696e6747726f757042756467657450726f706f73616c506172616d65746572736d09b4c0a80000b0040000420000004200000064000000640000000134855f419407000000000000000000000100000004ec204578706f727473202755706461746520576f726b696e672047726f757020427564676574272070726f706f73616c20706172616d65746572732ebc4465637265617365576f726b696e6747726f75704c6561645374616b6550726f706f73616c506172616d65746572736d09b4c0a80000b0040000640000006400000064000000640000000134855f4194070000000000000000000001000000040501204578706f7274732027446563726561736520576f726b696e672047726f7570204c656164205374616b65272070726f706f73616c20706172616d65746572732e9c536c617368576f726b696e6747726f75704c65616450726f706f73616c506172616d65746572736d09b4c0a80000b0040000420000004200000064000000640000000134855f419407000000000000000000000100000004e0204578706f7274732027536c61736820576f726b696e672047726f7570204c656164272070726f706f73616c20706172616d65746572732eac536574576f726b696e6747726f75704c65616452657761726450726f706f73616c506172616d65746572736d09b4c0a80000b0040000420000004200000064000000640000000134855f419407000000000000000000000100000004f4204578706f727473202753657420576f726b696e672047726f7570204c65616420526577617264272070726f706f73616c20706172616d65746572732eac5465726d696e617465576f726b696e6747726f75704c65616450726f706f73616c506172616d65746572736d09b4c0a80000b0040000420000004200000064000000640000000134855f419407000000000000000000000100000004f0204578706f72747320275465726d696e61746520576f726b696e672047726f7570204c656164272070726f706f73616c20706172616d65746572732e8c416d656e64436f6e737469747574696f6e50726f706f73616c506172616d65746572736d09b4081a01004038000050000000640000003c0000005000000001680abf82280f000000000000000000000200000004c8204578706f7274732027416d656e6420436f6e737469747574696f6e272070726f706f73616c20706172616d65746572732ebc43616e63656c576f726b696e6747726f75704c6561644f70656e696e6750726f706f73616c506172616d65746572736d09b4c0a80000b0040000420000004200000064000000640000000134855f4194070000000000000000000001000000040501204578706f727473202743616e63656c20576f726b696e672047726f7570204c656164204f70656e696e67272070726f706f73616c20706172616d65746572732e905365744d656d62657273686970507269636550726f706f73616c506172616d65746572736d09b4c0a80000b0040000420000004200000064000000640000000134855f419407000000000000000000000100000004d0204578706f7274732027536574204d656d62657273686970205072696365272070726f706f73616c20706172616d65746572732eac536574436f756e63696c427564676574496e6372656d656e7450726f706f73616c506172616d65746572736d09b44019010040190100640000006400000064000000640000000120d0ec362a2f010000000000000000000200000004f0204578706f727473206053657420436f756e63696c2042756467657420496e6372656d656e74602070726f706f73616c20706172616d65746572732e90536574436f756e63696c6f7252657761726450726f706f73616c506172616d65746572736d09b480700000c0a80000640000006400000064000000640000000120d0ec362a2f0100000000000000000002000000042101204578706f727473206053657420436f756e63696c6f72205265776172642050726f706f73616c20506172616d6574657273602070726f706f73616c20706172616d65746572732eb4536574496e697469616c496e7669746174696f6e42616c616e636550726f706f73616c506172616d65746572736d09b480700000b00400004200000042000000640000006400000001d0147e05511e000000000000000000000100000004f8204578706f727473206053657420496e697469616c20496e7669746174696f6e2042616c616e6365602070726f706f73616c20706172616d65746572732e90536574496e7669746174696f6e436f756e7450726f706f73616c506172616d65746572736d09b4c0a80000b0040000420000004200000064000000640000000134855f419407000000000000000000000100000000c85365744d656d626572736869704c656164496e7669746174696f6e51756f746150726f706f73616c506172616d65746572736d09b4c0a80000b0040000420000004200000064000000640000000134855f41940700000000000000000000010000000080536574526566657272616c43757450726f706f73616c506172616d65746572736d09b4c0a80000b0040000420000004200000064000000640000000134855f419407000000000000000000000100000000785665746f50726f706f73616c50726f706f73616c506172616d65746572736d09b4403800000000000064000000640000006400000064000000011068761b959700000000000000000000010000000098557064617465476c6f62616c4e66744c696d697450726f706f73616c506172616d65746572736d09b480700000b00400004200000042000000640000006400000001680abf82280f000000000000000000000100000000985570646174654368616e6e656c5061796f75747350726f706f73616c506172616d65746572736d09b4c0890100403800004200000064000000640000006400000001680abf82280f0000000000000000000001000000009046756e64696e675265717565737450726f706f73616c4d6178546f74616c416d6f756e741840a010a012d3eb0500000000000000000004c4204d6178696d756d20746f74616c20616d6f756e7420696e2066756e64696e6720726571756573742070726f706f73616c8446756e64696e675265717565737450726f706f73616c4d61784163636f756e747310101400000004d0204d6178206e756d626572206f66206163636f756e7473207065722066756e64696e6720726571756573742070726f706f73616ca45365744d617856616c696461746f72436f756e7450726f706f73616c4d617856616c696461746f7273101064000000041501204d617820616c6c6f776564206e756d626572206f662076616c696461746f727320696e20736574206d61782076616c696461746f7220636f756e742070726f706f73616c0195091f44466f72756d576f726b696e6747726f75700154496e7374616e636531576f726b696e6747726f757028344e6578744f70656e696e67496401002820000000000000000004ac204e657874206964656e7469666965722076616c756520666f72206e6577206a6f62206f70656e696e672e2c4f70656e696e674279496401010402289909290101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000480204d617073206964656e74696669657220746f206a6f62206f70656e696e672e44416374697665576f726b6572436f756e740100101000000000046420436f756e74206f662061637469766520776f726b6572732e3c4170706c69636174696f6e4279496400010402289d09040004c8204d617073206964656e74696669657220746f20776f726b6572206170706c69636174696f6e206f6e206f70656e696e672e444e6578744170706c69636174696f6e496401002820000000000000000004c8204e657874206964656e7469666965722076616c756520666f72206e657720776f726b6572206170706c69636174696f6e2e304e657874576f726b657249640100282000000000000000000488204e657874206964656e74696669657220666f722061206e657720776f726b65722e28576f726b6572427949640001040228a109040004a4204d617073206964656e74696669657220746f20636f72726573706f6e64696e6720776f726b65722e2c43757272656e744c656164000028040004502043757272656e742067726f7570206c6561642e18427564676574010018400000000000000000000000000000000004782042756467657420666f722074686520776f726b696e672067726f75702e38537461747573546578744861736801002c800000000000000000000000000000000000000000000000000000000000000000044820537461747573207465787420686173682e016d06016d0318504d6178576f726b65724e756d6265724c696d697410101e0000000838204578706f72747320636f6e73749c204d61782073696d756c74616e656f75732061637469766520776f726b6572206e756d6265722e5c4d696e556e7374616b696e67506572696f644c696d697410100065040004ac20446566696e6573206d696e20756e7374616b696e6720706572696f6420696e207468652067726f75702e5c4d696e696d756d4170706c69636174696f6e5374616b6518404835261a08030000000000000000000004d4204d696e696d756d207374616b6520726571756972656420666f72206170706c79696e6720696e746f20616e206f70656e696e672e484c65616465724f70656e696e675374616b651840680abf82280f00000000000000000000048c205374616b65206e656564656420746f2063726561746520616e206f70656e696e672e30526577617264506572696f6410104a38000004d420446566696e65732074686520706572696f6420657665727920776f726b65722067657473207061696420696e20626c6f636b732e505374616b696e6748616e646c65724c6f636b496425042077672d666f72756d0464205374616b696e672068616e646c6572206c6f636b2069642e01a509204c53746f72616765576f726b696e6747726f75700154496e7374616e636532576f726b696e6747726f757028344e6578744f70656e696e67496401002820000000000000000004ac204e657874206964656e7469666965722076616c756520666f72206e6577206a6f62206f70656e696e672e2c4f70656e696e674279496401010402289909290101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000480204d617073206964656e74696669657220746f206a6f62206f70656e696e672e44416374697665576f726b6572436f756e740100101000000000046420436f756e74206f662061637469766520776f726b6572732e3c4170706c69636174696f6e4279496400010402289d09040004c8204d617073206964656e74696669657220746f20776f726b6572206170706c69636174696f6e206f6e206f70656e696e672e444e6578744170706c69636174696f6e496401002820000000000000000004c8204e657874206964656e7469666965722076616c756520666f72206e657720776f726b6572206170706c69636174696f6e2e304e657874576f726b657249640100282000000000000000000488204e657874206964656e74696669657220666f722061206e657720776f726b65722e28576f726b6572427949640001040228a109040004a4204d617073206964656e74696669657220746f20636f72726573706f6e64696e6720776f726b65722e2c43757272656e744c656164000028040004502043757272656e742067726f7570206c6561642e18427564676574010018400000000000000000000000000000000004782042756467657420666f722074686520776f726b696e672067726f75702e38537461747573546578744861736801002c800000000000000000000000000000000000000000000000000000000000000000044820537461747573207465787420686173682e01710601910318504d6178576f726b65724e756d6265724c696d697410101e0000000838204578706f72747320636f6e73749c204d61782073696d756c74616e656f75732061637469766520776f726b6572206e756d6265722e5c4d696e556e7374616b696e67506572696f644c696d697410100065040004ac20446566696e6573206d696e20756e7374616b696e6720706572696f6420696e207468652067726f75702e5c4d696e696d756d4170706c69636174696f6e5374616b6518404835261a08030000000000000000000004d4204d696e696d756d207374616b6520726571756972656420666f72206170706c79696e6720696e746f20616e206f70656e696e672e484c65616465724f70656e696e675374616b651840680abf82280f00000000000000000000048c205374616b65206e656564656420746f2063726561746520616e206f70656e696e672e30526577617264506572696f6410105438000004d420446566696e65732074686520706572696f6420657665727920776f726b65722067657473207061696420696e20626c6f636b732e505374616b696e6748616e646c65724c6f636b496425042077672d73746f72670464205374616b696e672068616e646c6572206c6f636b2069642e01a909214c436f6e74656e74576f726b696e6747726f75700154496e7374616e636533576f726b696e6747726f757028344e6578744f70656e696e67496401002820000000000000000004ac204e657874206964656e7469666965722076616c756520666f72206e6577206a6f62206f70656e696e672e2c4f70656e696e674279496401010402289909290101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000480204d617073206964656e74696669657220746f206a6f62206f70656e696e672e44416374697665576f726b6572436f756e740100101000000000046420436f756e74206f662061637469766520776f726b6572732e3c4170706c69636174696f6e4279496400010402289d09040004c8204d617073206964656e74696669657220746f20776f726b6572206170706c69636174696f6e206f6e206f70656e696e672e444e6578744170706c69636174696f6e496401002820000000000000000004c8204e657874206964656e7469666965722076616c756520666f72206e657720776f726b6572206170706c69636174696f6e2e304e657874576f726b657249640100282000000000000000000488204e657874206964656e74696669657220666f722061206e657720776f726b65722e28576f726b6572427949640001040228a109040004a4204d617073206964656e74696669657220746f20636f72726573706f6e64696e6720776f726b65722e2c43757272656e744c656164000028040004502043757272656e742067726f7570206c6561642e18427564676574010018400000000000000000000000000000000004782042756467657420666f722074686520776f726b696e672067726f75702e38537461747573546578744861736801002c800000000000000000000000000000000000000000000000000000000000000000044820537461747573207465787420686173682e01750601990318504d6178576f726b65724e756d6265724c696d697410101e0000000838204578706f72747320636f6e73749c204d61782073696d756c74616e656f75732061637469766520776f726b6572206e756d6265722e5c4d696e556e7374616b696e67506572696f644c696d697410100065040004ac20446566696e6573206d696e20756e7374616b696e6720706572696f6420696e207468652067726f75702e5c4d696e696d756d4170706c69636174696f6e5374616b6518404835261a08030000000000000000000004d4204d696e696d756d207374616b6520726571756972656420666f72206170706c79696e6720696e746f20616e206f70656e696e672e484c65616465724f70656e696e675374616b651840680abf82280f00000000000000000000048c205374616b65206e656564656420746f2063726561746520616e206f70656e696e672e30526577617264506572696f6410105e38000004d420446566696e65732074686520706572696f6420657665727920776f726b65722067657473207061696420696e20626c6f636b732e505374616b696e6748616e646c65724c6f636b496425042077672d636f6e74740464205374616b696e672068616e646c6572206c6f636b2069642e01ad09226c4f7065726174696f6e73576f726b696e6747726f7570416c7068610154496e7374616e636534576f726b696e6747726f757028344e6578744f70656e696e67496401002820000000000000000004ac204e657874206964656e7469666965722076616c756520666f72206e6577206a6f62206f70656e696e672e2c4f70656e696e674279496401010402289909290101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000480204d617073206964656e74696669657220746f206a6f62206f70656e696e672e44416374697665576f726b6572436f756e740100101000000000046420436f756e74206f662061637469766520776f726b6572732e3c4170706c69636174696f6e4279496400010402289d09040004c8204d617073206964656e74696669657220746f20776f726b6572206170706c69636174696f6e206f6e206f70656e696e672e444e6578744170706c69636174696f6e496401002820000000000000000004c8204e657874206964656e7469666965722076616c756520666f72206e657720776f726b6572206170706c69636174696f6e2e304e657874576f726b657249640100282000000000000000000488204e657874206964656e74696669657220666f722061206e657720776f726b65722e28576f726b6572427949640001040228a109040004a4204d617073206964656e74696669657220746f20636f72726573706f6e64696e6720776f726b65722e2c43757272656e744c656164000028040004502043757272656e742067726f7570206c6561642e18427564676574010018400000000000000000000000000000000004782042756467657420666f722074686520776f726b696e672067726f75702e38537461747573546578744861736801002c800000000000000000000000000000000000000000000000000000000000000000044820537461747573207465787420686173682e01790601a10318504d6178576f726b65724e756d6265724c696d697410101e0000000838204578706f72747320636f6e73749c204d61782073696d756c74616e656f75732061637469766520776f726b6572206e756d6265722e5c4d696e556e7374616b696e67506572696f644c696d697410100065040004ac20446566696e6573206d696e20756e7374616b696e6720706572696f6420696e207468652067726f75702e5c4d696e696d756d4170706c69636174696f6e5374616b6518404835261a08030000000000000000000004d4204d696e696d756d207374616b6520726571756972656420666f72206170706c79696e6720696e746f20616e206f70656e696e672e484c65616465724f70656e696e675374616b651840680abf82280f00000000000000000000048c205374616b65206e656564656420746f2063726561746520616e206f70656e696e672e30526577617264506572696f6410107c38000004d420446566696e65732074686520706572696f6420657665727920776f726b65722067657473207061696420696e20626c6f636b732e505374616b696e6748616e646c65724c6f636b496425042077672d6f706572610464205374616b696e672068616e646c6572206c6f636b2069642e01b109233c417070576f726b696e6747726f75700154496e7374616e636535576f726b696e6747726f757028344e6578744f70656e696e67496401002820000000000000000004ac204e657874206964656e7469666965722076616c756520666f72206e6577206a6f62206f70656e696e672e2c4f70656e696e674279496401010402289909290101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000480204d617073206964656e74696669657220746f206a6f62206f70656e696e672e44416374697665576f726b6572436f756e740100101000000000046420436f756e74206f662061637469766520776f726b6572732e3c4170706c69636174696f6e4279496400010402289d09040004c8204d617073206964656e74696669657220746f20776f726b6572206170706c69636174696f6e206f6e206f70656e696e672e444e6578744170706c69636174696f6e496401002820000000000000000004c8204e657874206964656e7469666965722076616c756520666f72206e657720776f726b6572206170706c69636174696f6e2e304e657874576f726b657249640100282000000000000000000488204e657874206964656e74696669657220666f722061206e657720776f726b65722e28576f726b6572427949640001040228a109040004a4204d617073206964656e74696669657220746f20636f72726573706f6e64696e6720776f726b65722e2c43757272656e744c656164000028040004502043757272656e742067726f7570206c6561642e18427564676574010018400000000000000000000000000000000004782042756467657420666f722074686520776f726b696e672067726f75702e38537461747573546578744861736801002c800000000000000000000000000000000000000000000000000000000000000000044820537461747573207465787420686173682e017d0601a90318504d6178576f726b65724e756d6265724c696d697410101e0000000838204578706f72747320636f6e73749c204d61782073696d756c74616e656f75732061637469766520776f726b6572206e756d6265722e5c4d696e556e7374616b696e67506572696f644c696d697410100065040004ac20446566696e6573206d696e20756e7374616b696e6720706572696f6420696e207468652067726f75702e5c4d696e696d756d4170706c69636174696f6e5374616b6518404835261a08030000000000000000000004d4204d696e696d756d207374616b6520726571756972656420666f72206170706c79696e6720696e746f20616e206f70656e696e672e484c65616465724f70656e696e675374616b651840680abf82280f00000000000000000000048c205374616b65206e656564656420746f2063726561746520616e206f70656e696e672e30526577617264506572696f6410107238000004d420446566696e65732074686520706572696f6420657665727920776f726b65722067657473207061696420696e20626c6f636b732e505374616b696e6748616e646c65724c6f636b496425042077672d6170706c690464205374616b696e672068616e646c6572206c6f636b2069642e01b50924584d656d62657273686970576f726b696e6747726f75700154496e7374616e636536576f726b696e6747726f757028344e6578744f70656e696e67496401002820000000000000000004ac204e657874206964656e7469666965722076616c756520666f72206e6577206a6f62206f70656e696e672e2c4f70656e696e674279496401010402289909290101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000480204d617073206964656e74696669657220746f206a6f62206f70656e696e672e44416374697665576f726b6572436f756e740100101000000000046420436f756e74206f662061637469766520776f726b6572732e3c4170706c69636174696f6e4279496400010402289d09040004c8204d617073206964656e74696669657220746f20776f726b6572206170706c69636174696f6e206f6e206f70656e696e672e444e6578744170706c69636174696f6e496401002820000000000000000004c8204e657874206964656e7469666965722076616c756520666f72206e657720776f726b6572206170706c69636174696f6e2e304e657874576f726b657249640100282000000000000000000488204e657874206964656e74696669657220666f722061206e657720776f726b65722e28576f726b6572427949640001040228a109040004a4204d617073206964656e74696669657220746f20636f72726573706f6e64696e6720776f726b65722e2c43757272656e744c656164000028040004502043757272656e742067726f7570206c6561642e18427564676574010018400000000000000000000000000000000004782042756467657420666f722074686520776f726b696e672067726f75702e38537461747573546578744861736801002c800000000000000000000000000000000000000000000000000000000000000000044820537461747573207465787420686173682e01810601b10318504d6178576f726b65724e756d6265724c696d697410101e0000000838204578706f72747320636f6e73749c204d61782073696d756c74616e656f75732061637469766520776f726b6572206e756d6265722e5c4d696e556e7374616b696e67506572696f644c696d697410100065040004ac20446566696e6573206d696e20756e7374616b696e6720706572696f6420696e207468652067726f75702e5c4d696e696d756d4170706c69636174696f6e5374616b6518404835261a08030000000000000000000004d4204d696e696d756d207374616b6520726571756972656420666f72206170706c79696e6720696e746f20616e206f70656e696e672e484c65616465724f70656e696e675374616b651840680abf82280f00000000000000000000048c205374616b65206e656564656420746f2063726561746520616e206f70656e696e672e30526577617264506572696f6410106838000004d420446566696e65732074686520706572696f6420657665727920776f726b65722067657473207061696420696e20626c6f636b732e505374616b696e6748616e646c65724c6f636b496425042077672d6d656d62720464205374616b696e672068616e646c6572206c6f636b2069642e01b90925684f7065726174696f6e73576f726b696e6747726f7570426574610154496e7374616e636537576f726b696e6747726f757028344e6578744f70656e696e67496401002820000000000000000004ac204e657874206964656e7469666965722076616c756520666f72206e6577206a6f62206f70656e696e672e2c4f70656e696e674279496401010402289909290101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000480204d617073206964656e74696669657220746f206a6f62206f70656e696e672e44416374697665576f726b6572436f756e740100101000000000046420436f756e74206f662061637469766520776f726b6572732e3c4170706c69636174696f6e4279496400010402289d09040004c8204d617073206964656e74696669657220746f20776f726b6572206170706c69636174696f6e206f6e206f70656e696e672e444e6578744170706c69636174696f6e496401002820000000000000000004c8204e657874206964656e7469666965722076616c756520666f72206e657720776f726b6572206170706c69636174696f6e2e304e657874576f726b657249640100282000000000000000000488204e657874206964656e74696669657220666f722061206e657720776f726b65722e28576f726b6572427949640001040228a109040004a4204d617073206964656e74696669657220746f20636f72726573706f6e64696e6720776f726b65722e2c43757272656e744c656164000028040004502043757272656e742067726f7570206c6561642e18427564676574010018400000000000000000000000000000000004782042756467657420666f722074686520776f726b696e672067726f75702e38537461747573546578744861736801002c800000000000000000000000000000000000000000000000000000000000000000044820537461747573207465787420686173682e01850601b90318504d6178576f726b65724e756d6265724c696d697410101e0000000838204578706f72747320636f6e73749c204d61782073696d756c74616e656f75732061637469766520776f726b6572206e756d6265722e5c4d696e556e7374616b696e67506572696f644c696d697410100065040004ac20446566696e6573206d696e20756e7374616b696e6720706572696f6420696e207468652067726f75702e5c4d696e696d756d4170706c69636174696f6e5374616b6518404835261a08030000000000000000000004d4204d696e696d756d207374616b6520726571756972656420666f72206170706c79696e6720696e746f20616e206f70656e696e672e484c65616465724f70656e696e675374616b651840680abf82280f00000000000000000000048c205374616b65206e656564656420746f2063726561746520616e206f70656e696e672e30526577617264506572696f6410108638000004d420446566696e65732074686520706572696f6420657665727920776f726b65722067657473207061696420696e20626c6f636b732e505374616b696e6748616e646c65724c6f636b496425042077672d6f706572620464205374616b696e672068616e646c6572206c6f636b2069642e01bd09266c4f7065726174696f6e73576f726b696e6747726f757047616d6d610154496e7374616e636538576f726b696e6747726f757028344e6578744f70656e696e67496401002820000000000000000004ac204e657874206964656e7469666965722076616c756520666f72206e6577206a6f62206f70656e696e672e2c4f70656e696e674279496401010402289909290101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000480204d617073206964656e74696669657220746f206a6f62206f70656e696e672e44416374697665576f726b6572436f756e740100101000000000046420436f756e74206f662061637469766520776f726b6572732e3c4170706c69636174696f6e4279496400010402289d09040004c8204d617073206964656e74696669657220746f20776f726b6572206170706c69636174696f6e206f6e206f70656e696e672e444e6578744170706c69636174696f6e496401002820000000000000000004c8204e657874206964656e7469666965722076616c756520666f72206e657720776f726b6572206170706c69636174696f6e2e304e657874576f726b657249640100282000000000000000000488204e657874206964656e74696669657220666f722061206e657720776f726b65722e28576f726b6572427949640001040228a109040004a4204d617073206964656e74696669657220746f20636f72726573706f6e64696e6720776f726b65722e2c43757272656e744c656164000028040004502043757272656e742067726f7570206c6561642e18427564676574010018400000000000000000000000000000000004782042756467657420666f722074686520776f726b696e672067726f75702e38537461747573546578744861736801002c800000000000000000000000000000000000000000000000000000000000000000044820537461747573207465787420686173682e01890601c10318504d6178576f726b65724e756d6265724c696d697410101e0000000838204578706f72747320636f6e73749c204d61782073696d756c74616e656f75732061637469766520776f726b6572206e756d6265722e5c4d696e556e7374616b696e67506572696f644c696d697410100065040004ac20446566696e6573206d696e20756e7374616b696e6720706572696f6420696e207468652067726f75702e5c4d696e696d756d4170706c69636174696f6e5374616b6518404835261a08030000000000000000000004d4204d696e696d756d207374616b6520726571756972656420666f72206170706c79696e6720696e746f20616e206f70656e696e672e484c65616465724f70656e696e675374616b651840680abf82280f00000000000000000000048c205374616b65206e656564656420746f2063726561746520616e206f70656e696e672e30526577617264506572696f6410109038000004d420446566696e65732074686520706572696f6420657665727920776f726b65722067657473207061696420696e20626c6f636b732e505374616b696e6748616e646c65724c6f636b496425042077672d6f706572670464205374616b696e672068616e646c6572206c6f636b2069642e01c1092760446973747269627574696f6e576f726b696e6747726f75700154496e7374616e636539576f726b696e6747726f757028344e6578744f70656e696e67496401002820000000000000000004ac204e657874206964656e7469666965722076616c756520666f72206e6577206a6f62206f70656e696e672e2c4f70656e696e674279496401010402289909290101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000480204d617073206964656e74696669657220746f206a6f62206f70656e696e672e44416374697665576f726b6572436f756e740100101000000000046420436f756e74206f662061637469766520776f726b6572732e3c4170706c69636174696f6e4279496400010402289d09040004c8204d617073206964656e74696669657220746f20776f726b6572206170706c69636174696f6e206f6e206f70656e696e672e444e6578744170706c69636174696f6e496401002820000000000000000004c8204e657874206964656e7469666965722076616c756520666f72206e657720776f726b6572206170706c69636174696f6e2e304e657874576f726b657249640100282000000000000000000488204e657874206964656e74696669657220666f722061206e657720776f726b65722e28576f726b6572427949640001040228a109040004a4204d617073206964656e74696669657220746f20636f72726573706f6e64696e6720776f726b65722e2c43757272656e744c656164000028040004502043757272656e742067726f7570206c6561642e18427564676574010018400000000000000000000000000000000004782042756467657420666f722074686520776f726b696e672067726f75702e38537461747573546578744861736801002c800000000000000000000000000000000000000000000000000000000000000000044820537461747573207465787420686173682e018d0601c90318504d6178576f726b65724e756d6265724c696d697410101e0000000838204578706f72747320636f6e73749c204d61782073696d756c74616e656f75732061637469766520776f726b6572206e756d6265722e5c4d696e556e7374616b696e67506572696f644c696d697410100065040004ac20446566696e6573206d696e20756e7374616b696e6720706572696f6420696e207468652067726f75702e5c4d696e696d756d4170706c69636174696f6e5374616b6518404835261a08030000000000000000000004d4204d696e696d756d207374616b6520726571756972656420666f72206170706c79696e6720696e746f20616e206f70656e696e672e484c65616465724f70656e696e675374616b651840680abf82280f00000000000000000000048c205374616b65206e656564656420746f2063726561746520616e206f70656e696e672e30526577617264506572696f6410109a38000004d420446566696e65732074686520706572696f6420657665727920776f726b65722067657473207061696420696e20626c6f636b732e505374616b696e6748616e646c65724c6f636b496425042077672d64697374720464205374616b696e672068616e646c6572206c6f636b2069642e01c50928c909042048436865636b4e6f6e5a65726f53656e646572dd097c40436865636b5370656356657273696f6ee1091038436865636b547856657273696f6ee5091030436865636b47656e65736973e9092c38436865636b4d6f7274616c697479ed092c28436865636b4e6f6e6365f5097c2c436865636b576569676874f9097c604368617267655472616e73616374696f6e5061796d656e74fd097c010a","id":"1"} \ No newline at end of file diff --git a/types/package.json b/types/package.json index 2bd22fb713..78e8ea63f3 100644 --- a/types/package.json +++ b/types/package.json @@ -1,6 +1,6 @@ { "name": "@joystream/types", - "version": "2.1.0", + "version": "2.2.0", "description": "Types for Joystream Substrate Runtime - Carthage release", "main": "lib/cjs/index.js", "types": "lib/index.d.ts", diff --git a/types/src/augment/lookup.ts b/types/src/augment/lookup.ts index c7d84c059b..5e6495048f 100644 --- a/types/src/augment/lookup.ts +++ b/types/src/augment/lookup.ts @@ -781,9 +781,9 @@ export default { } }, /** - * Lookup101: pallet_utility::RawEvent + * Lookup101: pallet_joystream_utility::RawEvent **/ - PalletUtilityRawEvent: { + PalletJoystreamUtilityRawEvent: { _enum: { Signaled: 'Bytes', RuntimeUpgraded: 'Bytes', @@ -2900,6 +2900,27 @@ export default { } } }, + /** + * Lookup384: pallet_joystream_utility::Call + **/ + PalletJoystreamUtilityCall: { + _enum: { + execute_signal_proposal: { + signal: 'Bytes', + }, + execute_runtime_upgrade_proposal: { + wasm: 'Bytes', + }, + update_working_group_budget: { + workingGroup: 'PalletCommonWorkingGroupIterableEnumsWorkingGroup', + amount: 'u128', + balanceKind: 'PalletCommonBalanceKind', + }, + burn_account_tokens: { + amount: 'u128' + } + } + }, /** * Lookup385: pallet_content::Call **/ @@ -4202,6 +4223,12 @@ export default { PalletBountyError: { _enum: ['ArithmeticError', 'MinFundingAmountCannotBeGreaterThanMaxAmount', 'BountyDoesntExist', 'SwitchOracleOriginIsRoot', 'InvalidStageUnexpectedFunding', 'InvalidStageUnexpectedNoFundingContributed', 'InvalidStageUnexpectedCancelled', 'InvalidStageUnexpectedWorkSubmission', 'InvalidStageUnexpectedJudgment', 'InvalidStageUnexpectedSuccessfulBountyWithdrawal', 'InvalidStageUnexpectedFailedBountyWithdrawal', 'InsufficientBalanceForBounty', 'NoBountyContributionFound', 'InsufficientBalanceForStake', 'ConflictingStakes', 'WorkEntryDoesntExist', 'CherryLessThenMinimumAllowed', 'CannotSubmitWorkToClosedContractBounty', 'ClosedContractMemberListIsEmpty', 'ClosedContractMemberListIsTooLarge', 'ClosedContractMemberNotFound', 'InvalidOracleMemberId', 'InvalidStakingAccountForMember', 'ZeroWinnerReward', 'TotalRewardShouldBeEqualToTotalFunding', 'EntrantStakeIsLessThanMininum', 'FundingAmountCannotBeZero', 'FundingPeriodCannotBeZero', 'WinnerShouldHasWorkSubmission', 'InvalidContributorActorSpecified', 'InvalidOracleActorSpecified', 'InvalidEntrantWorkerSpecified', 'InvalidCreatorActorSpecified', 'WorkEntryDoesntBelongToWorker', 'OracleRewardAlreadyWithdrawn'] }, + /** + * Lookup548: pallet_joystream_utility::Error + **/ + PalletJoystreamUtilityError: { + _enum: ['InsufficientFundsForBudgetUpdate', 'ZeroTokensBurn', 'InsufficientFundsForBurn'] + }, /** * Lookup549: pallet_content::types::VideoRecord>, pallet_content::nft::types::OpenAuctionRecord>>, MemberId, AuctionId>, bounded_collections::bounded_btree_set::BoundedBTreeSet, pallet_common::bloat_bond::RepayableBloatBond> **/ diff --git a/types/src/augment/registry.ts b/types/src/augment/registry.ts index 0b2df7739d..305d56165b 100644 --- a/types/src/augment/registry.ts +++ b/types/src/augment/registry.ts @@ -1,7 +1,7 @@ // Auto-generated via `yarn polkadot-types-from-defs`, do not edit /* eslint-disable */ -import type { FinalityGrandpaEquivocationPrecommit, FinalityGrandpaEquivocationPrevote, FinalityGrandpaPrecommit, FinalityGrandpaPrevote, FrameSupportDispatchDispatchClass, FrameSupportDispatchDispatchInfo, FrameSupportDispatchPays, FrameSupportDispatchPerDispatchClassU32, FrameSupportDispatchPerDispatchClassWeight, FrameSupportDispatchPerDispatchClassWeightsPerClass, FrameSupportDispatchRawOrigin, FrameSupportTokensMiscBalanceStatus, FrameSystemAccountInfo, FrameSystemCall, FrameSystemError, FrameSystemEvent, FrameSystemEventRecord, FrameSystemExtensionsCheckGenesis, FrameSystemExtensionsCheckNonZeroSender, FrameSystemExtensionsCheckNonce, FrameSystemExtensionsCheckSpecVersion, FrameSystemExtensionsCheckTxVersion, FrameSystemExtensionsCheckWeight, FrameSystemLastRuntimeUpgradeInfo, FrameSystemLimitsBlockLength, FrameSystemLimitsBlockWeights, FrameSystemLimitsWeightsPerClass, FrameSystemPhase, JoystreamNodeRuntimeNposSolution16, JoystreamNodeRuntimeOriginCaller, JoystreamNodeRuntimeRuntime, JoystreamNodeRuntimeSessionKeys, PalletBabeCall, PalletBabeError, PalletBagsListCall, PalletBagsListError, PalletBagsListEvent, PalletBagsListListBag, PalletBagsListListListError, PalletBagsListListNode, PalletBalancesAccountData, PalletBalancesBalanceLock, PalletBalancesCall, PalletBalancesError, PalletBalancesEvent, PalletBalancesReasons, PalletBalancesReserveData, PalletBountyAssuranceContractTypeBTreeSet, PalletBountyAssuranceContractTypeBoundedBTreeSet, PalletBountyBountyActor, PalletBountyBountyMilestone, PalletBountyBountyParametersBTreeSet, PalletBountyBountyParametersBoundedBTreeSet, PalletBountyBountyRecord, PalletBountyCall, PalletBountyContribution, PalletBountyEntryRecord, PalletBountyError, PalletBountyFundingType, PalletBountyOracleWorkEntryJudgment, PalletBountyRawEvent, PalletCommonBalanceKind, PalletCommonBloatBondRepayableBloatBond, PalletCommonFundingRequestParameters, PalletCommonMerkleTreeProofElementRecord, PalletCommonMerkleTreeSide, PalletCommonWorkingGroupIterableEnumsWorkingGroup, PalletConstitutionCall, PalletConstitutionConstitutionInfo, PalletConstitutionRawEvent, PalletContentCall, PalletContentChannelBagWitness, PalletContentChannelCreationParametersRecord, PalletContentChannelFundsDestination, PalletContentChannelOwner, PalletContentChannelPayoutsPayloadParametersRecord, PalletContentChannelRecord, PalletContentChannelTransferStatus, PalletContentChannelUpdateParametersRecord, PalletContentErrorsError, PalletContentInitTransferParameters, PalletContentIterableEnumsChannelActionPermission, PalletContentLimitPerPeriod, PalletContentNftCounter, PalletContentNftLimitPeriod, PalletContentNftTypesEnglishAuctionBid, PalletContentNftTypesEnglishAuctionParamsRecord, PalletContentNftTypesEnglishAuctionRecord, PalletContentNftTypesInitTransactionalStatusRecord, PalletContentNftTypesNftIssuanceParametersRecord, PalletContentNftTypesNftOwner, PalletContentNftTypesOpenAuctionBidRecord, PalletContentNftTypesOpenAuctionParamsRecord, PalletContentNftTypesOpenAuctionRecord, PalletContentNftTypesOwnedNft, PalletContentNftTypesTransactionalStatusRecord, PalletContentPendingTransfer, PalletContentPermissionsContentActor, PalletContentPermissionsCuratorGroupCuratorGroupRecord, PalletContentPermissionsCuratorGroupIterableEnumsContentModerationAction, PalletContentPermissionsCuratorGroupIterableEnumsPausableChannelFeature, PalletContentPullPaymentElement, PalletContentRawEvent, PalletContentStorageAssetsRecord, PalletContentTransferCommitmentParametersBTreeMap, PalletContentTransferCommitmentParametersBoundedBTreeMap, PalletContentUpdateChannelPayoutsParametersRecord, PalletContentVideoCreationParametersRecord, PalletContentVideoRecord, PalletContentVideoUpdateParametersRecord, PalletCouncilCall, PalletCouncilCandidate, PalletCouncilCouncilMember, PalletCouncilCouncilStage, PalletCouncilCouncilStageAnnouncing, PalletCouncilCouncilStageElection, PalletCouncilCouncilStageIdle, PalletCouncilCouncilStageUpdate, PalletCouncilError, PalletCouncilRawEvent, PalletElectionProviderMultiPhaseCall, PalletElectionProviderMultiPhaseElectionCompute, PalletElectionProviderMultiPhaseError, PalletElectionProviderMultiPhaseEvent, PalletElectionProviderMultiPhasePhase, PalletElectionProviderMultiPhaseRawSolution, PalletElectionProviderMultiPhaseReadySolution, PalletElectionProviderMultiPhaseRoundSnapshot, PalletElectionProviderMultiPhaseSignedSignedSubmission, PalletElectionProviderMultiPhaseSolutionOrSnapshotSize, PalletForumCall, PalletForumCategory, PalletForumError, PalletForumExtendedPostIdObject, PalletForumPost, PalletForumPrivilegedActor, PalletForumRawEvent, PalletForumThread, PalletGrandpaCall, PalletGrandpaError, PalletGrandpaEvent, PalletGrandpaStoredPendingChange, PalletGrandpaStoredState, PalletImOnlineBoundedOpaqueNetworkState, PalletImOnlineCall, PalletImOnlineError, PalletImOnlineEvent, PalletImOnlineHeartbeat, PalletImOnlineSr25519AppSr25519Public, PalletImOnlineSr25519AppSr25519Signature, PalletMembershipBuyMembershipParameters, PalletMembershipCall, PalletMembershipCreateMemberParameters, PalletMembershipError, PalletMembershipGiftMembershipParameters, PalletMembershipInviteMembershipParameters, PalletMembershipMembershipObject, PalletMembershipRawEvent, PalletMembershipStakingAccountMemberBinding, PalletMultisigCall, PalletMultisigError, PalletMultisigEvent, PalletMultisigMultisig, PalletMultisigTimepoint, PalletOffencesEvent, PalletProjectTokenAccountData, PalletProjectTokenCall, PalletProjectTokenErrorsError, PalletProjectTokenEventsRawEvent, PalletProjectTokenMerkleProof, PalletProjectTokenMerkleSide, PalletProjectTokenPatronageData, PalletProjectTokenPayment, PalletProjectTokenPaymentWithVesting, PalletProjectTokenRevenueSplitInfo, PalletProjectTokenRevenueSplitState, PalletProjectTokenSingleDataObjectUploadParams, PalletProjectTokenStakingStatus, PalletProjectTokenTimeline, PalletProjectTokenTokenAllocation, PalletProjectTokenTokenData, PalletProjectTokenTokenIssuanceParameters, PalletProjectTokenTokenSale, PalletProjectTokenTokenSaleParams, PalletProjectTokenTransferPolicy, PalletProjectTokenTransferPolicyParams, PalletProjectTokenTransfersPayment, PalletProjectTokenTransfersPaymentWithVesting, PalletProjectTokenValidated, PalletProjectTokenValidatedPayment, PalletProjectTokenVestingSchedule, PalletProjectTokenVestingScheduleParams, PalletProjectTokenVestingSource, PalletProjectTokenWhitelistParams, PalletProposalsCodexCall, PalletProposalsCodexCreateOpeningParameters, PalletProposalsCodexError, PalletProposalsCodexFillOpeningParameters, PalletProposalsCodexGeneralProposalParams, PalletProposalsCodexProposalDetails, PalletProposalsCodexRawEvent, PalletProposalsCodexTerminateRoleParameters, PalletProposalsDiscussionCall, PalletProposalsDiscussionDiscussionPost, PalletProposalsDiscussionDiscussionThread, PalletProposalsDiscussionError, PalletProposalsDiscussionRawEvent, PalletProposalsDiscussionThreadModeBTreeSet, PalletProposalsDiscussionThreadModeBoundedBTreeSet, PalletProposalsEngineCall, PalletProposalsEngineError, PalletProposalsEngineProposal, PalletProposalsEngineProposalParameters, PalletProposalsEngineProposalStatusesApprovedProposalDecision, PalletProposalsEngineProposalStatusesExecutionStatus, PalletProposalsEngineProposalStatusesProposalDecision, PalletProposalsEngineProposalStatusesProposalStatus, PalletProposalsEngineRawEvent, PalletProposalsEngineVoteKind, PalletProposalsEngineVotingResults, PalletReferendumCall, PalletReferendumCastVote, PalletReferendumError, PalletReferendumInstance1, PalletReferendumOptionResult, PalletReferendumRawEvent, PalletReferendumReferendumStage, PalletReferendumReferendumStageRevealing, PalletReferendumReferendumStageVoting, PalletSessionCall, PalletSessionError, PalletSessionEvent, PalletStakingActiveEraInfo, PalletStakingEraRewardPoints, PalletStakingExposure, PalletStakingForcing, PalletStakingIndividualExposure, PalletStakingNominations, PalletStakingPalletCall, PalletStakingPalletConfigOpPerbill, PalletStakingPalletConfigOpPercent, PalletStakingPalletConfigOpU128, PalletStakingPalletConfigOpU32, PalletStakingPalletError, PalletStakingPalletEvent, PalletStakingRewardDestination, PalletStakingSlashingSlashingSpans, PalletStakingSlashingSpanRecord, PalletStakingStakingLedger, PalletStakingUnappliedSlash, PalletStakingUnlockChunk, PalletStakingValidatorPrefs, PalletStorageBagIdType, PalletStorageBagRecord, PalletStorageCall, PalletStorageDataObject, PalletStorageDataObjectCreationParameters, PalletStorageDistributionBucketFamilyRecord, PalletStorageDistributionBucketIdRecord, PalletStorageDistributionBucketRecord, PalletStorageDynBagCreationParametersRecord, PalletStorageDynamicBagCreationPolicy, PalletStorageDynamicBagIdType, PalletStorageDynamicBagType, PalletStorageError, PalletStorageRawEvent, PalletStorageStaticBagId, PalletStorageStorageBucketOperatorStatus, PalletStorageStorageBucketRecord, PalletStorageUploadParametersRecord, PalletStorageVoucher, PalletTimestampCall, PalletTransactionPaymentChargeTransactionPayment, PalletTransactionPaymentEvent, PalletTransactionPaymentReleases, PalletUtilityCall, PalletUtilityError, PalletUtilityEvent, PalletUtilityRawEvent, PalletVestingCall, PalletVestingError, PalletVestingEvent, PalletVestingReleases, PalletVestingVestingInfo, PalletWorkingGroupApplyOnOpeningParams, PalletWorkingGroupCall, PalletWorkingGroupErrorsError, PalletWorkingGroupGroupWorker, PalletWorkingGroupInstance1, PalletWorkingGroupInstance2, PalletWorkingGroupInstance3, PalletWorkingGroupInstance4, PalletWorkingGroupInstance5, PalletWorkingGroupInstance6, PalletWorkingGroupInstance7, PalletWorkingGroupInstance8, PalletWorkingGroupInstance9, PalletWorkingGroupJobApplication, PalletWorkingGroupOpening, PalletWorkingGroupOpeningType, PalletWorkingGroupRawEventInstance1, PalletWorkingGroupRawEventInstance2, PalletWorkingGroupRawEventInstance3, PalletWorkingGroupRawEventInstance4, PalletWorkingGroupRawEventInstance5, PalletWorkingGroupRawEventInstance6, PalletWorkingGroupRawEventInstance7, PalletWorkingGroupRawEventInstance8, PalletWorkingGroupRawEventInstance9, PalletWorkingGroupRewardPaymentType, PalletWorkingGroupStakeParameters, PalletWorkingGroupStakePolicy, SpArithmeticArithmeticError, SpAuthorityDiscoveryAppPublic, SpConsensusBabeAllowedSlots, SpConsensusBabeAppPublic, SpConsensusBabeBabeEpochConfiguration, SpConsensusBabeDigestsNextConfigDescriptor, SpConsensusBabeDigestsPreDigest, SpConsensusBabeDigestsPrimaryPreDigest, SpConsensusBabeDigestsSecondaryPlainPreDigest, SpConsensusBabeDigestsSecondaryVRFPreDigest, SpConsensusSlotsEquivocationProof, SpCoreCryptoKeyTypeId, SpCoreEcdsaSignature, SpCoreEd25519Public, SpCoreEd25519Signature, SpCoreOffchainOpaqueNetworkState, SpCoreSr25519Public, SpCoreSr25519Signature, SpCoreVoid, SpFinalityGrandpaAppPublic, SpFinalityGrandpaAppSignature, SpFinalityGrandpaEquivocation, SpFinalityGrandpaEquivocationProof, SpNposElectionsElectionScore, SpNposElectionsSupport, SpRuntimeBlakeTwo256, SpRuntimeDigest, SpRuntimeDigestDigestItem, SpRuntimeDispatchError, SpRuntimeHeader, SpRuntimeModuleError, SpRuntimeMultiSignature, SpRuntimeTokenError, SpRuntimeTransactionalError, SpSessionMembershipProof, SpStakingOffenceOffenceDetails, SpVersionRuntimeVersion, SpWeightsRuntimeDbWeight, SpWeightsWeightV2Weight } from '@polkadot/types/lookup'; +import type { FinalityGrandpaEquivocationPrecommit, FinalityGrandpaEquivocationPrevote, FinalityGrandpaPrecommit, FinalityGrandpaPrevote, FrameSupportDispatchDispatchClass, FrameSupportDispatchDispatchInfo, FrameSupportDispatchPays, FrameSupportDispatchPerDispatchClassU32, FrameSupportDispatchPerDispatchClassWeight, FrameSupportDispatchPerDispatchClassWeightsPerClass, FrameSupportDispatchRawOrigin, FrameSupportTokensMiscBalanceStatus, FrameSystemAccountInfo, FrameSystemCall, FrameSystemError, FrameSystemEvent, FrameSystemEventRecord, FrameSystemExtensionsCheckGenesis, FrameSystemExtensionsCheckNonZeroSender, FrameSystemExtensionsCheckNonce, FrameSystemExtensionsCheckSpecVersion, FrameSystemExtensionsCheckTxVersion, FrameSystemExtensionsCheckWeight, FrameSystemLastRuntimeUpgradeInfo, FrameSystemLimitsBlockLength, FrameSystemLimitsBlockWeights, FrameSystemLimitsWeightsPerClass, FrameSystemPhase, JoystreamNodeRuntimeNposSolution16, JoystreamNodeRuntimeOriginCaller, JoystreamNodeRuntimeRuntime, JoystreamNodeRuntimeSessionKeys, PalletBabeCall, PalletBabeError, PalletBagsListCall, PalletBagsListError, PalletBagsListEvent, PalletBagsListListBag, PalletBagsListListListError, PalletBagsListListNode, PalletBalancesAccountData, PalletBalancesBalanceLock, PalletBalancesCall, PalletBalancesError, PalletBalancesEvent, PalletBalancesReasons, PalletBalancesReserveData, PalletBountyAssuranceContractTypeBTreeSet, PalletBountyAssuranceContractTypeBoundedBTreeSet, PalletBountyBountyActor, PalletBountyBountyMilestone, PalletBountyBountyParametersBTreeSet, PalletBountyBountyParametersBoundedBTreeSet, PalletBountyBountyRecord, PalletBountyCall, PalletBountyContribution, PalletBountyEntryRecord, PalletBountyError, PalletBountyFundingType, PalletBountyOracleWorkEntryJudgment, PalletBountyRawEvent, PalletCommonBalanceKind, PalletCommonBloatBondRepayableBloatBond, PalletCommonFundingRequestParameters, PalletCommonMerkleTreeProofElementRecord, PalletCommonMerkleTreeSide, PalletCommonWorkingGroupIterableEnumsWorkingGroup, PalletConstitutionCall, PalletConstitutionConstitutionInfo, PalletConstitutionRawEvent, PalletContentCall, PalletContentChannelBagWitness, PalletContentChannelCreationParametersRecord, PalletContentChannelFundsDestination, PalletContentChannelOwner, PalletContentChannelPayoutsPayloadParametersRecord, PalletContentChannelRecord, PalletContentChannelTransferStatus, PalletContentChannelUpdateParametersRecord, PalletContentErrorsError, PalletContentInitTransferParameters, PalletContentIterableEnumsChannelActionPermission, PalletContentLimitPerPeriod, PalletContentNftCounter, PalletContentNftLimitPeriod, PalletContentNftTypesEnglishAuctionBid, PalletContentNftTypesEnglishAuctionParamsRecord, PalletContentNftTypesEnglishAuctionRecord, PalletContentNftTypesInitTransactionalStatusRecord, PalletContentNftTypesNftIssuanceParametersRecord, PalletContentNftTypesNftOwner, PalletContentNftTypesOpenAuctionBidRecord, PalletContentNftTypesOpenAuctionParamsRecord, PalletContentNftTypesOpenAuctionRecord, PalletContentNftTypesOwnedNft, PalletContentNftTypesTransactionalStatusRecord, PalletContentPendingTransfer, PalletContentPermissionsContentActor, PalletContentPermissionsCuratorGroupCuratorGroupRecord, PalletContentPermissionsCuratorGroupIterableEnumsContentModerationAction, PalletContentPermissionsCuratorGroupIterableEnumsPausableChannelFeature, PalletContentPullPaymentElement, PalletContentRawEvent, PalletContentStorageAssetsRecord, PalletContentTransferCommitmentParametersBTreeMap, PalletContentTransferCommitmentParametersBoundedBTreeMap, PalletContentUpdateChannelPayoutsParametersRecord, PalletContentVideoCreationParametersRecord, PalletContentVideoRecord, PalletContentVideoUpdateParametersRecord, PalletCouncilCall, PalletCouncilCandidate, PalletCouncilCouncilMember, PalletCouncilCouncilStage, PalletCouncilCouncilStageAnnouncing, PalletCouncilCouncilStageElection, PalletCouncilCouncilStageIdle, PalletCouncilCouncilStageUpdate, PalletCouncilError, PalletCouncilRawEvent, PalletElectionProviderMultiPhaseCall, PalletElectionProviderMultiPhaseElectionCompute, PalletElectionProviderMultiPhaseError, PalletElectionProviderMultiPhaseEvent, PalletElectionProviderMultiPhasePhase, PalletElectionProviderMultiPhaseRawSolution, PalletElectionProviderMultiPhaseReadySolution, PalletElectionProviderMultiPhaseRoundSnapshot, PalletElectionProviderMultiPhaseSignedSignedSubmission, PalletElectionProviderMultiPhaseSolutionOrSnapshotSize, PalletForumCall, PalletForumCategory, PalletForumError, PalletForumExtendedPostIdObject, PalletForumPost, PalletForumPrivilegedActor, PalletForumRawEvent, PalletForumThread, PalletGrandpaCall, PalletGrandpaError, PalletGrandpaEvent, PalletGrandpaStoredPendingChange, PalletGrandpaStoredState, PalletImOnlineBoundedOpaqueNetworkState, PalletImOnlineCall, PalletImOnlineError, PalletImOnlineEvent, PalletImOnlineHeartbeat, PalletImOnlineSr25519AppSr25519Public, PalletImOnlineSr25519AppSr25519Signature, PalletJoystreamUtilityCall, PalletJoystreamUtilityError, PalletJoystreamUtilityRawEvent, PalletMembershipBuyMembershipParameters, PalletMembershipCall, PalletMembershipCreateMemberParameters, PalletMembershipError, PalletMembershipGiftMembershipParameters, PalletMembershipInviteMembershipParameters, PalletMembershipMembershipObject, PalletMembershipRawEvent, PalletMembershipStakingAccountMemberBinding, PalletMultisigCall, PalletMultisigError, PalletMultisigEvent, PalletMultisigMultisig, PalletMultisigTimepoint, PalletOffencesEvent, PalletProjectTokenAccountData, PalletProjectTokenCall, PalletProjectTokenErrorsError, PalletProjectTokenEventsRawEvent, PalletProjectTokenMerkleProof, PalletProjectTokenMerkleSide, PalletProjectTokenPatronageData, PalletProjectTokenPayment, PalletProjectTokenPaymentWithVesting, PalletProjectTokenRevenueSplitInfo, PalletProjectTokenRevenueSplitState, PalletProjectTokenSingleDataObjectUploadParams, PalletProjectTokenStakingStatus, PalletProjectTokenTimeline, PalletProjectTokenTokenAllocation, PalletProjectTokenTokenData, PalletProjectTokenTokenIssuanceParameters, PalletProjectTokenTokenSale, PalletProjectTokenTokenSaleParams, PalletProjectTokenTransferPolicy, PalletProjectTokenTransferPolicyParams, PalletProjectTokenTransfersPayment, PalletProjectTokenTransfersPaymentWithVesting, PalletProjectTokenValidated, PalletProjectTokenValidatedPayment, PalletProjectTokenVestingSchedule, PalletProjectTokenVestingScheduleParams, PalletProjectTokenVestingSource, PalletProjectTokenWhitelistParams, PalletProposalsCodexCall, PalletProposalsCodexCreateOpeningParameters, PalletProposalsCodexError, PalletProposalsCodexFillOpeningParameters, PalletProposalsCodexGeneralProposalParams, PalletProposalsCodexProposalDetails, PalletProposalsCodexRawEvent, PalletProposalsCodexTerminateRoleParameters, PalletProposalsDiscussionCall, PalletProposalsDiscussionDiscussionPost, PalletProposalsDiscussionDiscussionThread, PalletProposalsDiscussionError, PalletProposalsDiscussionRawEvent, PalletProposalsDiscussionThreadModeBTreeSet, PalletProposalsDiscussionThreadModeBoundedBTreeSet, PalletProposalsEngineCall, PalletProposalsEngineError, PalletProposalsEngineProposal, PalletProposalsEngineProposalParameters, PalletProposalsEngineProposalStatusesApprovedProposalDecision, PalletProposalsEngineProposalStatusesExecutionStatus, PalletProposalsEngineProposalStatusesProposalDecision, PalletProposalsEngineProposalStatusesProposalStatus, PalletProposalsEngineRawEvent, PalletProposalsEngineVoteKind, PalletProposalsEngineVotingResults, PalletReferendumCall, PalletReferendumCastVote, PalletReferendumError, PalletReferendumInstance1, PalletReferendumOptionResult, PalletReferendumRawEvent, PalletReferendumReferendumStage, PalletReferendumReferendumStageRevealing, PalletReferendumReferendumStageVoting, PalletSessionCall, PalletSessionError, PalletSessionEvent, PalletStakingActiveEraInfo, PalletStakingEraRewardPoints, PalletStakingExposure, PalletStakingForcing, PalletStakingIndividualExposure, PalletStakingNominations, PalletStakingPalletCall, PalletStakingPalletConfigOpPerbill, PalletStakingPalletConfigOpPercent, PalletStakingPalletConfigOpU128, PalletStakingPalletConfigOpU32, PalletStakingPalletError, PalletStakingPalletEvent, PalletStakingRewardDestination, PalletStakingSlashingSlashingSpans, PalletStakingSlashingSpanRecord, PalletStakingStakingLedger, PalletStakingUnappliedSlash, PalletStakingUnlockChunk, PalletStakingValidatorPrefs, PalletStorageBagIdType, PalletStorageBagRecord, PalletStorageCall, PalletStorageDataObject, PalletStorageDataObjectCreationParameters, PalletStorageDistributionBucketFamilyRecord, PalletStorageDistributionBucketIdRecord, PalletStorageDistributionBucketRecord, PalletStorageDynBagCreationParametersRecord, PalletStorageDynamicBagCreationPolicy, PalletStorageDynamicBagIdType, PalletStorageDynamicBagType, PalletStorageError, PalletStorageRawEvent, PalletStorageStaticBagId, PalletStorageStorageBucketOperatorStatus, PalletStorageStorageBucketRecord, PalletStorageUploadParametersRecord, PalletStorageVoucher, PalletTimestampCall, PalletTransactionPaymentChargeTransactionPayment, PalletTransactionPaymentEvent, PalletTransactionPaymentReleases, PalletUtilityCall, PalletUtilityError, PalletUtilityEvent, PalletVestingCall, PalletVestingError, PalletVestingEvent, PalletVestingReleases, PalletVestingVestingInfo, PalletWorkingGroupApplyOnOpeningParams, PalletWorkingGroupCall, PalletWorkingGroupErrorsError, PalletWorkingGroupGroupWorker, PalletWorkingGroupInstance1, PalletWorkingGroupInstance2, PalletWorkingGroupInstance3, PalletWorkingGroupInstance4, PalletWorkingGroupInstance5, PalletWorkingGroupInstance6, PalletWorkingGroupInstance7, PalletWorkingGroupInstance8, PalletWorkingGroupInstance9, PalletWorkingGroupJobApplication, PalletWorkingGroupOpening, PalletWorkingGroupOpeningType, PalletWorkingGroupRawEventInstance1, PalletWorkingGroupRawEventInstance2, PalletWorkingGroupRawEventInstance3, PalletWorkingGroupRawEventInstance4, PalletWorkingGroupRawEventInstance5, PalletWorkingGroupRawEventInstance6, PalletWorkingGroupRawEventInstance7, PalletWorkingGroupRawEventInstance8, PalletWorkingGroupRawEventInstance9, PalletWorkingGroupRewardPaymentType, PalletWorkingGroupStakeParameters, PalletWorkingGroupStakePolicy, SpArithmeticArithmeticError, SpAuthorityDiscoveryAppPublic, SpConsensusBabeAllowedSlots, SpConsensusBabeAppPublic, SpConsensusBabeBabeEpochConfiguration, SpConsensusBabeDigestsNextConfigDescriptor, SpConsensusBabeDigestsPreDigest, SpConsensusBabeDigestsPrimaryPreDigest, SpConsensusBabeDigestsSecondaryPlainPreDigest, SpConsensusBabeDigestsSecondaryVRFPreDigest, SpConsensusSlotsEquivocationProof, SpCoreCryptoKeyTypeId, SpCoreEcdsaSignature, SpCoreEd25519Public, SpCoreEd25519Signature, SpCoreOffchainOpaqueNetworkState, SpCoreSr25519Public, SpCoreSr25519Signature, SpCoreVoid, SpFinalityGrandpaAppPublic, SpFinalityGrandpaAppSignature, SpFinalityGrandpaEquivocation, SpFinalityGrandpaEquivocationProof, SpNposElectionsElectionScore, SpNposElectionsSupport, SpRuntimeBlakeTwo256, SpRuntimeDigest, SpRuntimeDigestDigestItem, SpRuntimeDispatchError, SpRuntimeHeader, SpRuntimeModuleError, SpRuntimeMultiSignature, SpRuntimeTokenError, SpRuntimeTransactionalError, SpSessionMembershipProof, SpStakingOffenceOffenceDetails, SpVersionRuntimeVersion, SpWeightsRuntimeDbWeight, SpWeightsWeightV2Weight } from '@polkadot/types/lookup'; declare module '@polkadot/types/types/registry' { export interface InterfaceTypes { @@ -155,6 +155,9 @@ declare module '@polkadot/types/types/registry' { PalletImOnlineHeartbeat: PalletImOnlineHeartbeat; PalletImOnlineSr25519AppSr25519Public: PalletImOnlineSr25519AppSr25519Public; PalletImOnlineSr25519AppSr25519Signature: PalletImOnlineSr25519AppSr25519Signature; + PalletJoystreamUtilityCall: PalletJoystreamUtilityCall; + PalletJoystreamUtilityError: PalletJoystreamUtilityError; + PalletJoystreamUtilityRawEvent: PalletJoystreamUtilityRawEvent; PalletMembershipBuyMembershipParameters: PalletMembershipBuyMembershipParameters; PalletMembershipCall: PalletMembershipCall; PalletMembershipCreateMemberParameters: PalletMembershipCreateMemberParameters; @@ -283,7 +286,6 @@ declare module '@polkadot/types/types/registry' { PalletUtilityCall: PalletUtilityCall; PalletUtilityError: PalletUtilityError; PalletUtilityEvent: PalletUtilityEvent; - PalletUtilityRawEvent: PalletUtilityRawEvent; PalletVestingCall: PalletVestingCall; PalletVestingError: PalletVestingError; PalletVestingEvent: PalletVestingEvent; diff --git a/types/src/augment/types-lookup.ts b/types/src/augment/types-lookup.ts index 7793087c10..418743f094 100644 --- a/types/src/augment/types-lookup.ts +++ b/types/src/augment/types-lookup.ts @@ -868,8 +868,8 @@ declare module '@polkadot/types/lookup' { readonly type: 'Winner' | 'Rejected'; } - /** @name PalletUtilityRawEvent (101) */ - export interface PalletUtilityRawEvent extends Enum { + /** @name PalletJoystreamUtilityRawEvent (101) */ + export interface PalletJoystreamUtilityRawEvent extends Enum { readonly isSignaled: boolean; readonly asSignaled: Bytes; readonly isRuntimeUpgraded: boolean; @@ -3356,6 +3356,29 @@ declare module '@polkadot/types/lookup' { readonly type: 'CreateBounty' | 'FundBounty' | 'TerminateBounty' | 'SwitchOracle' | 'WithdrawFunding' | 'AnnounceWorkEntry' | 'SubmitWork' | 'EndWorkingPeriod' | 'SubmitOracleJudgment' | 'WithdrawEntrantStake' | 'WithdrawOracleReward' | 'ContributorRemark' | 'OracleRemark' | 'EntrantRemark' | 'CreatorRemark'; } + /** @name PalletJoystreamUtilityCall (384) */ + export interface PalletJoystreamUtilityCall extends Enum { + readonly isExecuteSignalProposal: boolean; + readonly asExecuteSignalProposal: { + readonly signal: Bytes; + } & Struct; + readonly isExecuteRuntimeUpgradeProposal: boolean; + readonly asExecuteRuntimeUpgradeProposal: { + readonly wasm: Bytes; + } & Struct; + readonly isUpdateWorkingGroupBudget: boolean; + readonly asUpdateWorkingGroupBudget: { + readonly workingGroup: PalletCommonWorkingGroupIterableEnumsWorkingGroup; + readonly amount: u128; + readonly balanceKind: PalletCommonBalanceKind; + } & Struct; + readonly isBurnAccountTokens: boolean; + readonly asBurnAccountTokens: { + readonly amount: u128; + } & Struct; + readonly type: 'ExecuteSignalProposal' | 'ExecuteRuntimeUpgradeProposal' | 'UpdateWorkingGroupBudget' | 'BurnAccountTokens'; + } + /** @name PalletContentCall (385) */ export interface PalletContentCall extends Enum { readonly isCreateCuratorGroup: boolean; @@ -4920,6 +4943,14 @@ declare module '@polkadot/types/lookup' { readonly type: 'ArithmeticError' | 'MinFundingAmountCannotBeGreaterThanMaxAmount' | 'BountyDoesntExist' | 'SwitchOracleOriginIsRoot' | 'InvalidStageUnexpectedFunding' | 'InvalidStageUnexpectedNoFundingContributed' | 'InvalidStageUnexpectedCancelled' | 'InvalidStageUnexpectedWorkSubmission' | 'InvalidStageUnexpectedJudgment' | 'InvalidStageUnexpectedSuccessfulBountyWithdrawal' | 'InvalidStageUnexpectedFailedBountyWithdrawal' | 'InsufficientBalanceForBounty' | 'NoBountyContributionFound' | 'InsufficientBalanceForStake' | 'ConflictingStakes' | 'WorkEntryDoesntExist' | 'CherryLessThenMinimumAllowed' | 'CannotSubmitWorkToClosedContractBounty' | 'ClosedContractMemberListIsEmpty' | 'ClosedContractMemberListIsTooLarge' | 'ClosedContractMemberNotFound' | 'InvalidOracleMemberId' | 'InvalidStakingAccountForMember' | 'ZeroWinnerReward' | 'TotalRewardShouldBeEqualToTotalFunding' | 'EntrantStakeIsLessThanMininum' | 'FundingAmountCannotBeZero' | 'FundingPeriodCannotBeZero' | 'WinnerShouldHasWorkSubmission' | 'InvalidContributorActorSpecified' | 'InvalidOracleActorSpecified' | 'InvalidEntrantWorkerSpecified' | 'InvalidCreatorActorSpecified' | 'WorkEntryDoesntBelongToWorker' | 'OracleRewardAlreadyWithdrawn'; } + /** @name PalletJoystreamUtilityError (548) */ + export interface PalletJoystreamUtilityError extends Enum { + readonly isInsufficientFundsForBudgetUpdate: boolean; + readonly isZeroTokensBurn: boolean; + readonly isInsufficientFundsForBurn: boolean; + readonly type: 'InsufficientFundsForBudgetUpdate' | 'ZeroTokensBurn' | 'InsufficientFundsForBurn'; + } + /** @name PalletContentVideoRecord (549) */ export interface PalletContentVideoRecord extends Struct { readonly inChannel: u64; From b3eebcaa5dbc6cae8dc0dc6d8ff22754c08d8a00 Mon Sep 17 00:00:00 2001 From: Mokhtar Naamani Date: Tue, 23 May 2023 10:09:05 +0400 Subject: [PATCH 81/87] setup.sh drop getsubstrate.io - tries to install deprecated protobuf apt package --- setup.sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/setup.sh b/setup.sh index 09c9316df7..996d7b93b1 100755 --- a/setup.sh +++ b/setup.sh @@ -31,7 +31,11 @@ fi # If OS is supported will install build tools for rust and substrate. # Skips installation of substrate and subkey -curl https://getsubstrate.io -sSf | bash -s -- --fast +# old script trying to install package 'protobuf' which does not exist +# curl https://getsubstrate.io -sSf | bash -s -- --fast + +# Install Rust toolchain since we no longer use getsubstrate.io script +curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh source ~/.cargo/env From 7fc95a40cf10ee67121df95beebf09fab17a33ee Mon Sep 17 00:00:00 2001 From: Mokhtar Naamani Date: Tue, 23 May 2023 10:22:22 +0400 Subject: [PATCH 82/87] rustup install script - non-interactive shell fix --- setup.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.sh b/setup.sh index 996d7b93b1..cf397f4ca0 100755 --- a/setup.sh +++ b/setup.sh @@ -35,7 +35,7 @@ fi # curl https://getsubstrate.io -sSf | bash -s -- --fast # Install Rust toolchain since we no longer use getsubstrate.io script -curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh +curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y source ~/.cargo/env From 779c774a5b368bac18b6f6f20121ecf3e4c1a226 Mon Sep 17 00:00:00 2001 From: Mokhtar Naamani Date: Tue, 23 May 2023 14:17:06 +0400 Subject: [PATCH 83/87] setup.sh - rustup update after install --- setup.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/setup.sh b/setup.sh index cf397f4ca0..7aeb23ba07 100755 --- a/setup.sh +++ b/setup.sh @@ -39,6 +39,9 @@ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y source ~/.cargo/env +rustup update +rustup update nightly + rustup install nightly-2022-11-15 rustup target add wasm32-unknown-unknown --toolchain nightly-2022-11-15 From 09fac5488aee66247b0c9de1487f61954f837653 Mon Sep 17 00:00:00 2001 From: Mokhtar Naamani Date: Sun, 30 Jul 2023 12:26:39 +0300 Subject: [PATCH 84/87] update cargo-chef to work with latest nightly --- joystream-node.Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/joystream-node.Dockerfile b/joystream-node.Dockerfile index 8030a698c7..77955c3687 100644 --- a/joystream-node.Dockerfile +++ b/joystream-node.Dockerfile @@ -11,7 +11,7 @@ RUN rustup default nightly-2022-11-15 RUN rustup target add wasm32-unknown-unknown --toolchain nightly-2022-11-15 RUN rustup component add --toolchain nightly-2022-11-15 clippy RUN rustup install nightly -RUN cargo +nightly install cargo-chef@0.1.59 --locked +RUN cargo +nightly install cargo-chef@0.1.62 --locked FROM rust AS planner LABEL description="Cargo chef prepare" From 2f82527e19b15c54d9db343b62878a8b41b69a0b Mon Sep 17 00:00:00 2001 From: Mokhtar Naamani Date: Sun, 30 Jul 2023 12:32:46 +0300 Subject: [PATCH 85/87] fix cargo-chef install no --locked arg --- joystream-node.Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/joystream-node.Dockerfile b/joystream-node.Dockerfile index 77955c3687..1a3586b49d 100644 --- a/joystream-node.Dockerfile +++ b/joystream-node.Dockerfile @@ -11,7 +11,7 @@ RUN rustup default nightly-2022-11-15 RUN rustup target add wasm32-unknown-unknown --toolchain nightly-2022-11-15 RUN rustup component add --toolchain nightly-2022-11-15 clippy RUN rustup install nightly -RUN cargo +nightly install cargo-chef@0.1.62 --locked +RUN cargo +nightly install cargo-chef@0.1.62 FROM rust AS planner LABEL description="Cargo chef prepare" From d53ddd4e2f564b29f3f4823f43239a2712a2c8bd Mon Sep 17 00:00:00 2001 From: Mokhtar Naamani Date: Mon, 31 Jul 2023 02:33:57 +0300 Subject: [PATCH 86/87] use Weight:from_parts in place of from_ref_time which is deprecated --- devops/frame-weight-template.hbs | 4 ++-- devops/joystream-pallet-weight-template.hbs | 6 +++--- runtime-modules/proposals/codex/src/tests/mock.rs | 2 +- runtime/src/constants.rs | 2 +- runtime/src/runtime_api.rs | 2 +- runtime/src/utils.rs | 2 +- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/devops/frame-weight-template.hbs b/devops/frame-weight-template.hbs index 5676e9523b..6349355d54 100644 --- a/devops/frame-weight-template.hbs +++ b/devops/frame-weight-template.hbs @@ -55,11 +55,11 @@ impl WeightInfo for SubstrateWeight { // Measured: `{{benchmark.base_recorded_proof_size}}{{#each benchmark.component_recorded_proof_size as |cp|}} + {{cp.name}} * ({{cp.slope}} ±{{underscore cp.error}}){{/each}}` // Estimated: `{{benchmark.base_calculated_proof_size}}{{#each benchmark.component_calculated_proof_size as |cp|}} + {{cp.name}} * ({{cp.slope}} ±{{underscore cp.error}}){{/each}}` // Minimum execution time: {{underscore benchmark.min_execution_time}} nanoseconds. - Weight::from_ref_time({{underscore benchmark.base_weight}}) + Weight::from_parts({{underscore benchmark.base_weight}}, 0u64) .saturating_add(Weight::from_proof_size({{benchmark.base_calculated_proof_size}})) {{#each benchmark.component_weight as |cw|}} // Standard Error: {{underscore cw.error}} - .saturating_add(Weight::from_ref_time({{underscore cw.slope}}).saturating_mul({{cw.name}}.into())) + .saturating_add(Weight::from_parts({{underscore cw.slope}}, 0u64).saturating_mul({{cw.name}}.into())) {{/each}} {{#if (ne benchmark.base_reads "0")}} .saturating_add(T::DbWeight::get().reads({{benchmark.base_reads}}_u64)) diff --git a/devops/joystream-pallet-weight-template.hbs b/devops/joystream-pallet-weight-template.hbs index 947b403c60..168fdb416c 100644 --- a/devops/joystream-pallet-weight-template.hbs +++ b/devops/joystream-pallet-weight-template.hbs @@ -64,11 +64,11 @@ impl WeightInfo for SubstrateWeight { // Measured: `{{benchmark.base_recorded_proof_size}}{{#each benchmark.component_recorded_proof_size as |cp|}} + {{cp.name}} * ({{cp.slope}} ±{{underscore cp.error}}){{/each}}` // Estimated: `{{benchmark.base_calculated_proof_size}}{{#each benchmark.component_calculated_proof_size as |cp|}} + {{cp.name}} * ({{cp.slope}} ±{{underscore cp.error}}){{/each}}` // Minimum execution time: {{underscore benchmark.min_execution_time}} nanoseconds. - Weight::from_ref_time({{underscore benchmark.base_weight}}) + Weight::from_parts({{underscore benchmark.base_weight}}, 0u64) .saturating_add(Weight::from_proof_size({{benchmark.base_calculated_proof_size}})) {{#each benchmark.component_weight as |cw|}} // Standard Error: {{underscore cw.error}} - .saturating_add(Weight::from_ref_time({{underscore cw.slope}}).saturating_mul({{cw.name}}.into())) + .saturating_add(Weight::from_parts({{underscore cw.slope}}, 0u64).saturating_mul({{cw.name}}.into())) {{/each}} {{#if (ne benchmark.base_reads "0")}} .saturating_add(T::DbWeight::get().reads({{benchmark.base_reads}}_u64)) @@ -97,7 +97,7 @@ impl WeightInfo for () { {{~#each benchmark.components as |c| ~}} {{~#if (not c.is_used)}}_{{/if}}{{c.name}}: u32, {{/each~}} ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } {{/each}} } diff --git a/runtime-modules/proposals/codex/src/tests/mock.rs b/runtime-modules/proposals/codex/src/tests/mock.rs index 29d71c770c..0c2a5259ff 100644 --- a/runtime-modules/proposals/codex/src/tests/mock.rs +++ b/runtime-modules/proposals/codex/src/tests/mock.rs @@ -111,7 +111,7 @@ frame_support::construct_runtime!( parameter_types! { pub BlockWeights: frame_system::limits::BlockWeights = frame_system::limits::BlockWeights::simple_max( - frame_support::weights::Weight::from_ref_time(frame_support::weights::constants::WEIGHT_REF_TIME_PER_SECOND * 2) + frame_support::weights::Weight::from_parts(frame_support::weights::constants::WEIGHT_REF_TIME_PER_SECOND * 2, 0u64) ); pub static SessionsPerEra: SessionIndex = 3; pub static ExistentialDeposit: Balance = 1; diff --git a/runtime/src/constants.rs b/runtime/src/constants.rs index 3df0225a3f..9c72e0b4d5 100644 --- a/runtime/src/constants.rs +++ b/runtime/src/constants.rs @@ -237,7 +237,7 @@ mod tests { let full_block_cost: Balance = ::LengthToFee::weight_to_fee( - &Weight::from_ref_time(max_normal_dispatch_block_length), + &Weight::from_parts(max_normal_dispatch_block_length, 0), ); let day_of_full_blocks_cost = full_block_cost.saturating_mul(Balance::from(super::DAYS)); diff --git a/runtime/src/runtime_api.rs b/runtime/src/runtime_api.rs index de33c2aa61..69058773fb 100644 --- a/runtime/src/runtime_api.rs +++ b/runtime/src/runtime_api.rs @@ -71,7 +71,7 @@ impl OnRuntimeUpgrade for CancelActiveAndPendingProposals { fn on_runtime_upgrade() -> Weight { ProposalsEngine::cancel_active_and_pending_proposals(); - Weight::from_ref_time(10_000_000) // TODO: adjust weight + Weight::from_parts(10_000_000, 0) // TODO: adjust weight } } diff --git a/runtime/src/utils.rs b/runtime/src/utils.rs index ba874d6ab9..384c7546e1 100644 --- a/runtime/src/utils.rs +++ b/runtime/src/utils.rs @@ -28,7 +28,7 @@ pub fn compute_fee(call: RuntimeCall) -> Balance { &dispatch_info.weight, ); let len_fee = ::LengthToFee::weight_to_fee( - &Weight::from_ref_time(length), + &Weight::from_parts(length, 0), ); let base_fee = ::WeightToFee::weight_to_fee( &::BlockWeights::get() From 51fb7635553d2aaedb59b6fc94412d244b233851 Mon Sep 17 00:00:00 2001 From: Mokhtar Naamani Date: Mon, 31 Jul 2023 09:57:09 +0300 Subject: [PATCH 87/87] generate weights using Weight:from_parts in template --- runtime-modules/bounty/src/weights.rs | 276 ++++--- runtime-modules/constitution/src/weights.rs | 18 +- runtime-modules/content/src/weights.rs | 778 +++++++++--------- runtime-modules/council/src/weights.rs | 122 +-- runtime-modules/forum/src/weights.rs | 324 ++++---- runtime-modules/membership/src/weights.rs | 188 ++--- runtime-modules/project-token/src/weights.rs | 58 +- .../proposals/codex/src/weights.rs | 354 ++++---- .../proposals/discussion/src/weights.rs | 44 +- .../proposals/engine/src/weights.rs | 96 +-- runtime-modules/referendum/src/weights.rs | 82 +- runtime-modules/storage/src/weights.rs | 270 +++--- runtime-modules/utility/src/weights.rs | 36 +- runtime-modules/working-group/src/weights.rs | 214 ++--- runtime/src/weights/block_weights.rs | 26 +- runtime/src/weights/extrinsic_weights.rs | 26 +- runtime/src/weights/frame_system.rs | 50 +- runtime/src/weights/pallet_bags_list.rs | 20 +- runtime/src/weights/pallet_balances.rs | 36 +- .../pallet_election_provider_multi_phase.rs | 76 +- runtime/src/weights/pallet_im_online.rs | 24 +- runtime/src/weights/pallet_multisig.rs | 76 +- runtime/src/weights/pallet_session.rs | 16 +- runtime/src/weights/pallet_staking.rs | 188 ++--- runtime/src/weights/pallet_timestamp.rs | 16 +- runtime/src/weights/pallet_vesting.rs | 104 +-- runtime/src/weights/rocksdb_weights.rs | 42 +- runtime/src/weights/substrate_utility.rs | 40 +- 28 files changed, 1805 insertions(+), 1795 deletions(-) diff --git a/runtime-modules/bounty/src/weights.rs b/runtime-modules/bounty/src/weights.rs index d2ebb51759..b79eb78ddf 100644 --- a/runtime-modules/bounty/src/weights.rs +++ b/runtime-modules/bounty/src/weights.rs @@ -18,11 +18,11 @@ //! Autogenerated weights for bounty //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-27, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("prod-test"), DB CACHE: 1024 // Executed Command: -// ./scripts/../target/release/joystream-node +// ./../target/release/joystream-node // benchmark // pallet // --pallet=bounty @@ -31,8 +31,8 @@ // --steps=50 // --repeat=20 // --execution=wasm -// --template=./scripts/../devops/joystream-pallet-weight-template.hbs -// --output=./scripts/../runtime-modules/bounty/src/weights.rs +// --template=./../devops/joystream-pallet-weight-template.hbs +// --output=./../runtime-modules/bounty/src/weights.rs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -97,13 +97,13 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `463 + j * (166 ±0)` // Estimated: `3613 + j * (2600 ±0)` - // Minimum execution time: 188_421 nanoseconds. - Weight::from_ref_time(75_620_767) + // Minimum execution time: 85_000 nanoseconds. + Weight::from_parts(40_762_381, 0u64) .saturating_add(Weight::from_proof_size(3613)) - // Standard Error: 7_948 - .saturating_add(Weight::from_ref_time(1_138_259).saturating_mul(i.into())) - // Standard Error: 16_092 - .saturating_add(Weight::from_ref_time(4_436_688).saturating_mul(j.into())) + // Standard Error: 3_085 + .saturating_add(Weight::from_parts(435_405, 0u64).saturating_mul(i.into())) + // Standard Error: 6_246 + .saturating_add(Weight::from_parts(2_907_068, 0u64).saturating_mul(j.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(j.into()))) .saturating_add(T::DbWeight::get().writes(4_u64)) @@ -123,13 +123,13 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `501 + j * (168 ±0)` // Estimated: `8305 + j * (2600 ±0)` - // Minimum execution time: 193_826 nanoseconds. - Weight::from_ref_time(88_109_671) + // Minimum execution time: 91_000 nanoseconds. + Weight::from_parts(47_208_829, 0u64) .saturating_add(Weight::from_proof_size(8305)) - // Standard Error: 8_400 - .saturating_add(Weight::from_ref_time(1_074_934).saturating_mul(i.into())) - // Standard Error: 17_008 - .saturating_add(Weight::from_ref_time(4_352_352).saturating_mul(j.into())) + // Standard Error: 2_074 + .saturating_add(Weight::from_parts(427_962, 0u64).saturating_mul(i.into())) + // Standard Error: 4_200 + .saturating_add(Weight::from_parts(2_892_178, 0u64).saturating_mul(j.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(j.into()))) .saturating_add(T::DbWeight::get().writes(4_u64)) @@ -147,8 +147,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `620` // Estimated: `8685` - // Minimum execution time: 67_627 nanoseconds. - Weight::from_ref_time(68_828_000) + // Minimum execution time: 37_000 nanoseconds. + Weight::from_parts(37_000_000, 0u64) .saturating_add(Weight::from_proof_size(8685)) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -165,8 +165,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `620` // Estimated: `8685` - // Minimum execution time: 97_950 nanoseconds. - Weight::from_ref_time(99_171_000) + // Minimum execution time: 55_000 nanoseconds. + Weight::from_parts(56_000_000, 0u64) .saturating_add(Weight::from_proof_size(8685)) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -183,8 +183,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `620` // Estimated: `8685` - // Minimum execution time: 67_557 nanoseconds. - Weight::from_ref_time(68_641_000) + // Minimum execution time: 37_000 nanoseconds. + Weight::from_parts(37_000_000, 0u64) .saturating_add(Weight::from_proof_size(8685)) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -201,8 +201,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `620` // Estimated: `8685` - // Minimum execution time: 97_430 nanoseconds. - Weight::from_ref_time(98_920_000) + // Minimum execution time: 56_000 nanoseconds. + Weight::from_parts(57_000_000, 0u64) .saturating_add(Weight::from_proof_size(8685)) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -215,8 +215,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `315` // Estimated: `8127` - // Minimum execution time: 39_082 nanoseconds. - Weight::from_ref_time(39_964_000) + // Minimum execution time: 19_000 nanoseconds. + Weight::from_parts(20_000_000, 0u64) .saturating_add(Weight::from_proof_size(8127)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -229,8 +229,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `315` // Estimated: `8127` - // Minimum execution time: 45_856 nanoseconds. - Weight::from_ref_time(46_963_000) + // Minimum execution time: 24_000 nanoseconds. + Weight::from_parts(24_000_000, 0u64) .saturating_add(Weight::from_proof_size(8127)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -243,8 +243,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `306` // Estimated: `8127` - // Minimum execution time: 39_197 nanoseconds. - Weight::from_ref_time(39_814_000) + // Minimum execution time: 20_000 nanoseconds. + Weight::from_parts(21_000_000, 0u64) .saturating_add(Weight::from_proof_size(8127)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -261,8 +261,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `800` // Estimated: `13377` - // Minimum execution time: 82_104 nanoseconds. - Weight::from_ref_time(83_047_000) + // Minimum execution time: 45_000 nanoseconds. + Weight::from_parts(46_000_000, 0u64) .saturating_add(Weight::from_proof_size(13377)) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) @@ -279,8 +279,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `616` // Estimated: `8685` - // Minimum execution time: 70_281 nanoseconds. - Weight::from_ref_time(70_827_000) + // Minimum execution time: 39_000 nanoseconds. + Weight::from_parts(40_000_000, 0u64) .saturating_add(Weight::from_proof_size(8685)) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) @@ -297,8 +297,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `907` // Estimated: `13377` - // Minimum execution time: 78_804 nanoseconds. - Weight::from_ref_time(79_844_000) + // Minimum execution time: 44_000 nanoseconds. + Weight::from_parts(45_000_000, 0u64) .saturating_add(Weight::from_proof_size(13377)) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -315,8 +315,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `715` // Estimated: `8685` - // Minimum execution time: 68_534 nanoseconds. - Weight::from_ref_time(69_548_000) + // Minimum execution time: 38_000 nanoseconds. + Weight::from_parts(39_000_000, 0u64) .saturating_add(Weight::from_proof_size(8685)) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -341,13 +341,13 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1067 + j * (36 ±0)` // Estimated: `15023` - // Minimum execution time: 104_412 nanoseconds. - Weight::from_ref_time(84_559_006) + // Minimum execution time: 60_000 nanoseconds. + Weight::from_parts(49_908_902, 0u64) .saturating_add(Weight::from_proof_size(15023)) - // Standard Error: 3_769 - .saturating_add(Weight::from_ref_time(1_284_525).saturating_mul(i.into())) - // Standard Error: 7_631 - .saturating_add(Weight::from_ref_time(368_774).saturating_mul(j.into())) + // Standard Error: 2_565 + .saturating_add(Weight::from_parts(479_480, 0u64).saturating_mul(i.into())) + // Standard Error: 5_193 + .saturating_add(Weight::from_parts(218_443, 0u64).saturating_mul(j.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(5_u64)) } @@ -362,11 +362,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `696` // Estimated: `8183` - // Minimum execution time: 40_341 nanoseconds. - Weight::from_ref_time(42_355_748) + // Minimum execution time: 22_000 nanoseconds. + Weight::from_parts(23_375_041, 0u64) .saturating_add(Weight::from_proof_size(8183)) - // Standard Error: 2_741 - .saturating_add(Weight::from_ref_time(1_236_917).saturating_mul(i.into())) + // Standard Error: 705 + .saturating_add(Weight::from_parts(467_588, 0u64).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -386,17 +386,21 @@ impl WeightInfo for SubstrateWeight { /// The range of component `k` is `[0, 100]`. /// The range of component `w` is `[1, 20]`. /// The range of component `r` is `[1, 20]`. - fn submit_oracle_judgment_by_council(_j: u32, _k: u32, w: u32, r: u32, ) -> Weight { + fn submit_oracle_judgment_by_council(j: u32, k: u32, w: u32, r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `989 + w * (576 ±0) + r * (576 ±0)` // Estimated: `6129 + w * (11545 ±0) + r * (11545 ±0)` - // Minimum execution time: 1_551_412 nanoseconds. - Weight::from_ref_time(1_570_319_000) + // Minimum execution time: 947_000 nanoseconds. + Weight::from_parts(2_646_027, 0u64) .saturating_add(Weight::from_proof_size(6129)) - // Standard Error: 451_018 - .saturating_add(Weight::from_ref_time(38_106_635).saturating_mul(w.into())) - // Standard Error: 451_018 - .saturating_add(Weight::from_ref_time(54_928_319).saturating_mul(r.into())) + // Standard Error: 13_802 + .saturating_add(Weight::from_parts(573_932, 0u64).saturating_mul(j.into())) + // Standard Error: 13_802 + .saturating_add(Weight::from_parts(560_290, 0u64).saturating_mul(k.into())) + // Standard Error: 70_636 + .saturating_add(Weight::from_parts(40_110_994, 0u64).saturating_mul(w.into())) + // Standard Error: 70_636 + .saturating_add(Weight::from_parts(51_345_390, 0u64).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().reads((4_u64).saturating_mul(w.into()))) .saturating_add(T::DbWeight::get().reads((4_u64).saturating_mul(r.into()))) @@ -422,17 +426,21 @@ impl WeightInfo for SubstrateWeight { /// The range of component `k` is `[0, 100]`. /// The range of component `w` is `[1, 20]`. /// The range of component `r` is `[1, 19]`. - fn submit_oracle_judgment_by_member(_j: u32, _k: u32, w: u32, r: u32, ) -> Weight { + fn submit_oracle_judgment_by_member(j: u32, k: u32, w: u32, r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `1117 + w * (579 ±0) + r * (579 ±0)` // Estimated: `8729 + w * (11545 ±0) + r * (11545 ±0)` - // Minimum execution time: 1_560_712 nanoseconds. - Weight::from_ref_time(1_571_970_000) + // Minimum execution time: 958_000 nanoseconds. + Weight::from_parts(4_181_872, 0u64) .saturating_add(Weight::from_proof_size(8729)) - // Standard Error: 449_548 - .saturating_add(Weight::from_ref_time(38_446_416).saturating_mul(w.into())) - // Standard Error: 473_583 - .saturating_add(Weight::from_ref_time(53_920_276).saturating_mul(r.into())) + // Standard Error: 12_331 + .saturating_add(Weight::from_parts(542_300, 0u64).saturating_mul(j.into())) + // Standard Error: 12_331 + .saturating_add(Weight::from_parts(602_939, 0u64).saturating_mul(k.into())) + // Standard Error: 63_111 + .saturating_add(Weight::from_parts(40_041_464, 0u64).saturating_mul(w.into())) + // Standard Error: 66_543 + .saturating_add(Weight::from_parts(51_370_546, 0u64).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().reads((4_u64).saturating_mul(w.into()))) .saturating_add(T::DbWeight::get().reads((4_u64).saturating_mul(r.into()))) @@ -448,8 +456,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `216` // Estimated: `3015` - // Minimum execution time: 29_582 nanoseconds. - Weight::from_ref_time(30_303_000) + // Minimum execution time: 15_000 nanoseconds. + Weight::from_parts(16_000_000, 0u64) .saturating_add(Weight::from_proof_size(3015)) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -462,8 +470,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `493` // Estimated: `5615` - // Minimum execution time: 36_182 nanoseconds. - Weight::from_ref_time(36_815_000) + // Minimum execution time: 19_000 nanoseconds. + Weight::from_parts(19_000_000, 0u64) .saturating_add(Weight::from_proof_size(5615)) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -476,8 +484,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `538` // Estimated: `5615` - // Minimum execution time: 37_485 nanoseconds. - Weight::from_ref_time(38_548_000) + // Minimum execution time: 20_000 nanoseconds. + Weight::from_parts(21_000_000, 0u64) .saturating_add(Weight::from_proof_size(5615)) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -490,8 +498,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `669` // Estimated: `8215` - // Minimum execution time: 41_300 nanoseconds. - Weight::from_ref_time(42_374_000) + // Minimum execution time: 22_000 nanoseconds. + Weight::from_parts(23_000_000, 0u64) .saturating_add(Weight::from_proof_size(8215)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -504,8 +512,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `501` // Estimated: `5615` - // Minimum execution time: 35_897 nanoseconds. - Weight::from_ref_time(36_786_000) + // Minimum execution time: 19_000 nanoseconds. + Weight::from_parts(19_000_000, 0u64) .saturating_add(Weight::from_proof_size(5615)) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -518,8 +526,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `622` // Estimated: `5615` - // Minimum execution time: 38_443 nanoseconds. - Weight::from_ref_time(38_978_000) + // Minimum execution time: 20_000 nanoseconds. + Weight::from_parts(21_000_000, 0u64) .saturating_add(Weight::from_proof_size(5615)) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -538,8 +546,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1022` // Estimated: `14560` - // Minimum execution time: 65_585 nanoseconds. - Weight::from_ref_time(66_316_000) + // Minimum execution time: 35_000 nanoseconds. + Weight::from_parts(36_000_000, 0u64) .saturating_add(Weight::from_proof_size(14560)) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) @@ -556,8 +564,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `738` // Estimated: `8685` - // Minimum execution time: 67_751 nanoseconds. - Weight::from_ref_time(68_569_000) + // Minimum execution time: 37_000 nanoseconds. + Weight::from_parts(37_000_000, 0u64) .saturating_add(Weight::from_proof_size(8685)) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -574,8 +582,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1035` // Estimated: `13377` - // Minimum execution time: 77_515 nanoseconds. - Weight::from_ref_time(79_395_000) + // Minimum execution time: 43_000 nanoseconds. + Weight::from_parts(44_000_000, 0u64) .saturating_add(Weight::from_proof_size(13377)) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -592,8 +600,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `611` // Estimated: `8685` - // Minimum execution time: 99_735 nanoseconds. - Weight::from_ref_time(100_642_000) + // Minimum execution time: 57_000 nanoseconds. + Weight::from_parts(58_000_000, 0u64) .saturating_add(Weight::from_proof_size(8685)) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -612,8 +620,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1076` // Estimated: `13888` - // Minimum execution time: 117_474 nanoseconds. - Weight::from_ref_time(121_142_000) + // Minimum execution time: 66_000 nanoseconds. + Weight::from_parts(67_000_000, 0u64) .saturating_add(Weight::from_proof_size(13888)) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) @@ -627,11 +635,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `555` // Estimated: `5168` - // Minimum execution time: 30_959 nanoseconds. - Weight::from_ref_time(31_654_337) + // Minimum execution time: 16_000 nanoseconds. + Weight::from_parts(17_392_732, 0u64) .saturating_add(Weight::from_proof_size(5168)) - // Standard Error: 2_064 - .saturating_add(Weight::from_ref_time(1_243_665).saturating_mul(i.into())) + // Standard Error: 1_079 + .saturating_add(Weight::from_parts(471_834, 0u64).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) } // Storage: Membership MembershipById (r:1 w:0) @@ -643,11 +651,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `454` // Estimated: `5156` - // Minimum execution time: 30_162 nanoseconds. - Weight::from_ref_time(29_958_534) + // Minimum execution time: 15_000 nanoseconds. + Weight::from_parts(16_607_359, 0u64) .saturating_add(Weight::from_proof_size(5156)) - // Standard Error: 12_068 - .saturating_add(Weight::from_ref_time(1_113_401).saturating_mul(i.into())) + // Standard Error: 741 + .saturating_add(Weight::from_parts(422_266, 0u64).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) } // Storage: Bounty Bounties (r:1 w:0) @@ -657,11 +665,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `236` // Estimated: `3015` - // Minimum execution time: 22_911 nanoseconds. - Weight::from_ref_time(23_604_997) + // Minimum execution time: 12_000 nanoseconds. + Weight::from_parts(12_769_540, 0u64) .saturating_add(Weight::from_proof_size(3015)) - // Standard Error: 2_365 - .saturating_add(Weight::from_ref_time(1_081_347).saturating_mul(i.into())) + // Standard Error: 1_046 + .saturating_add(Weight::from_parts(425_453, 0u64).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) } // Storage: Bounty Bounties (r:1 w:0) @@ -671,11 +679,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `236` // Estimated: `3015` - // Minimum execution time: 22_842 nanoseconds. - Weight::from_ref_time(23_387_934) + // Minimum execution time: 11_000 nanoseconds. + Weight::from_parts(13_155_844, 0u64) .saturating_add(Weight::from_proof_size(3015)) - // Standard Error: 1_934 - .saturating_add(Weight::from_ref_time(1_087_562).saturating_mul(i.into())) + // Standard Error: 1_108 + .saturating_add(Weight::from_parts(421_610, 0u64).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) } } @@ -683,99 +691,99 @@ impl WeightInfo for SubstrateWeight { // Default implementation for tests impl WeightInfo for () { fn create_bounty_by_council(i: u32, j: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn create_bounty_by_member(i: u32, j: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn terminate_bounty_w_oracle_reward_funding_expired() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn terminate_bounty_wo_oracle_reward_funding_expired() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn terminate_bounty_w_oracle_reward_wo_funds_funding() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn terminate_bounty_wo_oracle_reward_wo_funds_funding() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn terminate_bounty_w_oracle_reward_w_funds_funding() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn terminate_bounty_wo_oracle_reward_w_funds_funding() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn terminate_bounty_work_or_judging_period() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn fund_bounty_by_member() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn fund_bounty_by_council() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn withdraw_funding_by_member() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn withdraw_funding_by_council() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn announce_work_entry(i: u32, j: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn submit_work(i: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } - fn submit_oracle_judgment_by_council(_j: u32, _k: u32, w: u32, r: u32, ) -> Weight { - Weight::from_ref_time(0) + fn submit_oracle_judgment_by_council(j: u32, k: u32, w: u32, r: u32, ) -> Weight { + Weight::from_parts(0, 0) } - fn submit_oracle_judgment_by_member(_j: u32, _k: u32, w: u32, r: u32, ) -> Weight { - Weight::from_ref_time(0) + fn submit_oracle_judgment_by_member(j: u32, k: u32, w: u32, r: u32, ) -> Weight { + Weight::from_parts(0, 0) } fn switch_oracle_to_council_by_council_successful() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn switch_oracle_to_member_by_oracle_council() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn switch_oracle_to_member_by_council() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn switch_oracle_to_member_by_oracle_member() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn switch_oracle_to_council_by_oracle_member() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn end_working_period() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn withdraw_entrant_stake() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn withdraw_funding_state_bloat_bond_by_council() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn withdraw_funding_state_bloat_bond_by_member() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn withdraw_oracle_reward_by_oracle_council() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn withdraw_oracle_reward_by_oracle_member() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn entrant_remark(i: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn contributor_remark(i: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn oracle_remark(i: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn creator_remark(i: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } } diff --git a/runtime-modules/constitution/src/weights.rs b/runtime-modules/constitution/src/weights.rs index e831485f91..ca61c91efa 100644 --- a/runtime-modules/constitution/src/weights.rs +++ b/runtime-modules/constitution/src/weights.rs @@ -18,11 +18,11 @@ //! Autogenerated weights for pallet_constitution //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-27, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("prod-test"), DB CACHE: 1024 // Executed Command: -// ./scripts/../target/release/joystream-node +// ./../target/release/joystream-node // benchmark // pallet // --pallet=pallet_constitution @@ -31,8 +31,8 @@ // --steps=50 // --repeat=20 // --execution=wasm -// --template=./scripts/../devops/joystream-pallet-weight-template.hbs -// --output=./scripts/../runtime-modules/constitution/src/weights.rs +// --template=./../devops/joystream-pallet-weight-template.hbs +// --output=./../runtime-modules/constitution/src/weights.rs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -57,11 +57,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 15_025 nanoseconds. - Weight::from_ref_time(17_014_984) + // Minimum execution time: 7_000 nanoseconds. + Weight::from_parts(7_856_402, 0u64) .saturating_add(Weight::from_proof_size(0)) - // Standard Error: 9 - .saturating_add(Weight::from_ref_time(2_488).saturating_mul(i.into())) + // Standard Error: 2 + .saturating_add(Weight::from_parts(1_508, 0u64).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().writes(1_u64)) } } @@ -69,6 +69,6 @@ impl WeightInfo for SubstrateWeight { // Default implementation for tests impl WeightInfo for () { fn amend_constitution(i: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } } diff --git a/runtime-modules/content/src/weights.rs b/runtime-modules/content/src/weights.rs index 3a417d5b7b..f53aa0623b 100644 --- a/runtime-modules/content/src/weights.rs +++ b/runtime-modules/content/src/weights.rs @@ -18,11 +18,11 @@ //! Autogenerated weights for content //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-27, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("prod-test"), DB CACHE: 1024 // Executed Command: -// ./scripts/../target/release/joystream-node +// ./../target/release/joystream-node // benchmark // pallet // --pallet=content @@ -31,8 +31,8 @@ // --steps=50 // --repeat=20 // --execution=wasm -// --template=./scripts/../devops/joystream-pallet-weight-template.hbs -// --output=./scripts/../runtime-modules/content/src/weights.rs +// --template=./../devops/joystream-pallet-weight-template.hbs +// --output=./../runtime-modules/content/src/weights.rs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -169,20 +169,20 @@ impl WeightInfo for SubstrateWeight { fn create_channel(a: u32, b: u32, c: u32, d: u32, e: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `2455 + a * (174 ±0) + b * (104 ±0) + c * (40 ±0)` - // Estimated: `26685 + b * (2581 ±0) + c * (2855 ±0) + a * (2600 ±0)` - // Minimum execution time: 701_845 nanoseconds. - Weight::from_ref_time(249_105_407) + // Estimated: `26685 + a * (2600 ±0) + c * (2855 ±0) + b * (2581 ±0)` + // Minimum execution time: 443_000 nanoseconds. + Weight::from_parts(148_901_926, 0u64) .saturating_add(Weight::from_proof_size(26685)) - // Standard Error: 130_589 - .saturating_add(Weight::from_ref_time(7_261_295).saturating_mul(a.into())) - // Standard Error: 98_985 - .saturating_add(Weight::from_ref_time(13_859_781).saturating_mul(b.into())) - // Standard Error: 24_969 - .saturating_add(Weight::from_ref_time(13_165_018).saturating_mul(c.into())) - // Standard Error: 130_589 - .saturating_add(Weight::from_ref_time(8_480_098).saturating_mul(d.into())) - // Standard Error: 12_650 - .saturating_add(Weight::from_ref_time(1_143_000).saturating_mul(e.into())) + // Standard Error: 38_274 + .saturating_add(Weight::from_parts(7_256_528, 0u64).saturating_mul(a.into())) + // Standard Error: 29_011 + .saturating_add(Weight::from_parts(8_986_293, 0u64).saturating_mul(b.into())) + // Standard Error: 7_318 + .saturating_add(Weight::from_parts(9_122_699, 0u64).saturating_mul(c.into())) + // Standard Error: 38_274 + .saturating_add(Weight::from_parts(5_638_466, 0u64).saturating_mul(d.into())) + // Standard Error: 3_707 + .saturating_add(Weight::from_parts(449_321, 0u64).saturating_mul(e.into())) .saturating_add(T::DbWeight::get().reads(15_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(a.into()))) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(b.into()))) @@ -191,9 +191,9 @@ impl WeightInfo for SubstrateWeight { .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(b.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(c.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(d.into()))) - .saturating_add(Weight::from_proof_size(2581).saturating_mul(b.into())) - .saturating_add(Weight::from_proof_size(2855).saturating_mul(c.into())) .saturating_add(Weight::from_proof_size(2600).saturating_mul(a.into())) + .saturating_add(Weight::from_proof_size(2855).saturating_mul(c.into())) + .saturating_add(Weight::from_proof_size(2581).saturating_mul(b.into())) } // Storage: Content ChannelById (r:1 w:1) // Proof: Content ChannelById (max_values: None, max_size: Some(889), added: 3364, mode: MaxEncodedLen) @@ -229,20 +229,20 @@ impl WeightInfo for SubstrateWeight { fn channel_update_with_assets(a: u32, b: u32, c: u32, d: u32, e: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `4820 + a * (181 ±0) + c * (390 ±0) + e * (112 ±0)` - // Estimated: `22820 + c * (5233 ±0) + a * (2600 ±0) + e * (2581 ±0)` - // Minimum execution time: 812_771 nanoseconds. - Weight::from_ref_time(353_029_844) + // Estimated: `22820 + a * (2600 ±0) + e * (2581 ±0) + c * (5233 ±0)` + // Minimum execution time: 553_000 nanoseconds. + Weight::from_parts(243_326_707, 0u64) .saturating_add(Weight::from_proof_size(22820)) - // Standard Error: 106_344 - .saturating_add(Weight::from_ref_time(7_254_507).saturating_mul(a.into())) - // Standard Error: 106_344 - .saturating_add(Weight::from_ref_time(10_586_508).saturating_mul(b.into())) - // Standard Error: 106_344 - .saturating_add(Weight::from_ref_time(31_814_927).saturating_mul(c.into())) - // Standard Error: 10_300 - .saturating_add(Weight::from_ref_time(1_226_596).saturating_mul(d.into())) - // Standard Error: 80_603 - .saturating_add(Weight::from_ref_time(11_009_627).saturating_mul(e.into())) + // Standard Error: 32_681 + .saturating_add(Weight::from_parts(7_938_644, 0u64).saturating_mul(a.into())) + // Standard Error: 32_681 + .saturating_add(Weight::from_parts(6_522_660, 0u64).saturating_mul(b.into())) + // Standard Error: 32_681 + .saturating_add(Weight::from_parts(21_063_566, 0u64).saturating_mul(c.into())) + // Standard Error: 3_165 + .saturating_add(Weight::from_parts(482_786, 0u64).saturating_mul(d.into())) + // Standard Error: 24_771 + .saturating_add(Weight::from_parts(7_801_560, 0u64).saturating_mul(e.into())) .saturating_add(T::DbWeight::get().reads(11_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(a.into()))) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(c.into()))) @@ -251,9 +251,9 @@ impl WeightInfo for SubstrateWeight { .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(b.into()))) .saturating_add(T::DbWeight::get().writes((2_u64).saturating_mul(c.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(e.into()))) - .saturating_add(Weight::from_proof_size(5233).saturating_mul(c.into())) .saturating_add(Weight::from_proof_size(2600).saturating_mul(a.into())) .saturating_add(Weight::from_proof_size(2581).saturating_mul(e.into())) + .saturating_add(Weight::from_proof_size(5233).saturating_mul(c.into())) } // Storage: Content ChannelById (r:1 w:1) // Proof: Content ChannelById (max_values: None, max_size: Some(889), added: 3364, mode: MaxEncodedLen) @@ -269,13 +269,13 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `3436 + a * (181 ±0)` // Estimated: `9616 + a * (2600 ±0)` - // Minimum execution time: 277_615 nanoseconds. - Weight::from_ref_time(203_377_691) + // Minimum execution time: 205_000 nanoseconds. + Weight::from_parts(157_693_447, 0u64) .saturating_add(Weight::from_proof_size(9616)) - // Standard Error: 45_587 - .saturating_add(Weight::from_ref_time(7_618_936).saturating_mul(a.into())) - // Standard Error: 4_396 - .saturating_add(Weight::from_ref_time(1_121_997).saturating_mul(b.into())) + // Standard Error: 13_599 + .saturating_add(Weight::from_parts(7_288_488, 0u64).saturating_mul(a.into())) + // Standard Error: 1_311 + .saturating_add(Weight::from_parts(435_461, 0u64).saturating_mul(b.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(a.into()))) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -303,16 +303,16 @@ impl WeightInfo for SubstrateWeight { fn delete_channel(a: u32, b: u32, c: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `4290 + a * (408 ±0) + b * (112 ±0) + c * (56 ±0)` - // Estimated: `23494 + a * (5233 ±0) + c * (2855 ±0) + b * (2581 ±0)` - // Minimum execution time: 741_443 nanoseconds. - Weight::from_ref_time(289_902_955) + // Estimated: `23494 + c * (2855 ±0) + a * (5233 ±0) + b * (2581 ±0)` + // Minimum execution time: 508_000 nanoseconds. + Weight::from_parts(198_227_380, 0u64) .saturating_add(Weight::from_proof_size(23494)) - // Standard Error: 119_200 - .saturating_add(Weight::from_ref_time(31_509_314).saturating_mul(a.into())) - // Standard Error: 90_239 - .saturating_add(Weight::from_ref_time(12_043_158).saturating_mul(b.into())) - // Standard Error: 22_746 - .saturating_add(Weight::from_ref_time(8_934_800).saturating_mul(c.into())) + // Standard Error: 47_380 + .saturating_add(Weight::from_parts(21_363_368, 0u64).saturating_mul(a.into())) + // Standard Error: 35_869 + .saturating_add(Weight::from_parts(7_836_327, 0u64).saturating_mul(b.into())) + // Standard Error: 9_041 + .saturating_add(Weight::from_parts(6_201_984, 0u64).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(a.into()))) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(b.into()))) @@ -321,8 +321,8 @@ impl WeightInfo for SubstrateWeight { .saturating_add(T::DbWeight::get().writes((2_u64).saturating_mul(a.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(b.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(c.into()))) - .saturating_add(Weight::from_proof_size(5233).saturating_mul(a.into())) .saturating_add(Weight::from_proof_size(2855).saturating_mul(c.into())) + .saturating_add(Weight::from_proof_size(5233).saturating_mul(a.into())) .saturating_add(Weight::from_proof_size(2581).saturating_mul(b.into())) } // Storage: Instance3WorkingGroup CurrentLead (r:1 w:0) @@ -335,8 +335,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `2064` // Estimated: `6517` - // Minimum execution time: 115_100 nanoseconds. - Weight::from_ref_time(116_628_000) + // Minimum execution time: 88_000 nanoseconds. + Weight::from_parts(88_000_000, 0u64) .saturating_add(Weight::from_proof_size(6517)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -352,11 +352,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `3129` // Estimated: `9616` - // Minimum execution time: 206_867 nanoseconds. - Weight::from_ref_time(208_256_287) + // Minimum execution time: 168_000 nanoseconds. + Weight::from_parts(169_958_052, 0u64) .saturating_add(Weight::from_proof_size(9616)) - // Standard Error: 6_710 - .saturating_add(Weight::from_ref_time(1_113_825).saturating_mul(a.into())) + // Standard Error: 2_567 + .saturating_add(Weight::from_parts(420_910, 0u64).saturating_mul(a.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -385,15 +385,15 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `4678 + a * (408 ±0) + b * (112 ±0)` // Estimated: `16680 + a * (5233 ±0) + b * (2581 ±0)` - // Minimum execution time: 577_791 nanoseconds. - Weight::from_ref_time(277_456_944) + // Minimum execution time: 376_000 nanoseconds. + Weight::from_parts(212_350_769, 0u64) .saturating_add(Weight::from_proof_size(16680)) - // Standard Error: 96_024 - .saturating_add(Weight::from_ref_time(31_571_916).saturating_mul(a.into())) - // Standard Error: 72_696 - .saturating_add(Weight::from_ref_time(11_393_019).saturating_mul(b.into())) - // Standard Error: 9_278 - .saturating_add(Weight::from_ref_time(1_326_464).saturating_mul(c.into())) + // Standard Error: 21_864 + .saturating_add(Weight::from_parts(20_501_532, 0u64).saturating_mul(a.into())) + // Standard Error: 16_552 + .saturating_add(Weight::from_parts(7_506_039, 0u64).saturating_mul(b.into())) + // Standard Error: 2_112 + .saturating_add(Weight::from_parts(492_812, 0u64).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(a.into()))) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(b.into()))) @@ -427,17 +427,17 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `4018 + a * (408 ±0) + b * (112 ±0) + c * (56 ±0)` // Estimated: `20891 + b * (2581 ±0) + a * (5233 ±0) + c * (2855 ±0)` - // Minimum execution time: 843_158 nanoseconds. - Weight::from_ref_time(285_688_114) + // Minimum execution time: 542_000 nanoseconds. + Weight::from_parts(194_596_616, 0u64) .saturating_add(Weight::from_proof_size(20891)) - // Standard Error: 130_063 - .saturating_add(Weight::from_ref_time(31_718_704).saturating_mul(a.into())) - // Standard Error: 98_537 - .saturating_add(Weight::from_ref_time(11_263_461).saturating_mul(b.into())) - // Standard Error: 24_849 - .saturating_add(Weight::from_ref_time(8_828_935).saturating_mul(c.into())) - // Standard Error: 12_586 - .saturating_add(Weight::from_ref_time(1_130_649).saturating_mul(d.into())) + // Standard Error: 45_509 + .saturating_add(Weight::from_parts(21_211_482, 0u64).saturating_mul(a.into())) + // Standard Error: 34_478 + .saturating_add(Weight::from_parts(7_768_746, 0u64).saturating_mul(b.into())) + // Standard Error: 8_694 + .saturating_add(Weight::from_parts(6_141_443, 0u64).saturating_mul(c.into())) + // Standard Error: 4_403 + .saturating_add(Weight::from_parts(442_504, 0u64).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(a.into()))) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(b.into()))) @@ -461,11 +461,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `3135` // Estimated: `9616` - // Minimum execution time: 170_596 nanoseconds. - Weight::from_ref_time(168_655_319) + // Minimum execution time: 133_000 nanoseconds. + Weight::from_parts(132_725_898, 0u64) .saturating_add(Weight::from_proof_size(9616)) - // Standard Error: 6_044 - .saturating_add(Weight::from_ref_time(1_300_300).saturating_mul(a.into())) + // Standard Error: 3_469 + .saturating_add(Weight::from_parts(490_685, 0u64).saturating_mul(a.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) } // Storage: Content VideoById (r:1 w:1) @@ -494,24 +494,24 @@ impl WeightInfo for SubstrateWeight { fn delete_video_assets_as_moderator(a: u32, b: u32, c: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `5727 + a * (379 ±0) + b * (112 ±0)` - // Estimated: `19668 + b * (2581 ±0) + a * (5233 ±0)` - // Minimum execution time: 551_206 nanoseconds. - Weight::from_ref_time(263_379_387) + // Estimated: `19668 + a * (5233 ±0) + b * (2581 ±0)` + // Minimum execution time: 346_000 nanoseconds. + Weight::from_parts(182_640_918, 0u64) .saturating_add(Weight::from_proof_size(19668)) - // Standard Error: 76_829 - .saturating_add(Weight::from_ref_time(31_359_899).saturating_mul(a.into())) - // Standard Error: 118_935 - .saturating_add(Weight::from_ref_time(11_430_305).saturating_mul(b.into())) - // Standard Error: 15_181 - .saturating_add(Weight::from_ref_time(1_288_325).saturating_mul(c.into())) + // Standard Error: 28_349 + .saturating_add(Weight::from_parts(20_802_021, 0u64).saturating_mul(a.into())) + // Standard Error: 43_886 + .saturating_add(Weight::from_parts(7_896_308, 0u64).saturating_mul(b.into())) + // Standard Error: 5_601 + .saturating_add(Weight::from_parts(451_276, 0u64).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(a.into()))) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(b.into()))) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(T::DbWeight::get().writes((2_u64).saturating_mul(a.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(b.into()))) - .saturating_add(Weight::from_proof_size(2581).saturating_mul(b.into())) .saturating_add(Weight::from_proof_size(5233).saturating_mul(a.into())) + .saturating_add(Weight::from_proof_size(2581).saturating_mul(b.into())) } // Storage: Content VideoById (r:1 w:1) // Proof: Content VideoById (max_values: None, max_size: Some(513), added: 2988, mode: MaxEncodedLen) @@ -540,15 +540,15 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `5031 + a * (386 ±0) + b * (112 ±0)` // Estimated: `22271 + a * (5233 ±0) + b * (2581 ±0)` - // Minimum execution time: 562_709 nanoseconds. - Weight::from_ref_time(264_351_495) + // Minimum execution time: 362_000 nanoseconds. + Weight::from_parts(195_352_122, 0u64) .saturating_add(Weight::from_proof_size(22271)) - // Standard Error: 70_781 - .saturating_add(Weight::from_ref_time(32_393_362).saturating_mul(a.into())) - // Standard Error: 109_572 - .saturating_add(Weight::from_ref_time(12_352_882).saturating_mul(b.into())) - // Standard Error: 13_986 - .saturating_add(Weight::from_ref_time(1_091_527).saturating_mul(c.into())) + // Standard Error: 23_267 + .saturating_add(Weight::from_parts(20_859_238, 0u64).saturating_mul(a.into())) + // Standard Error: 36_019 + .saturating_add(Weight::from_parts(8_014_016, 0u64).saturating_mul(b.into())) + // Standard Error: 4_597 + .saturating_add(Weight::from_parts(430_616, 0u64).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(9_u64)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(a.into()))) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(b.into()))) @@ -573,11 +573,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `3099` // Estimated: `15207` - // Minimum execution time: 212_126 nanoseconds. - Weight::from_ref_time(212_897_972) + // Minimum execution time: 159_000 nanoseconds. + Weight::from_parts(161_510_228, 0u64) .saturating_add(Weight::from_proof_size(15207)) - // Standard Error: 5_728 - .saturating_add(Weight::from_ref_time(1_090_128).saturating_mul(a.into())) + // Standard Error: 4_331 + .saturating_add(Weight::from_parts(413_949, 0u64).saturating_mul(a.into())) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -594,11 +594,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `3087` // Estimated: `12604` - // Minimum execution time: 173_011 nanoseconds. - Weight::from_ref_time(170_075_230) + // Minimum execution time: 127_000 nanoseconds. + Weight::from_parts(128_336_875, 0u64) .saturating_add(Weight::from_proof_size(12604)) - // Standard Error: 4_954 - .saturating_add(Weight::from_ref_time(1_260_564).saturating_mul(a.into())) + // Standard Error: 3_052 + .saturating_add(Weight::from_parts(480_630, 0u64).saturating_mul(a.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) } // Storage: Instance3WorkingGroup CurrentLead (r:1 w:0) @@ -614,11 +614,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `924` // Estimated: `3656` - // Minimum execution time: 40_428 nanoseconds. - Weight::from_ref_time(45_633_412) + // Minimum execution time: 22_000 nanoseconds. + Weight::from_parts(23_106_297, 0u64) .saturating_add(Weight::from_proof_size(3656)) - // Standard Error: 7_146 - .saturating_add(Weight::from_ref_time(1_982_340).saturating_mul(a.into())) + // Standard Error: 2_681 + .saturating_add(Weight::from_parts(2_002_803, 0u64).saturating_mul(a.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -633,11 +633,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `2178` // Estimated: `6755` - // Minimum execution time: 91_627 nanoseconds. - Weight::from_ref_time(97_421_837) + // Minimum execution time: 65_000 nanoseconds. + Weight::from_parts(67_624_457, 0u64) .saturating_add(Weight::from_proof_size(6755)) - // Standard Error: 9_948 - .saturating_add(Weight::from_ref_time(2_115_931).saturating_mul(a.into())) + // Standard Error: 4_961 + .saturating_add(Weight::from_parts(2_441_060, 0u64).saturating_mul(a.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -651,8 +651,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `2178` // Estimated: `6755` - // Minimum execution time: 96_163 nanoseconds. - Weight::from_ref_time(96_963_000) + // Minimum execution time: 76_000 nanoseconds. + Weight::from_parts(77_000_000, 0u64) .saturating_add(Weight::from_proof_size(6755)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -667,8 +667,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `2309` // Estimated: `9405` - // Minimum execution time: 144_159 nanoseconds. - Weight::from_ref_time(145_427_000) + // Minimum execution time: 118_000 nanoseconds. + Weight::from_parts(118_000_000, 0u64) .saturating_add(Weight::from_proof_size(9405)) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -683,8 +683,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `2178` // Estimated: `6755` - // Minimum execution time: 137_762 nanoseconds. - Weight::from_ref_time(139_037_000) + // Minimum execution time: 114_000 nanoseconds. + Weight::from_parts(115_000_000, 0u64) .saturating_add(Weight::from_proof_size(6755)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -726,15 +726,15 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `4820 + b * (112 ±0)` // Estimated: `26437 + b * (2581 ±0)` - // Minimum execution time: 624_040 nanoseconds. - Weight::from_ref_time(348_598_297) + // Minimum execution time: 403_000 nanoseconds. + Weight::from_parts(253_684_314, 0u64) .saturating_add(Weight::from_proof_size(26437)) - // Standard Error: 52_536 - .saturating_add(Weight::from_ref_time(9_165_681).saturating_mul(a.into())) - // Standard Error: 81_329 - .saturating_add(Weight::from_ref_time(11_849_473).saturating_mul(b.into())) - // Standard Error: 10_381 - .saturating_add(Weight::from_ref_time(1_291_174).saturating_mul(c.into())) + // Standard Error: 18_822 + .saturating_add(Weight::from_parts(5_933_817, 0u64).saturating_mul(a.into())) + // Standard Error: 29_137 + .saturating_add(Weight::from_parts(7_872_902, 0u64).saturating_mul(b.into())) + // Standard Error: 3_719 + .saturating_add(Weight::from_parts(482_948, 0u64).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(14_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(b.into()))) .saturating_add(T::DbWeight::get().writes(8_u64)) @@ -813,26 +813,26 @@ impl WeightInfo for SubstrateWeight { fn create_video_with_nft(a: u32, b: u32, c: u32, d: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `5905 + b * (112 ±0) + c * (187 ±0)` - // Estimated: `37098 + c * (2600 ±0) + b * (2581 ±0)` - // Minimum execution time: 788_140 nanoseconds. - Weight::from_ref_time(436_913_202) + // Estimated: `37098 + b * (2581 ±0) + c * (2600 ±0)` + // Minimum execution time: 514_000 nanoseconds. + Weight::from_parts(309_395_985, 0u64) .saturating_add(Weight::from_proof_size(37098)) - // Standard Error: 57_854 - .saturating_add(Weight::from_ref_time(9_243_305).saturating_mul(a.into())) - // Standard Error: 89_539 - .saturating_add(Weight::from_ref_time(11_578_887).saturating_mul(b.into())) - // Standard Error: 61_001 - .saturating_add(Weight::from_ref_time(4_614_105).saturating_mul(c.into())) - // Standard Error: 11_437 - .saturating_add(Weight::from_ref_time(1_243_637).saturating_mul(d.into())) + // Standard Error: 16_769 + .saturating_add(Weight::from_parts(5_869_012, 0u64).saturating_mul(a.into())) + // Standard Error: 25_953 + .saturating_add(Weight::from_parts(7_441_746, 0u64).saturating_mul(b.into())) + // Standard Error: 17_681 + .saturating_add(Weight::from_parts(3_224_793, 0u64).saturating_mul(c.into())) + // Standard Error: 3_315 + .saturating_add(Weight::from_parts(459_473, 0u64).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(31_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(b.into()))) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(c.into()))) .saturating_add(T::DbWeight::get().writes(10_u64)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(a.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(b.into()))) - .saturating_add(Weight::from_proof_size(2600).saturating_mul(c.into())) .saturating_add(Weight::from_proof_size(2581).saturating_mul(b.into())) + .saturating_add(Weight::from_proof_size(2600).saturating_mul(c.into())) } // Storage: Content VideoById (r:1 w:0) // Proof: Content VideoById (max_values: None, max_size: Some(513), added: 2988, mode: MaxEncodedLen) @@ -847,11 +847,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `3087` // Estimated: `12604` - // Minimum execution time: 174_724 nanoseconds. - Weight::from_ref_time(174_334_852) + // Minimum execution time: 130_000 nanoseconds. + Weight::from_parts(130_535_067, 0u64) .saturating_add(Weight::from_proof_size(12604)) - // Standard Error: 4_496 - .saturating_add(Weight::from_ref_time(1_105_708).saturating_mul(a.into())) + // Standard Error: 1_369 + .saturating_add(Weight::from_parts(429_286, 0u64).saturating_mul(a.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) } // Storage: Content VideoById (r:1 w:1) @@ -887,18 +887,18 @@ impl WeightInfo for SubstrateWeight { fn update_video_with_assets_without_nft(a: u32, b: u32, c: u32, d: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `4956 + b * (384 ±0) + c * (112 ±0)` - // Estimated: `25808 + b * (5233 ±0) + c * (2581 ±0)` - // Minimum execution time: 775_577 nanoseconds. - Weight::from_ref_time(315_369_040) + // Estimated: `25808 + c * (2581 ±0) + b * (5233 ±0)` + // Minimum execution time: 494_000 nanoseconds. + Weight::from_parts(223_865_020, 0u64) .saturating_add(Weight::from_proof_size(25808)) - // Standard Error: 69_802 - .saturating_add(Weight::from_ref_time(9_296_613).saturating_mul(a.into())) - // Standard Error: 69_802 - .saturating_add(Weight::from_ref_time(31_856_386).saturating_mul(b.into())) - // Standard Error: 108_030 - .saturating_add(Weight::from_ref_time(10_974_056).saturating_mul(c.into())) - // Standard Error: 13_799 - .saturating_add(Weight::from_ref_time(1_184_020).saturating_mul(d.into())) + // Standard Error: 27_937 + .saturating_add(Weight::from_parts(5_774_460, 0u64).saturating_mul(a.into())) + // Standard Error: 27_937 + .saturating_add(Weight::from_parts(20_785_722, 0u64).saturating_mul(b.into())) + // Standard Error: 43_237 + .saturating_add(Weight::from_parts(7_330_215, 0u64).saturating_mul(c.into())) + // Standard Error: 5_523 + .saturating_add(Weight::from_parts(455_095, 0u64).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(12_u64)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(b.into()))) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(c.into()))) @@ -906,8 +906,8 @@ impl WeightInfo for SubstrateWeight { .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(a.into()))) .saturating_add(T::DbWeight::get().writes((2_u64).saturating_mul(b.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(c.into()))) - .saturating_add(Weight::from_proof_size(5233).saturating_mul(b.into())) .saturating_add(Weight::from_proof_size(2581).saturating_mul(c.into())) + .saturating_add(Weight::from_proof_size(5233).saturating_mul(b.into())) } // Storage: Content VideoById (r:1 w:1) // Proof: Content VideoById (max_values: None, max_size: Some(513), added: 2988, mode: MaxEncodedLen) @@ -957,13 +957,13 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `4399 + a * (200 ±0)` // Estimated: `23265 + a * (2600 ±0)` - // Minimum execution time: 367_769 nanoseconds. - Weight::from_ref_time(278_759_473) + // Minimum execution time: 247_000 nanoseconds. + Weight::from_parts(201_557_257, 0u64) .saturating_add(Weight::from_proof_size(23265)) - // Standard Error: 36_221 - .saturating_add(Weight::from_ref_time(4_434_739).saturating_mul(a.into())) - // Standard Error: 6_782 - .saturating_add(Weight::from_ref_time(1_165_146).saturating_mul(b.into())) + // Standard Error: 12_368 + .saturating_add(Weight::from_parts(3_098_755, 0u64).saturating_mul(a.into())) + // Standard Error: 2_315 + .saturating_add(Weight::from_parts(431_485, 0u64).saturating_mul(b.into())) .saturating_add(T::DbWeight::get().reads(21_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(a.into()))) .saturating_add(T::DbWeight::get().writes(4_u64)) @@ -1038,19 +1038,19 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `5422 + b * (432 ±0) + c * (112 ±0) + d * (210 ±0)` // Estimated: `36469 + b * (5233 ±0) + c * (2581 ±0) + d * (2600 ±0)` - // Minimum execution time: 970_536 nanoseconds. - Weight::from_ref_time(411_266_383) + // Minimum execution time: 627_000 nanoseconds. + Weight::from_parts(293_011_166, 0u64) .saturating_add(Weight::from_proof_size(36469)) - // Standard Error: 69_266 - .saturating_add(Weight::from_ref_time(8_878_081).saturating_mul(a.into())) - // Standard Error: 69_266 - .saturating_add(Weight::from_ref_time(31_544_666).saturating_mul(b.into())) - // Standard Error: 107_182 - .saturating_add(Weight::from_ref_time(12_085_063).saturating_mul(c.into())) - // Standard Error: 73_029 - .saturating_add(Weight::from_ref_time(4_600_375).saturating_mul(d.into())) - // Standard Error: 13_698 - .saturating_add(Weight::from_ref_time(1_292_689).saturating_mul(e.into())) + // Standard Error: 27_255 + .saturating_add(Weight::from_parts(5_991_722, 0u64).saturating_mul(a.into())) + // Standard Error: 27_255 + .saturating_add(Weight::from_parts(20_769_259, 0u64).saturating_mul(b.into())) + // Standard Error: 42_175 + .saturating_add(Weight::from_parts(7_275_440, 0u64).saturating_mul(c.into())) + // Standard Error: 28_736 + .saturating_add(Weight::from_parts(3_029_950, 0u64).saturating_mul(d.into())) + // Standard Error: 5_390 + .saturating_add(Weight::from_parts(460_234, 0u64).saturating_mul(e.into())) .saturating_add(T::DbWeight::get().reads(29_u64)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(b.into()))) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(c.into()))) @@ -1077,8 +1077,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `3371` // Estimated: `17810` - // Minimum execution time: 220_309 nanoseconds. - Weight::from_ref_time(222_816_000) + // Minimum execution time: 165_000 nanoseconds. + Weight::from_parts(167_000_000, 0u64) .saturating_add(Weight::from_proof_size(17810)) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) @@ -1109,13 +1109,13 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `5288 + a * (386 ±0) + b * (112 ±0)` // Estimated: `24874 + b * (2581 ±0) + a * (5233 ±0)` - // Minimum execution time: 461_287 nanoseconds. - Weight::from_ref_time(279_742_573) + // Minimum execution time: 323_000 nanoseconds. + Weight::from_parts(205_611_579, 0u64) .saturating_add(Weight::from_proof_size(24874)) - // Standard Error: 46_959 - .saturating_add(Weight::from_ref_time(32_323_758).saturating_mul(a.into())) - // Standard Error: 72_720 - .saturating_add(Weight::from_ref_time(11_853_735).saturating_mul(b.into())) + // Standard Error: 14_105 + .saturating_add(Weight::from_parts(20_732_788, 0u64).saturating_mul(a.into())) + // Standard Error: 21_843 + .saturating_add(Weight::from_parts(7_772_260, 0u64).saturating_mul(b.into())) .saturating_add(T::DbWeight::get().reads(10_u64)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(a.into()))) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(b.into()))) @@ -1140,11 +1140,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `3667 + a * (200 ±0)` // Estimated: `12719 + a * (2600 ±0)` - // Minimum execution time: 198_158 nanoseconds. - Weight::from_ref_time(204_112_960) + // Minimum execution time: 151_000 nanoseconds. + Weight::from_parts(154_353_919, 0u64) .saturating_add(Weight::from_proof_size(12719)) - // Standard Error: 37_710 - .saturating_add(Weight::from_ref_time(7_686_514).saturating_mul(a.into())) + // Standard Error: 15_413 + .saturating_add(Weight::from_parts(7_046_477, 0u64).saturating_mul(a.into())) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(a.into()))) .saturating_add(T::DbWeight::get().writes(2_u64)) @@ -1160,8 +1160,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `3135` // Estimated: `9616` - // Minimum execution time: 200_282 nanoseconds. - Weight::from_ref_time(201_979_000) + // Minimum execution time: 164_000 nanoseconds. + Weight::from_parts(165_000_000, 0u64) .saturating_add(Weight::from_proof_size(9616)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -1179,11 +1179,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1800 + a * (30 ±0)` // Estimated: `7028` - // Minimum execution time: 91_978 nanoseconds. - Weight::from_ref_time(96_082_756) + // Minimum execution time: 58_000 nanoseconds. + Weight::from_parts(60_461_598, 0u64) .saturating_add(Weight::from_proof_size(7028)) - // Standard Error: 17_846 - .saturating_add(Weight::from_ref_time(5_562_789).saturating_mul(a.into())) + // Standard Error: 11_673 + .saturating_add(Weight::from_parts(6_504_071, 0u64).saturating_mul(a.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -1204,11 +1204,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `2862 + a * (30 ±0)` // Estimated: `12231` - // Minimum execution time: 128_011 nanoseconds. - Weight::from_ref_time(132_722_747) + // Minimum execution time: 79_000 nanoseconds. + Weight::from_parts(82_336_176, 0u64) .saturating_add(Weight::from_proof_size(12231)) - // Standard Error: 20_581 - .saturating_add(Weight::from_ref_time(5_704_638).saturating_mul(a.into())) + // Standard Error: 9_799 + .saturating_add(Weight::from_parts(6_524_739, 0u64).saturating_mul(a.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -1223,11 +1223,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `2468 + a * (55 ±0)` // Estimated: `13770` - // Minimum execution time: 127_236 nanoseconds. - Weight::from_ref_time(133_587_638) + // Minimum execution time: 80_000 nanoseconds. + Weight::from_parts(82_004_894, 0u64) .saturating_add(Weight::from_proof_size(13770)) - // Standard Error: 25_521 - .saturating_add(Weight::from_ref_time(5_684_947).saturating_mul(a.into())) + // Standard Error: 10_944 + .saturating_add(Weight::from_parts(6_616_616, 0u64).saturating_mul(a.into())) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -1256,11 +1256,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `5183 + a * (165 ±0)` // Estimated: `18359 + a * (2600 ±0)` - // Minimum execution time: 286_247 nanoseconds. - Weight::from_ref_time(71_853_853) + // Minimum execution time: 204_000 nanoseconds. + Weight::from_parts(78_180_807, 0u64) .saturating_add(Weight::from_proof_size(18359)) - // Standard Error: 17_963 - .saturating_add(Weight::from_ref_time(12_573_822).saturating_mul(a.into())) + // Standard Error: 8_504 + .saturating_add(Weight::from_parts(8_420_342, 0u64).saturating_mul(a.into())) .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(a.into()))) .saturating_add(T::DbWeight::get().writes(6_u64)) @@ -1289,11 +1289,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `5931 + a * (165 ±0)` // Estimated: `21111 + a * (5564 ±0)` - // Minimum execution time: 388_994 nanoseconds. - Weight::from_ref_time(140_850_078) + // Minimum execution time: 232_000 nanoseconds. + Weight::from_parts(98_568_840, 0u64) .saturating_add(Weight::from_proof_size(21111)) - // Standard Error: 17_137 - .saturating_add(Weight::from_ref_time(15_693_549).saturating_mul(a.into())) + // Standard Error: 6_898 + .saturating_add(Weight::from_parts(10_299_809, 0u64).saturating_mul(a.into())) .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(a.into()))) .saturating_add(T::DbWeight::get().writes(4_u64)) @@ -1312,8 +1312,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `3245` // Estimated: `12430` - // Minimum execution time: 176_737 nanoseconds. - Weight::from_ref_time(178_330_000) + // Minimum execution time: 132_000 nanoseconds. + Weight::from_parts(135_000_000, 0u64) .saturating_add(Weight::from_proof_size(12430)) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -1332,8 +1332,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `3212` // Estimated: `12430` - // Minimum execution time: 203_850 nanoseconds. - Weight::from_ref_time(204_917_000) + // Minimum execution time: 156_000 nanoseconds. + Weight::from_parts(166_000_000, 0u64) .saturating_add(Weight::from_proof_size(12430)) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -1355,11 +1355,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `3684` // Estimated: `15893` - // Minimum execution time: 210_154 nanoseconds. - Weight::from_ref_time(209_749_690) + // Minimum execution time: 148_000 nanoseconds. + Weight::from_parts(149_358_396, 0u64) .saturating_add(Weight::from_proof_size(15893)) - // Standard Error: 6_061 - .saturating_add(Weight::from_ref_time(1_347_188).saturating_mul(a.into())) + // Standard Error: 4_311 + .saturating_add(Weight::from_parts(512_147, 0u64).saturating_mul(a.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -1377,8 +1377,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `3341` // Estimated: `12929` - // Minimum execution time: 186_845 nanoseconds. - Weight::from_ref_time(188_523_000) + // Minimum execution time: 138_000 nanoseconds. + Weight::from_parts(139_000_000, 0u64) .saturating_add(Weight::from_proof_size(12929)) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -1399,8 +1399,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `4106` // Estimated: `15905` - // Minimum execution time: 204_981 nanoseconds. - Weight::from_ref_time(206_691_000) + // Minimum execution time: 147_000 nanoseconds. + Weight::from_parts(148_000_000, 0u64) .saturating_add(Weight::from_proof_size(15905)) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -1425,8 +1425,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `3996` // Estimated: `19145` - // Minimum execution time: 244_981 nanoseconds. - Weight::from_ref_time(246_597_000) + // Minimum execution time: 172_000 nanoseconds. + Weight::from_parts(174_000_000, 0u64) .saturating_add(Weight::from_proof_size(19145)) .saturating_add(T::DbWeight::get().reads(9_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) @@ -1447,8 +1447,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `3275` // Estimated: `20185` - // Minimum execution time: 156_536 nanoseconds. - Weight::from_ref_time(157_365_000) + // Minimum execution time: 92_000 nanoseconds. + Weight::from_parts(93_000_000, 0u64) .saturating_add(Weight::from_proof_size(20185)) .saturating_add(T::DbWeight::get().reads(9_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) @@ -1467,8 +1467,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `3730` // Estimated: `17636` - // Minimum execution time: 212_310 nanoseconds. - Weight::from_ref_time(214_971_000) + // Minimum execution time: 151_000 nanoseconds. + Weight::from_parts(154_000_000, 0u64) .saturating_add(Weight::from_proof_size(17636)) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -1485,8 +1485,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `3245` // Estimated: `12430` - // Minimum execution time: 206_107 nanoseconds. - Weight::from_ref_time(212_061_000) + // Minimum execution time: 148_000 nanoseconds. + Weight::from_parts(177_000_000, 0u64) .saturating_add(Weight::from_proof_size(12430)) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -1503,8 +1503,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `2829` // Estimated: `11742` - // Minimum execution time: 130_383 nanoseconds. - Weight::from_ref_time(134_486_000) + // Minimum execution time: 79_000 nanoseconds. + Weight::from_parts(96_000_000, 0u64) .saturating_add(Weight::from_proof_size(11742)) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) @@ -1537,8 +1537,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `425` // Estimated: `13204` - // Minimum execution time: 126_144 nanoseconds. - Weight::from_ref_time(127_435_000) + // Minimum execution time: 70_000 nanoseconds. + Weight::from_parts(71_000_000, 0u64) .saturating_add(Weight::from_proof_size(13204)) .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().writes(9_u64)) @@ -1557,8 +1557,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `2208` // Estimated: `9631` - // Minimum execution time: 106_763 nanoseconds. - Weight::from_ref_time(108_989_000) + // Minimum execution time: 63_000 nanoseconds. + Weight::from_parts(64_000_000, 0u64) .saturating_add(Weight::from_proof_size(9631)) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) @@ -1573,8 +1573,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `2257` // Estimated: `11170` - // Minimum execution time: 102_536 nanoseconds. - Weight::from_ref_time(103_811_000) + // Minimum execution time: 60_000 nanoseconds. + Weight::from_parts(61_000_000, 0u64) .saturating_add(Weight::from_proof_size(11170)) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) @@ -1602,11 +1602,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `2331` // Estimated: `11676` - // Minimum execution time: 143_783 nanoseconds. - Weight::from_ref_time(145_107_230) + // Minimum execution time: 91_000 nanoseconds. + Weight::from_parts(93_085_695, 0u64) .saturating_add(Weight::from_proof_size(11676)) - // Standard Error: 11_433 - .saturating_add(Weight::from_ref_time(650_339).saturating_mul(h.into())) + // Standard Error: 10_791 + .saturating_add(Weight::from_parts(520_379, 0u64).saturating_mul(h.into())) .saturating_add(T::DbWeight::get().reads(9_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -1631,11 +1631,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `2685` // Estimated: `13726` - // Minimum execution time: 167_077 nanoseconds. - Weight::from_ref_time(168_599_352) + // Minimum execution time: 107_000 nanoseconds. + Weight::from_parts(107_990_956, 0u64) .saturating_add(Weight::from_proof_size(13726)) - // Standard Error: 9_370 - .saturating_add(Weight::from_ref_time(687_888).saturating_mul(h.into())) + // Standard Error: 9_507 + .saturating_add(Weight::from_parts(483_076, 0u64).saturating_mul(h.into())) .saturating_add(T::DbWeight::get().reads(9_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } @@ -1662,11 +1662,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `2330` // Estimated: `11676` - // Minimum execution time: 164_298 nanoseconds. - Weight::from_ref_time(166_140_937) + // Minimum execution time: 106_000 nanoseconds. + Weight::from_parts(107_240_242, 0u64) .saturating_add(Weight::from_proof_size(11676)) - // Standard Error: 15_465 - .saturating_add(Weight::from_ref_time(809_088).saturating_mul(h.into())) + // Standard Error: 8_552 + .saturating_add(Weight::from_parts(498_756, 0u64).saturating_mul(h.into())) .saturating_add(T::DbWeight::get().reads(9_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -1718,13 +1718,13 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `4158 + w * (204 ±0)` // Estimated: `20665 + w * (2600 ±0)` - // Minimum execution time: 361_707 nanoseconds. - Weight::from_ref_time(269_794_005) + // Minimum execution time: 247_000 nanoseconds. + Weight::from_parts(198_768_746, 0u64) .saturating_add(Weight::from_proof_size(20665)) - // Standard Error: 32_845 - .saturating_add(Weight::from_ref_time(4_426_106).saturating_mul(w.into())) - // Standard Error: 6_150 - .saturating_add(Weight::from_ref_time(1_327_974).saturating_mul(b.into())) + // Standard Error: 20_323 + .saturating_add(Weight::from_parts(3_009_542, 0u64).saturating_mul(w.into())) + // Standard Error: 3_805 + .saturating_add(Weight::from_parts(472_252, 0u64).saturating_mul(b.into())) .saturating_add(T::DbWeight::get().reads(20_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(w.into()))) .saturating_add(T::DbWeight::get().writes(4_u64)) @@ -1742,8 +1742,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `3112` // Estimated: `12604` - // Minimum execution time: 236_981 nanoseconds. - Weight::from_ref_time(237_858_000) + // Minimum execution time: 186_000 nanoseconds. + Weight::from_parts(188_000_000, 0u64) .saturating_add(Weight::from_proof_size(12604)) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -1758,8 +1758,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `2397` // Estimated: `8952` - // Minimum execution time: 80_073 nanoseconds. - Weight::from_ref_time(80_896_000) + // Minimum execution time: 48_000 nanoseconds. + Weight::from_parts(48_000_000, 0u64) .saturating_add(Weight::from_proof_size(8952)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -1778,8 +1778,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `4034` // Estimated: `15204` - // Minimum execution time: 246_150 nanoseconds. - Weight::from_ref_time(247_216_000) + // Minimum execution time: 194_000 nanoseconds. + Weight::from_parts(195_000_000, 0u64) .saturating_add(Weight::from_proof_size(15204)) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -1796,8 +1796,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `3137` // Estimated: `12604` - // Minimum execution time: 235_663 nanoseconds. - Weight::from_ref_time(237_825_000) + // Minimum execution time: 187_000 nanoseconds. + Weight::from_parts(188_000_000, 0u64) .saturating_add(Weight::from_proof_size(12604)) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -1816,8 +1816,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `3462` // Estimated: `19860` - // Minimum execution time: 154_891 nanoseconds. - Weight::from_ref_time(156_372_000) + // Minimum execution time: 93_000 nanoseconds. + Weight::from_parts(95_000_000, 0u64) .saturating_add(Weight::from_proof_size(19860)) .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) @@ -1834,8 +1834,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `3112` // Estimated: `12604` - // Minimum execution time: 235_562 nanoseconds. - Weight::from_ref_time(236_669_000) + // Minimum execution time: 187_000 nanoseconds. + Weight::from_parts(189_000_000, 0u64) .saturating_add(Weight::from_proof_size(12604)) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -1852,8 +1852,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `3128` // Estimated: `12604` - // Minimum execution time: 237_003 nanoseconds. - Weight::from_ref_time(238_333_000) + // Minimum execution time: 187_000 nanoseconds. + Weight::from_parts(188_000_000, 0u64) .saturating_add(Weight::from_proof_size(12604)) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -1870,8 +1870,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `3128` // Estimated: `12604` - // Minimum execution time: 237_354 nanoseconds. - Weight::from_ref_time(238_209_000) + // Minimum execution time: 187_000 nanoseconds. + Weight::from_parts(189_000_000, 0u64) .saturating_add(Weight::from_proof_size(12604)) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -1890,8 +1890,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `3453` // Estimated: `19860` - // Minimum execution time: 154_882 nanoseconds. - Weight::from_ref_time(155_868_000) + // Minimum execution time: 94_000 nanoseconds. + Weight::from_parts(95_000_000, 0u64) .saturating_add(Weight::from_proof_size(19860)) .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) @@ -1902,8 +1902,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `546` // Estimated: `496` - // Minimum execution time: 21_081 nanoseconds. - Weight::from_ref_time(21_555_000) + // Minimum execution time: 12_000 nanoseconds. + Weight::from_parts(12_000_000, 0u64) .saturating_add(Weight::from_proof_size(496)) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -1914,8 +1914,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `599` // Estimated: `507` - // Minimum execution time: 21_844 nanoseconds. - Weight::from_ref_time(22_326_000) + // Minimum execution time: 12_000 nanoseconds. + Weight::from_parts(13_000_000, 0u64) .saturating_add(Weight::from_proof_size(507)) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -1930,8 +1930,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `2801` // Estimated: `9616` - // Minimum execution time: 177_994 nanoseconds. - Weight::from_ref_time(179_930_000) + // Minimum execution time: 139_000 nanoseconds. + Weight::from_parts(139_000_000, 0u64) .saturating_add(Weight::from_proof_size(9616)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -1969,11 +1969,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `4207 + w * (206 ±0)` // Estimated: `17143 + w * (2600 ±0)` - // Minimum execution time: 289_143 nanoseconds. - Weight::from_ref_time(283_451_444) + // Minimum execution time: 219_000 nanoseconds. + Weight::from_parts(217_026_946, 0u64) .saturating_add(Weight::from_proof_size(17143)) - // Standard Error: 28_868 - .saturating_add(Weight::from_ref_time(4_845_873).saturating_mul(w.into())) + // Standard Error: 22_433 + .saturating_add(Weight::from_parts(3_177_856, 0u64).saturating_mul(w.into())) .saturating_add(T::DbWeight::get().reads(13_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(w.into()))) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -1991,8 +1991,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `3335` // Estimated: `12604` - // Minimum execution time: 240_038 nanoseconds. - Weight::from_ref_time(241_601_000) + // Minimum execution time: 191_000 nanoseconds. + Weight::from_parts(192_000_000, 0u64) .saturating_add(Weight::from_proof_size(12604)) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -2011,8 +2011,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `4462` // Estimated: `27666` - // Minimum execution time: 208_881 nanoseconds. - Weight::from_ref_time(211_080_000) + // Minimum execution time: 130_000 nanoseconds. + Weight::from_parts(135_000_000, 0u64) .saturating_add(Weight::from_proof_size(27666)) .saturating_add(T::DbWeight::get().reads(11_u64)) .saturating_add(T::DbWeight::get().writes(6_u64)) @@ -2031,8 +2031,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `3345` // Estimated: `17260` - // Minimum execution time: 150_992 nanoseconds. - Weight::from_ref_time(152_609_000) + // Minimum execution time: 92_000 nanoseconds. + Weight::from_parts(94_000_000, 0u64) .saturating_add(Weight::from_proof_size(17260)) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) @@ -2062,11 +2062,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `4088 + w * (201 ±0)` // Estimated: `15123 + w * (2600 ±0)` - // Minimum execution time: 272_657 nanoseconds. - Weight::from_ref_time(267_794_327) + // Minimum execution time: 209_000 nanoseconds. + Weight::from_parts(206_113_437, 0u64) .saturating_add(Weight::from_proof_size(15123)) - // Standard Error: 28_186 - .saturating_add(Weight::from_ref_time(4_877_293).saturating_mul(w.into())) + // Standard Error: 13_556 + .saturating_add(Weight::from_parts(3_231_042, 0u64).saturating_mul(w.into())) .saturating_add(T::DbWeight::get().reads(9_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(w.into()))) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -2084,8 +2084,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `3322` // Estimated: `12604` - // Minimum execution time: 245_595 nanoseconds. - Weight::from_ref_time(248_223_000) + // Minimum execution time: 191_000 nanoseconds. + Weight::from_parts(193_000_000, 0u64) .saturating_add(Weight::from_proof_size(12604)) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -2104,8 +2104,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `3387` // Estimated: `16709` - // Minimum execution time: 128_473 nanoseconds. - Weight::from_ref_time(129_879_000) + // Minimum execution time: 78_000 nanoseconds. + Weight::from_parts(81_000_000, 0u64) .saturating_add(Weight::from_proof_size(16709)) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -2126,8 +2126,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `3678` // Estimated: `22411` - // Minimum execution time: 168_754 nanoseconds. - Weight::from_ref_time(170_293_000) + // Minimum execution time: 103_000 nanoseconds. + Weight::from_parts(111_000_000, 0u64) .saturating_add(Weight::from_proof_size(22411)) .saturating_add(T::DbWeight::get().reads(9_u64)) .saturating_add(T::DbWeight::get().writes(5_u64)) @@ -2148,8 +2148,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `4087` // Estimated: `25014` - // Minimum execution time: 197_214 nanoseconds. - Weight::from_ref_time(199_192_000) + // Minimum execution time: 120_000 nanoseconds. + Weight::from_parts(122_000_000, 0u64) .saturating_add(Weight::from_proof_size(25014)) .saturating_add(T::DbWeight::get().reads(10_u64)) .saturating_add(T::DbWeight::get().writes(5_u64)) @@ -2165,11 +2165,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1730` // Estimated: `6517` - // Minimum execution time: 70_164 nanoseconds. - Weight::from_ref_time(69_263_730) + // Minimum execution time: 41_000 nanoseconds. + Weight::from_parts(42_003_897, 0u64) .saturating_add(Weight::from_proof_size(6517)) - // Standard Error: 2_313 - .saturating_add(Weight::from_ref_time(1_262_314).saturating_mul(b.into())) + // Standard Error: 1_386 + .saturating_add(Weight::from_parts(476_171, 0u64).saturating_mul(b.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) } // Storage: Content ChannelById (r:1 w:0) @@ -2183,11 +2183,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `2801` // Estimated: `9616` - // Minimum execution time: 160_445 nanoseconds. - Weight::from_ref_time(159_409_005) + // Minimum execution time: 121_000 nanoseconds. + Weight::from_parts(122_375_055, 0u64) .saturating_add(Weight::from_proof_size(9616)) - // Standard Error: 5_101 - .saturating_add(Weight::from_ref_time(1_092_041).saturating_mul(b.into())) + // Standard Error: 3_086 + .saturating_add(Weight::from_parts(431_166, 0u64).saturating_mul(b.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) } // Storage: Content VideoById (r:1 w:0) @@ -2203,11 +2203,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `3335` // Estimated: `12604` - // Minimum execution time: 224_033 nanoseconds. - Weight::from_ref_time(220_159_202) + // Minimum execution time: 172_000 nanoseconds. + Weight::from_parts(174_125_776, 0u64) .saturating_add(Weight::from_proof_size(12604)) - // Standard Error: 4_302 - .saturating_add(Weight::from_ref_time(1_076_268).saturating_mul(b.into())) + // Standard Error: 5_792 + .saturating_add(Weight::from_parts(420_356, 0u64).saturating_mul(b.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) } // Storage: Instance3WorkingGroup CurrentLead (r:1 w:0) @@ -2220,8 +2220,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `371` // Estimated: `3153` - // Minimum execution time: 29_168 nanoseconds. - Weight::from_ref_time(29_840_000) + // Minimum execution time: 15_000 nanoseconds. + Weight::from_parts(16_000_000, 0u64) .saturating_add(Weight::from_proof_size(3153)) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -2236,8 +2236,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `371` // Estimated: `3153` - // Minimum execution time: 29_109 nanoseconds. - Weight::from_ref_time(29_695_000) + // Minimum execution time: 15_000 nanoseconds. + Weight::from_parts(16_000_000, 0u64) .saturating_add(Weight::from_proof_size(3153)) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -2247,231 +2247,231 @@ impl WeightInfo for SubstrateWeight { // Default implementation for tests impl WeightInfo for () { fn create_channel(a: u32, b: u32, c: u32, d: u32, e: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn channel_update_with_assets(a: u32, b: u32, c: u32, d: u32, e: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn channel_update_without_assets(a: u32, b: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn delete_channel(a: u32, b: u32, c: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn update_channel_privilege_level() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn set_channel_paused_features_as_moderator(a: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn delete_channel_assets_as_moderator(a: u32, b: u32, c: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn delete_channel_as_moderator(a: u32, b: u32, c: u32, d: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn set_channel_visibility_as_moderator(a: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn delete_video_assets_as_moderator(a: u32, b: u32, c: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn delete_video_as_moderator_with_assets(a: u32, b: u32, c: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn delete_video_as_moderator_without_assets(a: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn set_video_visibility_as_moderator(a: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn create_curator_group(a: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn update_curator_group_permissions(a: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn set_curator_group_status() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn add_curator_to_group() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn remove_curator_from_group() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn create_video_without_nft(a: u32, b: u32, c: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn create_video_with_nft(a: u32, b: u32, c: u32, d: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn update_video_without_assets_without_nft(a: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn update_video_with_assets_without_nft(a: u32, b: u32, c: u32, d: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn update_video_without_assets_with_nft(a: u32, b: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn update_video_with_assets_with_nft(a: u32, b: u32, c: u32, d: u32, e: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn delete_video_without_assets() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn delete_video_with_assets(a: u32, b: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn initialize_channel_transfer(a: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn cancel_channel_transfer() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn accept_channel_transfer_curator_to_curator(a: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn accept_channel_transfer_member_to_curator(a: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn accept_channel_transfer_member_to_member(a: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn issue_creator_token(a: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn creator_token_issuer_transfer(a: u32, _b: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn make_creator_token_permissionless() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn deissue_creator_token() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn init_creator_token_sale(a: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn update_upcoming_creator_token_sale() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn finalize_creator_token_sale() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn issue_revenue_split() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn issue_revenue_split_as_collaborator() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn finalize_revenue_split() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn reduce_creator_token_patronage_rate_to() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn claim_creator_token_patronage_credit() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn update_channel_payouts() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn withdraw_from_curator_channel_balance() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn withdraw_from_member_channel_balance() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn claim_channel_reward(h: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn claim_and_withdraw_member_channel_reward(h: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn claim_and_withdraw_curator_channel_reward(h: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn issue_nft(w: u32, b: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn destroy_nft() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn sling_nft_back() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn offer_nft() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn cancel_offer() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn accept_incoming_offer() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn sell_nft() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn cancel_buy_now() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn update_buy_now_price() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn buy_nft() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn toggle_nft_limits() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn update_global_nft_limit() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn update_channel_nft_limit() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn start_english_auction(w: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn cancel_english_auction() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn make_english_auction_bid() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn settle_english_auction() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn start_open_auction(w: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn cancel_open_auction() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn cancel_open_auction_bid() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn pick_open_auction_winner() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn make_open_auction_bid() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn channel_owner_remark(b: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn channel_agent_remark(b: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn nft_owner_remark(b: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn update_channel_state_bloat_bond() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn update_video_state_bloat_bond() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } } diff --git a/runtime-modules/council/src/weights.rs b/runtime-modules/council/src/weights.rs index 603e8f8432..a8c603c898 100644 --- a/runtime-modules/council/src/weights.rs +++ b/runtime-modules/council/src/weights.rs @@ -18,11 +18,11 @@ //! Autogenerated weights for council //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-27, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("prod-test"), DB CACHE: 1024 // Executed Command: -// ./scripts/../target/release/joystream-node +// ./../target/release/joystream-node // benchmark // pallet // --pallet=council @@ -31,8 +31,8 @@ // --steps=50 // --repeat=20 // --execution=wasm -// --template=./scripts/../devops/joystream-pallet-weight-template.hbs -// --output=./scripts/../runtime-modules/council/src/weights.rs +// --template=./../devops/joystream-pallet-weight-template.hbs +// --output=./../runtime-modules/council/src/weights.rs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -72,8 +72,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 14_197 nanoseconds. - Weight::from_ref_time(14_745_000) + // Minimum execution time: 6_000 nanoseconds. + Weight::from_parts(7_000_000, 0u64) .saturating_add(Weight::from_proof_size(0)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -83,8 +83,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 13_883 nanoseconds. - Weight::from_ref_time(14_431_000) + // Minimum execution time: 6_000 nanoseconds. + Weight::from_parts(7_000_000, 0u64) .saturating_add(Weight::from_proof_size(0)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -97,11 +97,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `714 + i * (2 ±0)` // Estimated: `511 + i * (2603 ±0)` - // Minimum execution time: 53_626 nanoseconds. - Weight::from_ref_time(39_042_363) + // Minimum execution time: 30_000 nanoseconds. + Weight::from_parts(9_946_559, 0u64) .saturating_add(Weight::from_proof_size(511)) - // Standard Error: 29_821 - .saturating_add(Weight::from_ref_time(30_304_622).saturating_mul(i.into())) + // Standard Error: 5_136 + .saturating_add(Weight::from_parts(19_998_149, 0u64).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -118,8 +118,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `276` // Estimated: `1022` - // Minimum execution time: 22_776 nanoseconds. - Weight::from_ref_time(23_449_000) + // Minimum execution time: 13_000 nanoseconds. + Weight::from_parts(14_000_000, 0u64) .saturating_add(Weight::from_proof_size(1022)) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) @@ -138,8 +138,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1169` // Estimated: `9651` - // Minimum execution time: 78_829 nanoseconds. - Weight::from_ref_time(79_478_000) + // Minimum execution time: 45_000 nanoseconds. + Weight::from_parts(46_000_000, 0u64) .saturating_add(Weight::from_proof_size(9651)) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(6_u64)) @@ -152,8 +152,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `270` // Estimated: `1011` - // Minimum execution time: 17_711 nanoseconds. - Weight::from_ref_time(18_080_000) + // Minimum execution time: 9_000 nanoseconds. + Weight::from_parts(10_000_000, 0u64) .saturating_add(Weight::from_proof_size(1011)) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) @@ -169,11 +169,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `379` // Estimated: `1600` - // Minimum execution time: 29_238 nanoseconds. - Weight::from_ref_time(31_249_668) + // Minimum execution time: 15_000 nanoseconds. + Weight::from_parts(16_653_162, 0u64) .saturating_add(Weight::from_proof_size(1600)) - // Standard Error: 807 - .saturating_add(Weight::from_ref_time(30_072).saturating_mul(i.into())) + // Standard Error: 774 + .saturating_add(Weight::from_parts(7_175, 0u64).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -185,8 +185,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `274` // Estimated: `1011` - // Minimum execution time: 18_237 nanoseconds. - Weight::from_ref_time(18_726_000) + // Minimum execution time: 9_000 nanoseconds. + Weight::from_parts(10_000_000, 0u64) .saturating_add(Weight::from_proof_size(1011)) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) @@ -209,8 +209,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `877` // Estimated: `15156` - // Minimum execution time: 71_130 nanoseconds. - Weight::from_ref_time(71_757_000) + // Minimum execution time: 38_000 nanoseconds. + Weight::from_parts(39_000_000, 0u64) .saturating_add(Weight::from_proof_size(15156)) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) @@ -229,8 +229,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1074` // Estimated: `12116` - // Minimum execution time: 54_879 nanoseconds. - Weight::from_ref_time(55_765_000) + // Minimum execution time: 29_000 nanoseconds. + Weight::from_parts(30_000_000, 0u64) .saturating_add(Weight::from_proof_size(12116)) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -248,11 +248,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `744` // Estimated: `6247` - // Minimum execution time: 38_473 nanoseconds. - Weight::from_ref_time(40_640_536) + // Minimum execution time: 20_000 nanoseconds. + Weight::from_parts(21_760_948, 0u64) .saturating_add(Weight::from_proof_size(6247)) - // Standard Error: 2_390 - .saturating_add(Weight::from_ref_time(2_541_999).saturating_mul(i.into())) + // Standard Error: 1_606 + .saturating_add(Weight::from_parts(1_487_056, 0u64).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -272,8 +272,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1074` // Estimated: `12624` - // Minimum execution time: 59_635 nanoseconds. - Weight::from_ref_time(60_483_000) + // Minimum execution time: 31_000 nanoseconds. + Weight::from_parts(32_000_000, 0u64) .saturating_add(Weight::from_proof_size(12624)) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) @@ -284,8 +284,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 13_565 nanoseconds. - Weight::from_ref_time(13_784_000) + // Minimum execution time: 6_000 nanoseconds. + Weight::from_parts(7_000_000, 0u64) .saturating_add(Weight::from_proof_size(0)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -295,8 +295,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 12_772 nanoseconds. - Weight::from_ref_time(14_085_000) + // Minimum execution time: 6_000 nanoseconds. + Weight::from_parts(6_000_000, 0u64) .saturating_add(Weight::from_proof_size(0)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -310,8 +310,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `730` // Estimated: `5714` - // Minimum execution time: 51_624 nanoseconds. - Weight::from_ref_time(52_626_000) + // Minimum execution time: 28_000 nanoseconds. + Weight::from_parts(28_000_000, 0u64) .saturating_add(Weight::from_proof_size(5714)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) @@ -326,8 +326,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `744` // Estimated: `5739` - // Minimum execution time: 31_915 nanoseconds. - Weight::from_ref_time(32_539_000) + // Minimum execution time: 16_000 nanoseconds. + Weight::from_parts(17_000_000, 0u64) .saturating_add(Weight::from_proof_size(5739)) .saturating_add(T::DbWeight::get().reads(3_u64)) } @@ -339,8 +339,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1006` // Estimated: `3420` - // Minimum execution time: 33_336 nanoseconds. - Weight::from_ref_time(34_046_000) + // Minimum execution time: 17_000 nanoseconds. + Weight::from_parts(18_000_000, 0u64) .saturating_add(Weight::from_proof_size(3420)) .saturating_add(T::DbWeight::get().reads(2_u64)) } @@ -349,54 +349,54 @@ impl WeightInfo for SubstrateWeight { // Default implementation for tests impl WeightInfo for () { fn set_budget_increment() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn set_councilor_reward() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn funding_request(i: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn try_process_budget_refill_budget_only() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn try_process_budget_payout_council_members_only() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn try_progress_stage_idle() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn try_progress_stage_announcing_start_election(i: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn try_progress_stage_announcing_restart() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn announce_candidacy() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn release_candidacy_stake() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn set_candidacy_note(i: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn withdraw_candidacy() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn set_budget() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn plan_budget_refill() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn fund_council_budget() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn candidate_remark() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn councilor_remark() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } } diff --git a/runtime-modules/forum/src/weights.rs b/runtime-modules/forum/src/weights.rs index 647f43f0fd..da83bb6aa4 100644 --- a/runtime-modules/forum/src/weights.rs +++ b/runtime-modules/forum/src/weights.rs @@ -18,11 +18,11 @@ //! Autogenerated weights for forum //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-27, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("prod-test"), DB CACHE: 1024 // Executed Command: -// ./scripts/../target/release/joystream-node +// ./../target/release/joystream-node // benchmark // pallet // --pallet=forum @@ -31,8 +31,8 @@ // --steps=50 // --repeat=20 // --execution=wasm -// --template=./scripts/../devops/joystream-pallet-weight-template.hbs -// --output=./scripts/../runtime-modules/forum/src/weights.rs +// --template=./../devops/joystream-pallet-weight-template.hbs +// --output=./../runtime-modules/forum/src/weights.rs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -91,15 +91,15 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `396 + i * (150 ±0)` // Estimated: `4159 + i * (2746 ±0)` - // Minimum execution time: 319_233 nanoseconds. - Weight::from_ref_time(36_579_449) + // Minimum execution time: 186_000 nanoseconds. + Weight::from_parts(30_579_736, 0u64) .saturating_add(Weight::from_proof_size(4159)) - // Standard Error: 238_032 - .saturating_add(Weight::from_ref_time(10_878_474).saturating_mul(i.into())) - // Standard Error: 13_232 - .saturating_add(Weight::from_ref_time(2_224_668).saturating_mul(j.into())) - // Standard Error: 13_232 - .saturating_add(Weight::from_ref_time(2_433_320).saturating_mul(k.into())) + // Standard Error: 76_645 + .saturating_add(Weight::from_parts(4_253_501, 0u64).saturating_mul(i.into())) + // Standard Error: 4_260 + .saturating_add(Weight::from_parts(1_330_039, 0u64).saturating_mul(j.into())) + // Standard Error: 4_260 + .saturating_add(Weight::from_parts(1_419_548, 0u64).saturating_mul(k.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -117,8 +117,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `665` // Estimated: `5899` - // Minimum execution time: 51_825 nanoseconds. - Weight::from_ref_time(52_746_000) + // Minimum execution time: 27_000 nanoseconds. + Weight::from_parts(28_000_000, 0u64) .saturating_add(Weight::from_proof_size(5899)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) @@ -135,8 +135,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `735` // Estimated: `8422` - // Minimum execution time: 53_111 nanoseconds. - Weight::from_ref_time(53_678_000) + // Minimum execution time: 28_000 nanoseconds. + Weight::from_parts(29_000_000, 0u64) .saturating_add(Weight::from_proof_size(8422)) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) @@ -152,11 +152,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `509 + i * (151 ±0)` // Estimated: `3153 + i * (2746 ±0)` - // Minimum execution time: 45_120 nanoseconds. - Weight::from_ref_time(41_148_204) + // Minimum execution time: 22_000 nanoseconds. + Weight::from_parts(20_692_665, 0u64) .saturating_add(Weight::from_proof_size(3153)) - // Standard Error: 23_706 - .saturating_add(Weight::from_ref_time(4_912_266).saturating_mul(i.into())) + // Standard Error: 17_186 + .saturating_add(Weight::from_parts(3_017_660, 0u64).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -173,11 +173,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `579 + i * (151 ±0)` // Estimated: `2650 + i * (5269 ±0)` - // Minimum execution time: 47_721 nanoseconds. - Weight::from_ref_time(41_988_265) + // Minimum execution time: 24_000 nanoseconds. + Weight::from_parts(21_079_786, 0u64) .saturating_add(Weight::from_proof_size(2650)) - // Standard Error: 18_526 - .saturating_add(Weight::from_ref_time(7_472_402).saturating_mul(i.into())) + // Standard Error: 14_596 + .saturating_add(Weight::from_parts(4_488_150, 0u64).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -195,13 +195,13 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `509 + i * (151 ±0)` // Estimated: `3153 + i * (2746 ±0)` - // Minimum execution time: 70_796 nanoseconds. - Weight::from_ref_time(38_388_441) + // Minimum execution time: 39_000 nanoseconds. + Weight::from_parts(22_155_472, 0u64) .saturating_add(Weight::from_proof_size(3153)) - // Standard Error: 48_723 - .saturating_add(Weight::from_ref_time(5_559_509).saturating_mul(i.into())) - // Standard Error: 2_729 - .saturating_add(Weight::from_ref_time(1_856_479).saturating_mul(j.into())) + // Standard Error: 20_349 + .saturating_add(Weight::from_parts(2_942_890, 0u64).saturating_mul(i.into())) + // Standard Error: 1_139 + .saturating_add(Weight::from_parts(1_230_997, 0u64).saturating_mul(j.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -219,13 +219,13 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `579 + i * (151 ±0)` // Estimated: `2650 + i * (5269 ±0)` - // Minimum execution time: 84_929 nanoseconds. - Weight::from_ref_time(36_751_374) + // Minimum execution time: 47_000 nanoseconds. + Weight::from_parts(21_615_783, 0u64) .saturating_add(Weight::from_proof_size(2650)) - // Standard Error: 40_917 - .saturating_add(Weight::from_ref_time(8_013_089).saturating_mul(i.into())) - // Standard Error: 2_292 - .saturating_add(Weight::from_ref_time(1_881_289).saturating_mul(j.into())) + // Standard Error: 31_631 + .saturating_add(Weight::from_parts(4_452_462, 0u64).saturating_mul(i.into())) + // Standard Error: 1_771 + .saturating_add(Weight::from_parts(1_230_855, 0u64).saturating_mul(j.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -243,13 +243,13 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `509 + i * (151 ±0)` // Estimated: `3153 + i * (2746 ±0)` - // Minimum execution time: 70_213 nanoseconds. - Weight::from_ref_time(38_035_563) + // Minimum execution time: 39_000 nanoseconds. + Weight::from_parts(22_914_421, 0u64) .saturating_add(Weight::from_proof_size(3153)) - // Standard Error: 40_030 - .saturating_add(Weight::from_ref_time(5_478_427).saturating_mul(i.into())) - // Standard Error: 2_242 - .saturating_add(Weight::from_ref_time(1_853_025).saturating_mul(j.into())) + // Standard Error: 31_468 + .saturating_add(Weight::from_parts(2_881_034, 0u64).saturating_mul(i.into())) + // Standard Error: 1_762 + .saturating_add(Weight::from_parts(1_218_201, 0u64).saturating_mul(j.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -267,13 +267,13 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `579 + i * (151 ±0)` // Estimated: `2650 + i * (5269 ±0)` - // Minimum execution time: 83_991 nanoseconds. - Weight::from_ref_time(39_148_026) + // Minimum execution time: 48_000 nanoseconds. + Weight::from_parts(20_758_992, 0u64) .saturating_add(Weight::from_proof_size(2650)) - // Standard Error: 37_108 - .saturating_add(Weight::from_ref_time(7_672_056).saturating_mul(i.into())) - // Standard Error: 2_078 - .saturating_add(Weight::from_ref_time(1_865_042).saturating_mul(j.into())) + // Standard Error: 29_519 + .saturating_add(Weight::from_parts(4_462_850, 0u64).saturating_mul(i.into())) + // Standard Error: 1_653 + .saturating_add(Weight::from_parts(1_242_812, 0u64).saturating_mul(j.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -292,11 +292,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `509 + i * (151 ±0)` // Estimated: `3656 + i * (2746 ±0)` - // Minimum execution time: 43_559 nanoseconds. - Weight::from_ref_time(41_291_243) + // Minimum execution time: 22_000 nanoseconds. + Weight::from_parts(20_436_044, 0u64) .saturating_add(Weight::from_proof_size(3656)) - // Standard Error: 71_768 - .saturating_add(Weight::from_ref_time(6_627_418).saturating_mul(i.into())) + // Standard Error: 38_911 + .saturating_add(Weight::from_parts(3_958_925, 0u64).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(2_u64)) @@ -314,12 +314,12 @@ impl WeightInfo for SubstrateWeight { fn delete_category_moderator(i: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `578 + i * (151 ±0)` - // Estimated: `8199 + i * (3469 ±17)` - // Minimum execution time: 66_438 nanoseconds. - Weight::from_ref_time(46_528_303) + // Estimated: `8199 + i * (3469 ±0)` + // Minimum execution time: 35_000 nanoseconds. + Weight::from_parts(22_598_593, 0u64) .saturating_add(Weight::from_proof_size(8199)) - // Standard Error: 27_798 - .saturating_add(Weight::from_ref_time(7_370_334).saturating_mul(i.into())) + // Standard Error: 26_804 + .saturating_add(Weight::from_parts(4_634_180, 0u64).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -346,15 +346,15 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `686 + i * (151 ±0)` // Estimated: `11408 + i * (2746 ±0)` - // Minimum execution time: 280_680 nanoseconds. - Weight::from_ref_time(121_941_933) + // Minimum execution time: 134_000 nanoseconds. + Weight::from_parts(68_036_244, 0u64) .saturating_add(Weight::from_proof_size(11408)) - // Standard Error: 207_368 - .saturating_add(Weight::from_ref_time(8_168_510).saturating_mul(i.into())) - // Standard Error: 11_527 - .saturating_add(Weight::from_ref_time(1_068_628).saturating_mul(j.into())) - // Standard Error: 11_527 - .saturating_add(Weight::from_ref_time(2_584_395).saturating_mul(k.into())) + // Standard Error: 84_022 + .saturating_add(Weight::from_parts(4_221_965, 0u64).saturating_mul(i.into())) + // Standard Error: 4_670 + .saturating_add(Weight::from_parts(404_596, 0u64).saturating_mul(j.into())) + // Standard Error: 4_670 + .saturating_add(Weight::from_parts(1_495_673, 0u64).saturating_mul(k.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(7_u64)) @@ -372,13 +372,13 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `639 + i * (151 ±0)` // Estimated: `5196 + i * (2746 ±0)` - // Minimum execution time: 69_389 nanoseconds. - Weight::from_ref_time(41_692_281) + // Minimum execution time: 37_000 nanoseconds. + Weight::from_parts(19_266_326, 0u64) .saturating_add(Weight::from_proof_size(5196)) - // Standard Error: 31_896 - .saturating_add(Weight::from_ref_time(4_888_717).saturating_mul(i.into())) - // Standard Error: 1_765 - .saturating_add(Weight::from_ref_time(1_224_077).saturating_mul(j.into())) + // Standard Error: 22_515 + .saturating_add(Weight::from_parts(3_262_279, 0u64).saturating_mul(i.into())) + // Standard Error: 1_246 + .saturating_add(Weight::from_parts(485_149, 0u64).saturating_mul(j.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) .saturating_add(Weight::from_proof_size(2746).saturating_mul(i.into())) @@ -396,11 +396,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `950 + i * (151 ±0)` // Estimated: `10402 + i * (2746 ±0)` - // Minimum execution time: 84_820 nanoseconds. - Weight::from_ref_time(82_928_658) + // Minimum execution time: 46_000 nanoseconds. + Weight::from_parts(45_982_701, 0u64) .saturating_add(Weight::from_proof_size(10402)) - // Standard Error: 43_665 - .saturating_add(Weight::from_ref_time(4_976_700).saturating_mul(i.into())) + // Standard Error: 29_880 + .saturating_add(Weight::from_parts(2_796_456, 0u64).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(4_u64)) @@ -419,11 +419,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `690 + i * (150 ±0)` // Estimated: `7894 + i * (2218 ±24)` - // Minimum execution time: 70_017 nanoseconds. - Weight::from_ref_time(62_459_071) + // Minimum execution time: 37_000 nanoseconds. + Weight::from_parts(33_246_523, 0u64) .saturating_add(Weight::from_proof_size(7894)) - // Standard Error: 70_190 - .saturating_add(Weight::from_ref_time(6_448_848).saturating_mul(i.into())) + // Standard Error: 45_296 + .saturating_add(Weight::from_parts(4_005_124, 0u64).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(4_u64)) @@ -442,11 +442,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `913 + i * (185 ±0)` // Estimated: `10515 + i * (5269 ±0)` - // Minimum execution time: 82_216 nanoseconds. - Weight::from_ref_time(73_954_559) + // Minimum execution time: 45_000 nanoseconds. + Weight::from_parts(39_551_247, 0u64) .saturating_add(Weight::from_proof_size(10515)) - // Standard Error: 26_321 - .saturating_add(Weight::from_ref_time(9_840_448).saturating_mul(i.into())) + // Standard Error: 20_469 + .saturating_add(Weight::from_parts(6_553_229, 0u64).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(4_u64)) @@ -468,13 +468,13 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `825 + i * (151 ±0)` // Estimated: `8352 + i * (2746 ±0)` - // Minimum execution time: 107_012 nanoseconds. - Weight::from_ref_time(80_968_478) + // Minimum execution time: 59_000 nanoseconds. + Weight::from_parts(42_528_604, 0u64) .saturating_add(Weight::from_proof_size(8352)) - // Standard Error: 51_851 - .saturating_add(Weight::from_ref_time(4_425_114).saturating_mul(i.into())) - // Standard Error: 2_870 - .saturating_add(Weight::from_ref_time(1_254_059).saturating_mul(k.into())) + // Standard Error: 27_779 + .saturating_add(Weight::from_parts(2_993_828, 0u64).saturating_mul(i.into())) + // Standard Error: 1_537 + .saturating_add(Weight::from_parts(489_970, 0u64).saturating_mul(k.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -496,13 +496,13 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `898 + i * (151 ±0)` // Estimated: `7849 + i * (5269 ±0)` - // Minimum execution time: 120_539 nanoseconds. - Weight::from_ref_time(78_911_391) + // Minimum execution time: 68_000 nanoseconds. + Weight::from_parts(44_833_420, 0u64) .saturating_add(Weight::from_proof_size(7849)) - // Standard Error: 116_623 - .saturating_add(Weight::from_ref_time(7_096_197).saturating_mul(i.into())) - // Standard Error: 6_455 - .saturating_add(Weight::from_ref_time(1_275_965).saturating_mul(k.into())) + // Standard Error: 30_313 + .saturating_add(Weight::from_parts(4_298_163, 0u64).saturating_mul(i.into())) + // Standard Error: 1_677 + .saturating_add(Weight::from_parts(471_506, 0u64).saturating_mul(k.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -526,13 +526,13 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `983 + i * (151 ±0)` // Estimated: `10905 + i * (2746 ±0)` - // Minimum execution time: 132_530 nanoseconds. - Weight::from_ref_time(106_990_265) + // Minimum execution time: 76_000 nanoseconds. + Weight::from_parts(61_779_634, 0u64) .saturating_add(Weight::from_proof_size(10905)) - // Standard Error: 71_954 - .saturating_add(Weight::from_ref_time(4_568_001).saturating_mul(i.into())) - // Standard Error: 3_982 - .saturating_add(Weight::from_ref_time(2_570_237).saturating_mul(j.into())) + // Standard Error: 45_267 + .saturating_add(Weight::from_parts(2_596_760, 0u64).saturating_mul(i.into())) + // Standard Error: 2_505 + .saturating_add(Weight::from_parts(1_481_594, 0u64).saturating_mul(j.into())) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(5_u64)) @@ -552,13 +552,13 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `818 + i * (151 ±0)` // Estimated: `7820 + i * (2746 ±0)` - // Minimum execution time: 85_074 nanoseconds. - Weight::from_ref_time(54_435_493) + // Minimum execution time: 47_000 nanoseconds. + Weight::from_parts(29_519_355, 0u64) .saturating_add(Weight::from_proof_size(7820)) - // Standard Error: 164_020 - .saturating_add(Weight::from_ref_time(5_486_991).saturating_mul(i.into())) - // Standard Error: 9_079 - .saturating_add(Weight::from_ref_time(2_547_456).saturating_mul(j.into())) + // Standard Error: 37_549 + .saturating_add(Weight::from_parts(3_035_610, 0u64).saturating_mul(i.into())) + // Standard Error: 2_078 + .saturating_add(Weight::from_parts(1_497_646, 0u64).saturating_mul(j.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -582,13 +582,13 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1037 + i * (151 ±0)` // Estimated: `10976 + i * (2746 ±0)` - // Minimum execution time: 129_703 nanoseconds. - Weight::from_ref_time(95_498_625) + // Minimum execution time: 74_000 nanoseconds. + Weight::from_parts(52_542_031, 0u64) .saturating_add(Weight::from_proof_size(10976)) - // Standard Error: 107_838 - .saturating_add(Weight::from_ref_time(5_879_509).saturating_mul(i.into())) - // Standard Error: 5_969 - .saturating_add(Weight::from_ref_time(1_262_526).saturating_mul(j.into())) + // Standard Error: 27_388 + .saturating_add(Weight::from_parts(3_891_797, 0u64).saturating_mul(i.into())) + // Standard Error: 1_516 + .saturating_add(Weight::from_parts(469_715, 0u64).saturating_mul(j.into())) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -612,13 +612,13 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1110 + i * (151 ±0)` // Estimated: `10473 + i * (5269 ±0)` - // Minimum execution time: 143_970 nanoseconds. - Weight::from_ref_time(99_846_862) + // Minimum execution time: 83_000 nanoseconds. + Weight::from_parts(52_450_646, 0u64) .saturating_add(Weight::from_proof_size(10473)) - // Standard Error: 36_147 - .saturating_add(Weight::from_ref_time(7_579_614).saturating_mul(i.into())) - // Standard Error: 2_000 - .saturating_add(Weight::from_ref_time(1_235_729).saturating_mul(j.into())) + // Standard Error: 29_042 + .saturating_add(Weight::from_parts(5_381_752, 0u64).saturating_mul(i.into())) + // Standard Error: 1_607 + .saturating_add(Weight::from_parts(474_634, 0u64).saturating_mul(j.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -641,13 +641,13 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1100 + i * (151 ±0) + k * (132 ±0)` // Estimated: `10402 + i * (2746 ±0) + k * (2624 ±0)` - // Minimum execution time: 244_506 nanoseconds. - Weight::from_ref_time(245_922_000) + // Minimum execution time: 113_000 nanoseconds. + Weight::from_parts(115_000_000, 0u64) .saturating_add(Weight::from_proof_size(10402)) - // Standard Error: 523_091 - .saturating_add(Weight::from_ref_time(10_054_088).saturating_mul(i.into())) - // Standard Error: 154_122 - .saturating_add(Weight::from_ref_time(45_013_558).saturating_mul(k.into())) + // Standard Error: 291_905 + .saturating_add(Weight::from_parts(9_574_465, 0u64).saturating_mul(i.into())) + // Standard Error: 86_006 + .saturating_add(Weight::from_parts(31_578_048, 0u64).saturating_mul(k.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(k.into()))) @@ -670,13 +670,13 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `584 + i * (151 ±0) + j * (103 ±0)` // Estimated: `3153 + i * (2746 ±0) + j * (2596 ±0)` - // Minimum execution time: 69_950 nanoseconds. - Weight::from_ref_time(44_644_267) + // Minimum execution time: 37_000 nanoseconds. + Weight::from_parts(19_400_323, 0u64) .saturating_add(Weight::from_proof_size(3153)) - // Standard Error: 38_233 - .saturating_add(Weight::from_ref_time(4_873_203).saturating_mul(i.into())) - // Standard Error: 10_331 - .saturating_add(Weight::from_ref_time(6_151_155).saturating_mul(j.into())) + // Standard Error: 28_308 + .saturating_add(Weight::from_parts(3_316_885, 0u64).saturating_mul(i.into())) + // Standard Error: 7_649 + .saturating_add(Weight::from_parts(4_125_780, 0u64).saturating_mul(j.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(j.into()))) @@ -698,13 +698,13 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `657 + i * (151 ±0) + j * (103 ±0)` // Estimated: `2650 + i * (5269 ±0) + j * (2596 ±0)` - // Minimum execution time: 83_657 nanoseconds. - Weight::from_ref_time(42_631_378) + // Minimum execution time: 47_000 nanoseconds. + Weight::from_parts(17_127_121, 0u64) .saturating_add(Weight::from_proof_size(2650)) - // Standard Error: 34_822 - .saturating_add(Weight::from_ref_time(7_488_243).saturating_mul(i.into())) - // Standard Error: 9_409 - .saturating_add(Weight::from_ref_time(6_187_498).saturating_mul(j.into())) + // Standard Error: 34_911 + .saturating_add(Weight::from_parts(5_184_583, 0u64).saturating_mul(i.into())) + // Standard Error: 9_433 + .saturating_add(Weight::from_parts(4_196_301, 0u64).saturating_mul(j.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(j.into()))) @@ -717,78 +717,78 @@ impl WeightInfo for SubstrateWeight { // Default implementation for tests impl WeightInfo for () { fn create_category(i: u32, j: u32, k: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn update_category_membership_of_moderator_new() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn update_category_membership_of_moderator_old() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn update_category_archival_status_lead(i: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn update_category_archival_status_moderator(i: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn update_category_title_lead(i: u32, j: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn update_category_title_moderator(i: u32, j: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn update_category_description_lead(i: u32, j: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn update_category_description_moderator(i: u32, j: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn delete_category_lead(i: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn delete_category_moderator(i: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn create_thread(i: u32, j: u32, k: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn edit_thread_metadata(i: u32, j: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn delete_thread(i: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn move_thread_to_category_lead(i: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn move_thread_to_category_moderator(i: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn moderate_thread_lead(i: u32, k: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn moderate_thread_moderator(i: u32, k: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn add_post(i: u32, j: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn edit_post_text(i: u32, j: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn moderate_post_lead(i: u32, j: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn moderate_post_moderator(i: u32, j: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn delete_posts(i: u32, _j: u32, k: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn set_stickied_threads_lead(i: u32, j: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn set_stickied_threads_moderator(i: u32, j: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } } diff --git a/runtime-modules/membership/src/weights.rs b/runtime-modules/membership/src/weights.rs index 5784af6864..b9a86bf792 100644 --- a/runtime-modules/membership/src/weights.rs +++ b/runtime-modules/membership/src/weights.rs @@ -18,11 +18,11 @@ //! Autogenerated weights for membership //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-27, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("prod-test"), DB CACHE: 1024 // Executed Command: -// ./scripts/../target/release/joystream-node +// ./../target/release/joystream-node // benchmark // pallet // --pallet=membership @@ -31,8 +31,8 @@ // --steps=50 // --repeat=20 // --execution=wasm -// --template=./scripts/../devops/joystream-pallet-weight-template.hbs -// --output=./scripts/../runtime-modules/membership/src/weights.rs +// --template=./../devops/joystream-pallet-weight-template.hbs +// --output=./../runtime-modules/membership/src/weights.rs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -89,13 +89,13 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `212` // Estimated: `6647` - // Minimum execution time: 172_001 nanoseconds. - Weight::from_ref_time(69_590_815) + // Minimum execution time: 75_000 nanoseconds. + Weight::from_parts(37_199_354, 0u64) .saturating_add(Weight::from_proof_size(6647)) - // Standard Error: 15_432 - .saturating_add(Weight::from_ref_time(2_283_164).saturating_mul(i.into())) - // Standard Error: 15_432 - .saturating_add(Weight::from_ref_time(1_114_319).saturating_mul(j.into())) + // Standard Error: 5_110 + .saturating_add(Weight::from_parts(1_342_445, 0u64).saturating_mul(i.into())) + // Standard Error: 5_110 + .saturating_add(Weight::from_parts(409_582, 0u64).saturating_mul(j.into())) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } @@ -119,13 +119,13 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `523` // Estimated: `9743` - // Minimum execution time: 203_326 nanoseconds. - Weight::from_ref_time(91_732_330) + // Minimum execution time: 91_000 nanoseconds. + Weight::from_parts(45_763_092, 0u64) .saturating_add(Weight::from_proof_size(9743)) - // Standard Error: 14_290 - .saturating_add(Weight::from_ref_time(2_285_284).saturating_mul(i.into())) - // Standard Error: 14_290 - .saturating_add(Weight::from_ref_time(1_305_164).saturating_mul(j.into())) + // Standard Error: 5_894 + .saturating_add(Weight::from_parts(1_389_512, 0u64).saturating_mul(i.into())) + // Standard Error: 5_894 + .saturating_add(Weight::from_parts(497_070, 0u64).saturating_mul(j.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } @@ -139,13 +139,13 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `297` // Estimated: `5131` - // Minimum execution time: 143_971 nanoseconds. - Weight::from_ref_time(45_574_000) + // Minimum execution time: 61_000 nanoseconds. + Weight::from_parts(25_265_985, 0u64) .saturating_add(Weight::from_proof_size(5131)) - // Standard Error: 13_636 - .saturating_add(Weight::from_ref_time(2_516_779).saturating_mul(i.into())) - // Standard Error: 13_636 - .saturating_add(Weight::from_ref_time(1_135_915).saturating_mul(j.into())) + // Standard Error: 4_989 + .saturating_add(Weight::from_parts(1_438_161, 0u64).saturating_mul(i.into())) + // Standard Error: 4_989 + .saturating_add(Weight::from_parts(423_609, 0u64).saturating_mul(j.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -153,8 +153,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 5_386 nanoseconds. - Weight::from_ref_time(5_600_000) + // Minimum execution time: 2_000 nanoseconds. + Weight::from_parts(3_000_000, 0u64) .saturating_add(Weight::from_proof_size(0)) } // Storage: Membership MembershipById (r:1 w:1) @@ -163,8 +163,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `252` // Estimated: `2600` - // Minimum execution time: 24_126 nanoseconds. - Weight::from_ref_time(24_982_000) + // Minimum execution time: 12_000 nanoseconds. + Weight::from_parts(13_000_000, 0u64) .saturating_add(Weight::from_proof_size(2600)) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -175,8 +175,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `252` // Estimated: `2600` - // Minimum execution time: 24_073 nanoseconds. - Weight::from_ref_time(24_735_000) + // Minimum execution time: 12_000 nanoseconds. + Weight::from_parts(13_000_000, 0u64) .saturating_add(Weight::from_proof_size(2600)) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -187,8 +187,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `252` // Estimated: `2600` - // Minimum execution time: 24_298 nanoseconds. - Weight::from_ref_time(24_720_000) + // Minimum execution time: 13_000 nanoseconds. + Weight::from_parts(13_000_000, 0u64) .saturating_add(Weight::from_proof_size(2600)) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -199,8 +199,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 12_756 nanoseconds. - Weight::from_ref_time(13_215_000) + // Minimum execution time: 6_000 nanoseconds. + Weight::from_parts(7_000_000, 0u64) .saturating_add(Weight::from_proof_size(0)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -210,8 +210,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `420` // Estimated: `5200` - // Minimum execution time: 33_018 nanoseconds. - Weight::from_ref_time(33_583_000) + // Minimum execution time: 17_000 nanoseconds. + Weight::from_parts(18_000_000, 0u64) .saturating_add(Weight::from_proof_size(5200)) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) @@ -236,13 +236,13 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `582` // Estimated: `13033` - // Minimum execution time: 189_550 nanoseconds. - Weight::from_ref_time(97_221_906) + // Minimum execution time: 86_000 nanoseconds. + Weight::from_parts(48_496_951, 0u64) .saturating_add(Weight::from_proof_size(13033)) - // Standard Error: 15_282 - .saturating_add(Weight::from_ref_time(2_242_387).saturating_mul(i.into())) - // Standard Error: 15_101 - .saturating_add(Weight::from_ref_time(1_116_129).saturating_mul(j.into())) + // Standard Error: 5_774 + .saturating_add(Weight::from_parts(1_358_933, 0u64).saturating_mul(i.into())) + // Standard Error: 5_706 + .saturating_add(Weight::from_parts(437_981, 0u64).saturating_mul(j.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(7_u64)) } @@ -264,13 +264,13 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `292` // Estimated: `18902` - // Minimum execution time: 263_823 nanoseconds. - Weight::from_ref_time(157_858_373) + // Minimum execution time: 133_000 nanoseconds. + Weight::from_parts(94_080_490, 0u64) .saturating_add(Weight::from_proof_size(18902)) - // Standard Error: 24_358 - .saturating_add(Weight::from_ref_time(2_335_509).saturating_mul(i.into())) - // Standard Error: 24_069 - .saturating_add(Weight::from_ref_time(1_196_975).saturating_mul(j.into())) + // Standard Error: 5_728 + .saturating_add(Weight::from_parts(1_369_491, 0u64).saturating_mul(i.into())) + // Standard Error: 5_660 + .saturating_add(Weight::from_parts(438_067, 0u64).saturating_mul(j.into())) .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().writes(8_u64)) } @@ -280,8 +280,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 13_388 nanoseconds. - Weight::from_ref_time(13_798_000) + // Minimum execution time: 6_000 nanoseconds. + Weight::from_parts(7_000_000, 0u64) .saturating_add(Weight::from_proof_size(0)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -293,8 +293,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `665` // Estimated: `5250` - // Minimum execution time: 32_578 nanoseconds. - Weight::from_ref_time(33_501_000) + // Minimum execution time: 17_000 nanoseconds. + Weight::from_parts(18_000_000, 0u64) .saturating_add(Weight::from_proof_size(5250)) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -309,8 +309,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `665` // Estimated: `5753` - // Minimum execution time: 33_967 nanoseconds. - Weight::from_ref_time(34_983_000) + // Minimum execution time: 18_000 nanoseconds. + Weight::from_parts(19_000_000, 0u64) .saturating_add(Weight::from_proof_size(5753)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -321,8 +321,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 12_907 nanoseconds. - Weight::from_ref_time(13_532_000) + // Minimum execution time: 6_000 nanoseconds. + Weight::from_parts(7_000_000, 0u64) .saturating_add(Weight::from_proof_size(0)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -332,8 +332,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 12_667 nanoseconds. - Weight::from_ref_time(13_000_000) + // Minimum execution time: 6_000 nanoseconds. + Weight::from_parts(7_000_000, 0u64) .saturating_add(Weight::from_proof_size(0)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -349,8 +349,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `520` // Estimated: `11509` - // Minimum execution time: 53_290 nanoseconds. - Weight::from_ref_time(54_588_000) + // Minimum execution time: 28_000 nanoseconds. + Weight::from_parts(29_000_000, 0u64) .saturating_add(Weight::from_proof_size(11509)) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -363,8 +363,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `331` // Estimated: `5132` - // Minimum execution time: 35_469 nanoseconds. - Weight::from_ref_time(36_290_000) + // Minimum execution time: 18_000 nanoseconds. + Weight::from_parts(19_000_000, 0u64) .saturating_add(Weight::from_proof_size(5132)) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -381,8 +381,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `637` // Estimated: `11509` - // Minimum execution time: 51_153 nanoseconds. - Weight::from_ref_time(52_392_000) + // Minimum execution time: 27_000 nanoseconds. + Weight::from_parts(28_000_000, 0u64) .saturating_add(Weight::from_proof_size(11509)) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -393,8 +393,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `252` // Estimated: `2600` - // Minimum execution time: 21_218 nanoseconds. - Weight::from_ref_time(21_505_000) + // Minimum execution time: 11_000 nanoseconds. + Weight::from_parts(11_000_000, 0u64) .saturating_add(Weight::from_proof_size(2600)) .saturating_add(T::DbWeight::get().reads(1_u64)) } @@ -406,8 +406,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `510` // Estimated: `7806` - // Minimum execution time: 62_776 nanoseconds. - Weight::from_ref_time(63_407_000) + // Minimum execution time: 36_000 nanoseconds. + Weight::from_parts(37_000_000, 0u64) .saturating_add(Weight::from_proof_size(7806)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) @@ -426,13 +426,13 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `6` // Estimated: `3533` - // Minimum execution time: 153_777 nanoseconds. - Weight::from_ref_time(29_798_904) + // Minimum execution time: 63_000 nanoseconds. + Weight::from_parts(17_319_363, 0u64) .saturating_add(Weight::from_proof_size(3533)) - // Standard Error: 13_431 - .saturating_add(Weight::from_ref_time(2_707_535).saturating_mul(i.into())) - // Standard Error: 13_272 - .saturating_add(Weight::from_ref_time(1_355_694).saturating_mul(j.into())) + // Standard Error: 5_674 + .saturating_add(Weight::from_parts(1_511_269, 0u64).saturating_mul(i.into())) + // Standard Error: 5_607 + .saturating_add(Weight::from_parts(491_831, 0u64).saturating_mul(j.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -441,69 +441,69 @@ impl WeightInfo for SubstrateWeight { // Default implementation for tests impl WeightInfo for () { fn buy_membership_without_referrer(i: u32, j: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn buy_membership_with_referrer(i: u32, j: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn update_profile(i: u32, j: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn update_accounts_none() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn update_accounts_root() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn update_accounts_controller() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn update_accounts_both() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn set_referral_cut() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn transfer_invites() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn invite_member(i: u32, j: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn gift_membership(i: u32, j: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn set_membership_price() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn update_profile_verification() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn set_leader_invitation_quota() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn set_initial_invitation_balance() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn set_initial_invitation_count() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn add_staking_account_candidate() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn confirm_staking_account() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn remove_staking_account() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn member_remark_without_payment() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn member_remark_with_payment() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn create_member(i: u32, j: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } } diff --git a/runtime-modules/project-token/src/weights.rs b/runtime-modules/project-token/src/weights.rs index 7e959a268b..3b78281798 100644 --- a/runtime-modules/project-token/src/weights.rs +++ b/runtime-modules/project-token/src/weights.rs @@ -18,11 +18,11 @@ //! Autogenerated weights for project_token //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-27, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("prod-test"), DB CACHE: 1024 // Executed Command: -// ./scripts/../target/release/joystream-node +// ./../target/release/joystream-node // benchmark // pallet // --pallet=project_token @@ -31,8 +31,8 @@ // --steps=50 // --repeat=20 // --execution=wasm -// --template=./scripts/../devops/joystream-pallet-weight-template.hbs -// --output=./scripts/../runtime-modules/project-token/src/weights.rs +// --template=./../devops/joystream-pallet-weight-template.hbs +// --output=./../runtime-modules/project-token/src/weights.rs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -72,11 +72,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1800 + o * (165 ±0)` // Estimated: `14095 + o * (5564 ±0)` - // Minimum execution time: 253_999 nanoseconds. - Weight::from_ref_time(255_429_000) + // Minimum execution time: 119_000 nanoseconds. + Weight::from_parts(119_000_000, 0u64) .saturating_add(Weight::from_proof_size(14095)) - // Standard Error: 10_580 - .saturating_add(Weight::from_ref_time(14_311_797).saturating_mul(o.into())) + // Standard Error: 3_767 + .saturating_add(Weight::from_parts(9_473_790, 0u64).saturating_mul(o.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(o.into()))) .saturating_add(T::DbWeight::get().writes(4_u64)) @@ -95,8 +95,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1179` // Estimated: `13584` - // Minimum execution time: 76_987 nanoseconds. - Weight::from_ref_time(77_895_000) + // Minimum execution time: 42_000 nanoseconds. + Weight::from_parts(43_000_000, 0u64) .saturating_add(Weight::from_proof_size(13584)) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) @@ -116,11 +116,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1173` // Estimated: `14095` - // Minimum execution time: 100_817 nanoseconds. - Weight::from_ref_time(104_474_421) + // Minimum execution time: 56_000 nanoseconds. + Weight::from_parts(56_746_277, 0u64) .saturating_add(Weight::from_proof_size(14095)) - // Standard Error: 94_840 - .saturating_add(Weight::from_ref_time(470_863).saturating_mul(h.into())) + // Standard Error: 7_413 + .saturating_add(Weight::from_parts(558_908, 0u64).saturating_mul(h.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } @@ -140,8 +140,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1441` // Estimated: `17197` - // Minimum execution time: 133_502 nanoseconds. - Weight::from_ref_time(135_329_000) + // Minimum execution time: 76_000 nanoseconds. + Weight::from_parts(77_000_000, 0u64) .saturating_add(Weight::from_proof_size(17197)) .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().writes(5_u64)) @@ -158,8 +158,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1589` // Estimated: `13584` - // Minimum execution time: 92_423 nanoseconds. - Weight::from_ref_time(94_180_000) + // Minimum execution time: 52_000 nanoseconds. + Weight::from_parts(53_000_000, 0u64) .saturating_add(Weight::from_proof_size(13584)) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) @@ -174,8 +174,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1211` // Estimated: `8378` - // Minimum execution time: 53_350 nanoseconds. - Weight::from_ref_time(54_296_000) + // Minimum execution time: 29_000 nanoseconds. + Weight::from_parts(30_000_000, 0u64) .saturating_add(Weight::from_proof_size(8378)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -190,8 +190,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1095` // Estimated: `8378` - // Minimum execution time: 54_870 nanoseconds. - Weight::from_ref_time(55_701_000) + // Minimum execution time: 30_000 nanoseconds. + Weight::from_parts(30_000_000, 0u64) .saturating_add(Weight::from_proof_size(8378)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) @@ -201,24 +201,24 @@ impl WeightInfo for SubstrateWeight { // Default implementation for tests impl WeightInfo for () { fn transfer(o: u32, _m: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn dust_account() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn join_whitelist(h: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn purchase_tokens_on_sale() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn participate_in_split() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn exit_revenue_split() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn burn() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } } diff --git a/runtime-modules/proposals/codex/src/weights.rs b/runtime-modules/proposals/codex/src/weights.rs index f3f6b97435..c65ad2f93c 100644 --- a/runtime-modules/proposals/codex/src/weights.rs +++ b/runtime-modules/proposals/codex/src/weights.rs @@ -18,11 +18,11 @@ //! Autogenerated weights for proposals_codex //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-27, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("prod-test"), DB CACHE: 1024 // Executed Command: -// ./scripts/../target/release/joystream-node +// ./../target/release/joystream-node // benchmark // pallet // --pallet=proposals_codex @@ -31,8 +31,8 @@ // --steps=50 // --repeat=20 // --execution=wasm -// --template=./scripts/../devops/joystream-pallet-weight-template.hbs -// --output=./scripts/../runtime-modules/proposals/codex/src/weights.rs +// --template=./../devops/joystream-pallet-weight-template.hbs +// --output=./../runtime-modules/proposals/codex/src/weights.rs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -101,15 +101,15 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `748` // Estimated: `13010` - // Minimum execution time: 168_279 nanoseconds. - Weight::from_ref_time(121_795_019) + // Minimum execution time: 81_000 nanoseconds. + Weight::from_parts(59_286_373, 0u64) .saturating_add(Weight::from_proof_size(13010)) - // Standard Error: 8_302 - .saturating_add(Weight::from_ref_time(2_222_500).saturating_mul(i.into())) - // Standard Error: 42_015 - .saturating_add(Weight::from_ref_time(905_353).saturating_mul(t.into())) - // Standard Error: 42_015 - .saturating_add(Weight::from_ref_time(1_223_391).saturating_mul(d.into())) + // Standard Error: 2_806 + .saturating_add(Weight::from_parts(806_902, 0u64).saturating_mul(i.into())) + // Standard Error: 14_204 + .saturating_add(Weight::from_parts(460_325, 0u64).saturating_mul(t.into())) + // Standard Error: 14_204 + .saturating_add(Weight::from_parts(512_347, 0u64).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(9_u64)) } @@ -142,15 +142,15 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `748` // Estimated: `13010` - // Minimum execution time: 165_639 nanoseconds. - Weight::from_ref_time(114_603_300) + // Minimum execution time: 78_000 nanoseconds. + Weight::from_parts(59_517_793, 0u64) .saturating_add(Weight::from_proof_size(13010)) - // Standard Error: 7_610 - .saturating_add(Weight::from_ref_time(2_247_648).saturating_mul(i.into())) - // Standard Error: 38_512 - .saturating_add(Weight::from_ref_time(995_866).saturating_mul(t.into())) - // Standard Error: 38_512 - .saturating_add(Weight::from_ref_time(1_350_730).saturating_mul(d.into())) + // Standard Error: 2_785 + .saturating_add(Weight::from_parts(811_242, 0u64).saturating_mul(i.into())) + // Standard Error: 14_094 + .saturating_add(Weight::from_parts(368_501, 0u64).saturating_mul(t.into())) + // Standard Error: 14_094 + .saturating_add(Weight::from_parts(558_322, 0u64).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(9_u64)) } @@ -183,15 +183,15 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `748` // Estimated: `13010` - // Minimum execution time: 136_387 nanoseconds. - Weight::from_ref_time(113_852_680) + // Minimum execution time: 68_000 nanoseconds. + Weight::from_parts(57_440_322, 0u64) .saturating_add(Weight::from_proof_size(13010)) - // Standard Error: 51_631 - .saturating_add(Weight::from_ref_time(7_179).saturating_mul(i.into())) - // Standard Error: 51_631 - .saturating_add(Weight::from_ref_time(1_432_417).saturating_mul(t.into())) - // Standard Error: 51_631 - .saturating_add(Weight::from_ref_time(1_322_421).saturating_mul(d.into())) + // Standard Error: 6_747 + .saturating_add(Weight::from_parts(15_807, 0u64).saturating_mul(i.into())) + // Standard Error: 6_747 + .saturating_add(Weight::from_parts(550_417, 0u64).saturating_mul(t.into())) + // Standard Error: 6_747 + .saturating_add(Weight::from_parts(614_723, 0u64).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(9_u64)) } @@ -225,13 +225,13 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1264` // Estimated: `13509` - // Minimum execution time: 135_990 nanoseconds. - Weight::from_ref_time(106_104_601) + // Minimum execution time: 69_000 nanoseconds. + Weight::from_parts(59_389_320, 0u64) .saturating_add(Weight::from_proof_size(13509)) - // Standard Error: 24_695 - .saturating_add(Weight::from_ref_time(1_445_542).saturating_mul(t.into())) - // Standard Error: 24_695 - .saturating_add(Weight::from_ref_time(1_687_940).saturating_mul(d.into())) + // Standard Error: 6_733 + .saturating_add(Weight::from_parts(491_559, 0u64).saturating_mul(t.into())) + // Standard Error: 6_733 + .saturating_add(Weight::from_parts(578_572, 0u64).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().writes(9_u64)) } @@ -263,13 +263,13 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1110` // Estimated: `15625` - // Minimum execution time: 144_427 nanoseconds. - Weight::from_ref_time(117_565_761) + // Minimum execution time: 73_000 nanoseconds. + Weight::from_parts(63_982_158, 0u64) .saturating_add(Weight::from_proof_size(15625)) - // Standard Error: 16_155 - .saturating_add(Weight::from_ref_time(1_300_435).saturating_mul(t.into())) - // Standard Error: 16_155 - .saturating_add(Weight::from_ref_time(1_562_037).saturating_mul(d.into())) + // Standard Error: 8_107 + .saturating_add(Weight::from_parts(525_327, 0u64).saturating_mul(t.into())) + // Standard Error: 8_107 + .saturating_add(Weight::from_parts(560_471, 0u64).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().writes(9_u64)) } @@ -302,15 +302,15 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `748` // Estimated: `13010` - // Minimum execution time: 168_327 nanoseconds. - Weight::from_ref_time(122_937_332) + // Minimum execution time: 80_000 nanoseconds. + Weight::from_parts(59_896_184, 0u64) .saturating_add(Weight::from_proof_size(13010)) - // Standard Error: 8_387 - .saturating_add(Weight::from_ref_time(2_461_409).saturating_mul(i.into())) - // Standard Error: 42_446 - .saturating_add(Weight::from_ref_time(873_092).saturating_mul(t.into())) - // Standard Error: 42_446 - .saturating_add(Weight::from_ref_time(1_094_578).saturating_mul(d.into())) + // Standard Error: 2_658 + .saturating_add(Weight::from_parts(894_025, 0u64).saturating_mul(i.into())) + // Standard Error: 13_455 + .saturating_add(Weight::from_parts(385_910, 0u64).saturating_mul(t.into())) + // Standard Error: 13_455 + .saturating_add(Weight::from_parts(511_394, 0u64).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(9_u64)) } @@ -346,13 +346,13 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1199` // Estimated: `18242` - // Minimum execution time: 149_667 nanoseconds. - Weight::from_ref_time(120_402_800) + // Minimum execution time: 77_000 nanoseconds. + Weight::from_parts(68_621_805, 0u64) .saturating_add(Weight::from_proof_size(18242)) - // Standard Error: 15_250 - .saturating_add(Weight::from_ref_time(1_392_186).saturating_mul(t.into())) - // Standard Error: 15_250 - .saturating_add(Weight::from_ref_time(1_674_345).saturating_mul(d.into())) + // Standard Error: 9_555 + .saturating_add(Weight::from_parts(451_308, 0u64).saturating_mul(t.into())) + // Standard Error: 9_555 + .saturating_add(Weight::from_parts(584_347, 0u64).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(9_u64)) .saturating_add(T::DbWeight::get().writes(9_u64)) } @@ -384,13 +384,13 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `748` // Estimated: `13010` - // Minimum execution time: 129_980 nanoseconds. - Weight::from_ref_time(104_728_151) + // Minimum execution time: 64_000 nanoseconds. + Weight::from_parts(55_302_724, 0u64) .saturating_add(Weight::from_proof_size(13010)) - // Standard Error: 22_786 - .saturating_add(Weight::from_ref_time(1_225_902).saturating_mul(t.into())) - // Standard Error: 22_786 - .saturating_add(Weight::from_ref_time(1_547_157).saturating_mul(d.into())) + // Standard Error: 6_262 + .saturating_add(Weight::from_parts(484_740, 0u64).saturating_mul(t.into())) + // Standard Error: 6_262 + .saturating_add(Weight::from_parts(604_151, 0u64).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(9_u64)) } @@ -424,13 +424,13 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `883` // Estimated: `13513` - // Minimum execution time: 135_812 nanoseconds. - Weight::from_ref_time(107_722_679) + // Minimum execution time: 69_000 nanoseconds. + Weight::from_parts(58_178_913, 0u64) .saturating_add(Weight::from_proof_size(13513)) - // Standard Error: 18_958 - .saturating_add(Weight::from_ref_time(1_348_737).saturating_mul(t.into())) - // Standard Error: 18_958 - .saturating_add(Weight::from_ref_time(1_588_174).saturating_mul(d.into())) + // Standard Error: 8_888 + .saturating_add(Weight::from_parts(557_591, 0u64).saturating_mul(t.into())) + // Standard Error: 8_888 + .saturating_add(Weight::from_parts(652_540, 0u64).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().writes(9_u64)) } @@ -464,13 +464,13 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `883` // Estimated: `13513` - // Minimum execution time: 136_463 nanoseconds. - Weight::from_ref_time(109_968_760) + // Minimum execution time: 69_000 nanoseconds. + Weight::from_parts(61_803_001, 0u64) .saturating_add(Weight::from_proof_size(13513)) - // Standard Error: 18_091 - .saturating_add(Weight::from_ref_time(1_294_254).saturating_mul(t.into())) - // Standard Error: 18_091 - .saturating_add(Weight::from_ref_time(1_503_221).saturating_mul(d.into())) + // Standard Error: 10_687 + .saturating_add(Weight::from_parts(470_132, 0u64).saturating_mul(t.into())) + // Standard Error: 10_687 + .saturating_add(Weight::from_parts(526_869, 0u64).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().writes(9_u64)) } @@ -504,13 +504,13 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `883` // Estimated: `13513` - // Minimum execution time: 136_331 nanoseconds. - Weight::from_ref_time(109_448_455) + // Minimum execution time: 70_000 nanoseconds. + Weight::from_parts(58_228_468, 0u64) .saturating_add(Weight::from_proof_size(13513)) - // Standard Error: 15_765 - .saturating_add(Weight::from_ref_time(1_289_154).saturating_mul(t.into())) - // Standard Error: 15_765 - .saturating_add(Weight::from_ref_time(1_530_278).saturating_mul(d.into())) + // Standard Error: 7_609 + .saturating_add(Weight::from_parts(552_985, 0u64).saturating_mul(t.into())) + // Standard Error: 7_609 + .saturating_add(Weight::from_parts(653_778, 0u64).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().writes(9_u64)) } @@ -544,13 +544,13 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `883` // Estimated: `13513` - // Minimum execution time: 136_451 nanoseconds. - Weight::from_ref_time(108_047_954) + // Minimum execution time: 69_000 nanoseconds. + Weight::from_parts(58_814_834, 0u64) .saturating_add(Weight::from_proof_size(13513)) - // Standard Error: 16_349 - .saturating_add(Weight::from_ref_time(1_353_018).saturating_mul(t.into())) - // Standard Error: 16_349 - .saturating_add(Weight::from_ref_time(1_557_467).saturating_mul(d.into())) + // Standard Error: 8_882 + .saturating_add(Weight::from_parts(527_899, 0u64).saturating_mul(t.into())) + // Standard Error: 8_882 + .saturating_add(Weight::from_parts(644_197, 0u64).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().writes(9_u64)) } @@ -583,15 +583,15 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `748` // Estimated: `13010` - // Minimum execution time: 166_931 nanoseconds. - Weight::from_ref_time(116_434_686) + // Minimum execution time: 80_000 nanoseconds. + Weight::from_parts(58_852_788, 0u64) .saturating_add(Weight::from_proof_size(13010)) - // Standard Error: 7_995 - .saturating_add(Weight::from_ref_time(2_220_836).saturating_mul(i.into())) - // Standard Error: 40_462 - .saturating_add(Weight::from_ref_time(1_025_560).saturating_mul(t.into())) - // Standard Error: 40_462 - .saturating_add(Weight::from_ref_time(1_249_053).saturating_mul(d.into())) + // Standard Error: 3_632 + .saturating_add(Weight::from_parts(808_142, 0u64).saturating_mul(i.into())) + // Standard Error: 18_382 + .saturating_add(Weight::from_parts(407_749, 0u64).saturating_mul(t.into())) + // Standard Error: 18_382 + .saturating_add(Weight::from_parts(560_580, 0u64).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(9_u64)) } @@ -625,13 +625,13 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `932` // Estimated: `15599` - // Minimum execution time: 138_288 nanoseconds. - Weight::from_ref_time(111_028_404) + // Minimum execution time: 69_000 nanoseconds. + Weight::from_parts(59_446_189, 0u64) .saturating_add(Weight::from_proof_size(15599)) - // Standard Error: 49_302 - .saturating_add(Weight::from_ref_time(1_433_172).saturating_mul(t.into())) - // Standard Error: 49_302 - .saturating_add(Weight::from_ref_time(1_506_172).saturating_mul(d.into())) + // Standard Error: 7_259 + .saturating_add(Weight::from_parts(503_028, 0u64).saturating_mul(t.into())) + // Standard Error: 7_259 + .saturating_add(Weight::from_parts(628_604, 0u64).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().writes(9_u64)) } @@ -663,13 +663,13 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `748` // Estimated: `13010` - // Minimum execution time: 129_663 nanoseconds. - Weight::from_ref_time(103_995_278) + // Minimum execution time: 65_000 nanoseconds. + Weight::from_parts(55_333_344, 0u64) .saturating_add(Weight::from_proof_size(13010)) - // Standard Error: 31_797 - .saturating_add(Weight::from_ref_time(1_195_120).saturating_mul(t.into())) - // Standard Error: 31_797 - .saturating_add(Weight::from_ref_time(1_599_111).saturating_mul(d.into())) + // Standard Error: 7_222 + .saturating_add(Weight::from_parts(482_890, 0u64).saturating_mul(t.into())) + // Standard Error: 7_222 + .saturating_add(Weight::from_parts(598_165, 0u64).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(9_u64)) } @@ -701,13 +701,13 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `748` // Estimated: `13010` - // Minimum execution time: 129_918 nanoseconds. - Weight::from_ref_time(101_877_833) + // Minimum execution time: 64_000 nanoseconds. + Weight::from_parts(54_809_568, 0u64) .saturating_add(Weight::from_proof_size(13010)) - // Standard Error: 14_762 - .saturating_add(Weight::from_ref_time(1_311_760).saturating_mul(t.into())) - // Standard Error: 14_762 - .saturating_add(Weight::from_ref_time(1_570_803).saturating_mul(d.into())) + // Standard Error: 7_086 + .saturating_add(Weight::from_parts(507_291, 0u64).saturating_mul(t.into())) + // Standard Error: 7_086 + .saturating_add(Weight::from_parts(610_725, 0u64).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(9_u64)) } @@ -739,13 +739,13 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `748` // Estimated: `13010` - // Minimum execution time: 129_749 nanoseconds. - Weight::from_ref_time(102_373_145) + // Minimum execution time: 65_000 nanoseconds. + Weight::from_parts(57_384_236, 0u64) .saturating_add(Weight::from_proof_size(13010)) - // Standard Error: 38_796 - .saturating_add(Weight::from_ref_time(1_388_467).saturating_mul(t.into())) - // Standard Error: 38_796 - .saturating_add(Weight::from_ref_time(1_520_884).saturating_mul(d.into())) + // Standard Error: 8_078 + .saturating_add(Weight::from_parts(428_854, 0u64).saturating_mul(t.into())) + // Standard Error: 8_078 + .saturating_add(Weight::from_parts(524_627, 0u64).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(9_u64)) } @@ -777,13 +777,13 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `748` // Estimated: `13010` - // Minimum execution time: 130_699 nanoseconds. - Weight::from_ref_time(102_879_878) + // Minimum execution time: 64_000 nanoseconds. + Weight::from_parts(55_334_409, 0u64) .saturating_add(Weight::from_proof_size(13010)) - // Standard Error: 15_942 - .saturating_add(Weight::from_ref_time(1_302_797).saturating_mul(t.into())) - // Standard Error: 15_942 - .saturating_add(Weight::from_ref_time(1_524_297).saturating_mul(d.into())) + // Standard Error: 8_498 + .saturating_add(Weight::from_parts(494_912, 0u64).saturating_mul(t.into())) + // Standard Error: 8_498 + .saturating_add(Weight::from_parts(585_206, 0u64).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(9_u64)) } @@ -815,13 +815,13 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `748` // Estimated: `13010` - // Minimum execution time: 128_590 nanoseconds. - Weight::from_ref_time(103_411_521) + // Minimum execution time: 64_000 nanoseconds. + Weight::from_parts(54_953_548, 0u64) .saturating_add(Weight::from_proof_size(13010)) - // Standard Error: 16_618 - .saturating_add(Weight::from_ref_time(1_263_130).saturating_mul(t.into())) - // Standard Error: 16_618 - .saturating_add(Weight::from_ref_time(1_513_734).saturating_mul(d.into())) + // Standard Error: 6_987 + .saturating_add(Weight::from_parts(502_068, 0u64).saturating_mul(t.into())) + // Standard Error: 6_987 + .saturating_add(Weight::from_parts(600_359, 0u64).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(9_u64)) } @@ -853,13 +853,13 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `748` // Estimated: `13010` - // Minimum execution time: 129_283 nanoseconds. - Weight::from_ref_time(100_819_015) + // Minimum execution time: 65_000 nanoseconds. + Weight::from_parts(56_251_146, 0u64) .saturating_add(Weight::from_proof_size(13010)) - // Standard Error: 15_687 - .saturating_add(Weight::from_ref_time(1_362_001).saturating_mul(t.into())) - // Standard Error: 15_687 - .saturating_add(Weight::from_ref_time(1_607_589).saturating_mul(d.into())) + // Standard Error: 7_783 + .saturating_add(Weight::from_parts(468_610, 0u64).saturating_mul(t.into())) + // Standard Error: 7_783 + .saturating_add(Weight::from_parts(552_099, 0u64).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(9_u64)) } @@ -891,13 +891,13 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `748` // Estimated: `13010` - // Minimum execution time: 129_372 nanoseconds. - Weight::from_ref_time(101_649_691) + // Minimum execution time: 64_000 nanoseconds. + Weight::from_parts(55_903_674, 0u64) .saturating_add(Weight::from_proof_size(13010)) - // Standard Error: 17_429 - .saturating_add(Weight::from_ref_time(1_311_031).saturating_mul(t.into())) - // Standard Error: 17_429 - .saturating_add(Weight::from_ref_time(1_580_951).saturating_mul(d.into())) + // Standard Error: 6_091 + .saturating_add(Weight::from_parts(466_097, 0u64).saturating_mul(t.into())) + // Standard Error: 6_091 + .saturating_add(Weight::from_parts(570_766, 0u64).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(9_u64)) } @@ -929,13 +929,13 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `748` // Estimated: `13010` - // Minimum execution time: 129_443 nanoseconds. - Weight::from_ref_time(100_755_605) + // Minimum execution time: 65_000 nanoseconds. + Weight::from_parts(55_648_335, 0u64) .saturating_add(Weight::from_proof_size(13010)) - // Standard Error: 15_869 - .saturating_add(Weight::from_ref_time(1_373_149).saturating_mul(t.into())) - // Standard Error: 15_869 - .saturating_add(Weight::from_ref_time(1_603_975).saturating_mul(d.into())) + // Standard Error: 6_458 + .saturating_add(Weight::from_parts(474_651, 0u64).saturating_mul(t.into())) + // Standard Error: 6_458 + .saturating_add(Weight::from_parts(590_415, 0u64).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(9_u64)) } @@ -968,15 +968,15 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `748` // Estimated: `13010` - // Minimum execution time: 164_554 nanoseconds. - Weight::from_ref_time(116_215_664) + // Minimum execution time: 78_000 nanoseconds. + Weight::from_parts(62_492_139, 0u64) .saturating_add(Weight::from_proof_size(13010)) - // Standard Error: 62_380 - .saturating_add(Weight::from_ref_time(1_030_472).saturating_mul(t.into())) - // Standard Error: 62_380 - .saturating_add(Weight::from_ref_time(1_320_282).saturating_mul(d.into())) - // Standard Error: 12_181 - .saturating_add(Weight::from_ref_time(2_306_996).saturating_mul(i.into())) + // Standard Error: 14_619 + .saturating_add(Weight::from_parts(369_389, 0u64).saturating_mul(t.into())) + // Standard Error: 14_619 + .saturating_add(Weight::from_parts(440_990, 0u64).saturating_mul(d.into())) + // Standard Error: 2_854 + .saturating_add(Weight::from_parts(834_251, 0u64).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(9_u64)) } @@ -985,72 +985,72 @@ impl WeightInfo for SubstrateWeight { // Default implementation for tests impl WeightInfo for () { fn create_proposal_signal(i: u32, t: u32, d: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn create_proposal_runtime_upgrade(i: u32, t: u32, d: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn create_proposal_funding_request(i: u32, t: u32, d: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn create_proposal_set_max_validator_count(t: u32, d: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn create_proposal_veto_proposal(t: u32, d: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn create_proposal_create_working_group_lead_opening(i: u32, t: u32, d: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn create_proposal_fill_working_group_lead_opening(t: u32, d: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn create_proposal_update_working_group_budget(t: u32, d: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn create_proposal_decrease_working_group_lead_stake(t: u32, d: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn create_proposal_slash_working_group_lead(t: u32, d: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn create_proposal_set_working_group_lead_reward(t: u32, d: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn create_proposal_terminate_working_group_lead(t: u32, d: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn create_proposal_amend_constitution(i: u32, t: u32, d: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn create_proposal_cancel_working_group_lead_opening(t: u32, d: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn create_proposal_set_membership_price(t: u32, d: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn create_proposal_set_council_budget_increment(t: u32, d: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn create_proposal_set_councilor_reward(t: u32, d: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn create_proposal_set_initial_invitation_balance(t: u32, d: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn create_proposal_set_initial_invitation_count(t: u32, d: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn create_proposal_set_membership_lead_invitation_quota(t: u32, d: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn create_proposal_set_referral_cut(t: u32, d: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn create_proposal_update_global_nft_limit(t: u32, d: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn create_proposal_update_channel_payouts(t: u32, d: u32, i: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } } diff --git a/runtime-modules/proposals/discussion/src/weights.rs b/runtime-modules/proposals/discussion/src/weights.rs index 6104b465b2..70aed5b7ab 100644 --- a/runtime-modules/proposals/discussion/src/weights.rs +++ b/runtime-modules/proposals/discussion/src/weights.rs @@ -18,11 +18,11 @@ //! Autogenerated weights for proposals_discussion //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-27, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("prod-test"), DB CACHE: 1024 // Executed Command: -// ./scripts/../target/release/joystream-node +// ./../target/release/joystream-node // benchmark // pallet // --pallet=proposals_discussion @@ -31,8 +31,8 @@ // --steps=50 // --repeat=20 // --execution=wasm -// --template=./scripts/../devops/joystream-pallet-weight-template.hbs -// --output=./scripts/../runtime-modules/proposals/discussion/src/weights.rs +// --template=./../devops/joystream-pallet-weight-template.hbs +// --output=./../runtime-modules/proposals/discussion/src/weights.rs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -70,11 +70,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `2120` // Estimated: `11802` - // Minimum execution time: 107_564 nanoseconds. - Weight::from_ref_time(109_669_013) + // Minimum execution time: 61_000 nanoseconds. + Weight::from_parts(61_923_658, 0u64) .saturating_add(Weight::from_proof_size(11802)) - // Standard Error: 2_367 - .saturating_add(Weight::from_ref_time(1_287_875).saturating_mul(j.into())) + // Standard Error: 2_659 + .saturating_add(Weight::from_parts(487_769, 0u64).saturating_mul(j.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } @@ -89,11 +89,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `626` // Estimated: `7857` - // Minimum execution time: 42_043 nanoseconds. - Weight::from_ref_time(42_212_217) + // Minimum execution time: 22_000 nanoseconds. + Weight::from_parts(23_071_268, 0u64) .saturating_add(Weight::from_proof_size(7857)) - // Standard Error: 2_775 - .saturating_add(Weight::from_ref_time(1_266_074).saturating_mul(j.into())) + // Standard Error: 810 + .saturating_add(Weight::from_parts(472_429, 0u64).saturating_mul(j.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -109,8 +109,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `932` // Estimated: `13063` - // Minimum execution time: 69_322 nanoseconds. - Weight::from_ref_time(70_333_000) + // Minimum execution time: 38_000 nanoseconds. + Weight::from_parts(39_000_000, 0u64) .saturating_add(Weight::from_proof_size(13063)) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -126,11 +126,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1182 + i * (165 ±0)` // Estimated: `3493 + i * (2600 ±0)` - // Minimum execution time: 50_747 nanoseconds. - Weight::from_ref_time(49_034_143) + // Minimum execution time: 27_000 nanoseconds. + Weight::from_parts(25_527_774, 0u64) .saturating_add(Weight::from_proof_size(3493)) - // Standard Error: 14_801 - .saturating_add(Weight::from_ref_time(4_542_454).saturating_mul(i.into())) + // Standard Error: 9_195 + .saturating_add(Weight::from_parts(2_946_729, 0u64).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -141,15 +141,15 @@ impl WeightInfo for SubstrateWeight { // Default implementation for tests impl WeightInfo for () { fn add_post(j: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn update_post(j: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn delete_post() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn change_thread_mode(i: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } } diff --git a/runtime-modules/proposals/engine/src/weights.rs b/runtime-modules/proposals/engine/src/weights.rs index b3cdde2d04..8399a3fb39 100644 --- a/runtime-modules/proposals/engine/src/weights.rs +++ b/runtime-modules/proposals/engine/src/weights.rs @@ -18,11 +18,11 @@ //! Autogenerated weights for proposals_engine //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-27, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("prod-test"), DB CACHE: 1024 // Executed Command: -// ./scripts/../target/release/joystream-node +// ./../target/release/joystream-node // benchmark // pallet // --pallet=proposals_engine @@ -31,8 +31,8 @@ // --steps=50 // --repeat=20 // --execution=wasm -// --template=./scripts/../devops/joystream-pallet-weight-template.hbs -// --output=./scripts/../runtime-modules/proposals/engine/src/weights.rs +// --template=./../devops/joystream-pallet-weight-template.hbs +// --output=./../runtime-modules/proposals/engine/src/weights.rs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -72,11 +72,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1432` // Estimated: `8555` - // Minimum execution time: 53_399 nanoseconds. - Weight::from_ref_time(54_184_554) + // Minimum execution time: 28_000 nanoseconds. + Weight::from_parts(29_658_228, 0u64) .saturating_add(Weight::from_proof_size(8555)) - // Standard Error: 1_612 - .saturating_add(Weight::from_ref_time(1_093_687).saturating_mul(i.into())) + // Standard Error: 1_410 + .saturating_add(Weight::from_parts(422_047, 0u64).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -100,8 +100,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `976` // Estimated: `12091` - // Minimum execution time: 114_711 nanoseconds. - Weight::from_ref_time(115_693_000) + // Minimum execution time: 65_000 nanoseconds. + Weight::from_parts(65_000_000, 0u64) .saturating_add(Weight::from_proof_size(12091)) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(7_u64)) @@ -124,8 +124,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `691` // Estimated: `9491` - // Minimum execution time: 64_722 nanoseconds. - Weight::from_ref_time(65_340_000) + // Minimum execution time: 34_000 nanoseconds. + Weight::from_parts(35_000_000, 0u64) .saturating_add(Weight::from_proof_size(9491)) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(7_u64)) @@ -138,8 +138,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `612` // Estimated: `5215` - // Minimum execution time: 31_309 nanoseconds. - Weight::from_ref_time(31_666_000) + // Minimum execution time: 16_000 nanoseconds. + Weight::from_parts(17_000_000, 0u64) .saturating_add(Weight::from_proof_size(5215)) .saturating_add(T::DbWeight::get().reads(2_u64)) } @@ -166,11 +166,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1011 + i * (556 ±0)` // Estimated: `3934 + i * (3159739 ±0)` - // Minimum execution time: 98_625 nanoseconds. - Weight::from_ref_time(39_169_918) + // Minimum execution time: 55_000 nanoseconds. + Weight::from_parts(16_636_477, 0u64) .saturating_add(Weight::from_proof_size(3934)) - // Standard Error: 62_379 - .saturating_add(Weight::from_ref_time(60_858_947).saturating_mul(i.into())) + // Standard Error: 39_540 + .saturating_add(Weight::from_parts(39_931_688, 0u64).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().reads((5_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(2_u64)) @@ -194,11 +194,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `165 + i * (252 ±0)` // Estimated: `3114 + i * (3153362 ±0)` - // Minimum execution time: 52_105 nanoseconds. - Weight::from_ref_time(25_363_129) + // Minimum execution time: 28_000 nanoseconds. + Weight::from_parts(8_021_374, 0u64) .saturating_add(Weight::from_proof_size(3114)) - // Standard Error: 37_086 - .saturating_add(Weight::from_ref_time(31_036_076).saturating_mul(i.into())) + // Standard Error: 23_933 + .saturating_add(Weight::from_parts(21_501_060, 0u64).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(2_u64)) @@ -214,11 +214,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `844 + i * (172 ±0)` // Estimated: `3435 + i * (2615 ±0)` - // Minimum execution time: 48_072 nanoseconds. - Weight::from_ref_time(28_775_215) + // Minimum execution time: 27_000 nanoseconds. + Weight::from_parts(13_739_505, 0u64) .saturating_add(Weight::from_proof_size(3435)) - // Standard Error: 29_537 - .saturating_add(Weight::from_ref_time(21_185_616).saturating_mul(i.into())) + // Standard Error: 16_043 + .saturating_add(Weight::from_parts(15_009_829, 0u64).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) @@ -247,11 +247,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1024 + i * (591 ±0)` // Estimated: `3934 + i * (16552 ±0)` - // Minimum execution time: 122_622 nanoseconds. - Weight::from_ref_time(35_619_212) + // Minimum execution time: 72_000 nanoseconds. + Weight::from_parts(15_934_067, 0u64) .saturating_add(Weight::from_proof_size(3934)) - // Standard Error: 83_105 - .saturating_add(Weight::from_ref_time(85_539_483).saturating_mul(i.into())) + // Standard Error: 34_225 + .saturating_add(Weight::from_parts(56_520_951, 0u64).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().reads((6_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(2_u64)) @@ -281,11 +281,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1024 + i * (591 ±0)` // Estimated: `3934 + i * (16552 ±0)` - // Minimum execution time: 112_313 nanoseconds. - Weight::from_ref_time(35_017_044) + // Minimum execution time: 65_000 nanoseconds. + Weight::from_parts(16_687_064, 0u64) .saturating_add(Weight::from_proof_size(3934)) - // Standard Error: 80_909 - .saturating_add(Weight::from_ref_time(75_360_488).saturating_mul(i.into())) + // Standard Error: 28_943 + .saturating_add(Weight::from_parts(49_543_406, 0u64).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().reads((6_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(2_u64)) @@ -313,11 +313,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `374 + i * (591 ±0)` // Estimated: `3114 + i * (16552 ±0)` - // Minimum execution time: 73_108 nanoseconds. - Weight::from_ref_time(25_512_617) + // Minimum execution time: 40_000 nanoseconds. + Weight::from_parts(10_273_766, 0u64) .saturating_add(Weight::from_proof_size(3114)) - // Standard Error: 46_668 - .saturating_add(Weight::from_ref_time(49_452_910).saturating_mul(i.into())) + // Standard Error: 18_389 + .saturating_add(Weight::from_parts(31_441_141, 0u64).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().reads((6_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(2_u64)) @@ -329,33 +329,33 @@ impl WeightInfo for SubstrateWeight { // Default implementation for tests impl WeightInfo for () { fn vote(i: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn cancel_proposal() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn veto_proposal() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn proposer_remark() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn on_initialize_immediate_execution_decode_fails(i: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn on_initialize_pending_execution_decode_fails(i: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn on_initialize_approved_pending_constitutionality(i: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn on_initialize_rejected(i: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn on_initialize_slashed(i: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn cancel_active_and_pending_proposals(i: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } } diff --git a/runtime-modules/referendum/src/weights.rs b/runtime-modules/referendum/src/weights.rs index d574ac2ff9..bdbb67acae 100644 --- a/runtime-modules/referendum/src/weights.rs +++ b/runtime-modules/referendum/src/weights.rs @@ -18,11 +18,11 @@ //! Autogenerated weights for referendum //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-27, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("prod-test"), DB CACHE: 1024 // Executed Command: -// ./scripts/../target/release/joystream-node +// ./../target/release/joystream-node // benchmark // pallet // --pallet=referendum @@ -31,8 +31,8 @@ // --steps=50 // --repeat=20 // --execution=wasm -// --template=./scripts/../devops/joystream-pallet-weight-template.hbs -// --output=./scripts/../runtime-modules/referendum/src/weights.rs +// --template=./../devops/joystream-pallet-weight-template.hbs +// --output=./../runtime-modules/referendum/src/weights.rs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -69,11 +69,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `474 + i * (58 ±0)` // Estimated: `1092` - // Minimum execution time: 30_360 nanoseconds. - Weight::from_ref_time(31_158_714) + // Minimum execution time: 16_000 nanoseconds. + Weight::from_parts(16_992_265, 0u64) .saturating_add(Weight::from_proof_size(1092)) - // Standard Error: 16_421 - .saturating_add(Weight::from_ref_time(643_219).saturating_mul(i.into())) + // Standard Error: 28_160 + .saturating_add(Weight::from_parts(407_182, 0u64).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -83,8 +83,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `128` // Estimated: `589` - // Minimum execution time: 15_281 nanoseconds. - Weight::from_ref_time(15_658_000) + // Minimum execution time: 8_000 nanoseconds. + Weight::from_parts(9_000_000, 0u64) .saturating_add(Weight::from_proof_size(589)) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -103,8 +103,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `323` // Estimated: `12077` - // Minimum execution time: 49_579 nanoseconds. - Weight::from_ref_time(50_307_000) + // Minimum execution time: 27_000 nanoseconds. + Weight::from_parts(29_000_000, 0u64) .saturating_add(Weight::from_proof_size(12077)) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -122,11 +122,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `753 + i * (133 ±0)` // Estimated: `6316` - // Minimum execution time: 51_454 nanoseconds. - Weight::from_ref_time(53_232_130) + // Minimum execution time: 28_000 nanoseconds. + Weight::from_parts(29_009_116, 0u64) .saturating_add(Weight::from_proof_size(6316)) - // Standard Error: 34_348 - .saturating_add(Weight::from_ref_time(1_682_771).saturating_mul(i.into())) + // Standard Error: 12_288 + .saturating_add(Weight::from_parts(1_009_392, 0u64).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -143,11 +143,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `886 + i * (93 ±0)` // Estimated: `6316` - // Minimum execution time: 52_998 nanoseconds. - Weight::from_ref_time(54_295_859) + // Minimum execution time: 29_000 nanoseconds. + Weight::from_parts(30_015_193, 0u64) .saturating_add(Weight::from_proof_size(6316)) - // Standard Error: 26_588 - .saturating_add(Weight::from_ref_time(1_037_309).saturating_mul(i.into())) + // Standard Error: 28_926 + .saturating_add(Weight::from_parts(332_320, 0u64).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -164,11 +164,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `886 + i * (93 ±0)` // Estimated: `6316` - // Minimum execution time: 53_329 nanoseconds. - Weight::from_ref_time(54_740_456) + // Minimum execution time: 28_000 nanoseconds. + Weight::from_parts(29_943_093, 0u64) .saturating_add(Weight::from_proof_size(6316)) - // Standard Error: 33_066 - .saturating_add(Weight::from_ref_time(805_829).saturating_mul(i.into())) + // Standard Error: 34_151 + .saturating_add(Weight::from_parts(567_127, 0u64).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -185,11 +185,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `849 + i * (96 ±0)` // Estimated: `6316` - // Minimum execution time: 51_714 nanoseconds. - Weight::from_ref_time(52_917_166) + // Minimum execution time: 27_000 nanoseconds. + Weight::from_parts(29_038_121, 0u64) .saturating_add(Weight::from_proof_size(6316)) - // Standard Error: 29_527 - .saturating_add(Weight::from_ref_time(1_864_048).saturating_mul(i.into())) + // Standard Error: 29_134 + .saturating_add(Weight::from_parts(1_157_458, 0u64).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -205,8 +205,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `846` // Estimated: `9468` - // Minimum execution time: 53_358 nanoseconds. - Weight::from_ref_time(53_945_000) + // Minimum execution time: 29_000 nanoseconds. + Weight::from_parts(29_000_000, 0u64) .saturating_add(Weight::from_proof_size(9468)) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -217,8 +217,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `72` // Estimated: `2523` - // Minimum execution time: 18_151 nanoseconds. - Weight::from_ref_time(18_848_000) + // Minimum execution time: 8_000 nanoseconds. + Weight::from_parts(9_000_000, 0u64) .saturating_add(Weight::from_proof_size(2523)) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -228,30 +228,30 @@ impl WeightInfo for SubstrateWeight { // Default implementation for tests impl WeightInfo for () { fn on_initialize_revealing(i: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn on_initialize_voting() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn vote() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn reveal_vote_space_for_new_winner(i: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn reveal_vote_space_not_in_winners(i: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn reveal_vote_space_replace_last_winner(i: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn reveal_vote_already_existing(i: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn release_vote_stake() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn opt_out_of_voting() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } } diff --git a/runtime-modules/storage/src/weights.rs b/runtime-modules/storage/src/weights.rs index 2e80954ffc..640ae3246b 100644 --- a/runtime-modules/storage/src/weights.rs +++ b/runtime-modules/storage/src/weights.rs @@ -18,11 +18,11 @@ //! Autogenerated weights for storage //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-27, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("prod-test"), DB CACHE: 1024 // Executed Command: -// ./scripts/../target/release/joystream-node +// ./../target/release/joystream-node // benchmark // pallet // --pallet=storage @@ -31,8 +31,8 @@ // --steps=50 // --repeat=20 // --execution=wasm -// --template=./scripts/../devops/joystream-pallet-weight-template.hbs -// --output=./scripts/../runtime-modules/storage/src/weights.rs +// --template=./../devops/joystream-pallet-weight-template.hbs +// --output=./../runtime-modules/storage/src/weights.rs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -94,8 +94,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `698` // Estimated: `5734` - // Minimum execution time: 36_148 nanoseconds. - Weight::from_ref_time(37_145_000) + // Minimum execution time: 19_000 nanoseconds. + Weight::from_parts(20_000_000, 0u64) .saturating_add(Weight::from_proof_size(5734)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -110,8 +110,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `437` // Estimated: `3153` - // Minimum execution time: 27_706 nanoseconds. - Weight::from_ref_time(28_400_000) + // Minimum execution time: 14_000 nanoseconds. + Weight::from_parts(15_000_000, 0u64) .saturating_add(Weight::from_proof_size(3153)) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -126,8 +126,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `437` // Estimated: `3153` - // Minimum execution time: 28_265 nanoseconds. - Weight::from_ref_time(28_647_000) + // Minimum execution time: 15_000 nanoseconds. + Weight::from_parts(15_000_000, 0u64) .saturating_add(Weight::from_proof_size(3153)) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -142,8 +142,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `437` // Estimated: `3153` - // Minimum execution time: 27_905 nanoseconds. - Weight::from_ref_time(28_418_000) + // Minimum execution time: 15_000 nanoseconds. + Weight::from_parts(15_000_000, 0u64) .saturating_add(Weight::from_proof_size(3153)) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -160,8 +160,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `437` // Estimated: `3153` - // Minimum execution time: 29_650 nanoseconds. - Weight::from_ref_time(30_113_000) + // Minimum execution time: 15_000 nanoseconds. + Weight::from_parts(16_000_000, 0u64) .saturating_add(Weight::from_proof_size(3153)) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) @@ -176,8 +176,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `437` // Estimated: `3153` - // Minimum execution time: 28_311 nanoseconds. - Weight::from_ref_time(28_751_000) + // Minimum execution time: 15_000 nanoseconds. + Weight::from_parts(15_000_000, 0u64) .saturating_add(Weight::from_proof_size(3153)) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -192,8 +192,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `550` // Estimated: `6262` - // Minimum execution time: 34_526 nanoseconds. - Weight::from_ref_time(35_285_000) + // Minimum execution time: 18_000 nanoseconds. + Weight::from_parts(19_000_000, 0u64) .saturating_add(Weight::from_proof_size(6262)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -212,13 +212,13 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `577` // Estimated: `3656 + i * (2538 ±0) + j * (2538 ±0)` - // Minimum execution time: 2_277_081 nanoseconds. - Weight::from_ref_time(37_100_067) + // Minimum execution time: 1_600_000 nanoseconds. + Weight::from_parts(27_880_922, 0u64) .saturating_add(Weight::from_proof_size(3656)) - // Standard Error: 8_106 - .saturating_add(Weight::from_ref_time(4_840_366).saturating_mul(i.into())) - // Standard Error: 8_106 - .saturating_add(Weight::from_ref_time(2_238_599).saturating_mul(j.into())) + // Standard Error: 2_987 + .saturating_add(Weight::from_parts(3_355_179, 0u64).saturating_mul(i.into())) + // Standard Error: 2_987 + .saturating_add(Weight::from_parts(1_556_452, 0u64).saturating_mul(j.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(j.into()))) @@ -243,8 +243,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `553` // Estimated: `4662` - // Minimum execution time: 38_956 nanoseconds. - Weight::from_ref_time(39_840_000) + // Minimum execution time: 21_000 nanoseconds. + Weight::from_parts(21_000_000, 0u64) .saturating_add(Weight::from_proof_size(4662)) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) @@ -265,13 +265,13 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `698 + i * (105 ±0) + j * (113 ±0)` // Estimated: `7091 + i * (2581 ±0) + j * (2581 ±0)` - // Minimum execution time: 276_487 nanoseconds. - Weight::from_ref_time(57_000_798) + // Minimum execution time: 180_000 nanoseconds. + Weight::from_parts(26_029_121, 0u64) .saturating_add(Weight::from_proof_size(7091)) - // Standard Error: 28_853 - .saturating_add(Weight::from_ref_time(17_356_577).saturating_mul(i.into())) - // Standard Error: 28_853 - .saturating_add(Weight::from_ref_time(15_858_971).saturating_mul(j.into())) + // Standard Error: 14_986 + .saturating_add(Weight::from_parts(12_153_893, 0u64).saturating_mul(i.into())) + // Standard Error: 14_986 + .saturating_add(Weight::from_parts(11_021_094, 0u64).saturating_mul(j.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(j.into()))) @@ -291,8 +291,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `743` // Estimated: `5734` - // Minimum execution time: 39_376 nanoseconds. - Weight::from_ref_time(40_082_000) + // Minimum execution time: 21_000 nanoseconds. + Weight::from_parts(22_000_000, 0u64) .saturating_add(Weight::from_proof_size(5734)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -307,8 +307,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `896` // Estimated: `8384` - // Minimum execution time: 43_209 nanoseconds. - Weight::from_ref_time(44_193_000) + // Minimum execution time: 23_000 nanoseconds. + Weight::from_parts(24_000_000, 0u64) .saturating_add(Weight::from_proof_size(8384)) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -323,8 +323,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `776` // Estimated: `5734` - // Minimum execution time: 39_169 nanoseconds. - Weight::from_ref_time(40_197_000) + // Minimum execution time: 21_000 nanoseconds. + Weight::from_parts(22_000_000, 0u64) .saturating_add(Weight::from_proof_size(5734)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -339,8 +339,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `698` // Estimated: `5734` - // Minimum execution time: 37_308 nanoseconds. - Weight::from_ref_time(38_210_000) + // Minimum execution time: 20_000 nanoseconds. + Weight::from_parts(21_000_000, 0u64) .saturating_add(Weight::from_proof_size(5734)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -359,8 +359,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `756` // Estimated: `6740` - // Minimum execution time: 42_513 nanoseconds. - Weight::from_ref_time(43_529_000) + // Minimum execution time: 23_000 nanoseconds. + Weight::from_parts(24_000_000, 0u64) .saturating_add(Weight::from_proof_size(6740)) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -373,8 +373,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `743` // Estimated: `5231` - // Minimum execution time: 37_978 nanoseconds. - Weight::from_ref_time(39_368_000) + // Minimum execution time: 20_000 nanoseconds. + Weight::from_parts(21_000_000, 0u64) .saturating_add(Weight::from_proof_size(5231)) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -388,11 +388,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `776` // Estimated: `5231` - // Minimum execution time: 37_127 nanoseconds. - Weight::from_ref_time(27_402_643) + // Minimum execution time: 20_000 nanoseconds. + Weight::from_parts(17_142_566, 0u64) .saturating_add(Weight::from_proof_size(5231)) - // Standard Error: 1_443 - .saturating_add(Weight::from_ref_time(1_301_891).saturating_mul(i.into())) + // Standard Error: 1_570 + .saturating_add(Weight::from_parts(485_898, 0u64).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) } // Storage: Storage StorageBucketById (r:1 w:0) @@ -406,11 +406,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `451 + i * (136 ±0)` // Estimated: `6020 + i * (2630 ±0)` - // Minimum execution time: 46_873 nanoseconds. - Weight::from_ref_time(47_267_000) + // Minimum execution time: 25_000 nanoseconds. + Weight::from_parts(25_000_000, 0u64) .saturating_add(Weight::from_proof_size(6020)) - // Standard Error: 43_587 - .saturating_add(Weight::from_ref_time(13_671_351).saturating_mul(i.into())) + // Standard Error: 28_150 + .saturating_add(Weight::from_parts(9_336_803, 0u64).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) @@ -430,8 +430,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `517` // Estimated: `4159` - // Minimum execution time: 37_172 nanoseconds. - Weight::from_ref_time(37_880_000) + // Minimum execution time: 20_000 nanoseconds. + Weight::from_parts(21_000_000, 0u64) .saturating_add(Weight::from_proof_size(4159)) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -452,8 +452,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `628` // Estimated: `15236` - // Minimum execution time: 51_929 nanoseconds. - Weight::from_ref_time(53_120_000) + // Minimum execution time: 27_000 nanoseconds. + Weight::from_parts(28_000_000, 0u64) .saturating_add(Weight::from_proof_size(15236)) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) @@ -470,8 +470,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `609` // Estimated: `5660` - // Minimum execution time: 41_988 nanoseconds. - Weight::from_ref_time(42_624_000) + // Minimum execution time: 22_000 nanoseconds. + Weight::from_parts(22_000_000, 0u64) .saturating_add(Weight::from_proof_size(5660)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) @@ -486,8 +486,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `671` // Estimated: `6008` - // Minimum execution time: 41_267 nanoseconds. - Weight::from_ref_time(42_117_000) + // Minimum execution time: 22_000 nanoseconds. + Weight::from_parts(22_000_000, 0u64) .saturating_add(Weight::from_proof_size(6008)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -502,8 +502,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `671` // Estimated: `6008` - // Minimum execution time: 40_103 nanoseconds. - Weight::from_ref_time(41_953_000) + // Minimum execution time: 21_000 nanoseconds. + Weight::from_parts(22_000_000, 0u64) .saturating_add(Weight::from_proof_size(6008)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -526,13 +526,13 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `745 + i * (41 ±0) + j * (57 ±0)` // Estimated: `9598 + i * (2855 ±0) + j * (2855 ±0)` - // Minimum execution time: 638_008 nanoseconds. - Weight::from_ref_time(53_350_370) + // Minimum execution time: 439_000 nanoseconds. + Weight::from_parts(17_768_969, 0u64) .saturating_add(Weight::from_proof_size(9598)) - // Standard Error: 27_112 - .saturating_add(Weight::from_ref_time(11_512_011).saturating_mul(i.into())) - // Standard Error: 27_112 - .saturating_add(Weight::from_ref_time(11_805_404).saturating_mul(j.into())) + // Standard Error: 9_587 + .saturating_add(Weight::from_parts(8_208_006, 0u64).saturating_mul(i.into())) + // Standard Error: 9_587 + .saturating_add(Weight::from_parts(8_325_057, 0u64).saturating_mul(j.into())) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(j.into()))) @@ -552,8 +552,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `404` // Estimated: `3153` - // Minimum execution time: 27_786 nanoseconds. - Weight::from_ref_time(28_324_000) + // Minimum execution time: 14_000 nanoseconds. + Weight::from_parts(15_000_000, 0u64) .saturating_add(Weight::from_proof_size(3153)) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -568,8 +568,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `671` // Estimated: `6008` - // Minimum execution time: 40_952 nanoseconds. - Weight::from_ref_time(41_627_000) + // Minimum execution time: 22_000 nanoseconds. + Weight::from_parts(22_000_000, 0u64) .saturating_add(Weight::from_proof_size(6008)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -587,11 +587,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `577 + i * (36 ±0)` // Estimated: `6262 + i * (2507 ±0)` - // Minimum execution time: 47_344 nanoseconds. - Weight::from_ref_time(38_574_738) + // Minimum execution time: 25_000 nanoseconds. + Weight::from_parts(19_333_511, 0u64) .saturating_add(Weight::from_proof_size(6262)) - // Standard Error: 16_162 - .saturating_add(Weight::from_ref_time(5_223_673).saturating_mul(i.into())) + // Standard Error: 12_699 + .saturating_add(Weight::from_parts(3_459_325, 0u64).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -607,8 +607,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `869` // Estimated: `8658` - // Minimum execution time: 47_617 nanoseconds. - Weight::from_ref_time(48_650_000) + // Minimum execution time: 25_000 nanoseconds. + Weight::from_parts(26_000_000, 0u64) .saturating_add(Weight::from_proof_size(8658)) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -623,8 +623,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `716` // Estimated: `6008` - // Minimum execution time: 43_921 nanoseconds. - Weight::from_ref_time(44_471_000) + // Minimum execution time: 23_000 nanoseconds. + Weight::from_parts(24_000_000, 0u64) .saturating_add(Weight::from_proof_size(6008)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -639,8 +639,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `716` // Estimated: `6008` - // Minimum execution time: 43_723 nanoseconds. - Weight::from_ref_time(44_626_000) + // Minimum execution time: 23_000 nanoseconds. + Weight::from_parts(24_000_000, 0u64) .saturating_add(Weight::from_proof_size(6008)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -656,11 +656,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `609` // Estimated: `5660` - // Minimum execution time: 37_169 nanoseconds. - Weight::from_ref_time(29_571_585) + // Minimum execution time: 19_000 nanoseconds. + Weight::from_parts(17_454_178, 0u64) .saturating_add(Weight::from_proof_size(5660)) - // Standard Error: 2_108 - .saturating_add(Weight::from_ref_time(1_304_414).saturating_mul(i.into())) + // Standard Error: 1_521 + .saturating_add(Weight::from_parts(485_335, 0u64).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) } // Storage: Instance9WorkingGroup WorkerById (r:1 w:0) @@ -671,8 +671,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `716` // Estimated: `5505` - // Minimum execution time: 43_061 nanoseconds. - Weight::from_ref_time(43_643_000) + // Minimum execution time: 23_000 nanoseconds. + Weight::from_parts(24_000_000, 0u64) .saturating_add(Weight::from_proof_size(5505)) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -686,11 +686,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `716` // Estimated: `5505` - // Minimum execution time: 40_447 nanoseconds. - Weight::from_ref_time(30_665_028) + // Minimum execution time: 21_000 nanoseconds. + Weight::from_parts(19_201_498, 0u64) .saturating_add(Weight::from_proof_size(5505)) - // Standard Error: 4_420 - .saturating_add(Weight::from_ref_time(1_307_577).saturating_mul(i.into())) + // Standard Error: 1_473 + .saturating_add(Weight::from_parts(485_033, 0u64).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) } // Storage: Instance2WorkingGroup WorkerById (r:1 w:0) @@ -702,11 +702,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `776` // Estimated: `5231` - // Minimum execution time: 36_997 nanoseconds. - Weight::from_ref_time(27_384_630) + // Minimum execution time: 20_000 nanoseconds. + Weight::from_parts(20_121_980, 0u64) .saturating_add(Weight::from_proof_size(5231)) - // Standard Error: 1_163 - .saturating_add(Weight::from_ref_time(1_294_171).saturating_mul(i.into())) + // Standard Error: 1_337 + .saturating_add(Weight::from_parts(480_096, 0u64).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) } // Storage: Instance9WorkingGroup WorkerById (r:1 w:0) @@ -718,11 +718,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `716` // Estimated: `5505` - // Minimum execution time: 40_420 nanoseconds. - Weight::from_ref_time(33_242_070) + // Minimum execution time: 21_000 nanoseconds. + Weight::from_parts(17_958_689, 0u64) .saturating_add(Weight::from_proof_size(5505)) - // Standard Error: 1_473 - .saturating_add(Weight::from_ref_time(1_290_246).saturating_mul(i.into())) + // Standard Error: 2_027 + .saturating_add(Weight::from_parts(492_062, 0u64).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) } } @@ -730,108 +730,108 @@ impl WeightInfo for SubstrateWeight { // Default implementation for tests impl WeightInfo for () { fn delete_storage_bucket() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn update_uploading_blocked_status() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn update_data_size_fee() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn update_storage_buckets_per_bag_limit() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn update_storage_buckets_voucher_max_limits() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn update_data_object_state_bloat_bond() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn update_number_of_storage_buckets_in_dynamic_bag_creation_policy() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn update_blacklist(i: u32, j: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn create_storage_bucket() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn update_storage_buckets_for_bag(i: u32, j: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn cancel_storage_bucket_operator_invite() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn invite_storage_bucket_operator() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn remove_storage_bucket_operator() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn update_storage_bucket_status() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn set_storage_bucket_voucher_limits() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn accept_storage_bucket_invitation() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn set_storage_operator_metadata(i: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn accept_pending_data_objects(i: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn create_distribution_bucket_family() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn delete_distribution_bucket_family() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn create_distribution_bucket() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn update_distribution_bucket_status() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn delete_distribution_bucket() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn update_distribution_buckets_for_bag(i: u32, j: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn update_distribution_buckets_per_bag_limit() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn update_distribution_bucket_mode() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn update_families_in_dynamic_bag_creation_policy(i: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn invite_distribution_bucket_operator() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn cancel_distribution_bucket_operator_invite() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn remove_distribution_bucket_operator() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn set_distribution_bucket_family_metadata(i: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn accept_distribution_bucket_invitation() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn set_distribution_operator_metadata(i: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn storage_operator_remark(i: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn distribution_operator_remark(i: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } } diff --git a/runtime-modules/utility/src/weights.rs b/runtime-modules/utility/src/weights.rs index 9a742993b9..3db3a49958 100644 --- a/runtime-modules/utility/src/weights.rs +++ b/runtime-modules/utility/src/weights.rs @@ -18,11 +18,11 @@ //! Autogenerated weights for joystream_utility //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-27, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("prod-test"), DB CACHE: 1024 // Executed Command: -// ./scripts/../target/release/joystream-node +// ./../target/release/joystream-node // benchmark // pallet // --pallet=joystream_utility @@ -31,8 +31,8 @@ // --steps=50 // --repeat=20 // --execution=wasm -// --template=./scripts/../devops/joystream-pallet-weight-template.hbs -// --output=./scripts/../runtime-modules/utility/src/weights.rs +// --template=./../devops/joystream-pallet-weight-template.hbs +// --output=./../runtime-modules/utility/src/weights.rs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -58,11 +58,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 13_973 nanoseconds. - Weight::from_ref_time(12_690_102) + // Minimum execution time: 7_000 nanoseconds. + Weight::from_parts(6_914_550, 0u64) .saturating_add(Weight::from_proof_size(0)) - // Standard Error: 1_027 - .saturating_add(Weight::from_ref_time(1_202_086).saturating_mul(i.into())) + // Standard Error: 802 + .saturating_add(Weight::from_parts(478_477, 0u64).saturating_mul(i.into())) } // Storage: Instance1WorkingGroup Budget (r:1 w:1) // Proof: Instance1WorkingGroup Budget (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) @@ -72,8 +72,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `291` // Estimated: `1022` - // Minimum execution time: 33_055 nanoseconds. - Weight::from_ref_time(33_816_000) + // Minimum execution time: 18_000 nanoseconds. + Weight::from_parts(18_000_000, 0u64) .saturating_add(Weight::from_proof_size(1022)) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) @@ -86,8 +86,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `291` // Estimated: `1022` - // Minimum execution time: 32_556 nanoseconds. - Weight::from_ref_time(33_611_000) + // Minimum execution time: 18_000 nanoseconds. + Weight::from_parts(18_000_000, 0u64) .saturating_add(Weight::from_proof_size(1022)) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) @@ -98,8 +98,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `133` // Estimated: `2603` - // Minimum execution time: 38_459 nanoseconds. - Weight::from_ref_time(39_296_000) + // Minimum execution time: 21_000 nanoseconds. + Weight::from_parts(22_000_000, 0u64) .saturating_add(Weight::from_proof_size(2603)) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -109,15 +109,15 @@ impl WeightInfo for SubstrateWeight { // Default implementation for tests impl WeightInfo for () { fn execute_signal_proposal(i: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn update_working_group_budget_positive() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn update_working_group_budget_negative() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn burn_account_tokens() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } } diff --git a/runtime-modules/working-group/src/weights.rs b/runtime-modules/working-group/src/weights.rs index bbc1e68fea..5c2c36efbe 100644 --- a/runtime-modules/working-group/src/weights.rs +++ b/runtime-modules/working-group/src/weights.rs @@ -18,11 +18,11 @@ //! Autogenerated weights for working_group //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-27, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("prod-test"), DB CACHE: 1024 // Executed Command: -// ./scripts/../target/release/joystream-node +// ./../target/release/joystream-node // benchmark // pallet // --pallet=working_group @@ -31,8 +31,8 @@ // --steps=50 // --repeat=20 // --execution=wasm -// --template=./scripts/../devops/joystream-pallet-weight-template.hbs -// --output=./scripts/../runtime-modules/working-group/src/weights.rs +// --template=./../devops/joystream-pallet-weight-template.hbs +// --output=./../runtime-modules/working-group/src/weights.rs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -91,11 +91,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `260 + i * (517 ±0)` // Estimated: `4163 + i * (9027 ±0)` - // Minimum execution time: 147_481 nanoseconds. - Weight::from_ref_time(43_530_922) + // Minimum execution time: 89_000 nanoseconds. + Weight::from_parts(18_403_645, 0u64) .saturating_add(Weight::from_proof_size(4163)) - // Standard Error: 61_804 - .saturating_add(Weight::from_ref_time(54_219_510).saturating_mul(i.into())) + // Standard Error: 17_892 + .saturating_add(Weight::from_parts(36_044_053, 0u64).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -113,11 +113,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `246 + i * (374 ±0)` // Estimated: `3161 + i * (5253 ±0)` - // Minimum execution time: 133_981 nanoseconds. - Weight::from_ref_time(26_619_279) + // Minimum execution time: 82_000 nanoseconds. + Weight::from_parts(10_472_586, 0u64) .saturating_add(Weight::from_proof_size(3161)) - // Standard Error: 83_368 - .saturating_add(Weight::from_ref_time(52_587_608).saturating_mul(i.into())) + // Standard Error: 21_914 + .saturating_add(Weight::from_parts(35_903_685, 0u64).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -133,11 +133,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `230 + i * (194 ±0)` // Estimated: `3161 + i * (2650 ±0)` - // Minimum execution time: 68_807 nanoseconds. - Weight::from_ref_time(20_846_803) + // Minimum execution time: 42_000 nanoseconds. + Weight::from_parts(7_909_154, 0u64) .saturating_add(Weight::from_proof_size(3161)) - // Standard Error: 28_444 - .saturating_add(Weight::from_ref_time(22_540_730).saturating_mul(i.into())) + // Standard Error: 18_464 + .saturating_add(Weight::from_parts(15_971_556, 0u64).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) @@ -154,11 +154,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `262 + i * (358 ±0)` // Estimated: `3161 + i * (5253 ±0)` - // Minimum execution time: 115_073 nanoseconds. - Weight::from_ref_time(51_743_831) + // Minimum execution time: 71_000 nanoseconds. + Weight::from_parts(25_141_582, 0u64) .saturating_add(Weight::from_proof_size(3161)) - // Standard Error: 38_422 - .saturating_add(Weight::from_ref_time(31_311_620).saturating_mul(i.into())) + // Standard Error: 24_876 + .saturating_add(Weight::from_parts(22_007_215, 0u64).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(2_u64)) @@ -184,11 +184,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `826` // Estimated: `14601` - // Minimum execution time: 75_245 nanoseconds. - Weight::from_ref_time(73_767_805) + // Minimum execution time: 40_000 nanoseconds. + Weight::from_parts(40_552_472, 0u64) .saturating_add(Weight::from_proof_size(14601)) - // Standard Error: 5_546 - .saturating_add(Weight::from_ref_time(2_577_451).saturating_mul(i.into())) + // Standard Error: 2_520 + .saturating_add(Weight::from_parts(1_487_675, 0u64).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } @@ -208,8 +208,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `453` // Estimated: `6737` - // Minimum execution time: 55_929 nanoseconds. - Weight::from_ref_time(56_615_000) + // Minimum execution time: 29_000 nanoseconds. + Weight::from_parts(30_000_000, 0u64) .saturating_add(Weight::from_proof_size(6737)) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(6_u64)) @@ -235,11 +235,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `859 + i * (218 ±0)` // Estimated: `15764 + i * (2378 ±6)` - // Minimum execution time: 92_040 nanoseconds. - Weight::from_ref_time(64_995_384) + // Minimum execution time: 51_000 nanoseconds. + Weight::from_parts(31_878_502, 0u64) .saturating_add(Weight::from_proof_size(15764)) - // Standard Error: 23_614 - .saturating_add(Weight::from_ref_time(15_829_151).saturating_mul(i.into())) + // Standard Error: 12_366 + .saturating_add(Weight::from_parts(10_491_880, 0u64).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -254,8 +254,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `705` // Estimated: `5250` - // Minimum execution time: 34_324 nanoseconds. - Weight::from_ref_time(34_683_000) + // Minimum execution time: 18_000 nanoseconds. + Weight::from_parts(18_000_000, 0u64) .saturating_add(Weight::from_proof_size(5250)) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -274,8 +274,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `954` // Estimated: `12119` - // Minimum execution time: 66_439 nanoseconds. - Weight::from_ref_time(67_517_000) + // Minimum execution time: 37_000 nanoseconds. + Weight::from_parts(38_000_000, 0u64) .saturating_add(Weight::from_proof_size(12119)) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -290,8 +290,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `647` // Estimated: `9020` - // Minimum execution time: 44_723 nanoseconds. - Weight::from_ref_time(45_232_000) + // Minimum execution time: 23_000 nanoseconds. + Weight::from_parts(24_000_000, 0u64) .saturating_add(Weight::from_proof_size(9020)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -309,11 +309,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `961` // Estimated: `12180` - // Minimum execution time: 85_533 nanoseconds. - Weight::from_ref_time(87_448_043) + // Minimum execution time: 48_000 nanoseconds. + Weight::from_parts(49_993_730, 0u64) .saturating_add(Weight::from_proof_size(12180)) - // Standard Error: 1_830 - .saturating_add(Weight::from_ref_time(1_063_294).saturating_mul(i.into())) + // Standard Error: 1_109 + .saturating_add(Weight::from_parts(423_430, 0u64).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -334,11 +334,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `964` // Estimated: `13190` - // Minimum execution time: 133_139 nanoseconds. - Weight::from_ref_time(138_731_950) + // Minimum execution time: 80_000 nanoseconds. + Weight::from_parts(82_244_749, 0u64) .saturating_add(Weight::from_proof_size(13190)) - // Standard Error: 16_152 - .saturating_add(Weight::from_ref_time(2_072_036).saturating_mul(i.into())) + // Standard Error: 2_393 + .saturating_add(Weight::from_parts(771_228, 0u64).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(5_u64)) } @@ -359,11 +359,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `787` // Estimated: `10540` - // Minimum execution time: 129_624 nanoseconds. - Weight::from_ref_time(133_352_671) + // Minimum execution time: 77_000 nanoseconds. + Weight::from_parts(78_953_053, 0u64) .saturating_add(Weight::from_proof_size(10540)) - // Standard Error: 8_782 - .saturating_add(Weight::from_ref_time(2_133_147).saturating_mul(i.into())) + // Standard Error: 2_426 + .saturating_add(Weight::from_parts(804_219, 0u64).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(6_u64)) } @@ -377,8 +377,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `784` // Estimated: `9027` - // Minimum execution time: 54_079 nanoseconds. - Weight::from_ref_time(55_275_000) + // Minimum execution time: 31_000 nanoseconds. + Weight::from_parts(32_000_000, 0u64) .saturating_add(Weight::from_proof_size(9027)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) @@ -395,8 +395,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `961` // Estimated: `12180` - // Minimum execution time: 64_560 nanoseconds. - Weight::from_ref_time(65_339_000) + // Minimum execution time: 36_000 nanoseconds. + Weight::from_parts(37_000_000, 0u64) .saturating_add(Weight::from_proof_size(12180)) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) @@ -413,8 +413,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `629` // Estimated: `6267` - // Minimum execution time: 43_898 nanoseconds. - Weight::from_ref_time(44_735_000) + // Minimum execution time: 23_000 nanoseconds. + Weight::from_parts(24_000_000, 0u64) .saturating_add(Weight::from_proof_size(6267)) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) @@ -429,8 +429,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `497` // Estimated: `5714` - // Minimum execution time: 46_418 nanoseconds. - Weight::from_ref_time(47_482_000) + // Minimum execution time: 25_000 nanoseconds. + Weight::from_parts(25_000_000, 0u64) .saturating_add(Weight::from_proof_size(5714)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) @@ -443,8 +443,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `634` // Estimated: `5803` - // Minimum execution time: 36_425 nanoseconds. - Weight::from_ref_time(37_050_000) + // Minimum execution time: 19_000 nanoseconds. + Weight::from_parts(20_000_000, 0u64) .saturating_add(Weight::from_proof_size(5803)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -460,11 +460,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `420` // Estimated: `3153` - // Minimum execution time: 28_858 nanoseconds. - Weight::from_ref_time(30_207_005) + // Minimum execution time: 15_000 nanoseconds. + Weight::from_parts(15_572_993, 0u64) .saturating_add(Weight::from_proof_size(3153)) - // Standard Error: 2_321 - .saturating_add(Weight::from_ref_time(2_378_923).saturating_mul(i.into())) + // Standard Error: 2_014 + .saturating_add(Weight::from_parts(1_451_878, 0u64).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -474,8 +474,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `420` // Estimated: `2650` - // Minimum execution time: 27_803 nanoseconds. - Weight::from_ref_time(28_412_000) + // Minimum execution time: 14_000 nanoseconds. + Weight::from_parts(15_000_000, 0u64) .saturating_add(Weight::from_proof_size(2650)) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -486,8 +486,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 13_294 nanoseconds. - Weight::from_ref_time(13_633_000) + // Minimum execution time: 7_000 nanoseconds. + Weight::from_parts(7_000_000, 0u64) .saturating_add(Weight::from_proof_size(0)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -508,11 +508,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `784` // Estimated: `10033` - // Minimum execution time: 76_253 nanoseconds. - Weight::from_ref_time(74_977_049) + // Minimum execution time: 43_000 nanoseconds. + Weight::from_parts(44_174_686, 0u64) .saturating_add(Weight::from_proof_size(10033)) - // Standard Error: 28_997 - .saturating_add(Weight::from_ref_time(2_664_875).saturating_mul(i.into())) + // Standard Error: 2_127 + .saturating_add(Weight::from_parts(1_485_163, 0u64).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } @@ -523,11 +523,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `420` // Estimated: `2650` - // Minimum execution time: 28_525 nanoseconds. - Weight::from_ref_time(29_219_350) + // Minimum execution time: 15_000 nanoseconds. + Weight::from_parts(15_900_268, 0u64) .saturating_add(Weight::from_proof_size(2650)) - // Standard Error: 2_810 - .saturating_add(Weight::from_ref_time(1_067_735).saturating_mul(i.into())) + // Standard Error: 863 + .saturating_add(Weight::from_parts(421_884, 0u64).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -540,11 +540,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `420` // Estimated: `3153` - // Minimum execution time: 26_185 nanoseconds. - Weight::from_ref_time(26_841_469) + // Minimum execution time: 13_000 nanoseconds. + Weight::from_parts(14_396_804, 0u64) .saturating_add(Weight::from_proof_size(3153)) - // Standard Error: 1_011 - .saturating_add(Weight::from_ref_time(1_234_944).saturating_mul(i.into())) + // Standard Error: 793 + .saturating_add(Weight::from_parts(473_852, 0u64).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) } // Storage: Instance3WorkingGroup WorkerById (r:1 w:0) @@ -554,11 +554,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `457` // Estimated: `2650` - // Minimum execution time: 26_107 nanoseconds. - Weight::from_ref_time(27_269_995) + // Minimum execution time: 14_000 nanoseconds. + Weight::from_parts(14_915_147, 0u64) .saturating_add(Weight::from_proof_size(2650)) - // Standard Error: 1_627 - .saturating_add(Weight::from_ref_time(1_206_341).saturating_mul(i.into())) + // Standard Error: 859 + .saturating_add(Weight::from_parts(473_361, 0u64).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) } } @@ -566,78 +566,78 @@ impl WeightInfo for SubstrateWeight { // Default implementation for tests impl WeightInfo for () { fn on_initialize_leaving(i: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn on_initialize_rewarding_with_missing_reward(i: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn on_initialize_rewarding_with_missing_reward_cant_pay(i: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn on_initialize_rewarding_without_missing_reward(i: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn apply_on_opening(i: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn fill_opening_lead() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn fill_opening_worker(i: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn update_role_account() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn cancel_opening() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn withdraw_application() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn slash_stake(i: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn terminate_role_worker(i: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn terminate_role_lead(i: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn increase_stake() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn decrease_stake() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn spend_from_budget() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn fund_working_group_budget() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn update_reward_amount() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn set_status_text(i: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn update_reward_account() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn set_budget() -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn add_opening(i: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn leave_role(i: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn lead_remark(i: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } fn worker_remark(i: u32, ) -> Weight { - Weight::from_ref_time(0) + Weight::from_parts(0, 0) } } diff --git a/runtime/src/weights/block_weights.rs b/runtime/src/weights/block_weights.rs index c5241608ef..cd2b289af4 100644 --- a/runtime/src/weights/block_weights.rs +++ b/runtime/src/weights/block_weights.rs @@ -1,21 +1,21 @@ //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-27 (Y/M/D) -//! HOSTNAME: `ip-172-31-3-111`, CPU: `Intel(R) Xeon(R) Platinum 8124M CPU @ 3.00GHz` +//! DATE: 2023-07-31 (Y/M/D) +//! HOSTNAME: `Mokhtars-MacBook-Pro.local`, CPU: `` //! //! SHORT-NAME: `block`, LONG-NAME: `BlockExecution`, RUNTIME: `Development` //! WARMUPS: `10`, REPEAT: `100` -//! WEIGHT-PATH: `./scripts/../runtime/src/weights` +//! WEIGHT-PATH: `./../runtime/src/weights` //! WEIGHT-METRIC: `Average`, WEIGHT-MUL: `1.0`, WEIGHT-ADD: `0` // Executed Command: -// ./scripts/../target/release/joystream-node +// ./../target/release/joystream-node // benchmark // overhead // --chain=prod-test // --execution=wasm // --warmup=10 // --repeat=100 -// --weight-path=./scripts/../runtime/src/weights +// --weight-path=./../runtime/src/weights use sp_core::parameter_types; use sp_weights::{constants::WEIGHT_REF_TIME_PER_NANOS, Weight}; @@ -25,17 +25,17 @@ parameter_types! { /// Calculated by multiplying the *Average* with `1.0` and adding `0`. /// /// Stats nanoseconds: - /// Min, Max: 546_742, 599_177 - /// Average: 558_311 - /// Median: 553_503 - /// Std-Dev: 11462.26 + /// Min, Max: 357_291, 368_541 + /// Average: 361_082 + /// Median: 360_875 + /// Std-Dev: 1752.83 /// /// Percentiles nanoseconds: - /// 99th: 590_212 - /// 95th: 583_232 - /// 75th: 563_450 + /// 99th: 366_416 + /// 95th: 364_500 + /// 75th: 361_750 pub const BlockExecutionWeight: Weight = - Weight::from_ref_time(WEIGHT_REF_TIME_PER_NANOS.saturating_mul(558_311)); + Weight::from_ref_time(WEIGHT_REF_TIME_PER_NANOS.saturating_mul(361_082)); } #[cfg(test)] diff --git a/runtime/src/weights/extrinsic_weights.rs b/runtime/src/weights/extrinsic_weights.rs index c96b949c69..3735a4c280 100644 --- a/runtime/src/weights/extrinsic_weights.rs +++ b/runtime/src/weights/extrinsic_weights.rs @@ -1,21 +1,21 @@ //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-27 (Y/M/D) -//! HOSTNAME: `ip-172-31-3-111`, CPU: `Intel(R) Xeon(R) Platinum 8124M CPU @ 3.00GHz` +//! DATE: 2023-07-31 (Y/M/D) +//! HOSTNAME: `Mokhtars-MacBook-Pro.local`, CPU: `` //! //! SHORT-NAME: `extrinsic`, LONG-NAME: `ExtrinsicBase`, RUNTIME: `Development` //! WARMUPS: `10`, REPEAT: `100` -//! WEIGHT-PATH: `./scripts/../runtime/src/weights` +//! WEIGHT-PATH: `./../runtime/src/weights` //! WEIGHT-METRIC: `Average`, WEIGHT-MUL: `1.0`, WEIGHT-ADD: `0` // Executed Command: -// ./scripts/../target/release/joystream-node +// ./../target/release/joystream-node // benchmark // overhead // --chain=prod-test // --execution=wasm // --warmup=10 // --repeat=100 -// --weight-path=./scripts/../runtime/src/weights +// --weight-path=./../runtime/src/weights use sp_core::parameter_types; use sp_weights::{constants::WEIGHT_REF_TIME_PER_NANOS, Weight}; @@ -25,17 +25,17 @@ parameter_types! { /// Calculated by multiplying the *Average* with `1.0` and adding `0`. /// /// Stats nanoseconds: - /// Min, Max: 131_166, 134_219 - /// Average: 132_220 - /// Median: 132_065 - /// Std-Dev: 591.09 + /// Min, Max: 83_110, 84_409 + /// Average: 83_409 + /// Median: 83_357 + /// Std-Dev: 228.56 /// /// Percentiles nanoseconds: - /// 99th: 133_738 - /// 95th: 133_375 - /// 75th: 132_459 + /// 99th: 84_281 + /// 95th: 83_808 + /// 75th: 83_474 pub const ExtrinsicBaseWeight: Weight = - Weight::from_ref_time(WEIGHT_REF_TIME_PER_NANOS.saturating_mul(132_220)); + Weight::from_ref_time(WEIGHT_REF_TIME_PER_NANOS.saturating_mul(83_409)); } #[cfg(test)] diff --git a/runtime/src/weights/frame_system.rs b/runtime/src/weights/frame_system.rs index 2727c409d0..095f8f4d1e 100644 --- a/runtime/src/weights/frame_system.rs +++ b/runtime/src/weights/frame_system.rs @@ -18,11 +18,11 @@ //! Autogenerated weights for frame_system //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-27, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("prod-test"), DB CACHE: 1024 // Executed Command: -// ./scripts/../target/release/joystream-node +// ./../target/release/joystream-node // benchmark // pallet // --pallet=frame_system @@ -31,8 +31,8 @@ // --steps=50 // --repeat=20 // --execution=wasm -// --template=./scripts/../devops/frame-weight-template.hbs -// --output=./scripts/../runtime/src/weights/frame_system.rs +// --template=./../devops/frame-weight-template.hbs +// --output=./../runtime/src/weights/frame_system.rs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -52,22 +52,22 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_755 nanoseconds. - Weight::from_ref_time(2_895_000) + // Minimum execution time: 1_000 nanoseconds. + Weight::from_parts(849_258, 0u64) .saturating_add(Weight::from_proof_size(0)) // Standard Error: 0 - .saturating_add(Weight::from_ref_time(478).saturating_mul(b.into())) + .saturating_add(Weight::from_parts(212, 0u64).saturating_mul(b.into())) } /// The range of component `b` is `[0, 3932160]`. fn remark_with_event(b: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 10_588 nanoseconds. - Weight::from_ref_time(10_935_000) + // Minimum execution time: 5_000 nanoseconds. + Weight::from_parts(5_000_000, 0u64) .saturating_add(Weight::from_proof_size(0)) - // Standard Error: 2 - .saturating_add(Weight::from_ref_time(1_941).saturating_mul(b.into())) + // Standard Error: 0 + .saturating_add(Weight::from_parts(1_268, 0u64).saturating_mul(b.into())) } // Storage: System Digest (r:1 w:1) // Proof Skipped: System Digest (max_values: Some(1), max_size: None, mode: Measured) @@ -77,8 +77,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `495` - // Minimum execution time: 5_901 nanoseconds. - Weight::from_ref_time(6_352_000) + // Minimum execution time: 2_000 nanoseconds. + Weight::from_parts(3_000_000, 0u64) .saturating_add(Weight::from_proof_size(495)) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) @@ -90,11 +90,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_928 nanoseconds. - Weight::from_ref_time(2_976_000) + // Minimum execution time: 1_000 nanoseconds. + Weight::from_parts(1_000_000, 0u64) .saturating_add(Weight::from_proof_size(0)) - // Standard Error: 1_151 - .saturating_add(Weight::from_ref_time(1_033_928).saturating_mul(i.into())) + // Standard Error: 754 + .saturating_add(Weight::from_parts(697_919, 0u64).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) } // Storage: Skipped Metadata (r:0 w:0) @@ -104,11 +104,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_793 nanoseconds. - Weight::from_ref_time(2_924_000) + // Minimum execution time: 1_000 nanoseconds. + Weight::from_parts(1_000_000, 0u64) .saturating_add(Weight::from_proof_size(0)) - // Standard Error: 1_104 - .saturating_add(Weight::from_ref_time(765_238).saturating_mul(i.into())) + // Standard Error: 744 + .saturating_add(Weight::from_parts(522_794, 0u64).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) } // Storage: Skipped Metadata (r:0 w:0) @@ -118,11 +118,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `91 + p * (69 ±0)` // Estimated: `96 + p * (70 ±0)` - // Minimum execution time: 5_298 nanoseconds. - Weight::from_ref_time(5_354_000) + // Minimum execution time: 3_000 nanoseconds. + Weight::from_parts(3_000_000, 0u64) .saturating_add(Weight::from_proof_size(96)) - // Standard Error: 1_755 - .saturating_add(Weight::from_ref_time(1_563_975).saturating_mul(p.into())) + // Standard Error: 880 + .saturating_add(Weight::from_parts(1_007_108, 0u64).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(p.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(p.into()))) .saturating_add(Weight::from_proof_size(70).saturating_mul(p.into())) diff --git a/runtime/src/weights/pallet_bags_list.rs b/runtime/src/weights/pallet_bags_list.rs index bc151cb029..5b5f0e475f 100644 --- a/runtime/src/weights/pallet_bags_list.rs +++ b/runtime/src/weights/pallet_bags_list.rs @@ -18,11 +18,11 @@ //! Autogenerated weights for pallet_bags_list //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-27, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("prod-test"), DB CACHE: 1024 // Executed Command: -// ./scripts/../target/release/joystream-node +// ./../target/release/joystream-node // benchmark // pallet // --pallet=pallet_bags_list @@ -31,8 +31,8 @@ // --steps=50 // --repeat=20 // --execution=wasm -// --template=./scripts/../devops/frame-weight-template.hbs -// --output=./scripts/../runtime/src/weights/pallet_bags_list.rs +// --template=./../devops/frame-weight-template.hbs +// --output=./../runtime/src/weights/pallet_bags_list.rs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -59,8 +59,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1797` // Estimated: `19330` - // Minimum execution time: 84_957 nanoseconds. - Weight::from_ref_time(86_387_000) + // Minimum execution time: 47_000 nanoseconds. + Weight::from_parts(49_000_000, 0u64) .saturating_add(Weight::from_proof_size(19330)) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(5_u64)) @@ -77,8 +77,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1691` // Estimated: `19258` - // Minimum execution time: 84_062 nanoseconds. - Weight::from_ref_time(85_397_000) + // Minimum execution time: 46_000 nanoseconds. + Weight::from_parts(48_000_000, 0u64) .saturating_add(Weight::from_proof_size(19258)) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(5_u64)) @@ -97,8 +97,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `2035` // Estimated: `26086` - // Minimum execution time: 94_363 nanoseconds. - Weight::from_ref_time(95_505_000) + // Minimum execution time: 53_000 nanoseconds. + Weight::from_parts(54_000_000, 0u64) .saturating_add(Weight::from_proof_size(26086)) .saturating_add(T::DbWeight::get().reads(10_u64)) .saturating_add(T::DbWeight::get().writes(6_u64)) diff --git a/runtime/src/weights/pallet_balances.rs b/runtime/src/weights/pallet_balances.rs index 899f137306..796020ff60 100644 --- a/runtime/src/weights/pallet_balances.rs +++ b/runtime/src/weights/pallet_balances.rs @@ -18,11 +18,11 @@ //! Autogenerated weights for pallet_balances //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-27, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("prod-test"), DB CACHE: 1024 // Executed Command: -// ./scripts/../target/release/joystream-node +// ./../target/release/joystream-node // benchmark // pallet // --pallet=pallet_balances @@ -31,8 +31,8 @@ // --steps=50 // --repeat=20 // --execution=wasm -// --template=./scripts/../devops/frame-weight-template.hbs -// --output=./scripts/../runtime/src/weights/pallet_balances.rs +// --template=./../devops/frame-weight-template.hbs +// --output=./../runtime/src/weights/pallet_balances.rs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -53,8 +53,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1817` // Estimated: `2603` - // Minimum execution time: 75_128 nanoseconds. - Weight::from_ref_time(75_911_000) + // Minimum execution time: 42_000 nanoseconds. + Weight::from_parts(44_000_000, 0u64) .saturating_add(Weight::from_proof_size(2603)) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -65,8 +65,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1601` // Estimated: `2603` - // Minimum execution time: 56_367 nanoseconds. - Weight::from_ref_time(57_296_000) + // Minimum execution time: 31_000 nanoseconds. + Weight::from_parts(32_000_000, 0u64) .saturating_add(Weight::from_proof_size(2603)) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -77,8 +77,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1884` // Estimated: `2603` - // Minimum execution time: 40_990 nanoseconds. - Weight::from_ref_time(41_619_000) + // Minimum execution time: 21_000 nanoseconds. + Weight::from_parts(22_000_000, 0u64) .saturating_add(Weight::from_proof_size(2603)) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -89,8 +89,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1884` // Estimated: `2603` - // Minimum execution time: 45_324 nanoseconds. - Weight::from_ref_time(46_020_000) + // Minimum execution time: 24_000 nanoseconds. + Weight::from_parts(25_000_000, 0u64) .saturating_add(Weight::from_proof_size(2603)) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -101,8 +101,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1817` // Estimated: `5206` - // Minimum execution time: 74_895 nanoseconds. - Weight::from_ref_time(76_397_000) + // Minimum execution time: 42_000 nanoseconds. + Weight::from_parts(43_000_000, 0u64) .saturating_add(Weight::from_proof_size(5206)) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) @@ -113,8 +113,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1601` // Estimated: `2603` - // Minimum execution time: 65_402 nanoseconds. - Weight::from_ref_time(66_014_000) + // Minimum execution time: 37_000 nanoseconds. + Weight::from_parts(38_000_000, 0u64) .saturating_add(Weight::from_proof_size(2603)) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -125,8 +125,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1668` // Estimated: `2603` - // Minimum execution time: 35_108 nanoseconds. - Weight::from_ref_time(35_979_000) + // Minimum execution time: 19_000 nanoseconds. + Weight::from_parts(20_000_000, 0u64) .saturating_add(Weight::from_proof_size(2603)) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) diff --git a/runtime/src/weights/pallet_election_provider_multi_phase.rs b/runtime/src/weights/pallet_election_provider_multi_phase.rs index 26145ee644..d84558d8f4 100644 --- a/runtime/src/weights/pallet_election_provider_multi_phase.rs +++ b/runtime/src/weights/pallet_election_provider_multi_phase.rs @@ -18,11 +18,11 @@ //! Autogenerated weights for pallet_election_provider_multi_phase //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-27, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("prod-test"), DB CACHE: 1024 // Executed Command: -// ./scripts/../target/release/joystream-node +// ./../target/release/joystream-node // benchmark // pallet // --pallet=pallet_election_provider_multi_phase @@ -31,8 +31,8 @@ // --steps=50 // --repeat=20 // --execution=wasm -// --template=./scripts/../devops/frame-weight-template.hbs -// --output=./scripts/../runtime/src/weights/pallet_election_provider_multi_phase.rs +// --template=./../devops/frame-weight-template.hbs +// --output=./../runtime/src/weights/pallet_election_provider_multi_phase.rs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -67,8 +67,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `845` // Estimated: `6834` - // Minimum execution time: 27_108 nanoseconds. - Weight::from_ref_time(28_077_000) + // Minimum execution time: 17_000 nanoseconds. + Weight::from_parts(17_000_000, 0u64) .saturating_add(Weight::from_proof_size(6834)) .saturating_add(T::DbWeight::get().reads(8_u64)) } @@ -80,8 +80,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `42` // Estimated: `1074` - // Minimum execution time: 18_329 nanoseconds. - Weight::from_ref_time(19_064_000) + // Minimum execution time: 9_000 nanoseconds. + Weight::from_parts(10_000_000, 0u64) .saturating_add(Weight::from_proof_size(1074)) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -94,8 +94,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `42` // Estimated: `1074` - // Minimum execution time: 20_072 nanoseconds. - Weight::from_ref_time(20_465_000) + // Minimum execution time: 10_000 nanoseconds. + Weight::from_parts(11_000_000, 0u64) .saturating_add(Weight::from_proof_size(1074)) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -108,8 +108,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `206` // Estimated: `2809` - // Minimum execution time: 39_103 nanoseconds. - Weight::from_ref_time(39_629_000) + // Minimum execution time: 22_000 nanoseconds. + Weight::from_parts(23_000_000, 0u64) .saturating_add(Weight::from_proof_size(2809)) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) @@ -120,8 +120,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `206` // Estimated: `2603` - // Minimum execution time: 27_184 nanoseconds. - Weight::from_ref_time(27_468_000) + // Minimum execution time: 14_000 nanoseconds. + Weight::from_parts(15_000_000, 0u64) .saturating_add(Weight::from_proof_size(2603)) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -134,15 +134,17 @@ impl WeightInfo for SubstrateWeight { // Proof Skipped: ElectionProviderMultiPhase Snapshot (max_values: Some(1), max_size: None, mode: Measured) /// The range of component `v` is `[1000, 2000]`. /// The range of component `t` is `[500, 1000]`. - fn create_snapshot_internal(v: u32, _t: u32, ) -> Weight { + fn create_snapshot_internal(v: u32, t: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 461_868 nanoseconds. - Weight::from_ref_time(506_018_000) + // Minimum execution time: 189_000 nanoseconds. + Weight::from_parts(2_711_599, 0u64) .saturating_add(Weight::from_proof_size(0)) - // Standard Error: 4_207 - .saturating_add(Weight::from_ref_time(213_839).saturating_mul(v.into())) + // Standard Error: 3_592 + .saturating_add(Weight::from_parts(130_970, 0u64).saturating_mul(v.into())) + // Standard Error: 7_181 + .saturating_add(Weight::from_parts(85_751, 0u64).saturating_mul(t.into())) .saturating_add(T::DbWeight::get().writes(3_u64)) } // Storage: ElectionProviderMultiPhase SignedSubmissionIndices (r:1 w:1) @@ -169,11 +171,13 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `296 + a * (768 ±0) + d * (48 ±0)` // Estimated: `8892 + a * (6912 ±0) + d * (441 ±0)` - // Minimum execution time: 537_472 nanoseconds. - Weight::from_ref_time(555_750_000) + // Minimum execution time: 220_000 nanoseconds. + Weight::from_parts(112_585_273, 0u64) .saturating_add(Weight::from_proof_size(8892)) - // Standard Error: 7_225 - .saturating_add(Weight::from_ref_time(442_283).saturating_mul(a.into())) + // Standard Error: 6_599 + .saturating_add(Weight::from_parts(170_099, 0u64).saturating_mul(a.into())) + // Standard Error: 9_892 + .saturating_add(Weight::from_parts(126_482, 0u64).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(8_u64)) .saturating_add(Weight::from_proof_size(6912).saturating_mul(a.into())) @@ -195,8 +199,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1189` // Estimated: `8436` - // Minimum execution time: 70_876 nanoseconds. - Weight::from_ref_time(71_855_000) + // Minimum execution time: 36_000 nanoseconds. + Weight::from_parts(37_000_000, 0u64) .saturating_add(Weight::from_proof_size(8436)) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -223,13 +227,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `179 + v * (553 ±0) + t * (32 ±0)` // Estimated: `4718 + v * (3871 ±0) + t * (224 ±0)` - // Minimum execution time: 8_119_269 nanoseconds. - Weight::from_ref_time(8_326_087_000) + // Minimum execution time: 4_345_000 nanoseconds. + Weight::from_parts(4_368_000_000, 0u64) .saturating_add(Weight::from_proof_size(4718)) - // Standard Error: 25_345 - .saturating_add(Weight::from_ref_time(173_567).saturating_mul(v.into())) - // Standard Error: 75_109 - .saturating_add(Weight::from_ref_time(7_035_583).saturating_mul(a.into())) + // Standard Error: 35_120 + .saturating_add(Weight::from_parts(4_358_273, 0u64).saturating_mul(a.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) .saturating_add(Weight::from_proof_size(3871).saturating_mul(v.into())) @@ -251,13 +253,13 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `154 + v * (553 ±0) + t * (32 ±0)` // Estimated: `2596 + v * (2212 ±0) + t * (128 ±0)` - // Minimum execution time: 7_057_908 nanoseconds. - Weight::from_ref_time(7_258_224_000) + // Minimum execution time: 3_630_000 nanoseconds. + Weight::from_parts(3_673_000_000, 0u64) .saturating_add(Weight::from_proof_size(2596)) - // Standard Error: 22_978 - .saturating_add(Weight::from_ref_time(405_949).saturating_mul(v.into())) - // Standard Error: 68_094 - .saturating_add(Weight::from_ref_time(5_622_957).saturating_mul(a.into())) + // Standard Error: 10_071 + .saturating_add(Weight::from_parts(3_087, 0u64).saturating_mul(v.into())) + // Standard Error: 29_846 + .saturating_add(Weight::from_parts(3_331_792, 0u64).saturating_mul(a.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(Weight::from_proof_size(2212).saturating_mul(v.into())) .saturating_add(Weight::from_proof_size(128).saturating_mul(t.into())) diff --git a/runtime/src/weights/pallet_im_online.rs b/runtime/src/weights/pallet_im_online.rs index c2c0bca620..778c8b165e 100644 --- a/runtime/src/weights/pallet_im_online.rs +++ b/runtime/src/weights/pallet_im_online.rs @@ -18,11 +18,11 @@ //! Autogenerated weights for pallet_im_online //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-27, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("prod-test"), DB CACHE: 1024 // Executed Command: -// ./scripts/../target/release/joystream-node +// ./../target/release/joystream-node // benchmark // pallet // --pallet=pallet_im_online @@ -31,8 +31,8 @@ // --steps=50 // --repeat=20 // --execution=wasm -// --template=./scripts/../devops/frame-weight-template.hbs -// --output=./scripts/../runtime/src/weights/pallet_im_online.rs +// --template=./../devops/frame-weight-template.hbs +// --output=./../runtime/src/weights/pallet_im_online.rs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -62,17 +62,17 @@ impl WeightInfo for SubstrateWeight { fn validate_unsigned_and_then_heartbeat(k: u32, e: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `359 + k * (32 ±0)` - // Estimated: `10345712 + e * (25 ±0) + k * (64 ±0)` - // Minimum execution time: 151_479 nanoseconds. - Weight::from_ref_time(106_415_209) + // Estimated: `10345712 + k * (64 ±0) + e * (25 ±0)` + // Minimum execution time: 78_000 nanoseconds. + Weight::from_parts(45_808_559, 0u64) .saturating_add(Weight::from_proof_size(10345712)) - // Standard Error: 408 - .saturating_add(Weight::from_ref_time(51_073).saturating_mul(k.into())) - // Standard Error: 4_112 - .saturating_add(Weight::from_ref_time(582_904).saturating_mul(e.into())) + // Standard Error: 1_668 + .saturating_add(Weight::from_parts(74_644, 0u64).saturating_mul(k.into())) + // Standard Error: 16_808 + .saturating_add(Weight::from_parts(593_796, 0u64).saturating_mul(e.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) - .saturating_add(Weight::from_proof_size(25).saturating_mul(e.into())) .saturating_add(Weight::from_proof_size(64).saturating_mul(k.into())) + .saturating_add(Weight::from_proof_size(25).saturating_mul(e.into())) } } diff --git a/runtime/src/weights/pallet_multisig.rs b/runtime/src/weights/pallet_multisig.rs index 8399bc537d..bfbc79bc18 100644 --- a/runtime/src/weights/pallet_multisig.rs +++ b/runtime/src/weights/pallet_multisig.rs @@ -18,11 +18,11 @@ //! Autogenerated weights for pallet_multisig //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-27, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("prod-test"), DB CACHE: 1024 // Executed Command: -// ./scripts/../target/release/joystream-node +// ./../target/release/joystream-node // benchmark // pallet // --pallet=pallet_multisig @@ -31,8 +31,8 @@ // --steps=50 // --repeat=20 // --execution=wasm -// --template=./scripts/../devops/frame-weight-template.hbs -// --output=./scripts/../runtime/src/weights/pallet_multisig.rs +// --template=./../devops/frame-weight-template.hbs +// --output=./../runtime/src/weights/pallet_multisig.rs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -52,11 +52,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 18_604 nanoseconds. - Weight::from_ref_time(19_689_603) + // Minimum execution time: 9_000 nanoseconds. + Weight::from_parts(9_607_663, 0u64) .saturating_add(Weight::from_proof_size(0)) - // Standard Error: 4 - .saturating_add(Weight::from_ref_time(733).saturating_mul(z.into())) + // Standard Error: 5 + .saturating_add(Weight::from_parts(330, 0u64).saturating_mul(z.into())) } // Storage: Multisig Multisigs (r:1 w:1) // Proof: Multisig Multisigs (max_values: None, max_size: Some(3346), added: 5821, mode: MaxEncodedLen) @@ -66,13 +66,13 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `382 + s * (2 ±0)` // Estimated: `5821` - // Minimum execution time: 57_734 nanoseconds. - Weight::from_ref_time(44_212_087) + // Minimum execution time: 30_000 nanoseconds. + Weight::from_parts(23_745_595, 0u64) .saturating_add(Weight::from_proof_size(5821)) - // Standard Error: 4_761 - .saturating_add(Weight::from_ref_time(154_221).saturating_mul(s.into())) - // Standard Error: 46 - .saturating_add(Weight::from_ref_time(2_277).saturating_mul(z.into())) + // Standard Error: 869 + .saturating_add(Weight::from_parts(68_128, 0u64).saturating_mul(s.into())) + // Standard Error: 8 + .saturating_add(Weight::from_parts(1_392, 0u64).saturating_mul(z.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -84,13 +84,13 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `351` // Estimated: `5821` - // Minimum execution time: 43_135 nanoseconds. - Weight::from_ref_time(31_001_407) + // Minimum execution time: 20_000 nanoseconds. + Weight::from_parts(15_605_320, 0u64) .saturating_add(Weight::from_proof_size(5821)) - // Standard Error: 871 - .saturating_add(Weight::from_ref_time(136_583).saturating_mul(s.into())) - // Standard Error: 8 - .saturating_add(Weight::from_ref_time(2_104).saturating_mul(z.into())) + // Standard Error: 522 + .saturating_add(Weight::from_parts(58_555, 0u64).saturating_mul(s.into())) + // Standard Error: 5 + .saturating_add(Weight::from_parts(1_368, 0u64).saturating_mul(z.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -104,13 +104,13 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `519 + s * (33 ±0)` // Estimated: `8424` - // Minimum execution time: 66_307 nanoseconds. - Weight::from_ref_time(51_060_192) + // Minimum execution time: 33_000 nanoseconds. + Weight::from_parts(26_655_717, 0u64) .saturating_add(Weight::from_proof_size(8424)) - // Standard Error: 1_556 - .saturating_add(Weight::from_ref_time(166_796).saturating_mul(s.into())) - // Standard Error: 15 - .saturating_add(Weight::from_ref_time(2_105).saturating_mul(z.into())) + // Standard Error: 951 + .saturating_add(Weight::from_parts(75_112, 0u64).saturating_mul(s.into())) + // Standard Error: 9 + .saturating_add(Weight::from_parts(1_356, 0u64).saturating_mul(z.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -121,11 +121,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `389 + s * (2 ±0)` // Estimated: `5821` - // Minimum execution time: 43_627 nanoseconds. - Weight::from_ref_time(45_045_985) + // Minimum execution time: 22_000 nanoseconds. + Weight::from_parts(23_193_142, 0u64) .saturating_add(Weight::from_proof_size(5821)) - // Standard Error: 2_250 - .saturating_add(Weight::from_ref_time(146_019).saturating_mul(s.into())) + // Standard Error: 576 + .saturating_add(Weight::from_parts(65_546, 0u64).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -136,11 +136,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `351` // Estimated: `5821` - // Minimum execution time: 28_071 nanoseconds. - Weight::from_ref_time(29_595_446) + // Minimum execution time: 14_000 nanoseconds. + Weight::from_parts(14_890_938, 0u64) .saturating_add(Weight::from_proof_size(5821)) - // Standard Error: 1_002 - .saturating_add(Weight::from_ref_time(134_532).saturating_mul(s.into())) + // Standard Error: 755 + .saturating_add(Weight::from_parts(57_236, 0u64).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -151,11 +151,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `588 + s * (1 ±0)` // Estimated: `5821` - // Minimum execution time: 42_944 nanoseconds. - Weight::from_ref_time(45_425_149) + // Minimum execution time: 23_000 nanoseconds. + Weight::from_parts(23_872_244, 0u64) .saturating_add(Weight::from_proof_size(5821)) - // Standard Error: 1_200 - .saturating_add(Weight::from_ref_time(136_371).saturating_mul(s.into())) + // Standard Error: 660 + .saturating_add(Weight::from_parts(61_289, 0u64).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } diff --git a/runtime/src/weights/pallet_session.rs b/runtime/src/weights/pallet_session.rs index 5a71677b1c..fb137d09c4 100644 --- a/runtime/src/weights/pallet_session.rs +++ b/runtime/src/weights/pallet_session.rs @@ -18,11 +18,11 @@ //! Autogenerated weights for pallet_session //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-27, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("prod-test"), DB CACHE: 1024 // Executed Command: -// ./scripts/../target/release/joystream-node +// ./../target/release/joystream-node // benchmark // pallet // --pallet=pallet_session @@ -31,8 +31,8 @@ // --steps=50 // --repeat=20 // --execution=wasm -// --template=./scripts/../devops/frame-weight-template.hbs -// --output=./scripts/../runtime/src/weights/pallet_session.rs +// --template=./../devops/frame-weight-template.hbs +// --output=./../runtime/src/weights/pallet_session.rs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -57,8 +57,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1868` // Estimated: `19821` - // Minimum execution time: 70_580 nanoseconds. - Weight::from_ref_time(71_628_000) + // Minimum execution time: 39_000 nanoseconds. + Weight::from_parts(40_000_000, 0u64) .saturating_add(Weight::from_proof_size(19821)) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(5_u64)) @@ -73,8 +73,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1767` // Estimated: `9719` - // Minimum execution time: 52_284 nanoseconds. - Weight::from_ref_time(53_042_000) + // Minimum execution time: 28_000 nanoseconds. + Weight::from_parts(29_000_000, 0u64) .saturating_add(Weight::from_proof_size(9719)) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(5_u64)) diff --git a/runtime/src/weights/pallet_staking.rs b/runtime/src/weights/pallet_staking.rs index 3cd869e0a9..34a53aa8fd 100644 --- a/runtime/src/weights/pallet_staking.rs +++ b/runtime/src/weights/pallet_staking.rs @@ -18,11 +18,11 @@ //! Autogenerated weights for pallet_staking //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-27, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("prod-test"), DB CACHE: 1024 // Executed Command: -// ./scripts/../target/release/joystream-node +// ./../target/release/joystream-node // benchmark // pallet // --pallet=pallet_staking @@ -31,8 +31,8 @@ // --steps=50 // --repeat=20 // --execution=wasm -// --template=./scripts/../devops/frame-weight-template.hbs -// --output=./scripts/../runtime/src/weights/pallet_staking.rs +// --template=./../devops/frame-weight-template.hbs +// --output=./../runtime/src/weights/pallet_staking.rs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -61,8 +61,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1031` // Estimated: `10530` - // Minimum execution time: 64_730 nanoseconds. - Weight::from_ref_time(66_893_000) + // Minimum execution time: 35_000 nanoseconds. + Weight::from_parts(36_000_000, 0u64) .saturating_add(Weight::from_proof_size(10530)) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) @@ -81,8 +81,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `2164` // Estimated: `23032` - // Minimum execution time: 121_987 nanoseconds. - Weight::from_ref_time(123_327_000) + // Minimum execution time: 69_000 nanoseconds. + Weight::from_parts(70_000_000, 0u64) .saturating_add(Weight::from_proof_size(23032)) .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().writes(7_u64)) @@ -109,8 +109,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `2397` // Estimated: `29678` - // Minimum execution time: 132_739 nanoseconds. - Weight::from_ref_time(135_138_000) + // Minimum execution time: 75_000 nanoseconds. + Weight::from_parts(76_000_000, 0u64) .saturating_add(Weight::from_proof_size(29678)) .saturating_add(T::DbWeight::get().reads(12_u64)) .saturating_add(T::DbWeight::get().writes(8_u64)) @@ -128,11 +128,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `995` // Estimated: `10586` - // Minimum execution time: 49_141 nanoseconds. - Weight::from_ref_time(51_020_718) + // Minimum execution time: 27_000 nanoseconds. + Weight::from_parts(27_922_393, 0u64) .saturating_add(Weight::from_proof_size(10586)) - // Standard Error: 1_114 - .saturating_add(Weight::from_ref_time(53_151).saturating_mul(s.into())) + // Standard Error: 777 + .saturating_add(Weight::from_parts(9_806, 0u64).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -169,11 +169,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `2410 + s * (4 ±0)` // Estimated: `32371 + s * (4 ±0)` - // Minimum execution time: 117_106 nanoseconds. - Weight::from_ref_time(127_217_330) + // Minimum execution time: 65_000 nanoseconds. + Weight::from_parts(68_936_010, 0u64) .saturating_add(Weight::from_proof_size(32371)) - // Standard Error: 4_778 - .saturating_add(Weight::from_ref_time(1_861_863).saturating_mul(s.into())) + // Standard Error: 1_967 + .saturating_add(Weight::from_parts(1_275_847, 0u64).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(13_u64)) .saturating_add(T::DbWeight::get().writes(12_u64)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(s.into()))) @@ -205,8 +205,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1414` // Estimated: `22132` - // Minimum execution time: 91_588 nanoseconds. - Weight::from_ref_time(93_820_000) + // Minimum execution time: 50_000 nanoseconds. + Weight::from_parts(51_000_000, 0u64) .saturating_add(Weight::from_proof_size(22132)) .saturating_add(T::DbWeight::get().reads(12_u64)) .saturating_add(T::DbWeight::get().writes(6_u64)) @@ -220,11 +220,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1227 + k * (601 ±0)` // Estimated: `3710 + k * (3033 ±0)` - // Minimum execution time: 41_732 nanoseconds. - Weight::from_ref_time(42_440_389) + // Minimum execution time: 22_000 nanoseconds. + Weight::from_parts(23_531_759, 0u64) .saturating_add(Weight::from_proof_size(3710)) - // Standard Error: 11_765 - .saturating_add(Weight::from_ref_time(11_007_656).saturating_mul(k.into())) + // Standard Error: 4_321 + .saturating_add(Weight::from_parts(7_141_084, 0u64).saturating_mul(k.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(k.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(k.into()))) @@ -257,11 +257,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1876 + n * (104 ±0)` // Estimated: `22132 + n * (2520 ±0)` - // Minimum execution time: 96_632 nanoseconds. - Weight::from_ref_time(95_145_932) + // Minimum execution time: 53_000 nanoseconds. + Weight::from_parts(51_787_932, 0u64) .saturating_add(Weight::from_proof_size(22132)) - // Standard Error: 18_886 - .saturating_add(Weight::from_ref_time(4_179_861).saturating_mul(n.into())) + // Standard Error: 9_651 + .saturating_add(Weight::from_parts(2_778_562, 0u64).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(12_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(n.into()))) .saturating_add(T::DbWeight::get().writes(6_u64)) @@ -285,8 +285,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1763` // Estimated: `18076` - // Minimum execution time: 83_143 nanoseconds. - Weight::from_ref_time(85_167_000) + // Minimum execution time: 45_000 nanoseconds. + Weight::from_parts(47_000_000, 0u64) .saturating_add(Weight::from_proof_size(18076)) .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().writes(6_u64)) @@ -299,8 +299,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `753` // Estimated: `3710` - // Minimum execution time: 21_044 nanoseconds. - Weight::from_ref_time(21_617_000) + // Minimum execution time: 11_000 nanoseconds. + Weight::from_parts(12_000_000, 0u64) .saturating_add(Weight::from_proof_size(3710)) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -313,8 +313,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `852` // Estimated: `9967` - // Minimum execution time: 32_052 nanoseconds. - Weight::from_ref_time(32_597_000) + // Minimum execution time: 17_000 nanoseconds. + Weight::from_parts(18_000_000, 0u64) .saturating_add(Weight::from_proof_size(9967)) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -325,8 +325,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 4_178 nanoseconds. - Weight::from_ref_time(4_390_000) + // Minimum execution time: 2_000 nanoseconds. + Weight::from_parts(2_000_000, 0u64) .saturating_add(Weight::from_proof_size(0)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -336,8 +336,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 15_117 nanoseconds. - Weight::from_ref_time(15_471_000) + // Minimum execution time: 7_000 nanoseconds. + Weight::from_parts(7_000_000, 0u64) .saturating_add(Weight::from_proof_size(0)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -347,8 +347,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 15_595 nanoseconds. - Weight::from_ref_time(15_880_000) + // Minimum execution time: 7_000 nanoseconds. + Weight::from_parts(8_000_000, 0u64) .saturating_add(Weight::from_proof_size(0)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -358,8 +358,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 15_658 nanoseconds. - Weight::from_ref_time(16_034_000) + // Minimum execution time: 7_000 nanoseconds. + Weight::from_parts(7_000_000, 0u64) .saturating_add(Weight::from_proof_size(0)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -370,11 +370,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 4_520 nanoseconds. - Weight::from_ref_time(5_515_161) + // Minimum execution time: 2_000 nanoseconds. + Weight::from_parts(2_344_853, 0u64) .saturating_add(Weight::from_proof_size(0)) - // Standard Error: 85 - .saturating_add(Weight::from_ref_time(12_125).saturating_mul(v.into())) + // Standard Error: 133 + .saturating_add(Weight::from_parts(6_842, 0u64).saturating_mul(v.into())) .saturating_add(T::DbWeight::get().writes(1_u64)) } // Storage: Staking Bonded (r:1 w:1) @@ -408,11 +408,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `2108 + s * (4 ±0)` // Estimated: `27860 + s * (4 ±0)` - // Minimum execution time: 106_008 nanoseconds. - Weight::from_ref_time(115_275_967) + // Minimum execution time: 59_000 nanoseconds. + Weight::from_parts(63_236_332, 0u64) .saturating_add(Weight::from_proof_size(27860)) - // Standard Error: 8_320 - .saturating_add(Weight::from_ref_time(1_867_725).saturating_mul(s.into())) + // Standard Error: 2_200 + .saturating_add(Weight::from_parts(1_254_274, 0u64).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(11_u64)) .saturating_add(T::DbWeight::get().writes(12_u64)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(s.into()))) @@ -425,11 +425,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `66590` // Estimated: `69065` - // Minimum execution time: 140_799 nanoseconds. - Weight::from_ref_time(1_056_177_366) + // Minimum execution time: 109_000 nanoseconds. + Weight::from_parts(676_194_153, 0u64) .saturating_add(Weight::from_proof_size(69065)) - // Standard Error: 71_856 - .saturating_add(Weight::from_ref_time(6_325_737).saturating_mul(s.into())) + // Standard Error: 41_277 + .saturating_add(Weight::from_parts(3_515_591, 0u64).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -456,11 +456,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `20587 + n * (140 ±0)` // Estimated: `55312 + n * (8020 ±0)` - // Minimum execution time: 115_382 nanoseconds. - Weight::from_ref_time(147_804_619) + // Minimum execution time: 64_000 nanoseconds. + Weight::from_parts(88_072_068, 0u64) .saturating_add(Weight::from_proof_size(55312)) - // Standard Error: 25_747 - .saturating_add(Weight::from_ref_time(38_213_292).saturating_mul(n.into())) + // Standard Error: 14_948 + .saturating_add(Weight::from_parts(24_850_187, 0u64).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(9_u64)) .saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(n.into()))) .saturating_add(T::DbWeight::get().writes(2_u64)) @@ -492,11 +492,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `35490 + n * (456 ±0)` // Estimated: `84430 + n * (16152 ±0)` - // Minimum execution time: 140_071 nanoseconds. - Weight::from_ref_time(146_167_931) + // Minimum execution time: 79_000 nanoseconds. + Weight::from_parts(100_917_281, 0u64) .saturating_add(Weight::from_proof_size(84430)) - // Standard Error: 60_804 - .saturating_add(Weight::from_ref_time(53_754_330).saturating_mul(n.into())) + // Standard Error: 10_200 + .saturating_add(Weight::from_parts(33_633_568, 0u64).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(10_u64)) .saturating_add(T::DbWeight::get().reads((5_u64).saturating_mul(n.into()))) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -520,11 +520,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `2165 + l * (8 ±0)` // Estimated: `25635` - // Minimum execution time: 121_756 nanoseconds. - Weight::from_ref_time(124_496_329) + // Minimum execution time: 67_000 nanoseconds. + Weight::from_parts(67_987_882, 0u64) .saturating_add(Weight::from_proof_size(25635)) - // Standard Error: 7_581 - .saturating_add(Weight::from_ref_time(72_661).saturating_mul(l.into())) + // Standard Error: 4_924 + .saturating_add(Weight::from_parts(77_036, 0u64).saturating_mul(l.into())) .saturating_add(T::DbWeight::get().reads(9_u64)) .saturating_add(T::DbWeight::get().writes(8_u64)) } @@ -559,11 +559,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `2410 + s * (4 ±0)` // Estimated: `31878 + s * (4 ±0)` - // Minimum execution time: 127_389 nanoseconds. - Weight::from_ref_time(132_204_999) + // Minimum execution time: 71_000 nanoseconds. + Weight::from_parts(71_514_419, 0u64) .saturating_add(Weight::from_proof_size(31878)) - // Standard Error: 3_382 - .saturating_add(Weight::from_ref_time(1_822_052).saturating_mul(s.into())) + // Standard Error: 1_463 + .saturating_add(Weight::from_parts(1_256_209, 0u64).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(12_u64)) .saturating_add(T::DbWeight::get().writes(12_u64)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(s.into()))) @@ -609,13 +609,13 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0 + v * (3656 ±0) + n * (810 ±0)` // Estimated: `527459 + v * (16909 ±39) + n * (13083 ±3)` - // Minimum execution time: 796_754 nanoseconds. - Weight::from_ref_time(799_286_000) + // Minimum execution time: 494_000 nanoseconds. + Weight::from_parts(496_000_000, 0u64) .saturating_add(Weight::from_proof_size(527459)) - // Standard Error: 2_723_680 - .saturating_add(Weight::from_ref_time(88_552_691).saturating_mul(v.into())) - // Standard Error: 271_399 - .saturating_add(Weight::from_ref_time(22_785_670).saturating_mul(n.into())) + // Standard Error: 1_583_692 + .saturating_add(Weight::from_parts(50_826_936, 0u64).saturating_mul(v.into())) + // Standard Error: 157_806 + .saturating_add(Weight::from_parts(14_130_976, 0u64).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(206_u64)) .saturating_add(T::DbWeight::get().reads((5_u64).saturating_mul(v.into()))) .saturating_add(T::DbWeight::get().reads((4_u64).saturating_mul(n.into()))) @@ -646,11 +646,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `2911 + v * (453 ±0) + n * (1001 ±0)` // Estimated: `511899 + v * (14439 ±0) + n * (11919 ±0)` - // Minimum execution time: 24_085_643 nanoseconds. - Weight::from_ref_time(24_220_889_000) + // Minimum execution time: 15_243_000 nanoseconds. + Weight::from_parts(15_361_000_000, 0u64) .saturating_add(Weight::from_proof_size(511899)) - // Standard Error: 258_694 - .saturating_add(Weight::from_ref_time(14_304_026).saturating_mul(n.into())) + // Standard Error: 163_642 + .saturating_add(Weight::from_parts(8_881_101, 0u64).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(201_u64)) .saturating_add(T::DbWeight::get().reads((5_u64).saturating_mul(v.into()))) .saturating_add(T::DbWeight::get().reads((4_u64).saturating_mul(n.into()))) @@ -667,11 +667,11 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `512 + v * (50 ±0)` // Estimated: `3019 + v * (2520 ±0)` - // Minimum execution time: 2_018_940 nanoseconds. - Weight::from_ref_time(2_057_997_000) + // Minimum execution time: 1_400_000 nanoseconds. + Weight::from_parts(1_436_000_000, 0u64) .saturating_add(Weight::from_proof_size(3019)) - // Standard Error: 61_208 - .saturating_add(Weight::from_ref_time(3_720_720).saturating_mul(v.into())) + // Standard Error: 43_453 + .saturating_add(Weight::from_parts(2_737_449, 0u64).saturating_mul(v.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(v.into()))) .saturating_add(Weight::from_proof_size(2520).saturating_mul(v.into())) @@ -692,8 +692,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 10_108 nanoseconds. - Weight::from_ref_time(10_493_000) + // Minimum execution time: 4_000 nanoseconds. + Weight::from_parts(5_000_000, 0u64) .saturating_add(Weight::from_proof_size(0)) .saturating_add(T::DbWeight::get().writes(6_u64)) } @@ -713,8 +713,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 9_230 nanoseconds. - Weight::from_ref_time(9_694_000) + // Minimum execution time: 4_000 nanoseconds. + Weight::from_parts(5_000_000, 0u64) .saturating_add(Weight::from_proof_size(0)) .saturating_add(T::DbWeight::get().writes(6_u64)) } @@ -742,8 +742,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1873` // Estimated: `19582` - // Minimum execution time: 103_562 nanoseconds. - Weight::from_ref_time(105_339_000) + // Minimum execution time: 57_000 nanoseconds. + Weight::from_parts(58_000_000, 0u64) .saturating_add(Weight::from_proof_size(19582)) .saturating_add(T::DbWeight::get().reads(11_u64)) .saturating_add(T::DbWeight::get().writes(6_u64)) @@ -756,8 +756,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `613` // Estimated: `3019` - // Minimum execution time: 19_630 nanoseconds. - Weight::from_ref_time(20_129_000) + // Minimum execution time: 10_000 nanoseconds. + Weight::from_parts(11_000_000, 0u64) .saturating_add(Weight::from_proof_size(3019)) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -768,8 +768,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 4_351 nanoseconds. - Weight::from_ref_time(4_647_000) + // Minimum execution time: 2_000 nanoseconds. + Weight::from_parts(2_000_000, 0u64) .saturating_add(Weight::from_proof_size(0)) .saturating_add(T::DbWeight::get().writes(1_u64)) } diff --git a/runtime/src/weights/pallet_timestamp.rs b/runtime/src/weights/pallet_timestamp.rs index 28e5e6b5e4..b840594604 100644 --- a/runtime/src/weights/pallet_timestamp.rs +++ b/runtime/src/weights/pallet_timestamp.rs @@ -18,11 +18,11 @@ //! Autogenerated weights for pallet_timestamp //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-27, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("prod-test"), DB CACHE: 1024 // Executed Command: -// ./scripts/../target/release/joystream-node +// ./../target/release/joystream-node // benchmark // pallet // --pallet=pallet_timestamp @@ -31,8 +31,8 @@ // --steps=50 // --repeat=20 // --execution=wasm -// --template=./scripts/../devops/frame-weight-template.hbs -// --output=./scripts/../runtime/src/weights/pallet_timestamp.rs +// --template=./../devops/frame-weight-template.hbs +// --output=./../runtime/src/weights/pallet_timestamp.rs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -55,8 +55,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `249` // Estimated: `1006` - // Minimum execution time: 15_292 nanoseconds. - Weight::from_ref_time(15_939_000) + // Minimum execution time: 8_000 nanoseconds. + Weight::from_parts(9_000_000, 0u64) .saturating_add(Weight::from_proof_size(1006)) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -65,8 +65,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `94` // Estimated: `0` - // Minimum execution time: 6_684 nanoseconds. - Weight::from_ref_time(6_942_000) + // Minimum execution time: 4_000 nanoseconds. + Weight::from_parts(4_000_000, 0u64) .saturating_add(Weight::from_proof_size(0)) } } diff --git a/runtime/src/weights/pallet_vesting.rs b/runtime/src/weights/pallet_vesting.rs index 3e8b58a1de..6ad031eacd 100644 --- a/runtime/src/weights/pallet_vesting.rs +++ b/runtime/src/weights/pallet_vesting.rs @@ -18,11 +18,11 @@ //! Autogenerated weights for pallet_vesting //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-27, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("prod-test"), DB CACHE: 1024 // Executed Command: -// ./scripts/../target/release/joystream-node +// ./../target/release/joystream-node // benchmark // pallet // --pallet=pallet_vesting @@ -31,8 +31,8 @@ // --steps=50 // --repeat=20 // --execution=wasm -// --template=./scripts/../devops/frame-weight-template.hbs -// --output=./scripts/../runtime/src/weights/pallet_vesting.rs +// --template=./../devops/frame-weight-template.hbs +// --output=./../runtime/src/weights/pallet_vesting.rs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -57,13 +57,13 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `340 + l * (25 ±0) + s * (36 ±0)` // Estimated: `7306` - // Minimum execution time: 42_483 nanoseconds. - Weight::from_ref_time(41_177_411) + // Minimum execution time: 23_000 nanoseconds. + Weight::from_parts(22_372_852, 0u64) .saturating_add(Weight::from_proof_size(7306)) - // Standard Error: 7_207 - .saturating_add(Weight::from_ref_time(92_946).saturating_mul(l.into())) - // Standard Error: 12_822 - .saturating_add(Weight::from_ref_time(127_768).saturating_mul(s.into())) + // Standard Error: 1_803 + .saturating_add(Weight::from_parts(35_853, 0u64).saturating_mul(l.into())) + // Standard Error: 3_208 + .saturating_add(Weight::from_parts(86_120, 0u64).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -77,13 +77,13 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `340 + l * (25 ±0) + s * (36 ±0)` // Estimated: `7306` - // Minimum execution time: 41_464 nanoseconds. - Weight::from_ref_time(40_804_769) + // Minimum execution time: 23_000 nanoseconds. + Weight::from_parts(22_356_404, 0u64) .saturating_add(Weight::from_proof_size(7306)) - // Standard Error: 1_666 - .saturating_add(Weight::from_ref_time(91_264).saturating_mul(l.into())) - // Standard Error: 2_965 - .saturating_add(Weight::from_ref_time(54_498).saturating_mul(s.into())) + // Standard Error: 1_483 + .saturating_add(Weight::from_parts(38_705, 0u64).saturating_mul(l.into())) + // Standard Error: 2_638 + .saturating_add(Weight::from_parts(48_293, 0u64).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -99,13 +99,13 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `512 + l * (25 ±0) + s * (36 ±0)` // Estimated: `9909` - // Minimum execution time: 47_749 nanoseconds. - Weight::from_ref_time(45_566_710) + // Minimum execution time: 26_000 nanoseconds. + Weight::from_parts(24_400_588, 0u64) .saturating_add(Weight::from_proof_size(9909)) - // Standard Error: 5_471 - .saturating_add(Weight::from_ref_time(97_286).saturating_mul(l.into())) - // Standard Error: 9_734 - .saturating_add(Weight::from_ref_time(126_445).saturating_mul(s.into())) + // Standard Error: 1_328 + .saturating_add(Weight::from_parts(47_114, 0u64).saturating_mul(l.into())) + // Standard Error: 2_364 + .saturating_add(Weight::from_parts(91_569, 0u64).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -121,13 +121,13 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `512 + l * (25 ±0) + s * (36 ±0)` // Estimated: `9909` - // Minimum execution time: 45_883 nanoseconds. - Weight::from_ref_time(44_453_967) + // Minimum execution time: 25_000 nanoseconds. + Weight::from_parts(24_627_214, 0u64) .saturating_add(Weight::from_proof_size(9909)) - // Standard Error: 6_004 - .saturating_add(Weight::from_ref_time(107_530).saturating_mul(l.into())) - // Standard Error: 10_682 - .saturating_add(Weight::from_ref_time(98_500).saturating_mul(s.into())) + // Standard Error: 1_077 + .saturating_add(Weight::from_parts(36_940, 0u64).saturating_mul(l.into())) + // Standard Error: 1_916 + .saturating_add(Weight::from_parts(56_820, 0u64).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -143,13 +143,13 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `546 + l * (25 ±0) + s * (36 ±0)` // Estimated: `9909` - // Minimum execution time: 69_570 nanoseconds. - Weight::from_ref_time(69_991_859) + // Minimum execution time: 40_000 nanoseconds. + Weight::from_parts(40_373_705, 0u64) .saturating_add(Weight::from_proof_size(9909)) - // Standard Error: 3_953 - .saturating_add(Weight::from_ref_time(87_229).saturating_mul(l.into())) - // Standard Error: 7_033 - .saturating_add(Weight::from_ref_time(59_975).saturating_mul(s.into())) + // Standard Error: 2_336 + .saturating_add(Weight::from_parts(21_228, 0u64).saturating_mul(l.into())) + // Standard Error: 4_157 + .saturating_add(Weight::from_parts(49_207, 0u64).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -165,13 +165,13 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `718 + l * (25 ±0) + s * (36 ±0)` // Estimated: `12512` - // Minimum execution time: 73_355 nanoseconds. - Weight::from_ref_time(73_756_121) + // Minimum execution time: 42_000 nanoseconds. + Weight::from_parts(41_250_540, 0u64) .saturating_add(Weight::from_proof_size(12512)) - // Standard Error: 3_720 - .saturating_add(Weight::from_ref_time(96_445).saturating_mul(l.into())) - // Standard Error: 6_619 - .saturating_add(Weight::from_ref_time(62_475).saturating_mul(s.into())) + // Standard Error: 2_926 + .saturating_add(Weight::from_parts(44_439, 0u64).saturating_mul(l.into())) + // Standard Error: 5_207 + .saturating_add(Weight::from_parts(88_265, 0u64).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } @@ -187,13 +187,13 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `473 + l * (25 ±0) + s * (36 ±0)` // Estimated: `9909` - // Minimum execution time: 48_465 nanoseconds. - Weight::from_ref_time(46_999_690) + // Minimum execution time: 26_000 nanoseconds. + Weight::from_parts(25_010_480, 0u64) .saturating_add(Weight::from_proof_size(9909)) - // Standard Error: 2_472 - .saturating_add(Weight::from_ref_time(86_199).saturating_mul(l.into())) - // Standard Error: 4_566 - .saturating_add(Weight::from_ref_time(95_866).saturating_mul(s.into())) + // Standard Error: 1_319 + .saturating_add(Weight::from_parts(43_843, 0u64).saturating_mul(l.into())) + // Standard Error: 2_437 + .saturating_add(Weight::from_parts(85_901, 0u64).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -209,13 +209,13 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `473 + l * (25 ±0) + s * (36 ±0)` // Estimated: `9909` - // Minimum execution time: 47_710 nanoseconds. - Weight::from_ref_time(46_127_323) + // Minimum execution time: 26_000 nanoseconds. + Weight::from_parts(24_920_497, 0u64) .saturating_add(Weight::from_proof_size(9909)) - // Standard Error: 1_706 - .saturating_add(Weight::from_ref_time(108_392).saturating_mul(l.into())) - // Standard Error: 3_150 - .saturating_add(Weight::from_ref_time(114_361).saturating_mul(s.into())) + // Standard Error: 1_716 + .saturating_add(Weight::from_parts(46_885, 0u64).saturating_mul(l.into())) + // Standard Error: 3_169 + .saturating_add(Weight::from_parts(100_397, 0u64).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } diff --git a/runtime/src/weights/rocksdb_weights.rs b/runtime/src/weights/rocksdb_weights.rs index c2db1ddc54..9baa9b55e3 100644 --- a/runtime/src/weights/rocksdb_weights.rs +++ b/runtime/src/weights/rocksdb_weights.rs @@ -1,21 +1,21 @@ //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-27 (Y/M/D) -//! HOSTNAME: `ip-172-31-3-111`, CPU: `Intel(R) Xeon(R) Platinum 8124M CPU @ 3.00GHz` +//! DATE: 2023-07-31 (Y/M/D) +//! HOSTNAME: `Mokhtars-MacBook-Pro.local`, CPU: `` //! //! DATABASE: `RocksDb`, RUNTIME: `Development` //! BLOCK-NUM: `BlockId::Number(0)` //! SKIP-WRITE: `false`, SKIP-READ: `false`, WARMUPS: `100` //! STATE-VERSION: `V1`, STATE-CACHE-SIZE: `` -//! WEIGHT-PATH: `./scripts/../runtime/src/weights/` +//! WEIGHT-PATH: `./../runtime/src/weights/` //! METRIC: `Average`, WEIGHT-MUL: `1.0`, WEIGHT-ADD: `0` // Executed Command: -// ./scripts/../target/release/joystream-node +// ./../target/release/joystream-node // benchmark // storage // --chain=prod-test // --warmups=100 -// --weight-path=./scripts/../runtime/src/weights/ +// --weight-path=./../runtime/src/weights/ // --state-version // 1 @@ -33,31 +33,31 @@ pub mod constants { /// Calculated by multiplying the *Average* of all values with `1.0` and adding `0`. /// /// Stats nanoseconds: - /// Min, Max: 2_107, 402_151 - /// Average: 6_130 - /// Median: 3_650 - /// Std-Dev: 31027.98 + /// Min, Max: 1_333, 129_041 + /// Average: 3_499 + /// Median: 2_666 + /// Std-Dev: 9857.21 /// /// Percentiles nanoseconds: - /// 99th: 6_277 - /// 95th: 5_200 - /// 75th: 4_224 - read: 6_130 * constants::WEIGHT_REF_TIME_PER_NANOS, + /// 99th: 4_833 + /// 95th: 4_041 + /// 75th: 3_166 + read: 3_499 * constants::WEIGHT_REF_TIME_PER_NANOS, /// Time to write one storage item. /// Calculated by multiplying the *Average* of all values with `1.0` and adding `0`. /// /// Stats nanoseconds: - /// Min, Max: 12_814, 9_382_678 - /// Average: 82_187 - /// Median: 23_537 - /// Std-Dev: 728541.68 + /// Min, Max: 9_208, 2_688_500 + /// Average: 33_700 + /// Median: 17_208 + /// Std-Dev: 207994.77 /// /// Percentiles nanoseconds: - /// 99th: 124_856 - /// 95th: 36_498 - /// 75th: 28_349 - write: 82_187 * constants::WEIGHT_REF_TIME_PER_NANOS, + /// 99th: 42_750 + /// 95th: 26_041 + /// 75th: 20_125 + write: 33_700 * constants::WEIGHT_REF_TIME_PER_NANOS, }; } diff --git a/runtime/src/weights/substrate_utility.rs b/runtime/src/weights/substrate_utility.rs index 2c3e1ba656..8740ddeaf1 100644 --- a/runtime/src/weights/substrate_utility.rs +++ b/runtime/src/weights/substrate_utility.rs @@ -18,11 +18,11 @@ //! Autogenerated weights for substrate_utility //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-27, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-07-31, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("prod-test"), DB CACHE: 1024 // Executed Command: -// ./scripts/../target/release/joystream-node +// ./../target/release/joystream-node // benchmark // pallet // --pallet=substrate_utility @@ -31,8 +31,8 @@ // --steps=50 // --repeat=20 // --execution=wasm -// --template=./scripts/../devops/frame-weight-template.hbs -// --output=./scripts/../runtime/src/weights/substrate_utility.rs +// --template=./../devops/frame-weight-template.hbs +// --output=./../runtime/src/weights/substrate_utility.rs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -52,18 +52,18 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 9_428 nanoseconds. - Weight::from_ref_time(24_705_350) + // Minimum execution time: 4_000 nanoseconds. + Weight::from_parts(14_052_962, 0u64) .saturating_add(Weight::from_proof_size(0)) - // Standard Error: 5_709 - .saturating_add(Weight::from_ref_time(5_929_583).saturating_mul(c.into())) + // Standard Error: 3_085 + .saturating_add(Weight::from_parts(4_153_493, 0u64).saturating_mul(c.into())) } fn as_derivative() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 6_772 nanoseconds. - Weight::from_ref_time(7_208_000) + // Minimum execution time: 3_000 nanoseconds. + Weight::from_parts(4_000_000, 0u64) .saturating_add(Weight::from_proof_size(0)) } /// The range of component `c` is `[0, 1000]`. @@ -71,18 +71,18 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 9_364 nanoseconds. - Weight::from_ref_time(7_047_135) + // Minimum execution time: 4_000 nanoseconds. + Weight::from_parts(5_758_930, 0u64) .saturating_add(Weight::from_proof_size(0)) - // Standard Error: 3_568 - .saturating_add(Weight::from_ref_time(6_198_059).saturating_mul(c.into())) + // Standard Error: 5_449 + .saturating_add(Weight::from_parts(4_378_485, 0u64).saturating_mul(c.into())) } fn dispatch_as() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 12_028 nanoseconds. - Weight::from_ref_time(12_448_000) + // Minimum execution time: 6_000 nanoseconds. + Weight::from_parts(7_000_000, 0u64) .saturating_add(Weight::from_proof_size(0)) } /// The range of component `c` is `[0, 1000]`. @@ -90,10 +90,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 9_516 nanoseconds. - Weight::from_ref_time(7_204_792) + // Minimum execution time: 5_000 nanoseconds. + Weight::from_parts(2_036_692, 0u64) .saturating_add(Weight::from_proof_size(0)) - // Standard Error: 3_989 - .saturating_add(Weight::from_ref_time(6_035_872).saturating_mul(c.into())) + // Standard Error: 3_804 + .saturating_add(Weight::from_parts(4_177_593, 0u64).saturating_mul(c.into())) } }